From davidk at ci.uchicago.edu Thu Dec 1 10:44:54 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Thu, 1 Dec 2011 10:44:54 -0600 (CST) Subject: [Swift-commit] r5327 - wwwdev Message-ID: <20111201164454.B879B9CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-01 10:44:54 -0600 (Thu, 01 Dec 2011) New Revision: 5327 Modified: wwwdev/push_to.sh Log: Update push_to.sh to reflect recent changes to wwwdev Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-11-30 21:10:01 UTC (rev 5326) +++ wwwdev/push_to.sh 2011-12-01 16:44:54 UTC (rev 5327) @@ -18,88 +18,207 @@ # Long list of files to explicitly include follows FILES=" -inc/footer.php -inc/footer2.php -inc/home_sidebar.php -inc/papers_sidebar.php -inc/docs_sidebar.php -inc/about_sidebar.php -inc/downloads_sidebar.php -inc/support_sidebar.php -inc/header.php -inc/header2.php -inc/links_sidebar.php -inc/nav.php -inc/apps_sidebar.php -inc/side_content.php -shBrushVDL2.js -bric-flow-thm.jpg -about/index.php -links/index.php -template_info/template.php -docs/index.php -docs/license.php -docs/tracking_policy.php -docs/usage_data.php -updatenodocs.sh -dhtml.js -index.html -style.css -papers/jogc_03.pdf -papers/HealthGrid-2007-VDL2Bric.submitted-revised.pdf -papers/challenge-editorial.pdf -papers/OpportunisticAlgoritmForSchedulingWokflows.pdf -papers/Chimera2002.pdf -papers/clag_paper.pdf -papers/Swift-SWF07.pdf -papers/GridResourcesForGADU.pdf -papers/sigmod-swf-vdl.pdf -papers/BioGrid2005.pdf -papers/ModelAndArchForDataCollab2003.pdf -papers/SwiftParallelScripting.pdf -papers/p57-zhao.pdf -papers/Kickstarting2006.pdf -papers/VirtualDataInCMS.pdf -papers/VirtualDataProvenance.pdf -papers/cpe2000.pdf -papers/SwiftLanguageForDistributedParallelScripting.pdf -papers/index.php -papers/SwiftForSocialSciences-2007.pdf -papers/AutomatingClimateScience.pdf -papers/XDTM_egc05.pdf -papers/p37-special-sw-section-6.pdf -papers/SDSS-SC02.pdf -papers/egc05.pdf -papers/Falkon_SC07_v24.pdf -papers/vonLaszewski-workflow-book.pdf -papers/VDS-CMS.pdf -css/style.css css/style1col.css +css/960_12_col.css +css/reset.css css/style2.css +css/style.css +css/orbit-1.2.3.css +css/style3.css +images/bg_quotes.png +images/bg_box_shaded.png +images/bullet.png images/workflow.jpg +images/bullet_prev_32.png +images/rotator.png +images/icon_special_A.png +images/button_bg_175_ro.png +images/bullet_swift.png +images/logo_swift.png +images/bullet_pdf.png +images/workflow.gif +images/rotator_shadow.png +images/uvula.png +images/icon_special_D.png +images/icon_special_C.png +images/button_bg_175_sp.png +images/orbit/timer-black.png +images/orbit/bullets.jpg +images/orbit/pause-black.png +images/orbit/spinner.gif +images/orbit/left-arrow.png +images/orbit/mask-black.png +images/orbit/right-arrow.png +images/orbit/loading.gif +images/orbit/rotator-black.png +images/rotator/bg_rotator1.png +images/rotator/2011_08_neuroscience.jpg +images/rotator/bg_rotator3.jpg +images/rotator/bg_rotator2.jpg +images/rotator/bg_rotator1.jpg +images/rotator/bg_rotator3.png +images/rotator/bg_rotator2.png +images/icon_special_B.png +images/graphics/h_backgrnd2.gif +images/graphics/h_ckgrnd.gif images/graphics/h_backgrnd.gif +images/graphics/banner.gif images/graphics/swift_sketch.gif images/graphics/banner2.gif -images/graphics/h_ckgrnd.gif -images/graphics/h_backgrnd2.gif -images/graphics/banner.gif -images/workflow.gif +images/bg_page.png +images/button_bg_175.png +images/bullet_next_32.png +about/index.php +index.html shCoreu.js +js/jquery-1.5.1.min.js +js/jquery.orbit-1.2.3.min.js +push_to.sh +main/index.php +main/template.php +case_studies/images +case_studies/images/CIM-Earth.jpg +case_studies/index.php +case_studies/CIM-Earth.php +style.css +sitemap.xml +apps/index.php apps/style2.css -apps/index.php -README.txt -bric-flow.jpg -sitemap.xml -downloads/release-notes-0.6.txt +links/index.php +downloads/archive.php +downloads/index.php +downloads/release-notes-0.5.txt downloads/release-notes-0.9.txt -downloads/release-notes-0.5.txt downloads/release-notes-0.7.txt -downloads/index.php +downloads/release-notes-0.6.txt downloads/release-notes-0.8.txt -main/index.php -push_to.sh +README.txt +tests/tests.pl +dhtml.js +updatenodocs.sh +papers/p37-special-sw-section-6.pdf +papers/XDTM_egc05.pdf +papers/cpe2000.pdf +papers/AutomatingClimateScience.pdf +papers/vonLaszewski-workflow-book.pdf +papers/UCC-coasters.pdf +papers/SwiftLanguageForDistributedParallelScripting.pdf +papers/clag_paper.pdf +papers/HealthGrid-2007-VDL2Bric.submitted-revised.pdf +papers/SDSS-SC02.pdf +papers/VirtualDataProvenance.pdf +papers/jogc_03.pdf +papers/index.php +papers/Falkon_SC07_v24.pdf +papers/sigmod-swf-vdl.pdf +papers/SwiftForSocialSciences-2007.pdf +papers/Swift-SWF07.pdf +papers/VirtualDataInCMS.pdf +papers/GridResourcesForGADU.pdf +papers/Kickstarting2006.pdf +papers/VDS-CMS.pdf +papers/ModelAndArchForDataCollab2003.pdf +papers/SwiftParallelScripting.pdf +papers/OpportunisticAlgoritmForSchedulingWokflows.pdf +papers/Chimera2002.pdf +papers/challenge-editorial.pdf +papers/p57-zhao.pdf +papers/egc05.pdf +papers/BioGrid2005.pdf +template_info/template.php +usage/charts.swf +usage/usage.php +usage/resources/cursor/cursor.swf +usage/resources/cursor/cursor.fla +usage/resources/scroll/slider_handle_L.gif +usage/resources/scroll/slider_handle.gif +usage/resources/scroll/slider_over_L.gif +usage/resources/scroll/button_2_idle.jpg +usage/resources/scroll/slider_L.gif +usage/resources/scroll/button_2_over.jpg +usage/resources/scroll/slider_over_R.gif +usage/resources/scroll/button_1_over.jpg +usage/resources/scroll/slider_handle_R.gif +usage/resources/scroll/button_all_over.jpg +usage/resources/scroll/slider_bg.gif +usage/resources/scroll/slider_R.gif +usage/resources/scroll/button_1_idle.jpg +usage/resources/scroll/button_all_idle.jpg +usage/resources/scroll/button_all_press.jpg +usage/resources/scroll/button_2_press.jpg +usage/resources/scroll/button_1_press.jpg +usage/resources/chart_in_swf/chart_in_swf.fla +usage/resources/button_rollover/button_rollover.swf +usage/resources/button_rollover/button_rollover.fla +usage/resources/preview_scroll/preview_handle_1.fla +usage/resources/preview_scroll/preview_handle_2.swf +usage/resources/preview_scroll/black.swf +usage/resources/preview_scroll/black.fla +usage/resources/preview_scroll/preview_handle_2.fla +usage/resources/preview_scroll/preview_handle_1.swf +usage/resources/full_screen/full_screen.swf +usage/resources/full_screen/full_screen.fla +usage/geoip.inc +usage/geoipregionvars.php +usage/charts_library/mxno.swf +usage/charts_library/arst.swf +usage/charts_library/buno.swf +usage/charts_library/ars3.swf +usage/charts_library/arno.swf +usage/charts_library/piim.swf +usage/charts_library/pino.swf +usage/charts_library/scno.swf +usage/charts_library/brfl.swf +usage/charts_library/clfl.swf +usage/charts_library/dono.swf +usage/charts_library/clp3.swf +usage/charts_library/ar3d.swf +usage/charts_library/pi3d.swf +usage/charts_library/cl3d.swf +usage/charts_library/lnno.swf +usage/charts_library/dollar.jpg +usage/charts_library/cnno.swf +usage/charts_library/pie.jpg +usage/charts_library/pono.swf +usage/charts_library/clno.swf +usage/charts_library/clim.swf +usage/charts_library/brno.swf +usage/charts_library/cls3.swf +usage/charts_library/clst.swf +usage/charts_library/brst.swf +usage/geoipcity.inc +usage/locations.php +usage/GeoLiteCity.dat +usage/AC_RunActiveContent.js +usage/update_data.php +cookbook/cookbook-asciidoc.txt +cookbook/figures/coaster_setup.png +cookbook/cookbook-asciidoc.html support/index.php update.sh +inc/footer.php +inc/downloads_sidebar.php +inc/support_sidebar.php +inc/papers_sidebar.php +inc/home_sidebar.php +inc/rotator.php +inc/header2.php +inc/main_rotator.php +inc/about_sidebar.php +inc/apps_sidebar.php +inc/nav.php +inc/docs_sidebar.php +inc/case_study_sidebar.php +inc/links_sidebar.php +inc/footer2.php +inc/side_content.php +inc/header.php +docs/tracking_policy.php +docs/index copy.php +docs/license.php +docs/usage_data.php +docs/index.php +shBrushVDL2.js " # Make sure destination directory exists From davidk at ci.uchicago.edu Fri Dec 2 10:03:54 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 10:03:54 -0600 (CST) Subject: [Swift-commit] r5329 - branches/release-0.93/bin Message-ID: <20111202160354.CAC289CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 10:03:54 -0600 (Fri, 02 Dec 2011) New Revision: 5329 Modified: branches/release-0.93/bin/start-coaster-service branches/release-0.93/bin/stop-coaster-service Log: Integration with Globus provision Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-02 13:54:44 UTC (rev 5328) +++ branches/release-0.93/bin/start-coaster-service 2011-12-02 16:03:54 UTC (rev 5329) @@ -48,6 +48,53 @@ done } +# EC2 workers +start-workers-ec2() +{ + PORT=$1 + EXECUTION_URL=http://localhost:$PORT + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then + crash "SWIFTVMBOT_DIR incorrectly defined in coaster-service.conf" + fi + + SEDFILE=`mktemp` + { + echo "s at _CLUSTER-NODES_@$EC2_NODES@" + echo "s at _INSTANCE-TYPE_@$EC2_INSTANCE_TYPE@" + echo "s at _KEYPAIR_@$EC2_KEYPAIR@" + echo "s at _KEYFILE_@$EC2_KEYFILE@" + echo "s at _AMI_@$EC2_AMI@" + } > $SEDFILE + sed -f $SEDFILE < "$SWIFTVMBOOT_DIR/ec2.template.conf" > "$SWIFTVMBOOT_DIR/ec2.conf" + rm $SEDFILE + + echo Creating instance.. + "$SWIFTVMBOOT_DIR/bin/gp-instance-create" -c "$SWIFTVMBOOT_DIR/ec2.conf" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | tee -a gpic.out + SWIFTVM_INSTANCE=`awk '{print $4}' gpic.out` + rm gpic.out + echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instance + + echo Starting instance.. + "$SWIFTVMBOOT_DIR/bin/gp-instance-start" "$SWIFTVM_INSTANCE" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + WORKER_HOSTS=`$SWIFTVMBOOT_DIR/bin/gp-instance-describe $SWIFTVM_INSTANCE|sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"|awk '{print $3}'` + + # Start worker script + for MACHINE in $WORKER_HOSTS + do + # Enable ssh tunneling if needed + if [ "$SSH_TUNNELING" == "yes" ]; then + ssh -q -o StrictHostKeyChecking=no -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & + echo $! >> $PID_FILE + fi + + # Copy and start worker script + scp -q -o StrictHostKeyChecking=no $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 + echo "Starting worker on $MACHINE" + ssh -q -o StrictHostKeyChecking=no $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE + done +} + # Start SSH workers start-workers-ssh() { @@ -256,6 +303,9 @@ futuregrid) start-workers-futuregrid $LOCAL_PORT ;; + ec2) + start-workers-ec2 $LOCAL_PORT + ;; *) crash "Unknown WORKER_MODE. Please modify coaster-service.conf" ;; Modified: branches/release-0.93/bin/stop-coaster-service =================================================================== --- branches/release-0.93/bin/stop-coaster-service 2011-12-02 13:54:44 UTC (rev 5328) +++ branches/release-0.93/bin/stop-coaster-service 2011-12-02 16:03:54 UTC (rev 5329) @@ -39,9 +39,8 @@ done rm $PID_FILE > /dev/null 2>&1 fi -echo Done -if [ $WORKER_MODE == "futuregrid" ] && [ -f "$SWIFTVM_INSTANCES" ]; then +if [ "$WORKER_MODE" == "futuregrid" ] && [ -f "$SWIFTVM_INSTANCES" ]; then for INSTANCE in `cat $SWIFTVM_INSTANCES` do $SWIFTVMBOOT_DIR/ve/bin/cloudinitd terminate $INSTANCE @@ -49,5 +48,13 @@ rm $SWIFTVM_INSTANCES > /dev/null 2>&1 fi +if [ "$WORKER_MODE" == "ec2" ] && [ -f "$SWIFTVM_INSTANCES" ]; then + for INSTANCE in `cat $SWIFTVM_INSTANCES` + do + echo Stopping ec2 instance $INSTANCE... + $SWIFTVMBOOT_DIR/bin/gp-instance-stop $INSTANCE | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + done + rm $SWIFTVM_INSTANCES > /dev/null 2>&1 +fi popd > /dev/null 2>&1 From davidk at ci.uchicago.edu Fri Dec 2 10:53:05 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 10:53:05 -0600 (CST) Subject: [Swift-commit] r5331 - in branches/release-0.93/bin: . vm/ec2 Message-ID: <20111202165305.1F68F9CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 10:53:04 -0600 (Fri, 02 Dec 2011) New Revision: 5331 Modified: branches/release-0.93/bin/start-coaster-service branches/release-0.93/bin/vm/ec2/ec2.template.conf Log: Template fix and better integration Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-02 16:38:40 UTC (rev 5330) +++ branches/release-0.93/bin/start-coaster-service 2011-12-02 16:53:04 UTC (rev 5331) @@ -14,8 +14,11 @@ PORT=$1 EXECUTION_URL=http://localhost:$PORT - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/bootit.sh" ]; then - crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" + if [ ! -d "$SWIFTVMBOOT_DIR" ]; then + SWIFTVMBOOT_DIR=$SWIFT_BIN/vm/futuregrid + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/bootit.sh" ]; then + crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" + fi fi echo Starting virtual machines.. please wait @@ -53,8 +56,12 @@ { PORT=$1 EXECUTION_URL=http://localhost:$PORT - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then - crash "SWIFTVMBOT_DIR incorrectly defined in coaster-service.conf" + + if [ ! -d "$SWIFTVMBOOT_DIR" ]; then + SWIFTVMBOOT_DIR=$SWIFT_BIN/vm/ec2 + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then + crash "SWIFTVMBOT_DIR incorrectly defined in coaster-service.conf" + fi fi SEDFILE=`mktemp` Modified: branches/release-0.93/bin/vm/ec2/ec2.template.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/ec2.template.conf 2011-12-02 16:38:40 UTC (rev 5330) +++ branches/release-0.93/bin/vm/ec2/ec2.template.conf 2011-12-02 16:53:04 UTC (rev 5331) @@ -5,7 +5,7 @@ [domain-swift] users: swift nfs-nis: yes -lrm: none +lrm: condor cluster-nodes: _CLUSTER-NODES_ [ec2] From davidk at ci.uchicago.edu Fri Dec 2 11:40:32 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 11:40:32 -0600 (CST) Subject: [Swift-commit] r5333 - branches/release-0.93/bin Message-ID: <20111202174032.BD7E49CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 11:40:32 -0600 (Fri, 02 Dec 2011) New Revision: 5333 Removed: branches/release-0.93/bin/vm/ Modified: branches/release-0.93/bin/start-coaster-service Log: Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-02 17:03:52 UTC (rev 5332) +++ branches/release-0.93/bin/start-coaster-service 2011-12-02 17:40:32 UTC (rev 5333) @@ -14,11 +14,8 @@ PORT=$1 EXECUTION_URL=http://localhost:$PORT - if [ ! -d "$SWIFTVMBOOT_DIR" ]; then - SWIFTVMBOOT_DIR=$SWIFT_BIN/vm/futuregrid - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/bootit.sh" ]; then - crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" - fi + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/bootit.sh" ]; then + crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" fi echo Starting virtual machines.. please wait @@ -57,11 +54,8 @@ PORT=$1 EXECUTION_URL=http://localhost:$PORT - if [ ! -d "$SWIFTVMBOOT_DIR" ]; then - SWIFTVMBOOT_DIR=$SWIFT_BIN/vm/ec2 - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then - crash "SWIFTVMBOT_DIR incorrectly defined in coaster-service.conf" - fi + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then + crash "SWIFTVMBOT_DIR incorrectly defined in coaster-service.conf" fi SEDFILE=`mktemp` From davidk at ci.uchicago.edu Fri Dec 2 11:47:10 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 11:47:10 -0600 (CST) Subject: [Swift-commit] r5334 - branches/release-0.93 Message-ID: <20111202174710.A9D269CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 11:47:10 -0600 (Fri, 02 Dec 2011) New Revision: 5334 Modified: branches/release-0.93/build.xml Log: Modified: branches/release-0.93/build.xml =================================================================== --- branches/release-0.93/build.xml 2011-12-02 17:40:32 UTC (rev 5333) +++ branches/release-0.93/build.xml 2011-12-02 17:47:10 UTC (rev 5334) @@ -112,14 +112,6 @@ - - - - - - - - From davidk at ci.uchicago.edu Fri Dec 2 11:58:48 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 11:58:48 -0600 (CST) Subject: [Swift-commit] r5335 - usertools/swift-ec2-boot Message-ID: <20111202175848.1815A9CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 11:58:47 -0600 (Fri, 02 Dec 2011) New Revision: 5335 Added: usertools/swift-ec2-boot/globus-provision-0.3.2.tar.gz usertools/swift-ec2-boot/install.sh Removed: usertools/swift-ec2-boot/bin/ usertools/swift-ec2-boot/lib/ Log: Added: usertools/swift-ec2-boot/globus-provision-0.3.2.tar.gz =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/globus-provision-0.3.2.tar.gz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/install.sh =================================================================== --- usertools/swift-ec2-boot/install.sh (rev 0) +++ usertools/swift-ec2-boot/install.sh 2011-12-02 17:58:47 UTC (rev 5335) @@ -0,0 +1,9 @@ +#!/bin/bash + +tar xvfz globus-provision-0.3.2.tar.gz +cd globus-provision-0.3.2 +python setup.py install --user +cd .. +mv ~/.local/bin . +mv ~/.local/lib . + Property changes on: usertools/swift-ec2-boot/install.sh ___________________________________________________________________ Added: svn:executable + * From ketan at ci.uchicago.edu Fri Dec 2 14:41:00 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Fri, 2 Dec 2011 14:41:00 -0600 (CST) Subject: [Swift-commit] r5336 - trunk/bin/grid Message-ID: <20111202204100.08CE69CCA2@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-02 14:40:59 -0600 (Fri, 02 Dec 2011) New Revision: 5336 Modified: trunk/bin/grid/gwms-swift-workers trunk/bin/grid/run-worker.sh Log: updated run-worker.sh Modified: trunk/bin/grid/gwms-swift-workers =================================================================== --- trunk/bin/grid/gwms-swift-workers 2011-12-02 17:58:47 UTC (rev 5335) +++ trunk/bin/grid/gwms-swift-workers 2011-12-02 20:40:59 UTC (rev 5336) @@ -29,11 +29,9 @@ should_transfer_files = YES WhenToTransferOutput = ON_EXIT - periodic_remove = JobStatus == 5 + #periodic_remove = JobStatus == 5 notification = NEVER - #globus_rsl = (maxwalltime=240) - #grid_resource = <%= @grid_resource %> executable = #{workerWrapper} arguments = #{workerContact} <%= @name.gsub(/__.*/,"") %> /tmp environment = WORKER_LOGGING_LEVEL=DEBUG Modified: trunk/bin/grid/run-worker.sh =================================================================== --- trunk/bin/grid/run-worker.sh 2011-12-02 17:58:47 UTC (rev 5335) +++ trunk/bin/grid/run-worker.sh 2011-12-02 20:40:59 UTC (rev 5336) @@ -22,7 +22,7 @@ echo "=== path: $PATH" echo "===============================================" -cat >worker.pl +#cat >worker.pl chmod +x worker.pl ./worker.pl $contact $workername $logdir From ketan at ci.uchicago.edu Fri Dec 2 14:56:36 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Fri, 2 Dec 2011 14:56:36 -0600 (CST) Subject: [Swift-commit] r5337 - in SwiftApps/modFTDock/app: . Scoring Message-ID: <20111202205636.C92849CCA2@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-02 14:56:36 -0600 (Fri, 02 Dec 2011) New Revision: 5337 Added: SwiftApps/modFTDock/app/Scoring/ SwiftApps/modFTDock/app/Scoring/2RNK.pdb SwiftApps/modFTDock/app/Scoring/4TRA.pdb SwiftApps/modFTDock/app/Scoring/build1 SwiftApps/modFTDock/app/Scoring/distances300r.exe SwiftApps/modFTDock/app/Scoring/eval300.exe SwiftApps/modFTDock/app/Scoring/modmerge SwiftApps/modFTDock/app/Scoring/run_short.bat SwiftApps/modFTDock/app/Scoring/run_test.bat SwiftApps/modFTDock/app/Scoring/scoredat.bat SwiftApps/modFTDock/app/Scoring/scoredat.exe SwiftApps/modFTDock/app/Scoring/some_dat.tar SwiftApps/modFTDock/app/Scoring/tRNA_score.exe Log: adding third stage binaries to repo Added: SwiftApps/modFTDock/app/Scoring/2RNK.pdb =================================================================== --- SwiftApps/modFTDock/app/Scoring/2RNK.pdb (rev 0) +++ SwiftApps/modFTDock/app/Scoring/2RNK.pdb 2011-12-02 20:56:36 UTC (rev 5337) @@ -0,0 +1,2239 @@ +ATOM 1 N GLY A -4 -30.023 -9.182 8.307 1.00 0.00 N +ATOM 2 CA GLY A -4 -30.606 -7.903 7.869 1.00 0.00 C +ATOM 3 C GLY A -4 -29.546 -7.060 7.178 1.00 0.00 C +ATOM 4 O GLY A -4 -28.374 -7.153 7.547 1.00 0.00 O +ATOM 5 H1 GLY A -4 -29.159 -9.105 8.804 1.00 0.00 H +ATOM 6 HA2 GLY A -4 -31.433 -8.099 7.188 1.00 0.00 H +ATOM 7 HA3 GLY A -4 -30.970 -7.359 8.742 1.00 0.00 H +ATOM 8 N SER A -3 -29.931 -6.225 6.207 1.00 0.00 N +ATOM 9 CA SER A -3 -29.000 -5.383 5.469 1.00 0.00 C +ATOM 10 C SER A -3 -29.622 -4.008 5.213 1.00 0.00 C +ATOM 11 O SER A -3 -30.841 -3.903 5.082 1.00 0.00 O +ATOM 12 CB SER A -3 -28.622 -6.095 4.161 1.00 0.00 C +ATOM 13 OG SER A -3 -27.663 -5.353 3.432 1.00 0.00 O +ATOM 14 H SER A -3 -30.899 -6.083 5.946 1.00 0.00 H +ATOM 15 HA SER A -3 -28.103 -5.256 6.064 1.00 0.00 H +ATOM 16 HB2 SER A -3 -28.199 -7.073 4.395 1.00 0.00 H +ATOM 17 HB3 SER A -3 -29.514 -6.232 3.547 1.00 0.00 H +ATOM 18 HG SER A -3 -28.185 -4.793 2.809 1.00 0.00 H +ATOM 19 N HIS A -2 -28.776 -2.978 5.117 1.00 0.00 N +ATOM 20 CA HIS A -2 -29.037 -1.654 4.547 1.00 0.00 C +ATOM 21 C HIS A -2 -27.655 -1.013 4.388 1.00 0.00 C +ATOM 22 O HIS A -2 -26.854 -1.105 5.320 1.00 0.00 O +ATOM 23 CB HIS A -2 -29.947 -0.847 5.494 1.00 0.00 C +ATOM 24 CG HIS A -2 -30.283 0.577 5.100 1.00 0.00 C +ATOM 25 ND1 HIS A -2 -30.552 1.064 3.829 1.00 0.00 N +ATOM 26 CD2 HIS A -2 -30.473 1.602 5.987 1.00 0.00 C +ATOM 27 CE1 HIS A -2 -30.891 2.365 3.955 1.00 0.00 C +ATOM 28 NE2 HIS A -2 -30.842 2.714 5.258 1.00 0.00 N +ATOM 29 H HIS A -2 -27.795 -3.164 5.315 1.00 0.00 H +ATOM 30 HA HIS A -2 -29.520 -1.775 3.577 1.00 0.00 H +ATOM 31 HB2 HIS A -2 -30.892 -1.378 5.611 1.00 0.00 H +ATOM 32 HB3 HIS A -2 -29.471 -0.825 6.473 1.00 0.00 H +ATOM 33 HD1 HIS A -2 -30.466 0.562 2.939 1.00 0.00 H +ATOM 34 HD2 HIS A -2 -30.372 1.560 7.065 1.00 0.00 H +ATOM 35 HE1 HIS A -2 -31.131 3.041 3.140 1.00 0.00 H +ATOM 36 HE2 HIS A -2 -30.999 3.639 5.652 1.00 0.00 H +ATOM 37 N MET A -1 -27.351 -0.371 3.260 1.00 0.00 N +ATOM 38 CA MET A -1 -26.048 0.222 2.974 1.00 0.00 C +ATOM 39 C MET A -1 -26.292 1.567 2.306 1.00 0.00 C +ATOM 40 O MET A -1 -26.523 1.640 1.100 1.00 0.00 O +ATOM 41 CB MET A -1 -25.187 -0.707 2.100 1.00 0.00 C +ATOM 42 CG MET A -1 -23.772 -0.156 1.872 1.00 0.00 C +ATOM 43 SD MET A -1 -22.776 -1.092 0.676 1.00 0.00 S +ATOM 44 CE MET A -1 -23.493 -0.506 -0.887 1.00 0.00 C +ATOM 45 H MET A -1 -28.045 -0.247 2.534 1.00 0.00 H +ATOM 46 HA MET A -1 -25.512 0.386 3.910 1.00 0.00 H +ATOM 47 HB2 MET A -1 -25.096 -1.667 2.597 1.00 0.00 H +ATOM 48 HB3 MET A -1 -25.670 -0.857 1.137 1.00 0.00 H +ATOM 49 HG2 MET A -1 -23.830 0.875 1.524 1.00 0.00 H +ATOM 50 HG3 MET A -1 -23.247 -0.160 2.828 1.00 0.00 H +ATOM 51 HE1 MET A -1 -23.431 0.581 -0.938 1.00 0.00 H +ATOM 52 HE2 MET A -1 -22.940 -0.929 -1.727 1.00 0.00 H +ATOM 53 HE3 MET A -1 -24.535 -0.814 -0.958 1.00 0.00 H +ATOM 54 N VAL A 513 -26.256 2.618 3.113 1.00 0.00 N +ATOM 55 CA VAL A 513 -26.229 4.015 2.696 1.00 0.00 C +ATOM 56 C VAL A 513 -25.168 4.709 3.553 1.00 0.00 C +ATOM 57 O VAL A 513 -25.034 4.398 4.741 1.00 0.00 O +ATOM 58 CB VAL A 513 -27.625 4.660 2.828 1.00 0.00 C +ATOM 59 CG1 VAL A 513 -28.597 4.084 1.786 1.00 0.00 C +ATOM 60 CG2 VAL A 513 -28.234 4.497 4.231 1.00 0.00 C +ATOM 61 H VAL A 513 -26.103 2.459 4.098 1.00 0.00 H +ATOM 62 HA VAL A 513 -25.916 4.072 1.651 1.00 0.00 H +ATOM 63 HB VAL A 513 -27.520 5.725 2.625 1.00 0.00 H +ATOM 64 HG11 VAL A 513 -29.534 4.641 1.816 1.00 0.00 H +ATOM 65 HG12 VAL A 513 -28.171 4.197 0.788 1.00 0.00 H +ATOM 66 HG13 VAL A 513 -28.786 3.030 1.973 1.00 0.00 H +ATOM 67 HG21 VAL A 513 -29.244 4.903 4.242 1.00 0.00 H +ATOM 68 HG22 VAL A 513 -28.262 3.452 4.535 1.00 0.00 H +ATOM 69 HG23 VAL A 513 -27.650 5.065 4.951 1.00 0.00 H +ATOM 70 N LEU A 514 -24.364 5.589 2.967 1.00 0.00 N +ATOM 71 CA LEU A 514 -23.243 6.265 3.604 1.00 0.00 C +ATOM 72 C LEU A 514 -23.031 7.597 2.877 1.00 0.00 C +ATOM 73 O LEU A 514 -23.611 7.771 1.797 1.00 0.00 O +ATOM 74 CB LEU A 514 -21.993 5.366 3.566 1.00 0.00 C +ATOM 75 CG LEU A 514 -21.349 5.129 2.184 1.00 0.00 C +ATOM 76 CD1 LEU A 514 -19.893 4.711 2.392 1.00 0.00 C +ATOM 77 CD2 LEU A 514 -22.088 4.039 1.400 1.00 0.00 C +ATOM 78 H LEU A 514 -24.484 5.889 2.006 1.00 0.00 H +ATOM 79 HA LEU A 514 -23.487 6.460 4.643 1.00 0.00 H +ATOM 80 HB2 LEU A 514 -21.253 5.827 4.206 1.00 0.00 H +ATOM 81 HB3 LEU A 514 -22.225 4.408 4.030 1.00 0.00 H +ATOM 82 HG LEU A 514 -21.344 6.046 1.597 1.00 0.00 H +ATOM 83 HD11 LEU A 514 -19.821 3.852 3.055 1.00 0.00 H +ATOM 84 HD12 LEU A 514 -19.428 4.487 1.435 1.00 0.00 H +ATOM 85 HD13 LEU A 514 -19.352 5.543 2.843 1.00 0.00 H +ATOM 86 HD21 LEU A 514 -23.051 4.421 1.067 1.00 0.00 H +ATOM 87 HD22 LEU A 514 -21.520 3.770 0.509 1.00 0.00 H +ATOM 88 HD23 LEU A 514 -22.251 3.157 2.016 1.00 0.00 H +ATOM 89 N PRO A 515 -22.231 8.539 3.399 1.00 0.00 N +ATOM 90 CA PRO A 515 -21.883 9.727 2.648 1.00 0.00 C +ATOM 91 C PRO A 515 -20.799 9.346 1.636 1.00 0.00 C +ATOM 92 O PRO A 515 -19.608 9.454 1.927 1.00 0.00 O +ATOM 93 CB PRO A 515 -21.438 10.748 3.698 1.00 0.00 C +ATOM 94 CG PRO A 515 -20.864 9.899 4.831 1.00 0.00 C +ATOM 95 CD PRO A 515 -21.575 8.549 4.705 1.00 0.00 C +ATOM 96 HA PRO A 515 -22.750 10.123 2.117 1.00 0.00 H +ATOM 97 HB2 PRO A 515 -20.700 11.451 3.313 1.00 0.00 H +ATOM 98 HB3 PRO A 515 -22.314 11.286 4.054 1.00 0.00 H +ATOM 99 HG2 PRO A 515 -19.796 9.770 4.673 1.00 0.00 H +ATOM 100 HG3 PRO A 515 -21.043 10.353 5.805 1.00 0.00 H +ATOM 101 HD2 PRO A 515 -20.829 7.761 4.775 1.00 0.00 H +ATOM 102 HD3 PRO A 515 -22.309 8.434 5.502 1.00 0.00 H +ATOM 103 N SER A 516 -21.186 8.857 0.455 1.00 0.00 N +ATOM 104 CA SER A 516 -20.267 8.877 -0.680 1.00 0.00 C +ATOM 105 C SER A 516 -19.917 10.340 -0.986 1.00 0.00 C +ATOM 106 O SER A 516 -20.686 11.259 -0.677 1.00 0.00 O +ATOM 107 CB SER A 516 -20.870 8.154 -1.893 1.00 0.00 C +ATOM 108 OG SER A 516 -21.095 6.788 -1.574 1.00 0.00 O +ATOM 109 H SER A 516 -22.163 8.639 0.305 1.00 0.00 H +ATOM 110 HA SER A 516 -19.353 8.356 -0.394 1.00 0.00 H +ATOM 111 HB2 SER A 516 -21.806 8.631 -2.185 1.00 0.00 H +ATOM 112 HB3 SER A 516 -20.171 8.209 -2.729 1.00 0.00 H +ATOM 113 HG SER A 516 -21.207 6.274 -2.409 1.00 0.00 H +ATOM 114 N GLU A 517 -18.762 10.584 -1.600 1.00 0.00 N +ATOM 115 CA GLU A 517 -18.201 11.922 -1.782 1.00 0.00 C +ATOM 116 C GLU A 517 -17.206 11.870 -2.949 1.00 0.00 C +ATOM 117 O GLU A 517 -16.662 10.795 -3.237 1.00 0.00 O +ATOM 118 CB GLU A 517 -17.543 12.312 -0.448 1.00 0.00 C +ATOM 119 CG GLU A 517 -17.292 13.809 -0.278 1.00 0.00 C +ATOM 120 CD GLU A 517 -16.861 14.094 1.162 1.00 0.00 C +ATOM 121 OE1 GLU A 517 -17.676 13.889 2.089 1.00 0.00 O +ATOM 122 OE2 GLU A 517 -15.665 14.400 1.391 1.00 0.00 O +ATOM 123 H GLU A 517 -18.129 9.810 -1.805 1.00 0.00 H +ATOM 124 HA GLU A 517 -18.999 12.632 -2.010 1.00 0.00 H +ATOM 125 HB2 GLU A 517 -18.206 12.002 0.361 1.00 0.00 H +ATOM 126 HB3 GLU A 517 -16.611 11.772 -0.319 1.00 0.00 H +ATOM 127 HG2 GLU A 517 -16.520 14.136 -0.975 1.00 0.00 H +ATOM 128 HG3 GLU A 517 -18.215 14.340 -0.497 1.00 0.00 H +ATOM 129 N ALA A 518 -16.971 12.995 -3.625 1.00 0.00 N +ATOM 130 CA ALA A 518 -16.089 13.082 -4.781 1.00 0.00 C +ATOM 131 C ALA A 518 -14.776 13.769 -4.378 1.00 0.00 C +ATOM 132 O ALA A 518 -14.793 14.973 -4.107 1.00 0.00 O +ATOM 133 CB ALA A 518 -16.785 13.845 -5.913 1.00 0.00 C +ATOM 134 H ALA A 518 -17.427 13.862 -3.350 1.00 0.00 H +ATOM 135 HA ALA A 518 -15.888 12.081 -5.157 1.00 0.00 H +ATOM 136 HB1 ALA A 518 -16.100 13.924 -6.757 1.00 0.00 H +ATOM 137 HB2 ALA A 518 -17.689 13.318 -6.220 1.00 0.00 H +ATOM 138 HB3 ALA A 518 -17.045 14.851 -5.582 1.00 0.00 H +ATOM 139 N PRO A 519 -13.641 13.052 -4.318 1.00 0.00 N +ATOM 140 CA PRO A 519 -12.339 13.693 -4.268 1.00 0.00 C +ATOM 141 C PRO A 519 -12.016 14.243 -5.658 1.00 0.00 C +ATOM 142 O PRO A 519 -12.392 13.639 -6.669 1.00 0.00 O +ATOM 143 CB PRO A 519 -11.375 12.577 -3.880 1.00 0.00 C +ATOM 144 CG PRO A 519 -11.987 11.349 -4.557 1.00 0.00 C +ATOM 145 CD PRO A 519 -13.489 11.615 -4.490 1.00 0.00 C +ATOM 146 HA PRO A 519 -12.319 14.490 -3.525 1.00 0.00 H +ATOM 147 HB2 PRO A 519 -10.365 12.776 -4.239 1.00 0.00 H +ATOM 148 HB3 PRO A 519 -11.383 12.442 -2.797 1.00 0.00 H +ATOM 149 HG2 PRO A 519 -11.666 11.302 -5.598 1.00 0.00 H +ATOM 150 HG3 PRO A 519 -11.729 10.424 -4.046 1.00 0.00 H +ATOM 151 HD2 PRO A 519 -13.955 11.279 -5.417 1.00 0.00 H +ATOM 152 HD3 PRO A 519 -13.921 11.104 -3.632 1.00 0.00 H +ATOM 153 N ASN A 520 -11.265 15.341 -5.726 1.00 0.00 N +ATOM 154 CA ASN A 520 -10.897 15.971 -6.993 1.00 0.00 C +ATOM 155 C ASN A 520 -9.490 16.570 -6.947 1.00 0.00 C +ATOM 156 O ASN A 520 -9.154 17.388 -7.801 1.00 0.00 O +ATOM 157 CB ASN A 520 -11.982 16.985 -7.423 1.00 0.00 C +ATOM 158 CG ASN A 520 -13.130 16.302 -8.161 1.00 0.00 C +ATOM 159 OD1 ASN A 520 -14.231 16.156 -7.640 1.00 0.00 O +ATOM 160 ND2 ASN A 520 -12.915 15.876 -9.396 1.00 0.00 N +ATOM 161 H ASN A 520 -10.961 15.770 -4.858 1.00 0.00 H +ATOM 162 HA ASN A 520 -10.851 15.196 -7.758 1.00 0.00 H +ATOM 163 HB2 ASN A 520 -12.364 17.512 -6.547 1.00 0.00 H +ATOM 164 HB3 ASN A 520 -11.561 17.731 -8.095 1.00 0.00 H +ATOM 165 HD21 ASN A 520 -12.044 16.089 -9.878 1.00 0.00 H +ATOM 166 HD22 ASN A 520 -13.634 15.339 -9.857 1.00 0.00 H +ATOM 167 N ALA A 521 -8.652 16.194 -5.974 1.00 0.00 N +ATOM 168 CA ALA A 521 -7.279 16.672 -5.842 1.00 0.00 C +ATOM 169 C ALA A 521 -6.499 16.469 -7.146 1.00 0.00 C +ATOM 170 O ALA A 521 -6.282 15.329 -7.571 1.00 0.00 O +ATOM 171 CB ALA A 521 -6.568 15.955 -4.687 1.00 0.00 C +ATOM 172 H ALA A 521 -8.999 15.585 -5.248 1.00 0.00 H +ATOM 173 HA ALA A 521 -7.329 17.735 -5.611 1.00 0.00 H +ATOM 174 HB1 ALA A 521 -7.085 16.141 -3.748 1.00 0.00 H +ATOM 175 HB2 ALA A 521 -6.531 14.882 -4.881 1.00 0.00 H +ATOM 176 HB3 ALA A 521 -5.550 16.336 -4.600 1.00 0.00 H +ATOM 177 N LYS A 522 -6.052 17.557 -7.783 1.00 0.00 N +ATOM 178 CA LYS A 522 -5.140 17.478 -8.929 1.00 0.00 C +ATOM 179 C LYS A 522 -3.759 16.984 -8.501 1.00 0.00 C +ATOM 180 O LYS A 522 -3.045 16.375 -9.298 1.00 0.00 O +ATOM 181 CB LYS A 522 -5.042 18.830 -9.655 1.00 0.00 C +ATOM 182 CG LYS A 522 -4.279 19.910 -8.874 1.00 0.00 C +ATOM 183 CD LYS A 522 -4.508 21.286 -9.502 1.00 0.00 C +ATOM 184 CE LYS A 522 -3.613 22.358 -8.868 1.00 0.00 C +ATOM 185 NZ LYS A 522 -3.964 22.673 -7.466 1.00 0.00 N +ATOM 186 H LYS A 522 -6.241 18.463 -7.369 1.00 0.00 H +ATOM 187 HA LYS A 522 -5.552 16.766 -9.637 1.00 0.00 H +ATOM 188 HB2 LYS A 522 -4.531 18.676 -10.607 1.00 0.00 H +ATOM 189 HB3 LYS A 522 -6.046 19.184 -9.876 1.00 0.00 H +ATOM 190 HG2 LYS A 522 -4.615 19.931 -7.840 1.00 0.00 H +ATOM 191 HG3 LYS A 522 -3.213 19.684 -8.899 1.00 0.00 H +ATOM 192 HD2 LYS A 522 -4.275 21.222 -10.565 1.00 0.00 H +ATOM 193 HD3 LYS A 522 -5.557 21.565 -9.400 1.00 0.00 H +ATOM 194 HE2 LYS A 522 -2.574 22.024 -8.906 1.00 0.00 H +ATOM 195 HE3 LYS A 522 -3.689 23.276 -9.455 1.00 0.00 H +ATOM 196 HZ1 LYS A 522 -3.298 23.336 -7.087 1.00 0.00 H +ATOM 197 HZ2 LYS A 522 -4.886 23.098 -7.401 1.00 0.00 H +ATOM 198 HZ3 LYS A 522 -3.909 21.862 -6.854 1.00 0.00 H +ATOM 199 N GLU A 523 -3.390 17.272 -7.255 1.00 0.00 N +ATOM 200 CA GLU A 523 -2.058 17.071 -6.716 1.00 0.00 C +ATOM 201 C GLU A 523 -1.797 15.605 -6.377 1.00 0.00 C +ATOM 202 O GLU A 523 -2.671 14.734 -6.467 1.00 0.00 O +ATOM 203 CB GLU A 523 -1.910 17.975 -5.481 1.00 0.00 C +ATOM 204 CG GLU A 523 -1.623 19.420 -5.911 1.00 0.00 C +ATOM 205 CD GLU A 523 -2.329 20.410 -5.001 1.00 0.00 C +ATOM 206 OE1 GLU A 523 -1.805 20.715 -3.910 1.00 0.00 O +ATOM 207 OE2 GLU A 523 -3.414 20.900 -5.404 1.00 0.00 O +ATOM 208 H GLU A 523 -4.054 17.739 -6.651 1.00 0.00 H +ATOM 209 HA GLU A 523 -1.326 17.371 -7.469 1.00 0.00 H +ATOM 210 HB2 GLU A 523 -2.831 17.927 -4.896 1.00 0.00 H +ATOM 211 HB3 GLU A 523 -1.092 17.642 -4.840 1.00 0.00 H +ATOM 212 HG2 GLU A 523 -0.546 19.600 -5.884 1.00 0.00 H +ATOM 213 HG3 GLU A 523 -1.963 19.590 -6.932 1.00 0.00 H +ATOM 214 N GLU A 524 -0.553 15.339 -5.992 1.00 0.00 N +ATOM 215 CA GLU A 524 -0.062 14.052 -5.552 1.00 0.00 C +ATOM 216 C GLU A 524 1.216 14.214 -4.738 1.00 0.00 C +ATOM 217 O GLU A 524 1.983 15.165 -4.909 1.00 0.00 O +ATOM 218 CB GLU A 524 0.213 13.146 -6.750 1.00 0.00 C +ATOM 219 CG GLU A 524 1.104 13.794 -7.829 1.00 0.00 C +ATOM 220 CD GLU A 524 1.416 12.849 -8.983 1.00 0.00 C +ATOM 221 OE1 GLU A 524 0.796 11.771 -9.091 1.00 0.00 O +ATOM 222 OE2 GLU A 524 2.307 13.167 -9.800 1.00 0.00 O +ATOM 223 H GLU A 524 0.117 16.099 -5.960 1.00 0.00 H +ATOM 224 HA GLU A 524 -0.817 13.595 -4.914 1.00 0.00 H +ATOM 225 HB2 GLU A 524 0.711 12.267 -6.349 1.00 0.00 H +ATOM 226 HB3 GLU A 524 -0.737 12.845 -7.195 1.00 0.00 H +ATOM 227 HG2 GLU A 524 0.610 14.674 -8.242 1.00 0.00 H +ATOM 228 HG3 GLU A 524 2.047 14.107 -7.382 1.00 0.00 H +ATOM 229 N ILE A 525 1.439 13.259 -3.845 1.00 0.00 N +ATOM 230 CA ILE A 525 2.514 13.287 -2.871 1.00 0.00 C +ATOM 231 C ILE A 525 3.596 12.342 -3.376 1.00 0.00 C +ATOM 232 O ILE A 525 3.281 11.374 -4.074 1.00 0.00 O +ATOM 233 CB ILE A 525 1.944 12.907 -1.492 1.00 0.00 C +ATOM 234 CG1 ILE A 525 0.688 13.747 -1.160 1.00 0.00 C +ATOM 235 CG2 ILE A 525 2.990 13.060 -0.376 1.00 0.00 C +ATOM 236 CD1 ILE A 525 0.790 15.251 -1.438 1.00 0.00 C +ATOM 237 H ILE A 525 0.856 12.438 -3.827 1.00 0.00 H +ATOM 238 HA ILE A 525 2.914 14.296 -2.788 1.00 0.00 H +ATOM 239 HB ILE A 525 1.642 11.858 -1.513 1.00 0.00 H +ATOM 240 HG12 ILE A 525 -0.169 13.356 -1.707 1.00 0.00 H +ATOM 241 HG13 ILE A 525 0.468 13.619 -0.114 1.00 0.00 H +ATOM 242 HG21 ILE A 525 3.805 12.347 -0.508 1.00 0.00 H +ATOM 243 HG22 ILE A 525 3.401 14.071 -0.374 1.00 0.00 H +ATOM 244 HG23 ILE A 525 2.541 12.866 0.598 1.00 0.00 H +ATOM 245 HD11 ILE A 525 -0.010 15.763 -0.906 1.00 0.00 H +ATOM 246 HD12 ILE A 525 1.750 15.636 -1.098 1.00 0.00 H +ATOM 247 HD13 ILE A 525 0.675 15.433 -2.507 1.00 0.00 H +ATOM 248 N LEU A 526 4.845 12.588 -3.005 1.00 0.00 N +ATOM 249 CA LEU A 526 6.001 11.782 -3.360 1.00 0.00 C +ATOM 250 C LEU A 526 6.865 11.643 -2.116 1.00 0.00 C +ATOM 251 O LEU A 526 6.635 12.278 -1.080 1.00 0.00 O +ATOM 252 CB LEU A 526 6.769 12.460 -4.516 1.00 0.00 C +ATOM 253 CG LEU A 526 6.793 11.783 -5.902 1.00 0.00 C +ATOM 254 CD1 LEU A 526 7.911 10.744 -5.954 1.00 0.00 C +ATOM 255 CD2 LEU A 526 5.460 11.163 -6.347 1.00 0.00 C +ATOM 256 H LEU A 526 5.040 13.381 -2.407 1.00 0.00 H +ATOM 257 HA LEU A 526 5.678 10.786 -3.657 1.00 0.00 H +ATOM 258 HB2 LEU A 526 6.335 13.433 -4.650 1.00 0.00 H +ATOM 259 HB3 LEU A 526 7.798 12.658 -4.213 1.00 0.00 H +ATOM 260 HG LEU A 526 7.043 12.547 -6.635 1.00 0.00 H +ATOM 261 HD11 LEU A 526 8.875 11.249 -5.899 1.00 0.00 H +ATOM 262 HD12 LEU A 526 7.839 10.086 -5.104 1.00 0.00 H +ATOM 263 HD13 LEU A 526 7.881 10.188 -6.892 1.00 0.00 H +ATOM 264 HD21 LEU A 526 5.545 10.783 -7.364 1.00 0.00 H +ATOM 265 HD22 LEU A 526 5.136 10.354 -5.697 1.00 0.00 H +ATOM 266 HD23 LEU A 526 4.691 11.935 -6.348 1.00 0.00 H +ATOM 267 N GLY A 527 7.892 10.817 -2.255 1.00 0.00 N +ATOM 268 CA GLY A 527 8.787 10.473 -1.168 1.00 0.00 C +ATOM 269 C GLY A 527 8.106 9.668 -0.062 1.00 0.00 C +ATOM 270 O GLY A 527 6.948 9.255 -0.156 1.00 0.00 O +ATOM 271 H GLY A 527 8.049 10.455 -3.182 1.00 0.00 H +ATOM 272 HA2 GLY A 527 9.628 9.905 -1.562 1.00 0.00 H +ATOM 273 HA3 GLY A 527 9.148 11.400 -0.734 1.00 0.00 H +ATOM 274 N THR A 528 8.860 9.410 1.000 1.00 0.00 N +ATOM 275 CA THR A 528 8.365 8.774 2.207 1.00 0.00 C +ATOM 276 C THR A 528 7.702 9.839 3.098 1.00 0.00 C +ATOM 277 O THR A 528 8.085 11.015 3.068 1.00 0.00 O +ATOM 278 CB THR A 528 9.559 8.079 2.877 1.00 0.00 C +ATOM 279 OG1 THR A 528 10.224 7.277 1.918 1.00 0.00 O +ATOM 280 CG2 THR A 528 9.205 7.193 4.077 1.00 0.00 C +ATOM 281 H THR A 528 9.797 9.780 1.052 1.00 0.00 H +ATOM 282 HA THR A 528 7.632 8.021 1.926 1.00 0.00 H +ATOM 283 HB THR A 528 10.252 8.846 3.214 1.00 0.00 H +ATOM 284 HG1 THR A 528 9.963 7.563 1.032 1.00 0.00 H +ATOM 285 HG21 THR A 528 8.531 6.395 3.777 1.00 0.00 H +ATOM 286 HG22 THR A 528 10.114 6.755 4.490 1.00 0.00 H +ATOM 287 HG23 THR A 528 8.722 7.783 4.853 1.00 0.00 H +ATOM 288 N VAL A 529 6.732 9.417 3.903 1.00 0.00 N +ATOM 289 CA VAL A 529 5.935 10.203 4.840 1.00 0.00 C +ATOM 290 C VAL A 529 5.707 9.368 6.114 1.00 0.00 C +ATOM 291 O VAL A 529 6.064 8.188 6.166 1.00 0.00 O +ATOM 292 CB VAL A 529 4.608 10.644 4.171 1.00 0.00 C +ATOM 293 CG1 VAL A 529 4.844 11.677 3.057 1.00 0.00 C +ATOM 294 CG2 VAL A 529 3.811 9.466 3.586 1.00 0.00 C +ATOM 295 H VAL A 529 6.482 8.434 3.850 1.00 0.00 H +ATOM 296 HA VAL A 529 6.498 11.093 5.125 1.00 0.00 H +ATOM 297 HB VAL A 529 3.991 11.125 4.930 1.00 0.00 H +ATOM 298 HG11 VAL A 529 5.371 11.230 2.213 1.00 0.00 H +ATOM 299 HG12 VAL A 529 3.886 12.063 2.708 1.00 0.00 H +ATOM 300 HG13 VAL A 529 5.429 12.513 3.440 1.00 0.00 H +ATOM 301 HG21 VAL A 529 3.546 8.762 4.375 1.00 0.00 H +ATOM 302 HG22 VAL A 529 2.902 9.837 3.119 1.00 0.00 H +ATOM 303 HG23 VAL A 529 4.390 8.952 2.822 1.00 0.00 H +ATOM 304 N SER A 530 5.105 9.963 7.144 1.00 0.00 N +ATOM 305 CA SER A 530 4.873 9.349 8.451 1.00 0.00 C +ATOM 306 C SER A 530 3.364 9.320 8.701 1.00 0.00 C +ATOM 307 O SER A 530 2.815 9.888 9.652 1.00 0.00 O +ATOM 308 CB SER A 530 5.752 10.049 9.495 1.00 0.00 C +ATOM 309 OG SER A 530 5.776 11.463 9.346 1.00 0.00 O +ATOM 310 H SER A 530 4.775 10.914 7.066 1.00 0.00 H +ATOM 311 HA SER A 530 5.197 8.308 8.427 1.00 0.00 H +ATOM 312 HB2 SER A 530 5.504 9.749 10.510 1.00 0.00 H +ATOM 313 HB3 SER A 530 6.755 9.684 9.332 1.00 0.00 H +ATOM 314 HG SER A 530 6.587 11.803 9.768 1.00 0.00 H +ATOM 315 N TRP A 531 2.686 8.693 7.744 1.00 0.00 N +ATOM 316 CA TRP A 531 1.277 8.358 7.753 1.00 0.00 C +ATOM 317 C TRP A 531 1.157 7.008 8.470 1.00 0.00 C +ATOM 318 O TRP A 531 2.092 6.577 9.146 1.00 0.00 O +ATOM 319 CB TRP A 531 0.767 8.357 6.297 1.00 0.00 C +ATOM 320 CG TRP A 531 0.756 9.676 5.571 1.00 0.00 C +ATOM 321 CD1 TRP A 531 1.134 10.871 6.079 1.00 0.00 C +ATOM 322 CD2 TRP A 531 0.419 9.945 4.173 1.00 0.00 C +ATOM 323 NE1 TRP A 531 1.111 11.836 5.093 1.00 0.00 N +ATOM 324 CE2 TRP A 531 0.692 11.316 3.891 1.00 0.00 C +ATOM 325 CE3 TRP A 531 -0.053 9.164 3.096 1.00 0.00 C +ATOM 326 CZ2 TRP A 531 0.546 11.868 2.609 1.00 0.00 C +ATOM 327 CZ3 TRP A 531 -0.192 9.700 1.802 1.00 0.00 C +ATOM 328 CH2 TRP A 531 0.117 11.047 1.554 1.00 0.00 C +ATOM 329 H TRP A 531 3.237 8.093 7.154 1.00 0.00 H +ATOM 330 HA TRP A 531 0.727 9.101 8.327 1.00 0.00 H +ATOM 331 HB2 TRP A 531 1.380 7.675 5.709 1.00 0.00 H +ATOM 332 HB3 TRP A 531 -0.240 7.965 6.269 1.00 0.00 H +ATOM 333 HD1 TRP A 531 1.446 11.040 7.098 1.00 0.00 H +ATOM 334 HE1 TRP A 531 1.462 12.784 5.217 1.00 0.00 H +ATOM 335 HE3 TRP A 531 -0.284 8.129 3.271 1.00 0.00 H +ATOM 336 HZ2 TRP A 531 0.786 12.908 2.430 1.00 0.00 H +ATOM 337 HZ3 TRP A 531 -0.516 9.071 0.989 1.00 0.00 H +ATOM 338 HH2 TRP A 531 0.015 11.450 0.557 1.00 0.00 H +ATOM 339 N ASN A 532 -0.006 6.353 8.402 1.00 0.00 N +ATOM 340 CA ASN A 532 -0.193 5.050 9.039 1.00 0.00 C +ATOM 341 C ASN A 532 -0.987 4.158 8.108 1.00 0.00 C +ATOM 342 O ASN A 532 -0.408 3.544 7.220 1.00 0.00 O +ATOM 343 CB ASN A 532 -0.814 5.194 10.438 1.00 0.00 C +ATOM 344 CG ASN A 532 0.245 5.694 11.399 1.00 0.00 C +ATOM 345 OD1 ASN A 532 1.028 4.904 11.913 1.00 0.00 O +ATOM 346 ND2 ASN A 532 0.301 7.002 11.595 1.00 0.00 N +ATOM 347 H ASN A 532 -0.716 6.710 7.787 1.00 0.00 H +ATOM 348 HA ASN A 532 0.782 4.569 9.162 1.00 0.00 H +ATOM 349 HB2 ASN A 532 -1.665 5.873 10.418 1.00 0.00 H +ATOM 350 HB3 ASN A 532 -1.145 4.218 10.791 1.00 0.00 H +ATOM 351 HD21 ASN A 532 -0.365 7.633 11.164 1.00 0.00 H +ATOM 352 HD22 ASN A 532 1.173 7.360 11.958 1.00 0.00 H +ATOM 353 N LEU A 533 -2.315 4.116 8.233 1.00 0.00 N +ATOM 354 CA LEU A 533 -3.185 3.270 7.419 1.00 0.00 C +ATOM 355 C LEU A 533 -4.392 4.069 6.943 1.00 0.00 C +ATOM 356 O LEU A 533 -4.664 4.098 5.749 1.00 0.00 O +ATOM 357 CB LEU A 533 -3.605 2.033 8.237 1.00 0.00 C +ATOM 358 CG LEU A 533 -4.573 1.079 7.514 1.00 0.00 C +ATOM 359 CD1 LEU A 533 -3.968 0.491 6.238 1.00 0.00 C +ATOM 360 CD2 LEU A 533 -4.938 -0.069 8.463 1.00 0.00 C +ATOM 361 H LEU A 533 -2.735 4.602 9.018 1.00 0.00 H +ATOM 362 HA LEU A 533 -2.633 2.934 6.534 1.00 0.00 H +ATOM 363 HB2 LEU A 533 -2.705 1.484 8.522 1.00 0.00 H +ATOM 364 HB3 LEU A 533 -4.102 2.368 9.147 1.00 0.00 H +ATOM 365 HG LEU A 533 -5.492 1.608 7.256 1.00 0.00 H +ATOM 366 HD11 LEU A 533 -3.010 0.016 6.452 1.00 0.00 H +ATOM 367 HD12 LEU A 533 -4.651 -0.242 5.808 1.00 0.00 H +ATOM 368 HD13 LEU A 533 -3.817 1.279 5.499 1.00 0.00 H +ATOM 369 HD21 LEU A 533 -4.040 -0.610 8.761 1.00 0.00 H +ATOM 370 HD22 LEU A 533 -5.422 0.333 9.356 1.00 0.00 H +ATOM 371 HD23 LEU A 533 -5.625 -0.753 7.968 1.00 0.00 H +ATOM 372 N ARG A 534 -5.125 4.749 7.830 1.00 0.00 N +ATOM 373 CA ARG A 534 -6.309 5.489 7.385 1.00 0.00 C +ATOM 374 C ARG A 534 -5.921 6.655 6.482 1.00 0.00 C +ATOM 375 O ARG A 534 -6.570 6.840 5.458 1.00 0.00 O +ATOM 376 CB ARG A 534 -7.132 6.014 8.562 1.00 0.00 C +ATOM 377 CG ARG A 534 -7.625 4.916 9.516 1.00 0.00 C +ATOM 378 CD ARG A 534 -8.798 5.498 10.301 1.00 0.00 C +ATOM 379 NE ARG A 534 -9.076 4.800 11.559 1.00 0.00 N +ATOM 380 CZ ARG A 534 -10.044 5.148 12.412 1.00 0.00 C +ATOM 381 NH1 ARG A 534 -10.942 6.070 12.070 1.00 0.00 N +ATOM 382 NH2 ARG A 534 -10.096 4.575 13.608 1.00 0.00 N +ATOM 383 H ARG A 534 -4.883 4.714 8.820 1.00 0.00 H +ATOM 384 HA ARG A 534 -6.924 4.811 6.779 1.00 0.00 H +ATOM 385 HB2 ARG A 534 -6.545 6.737 9.132 1.00 0.00 H +ATOM 386 HB3 ARG A 534 -7.995 6.539 8.145 1.00 0.00 H +ATOM 387 HG2 ARG A 534 -7.967 4.043 8.958 1.00 0.00 H +ATOM 388 HG3 ARG A 534 -6.820 4.631 10.194 1.00 0.00 H +ATOM 389 HD2 ARG A 534 -8.569 6.532 10.550 1.00 0.00 H +ATOM 390 HD3 ARG A 534 -9.684 5.472 9.668 1.00 0.00 H +ATOM 391 HE ARG A 534 -8.432 4.059 11.838 1.00 0.00 H +ATOM 392 HH11 ARG A 534 -10.878 6.553 11.175 1.00 0.00 H +ATOM 393 HH12 ARG A 534 -11.639 6.441 12.719 1.00 0.00 H +ATOM 394 HH21 ARG A 534 -9.375 3.924 13.906 1.00 0.00 H +ATOM 395 HH22 ARG A 534 -10.799 4.863 14.289 1.00 0.00 H +ATOM 396 N GLU A 535 -4.842 7.374 6.817 1.00 0.00 N +ATOM 397 CA GLU A 535 -4.302 8.455 5.986 1.00 0.00 C +ATOM 398 C GLU A 535 -4.062 7.963 4.557 1.00 0.00 C +ATOM 399 O GLU A 535 -4.356 8.628 3.564 1.00 0.00 O +ATOM 400 CB GLU A 535 -2.954 8.905 6.561 1.00 0.00 C +ATOM 401 CG GLU A 535 -3.045 9.486 7.970 1.00 0.00 C +ATOM 402 CD GLU A 535 -2.185 10.731 8.135 1.00 0.00 C +ATOM 403 OE1 GLU A 535 -2.650 11.811 7.701 1.00 0.00 O +ATOM 404 OE2 GLU A 535 -1.105 10.622 8.757 1.00 0.00 O +ATOM 405 H GLU A 535 -4.379 7.199 7.700 1.00 0.00 H +ATOM 406 HA GLU A 535 -4.987 9.302 5.983 1.00 0.00 H +ATOM 407 HB2 GLU A 535 -2.305 8.034 6.612 1.00 0.00 H +ATOM 408 HB3 GLU A 535 -2.502 9.630 5.884 1.00 0.00 H +ATOM 409 HG2 GLU A 535 -4.079 9.735 8.208 1.00 0.00 H +ATOM 410 HG3 GLU A 535 -2.690 8.727 8.665 1.00 0.00 H +ATOM 411 N MET A 536 -3.501 6.760 4.478 1.00 0.00 N +ATOM 412 CA MET A 536 -3.088 6.123 3.254 1.00 0.00 C +ATOM 413 C MET A 536 -4.309 5.760 2.432 1.00 0.00 C +ATOM 414 O MET A 536 -4.333 6.040 1.238 1.00 0.00 O +ATOM 415 CB MET A 536 -2.300 4.866 3.606 1.00 0.00 C +ATOM 416 CG MET A 536 -1.042 5.177 4.412 1.00 0.00 C +ATOM 417 SD MET A 536 0.323 5.601 3.341 1.00 0.00 S +ATOM 418 CE MET A 536 0.680 3.926 2.802 1.00 0.00 C +ATOM 419 H MET A 536 -3.351 6.246 5.330 1.00 0.00 H +ATOM 420 HA MET A 536 -2.456 6.805 2.682 1.00 0.00 H +ATOM 421 HB2 MET A 536 -2.909 4.163 4.162 1.00 0.00 H +ATOM 422 HB3 MET A 536 -2.027 4.388 2.674 1.00 0.00 H +ATOM 423 HG2 MET A 536 -1.211 5.982 5.126 1.00 0.00 H +ATOM 424 HG3 MET A 536 -0.760 4.292 4.970 1.00 0.00 H +ATOM 425 HE1 MET A 536 1.443 4.013 2.042 1.00 0.00 H +ATOM 426 HE2 MET A 536 1.026 3.335 3.651 1.00 0.00 H +ATOM 427 HE3 MET A 536 -0.205 3.449 2.381 1.00 0.00 H +ATOM 428 N LEU A 537 -5.309 5.143 3.070 1.00 0.00 N +ATOM 429 CA LEU A 537 -6.565 4.768 2.440 1.00 0.00 C +ATOM 430 C LEU A 537 -7.269 5.993 1.874 1.00 0.00 C +ATOM 431 O LEU A 537 -7.829 5.888 0.786 1.00 0.00 O +ATOM 432 CB LEU A 537 -7.475 4.020 3.436 1.00 0.00 C +ATOM 433 CG LEU A 537 -6.959 2.615 3.805 1.00 0.00 C +ATOM 434 CD1 LEU A 537 -7.846 1.939 4.856 1.00 0.00 C +ATOM 435 CD2 LEU A 537 -6.921 1.708 2.582 1.00 0.00 C +ATOM 436 H LEU A 537 -5.187 4.969 4.062 1.00 0.00 H +ATOM 437 HA LEU A 537 -6.339 4.121 1.594 1.00 0.00 H +ATOM 438 HB2 LEU A 537 -7.568 4.618 4.342 1.00 0.00 H +ATOM 439 HB3 LEU A 537 -8.465 3.921 2.987 1.00 0.00 H +ATOM 440 HG LEU A 537 -5.952 2.681 4.205 1.00 0.00 H +ATOM 441 HD11 LEU A 537 -7.361 1.021 5.192 1.00 0.00 H +ATOM 442 HD12 LEU A 537 -7.981 2.597 5.714 1.00 0.00 H +ATOM 443 HD13 LEU A 537 -8.805 1.678 4.417 1.00 0.00 H +ATOM 444 HD21 LEU A 537 -6.696 0.693 2.895 1.00 0.00 H +ATOM 445 HD22 LEU A 537 -7.873 1.742 2.057 1.00 0.00 H +ATOM 446 HD23 LEU A 537 -6.127 2.043 1.921 1.00 0.00 H +ATOM 447 N ALA A 538 -7.227 7.130 2.576 1.00 0.00 N +ATOM 448 CA ALA A 538 -7.780 8.378 2.077 1.00 0.00 C +ATOM 449 C ALA A 538 -7.055 8.796 0.795 1.00 0.00 C +ATOM 450 O ALA A 538 -7.690 8.882 -0.250 1.00 0.00 O +ATOM 451 CB ALA A 538 -7.714 9.457 3.166 1.00 0.00 C +ATOM 452 H ALA A 538 -6.766 7.144 3.480 1.00 0.00 H +ATOM 453 HA ALA A 538 -8.827 8.198 1.816 1.00 0.00 H +ATOM 454 HB1 ALA A 538 -8.239 9.121 4.061 1.00 0.00 H +ATOM 455 HB2 ALA A 538 -6.680 9.690 3.420 1.00 0.00 H +ATOM 456 HB3 ALA A 538 -8.191 10.361 2.792 1.00 0.00 H +ATOM 457 N HIS A 539 -5.734 9.006 0.838 1.00 0.00 N +ATOM 458 CA HIS A 539 -4.975 9.469 -0.328 1.00 0.00 C +ATOM 459 C HIS A 539 -5.092 8.512 -1.520 1.00 0.00 C +ATOM 460 O HIS A 539 -5.244 8.952 -2.662 1.00 0.00 O +ATOM 461 CB HIS A 539 -3.510 9.682 0.055 1.00 0.00 C +ATOM 462 CG HIS A 539 -2.703 10.234 -1.090 1.00 0.00 C +ATOM 463 ND1 HIS A 539 -2.952 11.423 -1.749 1.00 0.00 N +ATOM 464 CD2 HIS A 539 -1.665 9.604 -1.717 1.00 0.00 C +ATOM 465 CE1 HIS A 539 -2.062 11.526 -2.748 1.00 0.00 C +ATOM 466 NE2 HIS A 539 -1.259 10.439 -2.744 1.00 0.00 N +ATOM 467 H HIS A 539 -5.274 8.941 1.740 1.00 0.00 H +ATOM 468 HA HIS A 539 -5.395 10.431 -0.625 1.00 0.00 H +ATOM 469 HB2 HIS A 539 -3.459 10.388 0.883 1.00 0.00 H +ATOM 470 HB3 HIS A 539 -3.078 8.736 0.388 1.00 0.00 H +ATOM 471 HD1 HIS A 539 -3.752 12.061 -1.614 1.00 0.00 H +ATOM 472 HD2 HIS A 539 -1.271 8.625 -1.476 1.00 0.00 H +ATOM 473 HE1 HIS A 539 -2.057 12.349 -3.451 1.00 0.00 H +ATOM 474 HE2 HIS A 539 -0.491 10.252 -3.397 1.00 0.00 H +ATOM 475 N ALA A 540 -4.984 7.210 -1.263 1.00 0.00 N +ATOM 476 CA ALA A 540 -5.250 6.136 -2.207 1.00 0.00 C +ATOM 477 C ALA A 540 -6.600 6.333 -2.892 1.00 0.00 C +ATOM 478 O ALA A 540 -6.629 6.418 -4.117 1.00 0.00 O +ATOM 479 CB ALA A 540 -5.229 4.801 -1.459 1.00 0.00 C +ATOM 480 H ALA A 540 -4.715 6.947 -0.323 1.00 0.00 H +ATOM 481 HA ALA A 540 -4.482 6.129 -2.992 1.00 0.00 H +ATOM 482 HB1 ALA A 540 -5.943 4.808 -0.640 1.00 0.00 H +ATOM 483 HB2 ALA A 540 -5.511 4.012 -2.147 1.00 0.00 H +ATOM 484 HB3 ALA A 540 -4.233 4.601 -1.068 1.00 0.00 H +ATOM 485 N GLU A 541 -7.699 6.409 -2.129 1.00 0.00 N +ATOM 486 CA GLU A 541 -9.032 6.621 -2.673 1.00 0.00 C +ATOM 487 C GLU A 541 -9.047 7.891 -3.504 1.00 0.00 C +ATOM 488 O GLU A 541 -9.444 7.840 -4.661 1.00 0.00 O +ATOM 489 CB GLU A 541 -10.097 6.739 -1.568 1.00 0.00 C +ATOM 490 CG GLU A 541 -10.994 5.507 -1.470 1.00 0.00 C +ATOM 491 CD GLU A 541 -12.295 5.766 -0.710 1.00 0.00 C +ATOM 492 OE1 GLU A 541 -13.022 6.752 -0.989 1.00 0.00 O +ATOM 493 OE2 GLU A 541 -12.607 4.992 0.222 1.00 0.00 O +ATOM 494 H GLU A 541 -7.655 6.368 -1.116 1.00 0.00 H +ATOM 495 HA GLU A 541 -9.278 5.790 -3.335 1.00 0.00 H +ATOM 496 HB2 GLU A 541 -9.647 6.954 -0.600 1.00 0.00 H +ATOM 497 HB3 GLU A 541 -10.730 7.577 -1.811 1.00 0.00 H +ATOM 498 HG2 GLU A 541 -11.230 5.143 -2.467 1.00 0.00 H +ATOM 499 HG3 GLU A 541 -10.434 4.747 -0.939 1.00 0.00 H +ATOM 500 N GLU A 542 -8.618 9.003 -2.911 1.00 0.00 N +ATOM 501 CA GLU A 542 -8.623 10.346 -3.465 1.00 0.00 C +ATOM 502 C GLU A 542 -8.074 10.337 -4.885 1.00 0.00 C +ATOM 503 O GLU A 542 -8.736 10.769 -5.830 1.00 0.00 O +ATOM 504 CB GLU A 542 -7.813 11.246 -2.521 1.00 0.00 C +ATOM 505 CG GLU A 542 -7.381 12.611 -3.069 1.00 0.00 C +ATOM 506 CD GLU A 542 -6.418 13.247 -2.071 1.00 0.00 C +ATOM 507 OE1 GLU A 542 -5.258 12.786 -1.957 1.00 0.00 O +ATOM 508 OE2 GLU A 542 -6.845 14.142 -1.316 1.00 0.00 O +ATOM 509 H GLU A 542 -8.306 8.931 -1.945 1.00 0.00 H +ATOM 510 HA GLU A 542 -9.642 10.701 -3.490 1.00 0.00 H +ATOM 511 HB2 GLU A 542 -8.390 11.397 -1.609 1.00 0.00 H +ATOM 512 HB3 GLU A 542 -6.908 10.713 -2.253 1.00 0.00 H +ATOM 513 HG2 GLU A 542 -6.869 12.503 -4.024 1.00 0.00 H +ATOM 514 HG3 GLU A 542 -8.255 13.246 -3.213 1.00 0.00 H +ATOM 515 N THR A 543 -6.865 9.811 -5.032 1.00 0.00 N +ATOM 516 CA THR A 543 -6.126 9.865 -6.280 1.00 0.00 C +ATOM 517 C THR A 543 -6.364 8.636 -7.170 1.00 0.00 C +ATOM 518 O THR A 543 -5.873 8.593 -8.301 1.00 0.00 O +ATOM 519 CB THR A 543 -4.643 10.112 -5.974 1.00 0.00 C +ATOM 520 OG1 THR A 543 -4.102 9.164 -5.071 1.00 0.00 O +ATOM 521 CG2 THR A 543 -4.397 11.492 -5.361 1.00 0.00 C +ATOM 522 H THR A 543 -6.420 9.423 -4.209 1.00 0.00 H +ATOM 523 HA THR A 543 -6.484 10.725 -6.846 1.00 0.00 H +ATOM 524 HB THR A 543 -4.105 10.064 -6.920 1.00 0.00 H +ATOM 525 HG1 THR A 543 -4.595 9.202 -4.230 1.00 0.00 H +ATOM 526 HG21 THR A 543 -3.334 11.717 -5.383 1.00 0.00 H +ATOM 527 HG22 THR A 543 -4.922 12.258 -5.930 1.00 0.00 H +ATOM 528 HG23 THR A 543 -4.750 11.516 -4.332 1.00 0.00 H +ATOM 529 N ARG A 544 -7.136 7.649 -6.693 1.00 0.00 N +ATOM 530 CA ARG A 544 -7.280 6.304 -7.266 1.00 0.00 C +ATOM 531 C ARG A 544 -5.909 5.631 -7.486 1.00 0.00 C +ATOM 532 O ARG A 544 -5.740 4.833 -8.415 1.00 0.00 O +ATOM 533 CB ARG A 544 -8.209 6.288 -8.503 1.00 0.00 C +ATOM 534 CG ARG A 544 -9.700 6.550 -8.201 1.00 0.00 C +ATOM 535 CD ARG A 544 -10.010 8.011 -7.861 1.00 0.00 C +ATOM 536 NE ARG A 544 -11.450 8.334 -7.946 1.00 0.00 N +ATOM 537 CZ ARG A 544 -12.323 8.419 -6.929 1.00 0.00 C +ATOM 538 NH1 ARG A 544 -11.979 8.116 -5.684 1.00 0.00 N +ATOM 539 NH2 ARG A 544 -13.570 8.813 -7.146 1.00 0.00 N +ATOM 540 H ARG A 544 -7.522 7.759 -5.760 1.00 0.00 H +ATOM 541 HA ARG A 544 -7.798 5.709 -6.516 1.00 0.00 H +ATOM 542 HB2 ARG A 544 -7.849 6.991 -9.255 1.00 0.00 H +ATOM 543 HB3 ARG A 544 -8.164 5.293 -8.947 1.00 0.00 H +ATOM 544 HG2 ARG A 544 -10.268 6.289 -9.094 1.00 0.00 H +ATOM 545 HG3 ARG A 544 -10.036 5.907 -7.388 1.00 0.00 H +ATOM 546 HD2 ARG A 544 -9.633 8.264 -6.883 1.00 0.00 H +ATOM 547 HD3 ARG A 544 -9.454 8.631 -8.552 1.00 0.00 H +ATOM 548 HE ARG A 544 -11.768 8.544 -8.882 1.00 0.00 H +ATOM 549 HH11 ARG A 544 -11.003 7.909 -5.460 1.00 0.00 H +ATOM 550 HH12 ARG A 544 -12.620 8.194 -4.909 1.00 0.00 H +ATOM 551 HH21 ARG A 544 -13.881 9.167 -8.045 1.00 0.00 H +ATOM 552 HH22 ARG A 544 -14.247 8.874 -6.378 1.00 0.00 H +ATOM 553 N LYS A 545 -4.902 5.973 -6.668 1.00 0.00 N +ATOM 554 CA LYS A 545 -3.570 5.362 -6.726 1.00 0.00 C +ATOM 555 C LYS A 545 -3.639 3.907 -6.277 1.00 0.00 C +ATOM 556 O LYS A 545 -4.612 3.491 -5.640 1.00 0.00 O +ATOM 557 CB LYS A 545 -2.536 6.198 -5.952 1.00 0.00 C +ATOM 558 CG LYS A 545 -2.132 7.402 -6.821 1.00 0.00 C +ATOM 559 CD LYS A 545 -1.215 8.396 -6.101 1.00 0.00 C +ATOM 560 CE LYS A 545 -1.196 9.763 -6.810 1.00 0.00 C +ATOM 561 NZ LYS A 545 -0.654 9.702 -8.180 1.00 0.00 N +ATOM 562 H LYS A 545 -5.145 6.537 -5.865 1.00 0.00 H +ATOM 563 HA LYS A 545 -3.248 5.342 -7.759 1.00 0.00 H +ATOM 564 HB2 LYS A 545 -2.963 6.529 -5.005 1.00 0.00 H +ATOM 565 HB3 LYS A 545 -1.647 5.601 -5.743 1.00 0.00 H +ATOM 566 HG2 LYS A 545 -1.621 7.053 -7.722 1.00 0.00 H +ATOM 567 HG3 LYS A 545 -3.038 7.923 -7.123 1.00 0.00 H +ATOM 568 HD2 LYS A 545 -1.577 8.546 -5.084 1.00 0.00 H +ATOM 569 HD3 LYS A 545 -0.208 7.984 -6.037 1.00 0.00 H +ATOM 570 HE2 LYS A 545 -2.207 10.160 -6.850 1.00 0.00 H +ATOM 571 HE3 LYS A 545 -0.586 10.451 -6.229 1.00 0.00 H +ATOM 572 HZ1 LYS A 545 0.251 9.255 -8.175 1.00 0.00 H +ATOM 573 HZ2 LYS A 545 -1.308 9.246 -8.815 1.00 0.00 H +ATOM 574 HZ3 LYS A 545 -0.465 10.634 -8.553 1.00 0.00 H +ATOM 575 N LEU A 546 -2.610 3.124 -6.601 1.00 0.00 N +ATOM 576 CA LEU A 546 -2.615 1.675 -6.407 1.00 0.00 C +ATOM 577 C LEU A 546 -1.883 1.293 -5.116 1.00 0.00 C +ATOM 578 O LEU A 546 -0.834 1.848 -4.791 1.00 0.00 O +ATOM 579 CB LEU A 546 -2.017 1.025 -7.663 1.00 0.00 C +ATOM 580 CG LEU A 546 -1.767 -0.490 -7.569 1.00 0.00 C +ATOM 581 CD1 LEU A 546 -3.042 -1.329 -7.463 1.00 0.00 C +ATOM 582 CD2 LEU A 546 -0.988 -0.982 -8.792 1.00 0.00 C +ATOM 583 H LEU A 546 -1.816 3.538 -7.077 1.00 0.00 H +ATOM 584 HA LEU A 546 -3.647 1.339 -6.327 1.00 0.00 H +ATOM 585 HB2 LEU A 546 -2.686 1.221 -8.496 1.00 0.00 H +ATOM 586 HB3 LEU A 546 -1.075 1.522 -7.885 1.00 0.00 H +ATOM 587 HG LEU A 546 -1.162 -0.672 -6.688 1.00 0.00 H +ATOM 588 HD11 LEU A 546 -2.795 -2.383 -7.327 1.00 0.00 H +ATOM 589 HD12 LEU A 546 -3.632 -1.019 -6.609 1.00 0.00 H +ATOM 590 HD13 LEU A 546 -3.631 -1.222 -8.373 1.00 0.00 H +ATOM 591 HD21 LEU A 546 -1.613 -0.909 -9.682 1.00 0.00 H +ATOM 592 HD22 LEU A 546 -0.094 -0.381 -8.948 1.00 0.00 H +ATOM 593 HD23 LEU A 546 -0.703 -2.019 -8.640 1.00 0.00 H +ATOM 594 N MET A 547 -2.418 0.307 -4.397 1.00 0.00 N +ATOM 595 CA MET A 547 -2.010 -0.050 -3.048 1.00 0.00 C +ATOM 596 C MET A 547 -1.615 -1.535 -2.990 1.00 0.00 C +ATOM 597 O MET A 547 -2.499 -2.391 -2.883 1.00 0.00 O +ATOM 598 CB MET A 547 -3.164 0.286 -2.087 1.00 0.00 C +ATOM 599 CG MET A 547 -2.664 0.932 -0.802 1.00 0.00 C +ATOM 600 SD MET A 547 -3.998 1.133 0.393 1.00 0.00 S +ATOM 601 CE MET A 547 -3.204 2.245 1.560 1.00 0.00 C +ATOM 602 H MET A 547 -3.303 -0.074 -4.712 1.00 0.00 H +ATOM 603 HA MET A 547 -1.164 0.576 -2.766 1.00 0.00 H +ATOM 604 HB2 MET A 547 -3.872 0.966 -2.555 1.00 0.00 H +ATOM 605 HB3 MET A 547 -3.721 -0.605 -1.831 1.00 0.00 H +ATOM 606 HG2 MET A 547 -1.876 0.319 -0.361 1.00 0.00 H +ATOM 607 HG3 MET A 547 -2.259 1.914 -1.042 1.00 0.00 H +ATOM 608 HE1 MET A 547 -2.277 1.796 1.914 1.00 0.00 H +ATOM 609 HE2 MET A 547 -2.994 3.188 1.055 1.00 0.00 H +ATOM 610 HE3 MET A 547 -3.880 2.414 2.400 1.00 0.00 H +ATOM 611 N PRO A 548 -0.324 -1.896 -3.052 1.00 0.00 N +ATOM 612 CA PRO A 548 0.088 -3.269 -2.794 1.00 0.00 C +ATOM 613 C PRO A 548 -0.197 -3.600 -1.324 1.00 0.00 C +ATOM 614 O PRO A 548 0.144 -2.820 -0.427 1.00 0.00 O +ATOM 615 CB PRO A 548 1.573 -3.327 -3.154 1.00 0.00 C +ATOM 616 CG PRO A 548 2.049 -1.891 -2.943 1.00 0.00 C +ATOM 617 CD PRO A 548 0.825 -1.037 -3.276 1.00 0.00 C +ATOM 618 HA PRO A 548 -0.466 -3.949 -3.439 1.00 0.00 H +ATOM 619 HB2 PRO A 548 2.115 -4.040 -2.536 1.00 0.00 H +ATOM 620 HB3 PRO A 548 1.682 -3.593 -4.204 1.00 0.00 H +ATOM 621 HG2 PRO A 548 2.295 -1.738 -1.898 1.00 0.00 H +ATOM 622 HG3 PRO A 548 2.908 -1.660 -3.568 1.00 0.00 H +ATOM 623 HD2 PRO A 548 0.789 -0.167 -2.626 1.00 0.00 H +ATOM 624 HD3 PRO A 548 0.852 -0.719 -4.317 1.00 0.00 H +ATOM 625 N ILE A 549 -0.838 -4.737 -1.063 1.00 0.00 N +ATOM 626 CA ILE A 549 -1.202 -5.221 0.264 1.00 0.00 C +ATOM 627 C ILE A 549 -0.926 -6.725 0.278 1.00 0.00 C +ATOM 628 O ILE A 549 -0.973 -7.393 -0.753 1.00 0.00 O +ATOM 629 CB ILE A 549 -2.685 -4.875 0.558 1.00 0.00 C +ATOM 630 CG1 ILE A 549 -2.962 -3.364 0.644 1.00 0.00 C +ATOM 631 CG2 ILE A 549 -3.263 -5.526 1.822 1.00 0.00 C +ATOM 632 CD1 ILE A 549 -2.319 -2.603 1.799 1.00 0.00 C +ATOM 633 H ILE A 549 -1.074 -5.364 -1.833 1.00 0.00 H +ATOM 634 HA ILE A 549 -0.564 -4.754 1.013 1.00 0.00 H +ATOM 635 HB ILE A 549 -3.274 -5.249 -0.276 1.00 0.00 H +ATOM 636 HG12 ILE A 549 -2.656 -2.888 -0.285 1.00 0.00 H +ATOM 637 HG13 ILE A 549 -4.035 -3.236 0.751 1.00 0.00 H +ATOM 638 HG21 ILE A 549 -3.269 -6.612 1.717 1.00 0.00 H +ATOM 639 HG22 ILE A 549 -2.681 -5.241 2.694 1.00 0.00 H +ATOM 640 HG23 ILE A 549 -4.295 -5.207 1.963 1.00 0.00 H +ATOM 641 HD11 ILE A 549 -2.786 -2.881 2.741 1.00 0.00 H +ATOM 642 HD12 ILE A 549 -1.254 -2.804 1.849 1.00 0.00 H +ATOM 643 HD13 ILE A 549 -2.479 -1.539 1.626 1.00 0.00 H +ATOM 644 N CYS A 550 -0.665 -7.263 1.464 1.00 0.00 N +ATOM 645 CA CYS A 550 -0.418 -8.669 1.691 1.00 0.00 C +ATOM 646 C CYS A 550 -1.509 -9.181 2.621 1.00 0.00 C +ATOM 647 O CYS A 550 -1.576 -8.738 3.774 1.00 0.00 O +ATOM 648 CB CYS A 550 0.969 -8.826 2.317 1.00 0.00 C +ATOM 649 SG CYS A 550 1.592 -10.505 2.017 1.00 0.00 S +ATOM 650 H CYS A 550 -0.701 -6.665 2.280 1.00 0.00 H +ATOM 651 HA CYS A 550 -0.450 -9.200 0.739 1.00 0.00 H +ATOM 652 HB2 CYS A 550 1.646 -8.122 1.849 1.00 0.00 H +ATOM 653 HB3 CYS A 550 0.917 -8.592 3.384 1.00 0.00 H +ATOM 654 HG CYS A 550 1.438 -10.485 0.676 1.00 0.00 H +ATOM 655 N MET A 551 -2.339 -10.108 2.139 1.00 0.00 N +ATOM 656 CA MET A 551 -3.395 -10.757 2.911 1.00 0.00 C +ATOM 657 C MET A 551 -2.870 -11.355 4.222 1.00 0.00 C +ATOM 658 O MET A 551 -3.621 -11.415 5.193 1.00 0.00 O +ATOM 659 CB MET A 551 -4.121 -11.809 2.048 1.00 0.00 C +ATOM 660 CG MET A 551 -3.246 -13.010 1.643 1.00 0.00 C +ATOM 661 SD MET A 551 -4.076 -14.332 0.712 1.00 0.00 S +ATOM 662 CE MET A 551 -4.702 -13.435 -0.739 1.00 0.00 C +ATOM 663 H MET A 551 -2.275 -10.351 1.152 1.00 0.00 H +ATOM 664 HA MET A 551 -4.121 -9.988 3.170 1.00 0.00 H +ATOM 665 HB2 MET A 551 -4.980 -12.183 2.603 1.00 0.00 H +ATOM 666 HB3 MET A 551 -4.499 -11.319 1.151 1.00 0.00 H +ATOM 667 HG2 MET A 551 -2.403 -12.657 1.053 1.00 0.00 H +ATOM 668 HG3 MET A 551 -2.841 -13.463 2.545 1.00 0.00 H +ATOM 669 HE1 MET A 551 -5.129 -14.135 -1.459 1.00 0.00 H +ATOM 670 HE2 MET A 551 -5.470 -12.729 -0.432 1.00 0.00 H +ATOM 671 HE3 MET A 551 -3.898 -12.886 -1.221 1.00 0.00 H +ATOM 672 N ASP A 552 -1.589 -11.741 4.264 1.00 0.00 N +ATOM 673 CA ASP A 552 -0.847 -12.203 5.439 1.00 0.00 C +ATOM 674 C ASP A 552 -1.099 -11.311 6.656 1.00 0.00 C +ATOM 675 O ASP A 552 -1.321 -11.820 7.759 1.00 0.00 O +ATOM 676 CB ASP A 552 0.645 -12.221 5.071 1.00 0.00 C +ATOM 677 CG ASP A 552 1.600 -12.396 6.257 1.00 0.00 C +ATOM 678 OD1 ASP A 552 1.932 -11.390 6.928 1.00 0.00 O +ATOM 679 OD2 ASP A 552 2.129 -13.513 6.448 1.00 0.00 O +ATOM 680 H ASP A 552 -1.058 -11.637 3.412 1.00 0.00 H +ATOM 681 HA ASP A 552 -1.160 -13.217 5.689 1.00 0.00 H +ATOM 682 HB2 ASP A 552 0.815 -13.017 4.344 1.00 0.00 H +ATOM 683 HB3 ASP A 552 0.894 -11.279 4.586 1.00 0.00 H +ATOM 684 N VAL A 553 -1.113 -9.989 6.463 1.00 0.00 N +ATOM 685 CA VAL A 553 -1.252 -9.027 7.546 1.00 0.00 C +ATOM 686 C VAL A 553 -2.735 -8.792 7.812 1.00 0.00 C +ATOM 687 O VAL A 553 -3.304 -7.755 7.471 1.00 0.00 O +ATOM 688 CB VAL A 553 -0.451 -7.737 7.281 1.00 0.00 C +ATOM 689 CG1 VAL A 553 -0.253 -6.966 8.598 1.00 0.00 C +ATOM 690 CG2 VAL A 553 0.931 -7.991 6.665 1.00 0.00 C +ATOM 691 H VAL A 553 -1.036 -9.629 5.520 1.00 0.00 H +ATOM 692 HA VAL A 553 -0.838 -9.486 8.438 1.00 0.00 H +ATOM 693 HB VAL A 553 -1.008 -7.116 6.584 1.00 0.00 H +ATOM 694 HG11 VAL A 553 0.349 -6.075 8.426 1.00 0.00 H +ATOM 695 HG12 VAL A 553 -1.217 -6.669 9.008 1.00 0.00 H +ATOM 696 HG13 VAL A 553 0.267 -7.597 9.322 1.00 0.00 H +ATOM 697 HG21 VAL A 553 0.841 -8.461 5.687 1.00 0.00 H +ATOM 698 HG22 VAL A 553 1.462 -7.048 6.539 1.00 0.00 H +ATOM 699 HG23 VAL A 553 1.505 -8.643 7.322 1.00 0.00 H +ATOM 700 N ARG A 554 -3.374 -9.766 8.454 1.00 0.00 N +ATOM 701 CA ARG A 554 -4.791 -9.730 8.794 1.00 0.00 C +ATOM 702 C ARG A 554 -5.187 -8.469 9.563 1.00 0.00 C +ATOM 703 O ARG A 554 -6.309 -8.017 9.373 1.00 0.00 O +ATOM 704 CB ARG A 554 -5.149 -11.007 9.559 1.00 0.00 C +ATOM 705 CG ARG A 554 -5.360 -12.216 8.638 1.00 0.00 C +ATOM 706 CD ARG A 554 -6.732 -12.175 7.936 1.00 0.00 C +ATOM 707 NE ARG A 554 -7.408 -13.482 8.001 1.00 0.00 N +ATOM 708 CZ ARG A 554 -8.202 -14.074 7.101 1.00 0.00 C +ATOM 709 NH1 ARG A 554 -8.272 -13.646 5.846 1.00 0.00 N +ATOM 710 NH2 ARG A 554 -8.926 -15.112 7.500 1.00 0.00 N +ATOM 711 H ARG A 554 -2.837 -10.609 8.634 1.00 0.00 H +ATOM 712 HA ARG A 554 -5.354 -9.717 7.864 1.00 0.00 H +ATOM 713 HB2 ARG A 554 -4.340 -11.233 10.246 1.00 0.00 H +ATOM 714 HB3 ARG A 554 -6.050 -10.847 10.147 1.00 0.00 H +ATOM 715 HG2 ARG A 554 -4.553 -12.264 7.902 1.00 0.00 H +ATOM 716 HG3 ARG A 554 -5.304 -13.109 9.258 1.00 0.00 H +ATOM 717 HD2 ARG A 554 -7.375 -11.455 8.442 1.00 0.00 H +ATOM 718 HD3 ARG A 554 -6.612 -11.834 6.912 1.00 0.00 H +ATOM 719 HE ARG A 554 -7.357 -13.930 8.913 1.00 0.00 H +ATOM 720 HH11 ARG A 554 -7.462 -13.132 5.495 1.00 0.00 H +ATOM 721 HH12 ARG A 554 -8.806 -14.147 5.133 1.00 0.00 H +ATOM 722 HH21 ARG A 554 -8.829 -15.462 8.444 1.00 0.00 H +ATOM 723 HH22 ARG A 554 -9.568 -15.612 6.876 1.00 0.00 H +ATOM 724 N ALA A 555 -4.293 -7.836 10.332 1.00 0.00 N +ATOM 725 CA ALA A 555 -4.572 -6.562 10.998 1.00 0.00 C +ATOM 726 C ALA A 555 -4.947 -5.452 10.004 1.00 0.00 C +ATOM 727 O ALA A 555 -5.885 -4.680 10.224 1.00 0.00 O +ATOM 728 CB ALA A 555 -3.341 -6.147 11.816 1.00 0.00 C +ATOM 729 H ALA A 555 -3.412 -8.296 10.508 1.00 0.00 H +ATOM 730 HA ALA A 555 -5.419 -6.708 11.665 1.00 0.00 H +ATOM 731 HB1 ALA A 555 -3.550 -5.215 12.344 1.00 0.00 H +ATOM 732 HB2 ALA A 555 -3.100 -6.918 12.548 1.00 0.00 H +ATOM 733 HB3 ALA A 555 -2.481 -5.998 11.163 1.00 0.00 H +ATOM 734 N ILE A 556 -4.201 -5.359 8.902 1.00 0.00 N +ATOM 735 CA ILE A 556 -4.468 -4.432 7.807 1.00 0.00 C +ATOM 736 C ILE A 556 -5.814 -4.824 7.182 1.00 0.00 C +ATOM 737 O ILE A 556 -6.680 -3.965 6.977 1.00 0.00 O +ATOM 738 CB ILE A 556 -3.251 -4.462 6.841 1.00 0.00 C +ATOM 739 CG1 ILE A 556 -2.073 -3.701 7.494 1.00 0.00 C +ATOM 740 CG2 ILE A 556 -3.533 -3.922 5.433 1.00 0.00 C +ATOM 741 CD1 ILE A 556 -0.738 -3.878 6.764 1.00 0.00 C +ATOM 742 H ILE A 556 -3.527 -6.095 8.730 1.00 0.00 H +ATOM 743 HA ILE A 556 -4.572 -3.424 8.211 1.00 0.00 H +ATOM 744 HB ILE A 556 -2.942 -5.494 6.703 1.00 0.00 H +ATOM 745 HG12 ILE A 556 -2.308 -2.637 7.546 1.00 0.00 H +ATOM 746 HG13 ILE A 556 -1.930 -4.061 8.513 1.00 0.00 H +ATOM 747 HG21 ILE A 556 -2.644 -4.021 4.808 1.00 0.00 H +ATOM 748 HG22 ILE A 556 -4.307 -4.525 4.962 1.00 0.00 H +ATOM 749 HG23 ILE A 556 -3.843 -2.878 5.476 1.00 0.00 H +ATOM 750 HD11 ILE A 556 -0.761 -3.382 5.795 1.00 0.00 H +ATOM 751 HD12 ILE A 556 0.063 -3.449 7.368 1.00 0.00 H +ATOM 752 HD13 ILE A 556 -0.527 -4.931 6.608 1.00 0.00 H +ATOM 753 N MET A 557 -6.016 -6.118 6.924 1.00 0.00 N +ATOM 754 CA MET A 557 -7.198 -6.610 6.229 1.00 0.00 C +ATOM 755 C MET A 557 -8.471 -6.344 7.034 1.00 0.00 C +ATOM 756 O MET A 557 -9.469 -5.912 6.457 1.00 0.00 O +ATOM 757 CB MET A 557 -7.067 -8.102 5.876 1.00 0.00 C +ATOM 758 CG MET A 557 -5.750 -8.508 5.195 1.00 0.00 C +ATOM 759 SD MET A 557 -5.103 -7.333 3.981 1.00 0.00 S +ATOM 760 CE MET A 557 -6.469 -7.379 2.808 1.00 0.00 C +ATOM 761 H MET A 557 -5.279 -6.773 7.163 1.00 0.00 H +ATOM 762 HA MET A 557 -7.279 -6.049 5.299 1.00 0.00 H +ATOM 763 HB2 MET A 557 -7.183 -8.703 6.762 1.00 0.00 H +ATOM 764 HB3 MET A 557 -7.900 -8.360 5.229 1.00 0.00 H +ATOM 765 HG2 MET A 557 -4.991 -8.639 5.960 1.00 0.00 H +ATOM 766 HG3 MET A 557 -5.887 -9.479 4.715 1.00 0.00 H +ATOM 767 HE1 MET A 557 -6.423 -8.309 2.243 1.00 0.00 H +ATOM 768 HE2 MET A 557 -7.410 -7.325 3.358 1.00 0.00 H +ATOM 769 HE3 MET A 557 -6.387 -6.534 2.128 1.00 0.00 H +ATOM 770 N ALA A 558 -8.433 -6.525 8.356 1.00 0.00 N +ATOM 771 CA ALA A 558 -9.554 -6.327 9.265 1.00 0.00 C +ATOM 772 C ALA A 558 -10.001 -4.862 9.334 1.00 0.00 C +ATOM 773 O ALA A 558 -11.107 -4.593 9.809 1.00 0.00 O +ATOM 774 CB ALA A 558 -9.164 -6.835 10.658 1.00 0.00 C +ATOM 775 H ALA A 558 -7.584 -6.912 8.755 1.00 0.00 H +ATOM 776 HA ALA A 558 -10.396 -6.921 8.905 1.00 0.00 H +ATOM 777 HB1 ALA A 558 -10.011 -6.740 11.338 1.00 0.00 H +ATOM 778 HB2 ALA A 558 -8.872 -7.884 10.604 1.00 0.00 H +ATOM 779 HB3 ALA A 558 -8.329 -6.252 11.051 1.00 0.00 H +ATOM 780 N THR A 559 -9.177 -3.922 8.861 1.00 0.00 N +ATOM 781 CA THR A 559 -9.570 -2.539 8.650 1.00 0.00 C +ATOM 782 C THR A 559 -10.154 -2.392 7.243 1.00 0.00 C +ATOM 783 O THR A 559 -11.289 -1.930 7.117 1.00 0.00 O +ATOM 784 CB THR A 559 -8.358 -1.620 8.881 1.00 0.00 C +ATOM 785 OG1 THR A 559 -7.811 -1.850 10.168 1.00 0.00 O +ATOM 786 CG2 THR A 559 -8.743 -0.139 8.788 1.00 0.00 C +ATOM 787 H THR A 559 -8.282 -4.213 8.491 1.00 0.00 H +ATOM 788 HA THR A 559 -10.359 -2.279 9.363 1.00 0.00 H +ATOM 789 HB THR A 559 -7.595 -1.831 8.134 1.00 0.00 H +ATOM 790 HG1 THR A 559 -7.350 -2.704 10.160 1.00 0.00 H +ATOM 791 HG21 THR A 559 -9.555 0.082 9.479 1.00 0.00 H +ATOM 792 HG22 THR A 559 -7.884 0.486 9.032 1.00 0.00 H +ATOM 793 HG23 THR A 559 -9.064 0.101 7.774 1.00 0.00 H +ATOM 794 N ILE A 560 -9.410 -2.780 6.194 1.00 0.00 N +ATOM 795 CA ILE A 560 -9.837 -2.614 4.803 1.00 0.00 C +ATOM 796 C ILE A 560 -11.215 -3.247 4.619 1.00 0.00 C +ATOM 797 O ILE A 560 -12.174 -2.548 4.307 1.00 0.00 O +ATOM 798 CB ILE A 560 -8.807 -3.207 3.815 1.00 0.00 C +ATOM 799 CG1 ILE A 560 -7.459 -2.461 3.864 1.00 0.00 C +ATOM 800 CG2 ILE A 560 -9.343 -3.144 2.372 1.00 0.00 C +ATOM 801 CD1 ILE A 560 -6.328 -3.315 3.273 1.00 0.00 C +ATOM 802 H ILE A 560 -8.494 -3.192 6.351 1.00 0.00 H +ATOM 803 HA ILE A 560 -9.921 -1.547 4.596 1.00 0.00 H +ATOM 804 HB ILE A 560 -8.641 -4.253 4.078 1.00 0.00 H +ATOM 805 HG12 ILE A 560 -7.532 -1.524 3.316 1.00 0.00 H +ATOM 806 HG13 ILE A 560 -7.205 -2.203 4.889 1.00 0.00 H +ATOM 807 HG21 ILE A 560 -8.607 -3.531 1.670 1.00 0.00 H +ATOM 808 HG22 ILE A 560 -10.239 -3.753 2.253 1.00 0.00 H +ATOM 809 HG23 ILE A 560 -9.578 -2.113 2.097 1.00 0.00 H +ATOM 810 HD11 ILE A 560 -6.287 -4.272 3.789 1.00 0.00 H +ATOM 811 HD12 ILE A 560 -6.488 -3.500 2.211 1.00 0.00 H +ATOM 812 HD13 ILE A 560 -5.378 -2.802 3.400 1.00 0.00 H +ATOM 813 N GLN A 561 -11.341 -4.556 4.840 1.00 0.00 N +ATOM 814 CA GLN A 561 -12.565 -5.269 4.516 1.00 0.00 C +ATOM 815 C GLN A 561 -13.778 -4.704 5.285 1.00 0.00 C +ATOM 816 O GLN A 561 -14.916 -4.886 4.853 1.00 0.00 O +ATOM 817 CB GLN A 561 -12.413 -6.762 4.801 1.00 0.00 C +ATOM 818 CG GLN A 561 -11.308 -7.483 4.008 1.00 0.00 C +ATOM 819 CD GLN A 561 -11.475 -8.968 4.249 1.00 0.00 C +ATOM 820 OE1 GLN A 561 -10.846 -9.558 5.121 1.00 0.00 O +ATOM 821 NE2 GLN A 561 -12.324 -9.620 3.475 1.00 0.00 N +ATOM 822 H GLN A 561 -10.554 -5.080 5.211 1.00 0.00 H +ATOM 823 HA GLN A 561 -12.717 -5.164 3.442 1.00 0.00 H +ATOM 824 HB2 GLN A 561 -12.224 -6.902 5.864 1.00 0.00 H +ATOM 825 HB3 GLN A 561 -13.366 -7.237 4.572 1.00 0.00 H +ATOM 826 HG2 GLN A 561 -11.347 -7.306 2.924 1.00 0.00 H +ATOM 827 HG3 GLN A 561 -10.330 -7.169 4.365 1.00 0.00 H +ATOM 828 HE21 GLN A 561 -12.913 -9.143 2.801 1.00 0.00 H +ATOM 829 HE22 GLN A 561 -12.483 -10.589 3.731 1.00 0.00 H +ATOM 830 N ARG A 562 -13.570 -4.019 6.421 1.00 0.00 N +ATOM 831 CA ARG A 562 -14.619 -3.362 7.188 1.00 0.00 C +ATOM 832 C ARG A 562 -14.967 -1.977 6.633 1.00 0.00 C +ATOM 833 O ARG A 562 -16.137 -1.590 6.676 1.00 0.00 O +ATOM 834 CB ARG A 562 -14.142 -3.297 8.644 1.00 0.00 C +ATOM 835 CG ARG A 562 -15.234 -2.782 9.580 1.00 0.00 C +ATOM 836 CD ARG A 562 -14.807 -2.975 11.032 1.00 0.00 C +ATOM 837 NE ARG A 562 -15.909 -2.694 11.968 1.00 0.00 N +ATOM 838 CZ ARG A 562 -15.826 -2.701 13.302 1.00 0.00 C +ATOM 839 NH1 ARG A 562 -14.645 -2.698 13.911 1.00 0.00 N +ATOM 840 NH2 ARG A 562 -16.935 -2.717 14.034 1.00 0.00 N +ATOM 841 H ARG A 562 -12.631 -3.897 6.775 1.00 0.00 H +ATOM 842 HA ARG A 562 -15.519 -3.976 7.141 1.00 0.00 H +ATOM 843 HB2 ARG A 562 -13.862 -4.304 8.958 1.00 0.00 H +ATOM 844 HB3 ARG A 562 -13.267 -2.651 8.729 1.00 0.00 H +ATOM 845 HG2 ARG A 562 -15.386 -1.722 9.390 1.00 0.00 H +ATOM 846 HG3 ARG A 562 -16.155 -3.335 9.398 1.00 0.00 H +ATOM 847 HD2 ARG A 562 -14.492 -4.010 11.158 1.00 0.00 H +ATOM 848 HD3 ARG A 562 -13.959 -2.328 11.233 1.00 0.00 H +ATOM 849 HE ARG A 562 -16.832 -2.599 11.543 1.00 0.00 H +ATOM 850 HH11 ARG A 562 -13.780 -2.542 13.402 1.00 0.00 H +ATOM 851 HH12 ARG A 562 -14.557 -2.931 14.898 1.00 0.00 H +ATOM 852 HH21 ARG A 562 -17.857 -2.798 13.601 1.00 0.00 H +ATOM 853 HH22 ARG A 562 -16.928 -2.735 15.041 1.00 0.00 H +ATOM 854 N LYS A 563 -13.984 -1.210 6.149 1.00 0.00 N +ATOM 855 CA LYS A 563 -14.185 0.102 5.516 1.00 0.00 C +ATOM 856 C LYS A 563 -14.874 -0.031 4.155 1.00 0.00 C +ATOM 857 O LYS A 563 -15.551 0.897 3.703 1.00 0.00 O +ATOM 858 CB LYS A 563 -12.817 0.793 5.350 1.00 0.00 C +ATOM 859 CG LYS A 563 -12.944 2.279 4.970 1.00 0.00 C +ATOM 860 CD LYS A 563 -11.636 3.056 5.168 1.00 0.00 C +ATOM 861 CE LYS A 563 -11.752 4.439 4.520 1.00 0.00 C +ATOM 862 NZ LYS A 563 -10.659 5.365 4.886 1.00 0.00 N +ATOM 863 H LYS A 563 -13.042 -1.587 6.148 1.00 0.00 H +ATOM 864 HA LYS A 563 -14.820 0.712 6.157 1.00 0.00 H +ATOM 865 HB2 LYS A 563 -12.244 0.694 6.264 1.00 0.00 H +ATOM 866 HB3 LYS A 563 -12.241 0.279 4.589 1.00 0.00 H +ATOM 867 HG2 LYS A 563 -13.251 2.353 3.927 1.00 0.00 H +ATOM 868 HG3 LYS A 563 -13.711 2.744 5.587 1.00 0.00 H +ATOM 869 HD2 LYS A 563 -11.443 3.156 6.236 1.00 0.00 H +ATOM 870 HD3 LYS A 563 -10.821 2.515 4.697 1.00 0.00 H +ATOM 871 HE2 LYS A 563 -11.771 4.319 3.434 1.00 0.00 H +ATOM 872 HE3 LYS A 563 -12.703 4.892 4.814 1.00 0.00 H +ATOM 873 HZ1 LYS A 563 -10.799 6.254 4.409 1.00 0.00 H +ATOM 874 HZ2 LYS A 563 -10.670 5.611 5.872 1.00 0.00 H +ATOM 875 HZ3 LYS A 563 -9.754 5.038 4.604 1.00 0.00 H +ATOM 876 N TYR A 564 -14.689 -1.178 3.507 1.00 0.00 N +ATOM 877 CA TYR A 564 -15.138 -1.479 2.164 1.00 0.00 C +ATOM 878 C TYR A 564 -15.912 -2.792 2.249 1.00 0.00 C +ATOM 879 O TYR A 564 -15.369 -3.851 1.949 1.00 0.00 O +ATOM 880 CB TYR A 564 -13.908 -1.558 1.243 1.00 0.00 C +ATOM 881 CG TYR A 564 -13.041 -0.311 1.207 1.00 0.00 C +ATOM 882 CD1 TYR A 564 -13.357 0.725 0.317 1.00 0.00 C +ATOM 883 CD2 TYR A 564 -11.922 -0.178 2.053 1.00 0.00 C +ATOM 884 CE1 TYR A 564 -12.575 1.892 0.289 1.00 0.00 C +ATOM 885 CE2 TYR A 564 -11.147 0.991 2.051 1.00 0.00 C +ATOM 886 CZ TYR A 564 -11.504 2.059 1.199 1.00 0.00 C +ATOM 887 OH TYR A 564 -10.865 3.252 1.319 1.00 0.00 O +ATOM 888 H TYR A 564 -14.064 -1.861 3.914 1.00 0.00 H +ATOM 889 HA TYR A 564 -15.803 -0.698 1.797 1.00 0.00 H +ATOM 890 HB2 TYR A 564 -13.283 -2.404 1.533 1.00 0.00 H +ATOM 891 HB3 TYR A 564 -14.272 -1.746 0.239 1.00 0.00 H +ATOM 892 HD1 TYR A 564 -14.209 0.635 -0.345 1.00 0.00 H +ATOM 893 HD2 TYR A 564 -11.669 -0.936 2.766 1.00 0.00 H +ATOM 894 HE1 TYR A 564 -12.837 2.663 -0.419 1.00 0.00 H +ATOM 895 HE2 TYR A 564 -10.301 1.061 2.716 1.00 0.00 H +ATOM 896 HH TYR A 564 -11.382 3.948 0.861 1.00 0.00 H +ATOM 897 N LYS A 565 -17.137 -2.750 2.780 1.00 0.00 N +ATOM 898 CA LYS A 565 -17.847 -3.935 3.236 1.00 0.00 C +ATOM 899 C LYS A 565 -18.086 -4.964 2.131 1.00 0.00 C +ATOM 900 O LYS A 565 -18.048 -4.664 0.940 1.00 0.00 O +ATOM 901 CB LYS A 565 -19.113 -3.511 3.986 1.00 0.00 C +ATOM 902 CG LYS A 565 -20.289 -3.275 3.038 1.00 0.00 C +ATOM 903 CD LYS A 565 -21.616 -3.001 3.753 1.00 0.00 C +ATOM 904 CE LYS A 565 -22.019 -4.229 4.576 1.00 0.00 C +ATOM 905 NZ LYS A 565 -23.422 -4.174 5.010 1.00 0.00 N +ATOM 906 H LYS A 565 -17.567 -1.857 3.001 1.00 0.00 H +ATOM 907 HA LYS A 565 -17.225 -4.415 3.967 1.00 0.00 H +ATOM 908 HB2 LYS A 565 -19.354 -4.308 4.678 1.00 0.00 H +ATOM 909 HB3 LYS A 565 -18.922 -2.610 4.570 1.00 0.00 H +ATOM 910 HG2 LYS A 565 -20.047 -2.447 2.376 1.00 0.00 H +ATOM 911 HG3 LYS A 565 -20.406 -4.169 2.437 1.00 0.00 H +ATOM 912 HD2 LYS A 565 -21.521 -2.123 4.395 1.00 0.00 H +ATOM 913 HD3 LYS A 565 -22.377 -2.811 2.996 1.00 0.00 H +ATOM 914 HE2 LYS A 565 -21.882 -5.124 3.965 1.00 0.00 H +ATOM 915 HE3 LYS A 565 -21.375 -4.300 5.454 1.00 0.00 H +ATOM 916 HZ1 LYS A 565 -23.604 -3.341 5.560 1.00 0.00 H +ATOM 917 HZ2 LYS A 565 -24.056 -4.203 4.213 1.00 0.00 H +ATOM 918 HZ3 LYS A 565 -23.627 -4.961 5.620 1.00 0.00 H +ATOM 919 N GLY A 566 -18.425 -6.188 2.535 1.00 0.00 N +ATOM 920 CA GLY A 566 -18.905 -7.233 1.639 1.00 0.00 C +ATOM 921 C GLY A 566 -17.782 -7.970 0.915 1.00 0.00 C +ATOM 922 O GLY A 566 -17.978 -9.098 0.465 1.00 0.00 O +ATOM 923 H GLY A 566 -18.444 -6.389 3.522 1.00 0.00 H +ATOM 924 HA2 GLY A 566 -19.481 -7.948 2.220 1.00 0.00 H +ATOM 925 HA3 GLY A 566 -19.569 -6.791 0.893 1.00 0.00 H +ATOM 926 N ILE A 567 -16.600 -7.374 0.803 1.00 0.00 N +ATOM 927 CA ILE A 567 -15.404 -7.999 0.263 1.00 0.00 C +ATOM 928 C ILE A 567 -14.971 -9.158 1.184 1.00 0.00 C +ATOM 929 O ILE A 567 -15.062 -9.035 2.412 1.00 0.00 O +ATOM 930 CB ILE A 567 -14.363 -6.873 0.130 1.00 0.00 C +ATOM 931 CG1 ILE A 567 -13.194 -7.271 -0.772 1.00 0.00 C +ATOM 932 CG2 ILE A 567 -13.863 -6.383 1.492 1.00 0.00 C +ATOM 933 CD1 ILE A 567 -12.047 -6.257 -0.727 1.00 0.00 C +ATOM 934 H ILE A 567 -16.508 -6.422 1.132 1.00 0.00 H +ATOM 935 HA ILE A 567 -15.633 -8.387 -0.728 1.00 0.00 H +ATOM 936 HB ILE A 567 -14.850 -6.031 -0.349 1.00 0.00 H +ATOM 937 HG12 ILE A 567 -12.806 -8.228 -0.449 1.00 0.00 H +ATOM 938 HG13 ILE A 567 -13.553 -7.370 -1.797 1.00 0.00 H +ATOM 939 HG21 ILE A 567 -13.179 -7.110 1.902 1.00 0.00 H +ATOM 940 HG22 ILE A 567 -13.361 -5.421 1.356 1.00 0.00 H +ATOM 941 HG23 ILE A 567 -14.687 -6.239 2.188 1.00 0.00 H +ATOM 942 HD11 ILE A 567 -11.443 -6.432 0.169 1.00 0.00 H +ATOM 943 HD12 ILE A 567 -11.422 -6.357 -1.610 1.00 0.00 H +ATOM 944 HD13 ILE A 567 -12.447 -5.245 -0.696 1.00 0.00 H +ATOM 945 N LYS A 568 -14.439 -10.267 0.649 1.00 0.00 N +ATOM 946 CA LYS A 568 -14.119 -11.455 1.464 1.00 0.00 C +ATOM 947 C LYS A 568 -12.752 -12.070 1.129 1.00 0.00 C +ATOM 948 O LYS A 568 -12.598 -13.284 1.147 1.00 0.00 O +ATOM 949 CB LYS A 568 -15.302 -12.443 1.363 1.00 0.00 C +ATOM 950 CG LYS A 568 -15.289 -13.521 2.465 1.00 0.00 C +ATOM 951 CD LYS A 568 -16.699 -13.820 2.982 1.00 0.00 C +ATOM 952 CE LYS A 568 -16.669 -14.949 4.016 1.00 0.00 C +ATOM 953 NZ LYS A 568 -17.874 -14.935 4.872 1.00 0.00 N +ATOM 954 H LYS A 568 -14.422 -10.347 -0.362 1.00 0.00 H +ATOM 955 HA LYS A 568 -14.059 -11.157 2.505 1.00 0.00 H +ATOM 956 HB2 LYS A 568 -16.228 -11.870 1.447 1.00 0.00 H +ATOM 957 HB3 LYS A 568 -15.298 -12.926 0.385 1.00 0.00 H +ATOM 958 HG2 LYS A 568 -14.850 -14.434 2.063 1.00 0.00 H +ATOM 959 HG3 LYS A 568 -14.684 -13.182 3.307 1.00 0.00 H +ATOM 960 HD2 LYS A 568 -17.104 -12.912 3.431 1.00 0.00 H +ATOM 961 HD3 LYS A 568 -17.334 -14.123 2.150 1.00 0.00 H +ATOM 962 HE2 LYS A 568 -16.590 -15.903 3.490 1.00 0.00 H +ATOM 963 HE3 LYS A 568 -15.787 -14.833 4.647 1.00 0.00 H +ATOM 964 HZ1 LYS A 568 -18.718 -14.757 4.336 1.00 0.00 H +ATOM 965 HZ2 LYS A 568 -18.010 -15.814 5.362 1.00 0.00 H +ATOM 966 HZ3 LYS A 568 -17.794 -14.235 5.602 1.00 0.00 H +ATOM 967 N ILE A 569 -11.737 -11.217 0.968 1.00 0.00 N +ATOM 968 CA ILE A 569 -10.388 -11.468 0.453 1.00 0.00 C +ATOM 969 C ILE A 569 -10.395 -12.204 -0.888 1.00 0.00 C +ATOM 970 O ILE A 569 -11.237 -13.052 -1.181 1.00 0.00 O +ATOM 971 CB ILE A 569 -9.439 -12.078 1.511 1.00 0.00 C +ATOM 972 CG1 ILE A 569 -9.341 -11.214 2.782 1.00 0.00 C +ATOM 973 CG2 ILE A 569 -8.009 -12.233 0.966 1.00 0.00 C +ATOM 974 CD1 ILE A 569 -9.012 -9.731 2.523 1.00 0.00 C +ATOM 975 H ILE A 569 -11.941 -10.263 1.188 1.00 0.00 H +ATOM 976 HA ILE A 569 -9.978 -10.487 0.230 1.00 0.00 H +ATOM 977 HB ILE A 569 -9.817 -13.060 1.792 1.00 0.00 H +ATOM 978 HG12 ILE A 569 -10.281 -11.298 3.317 1.00 0.00 H +ATOM 979 HG13 ILE A 569 -8.576 -11.628 3.441 1.00 0.00 H +ATOM 980 HG21 ILE A 569 -7.664 -11.294 0.528 1.00 0.00 H +ATOM 981 HG22 ILE A 569 -7.327 -12.535 1.761 1.00 0.00 H +ATOM 982 HG23 ILE A 569 -7.977 -13.009 0.202 1.00 0.00 H +ATOM 983 HD11 ILE A 569 -8.121 -9.633 1.912 1.00 0.00 H +ATOM 984 HD12 ILE A 569 -9.841 -9.216 2.034 1.00 0.00 H +ATOM 985 HD13 ILE A 569 -8.831 -9.233 3.469 1.00 0.00 H +ATOM 986 N GLN A 570 -9.450 -11.800 -1.726 1.00 0.00 N +ATOM 987 CA GLN A 570 -9.250 -12.214 -3.096 1.00 0.00 C +ATOM 988 C GLN A 570 -7.734 -12.320 -3.283 1.00 0.00 C +ATOM 989 O GLN A 570 -6.985 -12.107 -2.328 1.00 0.00 O +ATOM 990 CB GLN A 570 -9.856 -11.168 -4.046 1.00 0.00 C +ATOM 991 CG GLN A 570 -11.214 -10.578 -3.621 1.00 0.00 C +ATOM 992 CD GLN A 570 -11.110 -9.151 -3.096 1.00 0.00 C +ATOM 993 OE1 GLN A 570 -11.342 -8.232 -3.870 1.00 0.00 O +ATOM 994 NE2 GLN A 570 -10.805 -8.875 -1.824 1.00 0.00 N +ATOM 995 H GLN A 570 -8.662 -11.263 -1.387 1.00 0.00 H +ATOM 996 HA GLN A 570 -9.713 -13.183 -3.268 1.00 0.00 H +ATOM 997 HB2 GLN A 570 -9.143 -10.357 -4.154 1.00 0.00 H +ATOM 998 HB3 GLN A 570 -9.964 -11.624 -5.030 1.00 0.00 H +ATOM 999 HG2 GLN A 570 -11.842 -10.543 -4.506 1.00 0.00 H +ATOM 1000 HG3 GLN A 570 -11.726 -11.206 -2.910 1.00 0.00 H +ATOM 1001 HE21 GLN A 570 -10.796 -9.470 -1.007 1.00 0.00 H +ATOM 1002 HE22 GLN A 570 -10.684 -7.877 -1.705 1.00 0.00 H +ATOM 1003 N GLU A 571 -7.275 -12.559 -4.502 1.00 0.00 N +ATOM 1004 CA GLU A 571 -5.887 -12.353 -4.886 1.00 0.00 C +ATOM 1005 C GLU A 571 -5.866 -11.321 -6.012 1.00 0.00 C +ATOM 1006 O GLU A 571 -6.923 -10.974 -6.551 1.00 0.00 O +ATOM 1007 CB GLU A 571 -5.283 -13.690 -5.334 1.00 0.00 C +ATOM 1008 CG GLU A 571 -3.839 -13.869 -4.870 1.00 0.00 C +ATOM 1009 CD GLU A 571 -3.244 -15.148 -5.461 1.00 0.00 C +ATOM 1010 OE1 GLU A 571 -3.798 -16.238 -5.179 1.00 0.00 O +ATOM 1011 OE2 GLU A 571 -2.241 -15.052 -6.196 1.00 0.00 O +ATOM 1012 H GLU A 571 -7.919 -12.629 -5.278 1.00 0.00 H +ATOM 1013 HA GLU A 571 -5.320 -11.961 -4.040 1.00 0.00 H +ATOM 1014 HB2 GLU A 571 -5.870 -14.508 -4.918 1.00 0.00 H +ATOM 1015 HB3 GLU A 571 -5.321 -13.763 -6.418 1.00 0.00 H +ATOM 1016 HG2 GLU A 571 -3.235 -12.995 -5.139 1.00 0.00 H +ATOM 1017 HG3 GLU A 571 -3.842 -13.948 -3.785 1.00 0.00 H +ATOM 1018 N GLY A 572 -4.676 -10.875 -6.407 1.00 0.00 N +ATOM 1019 CA GLY A 572 -4.536 -10.111 -7.635 1.00 0.00 C +ATOM 1020 C GLY A 572 -4.875 -8.646 -7.456 1.00 0.00 C +ATOM 1021 O GLY A 572 -4.879 -8.108 -6.348 1.00 0.00 O +ATOM 1022 H GLY A 572 -3.852 -11.106 -5.862 1.00 0.00 H +ATOM 1023 HA2 GLY A 572 -3.522 -10.165 -8.015 1.00 0.00 H +ATOM 1024 HA3 GLY A 572 -5.202 -10.541 -8.380 1.00 0.00 H +ATOM 1025 N ILE A 573 -5.060 -7.965 -8.580 1.00 0.00 N +ATOM 1026 CA ILE A 573 -5.449 -6.568 -8.618 1.00 0.00 C +ATOM 1027 C ILE A 573 -6.888 -6.492 -8.107 1.00 0.00 C +ATOM 1028 O ILE A 573 -7.838 -6.852 -8.804 1.00 0.00 O +ATOM 1029 CB ILE A 573 -5.222 -6.008 -10.032 1.00 0.00 C +ATOM 1030 CG1 ILE A 573 -3.696 -5.882 -10.257 1.00 0.00 C +ATOM 1031 CG2 ILE A 573 -5.923 -4.646 -10.199 1.00 0.00 C +ATOM 1032 CD1 ILE A 573 -3.284 -5.523 -11.685 1.00 0.00 C +ATOM 1033 H ILE A 573 -5.083 -8.486 -9.451 1.00 0.00 H +ATOM 1034 HA ILE A 573 -4.810 -6.007 -7.939 1.00 0.00 H +ATOM 1035 HB ILE A 573 -5.625 -6.728 -10.746 1.00 0.00 H +ATOM 1036 HG12 ILE A 573 -3.285 -5.136 -9.574 1.00 0.00 H +ATOM 1037 HG13 ILE A 573 -3.224 -6.836 -10.029 1.00 0.00 H +ATOM 1038 HG21 ILE A 573 -5.539 -3.938 -9.463 1.00 0.00 H +ATOM 1039 HG22 ILE A 573 -5.766 -4.258 -11.204 1.00 0.00 H +ATOM 1040 HG23 ILE A 573 -6.999 -4.758 -10.046 1.00 0.00 H +ATOM 1041 HD11 ILE A 573 -3.595 -4.506 -11.924 1.00 0.00 H +ATOM 1042 HD12 ILE A 573 -2.197 -5.592 -11.770 1.00 0.00 H +ATOM 1043 HD13 ILE A 573 -3.739 -6.224 -12.384 1.00 0.00 H +ATOM 1044 N VAL A 574 -7.035 -6.023 -6.874 1.00 0.00 N +ATOM 1045 CA VAL A 574 -8.302 -5.891 -6.193 1.00 0.00 C +ATOM 1046 C VAL A 574 -8.778 -4.460 -6.364 1.00 0.00 C +ATOM 1047 O VAL A 574 -8.469 -3.557 -5.599 1.00 0.00 O +ATOM 1048 CB VAL A 574 -8.168 -6.393 -4.734 1.00 0.00 C +ATOM 1049 CG1 VAL A 574 -9.307 -5.923 -3.817 1.00 0.00 C +ATOM 1050 CG2 VAL A 574 -8.099 -7.925 -4.698 1.00 0.00 C +ATOM 1051 H VAL A 574 -6.211 -5.658 -6.413 1.00 0.00 H +ATOM 1052 HA VAL A 574 -9.028 -6.496 -6.736 1.00 0.00 H +ATOM 1053 HB VAL A 574 -7.232 -6.030 -4.314 1.00 0.00 H +ATOM 1054 HG11 VAL A 574 -10.263 -6.084 -4.307 1.00 0.00 H +ATOM 1055 HG12 VAL A 574 -9.275 -6.455 -2.868 1.00 0.00 H +ATOM 1056 HG13 VAL A 574 -9.210 -4.862 -3.598 1.00 0.00 H +ATOM 1057 HG21 VAL A 574 -8.955 -8.358 -5.214 1.00 0.00 H +ATOM 1058 HG22 VAL A 574 -7.178 -8.259 -5.176 1.00 0.00 H +ATOM 1059 HG23 VAL A 574 -8.099 -8.279 -3.666 1.00 0.00 H +ATOM 1060 N ASP A 575 -9.568 -4.252 -7.403 1.00 0.00 N +ATOM 1061 CA ASP A 575 -10.452 -3.106 -7.489 1.00 0.00 C +ATOM 1062 C ASP A 575 -11.573 -3.297 -6.465 1.00 0.00 C +ATOM 1063 O ASP A 575 -12.542 -4.015 -6.744 1.00 0.00 O +ATOM 1064 CB ASP A 575 -10.974 -3.022 -8.919 1.00 0.00 C +ATOM 1065 CG ASP A 575 -12.092 -1.991 -9.073 1.00 0.00 C +ATOM 1066 OD1 ASP A 575 -12.110 -0.983 -8.328 1.00 0.00 O +ATOM 1067 OD2 ASP A 575 -12.992 -2.238 -9.908 1.00 0.00 O +ATOM 1068 H ASP A 575 -9.747 -5.049 -7.997 1.00 0.00 H +ATOM 1069 HA ASP A 575 -9.912 -2.186 -7.260 1.00 0.00 H +ATOM 1070 HB2 ASP A 575 -10.125 -2.796 -9.561 1.00 0.00 H +ATOM 1071 HB3 ASP A 575 -11.365 -3.994 -9.217 1.00 0.00 H +ATOM 1072 N TYR A 576 -11.413 -2.757 -5.254 1.00 0.00 N +ATOM 1073 CA TYR A 576 -12.473 -2.723 -4.255 1.00 0.00 C +ATOM 1074 C TYR A 576 -12.311 -1.450 -3.420 1.00 0.00 C +ATOM 1075 O TYR A 576 -11.667 -1.449 -2.367 1.00 0.00 O +ATOM 1076 CB TYR A 576 -12.552 -4.034 -3.436 1.00 0.00 C +ATOM 1077 CG TYR A 576 -13.958 -4.362 -2.975 1.00 0.00 C +ATOM 1078 CD1 TYR A 576 -14.592 -3.548 -2.021 1.00 0.00 C +ATOM 1079 CD2 TYR A 576 -14.639 -5.478 -3.493 1.00 0.00 C +ATOM 1080 CE1 TYR A 576 -15.891 -3.846 -1.574 1.00 0.00 C +ATOM 1081 CE2 TYR A 576 -15.950 -5.767 -3.079 1.00 0.00 C +ATOM 1082 CZ TYR A 576 -16.581 -4.956 -2.109 1.00 0.00 C +ATOM 1083 OH TYR A 576 -17.841 -5.260 -1.693 1.00 0.00 O +ATOM 1084 H TYR A 576 -10.567 -2.227 -5.058 1.00 0.00 H +ATOM 1085 HA TYR A 576 -13.415 -2.640 -4.798 1.00 0.00 H +ATOM 1086 HB2 TYR A 576 -12.209 -4.855 -4.063 1.00 0.00 H +ATOM 1087 HB3 TYR A 576 -11.910 -4.022 -2.552 1.00 0.00 H +ATOM 1088 HD1 TYR A 576 -14.069 -2.692 -1.629 1.00 0.00 H +ATOM 1089 HD2 TYR A 576 -14.148 -6.128 -4.206 1.00 0.00 H +ATOM 1090 HE1 TYR A 576 -16.361 -3.223 -0.825 1.00 0.00 H +ATOM 1091 HE2 TYR A 576 -16.460 -6.623 -3.494 1.00 0.00 H +ATOM 1092 HH TYR A 576 -18.065 -4.756 -0.884 1.00 0.00 H +ATOM 1093 N GLY A 577 -12.894 -0.354 -3.912 1.00 0.00 N +ATOM 1094 CA GLY A 577 -12.899 0.949 -3.266 1.00 0.00 C +ATOM 1095 C GLY A 577 -11.619 1.700 -3.578 1.00 0.00 C +ATOM 1096 O GLY A 577 -11.615 2.601 -4.419 1.00 0.00 O +ATOM 1097 H GLY A 577 -13.405 -0.432 -4.783 1.00 0.00 H +ATOM 1098 HA2 GLY A 577 -13.754 1.533 -3.602 1.00 0.00 H +ATOM 1099 HA3 GLY A 577 -12.980 0.813 -2.194 1.00 0.00 H +ATOM 1100 N VAL A 578 -10.535 1.314 -2.912 1.00 0.00 N +ATOM 1101 CA VAL A 578 -9.177 1.616 -3.341 1.00 0.00 C +ATOM 1102 C VAL A 578 -8.795 0.552 -4.367 1.00 0.00 C +ATOM 1103 O VAL A 578 -9.242 -0.598 -4.298 1.00 0.00 O +ATOM 1104 CB VAL A 578 -8.237 1.627 -2.115 1.00 0.00 C +ATOM 1105 CG1 VAL A 578 -6.741 1.528 -2.436 1.00 0.00 C +ATOM 1106 CG2 VAL A 578 -8.479 2.873 -1.266 1.00 0.00 C +ATOM 1107 H VAL A 578 -10.635 0.472 -2.355 1.00 0.00 H +ATOM 1108 HA VAL A 578 -9.140 2.589 -3.835 1.00 0.00 H +ATOM 1109 HB VAL A 578 -8.490 0.786 -1.487 1.00 0.00 H +ATOM 1110 HG11 VAL A 578 -6.467 2.239 -3.216 1.00 0.00 H +ATOM 1111 HG12 VAL A 578 -6.151 1.714 -1.540 1.00 0.00 H +ATOM 1112 HG13 VAL A 578 -6.512 0.517 -2.768 1.00 0.00 H +ATOM 1113 HG21 VAL A 578 -8.335 3.769 -1.866 1.00 0.00 H +ATOM 1114 HG22 VAL A 578 -9.496 2.835 -0.890 1.00 0.00 H +ATOM 1115 HG23 VAL A 578 -7.804 2.895 -0.411 1.00 0.00 H +ATOM 1116 N ARG A 579 -7.931 0.934 -5.302 1.00 0.00 N +ATOM 1117 CA ARG A 579 -7.245 -0.007 -6.156 1.00 0.00 C +ATOM 1118 C ARG A 579 -6.155 -0.668 -5.328 1.00 0.00 C +ATOM 1119 O ARG A 579 -5.184 -0.014 -4.942 1.00 0.00 O +ATOM 1120 CB ARG A 579 -6.680 0.728 -7.371 1.00 0.00 C +ATOM 1121 CG ARG A 579 -6.399 -0.265 -8.502 1.00 0.00 C +ATOM 1122 CD ARG A 579 -7.704 -0.716 -9.174 1.00 0.00 C +ATOM 1123 NE ARG A 579 -7.546 -0.840 -10.623 1.00 0.00 N +ATOM 1124 CZ ARG A 579 -7.397 0.177 -11.477 1.00 0.00 C +ATOM 1125 NH1 ARG A 579 -7.351 1.434 -11.051 1.00 0.00 N +ATOM 1126 NH2 ARG A 579 -7.280 -0.082 -12.769 1.00 0.00 N +ATOM 1127 H ARG A 579 -7.658 1.906 -5.344 1.00 0.00 H +ATOM 1128 HA ARG A 579 -7.972 -0.756 -6.476 1.00 0.00 H +ATOM 1129 HB2 ARG A 579 -7.394 1.483 -7.707 1.00 0.00 H +ATOM 1130 HB3 ARG A 579 -5.759 1.246 -7.105 1.00 0.00 H +ATOM 1131 HG2 ARG A 579 -5.741 0.222 -9.222 1.00 0.00 H +ATOM 1132 HG3 ARG A 579 -5.889 -1.147 -8.119 1.00 0.00 H +ATOM 1133 HD2 ARG A 579 -8.006 -1.678 -8.759 1.00 0.00 H +ATOM 1134 HD3 ARG A 579 -8.502 0.000 -8.980 1.00 0.00 H +ATOM 1135 HE ARG A 579 -7.592 -1.782 -11.014 1.00 0.00 H +ATOM 1136 HH11 ARG A 579 -7.508 1.669 -10.087 1.00 0.00 H +ATOM 1137 HH12 ARG A 579 -7.123 2.209 -11.676 1.00 0.00 H +ATOM 1138 HH21 ARG A 579 -7.453 -1.032 -13.091 1.00 0.00 H +ATOM 1139 HH22 ARG A 579 -7.269 0.683 -13.434 1.00 0.00 H +ATOM 1140 N PHE A 580 -6.315 -1.946 -5.033 1.00 0.00 N +ATOM 1141 CA PHE A 580 -5.366 -2.758 -4.303 1.00 0.00 C +ATOM 1142 C PHE A 580 -4.662 -3.735 -5.248 1.00 0.00 C +ATOM 1143 O PHE A 580 -5.099 -3.953 -6.377 1.00 0.00 O +ATOM 1144 CB PHE A 580 -6.112 -3.503 -3.194 1.00 0.00 C +ATOM 1145 CG PHE A 580 -6.597 -2.647 -2.045 1.00 0.00 C +ATOM 1146 CD1 PHE A 580 -5.673 -2.242 -1.078 1.00 0.00 C +ATOM 1147 CD2 PHE A 580 -7.950 -2.294 -1.900 1.00 0.00 C +ATOM 1148 CE1 PHE A 580 -6.084 -1.511 0.045 1.00 0.00 C +ATOM 1149 CE2 PHE A 580 -8.369 -1.569 -0.766 1.00 0.00 C +ATOM 1150 CZ PHE A 580 -7.431 -1.157 0.201 1.00 0.00 C +ATOM 1151 H PHE A 580 -7.142 -2.428 -5.364 1.00 0.00 H +ATOM 1152 HA PHE A 580 -4.623 -2.110 -3.850 1.00 0.00 H +ATOM 1153 HB2 PHE A 580 -6.963 -4.018 -3.620 1.00 0.00 H +ATOM 1154 HB3 PHE A 580 -5.449 -4.264 -2.788 1.00 0.00 H +ATOM 1155 HD1 PHE A 580 -4.636 -2.489 -1.227 1.00 0.00 H +ATOM 1156 HD2 PHE A 580 -8.665 -2.563 -2.667 1.00 0.00 H +ATOM 1157 HE1 PHE A 580 -5.355 -1.210 0.776 1.00 0.00 H +ATOM 1158 HE2 PHE A 580 -9.408 -1.281 -0.673 1.00 0.00 H +ATOM 1159 HZ PHE A 580 -7.717 -0.546 1.048 1.00 0.00 H +ATOM 1160 N PHE A 581 -3.603 -4.378 -4.761 1.00 0.00 N +ATOM 1161 CA PHE A 581 -2.903 -5.483 -5.392 1.00 0.00 C +ATOM 1162 C PHE A 581 -2.516 -6.441 -4.268 1.00 0.00 C +ATOM 1163 O PHE A 581 -1.653 -6.116 -3.452 1.00 0.00 O +ATOM 1164 CB PHE A 581 -1.683 -4.989 -6.178 1.00 0.00 C +ATOM 1165 CG PHE A 581 -0.742 -6.102 -6.598 1.00 0.00 C +ATOM 1166 CD1 PHE A 581 -1.151 -7.045 -7.557 1.00 0.00 C +ATOM 1167 CD2 PHE A 581 0.525 -6.224 -5.997 1.00 0.00 C +ATOM 1168 CE1 PHE A 581 -0.304 -8.110 -7.904 1.00 0.00 C +ATOM 1169 CE2 PHE A 581 1.379 -7.281 -6.355 1.00 0.00 C +ATOM 1170 CZ PHE A 581 0.952 -8.242 -7.286 1.00 0.00 C +ATOM 1171 H PHE A 581 -3.316 -4.160 -3.817 1.00 0.00 H +ATOM 1172 HA PHE A 581 -3.573 -5.976 -6.091 1.00 0.00 H +ATOM 1173 HB2 PHE A 581 -2.027 -4.474 -7.074 1.00 0.00 H +ATOM 1174 HB3 PHE A 581 -1.139 -4.274 -5.565 1.00 0.00 H +ATOM 1175 HD1 PHE A 581 -2.127 -6.972 -8.013 1.00 0.00 H +ATOM 1176 HD2 PHE A 581 0.833 -5.519 -5.241 1.00 0.00 H +ATOM 1177 HE1 PHE A 581 -0.631 -8.832 -8.639 1.00 0.00 H +ATOM 1178 HE2 PHE A 581 2.349 -7.381 -5.889 1.00 0.00 H +ATOM 1179 HZ PHE A 581 1.589 -9.083 -7.526 1.00 0.00 H +ATOM 1180 N PHE A 582 -3.215 -7.566 -4.164 1.00 0.00 N +ATOM 1181 CA PHE A 582 -3.060 -8.565 -3.120 1.00 0.00 C +ATOM 1182 C PHE A 582 -2.061 -9.622 -3.594 1.00 0.00 C +ATOM 1183 O PHE A 582 -2.390 -10.457 -4.442 1.00 0.00 O +ATOM 1184 CB PHE A 582 -4.443 -9.137 -2.751 1.00 0.00 C +ATOM 1185 CG PHE A 582 -5.366 -8.232 -1.933 1.00 0.00 C +ATOM 1186 CD1 PHE A 582 -5.022 -6.906 -1.592 1.00 0.00 C +ATOM 1187 CD2 PHE A 582 -6.605 -8.738 -1.498 1.00 0.00 C +ATOM 1188 CE1 PHE A 582 -5.896 -6.114 -0.828 1.00 0.00 C +ATOM 1189 CE2 PHE A 582 -7.492 -7.935 -0.756 1.00 0.00 C +ATOM 1190 CZ PHE A 582 -7.134 -6.620 -0.415 1.00 0.00 C +ATOM 1191 H PHE A 582 -3.889 -7.780 -4.890 1.00 0.00 H +ATOM 1192 HA PHE A 582 -2.652 -8.101 -2.228 1.00 0.00 H +ATOM 1193 HB2 PHE A 582 -4.962 -9.424 -3.666 1.00 0.00 H +ATOM 1194 HB3 PHE A 582 -4.294 -10.049 -2.175 1.00 0.00 H +ATOM 1195 HD1 PHE A 582 -4.087 -6.472 -1.909 1.00 0.00 H +ATOM 1196 HD2 PHE A 582 -6.883 -9.745 -1.762 1.00 0.00 H +ATOM 1197 HE1 PHE A 582 -5.624 -5.103 -0.566 1.00 0.00 H +ATOM 1198 HE2 PHE A 582 -8.449 -8.331 -0.463 1.00 0.00 H +ATOM 1199 HZ PHE A 582 -7.791 -5.986 0.163 1.00 0.00 H +ATOM 1200 N TYR A 583 -0.856 -9.612 -3.018 1.00 0.00 N +ATOM 1201 CA TYR A 583 0.253 -10.535 -3.272 1.00 0.00 C +ATOM 1202 C TYR A 583 0.495 -11.414 -2.042 1.00 0.00 C +ATOM 1203 O TYR A 583 0.239 -10.984 -0.911 1.00 0.00 O +ATOM 1204 CB TYR A 583 1.524 -9.747 -3.611 1.00 0.00 C +ATOM 1205 CG TYR A 583 2.097 -8.946 -2.451 1.00 0.00 C +ATOM 1206 CD1 TYR A 583 2.957 -9.566 -1.522 1.00 0.00 C +ATOM 1207 CD2 TYR A 583 1.733 -7.598 -2.268 1.00 0.00 C +ATOM 1208 CE1 TYR A 583 3.459 -8.853 -0.422 1.00 0.00 C +ATOM 1209 CE2 TYR A 583 2.217 -6.883 -1.157 1.00 0.00 C +ATOM 1210 CZ TYR A 583 3.081 -7.508 -0.231 1.00 0.00 C +ATOM 1211 OH TYR A 583 3.520 -6.831 0.864 1.00 0.00 O +ATOM 1212 H TYR A 583 -0.753 -8.995 -2.227 1.00 0.00 H +ATOM 1213 HA TYR A 583 -0.009 -11.175 -4.116 1.00 0.00 H +ATOM 1214 HB2 TYR A 583 2.280 -10.451 -3.960 1.00 0.00 H +ATOM 1215 HB3 TYR A 583 1.303 -9.078 -4.438 1.00 0.00 H +ATOM 1216 HD1 TYR A 583 3.237 -10.602 -1.653 1.00 0.00 H +ATOM 1217 HD2 TYR A 583 1.040 -7.124 -2.951 1.00 0.00 H +ATOM 1218 HE1 TYR A 583 4.110 -9.351 0.280 1.00 0.00 H +ATOM 1219 HE2 TYR A 583 1.894 -5.868 -0.992 1.00 0.00 H +ATOM 1220 HH TYR A 583 3.892 -7.413 1.537 1.00 0.00 H +ATOM 1221 N THR A 584 0.957 -12.649 -2.235 1.00 0.00 N +ATOM 1222 CA THR A 584 0.883 -13.640 -1.170 1.00 0.00 C +ATOM 1223 C THR A 584 1.995 -13.439 -0.133 1.00 0.00 C +ATOM 1224 O THR A 584 3.009 -12.782 -0.380 1.00 0.00 O +ATOM 1225 CB THR A 584 0.888 -15.060 -1.768 1.00 0.00 C +ATOM 1226 OG1 THR A 584 2.070 -15.300 -2.496 1.00 0.00 O +ATOM 1227 CG2 THR A 584 -0.326 -15.342 -2.661 1.00 0.00 C +ATOM 1228 H THR A 584 1.228 -12.962 -3.155 1.00 0.00 H +ATOM 1229 HA THR A 584 -0.068 -13.507 -0.655 1.00 0.00 H +ATOM 1230 HB THR A 584 0.856 -15.771 -0.943 1.00 0.00 H +ATOM 1231 HG1 THR A 584 1.876 -15.219 -3.453 1.00 0.00 H +ATOM 1232 HG21 THR A 584 -0.337 -14.675 -3.524 1.00 0.00 H +ATOM 1233 HG22 THR A 584 -0.284 -16.368 -3.027 1.00 0.00 H +ATOM 1234 HG23 THR A 584 -1.246 -15.198 -2.093 1.00 0.00 H +ATOM 1235 N SER A 585 1.854 -14.099 1.016 1.00 0.00 N +ATOM 1236 CA SER A 585 2.944 -14.396 1.934 1.00 0.00 C +ATOM 1237 C SER A 585 4.134 -15.045 1.208 1.00 0.00 C +ATOM 1238 O SER A 585 5.283 -14.804 1.576 1.00 0.00 O +ATOM 1239 CB SER A 585 2.412 -15.294 3.070 1.00 0.00 C +ATOM 1240 OG SER A 585 1.117 -15.833 2.799 1.00 0.00 O +ATOM 1241 H SER A 585 0.997 -14.582 1.248 1.00 0.00 H +ATOM 1242 HA SER A 585 3.284 -13.465 2.383 1.00 0.00 H +ATOM 1243 HB2 SER A 585 3.109 -16.112 3.256 1.00 0.00 H +ATOM 1244 HB3 SER A 585 2.355 -14.691 3.975 1.00 0.00 H +ATOM 1245 HG SER A 585 0.690 -15.995 3.673 1.00 0.00 H +ATOM 1246 N LYS A 586 3.870 -15.864 0.184 1.00 0.00 N +ATOM 1247 CA LYS A 586 4.865 -16.694 -0.457 1.00 0.00 C +ATOM 1248 C LYS A 586 5.631 -15.993 -1.573 1.00 0.00 C +ATOM 1249 O LYS A 586 6.676 -16.514 -1.962 1.00 0.00 O +ATOM 1250 CB LYS A 586 4.142 -17.952 -0.975 1.00 0.00 C +ATOM 1251 CG LYS A 586 4.979 -19.222 -0.817 1.00 0.00 C +ATOM 1252 CD LYS A 586 4.928 -19.856 0.583 1.00 0.00 C +ATOM 1253 CE LYS A 586 5.591 -18.995 1.665 1.00 0.00 C +ATOM 1254 NZ LYS A 586 5.707 -19.684 2.963 1.00 0.00 N +ATOM 1255 H LYS A 586 2.927 -16.011 -0.145 1.00 0.00 H +ATOM 1256 HA LYS A 586 5.616 -16.954 0.284 1.00 0.00 H +ATOM 1257 HB2 LYS A 586 3.192 -18.105 -0.458 1.00 0.00 H +ATOM 1258 HB3 LYS A 586 3.909 -17.811 -2.033 1.00 0.00 H +ATOM 1259 HG2 LYS A 586 4.581 -19.950 -1.520 1.00 0.00 H +ATOM 1260 HG3 LYS A 586 6.009 -19.008 -1.093 1.00 0.00 H +ATOM 1261 HD2 LYS A 586 3.888 -20.049 0.851 1.00 0.00 H +ATOM 1262 HD3 LYS A 586 5.449 -20.810 0.526 1.00 0.00 H +ATOM 1263 HE2 LYS A 586 6.589 -18.707 1.328 1.00 0.00 H +ATOM 1264 HE3 LYS A 586 4.998 -18.090 1.812 1.00 0.00 H +ATOM 1265 HZ1 LYS A 586 6.084 -19.050 3.660 1.00 0.00 H +ATOM 1266 HZ2 LYS A 586 4.799 -19.982 3.305 1.00 0.00 H +ATOM 1267 HZ3 LYS A 586 6.312 -20.495 2.886 1.00 0.00 H +ATOM 1268 N GLU A 587 5.151 -14.864 -2.099 1.00 0.00 N +ATOM 1269 CA GLU A 587 5.831 -14.218 -3.211 1.00 0.00 C +ATOM 1270 C GLU A 587 6.935 -13.284 -2.685 1.00 0.00 C +ATOM 1271 O GLU A 587 6.619 -12.374 -1.911 1.00 0.00 O +ATOM 1272 CB GLU A 587 4.808 -13.516 -4.100 1.00 0.00 C +ATOM 1273 CG GLU A 587 5.448 -13.120 -5.434 1.00 0.00 C +ATOM 1274 CD GLU A 587 4.388 -12.873 -6.514 1.00 0.00 C +ATOM 1275 OE1 GLU A 587 3.491 -12.022 -6.336 1.00 0.00 O +ATOM 1276 OE2 GLU A 587 4.393 -13.602 -7.531 1.00 0.00 O +ATOM 1277 H GLU A 587 4.274 -14.477 -1.770 1.00 0.00 H +ATOM 1278 HA GLU A 587 6.266 -15.007 -3.817 1.00 0.00 H +ATOM 1279 HB2 GLU A 587 4.007 -14.222 -4.306 1.00 0.00 H +ATOM 1280 HB3 GLU A 587 4.382 -12.649 -3.595 1.00 0.00 H +ATOM 1281 HG2 GLU A 587 6.092 -12.252 -5.276 1.00 0.00 H +ATOM 1282 HG3 GLU A 587 6.090 -13.932 -5.779 1.00 0.00 H +ATOM 1283 N PRO A 588 8.220 -13.489 -3.040 1.00 0.00 N +ATOM 1284 CA PRO A 588 9.329 -12.663 -2.572 1.00 0.00 C +ATOM 1285 C PRO A 588 9.178 -11.212 -2.986 1.00 0.00 C +ATOM 1286 O PRO A 588 8.498 -10.852 -3.947 1.00 0.00 O +ATOM 1287 CB PRO A 588 10.620 -13.228 -3.161 1.00 0.00 C +ATOM 1288 CG PRO A 588 10.228 -14.586 -3.705 1.00 0.00 C +ATOM 1289 CD PRO A 588 8.718 -14.523 -3.925 1.00 0.00 C +ATOM 1290 HA PRO A 588 9.399 -12.699 -1.487 1.00 0.00 H +ATOM 1291 HB2 PRO A 588 10.969 -12.602 -3.986 1.00 0.00 H +ATOM 1292 HB3 PRO A 588 11.399 -13.310 -2.401 1.00 0.00 H +ATOM 1293 HG2 PRO A 588 10.779 -14.740 -4.623 1.00 0.00 H +ATOM 1294 HG3 PRO A 588 10.459 -15.361 -2.977 1.00 0.00 H +ATOM 1295 HD2 PRO A 588 8.500 -14.263 -4.952 1.00 0.00 H +ATOM 1296 HD3 PRO A 588 8.261 -15.481 -3.715 1.00 0.00 H +ATOM 1297 N VAL A 589 9.927 -10.375 -2.293 1.00 0.00 N +ATOM 1298 CA VAL A 589 9.827 -8.929 -2.431 1.00 0.00 C +ATOM 1299 C VAL A 589 10.322 -8.528 -3.826 1.00 0.00 C +ATOM 1300 O VAL A 589 9.779 -7.617 -4.442 1.00 0.00 O +ATOM 1301 CB VAL A 589 10.662 -8.242 -1.319 1.00 0.00 C +ATOM 1302 CG1 VAL A 589 10.438 -6.724 -1.261 1.00 0.00 C +ATOM 1303 CG2 VAL A 589 10.360 -8.781 0.086 1.00 0.00 C +ATOM 1304 H VAL A 589 10.647 -10.791 -1.714 1.00 0.00 H +ATOM 1305 HA VAL A 589 8.767 -8.650 -2.344 1.00 0.00 H +ATOM 1306 HB VAL A 589 11.722 -8.424 -1.505 1.00 0.00 H +ATOM 1307 HG11 VAL A 589 10.648 -6.265 -2.225 1.00 0.00 H +ATOM 1308 HG12 VAL A 589 9.404 -6.505 -1.009 1.00 0.00 H +ATOM 1309 HG13 VAL A 589 11.087 -6.267 -0.508 1.00 0.00 H +ATOM 1310 HG21 VAL A 589 10.553 -9.845 0.122 1.00 0.00 H +ATOM 1311 HG22 VAL A 589 11.027 -8.312 0.813 1.00 0.00 H +ATOM 1312 HG23 VAL A 589 9.322 -8.596 0.360 1.00 0.00 H +ATOM 1313 N ALA A 590 11.322 -9.216 -4.371 1.00 0.00 N +ATOM 1314 CA ALA A 590 11.778 -8.945 -5.726 1.00 0.00 C +ATOM 1315 C ALA A 590 10.759 -9.432 -6.767 1.00 0.00 C +ATOM 1316 O ALA A 590 10.634 -8.814 -7.826 1.00 0.00 O +ATOM 1317 CB ALA A 590 13.141 -9.592 -5.939 1.00 0.00 C +ATOM 1318 H ALA A 590 11.715 -9.973 -3.823 1.00 0.00 H +ATOM 1319 HA ALA A 590 11.883 -7.862 -5.836 1.00 0.00 H +ATOM 1320 HB1 ALA A 590 13.029 -10.675 -5.859 1.00 0.00 H +ATOM 1321 HB2 ALA A 590 13.517 -9.310 -6.926 1.00 0.00 H +ATOM 1322 HB3 ALA A 590 13.826 -9.213 -5.181 1.00 0.00 H +ATOM 1323 N SER A 591 10.019 -10.515 -6.505 1.00 0.00 N +ATOM 1324 CA SER A 591 9.024 -11.049 -7.401 1.00 0.00 C +ATOM 1325 C SER A 591 7.810 -10.132 -7.460 1.00 0.00 C +ATOM 1326 O SER A 591 7.381 -9.807 -8.569 1.00 0.00 O +ATOM 1327 CB SER A 591 8.628 -12.425 -6.896 1.00 0.00 C +ATOM 1328 OG SER A 591 9.707 -13.332 -6.966 1.00 0.00 O +ATOM 1329 H SER A 591 10.061 -11.037 -5.646 1.00 0.00 H +ATOM 1330 HA SER A 591 9.440 -11.140 -8.405 1.00 0.00 H +ATOM 1331 HB2 SER A 591 8.276 -12.359 -5.871 1.00 0.00 H +ATOM 1332 HB3 SER A 591 7.826 -12.784 -7.509 1.00 0.00 H +ATOM 1333 HG SER A 591 9.334 -14.185 -7.297 1.00 0.00 H +ATOM 1334 N ILE A 592 7.257 -9.705 -6.315 1.00 0.00 N +ATOM 1335 CA ILE A 592 6.129 -8.783 -6.334 1.00 0.00 C +ATOM 1336 C ILE A 592 6.570 -7.493 -7.032 1.00 0.00 C +ATOM 1337 O ILE A 592 5.832 -6.985 -7.865 1.00 0.00 O +ATOM 1338 CB ILE A 592 5.536 -8.549 -4.924 1.00 0.00 C +ATOM 1339 CG1 ILE A 592 6.445 -7.745 -3.990 1.00 0.00 C +ATOM 1340 CG2 ILE A 592 5.230 -9.861 -4.204 1.00 0.00 C +ATOM 1341 CD1 ILE A 592 6.087 -6.256 -3.971 1.00 0.00 C +ATOM 1342 H ILE A 592 7.603 -9.997 -5.402 1.00 0.00 H +ATOM 1343 HA ILE A 592 5.341 -9.237 -6.943 1.00 0.00 H +ATOM 1344 HB ILE A 592 4.589 -8.022 -5.041 1.00 0.00 H +ATOM 1345 HG12 ILE A 592 6.404 -8.165 -2.986 1.00 0.00 H +ATOM 1346 HG13 ILE A 592 7.465 -7.869 -4.314 1.00 0.00 H +ATOM 1347 HG21 ILE A 592 6.147 -10.387 -3.954 1.00 0.00 H +ATOM 1348 HG22 ILE A 592 4.732 -9.647 -3.269 1.00 0.00 H +ATOM 1349 HG23 ILE A 592 4.571 -10.472 -4.812 1.00 0.00 H +ATOM 1350 HD11 ILE A 592 6.904 -5.712 -3.502 1.00 0.00 H +ATOM 1351 HD12 ILE A 592 5.956 -5.876 -4.983 1.00 0.00 H +ATOM 1352 HD13 ILE A 592 5.158 -6.113 -3.414 1.00 0.00 H +ATOM 1353 N ILE A 593 7.789 -6.993 -6.781 1.00 0.00 N +ATOM 1354 CA ILE A 593 8.289 -5.811 -7.465 1.00 0.00 C +ATOM 1355 C ILE A 593 8.280 -6.045 -8.970 1.00 0.00 C +ATOM 1356 O ILE A 593 7.669 -5.245 -9.672 1.00 0.00 O +ATOM 1357 CB ILE A 593 9.646 -5.375 -6.874 1.00 0.00 C +ATOM 1358 CG1 ILE A 593 9.353 -4.665 -5.529 1.00 0.00 C +ATOM 1359 CG2 ILE A 593 10.384 -4.445 -7.843 1.00 0.00 C +ATOM 1360 CD1 ILE A 593 10.599 -4.262 -4.737 1.00 0.00 C +ATOM 1361 H ILE A 593 8.376 -7.413 -6.066 1.00 0.00 H +ATOM 1362 HA ILE A 593 7.570 -5.006 -7.297 1.00 0.00 H +ATOM 1363 HB ILE A 593 10.272 -6.251 -6.698 1.00 0.00 H +ATOM 1364 HG12 ILE A 593 8.748 -3.776 -5.704 1.00 0.00 H +ATOM 1365 HG13 ILE A 593 8.770 -5.326 -4.893 1.00 0.00 H +ATOM 1366 HG21 ILE A 593 11.276 -4.031 -7.384 1.00 0.00 H +ATOM 1367 HG22 ILE A 593 10.713 -4.982 -8.727 1.00 0.00 H +ATOM 1368 HG23 ILE A 593 9.712 -3.657 -8.160 1.00 0.00 H +ATOM 1369 HD11 ILE A 593 10.307 -3.936 -3.737 1.00 0.00 H +ATOM 1370 HD12 ILE A 593 11.280 -5.112 -4.652 1.00 0.00 H +ATOM 1371 HD13 ILE A 593 11.101 -3.436 -5.238 1.00 0.00 H +ATOM 1372 N THR A 594 8.901 -7.113 -9.475 1.00 0.00 N +ATOM 1373 CA THR A 594 8.867 -7.478 -10.889 1.00 0.00 C +ATOM 1374 C THR A 594 7.444 -7.435 -11.452 1.00 0.00 C +ATOM 1375 O THR A 594 7.235 -6.932 -12.556 1.00 0.00 O +ATOM 1376 CB THR A 594 9.530 -8.854 -11.054 1.00 0.00 C +ATOM 1377 OG1 THR A 594 10.936 -8.687 -11.079 1.00 0.00 O +ATOM 1378 CG2 THR A 594 9.057 -9.623 -12.290 1.00 0.00 C +ATOM 1379 H THR A 594 9.390 -7.746 -8.850 1.00 0.00 H +ATOM 1380 HA THR A 594 9.445 -6.755 -11.452 1.00 0.00 H +ATOM 1381 HB THR A 594 9.292 -9.454 -10.180 1.00 0.00 H +ATOM 1382 HG1 THR A 594 11.154 -8.226 -11.915 1.00 0.00 H +ATOM 1383 HG21 THR A 594 7.993 -9.866 -12.175 1.00 0.00 H +ATOM 1384 HG22 THR A 594 9.182 -9.013 -13.187 1.00 0.00 H +ATOM 1385 HG23 THR A 594 9.625 -10.548 -12.385 1.00 0.00 H +ATOM 1386 N LYS A 595 6.467 -7.924 -10.697 1.00 0.00 N +ATOM 1387 CA LYS A 595 5.070 -7.882 -11.099 1.00 0.00 C +ATOM 1388 C LYS A 595 4.661 -6.431 -11.249 1.00 0.00 C +ATOM 1389 O LYS A 595 4.310 -6.056 -12.357 1.00 0.00 O +ATOM 1390 CB LYS A 595 4.192 -8.683 -10.144 1.00 0.00 C +ATOM 1391 CG LYS A 595 2.703 -8.589 -10.526 1.00 0.00 C +ATOM 1392 CD LYS A 595 2.106 -9.870 -11.107 1.00 0.00 C +ATOM 1393 CE LYS A 595 2.310 -9.935 -12.624 1.00 0.00 C +ATOM 1394 NZ LYS A 595 1.508 -11.016 -13.222 1.00 0.00 N +ATOM 1395 H LYS A 595 6.722 -8.175 -9.755 1.00 0.00 H +ATOM 1396 HA LYS A 595 4.963 -8.356 -12.076 1.00 0.00 H +ATOM 1397 HB2 LYS A 595 4.547 -9.718 -10.147 1.00 0.00 H +ATOM 1398 HB3 LYS A 595 4.293 -8.305 -9.132 1.00 0.00 H +ATOM 1399 HG2 LYS A 595 2.175 -8.364 -9.614 1.00 0.00 H +ATOM 1400 HG3 LYS A 595 2.494 -7.762 -11.201 1.00 0.00 H +ATOM 1401 HD2 LYS A 595 2.557 -10.736 -10.622 1.00 0.00 H +ATOM 1402 HD3 LYS A 595 1.037 -9.869 -10.890 1.00 0.00 H +ATOM 1403 HE2 LYS A 595 2.003 -8.985 -13.071 1.00 0.00 H +ATOM 1404 HE3 LYS A 595 3.366 -10.089 -12.849 1.00 0.00 H +ATOM 1405 HZ1 LYS A 595 1.660 -11.893 -12.734 1.00 0.00 H +ATOM 1406 HZ2 LYS A 595 0.519 -10.776 -13.165 1.00 0.00 H +ATOM 1407 HZ3 LYS A 595 1.765 -11.141 -14.196 1.00 0.00 H +ATOM 1408 N LEU A 596 4.785 -5.609 -10.199 1.00 0.00 N +ATOM 1409 CA LEU A 596 4.447 -4.179 -10.188 1.00 0.00 C +ATOM 1410 C LEU A 596 5.082 -3.389 -11.340 1.00 0.00 C +ATOM 1411 O LEU A 596 4.586 -2.319 -11.690 1.00 0.00 O +ATOM 1412 CB LEU A 596 4.882 -3.537 -8.861 1.00 0.00 C +ATOM 1413 CG LEU A 596 4.226 -4.092 -7.586 1.00 0.00 C +ATOM 1414 CD1 LEU A 596 4.844 -3.419 -6.355 1.00 0.00 C +ATOM 1415 CD2 LEU A 596 2.717 -3.894 -7.600 1.00 0.00 C +ATOM 1416 H LEU A 596 5.164 -6.023 -9.350 1.00 0.00 H +ATOM 1417 HA LEU A 596 3.366 -4.080 -10.280 1.00 0.00 H +ATOM 1418 HB2 LEU A 596 5.959 -3.650 -8.774 1.00 0.00 H +ATOM 1419 HB3 LEU A 596 4.666 -2.469 -8.918 1.00 0.00 H +ATOM 1420 HG LEU A 596 4.402 -5.155 -7.501 1.00 0.00 H +ATOM 1421 HD11 LEU A 596 4.679 -2.345 -6.395 1.00 0.00 H +ATOM 1422 HD12 LEU A 596 4.394 -3.824 -5.447 1.00 0.00 H +ATOM 1423 HD13 LEU A 596 5.916 -3.620 -6.331 1.00 0.00 H +ATOM 1424 HD21 LEU A 596 2.325 -4.139 -6.614 1.00 0.00 H +ATOM 1425 HD22 LEU A 596 2.482 -2.866 -7.881 1.00 0.00 H +ATOM 1426 HD23 LEU A 596 2.270 -4.591 -8.311 1.00 0.00 H +ATOM 1427 N ASN A 597 6.148 -3.907 -11.956 1.00 0.00 N +ATOM 1428 CA ASN A 597 6.747 -3.324 -13.160 1.00 0.00 C +ATOM 1429 C ASN A 597 5.751 -3.262 -14.325 1.00 0.00 C +ATOM 1430 O ASN A 597 5.889 -2.381 -15.175 1.00 0.00 O +ATOM 1431 CB ASN A 597 7.949 -4.112 -13.728 1.00 0.00 C +ATOM 1432 CG ASN A 597 9.218 -4.324 -12.910 1.00 0.00 C +ATOM 1433 OD1 ASN A 597 10.247 -4.712 -13.458 1.00 0.00 O +ATOM 1434 ND2 ASN A 597 9.194 -4.187 -11.600 1.00 0.00 N +ATOM 1435 H ASN A 597 6.444 -4.803 -11.604 1.00 0.00 H +ATOM 1436 HA ASN A 597 7.052 -2.308 -12.920 1.00 0.00 H +ATOM 1437 HB2 ASN A 597 7.611 -5.084 -14.064 1.00 0.00 H +ATOM 1438 HB3 ASN A 597 8.253 -3.601 -14.633 1.00 0.00 H +ATOM 1439 HD21 ASN A 597 8.294 -4.051 -11.163 1.00 0.00 H +ATOM 1440 HD22 ASN A 597 9.895 -4.653 -11.041 1.00 0.00 H +ATOM 1441 N SER A 598 4.796 -4.194 -14.426 1.00 0.00 N +ATOM 1442 CA SER A 598 3.921 -4.311 -15.578 1.00 0.00 C +ATOM 1443 C SER A 598 2.838 -3.234 -15.452 1.00 0.00 C +ATOM 1444 O SER A 598 2.264 -2.805 -16.446 1.00 0.00 O +ATOM 1445 CB SER A 598 3.310 -5.712 -15.529 1.00 0.00 C +ATOM 1446 OG SER A 598 3.917 -6.594 -16.449 1.00 0.00 O +ATOM 1447 H SER A 598 4.553 -4.851 -13.689 1.00 0.00 H +ATOM 1448 HA SER A 598 4.465 -4.191 -16.508 1.00 0.00 H +ATOM 1449 HB2 SER A 598 3.418 -6.128 -14.543 1.00 0.00 H +ATOM 1450 HB3 SER A 598 2.251 -5.641 -15.733 1.00 0.00 H +ATOM 1451 HG SER A 598 4.821 -6.755 -16.108 1.00 0.00 H +ATOM 1452 N LEU A 599 2.568 -2.824 -14.213 1.00 0.00 N +ATOM 1453 CA LEU A 599 1.495 -1.997 -13.753 1.00 0.00 C +ATOM 1454 C LEU A 599 1.997 -0.569 -13.848 1.00 0.00 C +ATOM 1455 O LEU A 599 1.333 0.265 -14.449 1.00 0.00 O +ATOM 1456 CB LEU A 599 1.162 -2.368 -12.299 1.00 0.00 C +ATOM 1457 CG LEU A 599 0.599 -3.780 -12.131 1.00 0.00 C +ATOM 1458 CD1 LEU A 599 1.488 -4.899 -12.580 1.00 0.00 C +ATOM 1459 CD2 LEU A 599 0.193 -4.014 -10.679 1.00 0.00 C +ATOM 1460 H LEU A 599 3.034 -3.276 -13.453 1.00 0.00 H +ATOM 1461 HA LEU A 599 0.626 -2.183 -14.383 1.00 0.00 H +ATOM 1462 HB2 LEU A 599 2.027 -2.227 -11.654 1.00 0.00 H +ATOM 1463 HB3 LEU A 599 0.384 -1.697 -11.967 1.00 0.00 H +ATOM 1464 HG LEU A 599 -0.204 -3.863 -12.818 1.00 0.00 H +ATOM 1465 HD11 LEU A 599 2.480 -4.651 -12.250 1.00 0.00 H +ATOM 1466 HD12 LEU A 599 1.134 -5.853 -12.192 1.00 0.00 H +ATOM 1467 HD13 LEU A 599 1.400 -4.912 -13.665 1.00 0.00 H +ATOM 1468 HD21 LEU A 599 1.057 -3.839 -10.043 1.00 0.00 H +ATOM 1469 HD22 LEU A 599 -0.612 -3.338 -10.414 1.00 0.00 H +ATOM 1470 HD23 LEU A 599 -0.158 -5.032 -10.530 1.00 0.00 H +ATOM 1471 N ASN A 600 3.207 -0.321 -13.307 1.00 0.00 N +ATOM 1472 CA ASN A 600 3.952 0.944 -13.356 1.00 0.00 C +ATOM 1473 C ASN A 600 3.085 2.145 -12.968 1.00 0.00 C +ATOM 1474 O ASN A 600 3.334 3.279 -13.382 1.00 0.00 O +ATOM 1475 CB ASN A 600 4.748 1.096 -14.671 1.00 0.00 C +ATOM 1476 CG ASN A 600 3.940 0.717 -15.902 1.00 0.00 C +ATOM 1477 OD1 ASN A 600 3.093 1.470 -16.364 1.00 0.00 O +ATOM 1478 ND2 ASN A 600 4.122 -0.494 -16.404 1.00 0.00 N +ATOM 1479 H ASN A 600 3.649 -1.077 -12.799 1.00 0.00 H +ATOM 1480 HA ASN A 600 4.698 0.893 -12.569 1.00 0.00 H +ATOM 1481 HB2 ASN A 600 5.098 2.125 -14.777 1.00 0.00 H +ATOM 1482 HB3 ASN A 600 5.632 0.464 -14.618 1.00 0.00 H +ATOM 1483 HD21 ASN A 600 4.866 -1.084 -16.042 1.00 0.00 H +ATOM 1484 HD22 ASN A 600 3.424 -0.893 -17.019 1.00 0.00 H +ATOM 1485 N GLU A 601 2.099 1.892 -12.106 1.00 0.00 N +ATOM 1486 CA GLU A 601 1.188 2.897 -11.597 1.00 0.00 C +ATOM 1487 C GLU A 601 1.869 3.661 -10.459 1.00 0.00 C +ATOM 1488 O GLU A 601 2.742 3.090 -9.791 1.00 0.00 O +ATOM 1489 CB GLU A 601 -0.120 2.276 -11.071 1.00 0.00 C +ATOM 1490 CG GLU A 601 -0.623 1.098 -11.906 1.00 0.00 C +ATOM 1491 CD GLU A 601 -2.130 0.840 -11.815 1.00 0.00 C +ATOM 1492 OE1 GLU A 601 -2.829 1.459 -10.980 1.00 0.00 O +ATOM 1493 OE2 GLU A 601 -2.642 0.051 -12.647 1.00 0.00 O +ATOM 1494 H GLU A 601 1.983 0.949 -11.763 1.00 0.00 H +ATOM 1495 HA GLU A 601 0.955 3.550 -12.434 1.00 0.00 H +ATOM 1496 HB2 GLU A 601 0.021 1.927 -10.048 1.00 0.00 H +ATOM 1497 HB3 GLU A 601 -0.878 3.056 -11.071 1.00 0.00 H +ATOM 1498 HG2 GLU A 601 -0.382 1.275 -12.948 1.00 0.00 H +ATOM 1499 HG3 GLU A 601 -0.067 0.226 -11.585 1.00 0.00 H +ATOM 1500 N PRO A 602 1.428 4.896 -10.173 1.00 0.00 N +ATOM 1501 CA PRO A 602 1.783 5.603 -8.956 1.00 0.00 C +ATOM 1502 C PRO A 602 1.211 4.849 -7.752 1.00 0.00 C +ATOM 1503 O PRO A 602 -0.010 4.701 -7.636 1.00 0.00 O +ATOM 1504 CB PRO A 602 1.164 7.000 -9.075 1.00 0.00 C +ATOM 1505 CG PRO A 602 0.386 7.028 -10.393 1.00 0.00 C +ATOM 1506 CD PRO A 602 0.384 5.593 -10.902 1.00 0.00 C +ATOM 1507 HA PRO A 602 2.867 5.677 -8.876 1.00 0.00 H +ATOM 1508 HB2 PRO A 602 0.500 7.187 -8.237 1.00 0.00 H +ATOM 1509 HB3 PRO A 602 1.932 7.766 -9.076 1.00 0.00 H +ATOM 1510 HG2 PRO A 602 -0.636 7.375 -10.237 1.00 0.00 H +ATOM 1511 HG3 PRO A 602 0.906 7.667 -11.108 1.00 0.00 H +ATOM 1512 HD2 PRO A 602 -0.577 5.123 -10.690 1.00 0.00 H +ATOM 1513 HD3 PRO A 602 0.567 5.564 -11.977 1.00 0.00 H +ATOM 1514 N LEU A 603 2.074 4.377 -6.850 1.00 0.00 N +ATOM 1515 CA LEU A 603 1.634 3.674 -5.652 1.00 0.00 C +ATOM 1516 C LEU A 603 1.646 4.592 -4.432 1.00 0.00 C +ATOM 1517 O LEU A 603 2.372 5.596 -4.388 1.00 0.00 O +ATOM 1518 CB LEU A 603 2.549 2.481 -5.324 1.00 0.00 C +ATOM 1519 CG LEU A 603 2.851 1.498 -6.460 1.00 0.00 C +ATOM 1520 CD1 LEU A 603 3.734 0.390 -5.888 1.00 0.00 C +ATOM 1521 CD2 LEU A 603 1.589 0.874 -7.046 1.00 0.00 C +ATOM 1522 H LEU A 603 3.070 4.470 -7.026 1.00 0.00 H +ATOM 1523 HA LEU A 603 0.620 3.312 -5.831 1.00 0.00 H +ATOM 1524 HB2 LEU A 603 3.501 2.865 -4.965 1.00 0.00 H +ATOM 1525 HB3 LEU A 603 2.096 1.923 -4.502 1.00 0.00 H +ATOM 1526 HG LEU A 603 3.403 1.995 -7.256 1.00 0.00 H +ATOM 1527 HD11 LEU A 603 3.161 -0.217 -5.191 1.00 0.00 H +ATOM 1528 HD12 LEU A 603 4.088 -0.225 -6.713 1.00 0.00 H +ATOM 1529 HD13 LEU A 603 4.581 0.838 -5.368 1.00 0.00 H +ATOM 1530 HD21 LEU A 603 1.094 1.626 -7.659 1.00 0.00 H +ATOM 1531 HD22 LEU A 603 1.846 0.025 -7.678 1.00 0.00 H +ATOM 1532 HD23 LEU A 603 0.923 0.556 -6.250 1.00 0.00 H +ATOM 1533 N VAL A 604 0.959 4.155 -3.380 1.00 0.00 N +ATOM 1534 CA VAL A 604 1.173 4.587 -2.009 1.00 0.00 C +ATOM 1535 C VAL A 604 1.098 3.327 -1.145 1.00 0.00 C +ATOM 1536 O VAL A 604 0.146 2.552 -1.248 1.00 0.00 O +ATOM 1537 CB VAL A 604 0.175 5.707 -1.634 1.00 0.00 C +ATOM 1538 CG1 VAL A 604 -1.287 5.370 -1.938 1.00 0.00 C +ATOM 1539 CG2 VAL A 604 0.271 6.086 -0.154 1.00 0.00 C +ATOM 1540 H VAL A 604 0.352 3.347 -3.496 1.00 0.00 H +ATOM 1541 HA VAL A 604 2.180 4.995 -1.928 1.00 0.00 H +ATOM 1542 HB VAL A 604 0.434 6.593 -2.215 1.00 0.00 H +ATOM 1543 HG11 VAL A 604 -1.416 5.203 -3.006 1.00 0.00 H +ATOM 1544 HG12 VAL A 604 -1.574 4.463 -1.405 1.00 0.00 H +ATOM 1545 HG13 VAL A 604 -1.943 6.183 -1.635 1.00 0.00 H +ATOM 1546 HG21 VAL A 604 -0.322 6.974 0.049 1.00 0.00 H +ATOM 1547 HG22 VAL A 604 -0.115 5.275 0.456 1.00 0.00 H +ATOM 1548 HG23 VAL A 604 1.302 6.285 0.129 1.00 0.00 H +ATOM 1549 N THR A 605 2.119 3.071 -0.327 1.00 0.00 N +ATOM 1550 CA THR A 605 2.159 1.896 0.538 1.00 0.00 C +ATOM 1551 C THR A 605 3.099 2.096 1.734 1.00 0.00 C +ATOM 1552 O THR A 605 3.682 3.160 1.917 1.00 0.00 O +ATOM 1553 CB THR A 605 2.481 0.659 -0.319 1.00 0.00 C +ATOM 1554 OG1 THR A 605 2.371 -0.533 0.430 1.00 0.00 O +ATOM 1555 CG2 THR A 605 3.832 0.741 -1.031 1.00 0.00 C +ATOM 1556 H THR A 605 2.927 3.685 -0.307 1.00 0.00 H +ATOM 1557 HA THR A 605 1.157 1.759 0.941 1.00 0.00 H +ATOM 1558 HB THR A 605 1.722 0.595 -1.087 1.00 0.00 H +ATOM 1559 HG1 THR A 605 1.441 -0.564 0.748 1.00 0.00 H +ATOM 1560 HG21 THR A 605 3.784 1.470 -1.840 1.00 0.00 H +ATOM 1561 HG22 THR A 605 4.616 1.039 -0.340 1.00 0.00 H +ATOM 1562 HG23 THR A 605 4.066 -0.232 -1.456 1.00 0.00 H +ATOM 1563 N MET A 606 3.204 1.091 2.595 1.00 0.00 N +ATOM 1564 CA MET A 606 4.247 0.964 3.612 1.00 0.00 C +ATOM 1565 C MET A 606 5.446 0.252 2.952 1.00 0.00 C +ATOM 1566 O MET A 606 5.309 -0.165 1.802 1.00 0.00 O +ATOM 1567 CB MET A 606 3.643 0.209 4.806 1.00 0.00 C +ATOM 1568 CG MET A 606 2.460 1.008 5.363 1.00 0.00 C +ATOM 1569 SD MET A 606 1.600 0.272 6.775 1.00 0.00 S +ATOM 1570 CE MET A 606 0.725 -1.036 5.890 1.00 0.00 C +ATOM 1571 H MET A 606 2.769 0.233 2.277 1.00 0.00 H +ATOM 1572 HA MET A 606 4.557 1.955 3.940 1.00 0.00 H +ATOM 1573 HB2 MET A 606 3.323 -0.779 4.488 1.00 0.00 H +ATOM 1574 HB3 MET A 606 4.365 0.095 5.605 1.00 0.00 H +ATOM 1575 HG2 MET A 606 2.826 1.993 5.642 1.00 0.00 H +ATOM 1576 HG3 MET A 606 1.727 1.169 4.575 1.00 0.00 H +ATOM 1577 HE1 MET A 606 -0.201 -1.252 6.421 1.00 0.00 H +ATOM 1578 HE2 MET A 606 0.480 -0.713 4.880 1.00 0.00 H +ATOM 1579 HE3 MET A 606 1.349 -1.927 5.828 1.00 0.00 H +ATOM 1580 N PRO A 607 6.621 0.094 3.593 1.00 0.00 N +ATOM 1581 CA PRO A 607 7.803 -0.485 2.938 1.00 0.00 C +ATOM 1582 C PRO A 607 7.749 -2.012 2.706 1.00 0.00 C +ATOM 1583 O PRO A 607 8.740 -2.710 2.886 1.00 0.00 O +ATOM 1584 CB PRO A 607 8.989 -0.050 3.810 1.00 0.00 C +ATOM 1585 CG PRO A 607 8.441 0.452 5.132 1.00 0.00 C +ATOM 1586 CD PRO A 607 6.956 0.691 4.879 1.00 0.00 C +ATOM 1587 HA PRO A 607 7.935 -0.014 1.954 1.00 0.00 H +ATOM 1588 HB2 PRO A 607 9.705 -0.848 4.010 1.00 0.00 H +ATOM 1589 HB3 PRO A 607 9.474 0.782 3.308 1.00 0.00 H +ATOM 1590 HG2 PRO A 607 8.565 -0.311 5.901 1.00 0.00 H +ATOM 1591 HG3 PRO A 607 8.970 1.364 5.417 1.00 0.00 H +ATOM 1592 HD2 PRO A 607 6.393 0.226 5.686 1.00 0.00 H +ATOM 1593 HD3 PRO A 607 6.746 1.756 4.844 1.00 0.00 H +ATOM 1594 N ILE A 608 6.611 -2.531 2.240 1.00 0.00 N +ATOM 1595 CA ILE A 608 6.342 -3.843 1.662 1.00 0.00 C +ATOM 1596 C ILE A 608 7.170 -4.974 2.265 1.00 0.00 C +ATOM 1597 O ILE A 608 6.698 -5.641 3.189 1.00 0.00 O +ATOM 1598 CB ILE A 608 6.339 -3.718 0.116 1.00 0.00 C +ATOM 1599 CG1 ILE A 608 5.076 -2.959 -0.362 1.00 0.00 C +ATOM 1600 CG2 ILE A 608 6.421 -5.041 -0.658 1.00 0.00 C +ATOM 1601 CD1 ILE A 608 3.780 -3.767 -0.257 1.00 0.00 C +ATOM 1602 H ILE A 608 5.884 -1.848 2.070 1.00 0.00 H +ATOM 1603 HA ILE A 608 5.336 -4.083 1.964 1.00 0.00 H +ATOM 1604 HB ILE A 608 7.210 -3.129 -0.179 1.00 0.00 H +ATOM 1605 HG12 ILE A 608 4.947 -2.050 0.218 1.00 0.00 H +ATOM 1606 HG13 ILE A 608 5.207 -2.665 -1.406 1.00 0.00 H +ATOM 1607 HG21 ILE A 608 7.429 -5.445 -0.641 1.00 0.00 H +ATOM 1608 HG22 ILE A 608 5.719 -5.769 -0.264 1.00 0.00 H +ATOM 1609 HG23 ILE A 608 6.171 -4.837 -1.694 1.00 0.00 H +ATOM 1610 HD11 ILE A 608 3.667 -4.208 0.730 1.00 0.00 H +ATOM 1611 HD12 ILE A 608 2.930 -3.117 -0.420 1.00 0.00 H +ATOM 1612 HD13 ILE A 608 3.776 -4.554 -1.010 1.00 0.00 H +ATOM 1613 N GLY A 609 8.360 -5.257 1.752 1.00 0.00 N +ATOM 1614 CA GLY A 609 9.270 -6.226 2.325 1.00 0.00 C +ATOM 1615 C GLY A 609 10.036 -5.575 3.469 1.00 0.00 C +ATOM 1616 O GLY A 609 11.231 -5.393 3.351 1.00 0.00 O +ATOM 1617 H GLY A 609 8.738 -4.589 1.089 1.00 0.00 H +ATOM 1618 HA2 GLY A 609 8.717 -7.090 2.674 1.00 0.00 H +ATOM 1619 HA3 GLY A 609 9.970 -6.602 1.584 1.00 0.00 H +ATOM 1620 N TYR A 610 9.376 -5.253 4.575 1.00 0.00 N +ATOM 1621 CA TYR A 610 9.923 -4.722 5.813 1.00 0.00 C +ATOM 1622 C TYR A 610 9.671 -5.651 7.009 1.00 0.00 C +ATOM 1623 O TYR A 610 10.632 -5.967 7.701 1.00 0.00 O +ATOM 1624 CB TYR A 610 9.375 -3.301 5.999 1.00 0.00 C +ATOM 1625 CG TYR A 610 9.578 -2.661 7.353 1.00 0.00 C +ATOM 1626 CD1 TYR A 610 10.843 -2.653 7.965 1.00 0.00 C +ATOM 1627 CD2 TYR A 610 8.483 -2.067 8.000 1.00 0.00 C +ATOM 1628 CE1 TYR A 610 11.011 -2.065 9.231 1.00 0.00 C +ATOM 1629 CE2 TYR A 610 8.635 -1.494 9.270 1.00 0.00 C +ATOM 1630 CZ TYR A 610 9.903 -1.481 9.887 1.00 0.00 C +ATOM 1631 OH TYR A 610 10.046 -0.862 11.090 1.00 0.00 O +ATOM 1632 H TYR A 610 8.387 -5.377 4.532 1.00 0.00 H +ATOM 1633 HA TYR A 610 11.003 -4.654 5.724 1.00 0.00 H +ATOM 1634 HB2 TYR A 610 9.853 -2.662 5.264 1.00 0.00 H +ATOM 1635 HB3 TYR A 610 8.308 -3.309 5.777 1.00 0.00 H +ATOM 1636 HD1 TYR A 610 11.679 -3.108 7.455 1.00 0.00 H +ATOM 1637 HD2 TYR A 610 7.520 -2.049 7.516 1.00 0.00 H +ATOM 1638 HE1 TYR A 610 11.984 -2.062 9.694 1.00 0.00 H +ATOM 1639 HE2 TYR A 610 7.781 -1.074 9.772 1.00 0.00 H +ATOM 1640 HH TYR A 610 10.850 -1.126 11.575 1.00 0.00 H +ATOM 1641 N VAL A 611 8.441 -6.116 7.260 1.00 0.00 N +ATOM 1642 CA VAL A 611 8.068 -6.854 8.473 1.00 0.00 C +ATOM 1643 C VAL A 611 7.243 -8.124 8.179 1.00 0.00 C +ATOM 1644 O VAL A 611 7.591 -9.189 8.688 1.00 0.00 O +ATOM 1645 CB VAL A 611 7.391 -5.873 9.460 1.00 0.00 C +ATOM 1646 CG1 VAL A 611 6.635 -6.545 10.612 1.00 0.00 C +ATOM 1647 CG2 VAL A 611 8.438 -4.952 10.103 1.00 0.00 C +ATOM 1648 H VAL A 611 7.721 -5.909 6.586 1.00 0.00 H +ATOM 1649 HA VAL A 611 8.988 -7.201 8.945 1.00 0.00 H +ATOM 1650 HB VAL A 611 6.675 -5.259 8.912 1.00 0.00 H +ATOM 1651 HG11 VAL A 611 5.774 -7.096 10.236 1.00 0.00 H +ATOM 1652 HG12 VAL A 611 7.302 -7.226 11.139 1.00 0.00 H +ATOM 1653 HG13 VAL A 611 6.279 -5.779 11.303 1.00 0.00 H +ATOM 1654 HG21 VAL A 611 9.126 -5.532 10.719 1.00 0.00 H +ATOM 1655 HG22 VAL A 611 9.016 -4.437 9.344 1.00 0.00 H +ATOM 1656 HG23 VAL A 611 7.949 -4.204 10.722 1.00 0.00 H +ATOM 1657 N THR A 612 6.188 -8.084 7.351 1.00 0.00 N +ATOM 1658 CA THR A 612 5.372 -9.270 7.011 1.00 0.00 C +ATOM 1659 C THR A 612 6.236 -10.441 6.516 1.00 0.00 C +ATOM 1660 O THR A 612 6.019 -11.598 6.866 1.00 0.00 O +ATOM 1661 CB THR A 612 4.273 -8.903 5.984 1.00 0.00 C +ATOM 1662 OG1 THR A 612 3.652 -10.047 5.429 1.00 0.00 O +ATOM 1663 CG2 THR A 612 4.782 -8.102 4.784 1.00 0.00 C +ATOM 1664 H THR A 612 5.954 -7.207 6.905 1.00 0.00 H +ATOM 1665 HA THR A 612 4.867 -9.602 7.916 1.00 0.00 H +ATOM 1666 HB THR A 612 3.529 -8.296 6.493 1.00 0.00 H +ATOM 1667 HG1 THR A 612 3.041 -10.436 6.097 1.00 0.00 H +ATOM 1668 HG21 THR A 612 5.224 -7.170 5.123 1.00 0.00 H +ATOM 1669 HG22 THR A 612 5.531 -8.673 4.239 1.00 0.00 H +ATOM 1670 HG23 THR A 612 3.948 -7.865 4.123 1.00 0.00 H +ATOM 1671 N HIS A 613 7.213 -10.123 5.676 1.00 0.00 N +ATOM 1672 CA HIS A 613 8.170 -10.989 5.012 1.00 0.00 C +ATOM 1673 C HIS A 613 9.525 -10.944 5.738 1.00 0.00 C +ATOM 1674 O HIS A 613 10.517 -11.376 5.152 1.00 0.00 O +ATOM 1675 CB HIS A 613 8.280 -10.531 3.539 1.00 0.00 C +ATOM 1676 CG HIS A 613 7.223 -11.002 2.577 1.00 0.00 C +ATOM 1677 ND1 HIS A 613 5.882 -11.243 2.832 1.00 0.00 N +ATOM 1678 CD2 HIS A 613 7.449 -11.182 1.242 1.00 0.00 C +ATOM 1679 CE1 HIS A 613 5.316 -11.584 1.655 1.00 0.00 C +ATOM 1680 NE2 HIS A 613 6.251 -11.573 0.684 1.00 0.00 N +ATOM 1681 H HIS A 613 7.320 -9.129 5.514 1.00 0.00 H +ATOM 1682 HA HIS A 613 7.824 -12.022 5.044 1.00 0.00 H +ATOM 1683 HB2 HIS A 613 8.266 -9.456 3.505 1.00 0.00 H +ATOM 1684 HB3 HIS A 613 9.249 -10.791 3.119 1.00 0.00 H +ATOM 1685 HD1 HIS A 613 5.412 -11.197 3.732 1.00 0.00 H +ATOM 1686 HD2 HIS A 613 8.396 -11.039 0.733 1.00 0.00 H +ATOM 1687 HE1 HIS A 613 4.280 -11.843 1.494 1.00 0.00 H +ATOM 1688 HE2 HIS A 613 6.134 -11.863 -0.294 1.00 0.00 H +ATOM 1689 N GLY A 614 9.611 -10.385 6.950 1.00 0.00 N +ATOM 1690 CA GLY A 614 10.722 -10.651 7.853 1.00 0.00 C +ATOM 1691 C GLY A 614 11.988 -9.810 7.665 1.00 0.00 C +ATOM 1692 O GLY A 614 13.022 -10.199 8.202 1.00 0.00 O +ATOM 1693 H GLY A 614 8.769 -10.043 7.396 1.00 0.00 H +ATOM 1694 HA2 GLY A 614 10.376 -10.534 8.879 1.00 0.00 H +ATOM 1695 HA3 GLY A 614 10.994 -11.695 7.707 1.00 0.00 H +ATOM 1696 N PHE A 615 11.962 -8.710 6.902 1.00 0.00 N +ATOM 1697 CA PHE A 615 13.186 -7.936 6.627 1.00 0.00 C +ATOM 1698 C PHE A 615 13.549 -6.989 7.795 1.00 0.00 C +ATOM 1699 O PHE A 615 13.097 -7.124 8.938 1.00 0.00 O +ATOM 1700 CB PHE A 615 13.057 -7.223 5.260 1.00 0.00 C +ATOM 1701 CG PHE A 615 13.337 -8.037 3.995 1.00 0.00 C +ATOM 1702 CD1 PHE A 615 13.577 -9.427 4.012 1.00 0.00 C +ATOM 1703 CD2 PHE A 615 13.387 -7.362 2.760 1.00 0.00 C +ATOM 1704 CE1 PHE A 615 13.886 -10.109 2.820 1.00 0.00 C +ATOM 1705 CE2 PHE A 615 13.660 -8.044 1.565 1.00 0.00 C +ATOM 1706 CZ PHE A 615 13.918 -9.424 1.593 1.00 0.00 C +ATOM 1707 H PHE A 615 11.058 -8.355 6.590 1.00 0.00 H +ATOM 1708 HA PHE A 615 14.033 -8.620 6.543 1.00 0.00 H +ATOM 1709 HB2 PHE A 615 12.063 -6.790 5.211 1.00 0.00 H +ATOM 1710 HB3 PHE A 615 13.741 -6.381 5.203 1.00 0.00 H +ATOM 1711 HD1 PHE A 615 13.557 -9.996 4.930 1.00 0.00 H +ATOM 1712 HD2 PHE A 615 13.189 -6.305 2.717 1.00 0.00 H +ATOM 1713 HE1 PHE A 615 14.108 -11.169 2.857 1.00 0.00 H +ATOM 1714 HE2 PHE A 615 13.665 -7.496 0.633 1.00 0.00 H +ATOM 1715 HZ PHE A 615 14.147 -9.959 0.680 1.00 0.00 H +ATOM 1716 N ASN A 616 14.454 -6.050 7.513 1.00 0.00 N +ATOM 1717 CA ASN A 616 14.748 -4.855 8.292 1.00 0.00 C +ATOM 1718 C ASN A 616 14.454 -3.659 7.397 1.00 0.00 C +ATOM 1719 O ASN A 616 14.398 -3.807 6.175 1.00 0.00 O +ATOM 1720 CB ASN A 616 16.239 -4.786 8.642 1.00 0.00 C +ATOM 1721 CG ASN A 616 16.730 -5.878 9.577 1.00 0.00 C +ATOM 1722 OD1 ASN A 616 15.965 -6.485 10.317 1.00 0.00 O +ATOM 1723 ND2 ASN A 616 18.021 -6.120 9.597 1.00 0.00 N +ATOM 1724 H ASN A 616 14.735 -5.968 6.547 1.00 0.00 H +ATOM 1725 HA ASN A 616 14.139 -4.820 9.198 1.00 0.00 H +ATOM 1726 HB2 ASN A 616 16.799 -4.816 7.706 1.00 0.00 H +ATOM 1727 HB3 ASN A 616 16.452 -3.832 9.125 1.00 0.00 H +ATOM 1728 HD21 ASN A 616 18.648 -5.508 9.072 1.00 0.00 H +ATOM 1729 HD22 ASN A 616 18.407 -6.808 10.234 1.00 0.00 H +ATOM 1730 N LEU A 617 14.380 -2.462 7.981 1.00 0.00 N +ATOM 1731 CA LEU A 617 14.107 -1.211 7.274 1.00 0.00 C +ATOM 1732 C LEU A 617 15.089 -0.955 6.129 1.00 0.00 C +ATOM 1733 O LEU A 617 14.707 -0.374 5.118 1.00 0.00 O +ATOM 1734 CB LEU A 617 14.158 -0.051 8.287 1.00 0.00 C +ATOM 1735 CG LEU A 617 13.491 1.250 7.790 1.00 0.00 C +ATOM 1736 CD1 LEU A 617 11.972 1.105 7.639 1.00 0.00 C +ATOM 1737 CD2 LEU A 617 13.761 2.421 8.746 1.00 0.00 C +ATOM 1738 H LEU A 617 14.433 -2.431 8.995 1.00 0.00 H +ATOM 1739 HA LEU A 617 13.107 -1.280 6.849 1.00 0.00 H +ATOM 1740 HB2 LEU A 617 13.687 -0.374 9.210 1.00 0.00 H +ATOM 1741 HB3 LEU A 617 15.202 0.152 8.528 1.00 0.00 H +ATOM 1742 HG LEU A 617 13.909 1.513 6.822 1.00 0.00 H +ATOM 1743 HD11 LEU A 617 11.731 0.385 6.858 1.00 0.00 H +ATOM 1744 HD12 LEU A 617 11.529 0.779 8.579 1.00 0.00 H +ATOM 1745 HD13 LEU A 617 11.542 2.064 7.356 1.00 0.00 H +ATOM 1746 HD21 LEU A 617 13.259 2.254 9.700 1.00 0.00 H +ATOM 1747 HD22 LEU A 617 14.830 2.520 8.929 1.00 0.00 H +ATOM 1748 HD23 LEU A 617 13.406 3.355 8.302 1.00 0.00 H +ATOM 1749 N GLU A 618 16.341 -1.379 6.291 1.00 0.00 N +ATOM 1750 CA GLU A 618 17.418 -1.124 5.338 1.00 0.00 C +ATOM 1751 C GLU A 618 17.205 -1.985 4.092 1.00 0.00 C +ATOM 1752 O GLU A 618 17.175 -1.514 2.957 1.00 0.00 O +ATOM 1753 CB GLU A 618 18.746 -1.434 6.048 1.00 0.00 C +ATOM 1754 CG GLU A 618 19.966 -1.079 5.201 1.00 0.00 C +ATOM 1755 CD GLU A 618 21.283 -1.361 5.935 1.00 0.00 C +ATOM 1756 OE1 GLU A 618 21.762 -0.470 6.674 1.00 0.00 O +ATOM 1757 OE2 GLU A 618 21.916 -2.413 5.683 1.00 0.00 O +ATOM 1758 H GLU A 618 16.538 -1.972 7.085 1.00 0.00 H +ATOM 1759 HA GLU A 618 17.407 -0.080 5.037 1.00 0.00 H +ATOM 1760 HB2 GLU A 618 18.789 -0.872 6.981 1.00 0.00 H +ATOM 1761 HB3 GLU A 618 18.779 -2.495 6.283 1.00 0.00 H +ATOM 1762 HG2 GLU A 618 19.923 -1.652 4.278 1.00 0.00 H +ATOM 1763 HG3 GLU A 618 19.924 -0.027 4.928 1.00 0.00 H +ATOM 1764 N GLU A 619 17.007 -3.273 4.337 1.00 0.00 N +ATOM 1765 CA GLU A 619 16.858 -4.337 3.357 1.00 0.00 C +ATOM 1766 C GLU A 619 15.574 -4.125 2.561 1.00 0.00 C +ATOM 1767 O GLU A 619 15.519 -4.389 1.356 1.00 0.00 O +ATOM 1768 CB GLU A 619 16.817 -5.665 4.122 1.00 0.00 C +ATOM 1769 CG GLU A 619 18.069 -5.831 5.008 1.00 0.00 C +ATOM 1770 CD GLU A 619 19.307 -6.320 4.242 1.00 0.00 C +ATOM 1771 OE1 GLU A 619 19.604 -5.830 3.126 1.00 0.00 O +ATOM 1772 OE2 GLU A 619 20.002 -7.227 4.767 1.00 0.00 O +ATOM 1773 H GLU A 619 17.027 -3.544 5.308 1.00 0.00 H +ATOM 1774 HA GLU A 619 17.717 -4.337 2.689 1.00 0.00 H +ATOM 1775 HB2 GLU A 619 15.919 -5.682 4.744 1.00 0.00 H +ATOM 1776 HB3 GLU A 619 16.732 -6.513 3.440 1.00 0.00 H +ATOM 1777 HG2 GLU A 619 18.336 -4.911 5.527 1.00 0.00 H +ATOM 1778 HG3 GLU A 619 17.802 -6.506 5.811 1.00 0.00 H +ATOM 1779 N ALA A 620 14.552 -3.625 3.253 1.00 0.00 N +ATOM 1780 CA ALA A 620 13.289 -3.208 2.702 1.00 0.00 C +ATOM 1781 C ALA A 620 13.499 -2.094 1.690 1.00 0.00 C +ATOM 1782 O ALA A 620 13.025 -2.197 0.556 1.00 0.00 O +ATOM 1783 CB ALA A 620 12.399 -2.733 3.857 1.00 0.00 C +ATOM 1784 H ALA A 620 14.698 -3.465 4.244 1.00 0.00 H +ATOM 1785 HA ALA A 620 12.835 -4.058 2.192 1.00 0.00 H +ATOM 1786 HB1 ALA A 620 12.766 -1.802 4.284 1.00 0.00 H +ATOM 1787 HB2 ALA A 620 11.387 -2.583 3.490 1.00 0.00 H +ATOM 1788 HB3 ALA A 620 12.398 -3.484 4.644 1.00 0.00 H +ATOM 1789 N ALA A 621 14.144 -1.012 2.128 1.00 0.00 N +ATOM 1790 CA ALA A 621 14.350 0.210 1.375 1.00 0.00 C +ATOM 1791 C ALA A 621 15.160 -0.080 0.107 1.00 0.00 C +ATOM 1792 O ALA A 621 14.723 0.306 -0.978 1.00 0.00 O +ATOM 1793 CB ALA A 621 15.047 1.204 2.309 1.00 0.00 C +ATOM 1794 H ALA A 621 14.501 -1.028 3.079 1.00 0.00 H +ATOM 1795 HA ALA A 621 13.374 0.611 1.070 1.00 0.00 H +ATOM 1796 HB1 ALA A 621 14.457 1.339 3.214 1.00 0.00 H +ATOM 1797 HB2 ALA A 621 16.038 0.837 2.581 1.00 0.00 H +ATOM 1798 HB3 ALA A 621 15.144 2.170 1.834 1.00 0.00 H +ATOM 1799 N ARG A 622 16.266 -0.830 0.221 1.00 0.00 N +ATOM 1800 CA ARG A 622 17.080 -1.265 -0.910 1.00 0.00 C +ATOM 1801 C ARG A 622 16.234 -1.942 -1.974 1.00 0.00 C +ATOM 1802 O ARG A 622 16.235 -1.508 -3.127 1.00 0.00 O +ATOM 1803 CB ARG A 622 18.142 -2.243 -0.437 1.00 0.00 C +ATOM 1804 CG ARG A 622 19.329 -1.546 0.216 1.00 0.00 C +ATOM 1805 CD ARG A 622 20.231 -2.681 0.673 1.00 0.00 C +ATOM 1806 NE ARG A 622 21.445 -2.185 1.326 1.00 0.00 N +ATOM 1807 CZ ARG A 622 21.859 -2.527 2.551 1.00 0.00 C +ATOM 1808 NH1 ARG A 622 21.346 -3.553 3.230 1.00 0.00 N +ATOM 1809 NH2 ARG A 622 22.784 -1.792 3.147 1.00 0.00 N +ATOM 1810 H ARG A 622 16.571 -1.136 1.142 1.00 0.00 H +ATOM 1811 HA ARG A 622 17.594 -0.406 -1.337 1.00 0.00 H +ATOM 1812 HB2 ARG A 622 17.697 -2.964 0.251 1.00 0.00 H +ATOM 1813 HB3 ARG A 622 18.514 -2.784 -1.303 1.00 0.00 H +ATOM 1814 HG2 ARG A 622 19.843 -0.917 -0.510 1.00 0.00 H +ATOM 1815 HG3 ARG A 622 19.010 -0.950 1.072 1.00 0.00 H +ATOM 1816 HD2 ARG A 622 19.637 -3.280 1.354 1.00 0.00 H +ATOM 1817 HD3 ARG A 622 20.500 -3.289 -0.186 1.00 0.00 H +ATOM 1818 HE ARG A 622 21.907 -1.426 0.834 1.00 0.00 H +ATOM 1819 HH11 ARG A 622 20.666 -4.228 2.878 1.00 0.00 H +ATOM 1820 HH12 ARG A 622 21.574 -3.605 4.226 1.00 0.00 H +ATOM 1821 HH21 ARG A 622 23.189 -0.964 2.715 1.00 0.00 H +ATOM 1822 HH22 ARG A 622 22.936 -1.944 4.148 1.00 0.00 H +ATOM 1823 N CYS A 623 15.508 -2.990 -1.565 1.00 0.00 N +ATOM 1824 CA CYS A 623 14.663 -3.770 -2.454 1.00 0.00 C +ATOM 1825 C CYS A 623 13.680 -2.839 -3.165 1.00 0.00 C +ATOM 1826 O CYS A 623 13.444 -2.957 -4.361 1.00 0.00 O +ATOM 1827 CB CYS A 623 13.932 -4.855 -1.643 1.00 0.00 C +ATOM 1828 SG CYS A 623 13.493 -6.253 -2.711 1.00 0.00 S +ATOM 1829 H CYS A 623 15.568 -3.255 -0.591 1.00 0.00 H +ATOM 1830 HA CYS A 623 15.304 -4.242 -3.200 1.00 0.00 H +ATOM 1831 HB2 CYS A 623 14.574 -5.227 -0.846 1.00 0.00 H +ATOM 1832 HB3 CYS A 623 13.032 -4.435 -1.193 1.00 0.00 H +ATOM 1833 HG CYS A 623 12.877 -6.980 -1.774 1.00 0.00 H +ATOM 1834 N MET A 624 13.121 -1.877 -2.434 1.00 0.00 N +ATOM 1835 CA MET A 624 12.152 -0.924 -2.946 1.00 0.00 C +ATOM 1836 C MET A 624 12.705 0.037 -3.997 1.00 0.00 C +ATOM 1837 O MET A 624 11.949 0.443 -4.875 1.00 0.00 O +ATOM 1838 CB MET A 624 11.526 -0.185 -1.766 1.00 0.00 C +ATOM 1839 CG MET A 624 10.071 -0.640 -1.650 1.00 0.00 C +ATOM 1840 SD MET A 624 9.009 0.230 -2.820 1.00 0.00 S +ATOM 1841 CE MET A 624 8.944 1.734 -1.829 1.00 0.00 C +ATOM 1842 H MET A 624 13.385 -1.805 -1.459 1.00 0.00 H +ATOM 1843 HA MET A 624 11.368 -1.483 -3.454 1.00 0.00 H +ATOM 1844 HB2 MET A 624 12.051 -0.407 -0.843 1.00 0.00 H +ATOM 1845 HB3 MET A 624 11.588 0.891 -1.920 1.00 0.00 H +ATOM 1846 HG2 MET A 624 10.000 -1.716 -1.809 1.00 0.00 H +ATOM 1847 HG3 MET A 624 9.711 -0.440 -0.642 1.00 0.00 H +ATOM 1848 HE1 MET A 624 9.922 2.218 -1.854 1.00 0.00 H +ATOM 1849 HE2 MET A 624 8.185 2.406 -2.223 1.00 0.00 H +ATOM 1850 HE3 MET A 624 8.711 1.468 -0.795 1.00 0.00 H +ATOM 1851 N ARG A 625 13.995 0.378 -3.999 1.00 0.00 N +ATOM 1852 CA ARG A 625 14.580 1.085 -5.146 1.00 0.00 C +ATOM 1853 C ARG A 625 14.530 0.254 -6.423 1.00 0.00 C +ATOM 1854 O ARG A 625 14.437 0.809 -7.521 1.00 0.00 O +ATOM 1855 CB ARG A 625 16.029 1.472 -4.871 1.00 0.00 C +ATOM 1856 CG ARG A 625 16.139 2.319 -3.604 1.00 0.00 C +ATOM 1857 CD ARG A 625 17.407 3.149 -3.667 1.00 0.00 C +ATOM 1858 NE ARG A 625 17.228 4.359 -4.474 1.00 0.00 N +ATOM 1859 CZ ARG A 625 18.212 5.142 -4.914 1.00 0.00 C +ATOM 1860 NH1 ARG A 625 19.492 4.836 -4.700 1.00 0.00 N +ATOM 1861 NH2 ARG A 625 17.888 6.213 -5.627 1.00 0.00 N +ATOM 1862 H ARG A 625 14.585 0.133 -3.210 1.00 0.00 H +ATOM 1863 HA ARG A 625 14.002 1.992 -5.325 1.00 0.00 H +ATOM 1864 HB2 ARG A 625 16.641 0.578 -4.761 1.00 0.00 H +ATOM 1865 HB3 ARG A 625 16.399 2.034 -5.730 1.00 0.00 H +ATOM 1866 HG2 ARG A 625 15.278 2.982 -3.514 1.00 0.00 H +ATOM 1867 HG3 ARG A 625 16.184 1.661 -2.736 1.00 0.00 H +ATOM 1868 HD2 ARG A 625 17.671 3.454 -2.664 1.00 0.00 H +ATOM 1869 HD3 ARG A 625 18.210 2.530 -4.067 1.00 0.00 H +ATOM 1870 HE ARG A 625 16.266 4.649 -4.631 1.00 0.00 H +ATOM 1871 HH11 ARG A 625 19.702 4.054 -4.052 1.00 0.00 H +ATOM 1872 HH12 ARG A 625 20.267 5.463 -4.841 1.00 0.00 H +ATOM 1873 HH21 ARG A 625 16.910 6.432 -5.767 1.00 0.00 H +ATOM 1874 HH22 ARG A 625 18.563 6.806 -6.080 1.00 0.00 H +ATOM 1875 N SER A 626 14.563 -1.070 -6.295 1.00 0.00 N +ATOM 1876 CA SER A 626 14.395 -1.976 -7.414 1.00 0.00 C +ATOM 1877 C SER A 626 12.971 -1.904 -7.982 1.00 0.00 C +ATOM 1878 O SER A 626 12.748 -2.384 -9.093 1.00 0.00 O +ATOM 1879 CB SER A 626 14.773 -3.400 -6.973 1.00 0.00 C +ATOM 1880 OG SER A 626 15.377 -4.111 -8.035 1.00 0.00 O +ATOM 1881 H SER A 626 14.645 -1.487 -5.376 1.00 0.00 H +ATOM 1882 HA SER A 626 15.087 -1.657 -8.194 1.00 0.00 H +ATOM 1883 HB2 SER A 626 15.495 -3.353 -6.156 1.00 0.00 H +ATOM 1884 HB3 SER A 626 13.882 -3.934 -6.633 1.00 0.00 H +ATOM 1885 HG SER A 626 16.195 -3.606 -8.256 1.00 0.00 H +ATOM 1886 N LEU A 627 11.997 -1.282 -7.300 1.00 0.00 N +ATOM 1887 CA LEU A 627 10.704 -0.996 -7.894 1.00 0.00 C +ATOM 1888 C LEU A 627 10.814 0.210 -8.803 1.00 0.00 C +ATOM 1889 O LEU A 627 11.184 1.306 -8.388 1.00 0.00 O +ATOM 1890 CB LEU A 627 9.644 -0.778 -6.812 1.00 0.00 C +ATOM 1891 CG LEU A 627 8.267 -0.404 -7.373 1.00 0.00 C +ATOM 1892 CD1 LEU A 627 7.668 -1.495 -8.266 1.00 0.00 C +ATOM 1893 CD2 LEU A 627 7.334 -0.136 -6.197 1.00 0.00 C +ATOM 1894 H LEU A 627 12.189 -0.840 -6.408 1.00 0.00 H +ATOM 1895 HA LEU A 627 10.435 -1.840 -8.531 1.00 0.00 H +ATOM 1896 HB2 LEU A 627 9.568 -1.675 -6.201 1.00 0.00 H +ATOM 1897 HB3 LEU A 627 9.967 0.039 -6.176 1.00 0.00 H +ATOM 1898 HG LEU A 627 8.345 0.518 -7.946 1.00 0.00 H +ATOM 1899 HD11 LEU A 627 7.629 -2.438 -7.721 1.00 0.00 H +ATOM 1900 HD12 LEU A 627 6.661 -1.203 -8.564 1.00 0.00 H +ATOM 1901 HD13 LEU A 627 8.258 -1.622 -9.172 1.00 0.00 H +ATOM 1902 HD21 LEU A 627 7.772 0.630 -5.556 1.00 0.00 H +ATOM 1903 HD22 LEU A 627 6.389 0.235 -6.584 1.00 0.00 H +ATOM 1904 HD23 LEU A 627 7.184 -1.053 -5.624 1.00 0.00 H +ATOM 1905 N LYS A 628 10.460 -0.031 -10.057 1.00 0.00 N +ATOM 1906 CA LYS A 628 10.573 0.866 -11.194 1.00 0.00 C +ATOM 1907 C LYS A 628 9.247 1.606 -11.390 1.00 0.00 C +ATOM 1908 O LYS A 628 8.814 1.830 -12.515 1.00 0.00 O +ATOM 1909 CB LYS A 628 10.994 0.008 -12.402 1.00 0.00 C +ATOM 1910 CG LYS A 628 12.213 -0.904 -12.122 1.00 0.00 C +ATOM 1911 CD LYS A 628 13.551 -0.140 -11.983 1.00 0.00 C +ATOM 1912 CE LYS A 628 13.759 0.327 -10.532 1.00 0.00 C +ATOM 1913 NZ LYS A 628 14.822 1.334 -10.349 1.00 0.00 N +ATOM 1914 H LYS A 628 10.164 -0.968 -10.285 1.00 0.00 H +ATOM 1915 HA LYS A 628 11.328 1.631 -11.007 1.00 0.00 H +ATOM 1916 HB2 LYS A 628 10.153 -0.630 -12.676 1.00 0.00 H +ATOM 1917 HB3 LYS A 628 11.208 0.658 -13.253 1.00 0.00 H +ATOM 1918 HG2 LYS A 628 12.044 -1.507 -11.236 1.00 0.00 H +ATOM 1919 HG3 LYS A 628 12.257 -1.659 -12.897 1.00 0.00 H +ATOM 1920 HD2 LYS A 628 14.368 -0.812 -12.250 1.00 0.00 H +ATOM 1921 HD3 LYS A 628 13.556 0.712 -12.666 1.00 0.00 H +ATOM 1922 HE2 LYS A 628 12.839 0.772 -10.166 1.00 0.00 H +ATOM 1923 HE3 LYS A 628 13.982 -0.540 -9.910 1.00 0.00 H +ATOM 1924 HZ1 LYS A 628 15.751 0.965 -10.532 1.00 0.00 H +ATOM 1925 HZ2 LYS A 628 14.677 2.147 -10.938 1.00 0.00 H +ATOM 1926 HZ3 LYS A 628 14.823 1.636 -9.379 1.00 0.00 H +ATOM 1927 N ALA A 629 8.552 1.897 -10.292 1.00 0.00 N +ATOM 1928 CA ALA A 629 7.294 2.615 -10.276 1.00 0.00 C +ATOM 1929 C ALA A 629 7.340 3.601 -9.106 1.00 0.00 C +ATOM 1930 O ALA A 629 7.990 3.296 -8.091 1.00 0.00 O +ATOM 1931 CB ALA A 629 6.144 1.610 -10.132 1.00 0.00 C +ATOM 1932 H ALA A 629 9.037 1.850 -9.408 1.00 0.00 H +ATOM 1933 HA ALA A 629 7.185 3.158 -11.213 1.00 0.00 H +ATOM 1934 HB1 ALA A 629 6.232 0.821 -10.882 1.00 0.00 H +ATOM 1935 HB2 ALA A 629 6.156 1.162 -9.140 1.00 0.00 H +ATOM 1936 HB3 ALA A 629 5.200 2.134 -10.273 1.00 0.00 H +ATOM 1937 N PRO A 630 6.669 4.762 -9.209 1.00 0.00 N +ATOM 1938 CA PRO A 630 6.545 5.687 -8.095 1.00 0.00 C +ATOM 1939 C PRO A 630 5.832 5.002 -6.937 1.00 0.00 C +ATOM 1940 O PRO A 630 4.931 4.189 -7.133 1.00 0.00 O +ATOM 1941 CB PRO A 630 5.754 6.893 -8.617 1.00 0.00 C +ATOM 1942 CG PRO A 630 5.758 6.736 -10.135 1.00 0.00 C +ATOM 1943 CD PRO A 630 5.895 5.234 -10.346 1.00 0.00 C +ATOM 1944 HA PRO A 630 7.540 5.986 -7.766 1.00 0.00 H +ATOM 1945 HB2 PRO A 630 4.727 6.866 -8.254 1.00 0.00 H +ATOM 1946 HB3 PRO A 630 6.234 7.824 -8.328 1.00 0.00 H +ATOM 1947 HG2 PRO A 630 4.844 7.126 -10.585 1.00 0.00 H +ATOM 1948 HG3 PRO A 630 6.637 7.233 -10.545 1.00 0.00 H +ATOM 1949 HD2 PRO A 630 4.911 4.762 -10.340 1.00 0.00 H +ATOM 1950 HD3 PRO A 630 6.405 5.050 -11.290 1.00 0.00 H +ATOM 1951 N ALA A 631 6.241 5.325 -5.716 1.00 0.00 N +ATOM 1952 CA ALA A 631 5.687 4.758 -4.509 1.00 0.00 C +ATOM 1953 C ALA A 631 5.948 5.708 -3.351 1.00 0.00 C +ATOM 1954 O ALA A 631 7.102 5.846 -2.923 1.00 0.00 O +ATOM 1955 CB ALA A 631 6.317 3.384 -4.267 1.00 0.00 C +ATOM 1956 H ALA A 631 6.863 6.115 -5.608 1.00 0.00 H +ATOM 1957 HA ALA A 631 4.615 4.663 -4.648 1.00 0.00 H +ATOM 1958 HB1 ALA A 631 6.100 2.733 -5.114 1.00 0.00 H +ATOM 1959 HB2 ALA A 631 7.398 3.489 -4.178 1.00 0.00 H +ATOM 1960 HB3 ALA A 631 5.904 2.951 -3.355 1.00 0.00 H +ATOM 1961 N VAL A 632 4.891 6.369 -2.874 1.00 0.00 N +ATOM 1962 CA VAL A 632 4.915 6.997 -1.558 1.00 0.00 C +ATOM 1963 C VAL A 632 5.086 5.857 -0.556 1.00 0.00 C +ATOM 1964 O VAL A 632 4.466 4.799 -0.714 1.00 0.00 O +ATOM 1965 CB VAL A 632 3.626 7.814 -1.313 1.00 0.00 C +ATOM 1966 CG1 VAL A 632 3.456 8.305 0.135 1.00 0.00 C +ATOM 1967 CG2 VAL A 632 3.590 9.058 -2.203 1.00 0.00 C +ATOM 1968 H VAL A 632 3.979 6.160 -3.268 1.00 0.00 H +ATOM 1969 HA VAL A 632 5.775 7.663 -1.503 1.00 0.00 H +ATOM 1970 HB VAL A 632 2.766 7.195 -1.564 1.00 0.00 H +ATOM 1971 HG11 VAL A 632 4.304 8.931 0.417 1.00 0.00 H +ATOM 1972 HG12 VAL A 632 2.541 8.895 0.233 1.00 0.00 H +ATOM 1973 HG13 VAL A 632 3.388 7.464 0.824 1.00 0.00 H +ATOM 1974 HG21 VAL A 632 3.666 8.782 -3.254 1.00 0.00 H +ATOM 1975 HG22 VAL A 632 2.641 9.578 -2.052 1.00 0.00 H +ATOM 1976 HG23 VAL A 632 4.421 9.726 -1.951 1.00 0.00 H +ATOM 1977 N VAL A 633 5.915 6.070 0.463 1.00 0.00 N +ATOM 1978 CA VAL A 633 6.163 5.093 1.515 1.00 0.00 C +ATOM 1979 C VAL A 633 5.695 5.698 2.832 1.00 0.00 C +ATOM 1980 O VAL A 633 5.886 6.890 3.049 1.00 0.00 O +ATOM 1981 CB VAL A 633 7.640 4.662 1.530 1.00 0.00 C +ATOM 1982 CG1 VAL A 633 7.913 3.630 2.638 1.00 0.00 C +ATOM 1983 CG2 VAL A 633 8.016 4.022 0.190 1.00 0.00 C +ATOM 1984 H VAL A 633 6.338 6.982 0.584 1.00 0.00 H +ATOM 1985 HA VAL A 633 5.590 4.201 1.307 1.00 0.00 H +ATOM 1986 HB VAL A 633 8.269 5.537 1.683 1.00 0.00 H +ATOM 1987 HG11 VAL A 633 8.946 3.295 2.589 1.00 0.00 H +ATOM 1988 HG12 VAL A 633 7.759 4.072 3.622 1.00 0.00 H +ATOM 1989 HG13 VAL A 633 7.257 2.767 2.517 1.00 0.00 H +ATOM 1990 HG21 VAL A 633 9.055 3.699 0.222 1.00 0.00 H +ATOM 1991 HG22 VAL A 633 7.363 3.168 0.001 1.00 0.00 H +ATOM 1992 HG23 VAL A 633 7.911 4.739 -0.620 1.00 0.00 H +ATOM 1993 N SER A 634 5.121 4.889 3.716 1.00 0.00 N +ATOM 1994 CA SER A 634 4.670 5.292 5.033 1.00 0.00 C +ATOM 1995 C SER A 634 5.358 4.406 6.055 1.00 0.00 C +ATOM 1996 O SER A 634 5.160 3.188 6.039 1.00 0.00 O +ATOM 1997 CB SER A 634 3.149 5.180 5.075 1.00 0.00 C +ATOM 1998 OG SER A 634 2.605 5.501 6.339 1.00 0.00 O +ATOM 1999 H SER A 634 4.925 3.940 3.428 1.00 0.00 H +ATOM 2000 HA SER A 634 4.938 6.330 5.214 1.00 0.00 H +ATOM 2001 HB2 SER A 634 2.760 5.887 4.345 1.00 0.00 H +ATOM 2002 HB3 SER A 634 2.848 4.170 4.796 1.00 0.00 H +ATOM 2003 HG SER A 634 2.755 4.764 6.964 1.00 0.00 H +ATOM 2004 N VAL A 635 6.126 5.001 6.961 1.00 0.00 N +ATOM 2005 CA VAL A 635 6.610 4.328 8.156 1.00 0.00 C +ATOM 2006 C VAL A 635 5.819 4.831 9.356 1.00 0.00 C +ATOM 2007 O VAL A 635 5.556 6.025 9.495 1.00 0.00 O +ATOM 2008 CB VAL A 635 8.122 4.528 8.358 1.00 0.00 C +ATOM 2009 CG1 VAL A 635 8.913 3.495 7.558 1.00 0.00 C +ATOM 2010 CG2 VAL A 635 8.621 5.925 7.981 1.00 0.00 C +ATOM 2011 H VAL A 635 6.198 6.013 6.952 1.00 0.00 H +ATOM 2012 HA VAL A 635 6.423 3.257 8.067 1.00 0.00 H +ATOM 2013 HB VAL A 635 8.347 4.362 9.412 1.00 0.00 H +ATOM 2014 HG11 VAL A 635 8.643 2.498 7.904 1.00 0.00 H +ATOM 2015 HG12 VAL A 635 8.697 3.593 6.494 1.00 0.00 H +ATOM 2016 HG13 VAL A 635 9.976 3.651 7.732 1.00 0.00 H +ATOM 2017 HG21 VAL A 635 9.672 6.001 8.240 1.00 0.00 H +ATOM 2018 HG22 VAL A 635 8.511 6.104 6.911 1.00 0.00 H +ATOM 2019 HG23 VAL A 635 8.057 6.672 8.540 1.00 0.00 H +ATOM 2020 N SER A 636 5.517 3.905 10.259 1.00 0.00 N +ATOM 2021 CA SER A 636 4.780 4.101 11.497 1.00 0.00 C +ATOM 2022 C SER A 636 5.563 4.915 12.541 1.00 0.00 C +ATOM 2023 O SER A 636 5.174 4.943 13.718 1.00 0.00 O +ATOM 2024 CB SER A 636 4.391 2.714 12.025 1.00 0.00 C +ATOM 2025 OG SER A 636 5.541 1.889 12.175 1.00 0.00 O +ATOM 2026 H SER A 636 5.834 2.962 10.080 1.00 0.00 H +ATOM 2027 HA SER A 636 3.866 4.653 11.266 1.00 0.00 H +ATOM 2028 HB2 SER A 636 3.869 2.818 12.975 1.00 0.00 H +ATOM 2029 HB3 SER A 636 3.711 2.245 11.312 1.00 0.00 H +ATOM 2030 HG SER A 636 5.352 1.174 12.821 1.00 0.00 H +ATOM 2031 N SER A 637 6.692 5.532 12.171 1.00 0.00 N +ATOM 2032 CA SER A 637 7.317 6.553 12.994 1.00 0.00 C +ATOM 2033 C SER A 637 7.910 7.665 12.120 1.00 0.00 C +ATOM 2034 O SER A 637 8.498 7.376 11.075 1.00 0.00 O +ATOM 2035 CB SER A 637 8.369 5.934 13.921 1.00 0.00 C +ATOM 2036 OG SER A 637 9.081 4.868 13.308 1.00 0.00 O +ATOM 2037 H SER A 637 6.970 5.520 11.193 1.00 0.00 H +ATOM 2038 HA SER A 637 6.536 6.987 13.620 1.00 0.00 H +ATOM 2039 HB2 SER A 637 9.054 6.719 14.246 1.00 0.00 H +ATOM 2040 HB3 SER A 637 7.858 5.545 14.800 1.00 0.00 H +ATOM 2041 HG SER A 637 8.414 4.297 12.907 1.00 0.00 H +ATOM 2042 N PRO A 638 7.842 8.928 12.570 1.00 0.00 N +ATOM 2043 CA PRO A 638 8.398 10.070 11.863 1.00 0.00 C +ATOM 2044 C PRO A 638 9.916 9.981 11.824 1.00 0.00 C +ATOM 2045 O PRO A 638 10.536 10.288 10.808 1.00 0.00 O +ATOM 2046 CB PRO A 638 7.916 11.301 12.636 1.00 0.00 C +ATOM 2047 CG PRO A 638 7.722 10.783 14.058 1.00 0.00 C +ATOM 2048 CD PRO A 638 7.283 9.341 13.844 1.00 0.00 C +ATOM 2049 HA PRO A 638 8.032 10.112 10.843 1.00 0.00 H +ATOM 2050 HB2 PRO A 638 8.648 12.108 12.604 1.00 0.00 H +ATOM 2051 HB3 PRO A 638 6.958 11.633 12.235 1.00 0.00 H +ATOM 2052 HG2 PRO A 638 8.678 10.788 14.582 1.00 0.00 H +ATOM 2053 HG3 PRO A 638 6.974 11.355 14.606 1.00 0.00 H +ATOM 2054 HD2 PRO A 638 7.654 8.711 14.654 1.00 0.00 H +ATOM 2055 HD3 PRO A 638 6.200 9.287 13.775 1.00 0.00 H +ATOM 2056 N ASP A 639 10.526 9.500 12.906 1.00 0.00 N +ATOM 2057 CA ASP A 639 11.975 9.514 13.076 1.00 0.00 C +ATOM 2058 C ASP A 639 12.697 8.533 12.152 1.00 0.00 C +ATOM 2059 O ASP A 639 13.917 8.583 11.999 1.00 0.00 O +ATOM 2060 CB ASP A 639 12.290 9.189 14.535 1.00 0.00 C +ATOM 2061 CG ASP A 639 13.601 9.855 14.924 1.00 0.00 C +ATOM 2062 OD1 ASP A 639 13.671 11.106 14.841 1.00 0.00 O +ATOM 2063 OD2 ASP A 639 14.580 9.152 15.244 1.00 0.00 O +ATOM 2064 H ASP A 639 9.965 9.236 13.704 1.00 0.00 H +ATOM 2065 HA ASP A 639 12.324 10.522 12.845 1.00 0.00 H +ATOM 2066 HB2 ASP A 639 11.487 9.572 15.160 1.00 0.00 H +ATOM 2067 HB3 ASP A 639 12.345 8.108 14.680 1.00 0.00 H +ATOM 2068 N ALA A 640 11.908 7.647 11.547 1.00 0.00 N +ATOM 2069 CA ALA A 640 12.271 6.605 10.606 1.00 0.00 C +ATOM 2070 C ALA A 640 12.037 7.034 9.157 1.00 0.00 C +ATOM 2071 O ALA A 640 12.659 6.437 8.283 1.00 0.00 O +ATOM 2072 CB ALA A 640 11.471 5.329 10.900 1.00 0.00 C +ATOM 2073 H ALA A 640 10.941 7.830 11.725 1.00 0.00 H +ATOM 2074 HA ALA A 640 13.331 6.381 10.727 1.00 0.00 H +ATOM 2075 HB1 ALA A 640 11.769 4.546 10.200 1.00 0.00 H +ATOM 2076 HB2 ALA A 640 11.680 4.991 11.914 1.00 0.00 H +ATOM 2077 HB3 ALA A 640 10.401 5.511 10.786 1.00 0.00 H +ATOM 2078 N VAL A 641 11.207 8.054 8.865 1.00 0.00 N +ATOM 2079 CA VAL A 641 11.151 8.620 7.508 1.00 0.00 C +ATOM 2080 C VAL A 641 12.552 9.063 7.089 1.00 0.00 C +ATOM 2081 O VAL A 641 12.941 8.859 5.941 1.00 0.00 O +ATOM 2082 CB VAL A 641 10.167 9.807 7.439 1.00 0.00 C +ATOM 2083 CG1 VAL A 641 10.127 10.508 6.071 1.00 0.00 C +ATOM 2084 CG2 VAL A 641 8.750 9.356 7.771 1.00 0.00 C +ATOM 2085 H VAL A 641 10.614 8.491 9.571 1.00 0.00 H +ATOM 2086 HA VAL A 641 10.819 7.842 6.819 1.00 0.00 H +ATOM 2087 HB VAL A 641 10.460 10.543 8.179 1.00 0.00 H +ATOM 2088 HG11 VAL A 641 9.882 9.794 5.288 1.00 0.00 H +ATOM 2089 HG12 VAL A 641 9.378 11.302 6.078 1.00 0.00 H +ATOM 2090 HG13 VAL A 641 11.091 10.969 5.855 1.00 0.00 H +ATOM 2091 HG21 VAL A 641 8.714 8.944 8.778 1.00 0.00 H +ATOM 2092 HG22 VAL A 641 8.078 10.210 7.712 1.00 0.00 H +ATOM 2093 HG23 VAL A 641 8.426 8.598 7.061 1.00 0.00 H +ATOM 2094 N THR A 642 13.309 9.614 8.036 1.00 0.00 N +ATOM 2095 CA THR A 642 14.666 10.086 7.918 1.00 0.00 C +ATOM 2096 C THR A 642 15.554 8.898 7.562 1.00 0.00 C +ATOM 2097 O THR A 642 16.243 8.916 6.544 1.00 0.00 O +ATOM 2098 CB THR A 642 15.020 10.660 9.307 1.00 0.00 C +ATOM 2099 OG1 THR A 642 14.074 11.614 9.755 1.00 0.00 O +ATOM 2100 CG2 THR A 642 16.399 11.310 9.317 1.00 0.00 C +ATOM 2101 H THR A 642 12.994 9.621 8.990 1.00 0.00 H +ATOM 2102 HA THR A 642 14.746 10.837 7.122 1.00 0.00 H +ATOM 2103 HB THR A 642 14.970 9.840 10.035 1.00 0.00 H +ATOM 2104 HG1 THR A 642 14.420 11.933 10.605 1.00 0.00 H +ATOM 2105 HG21 THR A 642 16.447 12.100 8.568 1.00 0.00 H +ATOM 2106 HG22 THR A 642 16.619 11.732 10.298 1.00 0.00 H +ATOM 2107 HG23 THR A 642 17.155 10.563 9.087 1.00 0.00 H +ATOM 2108 N THR A 643 15.503 7.848 8.383 1.00 0.00 N +ATOM 2109 CA THR A 643 16.334 6.676 8.237 1.00 0.00 C +ATOM 2110 C THR A 643 16.095 6.020 6.872 1.00 0.00 C +ATOM 2111 O THR A 643 17.038 5.767 6.122 1.00 0.00 O +ATOM 2112 CB THR A 643 16.032 5.736 9.414 1.00 0.00 C +ATOM 2113 OG1 THR A 643 16.108 6.457 10.629 1.00 0.00 O +ATOM 2114 CG2 THR A 643 16.968 4.531 9.469 1.00 0.00 C +ATOM 2115 H THR A 643 14.971 7.877 9.241 1.00 0.00 H +ATOM 2116 HA THR A 643 17.355 7.033 8.300 1.00 0.00 H +ATOM 2117 HB THR A 643 15.011 5.367 9.314 1.00 0.00 H +ATOM 2118 HG1 THR A 643 17.057 6.605 10.819 1.00 0.00 H +ATOM 2119 HG21 THR A 643 18.010 4.846 9.470 1.00 0.00 H +ATOM 2120 HG22 THR A 643 16.765 3.935 10.359 1.00 0.00 H +ATOM 2121 HG23 THR A 643 16.800 3.913 8.592 1.00 0.00 H +ATOM 2122 N TYR A 644 14.824 5.800 6.531 1.00 0.00 N +ATOM 2123 CA TYR A 644 14.390 5.190 5.293 1.00 0.00 C +ATOM 2124 C TYR A 644 14.866 6.001 4.085 1.00 0.00 C +ATOM 2125 O TYR A 644 15.481 5.450 3.172 1.00 0.00 O +ATOM 2126 CB TYR A 644 12.867 5.047 5.347 1.00 0.00 C +ATOM 2127 CG TYR A 644 12.327 4.235 4.201 1.00 0.00 C +ATOM 2128 CD1 TYR A 644 12.010 4.858 2.986 1.00 0.00 C +ATOM 2129 CD2 TYR A 644 12.196 2.846 4.336 1.00 0.00 C +ATOM 2130 CE1 TYR A 644 11.564 4.093 1.899 1.00 0.00 C +ATOM 2131 CE2 TYR A 644 11.766 2.067 3.253 1.00 0.00 C +ATOM 2132 CZ TYR A 644 11.471 2.688 2.017 1.00 0.00 C +ATOM 2133 OH TYR A 644 11.073 1.943 0.950 1.00 0.00 O +ATOM 2134 H TYR A 644 14.088 6.063 7.176 1.00 0.00 H +ATOM 2135 HA TYR A 644 14.827 4.196 5.238 1.00 0.00 H +ATOM 2136 HB2 TYR A 644 12.588 4.553 6.278 1.00 0.00 H +ATOM 2137 HB3 TYR A 644 12.401 6.032 5.348 1.00 0.00 H +ATOM 2138 HD1 TYR A 644 12.116 5.928 2.883 1.00 0.00 H +ATOM 2139 HD2 TYR A 644 12.448 2.375 5.271 1.00 0.00 H +ATOM 2140 HE1 TYR A 644 11.296 4.607 0.990 1.00 0.00 H +ATOM 2141 HE2 TYR A 644 11.672 1.000 3.396 1.00 0.00 H +ATOM 2142 HH TYR A 644 11.045 2.480 0.153 1.00 0.00 H +ATOM 2143 N ASN A 645 14.633 7.319 4.101 1.00 0.00 N +ATOM 2144 CA ASN A 645 15.126 8.247 3.073 1.00 0.00 C +ATOM 2145 C ASN A 645 16.636 8.137 2.930 1.00 0.00 C +ATOM 2146 O ASN A 645 17.172 8.178 1.822 1.00 0.00 O +ATOM 2147 CB ASN A 645 14.811 9.706 3.460 1.00 0.00 C +ATOM 2148 CG ASN A 645 13.583 10.234 2.755 1.00 0.00 C +ATOM 2149 OD1 ASN A 645 13.648 10.735 1.635 1.00 0.00 O +ATOM 2150 ND2 ASN A 645 12.434 10.132 3.384 1.00 0.00 N +ATOM 2151 H ASN A 645 14.152 7.692 4.914 1.00 0.00 H +ATOM 2152 HA ASN A 645 14.675 7.982 2.108 1.00 0.00 H +ATOM 2153 HB2 ASN A 645 14.715 9.810 4.538 1.00 0.00 H +ATOM 2154 HB3 ASN A 645 15.643 10.361 3.210 1.00 0.00 H +ATOM 2155 HD21 ASN A 645 12.424 9.723 4.315 1.00 0.00 H +ATOM 2156 HD22 ASN A 645 11.617 10.545 2.950 1.00 0.00 H +ATOM 2157 N GLY A 646 17.313 7.990 4.064 1.00 0.00 N +ATOM 2158 CA GLY A 646 18.738 7.818 4.156 1.00 0.00 C +ATOM 2159 C GLY A 646 19.193 6.606 3.366 1.00 0.00 C +ATOM 2160 O GLY A 646 20.170 6.693 2.621 1.00 0.00 O +ATOM 2161 H GLY A 646 16.790 7.986 4.931 1.00 0.00 H +ATOM 2162 HA2 GLY A 646 19.229 8.714 3.778 1.00 0.00 H +ATOM 2163 HA3 GLY A 646 18.992 7.663 5.202 1.00 0.00 H +ATOM 2164 N TYR A 647 18.525 5.462 3.521 1.00 0.00 N +ATOM 2165 CA TYR A 647 18.858 4.279 2.740 1.00 0.00 C +ATOM 2166 C TYR A 647 18.627 4.553 1.263 1.00 0.00 C +ATOM 2167 O TYR A 647 19.470 4.177 0.453 1.00 0.00 O +ATOM 2168 CB TYR A 647 18.035 3.067 3.175 1.00 0.00 C +ATOM 2169 CG TYR A 647 18.146 2.704 4.639 1.00 0.00 C +ATOM 2170 CD1 TYR A 647 19.403 2.599 5.269 1.00 0.00 C +ATOM 2171 CD2 TYR A 647 16.975 2.425 5.360 1.00 0.00 C +ATOM 2172 CE1 TYR A 647 19.487 2.215 6.618 1.00 0.00 C +ATOM 2173 CE2 TYR A 647 17.057 2.044 6.705 1.00 0.00 C +ATOM 2174 CZ TYR A 647 18.308 1.923 7.341 1.00 0.00 C +ATOM 2175 OH TYR A 647 18.354 1.488 8.628 1.00 0.00 O +ATOM 2176 H TYR A 647 17.730 5.431 4.152 1.00 0.00 H +ATOM 2177 HA TYR A 647 19.914 4.051 2.878 1.00 0.00 H +ATOM 2178 HB2 TYR A 647 16.990 3.261 2.934 1.00 0.00 H +ATOM 2179 HB3 TYR A 647 18.351 2.205 2.586 1.00 0.00 H +ATOM 2180 HD1 TYR A 647 20.318 2.757 4.717 1.00 0.00 H +ATOM 2181 HD2 TYR A 647 16.012 2.453 4.875 1.00 0.00 H +ATOM 2182 HE1 TYR A 647 20.457 2.099 7.080 1.00 0.00 H +ATOM 2183 HE2 TYR A 647 16.164 1.809 7.248 1.00 0.00 H +ATOM 2184 HH TYR A 647 19.245 1.145 8.861 1.00 0.00 H +ATOM 2185 N LEU A 648 17.525 5.226 0.911 1.00 0.00 N +ATOM 2186 CA LEU A 648 17.184 5.488 -0.490 1.00 0.00 C +ATOM 2187 C LEU A 648 18.194 6.422 -1.142 1.00 0.00 C +ATOM 2188 O LEU A 648 18.348 6.438 -2.357 1.00 0.00 O +ATOM 2189 CB LEU A 648 15.779 6.091 -0.656 1.00 0.00 C +ATOM 2190 CG LEU A 648 14.587 5.228 -0.199 1.00 0.00 C +ATOM 2191 CD1 LEU A 648 13.365 5.545 -1.060 1.00 0.00 C +ATOM 2192 CD2 LEU A 648 14.801 3.721 -0.309 1.00 0.00 C +ATOM 2193 H LEU A 648 16.912 5.550 1.650 1.00 0.00 H +ATOM 2194 HA LEU A 648 17.226 4.548 -1.029 1.00 0.00 H +ATOM 2195 HB2 LEU A 648 15.741 7.041 -0.121 1.00 0.00 H +ATOM 2196 HB3 LEU A 648 15.661 6.314 -1.719 1.00 0.00 H +ATOM 2197 HG LEU A 648 14.363 5.472 0.837 1.00 0.00 H +ATOM 2198 HD11 LEU A 648 12.516 4.941 -0.757 1.00 0.00 H +ATOM 2199 HD12 LEU A 648 13.112 6.600 -0.965 1.00 0.00 H +ATOM 2200 HD13 LEU A 648 13.591 5.300 -2.098 1.00 0.00 H +ATOM 2201 HD21 LEU A 648 15.690 3.435 0.244 1.00 0.00 H +ATOM 2202 HD22 LEU A 648 13.943 3.204 0.116 1.00 0.00 H +ATOM 2203 HD23 LEU A 648 14.926 3.427 -1.346 1.00 0.00 H +ATOM 2204 N THR A 649 18.873 7.228 -0.342 1.00 0.00 N +ATOM 2205 CA THR A 649 19.908 8.120 -0.813 1.00 0.00 C +ATOM 2206 C THR A 649 21.251 7.376 -0.886 1.00 0.00 C +ATOM 2207 O THR A 649 22.041 7.620 -1.795 1.00 0.00 O +ATOM 2208 CB THR A 649 19.914 9.325 0.135 1.00 0.00 C +ATOM 2209 OG1 THR A 649 18.613 9.891 0.159 1.00 0.00 O +ATOM 2210 CG2 THR A 649 20.887 10.414 -0.295 1.00 0.00 C +ATOM 2211 H THR A 649 18.621 7.251 0.636 1.00 0.00 H +ATOM 2212 HA THR A 649 19.655 8.472 -1.815 1.00 0.00 H +ATOM 2213 HB THR A 649 20.179 8.994 1.140 1.00 0.00 H +ATOM 2214 HG1 THR A 649 18.054 9.319 0.711 1.00 0.00 H +ATOM 2215 HG21 THR A 649 21.883 9.992 -0.423 1.00 0.00 H +ATOM 2216 HG22 THR A 649 20.558 10.864 -1.229 1.00 0.00 H +ATOM 2217 HG23 THR A 649 20.932 11.175 0.483 1.00 0.00 H +ATOM 2218 N SER A 650 21.517 6.443 0.031 1.00 0.00 N +ATOM 2219 CA SER A 650 22.857 5.918 0.282 1.00 0.00 C +ATOM 2220 C SER A 650 23.130 4.586 -0.433 1.00 0.00 C +ATOM 2221 O SER A 650 24.273 4.130 -0.434 1.00 0.00 O +ATOM 2222 CB SER A 650 23.020 5.821 1.805 1.00 0.00 C +ATOM 2223 OG SER A 650 24.349 5.637 2.249 1.00 0.00 O +ATOM 2224 H SER A 650 20.789 6.218 0.701 1.00 0.00 H +ATOM 2225 HA SER A 650 23.586 6.644 -0.082 1.00 0.00 H +ATOM 2226 HB2 SER A 650 22.670 6.756 2.241 1.00 0.00 H +ATOM 2227 HB3 SER A 650 22.402 5.004 2.181 1.00 0.00 H +ATOM 2228 HG SER A 650 24.466 4.669 2.399 1.00 0.00 H +ATOM 2229 N SER A 651 22.134 3.942 -1.037 1.00 0.00 N +ATOM 2230 CA SER A 651 22.260 2.657 -1.709 1.00 0.00 C +ATOM 2231 C SER A 651 21.316 2.759 -2.892 1.00 0.00 C +ATOM 2232 O SER A 651 21.763 2.759 -4.058 1.00 0.00 O +ATOM 2233 CB SER A 651 21.912 1.563 -0.681 1.00 0.00 C +ATOM 2234 OG SER A 651 22.171 0.240 -1.110 1.00 0.00 O +ATOM 2235 H SER A 651 21.197 4.322 -1.050 1.00 0.00 H +ATOM 2236 HA SER A 651 23.280 2.520 -2.074 1.00 0.00 H +ATOM 2237 HB2 SER A 651 22.502 1.740 0.218 1.00 0.00 H +ATOM 2238 HB3 SER A 651 20.862 1.645 -0.411 1.00 0.00 H +ATOM 2239 HG SER A 651 23.140 0.106 -1.162 1.00 0.00 H Added: SwiftApps/modFTDock/app/Scoring/4TRA.pdb =================================================================== --- SwiftApps/modFTDock/app/Scoring/4TRA.pdb (rev 0) +++ SwiftApps/modFTDock/app/Scoring/4TRA.pdb 2011-12-02 20:56:36 UTC (rev 5337) @@ -0,0 +1,1652 @@ +ATOM 1 OP3 G A 1 23.310 31.674 59.557 0.55 43.73 O +ATOM 2 P G A 1 23.956 32.681 60.656 0.55 44.71 P +ATOM 3 OP1 G A 1 25.382 32.748 60.220 0.55 44.92 O +ATOM 4 OP2 G A 1 23.290 34.019 60.607 0.55 42.38 O +ATOM 5 O5' G A 1 23.713 31.950 62.046 0.86 35.51 O +ATOM 6 C5' G A 1 23.820 32.681 63.290 1.00 33.29 C +ATOM 7 C4' G A 1 23.204 31.787 64.357 1.00 34.35 C +ATOM 8 O4' G A 1 21.841 32.113 64.535 1.00 30.75 O +ATOM 9 C3' G A 1 23.197 30.297 63.985 1.00 35.86 C +ATOM 10 O3' G A 1 24.453 29.684 64.244 1.00 40.42 O +ATOM 11 C2' G A 1 22.058 29.763 64.858 1.00 31.69 C +ATOM 12 O2' G A 1 22.581 29.549 66.183 1.00 28.80 O +ATOM 13 C1' G A 1 21.092 30.921 64.842 1.00 29.94 C +ATOM 14 N9 G A 1 20.026 30.758 63.840 1.00 27.08 N +ATOM 15 C8 G A 1 20.056 31.118 62.515 1.00 28.25 C +ATOM 16 N7 G A 1 18.947 30.859 61.868 1.00 28.56 N +ATOM 17 C5 G A 1 18.127 30.286 62.838 1.00 25.31 C +ATOM 18 C6 G A 1 16.802 29.785 62.773 1.00 26.75 C +ATOM 19 O6 G A 1 16.065 29.757 61.787 1.00 25.45 O +ATOM 20 N1 G A 1 16.322 29.291 63.953 1.00 25.73 N +ATOM 21 C2 G A 1 17.065 29.279 65.101 1.00 25.07 C +ATOM 22 N2 G A 1 16.455 28.762 66.167 1.00 26.29 N +ATOM 23 N3 G A 1 18.314 29.729 65.214 1.00 23.17 N +ATOM 24 C4 G A 1 18.780 30.218 64.050 1.00 23.19 C +ATOM 25 P C A 2 25.056 28.470 63.387 1.00 49.37 P +ATOM 26 OP1 C A 2 26.485 28.740 63.000 1.00 43.76 O +ATOM 27 OP2 C A 2 24.150 28.397 62.208 1.00 44.42 O +ATOM 28 O5' C A 2 24.952 27.239 64.406 1.00 39.87 O +ATOM 29 C5' C A 2 24.243 26.058 63.953 1.00 37.41 C +ATOM 30 C4' C A 2 23.111 25.799 64.923 1.00 37.41 C +ATOM 31 O4' C A 2 22.158 26.851 64.939 1.00 36.47 O +ATOM 32 C3' C A 2 22.288 24.557 64.535 1.00 37.29 C +ATOM 33 O3' C A 2 22.974 23.343 64.890 1.00 40.61 O +ATOM 34 C2' C A 2 20.982 24.821 65.262 1.00 36.80 C +ATOM 35 O2' C A 2 21.178 24.461 66.636 1.00 39.77 O +ATOM 36 C1' C A 2 20.849 26.311 65.149 1.00 35.09 C +ATOM 37 N1 C A 2 19.989 26.631 63.985 1.00 32.55 N +ATOM 38 C2 C A 2 18.823 25.912 63.808 1.00 31.22 C +ATOM 39 O2 C A 2 18.490 25.024 64.583 1.00 29.90 O +ATOM 40 N3 C A 2 18.047 26.215 62.725 1.00 30.98 N +ATOM 41 C4 C A 2 18.394 27.188 61.836 1.00 30.39 C +ATOM 42 N4 C A 2 17.594 27.441 60.801 1.00 29.45 N +ATOM 43 C5 C A 2 19.596 27.924 62.030 1.00 30.32 C +ATOM 44 C6 C A 2 20.342 27.610 63.096 1.00 30.25 C +ATOM 45 P G A 3 23.497 22.443 63.630 1.00 48.40 P +ATOM 46 OP1 G A 3 24.793 21.774 63.953 1.00 40.08 O +ATOM 47 OP2 G A 3 23.587 23.444 62.531 1.00 39.94 O +ATOM 48 O5' G A 3 22.301 21.381 63.484 1.00 37.08 O +ATOM 49 C5' G A 3 21.642 21.077 64.729 1.00 35.89 C +ATOM 50 C4' G A 3 20.216 20.672 64.438 1.00 37.55 C +ATOM 51 O4' G A 3 19.406 21.813 64.163 1.00 33.08 O +ATOM 52 C3' G A 3 20.056 19.784 63.193 1.00 35.85 C +ATOM 53 O3' G A 3 20.386 18.429 63.468 1.00 36.61 O +ATOM 54 C2' G A 3 18.597 20.014 62.822 1.00 33.59 C +ATOM 55 O2' G A 3 17.814 19.177 63.662 1.00 32.67 O +ATOM 56 C1' G A 3 18.400 21.482 63.193 1.00 32.42 C +ATOM 57 N9 G A 3 18.470 22.319 61.981 1.00 32.53 N +ATOM 58 C8 G A 3 19.446 23.180 61.561 1.00 32.25 C +ATOM 59 N7 G A 3 19.177 23.775 60.430 1.00 30.37 N +ATOM 60 C5 G A 3 17.927 23.275 60.074 1.00 29.28 C +ATOM 61 C6 G A 3 17.095 23.534 58.959 1.00 29.92 C +ATOM 62 O6 G A 3 17.308 24.293 58.005 1.00 28.16 O +ATOM 63 N1 G A 3 15.912 22.837 58.959 1.00 30.27 N +ATOM 64 C2 G A 3 15.579 21.971 59.961 1.00 33.02 C +ATOM 65 N2 G A 3 14.390 21.369 59.799 1.00 35.92 N +ATOM 66 N3 G A 3 16.319 21.690 61.028 1.00 28.38 N +ATOM 67 C4 G A 3 17.478 22.381 61.028 1.00 30.04 C +ATOM 68 P G A 4 21.215 17.513 62.450 1.00 47.69 P +ATOM 69 OP1 G A 4 22.161 16.596 63.177 1.00 46.13 O +ATOM 70 OP2 G A 4 21.925 18.474 61.561 1.00 43.36 O +ATOM 71 O5' G A 4 20.059 16.681 61.723 1.00 37.46 O +ATOM 72 C5' G A 4 20.173 16.534 60.284 1.00 31.08 C +ATOM 73 C4' G A 4 18.767 16.534 59.719 1.00 25.17 C +ATOM 74 O4' G A 4 18.144 17.788 59.929 1.00 22.23 O +ATOM 75 C3' G A 4 18.707 16.321 58.215 1.00 25.88 C +ATOM 76 O3' G A 4 18.850 14.949 57.828 1.00 27.06 O +ATOM 77 C2' G A 4 17.348 16.917 57.860 1.00 26.15 C +ATOM 78 O2' G A 4 16.378 15.916 58.167 1.00 27.28 O +ATOM 79 C1' G A 4 17.278 18.075 58.846 1.00 23.13 C +ATOM 80 N9 G A 4 17.694 19.289 58.119 1.00 19.06 N +ATOM 81 C8 G A 4 18.750 20.115 58.393 1.00 19.00 C +ATOM 82 N7 G A 4 18.873 21.111 57.553 1.00 17.81 N +ATOM 83 C5 G A 4 17.817 20.925 56.664 1.00 18.66 C +ATOM 84 C6 G A 4 17.408 21.678 55.516 1.00 20.16 C +ATOM 85 O6 G A 4 17.927 22.702 55.064 1.00 19.43 O +ATOM 86 N1 G A 4 16.305 21.172 54.886 1.00 18.14 N +ATOM 87 C2 G A 4 15.666 20.048 55.306 1.00 17.90 C +ATOM 88 N2 G A 4 14.603 19.694 54.579 1.00 19.56 N +ATOM 89 N3 G A 4 16.005 19.312 56.357 1.00 16.17 N +ATOM 90 C4 G A 4 17.088 19.806 56.987 1.00 16.65 C +ATOM 91 P A A 5 20.089 14.640 56.809 1.00 28.41 P +ATOM 92 OP1 A A 5 20.439 13.184 56.906 1.00 32.32 O +ATOM 93 OP2 A A 5 21.169 15.505 57.343 1.00 26.68 O +ATOM 94 O5' A A 5 19.526 15.016 55.371 1.00 16.70 O +ATOM 95 C5' A A 5 18.627 14.066 54.724 1.00 16.63 C +ATOM 96 C4' A A 5 17.628 14.887 53.949 1.00 16.22 C +ATOM 97 O4' A A 5 17.358 16.090 54.644 1.00 17.33 O +ATOM 98 C3' A A 5 18.124 15.337 52.575 1.00 17.89 C +ATOM 99 O3' A A 5 18.011 14.330 51.573 1.00 15.55 O +ATOM 100 C2' A A 5 17.248 16.562 52.300 1.00 13.53 C +ATOM 101 O2' A A 5 16.005 16.073 51.815 1.00 11.51 O +ATOM 102 C1' A A 5 17.131 17.130 53.690 1.00 14.94 C +ATOM 103 N9 A A 5 18.161 18.170 53.836 1.00 14.40 N +ATOM 104 C8 A A 5 19.193 18.181 54.757 1.00 11.88 C +ATOM 105 N7 A A 5 19.963 19.233 54.660 1.00 12.69 N +ATOM 106 C5 A A 5 19.400 19.958 53.609 1.00 13.64 C +ATOM 107 C6 A A 5 19.770 21.195 53.028 1.00 17.30 C +ATOM 108 N6 A A 5 20.812 21.909 53.415 1.00 15.64 N +ATOM 109 N1 A A 5 18.967 21.605 51.993 1.00 18.26 N +ATOM 110 C2 A A 5 17.894 20.875 51.589 1.00 17.81 C +ATOM 111 N3 A A 5 17.491 19.705 52.090 1.00 14.01 N +ATOM 112 C4 A A 5 18.291 19.312 53.108 1.00 12.30 C +ATOM 113 P U A 6 19.410 13.853 50.910 1.00 17.85 P +ATOM 114 OP1 U A 6 19.257 12.441 50.425 1.00 23.85 O +ATOM 115 OP2 U A 6 20.412 14.027 51.993 1.00 8.17 O +ATOM 116 O5' U A 6 19.583 14.865 49.682 1.00 6.78 O +ATOM 117 C5' U A 6 18.500 14.893 48.728 1.00 5.01 C +ATOM 118 C4' U A 6 18.600 16.219 48.001 1.00 6.97 C +ATOM 119 O4' U A 6 18.487 17.299 48.922 1.00 7.21 O +ATOM 120 C3' U A 6 19.939 16.444 47.306 1.00 8.35 C +ATOM 121 O3' U A 6 20.003 15.753 46.062 1.00 6.95 O +ATOM 122 C2' U A 6 19.979 17.962 47.193 1.00 1.29 C +ATOM 123 O2' U A 6 19.200 18.305 46.062 1.00 1.41 O +ATOM 124 C1' U A 6 19.303 18.401 48.486 1.00 2.21 C +ATOM 125 N1 U A 6 20.302 18.778 49.504 1.00 1.08 N +ATOM 126 C2 U A 6 21.115 19.862 49.197 1.00 2.33 C +ATOM 127 O2 U A 6 20.999 20.470 48.130 1.00 0.00 O +ATOM 128 N3 U A 6 22.051 20.234 50.118 1.00 0.00 N +ATOM 129 C4 U A 6 22.201 19.581 51.298 1.00 0.00 C +ATOM 130 O4 U A 6 23.094 20.003 52.090 1.00 1.46 O +ATOM 131 C5 U A 6 21.355 18.468 51.605 1.00 2.95 C +ATOM 132 C6 U A 6 20.442 18.114 50.684 1.00 0.36 C +ATOM 133 P U A 7 21.388 15.078 45.577 1.00 8.92 P +ATOM 134 OP1 U A 7 21.145 14.027 44.542 1.00 13.89 O +ATOM 135 OP2 U A 7 21.998 14.550 46.821 1.00 12.32 O +ATOM 136 O5' U A 7 22.125 16.360 44.946 1.00 15.19 O +ATOM 137 C5' U A 7 21.368 17.018 43.896 1.00 10.20 C +ATOM 138 C4' U A 7 22.038 18.328 43.557 1.00 3.40 C +ATOM 139 O4' U A 7 22.174 19.126 44.736 1.00 3.48 O +ATOM 140 C3' U A 7 23.470 18.181 42.991 1.00 0.00 C +ATOM 141 O3' U A 7 23.693 19.160 41.940 1.00 3.91 O +ATOM 142 C2' U A 7 24.336 18.440 44.203 1.00 0.00 C +ATOM 143 O2' U A 7 25.595 18.896 43.815 1.00 0.00 O +ATOM 144 C1' U A 7 23.547 19.486 44.946 1.00 0.00 C +ATOM 145 N1 U A 7 23.937 19.486 46.353 1.00 0.00 N +ATOM 146 C2 U A 7 24.699 20.543 46.821 1.00 0.00 C +ATOM 147 O2 U A 7 25.036 21.448 46.062 1.00 0.00 O +ATOM 148 N3 U A 7 25.056 20.543 48.130 1.00 0.00 N +ATOM 149 C4 U A 7 24.689 19.548 48.987 1.00 0.00 C +ATOM 150 O4 U A 7 25.059 19.615 50.199 1.00 0.00 O +ATOM 151 C5 U A 7 23.903 18.463 48.502 1.00 4.66 C +ATOM 152 C6 U A 7 23.560 18.479 47.193 1.00 1.45 C +ATOM 153 P U A 8 23.384 18.637 40.437 1.00 6.43 P +ATOM 154 OP1 U A 8 23.787 19.683 39.435 1.00 10.99 O +ATOM 155 OP2 U A 8 21.938 18.333 40.502 1.00 10.90 O +ATOM 156 O5' U A 8 24.333 17.355 40.292 1.00 6.66 O +ATOM 157 C5' U A 8 25.705 17.591 39.872 1.00 3.30 C +ATOM 158 C4' U A 8 26.118 16.439 38.999 1.00 0.00 C +ATOM 159 O4' U A 8 25.945 15.224 39.710 1.00 0.00 O +ATOM 160 C3' U A 8 25.286 16.264 37.738 1.00 0.00 C +ATOM 161 O3' U A 8 25.662 17.102 36.639 1.00 0.00 O +ATOM 162 C2' U A 8 25.519 14.780 37.431 1.00 0.00 C +ATOM 163 O2' U A 8 26.795 14.730 36.801 1.00 0.00 O +ATOM 164 C1' U A 8 25.572 14.184 38.805 1.00 0.00 C +ATOM 165 N1 U A 8 24.240 13.673 39.177 1.00 0.25 N +ATOM 166 C2 U A 8 23.733 12.576 38.498 1.00 0.00 C +ATOM 167 O2 U A 8 24.380 12.031 37.609 1.00 0.53 O +ATOM 168 N3 U A 8 22.498 12.127 38.870 1.00 0.00 N +ATOM 169 C4 U A 8 21.765 12.717 39.855 1.00 2.78 C +ATOM 170 O4 U A 8 20.622 12.228 40.114 1.00 1.19 O +ATOM 171 C5 U A 8 22.298 13.853 40.534 1.00 0.41 C +ATOM 172 C6 U A 8 23.514 14.280 40.163 1.00 0.00 C +ATOM 173 P A A 9 24.553 17.681 35.621 1.00 0.00 P +ATOM 174 OP1 A A 9 24.400 19.165 35.815 1.00 12.98 O +ATOM 175 OP2 A A 9 23.317 16.950 35.977 1.00 6.30 O +ATOM 176 O5' A A 9 25.092 17.361 34.167 1.00 0.00 O +ATOM 177 C5' A A 9 26.245 18.092 33.649 1.00 3.31 C +ATOM 178 C4' A A 9 25.962 18.198 32.162 1.00 4.34 C +ATOM 179 O4' A A 9 25.992 16.894 31.597 1.00 6.42 O +ATOM 180 C3' A A 9 24.583 18.789 31.855 1.00 6.32 C +ATOM 181 O3' A A 9 24.616 19.576 30.643 1.00 10.36 O +ATOM 182 C2' A A 9 23.743 17.546 31.645 1.00 3.67 C +ATOM 183 O2' A A 9 22.611 17.799 30.869 1.00 7.65 O +ATOM 184 C1' A A 9 24.739 16.619 30.966 1.00 2.02 C +ATOM 185 N9 A A 9 24.223 15.247 31.128 1.00 0.81 N +ATOM 186 C8 A A 9 23.204 14.814 31.936 1.00 1.30 C +ATOM 187 N7 A A 9 22.961 13.532 31.839 1.00 2.89 N +ATOM 188 C5 A A 9 23.877 13.088 30.886 1.00 3.22 C +ATOM 189 C6 A A 9 24.120 11.806 30.352 1.00 1.42 C +ATOM 190 N6 A A 9 23.454 10.715 30.692 1.00 0.00 N +ATOM 191 N1 A A 9 25.122 11.750 29.415 1.00 5.85 N +ATOM 192 C2 A A 9 25.825 12.858 29.059 1.00 5.07 C +ATOM 193 N3 A A 9 25.649 14.094 29.528 1.00 5.13 N +ATOM 194 C4 A A 9 24.656 14.139 30.449 1.00 5.09 C +ATOM 195 P G A 10 25.129 21.094 30.562 1.00 9.42 P +ATOM 196 OP1 G A 10 25.615 21.420 29.172 1.00 0.00 O +ATOM 197 OP2 G A 10 26.212 21.150 31.580 1.00 8.19 O +ATOM 198 O5' G A 10 23.873 22.004 30.934 1.00 7.35 O +ATOM 199 C5' G A 10 23.823 23.343 30.320 1.00 13.13 C +ATOM 200 C4' G A 10 22.401 23.517 29.835 1.00 7.32 C +ATOM 201 O4' G A 10 22.244 22.960 28.558 1.00 3.56 O +ATOM 202 C3' G A 10 21.385 22.786 30.724 1.00 2.05 C +ATOM 203 O3' G A 10 21.085 23.534 31.872 1.00 0.00 O +ATOM 204 C2' G A 10 20.216 22.612 29.754 1.00 7.47 C +ATOM 205 O2' G A 10 19.506 23.843 29.770 1.00 12.40 O +ATOM 206 C1' G A 10 20.929 22.387 28.445 1.00 9.59 C +ATOM 207 N9 G A 10 21.072 20.959 28.122 1.00 12.51 N +ATOM 208 C8 G A 10 22.258 20.301 27.863 1.00 10.30 C +ATOM 209 N7 G A 10 22.108 19.031 27.605 1.00 11.42 N +ATOM 210 C5 G A 10 20.732 18.834 27.685 1.00 13.46 C +ATOM 211 C6 G A 10 19.936 17.670 27.508 1.00 15.52 C +ATOM 212 O6 G A 10 20.339 16.534 27.233 1.00 12.63 O +ATOM 213 N1 G A 10 18.590 17.861 27.685 1.00 16.10 N +ATOM 214 C2 G A 10 18.074 19.081 27.993 1.00 16.77 C +ATOM 215 N2 G A 10 16.738 19.160 28.138 1.00 12.38 N +ATOM 216 CM2 G A 10 16.382 20.543 28.461 1.00 11.08 C +ATOM 217 N3 G A 10 18.767 20.211 28.170 1.00 14.81 N +ATOM 218 C4 G A 10 20.089 20.009 28.009 1.00 11.85 C +ATOM 219 P C A 11 20.382 23.106 33.229 1.00 4.01 P +ATOM 220 OP1 C A 11 20.229 24.259 34.199 1.00 1.00 O +ATOM 221 OP2 C A 11 21.252 22.055 33.827 1.00 7.38 O +ATOM 222 O5' C A 11 18.950 22.640 32.728 1.00 6.52 O +ATOM 223 C5' C A 11 17.847 23.590 32.906 1.00 11.92 C +ATOM 224 C4' C A 11 16.622 22.702 32.857 1.00 6.89 C +ATOM 225 O4' C A 11 16.638 21.959 31.661 1.00 11.16 O +ATOM 226 C3' C A 11 16.582 21.667 33.972 1.00 5.09 C +ATOM 227 O3' C A 11 16.095 22.241 35.168 1.00 6.14 O +ATOM 228 C2' C A 11 15.689 20.599 33.342 1.00 11.39 C +ATOM 229 O2' C A 11 14.340 21.026 33.520 1.00 16.75 O +ATOM 230 C1' C A 11 16.082 20.655 31.888 1.00 10.47 C +ATOM 231 N1 C A 11 17.088 19.638 31.548 1.00 13.53 N +ATOM 232 C2 C A 11 16.632 18.356 31.306 1.00 16.96 C +ATOM 233 O2 C A 11 15.432 18.086 31.419 1.00 14.24 O +ATOM 234 N3 C A 11 17.554 17.406 30.966 1.00 20.48 N +ATOM 235 C4 C A 11 18.883 17.692 30.853 1.00 16.84 C +ATOM 236 N4 C A 11 19.723 16.709 30.530 1.00 14.05 N +ATOM 237 C5 C A 11 19.340 19.014 31.096 1.00 13.92 C +ATOM 238 C6 C A 11 18.417 19.936 31.419 1.00 13.87 C +ATOM 239 P U A 12 15.822 21.420 36.510 1.00 6.00 P +ATOM 240 OP1 U A 12 14.950 22.162 37.480 1.00 11.43 O +ATOM 241 OP2 U A 12 17.191 21.223 37.060 1.00 6.75 O +ATOM 242 O5' U A 12 15.089 20.093 36.025 1.00 6.44 O +ATOM 243 C5' U A 12 13.660 19.952 36.203 1.00 6.76 C +ATOM 244 C4' U A 12 13.377 18.468 36.268 1.00 7.30 C +ATOM 245 O4' U A 12 13.834 17.844 35.088 1.00 6.64 O +ATOM 246 C3' U A 12 14.107 17.732 37.383 1.00 4.70 C +ATOM 247 O3' U A 12 13.444 17.839 38.643 1.00 3.80 O +ATOM 248 C2' U A 12 14.130 16.298 36.849 1.00 7.59 C +ATOM 249 O2' U A 12 12.848 15.759 37.156 1.00 7.28 O +ATOM 250 C1' U A 12 14.310 16.512 35.379 1.00 13.71 C +ATOM 251 N1 U A 12 15.719 16.388 34.958 1.00 20.72 N +ATOM 252 C2 U A 12 16.122 15.157 34.457 1.00 18.94 C +ATOM 253 O2 U A 12 15.336 14.218 34.377 1.00 15.19 O +ATOM 254 N3 U A 12 17.421 15.033 34.053 1.00 19.01 N +ATOM 255 C4 U A 12 18.314 16.062 34.134 1.00 17.34 C +ATOM 256 O4 U A 12 19.493 15.837 33.730 1.00 21.87 O +ATOM 257 C5 U A 12 17.881 17.316 34.651 1.00 17.38 C +ATOM 258 C6 U A 12 16.605 17.428 35.039 1.00 18.19 C +ATOM 259 P C A 13 14.033 17.068 39.904 1.00 2.89 P +ATOM 260 OP1 C A 13 13.114 17.147 41.084 1.00 3.98 O +ATOM 261 OP2 C A 13 15.346 17.737 40.130 1.00 5.42 O +ATOM 262 O5' C A 13 14.187 15.567 39.387 1.00 4.80 O +ATOM 263 C5' C A 13 15.016 14.713 40.211 1.00 2.46 C +ATOM 264 C4' C A 13 15.233 13.437 39.419 1.00 1.93 C +ATOM 265 O4' C A 13 15.729 13.718 38.126 1.00 0.00 O +ATOM 266 C3' C A 13 16.282 12.520 40.049 1.00 3.55 C +ATOM 267 O3' C A 13 15.736 11.773 41.132 1.00 1.36 O +ATOM 268 C2' C A 13 16.722 11.671 38.853 1.00 3.74 C +ATOM 269 O2' C A 13 15.749 10.642 38.724 1.00 8.08 O +ATOM 270 C1' C A 13 16.645 12.678 37.722 1.00 3.48 C +ATOM 271 N1 C A 13 17.961 13.257 37.415 1.00 4.60 N +ATOM 272 C2 C A 13 18.813 12.481 36.639 1.00 5.47 C +ATOM 273 O2 C A 13 18.480 11.356 36.268 1.00 3.94 O +ATOM 274 N3 C A 13 20.033 13.004 36.316 1.00 10.84 N +ATOM 275 C4 C A 13 20.419 14.246 36.736 1.00 8.88 C +ATOM 276 N4 C A 13 21.625 14.696 36.381 1.00 4.12 N +ATOM 277 C5 C A 13 19.530 15.033 37.512 1.00 9.81 C +ATOM 278 C6 C A 13 18.334 14.505 37.819 1.00 7.86 C +ATOM 279 P A A 14 16.652 10.912 42.134 1.00 0.00 P +ATOM 280 OP1 A A 14 15.885 10.462 43.330 1.00 11.31 O +ATOM 281 OP2 A A 14 17.701 11.891 42.522 1.00 7.15 O +ATOM 282 O5' A A 14 17.061 9.704 41.181 1.00 3.36 O +ATOM 283 C5' A A 14 17.574 8.478 41.730 1.00 6.69 C +ATOM 284 C4' A A 14 17.724 7.466 40.615 1.00 5.08 C +ATOM 285 O4' A A 14 18.057 8.051 39.371 1.00 0.00 O +ATOM 286 C3' A A 14 18.877 6.482 40.874 1.00 2.72 C +ATOM 287 O3' A A 14 18.534 5.481 41.843 1.00 1.71 O +ATOM 288 C2' A A 14 19.157 5.965 39.484 1.00 7.69 C +ATOM 289 O2' A A 14 18.154 4.970 39.225 1.00 6.46 O +ATOM 290 C1' A A 14 18.927 7.185 38.643 1.00 0.00 C +ATOM 291 N9 A A 14 20.216 7.859 38.385 1.00 0.33 N +ATOM 292 C8 A A 14 20.559 9.141 38.757 1.00 3.70 C +ATOM 293 N7 A A 14 21.771 9.495 38.385 1.00 1.53 N +ATOM 294 C5 A A 14 22.258 8.366 37.754 1.00 0.00 C +ATOM 295 C6 A A 14 23.510 8.118 37.140 1.00 4.25 C +ATOM 296 N6 A A 14 24.503 8.995 37.076 1.00 4.25 N +ATOM 297 N1 A A 14 23.647 6.870 36.591 1.00 1.32 N +ATOM 298 C2 A A 14 22.634 5.965 36.639 1.00 0.64 C +ATOM 299 N3 A A 14 21.442 6.139 37.205 1.00 0.00 N +ATOM 300 C4 A A 14 21.318 7.365 37.738 1.00 0.00 C +ATOM 301 P G A 15 19.456 5.605 43.185 1.00 1.67 P +ATOM 302 OP1 G A 15 18.750 5.049 44.365 1.00 17.45 O +ATOM 303 OP2 G A 15 19.756 7.050 43.266 1.00 9.28 O +ATOM 304 O5' G A 15 20.719 4.722 42.765 1.00 10.27 O +ATOM 305 C5' G A 15 20.689 4.188 41.423 1.00 7.86 C +ATOM 306 C4' G A 15 22.128 4.127 40.954 1.00 6.80 C +ATOM 307 O4' G A 15 22.331 5.127 39.952 1.00 10.07 O +ATOM 308 C3' G A 15 23.187 4.419 41.989 1.00 2.79 C +ATOM 309 O3' G A 15 23.544 3.317 42.846 0.90 9.63 O +ATOM 310 C2' G A 15 24.356 4.852 41.116 1.00 6.46 C +ATOM 311 O2' G A 15 24.956 3.654 40.647 1.00 6.00 O +ATOM 312 C1' G A 15 23.657 5.611 40.017 1.00 9.74 C +ATOM 313 N9 G A 15 23.780 7.028 40.389 1.00 12.21 N +ATOM 314 C8 G A 15 22.894 7.781 41.116 1.00 14.58 C +ATOM 315 N7 G A 15 23.287 9.018 41.310 1.00 16.29 N +ATOM 316 C5 G A 15 24.520 9.080 40.664 1.00 15.66 C +ATOM 317 C6 G A 15 25.449 10.148 40.518 1.00 16.84 C +ATOM 318 O6 G A 15 25.336 11.300 40.954 1.00 14.57 O +ATOM 319 N1 G A 15 26.575 9.816 39.791 1.00 14.07 N +ATOM 320 C2 G A 15 26.771 8.568 39.290 1.00 11.60 C +ATOM 321 N2 G A 15 27.917 8.399 38.611 1.00 15.41 N +ATOM 322 N3 G A 15 25.938 7.539 39.403 1.00 9.72 N +ATOM 323 C4 G A 15 24.833 7.865 40.098 1.00 12.76 C +ATOM 324 P U A 16 24.193 3.778 44.268 0.90 13.88 P +ATOM 325 OP1 U A 16 23.147 4.318 45.189 0.90 12.56 O +ATOM 326 OP2 U A 16 25.156 4.829 43.847 0.90 15.63 O +ATOM 327 O5' U A 16 24.853 2.457 44.849 0.90 22.09 O +ATOM 328 C5' U A 16 24.090 1.226 44.898 0.76 25.26 C +ATOM 329 C4' U A 16 24.723 0.399 46.013 0.76 29.19 C +ATOM 330 O4' U A 16 24.126 0.759 47.242 0.76 29.89 O +ATOM 331 C3' U A 16 24.526 -1.113 45.835 0.76 31.53 C +ATOM 332 O3' U A 16 25.715 -1.838 46.256 0.69 29.35 O +ATOM 333 C1' U A 16 23.560 -0.416 47.872 0.76 32.84 C +ATOM 334 C2' U A 16 23.327 -1.377 46.724 0.76 31.38 C +ATOM 335 O2' U A 16 23.304 -2.727 47.112 0.76 34.76 O +ATOM 336 N1 U A 16 22.344 -0.039 48.583 0.61 37.16 N +ATOM 337 C2 U A 16 22.504 0.663 49.730 0.61 41.18 C +ATOM 338 O2 U A 16 23.573 1.006 50.199 0.61 43.75 O +ATOM 339 N3 U A 16 21.332 1.006 50.393 0.61 42.30 N +ATOM 340 C4 U A 16 20.059 0.708 50.005 0.61 42.03 C +ATOM 341 O4 U A 16 19.103 1.074 50.684 0.61 43.82 O +ATOM 342 C5 U A 16 19.933 -0.062 48.745 0.61 40.18 C +ATOM 343 C6 U A 16 21.169 -0.905 48.486 0.61 38.03 C +ATOM 344 P U A 17 26.761 -2.254 45.092 0.69 28.84 P +ATOM 345 OP1 U A 17 27.298 -1.035 44.397 0.69 34.24 O +ATOM 346 OP2 U A 17 25.912 -3.036 44.155 0.69 26.72 O +ATOM 347 O5' U A 17 27.924 -3.064 45.787 0.57 26.88 O +ATOM 348 C5' U A 17 28.440 -2.833 47.112 0.57 23.53 C +ATOM 349 C4' U A 17 29.932 -2.541 46.999 0.57 19.51 C +ATOM 350 O4' U A 17 30.649 -3.739 46.741 0.57 20.05 O +ATOM 351 C3' U A 17 30.295 -1.580 45.852 0.57 15.39 C +ATOM 352 O3' U A 17 31.395 -0.737 46.256 1.00 10.60 O +ATOM 353 C1' U A 17 31.421 -3.615 45.528 0.57 16.72 C +ATOM 354 C2' U A 17 30.729 -2.524 44.753 0.57 14.10 C +ATOM 355 O2' U A 17 31.561 -1.878 43.831 0.57 12.70 O +ATOM 356 N1 U A 17 31.468 -4.897 44.833 0.96 11.89 N +ATOM 357 C2 U A 17 30.808 -5.037 43.670 0.96 15.22 C +ATOM 358 O2 U A 17 29.949 -4.284 43.250 0.96 22.01 O +ATOM 359 N3 U A 17 31.025 -6.229 42.991 0.96 17.46 N +ATOM 360 C4 U A 17 31.931 -7.191 43.314 0.96 20.71 C +ATOM 361 O4 U A 17 32.021 -8.197 42.619 0.96 24.03 O +ATOM 362 C5 U A 17 32.767 -6.926 44.510 0.96 22.14 C +ATOM 363 C6 U A 17 32.021 -6.066 45.512 0.96 17.90 C +ATOM 364 P G A 18 31.381 0.140 47.581 1.00 6.79 P +ATOM 365 OP1 G A 18 31.721 -0.646 48.809 1.00 9.37 O +ATOM 366 OP2 G A 18 29.986 0.663 47.629 1.00 12.80 O +ATOM 367 O5' G A 18 32.494 1.254 47.274 1.00 3.89 O +ATOM 368 C5' G A 18 32.161 2.237 46.256 1.00 6.76 C +ATOM 369 C4' G A 18 33.297 2.187 45.237 1.00 5.75 C +ATOM 370 O4' G A 18 34.373 2.963 45.755 1.00 6.67 O +ATOM 371 C3' G A 18 33.836 0.787 44.979 1.00 0.00 C +ATOM 372 O3' G A 18 34.366 0.618 43.654 1.00 0.00 O +ATOM 373 C2' G A 18 35.029 0.725 45.916 1.00 0.00 C +ATOM 374 O2' G A 18 35.898 -0.270 45.464 1.00 2.08 O +ATOM 375 C1' G A 18 35.538 2.142 45.835 1.00 0.00 C +ATOM 376 N9 G A 18 36.401 2.412 46.999 1.00 0.00 N +ATOM 377 C8 G A 18 36.384 1.872 48.244 1.00 0.00 C +ATOM 378 N7 G A 18 37.320 2.333 49.035 1.00 0.00 N +ATOM 379 C5 G A 18 38.010 3.250 48.244 1.00 0.00 C +ATOM 380 C6 G A 18 39.129 4.082 48.518 1.00 0.00 C +ATOM 381 O6 G A 18 39.756 4.166 49.569 1.00 1.20 O +ATOM 382 N1 G A 18 39.529 4.857 47.452 1.00 0.00 N +ATOM 383 C2 G A 18 38.903 4.829 46.256 1.00 0.00 C +ATOM 384 N2 G A 18 39.406 5.644 45.318 1.00 0.00 N +ATOM 385 N3 G A 18 37.854 4.070 45.949 1.00 0.38 N +ATOM 386 C4 G A 18 37.457 3.306 46.983 1.00 3.99 C +ATOM 387 P G A 19 33.790 0.748 42.183 1.00 0.00 P +ATOM 388 OP1 G A 19 32.687 1.743 42.070 1.00 1.97 O +ATOM 389 OP2 G A 19 33.247 -0.613 41.908 1.00 1.44 O +ATOM 390 O5' G A 19 35.072 1.130 41.310 1.00 0.00 O +ATOM 391 C5' G A 19 35.129 2.209 40.373 1.00 0.00 C +ATOM 392 C4' G A 19 36.364 2.080 39.500 1.00 0.00 C +ATOM 393 O4' G A 19 37.427 1.495 40.227 1.00 8.34 O +ATOM 394 C3' G A 19 36.181 1.158 38.272 1.00 0.00 C +ATOM 395 O3' G A 19 36.901 1.709 37.156 1.00 1.83 O +ATOM 396 C2' G A 19 36.784 -0.163 38.757 1.00 0.00 C +ATOM 397 O2' G A 19 37.114 -0.905 37.609 1.00 2.96 O +ATOM 398 C1' G A 19 37.917 0.281 39.581 1.00 0.00 C +ATOM 399 N9 G A 19 38.300 -0.568 40.712 1.00 0.00 N +ATOM 400 C8 G A 19 37.504 -1.451 41.391 1.00 0.00 C +ATOM 401 N7 G A 19 38.110 -2.052 42.377 1.00 0.00 N +ATOM 402 C5 G A 19 39.399 -1.529 42.361 1.00 0.00 C +ATOM 403 C6 G A 19 40.532 -1.777 43.169 1.00 0.00 C +ATOM 404 O6 G A 19 40.621 -2.558 44.122 1.00 0.00 O +ATOM 405 N1 G A 19 41.644 -1.051 42.829 1.00 1.20 N +ATOM 406 C2 G A 19 41.658 -0.163 41.795 1.00 0.99 C +ATOM 407 N2 G A 19 42.820 0.467 41.585 1.00 0.00 N +ATOM 408 N3 G A 19 40.618 0.107 40.987 1.00 5.20 N +ATOM 409 C4 G A 19 39.526 -0.607 41.326 1.00 1.71 C +ATOM 410 P G A 20 36.408 3.115 36.526 1.00 2.55 P +ATOM 411 OP1 G A 20 37.547 3.918 35.960 1.00 1.87 O +ATOM 412 OP2 G A 20 35.755 3.806 37.658 1.00 0.00 O +ATOM 413 O5' G A 20 35.452 2.659 35.346 1.00 0.00 O +ATOM 414 C5' G A 20 36.095 2.530 34.037 1.00 0.00 C +ATOM 415 C4' G A 20 34.942 2.254 33.100 1.00 0.00 C +ATOM 416 O4' G A 20 34.076 1.310 33.698 1.00 0.00 O +ATOM 417 C3' G A 20 34.073 3.469 32.809 1.00 0.00 C +ATOM 418 O3' G A 20 34.629 4.329 31.807 1.00 1.61 O +ATOM 419 C2' G A 20 32.757 2.805 32.405 1.00 0.01 C +ATOM 420 O2' G A 20 32.874 2.412 31.047 1.00 4.44 O +ATOM 421 C1' G A 20 32.737 1.597 33.326 1.00 0.00 C +ATOM 422 N9 G A 20 31.894 1.923 34.490 1.00 0.00 N +ATOM 423 C8 G A 20 32.134 1.720 35.815 1.00 0.00 C +ATOM 424 N7 G A 20 31.168 2.136 36.607 1.00 0.00 N +ATOM 425 C5 G A 20 30.219 2.642 35.718 1.00 2.19 C +ATOM 426 C6 G A 20 28.946 3.238 35.928 1.00 0.00 C +ATOM 427 O6 G A 20 28.377 3.441 37.011 1.00 0.00 O +ATOM 428 N1 G A 20 28.297 3.621 34.781 1.00 0.00 N +ATOM 429 C2 G A 20 28.837 3.446 33.552 1.00 0.60 C +ATOM 430 N2 G A 20 28.084 3.874 32.518 1.00 0.15 N +ATOM 431 N3 G A 20 30.022 2.895 33.294 1.00 0.00 N +ATOM 432 C4 G A 20 30.655 2.519 34.425 1.00 0.00 C +ATOM 433 P A A 21 35.508 5.605 32.276 1.00 0.00 P +ATOM 434 OP1 A A 21 36.168 6.268 31.112 1.00 0.00 O +ATOM 435 OP2 A A 21 36.508 4.976 33.197 1.00 2.01 O +ATOM 436 O5' A A 21 34.479 6.555 33.019 1.00 0.00 O +ATOM 437 C5' A A 21 33.500 7.326 32.308 1.00 0.00 C +ATOM 438 C4' A A 21 32.154 7.162 32.971 1.00 1.08 C +ATOM 439 O4' A A 21 32.064 7.933 34.150 1.00 2.40 O +ATOM 440 C3' A A 21 30.985 7.652 32.098 1.00 0.00 C +ATOM 441 O3' A A 21 30.609 6.690 31.144 1.00 5.12 O +ATOM 442 C2' A A 21 29.902 7.916 33.148 1.00 0.00 C +ATOM 443 O2' A A 21 29.316 6.651 33.423 1.00 0.54 O +ATOM 444 C1' A A 21 30.715 8.427 34.312 1.00 2.79 C +ATOM 445 N9 A A 21 30.729 9.900 34.377 1.00 0.00 N +ATOM 446 C8 A A 21 31.578 10.772 33.746 1.00 0.00 C +ATOM 447 N7 A A 21 31.335 12.031 34.021 1.00 4.38 N +ATOM 448 C5 A A 21 30.246 11.986 34.878 1.00 3.49 C +ATOM 449 C6 A A 21 29.509 13.009 35.524 1.00 0.00 C +ATOM 450 N6 A A 21 29.759 14.297 35.411 1.00 0.47 N +ATOM 451 N1 A A 21 28.487 12.576 36.316 1.00 0.25 N +ATOM 452 C2 A A 21 28.200 11.250 36.461 1.00 1.02 C +ATOM 453 N3 A A 21 28.853 10.249 35.896 1.00 5.26 N +ATOM 454 C4 A A 21 29.866 10.676 35.104 1.00 1.73 C +ATOM 455 P G A 22 29.383 6.640 30.158 1.00 0.00 P +ATOM 456 OP1 G A 22 29.393 5.318 29.415 1.00 12.63 O +ATOM 457 OP2 G A 22 29.589 7.786 29.237 1.00 8.98 O +ATOM 458 O5' G A 22 28.047 6.735 31.015 1.00 1.57 O +ATOM 459 C5' G A 22 26.844 6.842 30.191 1.00 5.53 C +ATOM 460 C4' G A 22 25.709 6.319 31.031 1.00 0.85 C +ATOM 461 O4' G A 22 25.889 6.786 32.356 1.00 5.66 O +ATOM 462 C3' G A 22 24.323 6.825 30.643 1.00 0.74 C +ATOM 463 O3' G A 22 23.727 6.094 29.560 1.00 3.90 O +ATOM 464 C2' G A 22 23.573 6.668 31.952 1.00 0.67 C +ATOM 465 O2' G A 22 23.247 5.279 32.049 1.00 0.00 O +ATOM 466 C1' G A 22 24.613 7.016 32.971 1.00 2.41 C +ATOM 467 N9 G A 22 24.566 8.433 33.375 1.00 7.09 N +ATOM 468 C8 G A 22 25.605 9.333 33.310 1.00 10.11 C +ATOM 469 N7 G A 22 25.302 10.530 33.746 1.00 10.90 N +ATOM 470 C5 G A 22 23.970 10.406 34.134 1.00 4.07 C +ATOM 471 C6 G A 22 23.070 11.345 34.700 1.00 5.94 C +ATOM 472 O6 G A 22 23.287 12.531 34.975 1.00 4.48 O +ATOM 473 N1 G A 22 21.818 10.839 34.958 1.00 12.00 N +ATOM 474 C2 G A 22 21.482 9.552 34.700 1.00 8.56 C +ATOM 475 N2 G A 22 20.222 9.220 35.007 1.00 10.54 N +ATOM 476 N3 G A 22 22.288 8.624 34.167 1.00 10.69 N +ATOM 477 C4 G A 22 23.514 9.125 33.924 1.00 8.12 C +ATOM 478 P A A 23 22.847 6.909 28.477 1.00 5.94 P +ATOM 479 OP1 A A 23 22.881 6.274 27.120 1.00 0.73 O +ATOM 480 OP2 A A 23 23.493 8.253 28.477 1.00 12.20 O +ATOM 481 O5' A A 23 21.385 6.898 29.092 1.00 0.00 O +ATOM 482 C5' A A 23 20.709 5.616 29.269 1.00 6.09 C +ATOM 483 C4' A A 23 19.446 5.931 30.045 1.00 6.73 C +ATOM 484 O4' A A 23 19.783 6.527 31.274 1.00 5.74 O +ATOM 485 C3' A A 23 18.517 6.938 29.350 1.00 5.97 C +ATOM 486 O3' A A 23 17.708 6.359 28.332 1.00 1.13 O +ATOM 487 C2' A A 23 17.738 7.472 30.546 1.00 7.79 C +ATOM 488 O2' A A 23 16.728 6.510 30.837 1.00 11.50 O +ATOM 489 C1' A A 23 18.787 7.477 31.629 1.00 10.64 C +ATOM 490 N9 A A 23 19.363 8.832 31.710 1.00 15.20 N +ATOM 491 C8 A A 23 20.599 9.226 31.257 1.00 15.68 C +ATOM 492 N7 A A 23 20.849 10.491 31.451 1.00 18.24 N +ATOM 493 C5 A A 23 19.703 10.969 32.065 1.00 12.32 C +ATOM 494 C6 A A 23 19.360 12.262 32.534 1.00 15.50 C +ATOM 495 N6 A A 23 20.149 13.318 32.437 1.00 18.17 N +ATOM 496 N1 A A 23 18.121 12.351 33.100 1.00 20.60 N +ATOM 497 C2 A A 23 17.295 11.278 33.213 1.00 20.47 C +ATOM 498 N3 A A 23 17.561 10.041 32.793 1.00 21.86 N +ATOM 499 C4 A A 23 18.784 9.957 32.243 1.00 17.48 C +ATOM 500 P G A 24 17.501 6.983 26.861 1.00 5.70 P +ATOM 501 OP1 G A 24 17.378 5.920 25.795 1.00 8.31 O +ATOM 502 OP2 G A 24 18.624 7.905 26.603 1.00 4.78 O +ATOM 503 O5' G A 24 16.075 7.702 27.007 1.00 11.85 O +ATOM 504 C5' G A 24 15.213 7.073 28.009 1.00 15.16 C +ATOM 505 C4' G A 24 14.407 8.208 28.591 1.00 13.30 C +ATOM 506 O4' G A 24 15.000 8.731 29.754 1.00 13.68 O +ATOM 507 C3' G A 24 14.303 9.406 27.637 1.00 14.60 C +ATOM 508 O3' G A 24 13.364 9.158 26.603 1.00 14.10 O +ATOM 509 C2' G A 24 13.967 10.519 28.607 1.00 17.86 C +ATOM 510 O2' G A 24 12.568 10.418 28.882 1.00 9.54 O +ATOM 511 C1' G A 24 14.773 10.125 29.819 1.00 17.94 C +ATOM 512 N9 G A 24 16.045 10.867 29.754 1.00 19.56 N +ATOM 513 C8 G A 24 17.278 10.344 29.447 1.00 24.47 C +ATOM 514 N7 G A 24 18.244 11.233 29.447 1.00 25.68 N +ATOM 515 C5 G A 24 17.598 12.419 29.787 1.00 25.21 C +ATOM 516 C6 G A 24 18.091 13.740 29.948 1.00 27.48 C +ATOM 517 O6 G A 24 19.257 14.134 29.819 1.00 26.09 O +ATOM 518 N1 G A 24 17.128 14.656 30.288 1.00 30.45 N +ATOM 519 C2 G A 24 15.819 14.319 30.449 1.00 27.68 C +ATOM 520 N2 G A 24 15.006 15.337 30.789 1.00 27.86 N +ATOM 521 N3 G A 24 15.306 13.099 30.304 1.00 24.78 N +ATOM 522 C4 G A 24 16.249 12.200 29.964 1.00 21.58 C +ATOM 523 P C A 25 12.541 10.131 25.665 1.00 23.08 P +ATOM 524 OP1 C A 25 11.465 10.817 26.473 1.00 24.45 O +ATOM 525 OP2 C A 25 11.948 9.220 24.631 1.00 26.26 O +ATOM 526 O5' C A 25 13.467 11.244 25.003 1.00 18.54 O +ATOM 527 C5' C A 25 12.704 12.329 24.372 1.00 21.82 C +ATOM 528 C4' C A 25 12.468 13.392 25.423 1.00 21.60 C +ATOM 529 O4' C A 25 13.247 13.099 26.570 1.00 20.29 O +ATOM 530 C3' C A 25 12.901 14.803 25.019 1.00 21.88 C +ATOM 531 O3' C A 25 11.952 15.511 24.211 1.00 16.04 O +ATOM 532 C2' C A 25 13.127 15.466 26.376 1.00 20.93 C +ATOM 533 O2' C A 25 11.838 15.877 26.845 1.00 17.33 O +ATOM 534 C1' C A 25 13.677 14.319 27.168 1.00 17.48 C +ATOM 535 N1 C A 25 15.149 14.325 27.136 1.00 13.20 N +ATOM 536 C2 C A 25 15.826 15.489 27.427 1.00 17.05 C +ATOM 537 O2 C A 25 15.206 16.501 27.750 1.00 16.74 O +ATOM 538 N3 C A 25 17.195 15.455 27.378 1.00 18.39 N +ATOM 539 C4 C A 25 17.874 14.330 27.023 1.00 16.80 C +ATOM 540 N4 C A 25 19.203 14.330 26.974 1.00 12.35 N +ATOM 541 C5 C A 25 17.161 13.139 26.700 1.00 17.02 C +ATOM 542 C6 C A 25 15.822 13.189 26.764 1.00 12.57 C +ATOM 543 P G A 26 12.321 15.702 22.643 1.00 29.87 P +ATOM 544 OP1 G A 26 11.072 15.663 21.819 1.00 33.15 O +ATOM 545 OP2 G A 26 13.211 14.544 22.368 1.00 23.48 O +ATOM 546 O5' G A 26 13.047 17.113 22.562 1.00 22.58 O +ATOM 547 C5' G A 26 12.741 18.131 23.564 1.00 24.79 C +ATOM 548 C4' G A 26 14.000 18.963 23.694 1.00 20.77 C +ATOM 549 O4' G A 26 14.820 18.401 24.712 1.00 18.03 O +ATOM 550 C3' G A 26 14.866 18.997 22.449 1.00 18.83 C +ATOM 551 O3' G A 26 14.417 19.947 21.496 1.00 16.54 O +ATOM 552 C2' G A 26 16.242 19.328 23.031 1.00 20.38 C +ATOM 553 O2' G A 26 16.299 20.734 23.209 1.00 22.35 O +ATOM 554 C1' G A 26 16.195 18.586 24.372 1.00 23.07 C +ATOM 555 N9 G A 26 16.925 17.316 24.227 1.00 24.84 N +ATOM 556 C8 G A 26 16.435 16.045 24.114 1.00 23.72 C +ATOM 557 N7 G A 26 17.365 15.123 24.001 1.00 23.35 N +ATOM 558 C5 G A 26 18.554 15.848 24.065 1.00 21.52 C +ATOM 559 C6 G A 26 19.913 15.432 24.001 1.00 22.80 C +ATOM 560 O6 G A 26 20.339 14.274 23.887 1.00 22.96 O +ATOM 561 N1 G A 26 20.825 16.456 24.097 1.00 20.51 N +ATOM 562 C2 G A 26 20.442 17.749 24.227 1.00 23.90 C +ATOM 563 N2 G A 26 21.375 18.693 24.308 1.00 25.45 N +ATOM 564 N3 G A 26 19.193 18.198 24.292 1.00 22.42 N +ATOM 565 C4 G A 26 18.297 17.192 24.194 1.00 21.82 C +ATOM 566 CM1 G A 26 20.815 20.009 24.453 1.00 21.30 C +ATOM 567 CM2 G A 26 22.721 18.316 24.259 1.00 24.30 C +ATOM 568 P C A 27 14.347 19.744 19.895 1.00 20.07 P +ATOM 569 OP1 C A 27 13.314 20.616 19.249 1.00 15.88 O +ATOM 570 OP2 C A 27 13.997 18.305 19.766 1.00 25.96 O +ATOM 571 O5' C A 27 15.822 20.138 19.427 1.00 16.34 O +ATOM 572 C5' C A 27 16.592 20.981 20.332 1.00 15.72 C +ATOM 573 C4' C A 27 18.024 20.903 19.863 1.00 17.30 C +ATOM 574 O4' C A 27 18.797 20.155 20.784 1.00 18.55 O +ATOM 575 C3' C A 27 18.207 20.183 18.522 1.00 18.37 C +ATOM 576 O3' C A 27 17.911 21.021 17.406 1.00 23.90 O +ATOM 577 C2' C A 27 19.673 19.739 18.619 1.00 17.05 C +ATOM 578 O2' C A 27 20.476 20.858 18.247 1.00 19.18 O +ATOM 579 C1' C A 27 19.806 19.424 20.089 1.00 14.80 C +ATOM 580 N1 C A 27 19.623 17.979 20.283 1.00 20.01 N +ATOM 581 C2 C A 27 20.662 17.142 19.928 1.00 18.21 C +ATOM 582 O2 C A 27 21.705 17.591 19.459 1.00 16.44 O +ATOM 583 N3 C A 27 20.479 15.798 20.105 1.00 17.00 N +ATOM 584 C4 C A 27 19.323 15.292 20.623 1.00 21.09 C +ATOM 585 N4 C A 27 19.203 13.971 20.784 1.00 23.04 N +ATOM 586 C5 C A 27 18.260 16.169 20.994 1.00 18.01 C +ATOM 587 C6 C A 27 18.457 17.479 20.801 1.00 19.95 C +ATOM 588 P C A 28 18.077 20.582 15.871 1.00 33.10 P +ATOM 589 OP1 C A 28 17.758 21.706 14.934 1.00 25.70 O +ATOM 590 OP2 C A 28 17.098 19.469 15.710 1.00 32.53 O +ATOM 591 O5' C A 28 19.610 20.144 15.774 1.00 19.71 O +ATOM 592 C5' C A 28 20.419 20.627 14.675 1.00 18.88 C +ATOM 593 C4' C A 28 21.548 19.643 14.465 1.00 20.19 C +ATOM 594 O4' C A 28 21.821 18.918 15.645 1.00 20.55 O +ATOM 595 C3' C A 28 21.258 18.564 13.415 1.00 19.77 C +ATOM 596 O3' C A 28 21.448 19.031 12.089 1.00 25.59 O +ATOM 597 C2' C A 28 22.238 17.462 13.818 1.00 17.66 C +ATOM 598 O2' C A 28 23.503 17.822 13.269 1.00 20.65 O +ATOM 599 C1' C A 28 22.244 17.580 15.322 1.00 17.06 C +ATOM 600 N1 C A 28 21.368 16.574 15.952 1.00 15.63 N +ATOM 601 C2 C A 28 21.781 15.252 15.871 1.00 16.77 C +ATOM 602 O2 C A 28 22.827 14.949 15.305 1.00 17.51 O +ATOM 603 N3 C A 28 20.989 14.302 16.453 1.00 16.03 N +ATOM 604 C4 C A 28 19.826 14.628 17.083 1.00 15.19 C +ATOM 605 N4 C A 28 19.093 13.661 17.633 1.00 14.44 N +ATOM 606 C5 C A 28 19.416 15.989 17.164 1.00 17.77 C +ATOM 607 C6 C A 28 20.209 16.911 16.582 1.00 16.79 C +ATOM 608 P A A 29 20.302 18.839 10.974 1.00 34.75 P +ATOM 609 OP1 A A 29 20.602 19.683 9.778 1.00 29.69 O +ATOM 610 OP2 A A 29 19.060 19.250 11.685 1.00 31.89 O +ATOM 611 O5' A A 29 20.376 17.276 10.667 1.00 26.67 O +ATOM 612 C5' A A 29 20.965 16.894 9.406 1.00 27.49 C +ATOM 613 C4' A A 29 21.861 15.702 9.649 1.00 26.49 C +ATOM 614 O4' A A 29 22.051 15.477 11.039 1.00 25.60 O +ATOM 615 C3' A A 29 21.285 14.381 9.132 1.00 25.08 C +ATOM 616 O3' A A 29 21.428 14.201 7.725 1.00 22.54 O +ATOM 617 C2' A A 29 22.055 13.363 9.972 1.00 23.29 C +ATOM 618 O2' A A 29 23.334 13.223 9.358 1.00 22.73 O +ATOM 619 C1' A A 29 22.168 14.078 11.281 1.00 21.55 C +ATOM 620 N9 A A 29 21.065 13.588 12.138 1.00 18.46 N +ATOM 621 C8 A A 29 20.003 14.314 12.606 1.00 19.07 C +ATOM 622 N7 A A 29 19.167 13.611 13.334 1.00 17.22 N +ATOM 623 C5 A A 29 19.723 12.335 13.334 1.00 16.57 C +ATOM 624 C6 A A 29 19.296 11.132 13.932 1.00 19.45 C +ATOM 625 N6 A A 29 18.197 11.030 14.659 1.00 18.51 N +ATOM 626 N1 A A 29 20.103 10.052 13.722 1.00 21.52 N +ATOM 627 C2 A A 29 21.239 10.148 12.962 1.00 18.07 C +ATOM 628 N3 A A 29 21.698 11.250 12.364 1.00 17.75 N +ATOM 629 C4 A A 29 20.889 12.307 12.590 1.00 17.61 C +ATOM 630 P G A 30 20.049 13.712 7.014 1.00 28.73 P +ATOM 631 OP1 G A 30 20.029 14.100 5.576 1.00 28.93 O +ATOM 632 OP2 G A 30 19.010 14.409 7.822 1.00 28.96 O +ATOM 633 O5' G A 30 20.093 12.127 7.241 1.00 24.12 O +ATOM 634 C5' G A 30 21.305 11.553 7.774 1.00 23.01 C +ATOM 635 C4' G A 30 21.039 10.114 8.162 1.00 22.38 C +ATOM 636 O4' G A 30 20.775 10.058 9.568 1.00 23.65 O +ATOM 637 C3' G A 30 19.819 9.462 7.531 1.00 23.59 C +ATOM 638 O3' G A 30 20.093 8.984 6.222 1.00 25.81 O +ATOM 639 C2' G A 30 19.486 8.349 8.533 1.00 22.06 C +ATOM 640 O2' G A 30 20.346 7.252 8.259 1.00 21.95 O +ATOM 641 C1' G A 30 19.839 9.001 9.859 1.00 21.11 C +ATOM 642 N9 G A 30 18.624 9.496 10.521 1.00 17.84 N +ATOM 643 C8 G A 30 18.134 10.766 10.618 1.00 15.79 C +ATOM 644 N7 G A 30 17.025 10.862 11.313 1.00 14.31 N +ATOM 645 C5 G A 30 16.768 9.552 11.701 1.00 16.78 C +ATOM 646 C6 G A 30 15.716 8.984 12.477 1.00 19.20 C +ATOM 647 O6 G A 30 14.753 9.574 12.978 1.00 18.18 O +ATOM 648 N1 G A 30 15.809 7.623 12.655 1.00 18.94 N +ATOM 649 C2 G A 30 16.828 6.887 12.138 1.00 19.57 C +ATOM 650 N2 G A 30 16.778 5.571 12.396 1.00 17.51 N +ATOM 651 N3 G A 30 17.837 7.365 11.410 1.00 19.89 N +ATOM 652 C4 G A 30 17.744 8.703 11.233 1.00 18.38 C +ATOM 653 P A A 31 19.010 8.928 5.043 1.00 37.02 P +ATOM 654 OP1 A A 31 19.583 8.219 3.830 1.00 30.97 O +ATOM 655 OP2 A A 31 18.707 10.356 4.752 1.00 26.58 O +ATOM 656 O5' A A 31 17.808 8.084 5.673 1.00 30.07 O +ATOM 657 C5' A A 31 17.621 6.729 5.172 1.00 30.35 C +ATOM 658 C4' A A 31 16.995 5.926 6.303 1.00 27.81 C +ATOM 659 O4' A A 31 17.195 6.595 7.531 1.00 26.76 O +ATOM 660 C3' A A 31 15.483 5.740 6.190 1.00 26.45 C +ATOM 661 O3' A A 31 15.083 4.694 5.301 1.00 30.61 O +ATOM 662 C2' A A 31 15.113 5.470 7.661 1.00 24.54 C +ATOM 663 O2' A A 31 15.386 4.098 7.903 1.00 28.13 O +ATOM 664 C1' A A 31 16.082 6.364 8.388 1.00 22.42 C +ATOM 665 N9 A A 31 15.389 7.612 8.744 1.00 21.95 N +ATOM 666 C8 A A 31 15.696 8.894 8.372 1.00 22.76 C +ATOM 667 N7 A A 31 14.876 9.805 8.841 1.00 19.49 N +ATOM 668 C5 A A 31 13.967 9.057 9.584 1.00 20.04 C +ATOM 669 C6 A A 31 12.841 9.451 10.360 1.00 20.83 C +ATOM 670 N6 A A 31 12.431 10.699 10.505 1.00 21.29 N +ATOM 671 N1 A A 31 12.172 8.422 10.958 1.00 25.93 N +ATOM 672 C2 A A 31 12.571 7.129 10.828 1.00 26.19 C +ATOM 673 N3 A A 31 13.617 6.690 10.134 1.00 23.41 N +ATOM 674 C4 A A 31 14.270 7.713 9.536 1.00 22.31 C +ATOM 675 N1 C A 32 11.289 7.882 7.160 1.00 35.76 N +ATOM 676 C2 C A 32 10.706 9.018 7.677 1.00 35.78 C +ATOM 677 N3 C A 32 11.312 10.215 7.418 1.00 36.87 N +ATOM 678 C4 C A 32 12.451 10.305 6.675 1.00 37.09 C +ATOM 679 C5 C A 32 13.038 9.125 6.142 1.00 35.60 C +ATOM 680 C6 C A 32 12.428 7.961 6.400 1.00 34.56 C +ATOM 681 O2 C A 32 9.680 8.945 8.356 1.00 34.90 O +ATOM 682 N4 C A 32 13.001 11.503 6.449 1.00 35.89 N +ATOM 683 C1' C A 32 10.633 6.589 7.418 1.00 37.12 C +ATOM 684 C2' C A 32 9.480 6.499 6.432 1.00 38.77 C +ATOM 685 O2' C A 32 8.391 5.774 6.998 1.00 44.03 O +ATOM 686 CM2 C A 32 7.285 6.061 7.596 1.00 45.01 C +ATOM 687 C3' C A 32 10.093 5.639 5.333 1.00 37.31 C +ATOM 688 C4' C A 32 10.976 4.683 6.125 1.00 37.40 C +ATOM 689 O4' C A 32 11.485 5.481 7.192 1.00 41.20 O +ATOM 690 O3' C A 32 9.107 4.992 4.525 0.86 37.82 O +ATOM 691 C5' C A 32 12.122 4.059 5.366 1.00 34.16 C +ATOM 692 O5' C A 32 12.681 5.049 4.477 1.00 30.92 O +ATOM 693 P C A 32 14.197 4.998 3.976 1.00 40.89 P +ATOM 694 OP1 C A 32 14.423 3.935 2.941 1.00 30.60 O +ATOM 695 OP2 C A 32 14.720 6.313 3.507 1.00 32.99 O +ATOM 696 P U A 33 9.200 5.127 2.925 0.86 37.78 P +ATOM 697 OP1 U A 33 8.581 3.930 2.263 0.86 32.75 O +ATOM 698 OP2 U A 33 10.663 5.217 2.667 0.86 34.57 O +ATOM 699 O5' U A 33 8.387 6.465 2.602 0.86 34.32 O +ATOM 700 C5' U A 33 6.975 6.359 2.295 0.70 33.58 C +ATOM 701 C4' U A 33 6.232 7.421 3.071 0.70 30.43 C +ATOM 702 O4' U A 33 7.032 7.899 4.137 0.70 31.83 O +ATOM 703 C3' U A 33 5.886 8.675 2.263 0.70 30.27 C +ATOM 704 O3' U A 33 4.730 8.529 1.438 0.69 33.13 O +ATOM 705 C2' U A 33 5.709 9.720 3.362 0.70 30.04 C +ATOM 706 O2' U A 33 4.394 9.574 3.895 0.70 25.89 O +ATOM 707 C1' U A 33 6.765 9.276 4.364 0.70 29.86 C +ATOM 708 N1 U A 33 7.951 10.125 4.121 1.00 27.37 N +ATOM 709 C2 U A 33 7.911 11.418 4.622 1.00 25.07 C +ATOM 710 O2 U A 33 6.932 11.823 5.236 1.00 22.79 O +ATOM 711 N3 U A 33 9.004 12.205 4.396 1.00 24.34 N +ATOM 712 C4 U A 33 10.093 11.761 3.717 1.00 24.68 C +ATOM 713 O4 U A 33 11.049 12.582 3.556 1.00 30.20 O +ATOM 714 C5 U A 33 10.113 10.434 3.200 1.00 22.57 C +ATOM 715 C6 U A 33 9.037 9.670 3.426 1.00 24.36 C +ATOM 716 P G A 34 4.883 7.809 0.000 0.69 39.54 P +ATOM 717 OP1 G A 34 3.857 6.713 -0.097 0.69 37.74 O +ATOM 718 OP2 G A 34 6.289 7.326 -0.016 0.69 31.79 O +ATOM 719 O5' G A 34 4.610 8.945 -1.083 0.69 33.84 O +ATOM 720 C5' G A 34 5.699 9.496 -1.891 0.79 30.14 C +ATOM 721 C4' G A 34 5.370 10.974 -1.972 0.79 28.23 C +ATOM 722 O4' G A 34 3.971 11.115 -2.101 0.79 24.42 O +ATOM 723 C3' G A 34 5.736 11.773 -0.727 0.79 29.46 C +ATOM 724 O3' G A 34 7.108 12.149 -0.711 1.00 36.37 O +ATOM 725 C2' G A 34 4.777 12.959 -0.824 0.79 26.04 C +ATOM 726 O2' G A 34 5.343 13.892 -1.729 0.79 27.05 O +ATOM 727 CM2 G A 34 4.917 14.651 -2.683 0.79 23.06 C +ATOM 728 C1' G A 34 3.554 12.307 -1.406 0.79 24.20 C +ATOM 729 N9 G A 34 2.588 11.919 -0.372 0.93 22.94 N +ATOM 730 C8 G A 34 2.225 10.637 -0.032 0.93 20.77 C +ATOM 731 N7 G A 34 1.336 10.581 0.921 0.93 23.23 N +ATOM 732 C5 G A 34 1.099 11.919 1.245 0.93 23.53 C +ATOM 733 C6 G A 34 0.240 12.526 2.198 0.93 21.69 C +ATOM 734 O6 G A 34 -0.516 11.958 2.990 0.93 20.60 O +ATOM 735 N1 G A 34 0.283 13.898 2.198 0.93 20.10 N +ATOM 736 C2 G A 34 1.086 14.606 1.374 0.93 20.29 C +ATOM 737 N2 G A 34 1.003 15.938 1.503 0.93 21.41 N +ATOM 738 N3 G A 34 1.912 14.094 0.452 0.93 16.67 N +ATOM 739 C4 G A 34 1.865 12.751 0.452 1.00 22.66 C +ATOM 740 P A A 35 7.878 12.683 0.598 1.00 42.69 P +ATOM 741 OP1 A A 35 9.204 11.992 0.727 1.00 40.46 O +ATOM 742 OP2 A A 35 6.982 12.374 1.745 1.00 32.74 O +ATOM 743 O5' A A 35 8.044 14.252 0.323 1.00 29.05 O +ATOM 744 C5' A A 35 8.411 15.050 1.471 1.00 32.39 C +ATOM 745 C4' A A 35 7.208 15.865 1.891 1.00 31.49 C +ATOM 746 O4' A A 35 5.996 15.314 1.406 1.00 32.06 O +ATOM 747 C3' A A 35 6.995 15.944 3.410 1.00 31.01 C +ATOM 748 O3' A A 35 7.878 16.883 4.041 1.00 32.13 O +ATOM 749 C2' A A 35 5.519 16.309 3.507 1.00 31.04 C +ATOM 750 O2' A A 35 5.400 17.709 3.297 1.00 33.84 O +ATOM 751 C1' A A 35 4.926 15.539 2.327 1.00 30.29 C +ATOM 752 N9 A A 35 4.287 14.325 2.845 1.00 28.33 N +ATOM 753 C8 A A 35 4.427 13.026 2.441 1.00 30.43 C +ATOM 754 N7 A A 35 3.697 12.172 3.135 1.00 29.55 N +ATOM 755 C5 A A 35 3.031 12.976 4.057 1.00 26.03 C +ATOM 756 C6 A A 35 2.102 12.661 5.075 1.00 29.14 C +ATOM 757 N6 A A 35 1.679 11.435 5.333 1.00 30.66 N +ATOM 758 N1 A A 35 1.645 13.729 5.786 1.00 29.22 N +ATOM 759 C2 A A 35 2.065 15.000 5.527 1.00 28.74 C +ATOM 760 N3 A A 35 2.935 15.359 4.590 1.00 24.86 N +ATOM 761 C4 A A 35 3.378 14.302 3.879 1.00 25.40 C +ATOM 762 P A A 36 9.124 16.337 4.913 1.00 32.39 P +ATOM 763 OP1 A A 36 9.686 17.451 5.754 1.00 27.38 O +ATOM 764 OP2 A A 36 10.080 15.877 3.879 1.00 26.17 O +ATOM 765 O5' A A 36 8.481 15.157 5.770 1.00 29.40 O +ATOM 766 C5' A A 36 8.387 15.163 7.208 1.00 29.36 C +ATOM 767 C4' A A 36 7.045 15.764 7.580 1.00 29.96 C +ATOM 768 O4' A A 36 6.016 15.247 6.740 1.00 26.55 O +ATOM 769 C3' A A 36 6.582 15.444 9.002 1.00 31.22 C +ATOM 770 O3' A A 36 7.198 16.276 9.988 1.00 34.74 O +ATOM 771 C2' A A 36 5.076 15.640 8.905 1.00 28.02 C +ATOM 772 O2' A A 36 4.807 17.035 9.002 1.00 31.89 O +ATOM 773 C1' A A 36 4.793 15.146 7.483 1.00 27.57 C +ATOM 774 N9 A A 36 4.250 13.780 7.580 1.00 28.30 N +ATOM 775 C8 A A 36 4.620 12.655 6.901 1.00 28.20 C +ATOM 776 N7 A A 36 3.921 11.593 7.224 1.00 30.17 N +ATOM 777 C5 A A 36 3.024 12.059 8.178 1.00 28.26 C +ATOM 778 C6 A A 36 2.005 11.396 8.905 1.00 32.35 C +ATOM 779 N6 A A 36 1.715 10.108 8.776 1.00 31.13 N +ATOM 780 N1 A A 36 1.309 12.189 9.778 1.00 31.00 N +ATOM 781 C2 A A 36 1.589 13.515 9.924 1.00 27.16 C +ATOM 782 N3 A A 36 2.532 14.190 9.261 1.00 28.43 N +ATOM 783 C4 A A 36 3.211 13.403 8.404 1.00 27.49 C +ATOM 784 N1 G A 37 2.585 8.422 12.186 0.67 32.84 N +ATOM 785 N2 G A 37 1.199 8.422 13.932 0.67 33.74 N +ATOM 786 C2 G A 37 2.125 9.243 13.140 0.67 32.65 C +ATOM 787 N3 G A 37 2.418 10.530 13.366 0.67 34.48 N +ATOM 788 C3 G A 37 1.862 11.233 14.400 0.67 34.99 C +ATOM 789 C4 G A 37 3.304 10.963 12.445 0.67 32.20 C +ATOM 790 C5 G A 37 3.857 10.260 11.410 0.67 32.03 C +ATOM 791 C6 G A 37 3.458 8.894 11.281 0.67 32.23 C +ATOM 792 O6 G A 37 3.887 8.124 10.392 0.67 34.22 O +ATOM 793 N7 G A 37 4.713 11.014 10.667 0.67 34.64 N +ATOM 794 C8 G A 37 4.670 12.194 11.265 0.67 33.25 C +ATOM 795 N9 G A 37 3.817 12.217 12.364 0.67 31.28 N +ATOM 796 C10 G A 37 0.453 6.044 13.786 0.67 33.29 C +ATOM 797 C11 G A 37 1.242 7.241 13.334 0.67 35.54 C +ATOM 798 C12 G A 37 2.099 7.219 12.251 0.67 35.82 C +ATOM 799 C13 G A 37 2.382 6.055 11.330 0.67 36.24 C +ATOM 800 C14 G A 37 1.612 6.297 10.053 0.67 37.78 C +ATOM 801 C15 G A 37 0.716 5.155 9.729 0.67 37.43 C +ATOM 802 C16 G A 37 -0.723 5.583 9.713 0.67 39.34 C +ATOM 803 O17 G A 37 -1.036 6.774 9.616 0.67 41.33 O +ATOM 804 O18 G A 37 -1.762 4.593 9.810 0.67 39.75 O +ATOM 805 C19 G A 37 -2.355 4.677 11.103 0.67 37.00 C +ATOM 806 N20 G A 37 1.033 4.689 8.356 0.67 37.87 N +ATOM 807 C21 G A 37 1.006 5.560 7.370 0.67 37.22 C +ATOM 808 O22 G A 37 0.486 6.668 7.499 0.67 34.82 O +ATOM 809 O23 G A 37 1.589 5.217 6.109 0.67 37.80 O +ATOM 810 C24 G A 37 0.573 5.161 5.107 0.67 38.27 C +ATOM 811 C1' G A 37 3.571 13.347 13.204 1.00 35.07 C +ATOM 812 C2' G A 37 4.427 13.234 14.465 1.00 35.84 C +ATOM 813 O2' G A 37 3.784 13.847 15.564 1.00 32.99 O +ATOM 814 C3' G A 37 5.626 14.100 14.109 1.00 36.71 C +ATOM 815 O3' G A 37 6.346 14.538 15.273 1.00 40.56 O +ATOM 816 C4' G A 37 4.977 15.213 13.285 1.00 36.00 C +ATOM 817 O4' G A 37 3.951 14.561 12.558 1.00 37.29 O +ATOM 818 C5' G A 37 5.892 15.944 12.332 1.00 32.52 C +ATOM 819 O5' G A 37 7.035 15.056 12.138 1.00 34.35 O +ATOM 820 P G A 37 8.131 15.618 11.120 1.00 45.47 P +ATOM 821 OP1 G A 37 8.964 16.675 11.782 1.00 43.57 O +ATOM 822 OP2 G A 37 8.914 14.617 10.360 1.00 39.46 O +ATOM 823 P A A 38 7.718 13.751 15.613 1.00 42.64 P +ATOM 824 OP1 A A 38 8.821 14.696 15.984 1.00 37.89 O +ATOM 825 OP2 A A 38 8.021 13.043 14.336 1.00 39.37 O +ATOM 826 O5' A A 38 7.318 12.790 16.825 1.00 32.99 O +ATOM 827 C5' A A 38 6.152 13.037 17.649 1.00 30.76 C +ATOM 828 C4' A A 38 5.330 11.761 17.617 1.00 33.37 C +ATOM 829 O4' A A 38 4.767 11.626 16.324 1.00 32.03 O +ATOM 830 C3' A A 38 6.089 10.457 17.827 1.00 33.48 C +ATOM 831 O3' A A 38 6.339 10.103 19.201 1.00 33.69 O +ATOM 832 C2' A A 38 5.166 9.445 17.148 1.00 31.61 C +ATOM 833 O2' A A 38 4.120 9.141 18.053 1.00 33.00 O +ATOM 834 C1' A A 38 4.653 10.255 15.984 1.00 30.13 C +ATOM 835 N9 A A 38 5.493 9.884 14.821 1.00 27.03 N +ATOM 836 C8 A A 38 6.402 10.659 14.158 1.00 26.03 C +ATOM 837 N7 A A 38 7.005 10.035 13.172 1.00 24.70 N +ATOM 838 C5 A A 38 6.459 8.759 13.204 1.00 26.51 C +ATOM 839 C6 A A 38 6.692 7.618 12.412 1.00 27.76 C +ATOM 840 N6 A A 38 7.558 7.584 11.410 1.00 30.99 N +ATOM 841 N1 A A 38 5.956 6.516 12.736 1.00 28.54 N +ATOM 842 C2 A A 38 5.063 6.533 13.770 1.00 30.31 C +ATOM 843 N3 A A 38 4.797 7.573 14.562 1.00 30.93 N +ATOM 844 C4 A A 38 5.530 8.652 14.223 1.00 27.66 C +ATOM 845 N1 U A 39 9.443 9.659 14.917 1.00 32.19 N +ATOM 846 C2 U A 39 10.389 9.490 13.964 1.00 31.34 C +ATOM 847 N3 U A 39 10.656 8.180 13.657 1.00 29.52 N +ATOM 848 C4 U A 39 10.070 7.061 14.223 1.00 33.42 C +ATOM 849 C5 U A 39 9.070 7.331 15.241 1.00 30.22 C +ATOM 850 C6 U A 39 8.804 8.618 15.532 1.00 32.36 C +ATOM 851 O2 U A 39 10.972 10.418 13.398 1.00 32.92 O +ATOM 852 O4 U A 39 10.369 5.920 13.899 1.00 36.50 O +ATOM 853 C1' U A 39 8.371 6.190 15.903 1.00 29.21 C +ATOM 854 C2' U A 39 9.283 5.189 16.615 1.00 32.27 C +ATOM 855 O2' U A 39 8.747 3.874 16.534 1.00 33.25 O +ATOM 856 C3' U A 39 9.204 5.633 18.069 1.00 33.21 C +ATOM 857 C4' U A 39 7.751 6.100 18.166 1.00 34.51 C +ATOM 858 O3' U A 39 9.503 4.604 19.007 1.00 34.14 O +ATOM 859 O4' U A 39 7.475 6.696 16.922 1.00 34.97 O +ATOM 860 C5' U A 39 7.481 7.089 19.297 1.00 33.91 C +ATOM 861 O5' U A 39 8.141 8.321 18.910 1.00 32.59 O +ATOM 862 P U A 39 7.841 9.698 19.621 1.00 32.28 P +ATOM 863 OP1 U A 39 7.951 9.602 21.124 1.00 37.67 O +ATOM 864 OP2 U A 39 8.651 10.834 19.087 1.00 32.24 O +ATOM 865 P C A 40 10.782 4.486 19.960 1.00 34.43 P +ATOM 866 OP1 C A 40 10.449 3.671 21.172 1.00 30.68 O +ATOM 867 OP2 C A 40 11.089 5.892 20.332 1.00 28.93 O +ATOM 868 O5' C A 40 11.885 3.778 19.039 1.00 28.81 O +ATOM 869 C5' C A 40 11.728 2.401 18.619 1.00 28.35 C +ATOM 870 C4' C A 40 12.548 2.221 17.358 1.00 29.61 C +ATOM 871 O4' C A 40 11.988 3.002 16.308 1.00 29.56 O +ATOM 872 C3' C A 40 13.997 2.687 17.439 1.00 31.68 C +ATOM 873 O3' C A 40 14.873 1.743 18.069 1.00 35.29 O +ATOM 874 C2' C A 40 14.347 2.946 15.968 1.00 27.14 C +ATOM 875 O2' C A 40 14.696 1.692 15.386 1.00 23.50 O +ATOM 876 C1' C A 40 13.024 3.469 15.435 1.00 25.42 C +ATOM 877 N1 C A 40 13.091 4.942 15.418 1.00 19.88 N +ATOM 878 C2 C A 40 13.940 5.526 14.497 1.00 20.27 C +ATOM 879 O2 C A 40 14.603 4.835 13.722 1.00 20.75 O +ATOM 880 N3 C A 40 14.010 6.893 14.465 1.00 20.93 N +ATOM 881 C4 C A 40 13.284 7.668 15.322 1.00 18.76 C +ATOM 882 N4 C A 40 13.384 9.001 15.257 1.00 17.83 N +ATOM 883 C5 C A 40 12.418 7.056 16.259 1.00 18.58 C +ATOM 884 C6 C A 40 12.358 5.718 16.275 1.00 19.25 C +ATOM 885 CM5 C A 40 11.608 7.905 17.196 1.00 21.21 C +ATOM 886 P U A 41 16.185 2.215 18.877 1.00 35.32 P +ATOM 887 OP1 U A 41 16.658 1.124 19.799 1.00 26.86 O +ATOM 888 OP2 U A 41 15.739 3.429 19.621 1.00 33.21 O +ATOM 889 O5' U A 41 17.235 2.513 17.714 1.00 26.80 O +ATOM 890 C5' U A 41 17.698 1.389 16.906 1.00 27.18 C +ATOM 891 C4' U A 41 18.850 1.934 16.081 1.00 23.05 C +ATOM 892 O4' U A 41 18.314 2.699 15.014 1.00 20.17 O +ATOM 893 C3' U A 41 19.789 2.878 16.825 1.00 24.93 C +ATOM 894 O3' U A 41 20.799 2.237 17.600 1.00 27.91 O +ATOM 895 C2' U A 41 20.382 3.682 15.661 1.00 27.05 C +ATOM 896 O2' U A 41 21.435 2.890 15.111 1.00 26.81 O +ATOM 897 C1' U A 41 19.193 3.772 14.724 1.00 23.28 C +ATOM 898 N1 U A 41 18.554 5.077 14.966 1.00 24.30 N +ATOM 899 C2 U A 41 19.077 6.179 14.303 1.00 28.89 C +ATOM 900 O2 U A 41 20.033 6.055 13.544 1.00 29.05 O +ATOM 901 N3 U A 41 18.487 7.393 14.546 1.00 24.96 N +ATOM 902 C4 U A 41 17.428 7.528 15.386 1.00 22.40 C +ATOM 903 O4 U A 41 16.958 8.697 15.532 1.00 24.28 O +ATOM 904 C5 U A 41 16.908 6.387 16.065 1.00 22.17 C +ATOM 905 C6 U A 41 17.498 5.206 15.823 1.00 23.91 C +ATOM 906 P G A 42 21.595 3.036 18.764 1.00 31.63 P +ATOM 907 OP1 G A 42 22.384 2.075 19.604 1.00 28.12 O +ATOM 908 OP2 G A 42 20.516 3.699 19.556 1.00 22.68 O +ATOM 909 O5' G A 42 22.551 4.031 17.972 1.00 19.53 O +ATOM 910 C5' G A 42 23.583 3.519 17.099 1.00 19.97 C +ATOM 911 C4' G A 42 24.146 4.717 16.356 1.00 22.10 C +ATOM 912 O4' G A 42 23.084 5.375 15.661 1.00 26.60 O +ATOM 913 C3' G A 42 24.776 5.807 17.212 1.00 19.91 C +ATOM 914 O3' G A 42 26.128 5.560 17.617 1.00 20.68 O +ATOM 915 C2' G A 42 24.659 7.028 16.291 1.00 21.26 C +ATOM 916 O2' G A 42 25.732 6.966 15.370 1.00 21.51 O +ATOM 917 C1' G A 42 23.337 6.774 15.596 1.00 23.91 C +ATOM 918 N9 G A 42 22.324 7.578 16.308 1.00 18.48 N +ATOM 919 C8 G A 42 21.332 7.129 17.148 1.00 18.18 C +ATOM 920 N7 G A 42 20.586 8.084 17.633 1.00 18.52 N +ATOM 921 C5 G A 42 21.125 9.243 17.099 1.00 16.12 C +ATOM 922 C6 G A 42 20.759 10.609 17.245 1.00 16.98 C +ATOM 923 O6 G A 42 19.836 11.059 17.924 1.00 18.24 O +ATOM 924 N1 G A 42 21.542 11.480 16.534 1.00 16.87 N +ATOM 925 C2 G A 42 22.577 11.070 15.758 1.00 17.61 C +ATOM 926 N2 G A 42 23.234 12.059 15.128 1.00 17.39 N +ATOM 927 N3 G A 42 22.964 9.805 15.580 1.00 18.80 N +ATOM 928 C4 G A 42 22.194 8.945 16.275 1.00 17.14 C +ATOM 929 P G A 43 26.715 6.263 18.958 1.00 25.50 P +ATOM 930 OP1 G A 43 27.960 5.577 19.427 1.00 18.73 O +ATOM 931 OP2 G A 43 25.605 6.100 19.944 1.00 18.55 O +ATOM 932 O5' G A 43 27.021 7.758 18.506 1.00 23.39 O +ATOM 933 C5' G A 43 27.791 8.073 17.309 1.00 22.77 C +ATOM 934 C4' G A 43 27.774 9.585 17.164 1.00 21.17 C +ATOM 935 O4' G A 43 26.495 10.007 16.695 1.00 22.41 O +ATOM 936 C3' G A 43 27.980 10.361 18.457 1.00 19.66 C +ATOM 937 O3' G A 43 29.349 10.502 18.861 1.00 20.78 O +ATOM 938 C2' G A 43 27.337 11.705 18.118 1.00 18.90 C +ATOM 939 O2' G A 43 28.310 12.430 17.374 1.00 23.35 O +ATOM 940 C1' G A 43 26.178 11.278 17.245 1.00 17.39 C +ATOM 941 N9 G A 43 24.993 11.227 18.118 1.00 14.19 N +ATOM 942 C8 G A 43 24.486 10.108 18.732 1.00 14.07 C +ATOM 943 N7 G A 43 23.427 10.339 19.459 1.00 14.63 N +ATOM 944 C5 G A 43 23.220 11.711 19.314 1.00 13.86 C +ATOM 945 C6 G A 43 22.231 12.571 19.847 1.00 17.13 C +ATOM 946 O6 G A 43 21.298 12.250 20.607 1.00 19.62 O +ATOM 947 N1 G A 43 22.354 13.881 19.475 1.00 12.99 N +ATOM 948 C2 G A 43 23.344 14.314 18.651 1.00 12.94 C +ATOM 949 N2 G A 43 23.314 15.629 18.376 1.00 14.10 N +ATOM 950 N3 G A 43 24.296 13.549 18.118 1.00 14.82 N +ATOM 951 C4 G A 43 24.176 12.262 18.489 1.00 12.94 C +ATOM 952 P A A 44 29.649 10.783 20.429 1.00 28.67 P +ATOM 953 OP1 A A 44 30.902 10.097 20.881 1.00 27.63 O +ATOM 954 OP2 A A 44 28.460 10.193 21.124 1.00 25.89 O +ATOM 955 O5' A A 44 29.749 12.363 20.526 1.00 21.80 O +ATOM 956 C5' A A 44 30.465 13.195 19.572 1.00 18.26 C +ATOM 957 C4' A A 44 29.886 14.595 19.685 1.00 17.95 C +ATOM 958 O4' A A 44 28.517 14.538 19.297 1.00 14.43 O +ATOM 959 C3' A A 44 29.872 15.213 21.075 1.00 20.30 C +ATOM 960 O3' A A 44 31.111 15.815 21.479 1.00 24.13 O +ATOM 961 C2' A A 44 28.736 16.231 20.946 1.00 15.67 C +ATOM 962 O2' A A 44 29.266 17.389 20.316 1.00 20.20 O +ATOM 963 C1' A A 44 27.777 15.505 20.041 1.00 13.70 C +ATOM 964 N9 A A 44 26.755 14.859 20.865 1.00 14.55 N +ATOM 965 C8 A A 44 26.731 13.560 21.318 1.00 13.46 C +ATOM 966 N7 A A 44 25.689 13.268 22.045 1.00 13.16 N +ATOM 967 C5 A A 44 24.972 14.460 22.094 1.00 12.41 C +ATOM 968 C6 A A 44 23.753 14.797 22.724 1.00 13.52 C +ATOM 969 N6 A A 44 23.034 13.954 23.451 1.00 11.26 N +ATOM 970 N1 A A 44 23.354 16.096 22.546 1.00 15.70 N +ATOM 971 C2 A A 44 24.083 16.978 21.802 1.00 15.78 C +ATOM 972 N3 A A 44 25.236 16.725 21.188 1.00 13.28 N +ATOM 973 C4 A A 44 25.619 15.444 21.366 1.00 15.37 C +ATOM 974 P G A 45 31.541 15.938 23.031 1.00 21.79 P +ATOM 975 OP1 G A 45 32.670 16.911 23.209 1.00 23.16 O +ATOM 976 OP2 G A 45 31.928 14.544 23.386 1.00 18.86 O +ATOM 977 O5' G A 45 30.226 16.489 23.742 1.00 25.81 O +ATOM 978 C5' G A 45 29.699 17.782 23.306 1.00 26.80 C +ATOM 979 C4' G A 45 28.610 18.120 24.308 1.00 23.63 C +ATOM 980 O4' G A 45 27.457 17.361 24.033 1.00 23.89 O +ATOM 981 C3' G A 45 28.970 17.765 25.746 1.00 21.22 C +ATOM 982 O3' G A 45 29.766 18.783 26.344 1.00 24.50 O +ATOM 983 C2' G A 45 27.601 17.619 26.409 1.00 19.23 C +ATOM 984 O2' G A 45 27.148 18.935 26.716 1.00 21.32 O +ATOM 985 C1' G A 45 26.791 17.018 25.277 1.00 19.47 C +ATOM 986 N9 G A 45 26.645 15.556 25.342 1.00 17.65 N +ATOM 987 C8 G A 45 27.471 14.561 24.889 1.00 15.36 C +ATOM 988 N7 G A 45 27.008 13.352 25.083 1.00 12.76 N +ATOM 989 C5 G A 45 25.779 13.566 25.698 1.00 15.59 C +ATOM 990 C6 G A 45 24.786 12.661 26.166 1.00 17.46 C +ATOM 991 O6 G A 45 24.803 11.424 26.118 1.00 18.92 O +ATOM 992 N1 G A 45 23.690 13.268 26.748 1.00 15.79 N +ATOM 993 C2 G A 45 23.570 14.617 26.845 1.00 11.32 C +ATOM 994 N2 G A 45 22.444 15.056 27.427 1.00 9.86 N +ATOM 995 N3 G A 45 24.463 15.511 26.409 1.00 14.42 N +ATOM 996 C4 G A 45 25.539 14.910 25.859 1.00 17.21 C +ATOM 997 P G A 46 30.895 18.485 27.411 1.00 24.75 P +ATOM 998 OP1 G A 46 32.028 19.463 27.362 1.00 34.31 O +ATOM 999 OP2 G A 46 31.345 17.102 27.087 1.00 36.12 O +ATOM 1000 O5' G A 46 30.142 18.598 28.817 1.00 16.31 O +ATOM 1001 C5' G A 46 31.132 18.446 29.867 1.00 20.52 C +ATOM 1002 C4' G A 46 30.429 18.429 31.193 1.00 15.75 C +ATOM 1003 O4' G A 46 29.563 17.316 31.290 1.00 13.39 O +ATOM 1004 C3' G A 46 31.461 18.322 32.340 1.00 13.44 C +ATOM 1005 O3' G A 46 31.045 19.171 33.439 1.00 19.39 O +ATOM 1006 C2' G A 46 31.401 16.827 32.647 1.00 10.98 C +ATOM 1007 O2' G A 46 31.858 16.624 33.956 1.00 18.01 O +ATOM 1008 C1' G A 46 29.962 16.495 32.421 1.00 13.21 C +ATOM 1009 N9 G A 46 29.772 15.073 32.082 1.00 11.97 N +ATOM 1010 C8 G A 46 30.642 14.269 31.403 1.00 13.63 C +ATOM 1011 N7 G A 46 30.215 13.043 31.241 1.00 11.58 N +ATOM 1012 C5 G A 46 28.980 13.032 31.872 1.00 11.10 C +ATOM 1013 C6 G A 46 28.020 11.997 32.049 1.00 7.57 C +ATOM 1014 O6 G A 46 28.080 10.828 31.661 1.00 5.90 O +ATOM 1015 N1 G A 46 26.898 12.380 32.744 1.00 8.38 N +ATOM 1016 C2 G A 46 26.731 13.645 33.213 1.00 13.83 C +ATOM 1017 N2 G A 46 25.579 13.858 33.859 1.00 18.21 N +ATOM 1018 N3 G A 46 27.594 14.651 33.068 1.00 15.33 N +ATOM 1019 C4 G A 46 28.697 14.274 32.389 1.00 11.80 C +ATOM 1020 CM7 G A 46 30.862 11.936 30.579 1.00 11.28 C +ATOM 1021 P U A 47 31.328 20.762 33.229 1.00 16.71 P +ATOM 1022 OP1 U A 47 30.072 21.549 33.423 1.00 16.42 O +ATOM 1023 OP2 U A 47 31.851 20.835 31.839 1.00 9.53 O +ATOM 1024 O5' U A 47 32.431 21.066 34.344 1.00 21.56 O +ATOM 1025 C5' U A 47 33.773 20.593 34.053 1.00 22.87 C +ATOM 1026 C4' U A 47 34.399 20.166 35.362 1.00 23.82 C +ATOM 1027 O4' U A 47 34.932 21.319 36.009 1.00 28.37 O +ATOM 1028 C3' U A 47 33.427 19.531 36.364 1.00 20.32 C +ATOM 1029 O3' U A 47 34.109 18.508 37.108 1.00 17.51 O +ATOM 1030 C2' U A 47 33.057 20.695 37.253 1.00 24.77 C +ATOM 1031 O2' U A 47 32.611 20.245 38.498 1.00 28.72 O +ATOM 1032 C1' U A 47 34.356 21.448 37.318 1.00 28.41 C +ATOM 1033 N1 U A 47 34.119 22.853 37.690 1.00 34.31 N +ATOM 1034 C2 U A 47 34.986 23.410 38.611 1.00 36.46 C +ATOM 1035 O2 U A 47 35.898 22.741 39.096 1.00 33.40 O +ATOM 1036 N3 U A 47 34.782 24.714 38.967 1.00 37.41 N +ATOM 1037 C4 U A 47 33.770 25.462 38.433 1.00 37.38 C +ATOM 1038 O4 U A 47 33.673 26.660 38.821 1.00 40.42 O +ATOM 1039 C5 U A 47 32.890 24.872 37.480 1.00 35.84 C +ATOM 1040 C6 U A 47 33.104 23.590 37.140 1.00 33.82 C +ATOM 1041 P C A 48 33.403 17.136 37.528 1.00 12.71 P +ATOM 1042 OP1 C A 48 34.429 16.231 38.142 1.00 13.81 O +ATOM 1043 OP2 C A 48 32.850 16.624 36.251 1.00 4.91 O +ATOM 1044 O5' C A 48 32.284 17.558 38.579 1.00 9.32 O +ATOM 1045 C5' C A 48 32.031 16.714 39.726 1.00 8.64 C +ATOM 1046 C4' C A 48 30.552 16.371 39.710 1.00 5.36 C +ATOM 1047 O4' C A 48 30.302 15.320 38.805 1.00 8.35 O +ATOM 1048 C3' C A 48 30.049 15.893 41.084 1.00 1.59 C +ATOM 1049 O3' C A 48 28.713 16.371 41.326 1.00 0.00 O +ATOM 1050 C2' C A 48 30.082 14.375 40.922 1.00 4.65 C +ATOM 1051 O2' C A 48 29.203 13.780 41.811 1.00 8.42 O +ATOM 1052 C1' C A 48 29.696 14.212 39.468 1.00 7.30 C +ATOM 1053 N1 C A 48 30.179 12.908 38.999 1.00 6.93 N +ATOM 1054 C2 C A 48 29.346 11.812 39.144 1.00 7.42 C +ATOM 1055 O2 C A 48 28.234 11.919 39.645 1.00 8.37 O +ATOM 1056 N3 C A 48 29.802 10.597 38.708 1.00 10.80 N +ATOM 1057 C4 C A 48 31.032 10.446 38.142 1.00 9.85 C +ATOM 1058 N4 C A 48 31.411 9.226 37.738 1.00 10.53 N +ATOM 1059 C5 C A 48 31.881 11.570 37.997 1.00 8.70 C +ATOM 1060 C6 C A 48 31.418 12.751 38.433 1.00 7.80 C +ATOM 1061 P C A 49 28.367 17.091 42.716 1.00 0.00 P +ATOM 1062 OP1 C A 49 28.883 16.382 43.928 1.00 0.00 O +ATOM 1063 OP2 C A 49 26.878 17.074 42.668 1.00 10.83 O +ATOM 1064 O5' C A 49 29.046 18.513 42.603 1.00 8.20 O +ATOM 1065 C5' C A 49 28.560 19.531 41.682 1.00 5.64 C +ATOM 1066 C4' C A 49 29.036 20.852 42.264 1.00 5.09 C +ATOM 1067 O4' C A 49 28.224 21.223 43.363 1.00 4.65 O +ATOM 1068 C3' C A 49 30.452 20.835 42.829 1.00 8.88 C +ATOM 1069 O3' C A 49 31.471 20.953 41.827 1.00 11.57 O +ATOM 1070 C2' C A 49 30.422 22.010 43.799 1.00 7.00 C +ATOM 1071 O2' C A 49 30.599 23.196 43.023 1.00 10.65 O +ATOM 1072 C1' C A 49 29.010 21.931 44.332 1.00 2.41 C +ATOM 1073 N1 C A 49 29.013 21.274 45.658 1.00 0.00 N +ATOM 1074 C2 C A 49 29.529 22.021 46.708 1.00 3.14 C +ATOM 1075 O2 C A 49 29.956 23.163 46.530 1.00 1.70 O +ATOM 1076 N3 C A 49 29.549 21.448 47.953 1.00 4.30 N +ATOM 1077 C4 C A 49 29.086 20.189 48.163 1.00 0.00 C +ATOM 1078 N4 C A 49 29.130 19.671 49.391 1.00 0.00 N +ATOM 1079 C5 C A 49 28.563 19.441 47.080 1.00 0.00 C +ATOM 1080 C6 C A 49 28.550 20.014 45.868 1.00 0.00 C +ATOM 1081 CM5 C A 49 28.047 18.047 47.322 1.00 2.17 C +ATOM 1082 P U A 50 32.904 20.267 42.134 1.00 0.00 P +ATOM 1083 OP1 U A 50 33.660 20.144 40.857 1.00 13.35 O +ATOM 1084 OP2 U A 50 32.534 18.963 42.749 1.00 10.49 O +ATOM 1085 O5' U A 50 33.576 21.268 43.169 1.00 7.33 O +ATOM 1086 C5' U A 50 33.583 22.707 42.942 1.00 4.60 C +ATOM 1087 C4' U A 50 34.376 23.303 44.090 1.00 0.00 C +ATOM 1088 O4' U A 50 33.540 23.489 45.205 1.00 1.82 O +ATOM 1089 C3' U A 50 35.508 22.404 44.607 1.00 4.48 C +ATOM 1090 O3' U A 50 36.658 22.488 43.783 1.00 3.57 O +ATOM 1091 C2' U A 50 35.695 22.932 46.029 1.00 1.05 C +ATOM 1092 O2' U A 50 36.504 24.096 45.949 1.00 8.34 O +ATOM 1093 C1' U A 50 34.276 23.281 46.417 1.00 0.00 C +ATOM 1094 N1 U A 50 33.656 22.184 47.177 1.00 0.00 N +ATOM 1095 C2 U A 50 33.830 22.151 48.551 1.00 3.12 C +ATOM 1096 O2 U A 50 34.489 23.017 49.116 1.00 5.90 O +ATOM 1097 N3 U A 50 33.250 21.122 49.229 1.00 0.00 N +ATOM 1098 C4 U A 50 32.521 20.155 48.615 1.00 0.00 C +ATOM 1099 O4 U A 50 32.018 19.244 49.343 1.00 4.06 O +ATOM 1100 C5 U A 50 32.347 20.205 47.193 1.00 0.00 C +ATOM 1101 C6 U A 50 32.924 21.217 46.547 1.00 0.00 C +ATOM 1102 P G A 51 38.133 21.948 44.042 1.00 0.00 P +ATOM 1103 OP1 G A 51 39.093 22.600 43.104 1.00 9.19 O +ATOM 1104 OP2 G A 51 38.007 20.498 43.767 1.00 8.40 O +ATOM 1105 O5' G A 51 38.456 22.297 45.577 1.00 0.39 O +ATOM 1106 C5' G A 51 39.552 23.163 45.916 1.00 0.51 C +ATOM 1107 C4' G A 51 39.842 23.022 47.403 1.00 0.23 C +ATOM 1108 O4' G A 51 38.630 22.955 48.147 1.00 3.84 O +ATOM 1109 C3' G A 51 40.602 21.751 47.791 1.00 4.20 C +ATOM 1110 O3' G A 51 42.001 21.864 47.581 1.00 12.57 O +ATOM 1111 C2' G A 51 40.229 21.605 49.278 1.00 6.01 C +ATOM 1112 O2' G A 51 41.078 22.471 50.005 1.00 9.05 O +ATOM 1113 C1' G A 51 38.793 22.106 49.294 1.00 7.48 C +ATOM 1114 N9 G A 51 37.820 20.993 49.294 1.00 11.98 N +ATOM 1115 C8 G A 51 37.204 20.391 48.227 1.00 8.25 C +ATOM 1116 N7 G A 51 36.378 19.430 48.551 1.00 4.30 N +ATOM 1117 C5 G A 51 36.451 19.402 49.941 1.00 0.00 C +ATOM 1118 C6 G A 51 35.795 18.581 50.894 1.00 4.48 C +ATOM 1119 O6 G A 51 34.975 17.681 50.684 1.00 7.97 O +ATOM 1120 N1 G A 51 36.128 18.851 52.203 1.00 3.73 N +ATOM 1121 C2 G A 51 37.014 19.823 52.543 1.00 4.10 C +ATOM 1122 N2 G A 51 37.231 19.964 53.868 1.00 6.12 N +ATOM 1123 N3 G A 51 37.660 20.622 51.686 1.00 6.39 N +ATOM 1124 C4 G A 51 37.331 20.352 50.409 1.00 4.38 C +ATOM 1125 P U A 52 43.056 20.689 47.322 1.00 12.37 P +ATOM 1126 OP1 U A 52 44.372 21.217 46.854 1.00 16.93 O +ATOM 1127 OP2 U A 52 42.427 19.834 46.288 1.00 17.95 O +ATOM 1128 O5' U A 52 43.193 20.037 48.777 1.00 7.70 O +ATOM 1129 C5' U A 52 43.709 20.914 49.811 1.00 8.29 C +ATOM 1130 C4' U A 52 43.466 20.250 51.137 1.00 7.91 C +ATOM 1131 O4' U A 52 42.070 20.256 51.428 1.00 14.10 O +ATOM 1132 C3' U A 52 43.859 18.778 51.234 1.00 7.92 C +ATOM 1133 O3' U A 52 45.258 18.553 51.444 1.00 11.59 O +ATOM 1134 C2' U A 52 42.983 18.305 52.397 1.00 5.26 C +ATOM 1135 O2' U A 52 43.656 18.710 53.577 1.00 0.00 O +ATOM 1136 C1' U A 52 41.721 19.092 52.187 1.00 7.18 C +ATOM 1137 N1 U A 52 40.735 18.260 51.476 1.00 1.28 N +ATOM 1138 C2 U A 52 40.072 17.288 52.203 1.00 1.93 C +ATOM 1139 O2 U A 52 40.298 17.125 53.399 1.00 1.97 O +ATOM 1140 N3 U A 52 39.159 16.512 51.541 1.00 1.62 N +ATOM 1141 C4 U A 52 38.893 16.669 50.215 1.00 6.76 C +ATOM 1142 O4 U A 52 38.033 15.910 49.682 1.00 3.70 O +ATOM 1143 C5 U A 52 39.589 17.681 49.488 1.00 5.38 C +ATOM 1144 C6 U A 52 40.478 18.434 50.151 1.00 0.00 C +ATOM 1145 P G A 53 45.921 17.231 50.781 1.00 17.98 P +ATOM 1146 OP1 G A 53 47.417 17.333 50.846 1.00 26.93 O +ATOM 1147 OP2 G A 53 45.422 17.226 49.391 1.00 17.10 O +ATOM 1148 O5' G A 53 45.375 16.017 51.654 1.00 7.43 O +ATOM 1149 C5' G A 53 46.124 15.623 52.850 1.00 7.82 C +ATOM 1150 C4' G A 53 45.138 14.994 53.803 1.00 9.56 C +ATOM 1151 O4' G A 53 43.843 15.539 53.593 1.00 8.28 O +ATOM 1152 C3' G A 53 44.945 13.487 53.658 1.00 7.57 C +ATOM 1153 O3' G A 53 45.948 12.694 54.288 1.00 10.26 O +ATOM 1154 C2' G A 53 43.563 13.296 54.288 1.00 0.85 C +ATOM 1155 O2' G A 53 43.789 13.257 55.694 1.00 0.00 O +ATOM 1156 C1' G A 53 42.847 14.555 53.852 1.00 0.58 C +ATOM 1157 N9 G A 53 42.050 14.263 52.656 1.00 0.32 N +ATOM 1158 C8 G A 53 42.164 14.831 51.411 1.00 4.73 C +ATOM 1159 N7 G A 53 41.311 14.359 50.539 1.00 5.02 N +ATOM 1160 C5 G A 53 40.588 13.408 51.250 1.00 1.44 C +ATOM 1161 C6 G A 53 39.522 12.554 50.862 1.00 0.00 C +ATOM 1162 O6 G A 53 38.993 12.470 49.747 1.00 1.53 O +ATOM 1163 N1 G A 53 39.059 11.744 51.880 1.00 0.04 N +ATOM 1164 C2 G A 53 39.579 11.767 53.125 1.00 0.66 C +ATOM 1165 N2 G A 53 39.019 10.912 53.997 1.00 0.50 N +ATOM 1166 N3 G A 53 40.578 12.548 53.545 1.00 2.56 N +ATOM 1167 C4 G A 53 41.031 13.341 52.559 1.00 1.75 C +ATOM 1168 N1 U A 54 41.857 8.978 52.284 1.00 0.00 N +ATOM 1169 C2 U A 54 40.798 8.439 51.573 1.00 0.00 C +ATOM 1170 N3 U A 54 40.625 8.860 50.280 1.00 0.00 N +ATOM 1171 C4 U A 54 41.444 9.777 49.698 1.00 0.00 C +ATOM 1172 C5 U A 54 42.523 10.316 50.458 1.00 0.00 C +ATOM 1173 C5M U A 54 43.446 11.328 49.844 1.00 0.00 C +ATOM 1174 C6 U A 54 42.687 9.895 51.718 1.00 0.00 C +ATOM 1175 O2 U A 54 40.042 7.612 52.074 1.00 0.71 O +ATOM 1176 O4 U A 54 41.194 10.103 48.502 1.00 0.00 O +ATOM 1177 C1' U A 54 42.014 8.500 53.674 1.00 3.38 C +ATOM 1178 C2' U A 54 42.910 7.280 53.706 1.00 5.21 C +ATOM 1179 O2' U A 54 42.580 6.364 54.741 1.00 4.00 O +ATOM 1180 C3' U A 54 44.249 7.899 54.110 1.00 8.98 C +ATOM 1181 C4' U A 54 43.819 9.001 55.064 1.00 7.57 C +ATOM 1182 O3' U A 54 45.135 6.949 54.692 1.00 6.80 O +ATOM 1183 O4' U A 54 42.613 9.495 54.514 1.00 7.24 O +ATOM 1184 C5' U A 54 44.835 10.120 55.209 1.00 2.64 C +ATOM 1185 O5' U A 54 45.342 10.288 53.852 1.00 0.43 O +ATOM 1186 P U A 54 46.487 11.345 53.577 1.00 5.60 P +ATOM 1187 OP1 U A 54 47.793 10.940 54.191 1.00 8.01 O +ATOM 1188 OP2 U A 54 46.634 11.750 52.155 1.00 0.00 O +ATOM 1189 N1 U A 55 44.782 8.191 49.391 1.00 0.00 N +ATOM 1190 C2 U A 55 44.459 8.703 48.179 1.00 0.00 C +ATOM 1191 N3 U A 55 43.649 7.893 47.436 1.00 1.25 N +ATOM 1192 C4 U A 55 43.150 6.651 47.791 1.00 0.00 C +ATOM 1193 C5 U A 55 43.546 6.184 49.100 1.00 0.00 C +ATOM 1194 C6 U A 55 44.346 6.977 49.827 1.00 3.80 C +ATOM 1195 O2 U A 55 44.852 9.793 47.775 1.00 0.98 O +ATOM 1196 O4 U A 55 42.430 5.987 47.064 1.00 5.16 O +ATOM 1197 C1' U A 55 43.063 4.852 49.569 1.00 1.54 C +ATOM 1198 C2' U A 55 43.886 3.716 48.987 1.00 0.00 C +ATOM 1199 O2' U A 55 43.086 2.558 48.809 1.00 0.00 O +ATOM 1200 C3' U A 55 44.862 3.446 50.134 1.00 0.13 C +ATOM 1201 C4' U A 55 43.989 3.694 51.363 1.00 0.00 C +ATOM 1202 O3' U A 55 45.428 2.136 50.118 1.00 7.95 O +ATOM 1203 O4' U A 55 43.163 4.779 50.991 1.00 4.08 O +ATOM 1204 C5' U A 55 44.765 4.031 52.607 1.00 2.64 C +ATOM 1205 O5' U A 55 44.938 5.470 52.656 1.00 1.06 O +ATOM 1206 P U A 55 46.011 6.027 53.706 1.00 10.33 P +ATOM 1207 OP1 U A 55 46.671 4.976 54.547 1.00 11.01 O +ATOM 1208 OP2 U A 55 46.980 6.932 53.044 1.00 1.86 O +ATOM 1209 P C A 56 47.040 2.058 49.941 1.00 1.09 P +ATOM 1210 OP1 C A 56 47.607 0.900 50.700 1.00 10.69 O +ATOM 1211 OP2 C A 56 47.507 3.345 50.506 1.00 11.24 O +ATOM 1212 O5' C A 56 47.177 1.951 48.373 1.00 0.00 O +ATOM 1213 C5' C A 56 48.156 2.789 47.710 1.00 0.00 C +ATOM 1214 C4' C A 56 47.963 2.502 46.239 1.00 0.00 C +ATOM 1215 O4' C A 56 47.670 1.136 46.046 1.00 0.00 O +ATOM 1216 C3' C A 56 46.787 3.250 45.609 1.00 4.26 C +ATOM 1217 O3' C A 56 47.114 4.610 45.302 1.00 6.56 O +ATOM 1218 C2' C A 56 46.481 2.378 44.397 1.00 0.33 C +ATOM 1219 O2' C A 56 47.410 2.710 43.363 1.00 8.88 O +ATOM 1220 C1' C A 56 46.771 0.989 44.930 1.00 0.00 C +ATOM 1221 N1 C A 56 45.511 0.337 45.334 1.00 0.00 N +ATOM 1222 C2 C A 56 44.635 0.000 44.316 1.00 0.00 C +ATOM 1223 O2 C A 56 44.905 0.247 43.153 1.00 0.00 O +ATOM 1224 N3 C A 56 43.466 -0.613 44.656 1.00 0.00 N +ATOM 1225 C4 C A 56 43.150 -0.894 45.949 1.00 0.00 C +ATOM 1226 N4 C A 56 41.981 -1.495 46.207 1.00 0.57 N +ATOM 1227 C5 C A 56 44.056 -0.545 46.983 1.00 0.00 C +ATOM 1228 C6 C A 56 45.202 0.056 46.644 1.00 0.00 C +ATOM 1229 P G A 57 46.184 5.847 45.755 1.00 0.00 P +ATOM 1230 OP1 G A 57 46.887 7.134 45.447 1.00 10.63 O +ATOM 1231 OP2 G A 57 45.994 5.689 47.225 1.00 0.00 O +ATOM 1232 O5' G A 57 44.909 5.661 44.817 1.00 0.00 O +ATOM 1233 C5' G A 57 45.092 5.898 43.395 1.00 0.00 C +ATOM 1234 C4' G A 57 43.859 5.346 42.716 1.00 3.53 C +ATOM 1235 O4' G A 57 43.733 3.964 42.975 1.00 5.63 O +ATOM 1236 C3' G A 57 42.530 5.931 43.185 1.00 3.57 C +ATOM 1237 O3' G A 57 42.250 7.202 42.571 1.00 3.71 O +ATOM 1238 C2' G A 57 41.538 4.846 42.781 1.00 0.64 C +ATOM 1239 O2' G A 57 41.261 4.970 41.391 1.00 2.20 O +ATOM 1240 C1' G A 57 42.344 3.592 43.039 1.00 0.00 C +ATOM 1241 N9 G A 57 41.997 2.974 44.332 1.00 0.00 N +ATOM 1242 C8 G A 57 42.697 2.935 45.496 1.00 0.00 C +ATOM 1243 N7 G A 57 42.087 2.277 46.466 1.00 0.00 N +ATOM 1244 C5 G A 57 40.898 1.844 45.868 1.00 0.00 C +ATOM 1245 C6 G A 57 39.812 1.085 46.369 1.00 0.00 C +ATOM 1246 O6 G A 57 39.679 0.618 47.516 1.00 0.00 O +ATOM 1247 N1 G A 57 38.806 0.866 45.480 1.00 0.00 N +ATOM 1248 C2 G A 57 38.853 1.332 44.203 1.00 0.00 C +ATOM 1249 N2 G A 57 37.797 1.040 43.411 1.00 0.00 N +ATOM 1250 N3 G A 57 39.845 2.046 43.670 1.00 0.00 N +ATOM 1251 C4 G A 57 40.835 2.266 44.559 1.00 0.00 C +ATOM 1252 P A A 58 41.821 8.388 43.589 1.00 0.00 P +ATOM 1253 OP1 A A 58 42.247 9.692 42.991 1.00 0.42 O +ATOM 1254 OP2 A A 58 42.540 8.045 44.833 1.00 0.00 O +ATOM 1255 O5' A A 58 40.255 8.203 43.734 1.00 0.00 O +ATOM 1256 C5' A A 58 39.449 7.657 42.684 1.00 0.00 C +ATOM 1257 C4' A A 58 38.010 8.045 42.991 1.00 0.08 C +ATOM 1258 O4' A A 58 37.560 7.314 44.122 1.00 0.00 O +ATOM 1259 C3' A A 58 37.804 9.529 43.314 1.00 0.00 C +ATOM 1260 O3' A A 58 36.528 10.007 42.862 1.00 1.72 O +ATOM 1261 C2' A A 58 37.793 9.529 44.849 1.00 0.88 C +ATOM 1262 O2' A A 58 37.127 10.659 45.318 1.00 0.00 O +ATOM 1263 C1' A A 58 37.101 8.225 45.140 1.00 0.00 C +ATOM 1264 N9 A A 58 37.404 7.792 46.514 1.00 0.00 N +ATOM 1265 C8 A A 58 38.500 8.039 47.274 1.00 0.00 C +ATOM 1266 N7 A A 58 38.440 7.505 48.470 1.00 0.31 N +ATOM 1267 C5 A A 58 37.207 6.859 48.486 1.00 0.00 C +ATOM 1268 C6 A A 58 36.558 6.100 49.488 1.00 0.00 C +ATOM 1269 N6 A A 58 37.064 5.852 50.684 1.00 0.00 N +ATOM 1270 N1 A A 58 35.332 5.616 49.132 1.00 0.00 N +ATOM 1271 CM1 A A 58 34.606 4.829 50.102 1.00 0.00 C +ATOM 1272 C2 A A 58 34.789 5.852 47.920 1.00 0.00 C +ATOM 1273 N3 A A 58 35.342 6.555 46.934 1.00 0.00 N +ATOM 1274 C4 A A 58 36.554 7.033 47.290 1.00 0.00 C +ATOM 1275 P U A 59 36.041 9.968 41.342 1.00 19.38 P +ATOM 1276 OP1 U A 59 36.288 8.652 40.680 1.00 21.40 O +ATOM 1277 OP2 U A 59 36.818 11.064 40.696 1.00 20.54 O +ATOM 1278 O5' U A 59 34.476 10.294 41.456 1.00 13.10 O +ATOM 1279 C5' U A 59 34.109 11.699 41.536 1.00 12.06 C +ATOM 1280 C4' U A 59 32.810 11.761 42.312 1.00 9.41 C +ATOM 1281 O4' U A 59 31.724 11.351 41.504 1.00 11.15 O +ATOM 1282 C3' U A 59 32.767 10.822 43.524 1.00 7.99 C +ATOM 1283 O3' U A 59 33.460 11.379 44.623 1.00 3.26 O +ATOM 1284 C2' U A 59 31.265 10.659 43.718 1.00 5.68 C +ATOM 1285 O2' U A 59 30.832 11.812 44.429 1.00 6.83 O +ATOM 1286 C1' U A 59 30.742 10.670 42.296 1.00 8.66 C +ATOM 1287 N1 U A 59 30.492 9.304 41.811 1.00 9.07 N +ATOM 1288 C2 U A 59 29.396 8.647 42.344 1.00 13.23 C +ATOM 1289 O2 U A 59 28.683 9.186 43.201 1.00 15.49 O +ATOM 1290 N3 U A 59 29.130 7.382 41.908 1.00 17.81 N +ATOM 1291 C4 U A 59 29.906 6.758 40.987 1.00 16.30 C +ATOM 1292 O4 U A 59 29.563 5.577 40.647 1.00 16.87 O +ATOM 1293 C5 U A 59 31.025 7.449 40.437 1.00 11.35 C +ATOM 1294 C6 U A 59 31.268 8.692 40.874 1.00 10.61 C +ATOM 1295 P C A 60 33.340 11.098 46.175 1.00 0.00 P +ATOM 1296 OP1 C A 60 33.413 12.396 46.934 1.00 3.78 O +ATOM 1297 OP2 C A 60 34.513 10.232 46.466 1.00 7.82 O +ATOM 1298 O5' C A 60 31.981 10.339 46.482 1.00 0.00 O +ATOM 1299 C5' C A 60 31.851 9.990 47.888 1.00 0.00 C +ATOM 1300 C4' C A 60 30.845 8.866 48.001 1.00 0.00 C +ATOM 1301 O4' C A 60 30.609 8.292 46.724 1.00 1.74 O +ATOM 1302 C3' C A 60 31.328 7.719 48.906 1.00 0.00 C +ATOM 1303 O3' C A 60 30.226 7.196 49.666 1.00 0.00 O +ATOM 1304 C2' C A 60 31.858 6.718 47.888 1.00 0.00 C +ATOM 1305 O2' C A 60 31.854 5.453 48.486 1.00 1.57 O +ATOM 1306 C1' C A 60 30.908 6.887 46.741 1.00 0.00 C +ATOM 1307 N1 C A 60 31.515 6.465 45.480 1.00 0.00 N +ATOM 1308 C2 C A 60 31.008 5.346 44.833 1.00 0.00 C +ATOM 1309 O2 C A 60 30.066 4.728 45.318 1.00 2.85 O +ATOM 1310 N3 C A 60 31.578 4.964 43.654 1.00 0.00 N +ATOM 1311 C4 C A 60 32.620 5.639 43.104 1.00 0.00 C +ATOM 1312 N4 C A 60 33.147 5.223 41.957 1.00 0.00 N +ATOM 1313 C5 C A 60 33.143 6.786 43.767 1.00 2.56 C +ATOM 1314 C6 C A 60 32.567 7.151 44.930 1.00 3.95 C +ATOM 1315 P C A 61 29.733 8.118 50.910 1.00 7.49 P +ATOM 1316 OP1 C A 61 28.360 7.730 51.347 1.00 10.82 O +ATOM 1317 OP2 C A 61 29.769 9.479 50.312 1.00 6.11 O +ATOM 1318 O5' C A 61 30.808 7.899 52.058 1.00 10.45 O +ATOM 1319 C5' C A 61 31.291 6.589 52.462 1.00 9.37 C +ATOM 1320 C4' C A 61 32.501 6.864 53.335 1.00 10.13 C +ATOM 1321 O4' C A 61 33.693 6.696 52.607 1.00 10.76 O +ATOM 1322 C3' C A 61 32.554 8.321 53.836 1.00 12.52 C +ATOM 1323 O3' C A 61 31.688 8.500 54.935 1.00 9.41 O +ATOM 1324 C2' C A 61 34.043 8.495 54.143 1.00 11.10 C +ATOM 1325 O2' C A 61 34.299 7.916 55.419 1.00 9.69 O +ATOM 1326 C1' C A 61 34.676 7.657 53.044 1.00 5.41 C +ATOM 1327 N1 C A 61 35.115 8.461 51.896 1.00 0.00 N +ATOM 1328 C2 C A 61 36.278 9.192 52.042 1.00 0.00 C +ATOM 1329 O2 C A 61 36.904 9.181 53.092 1.00 0.00 O +ATOM 1330 N3 C A 61 36.698 9.928 50.975 1.00 0.00 N +ATOM 1331 C4 C A 61 36.011 9.957 49.795 1.00 0.02 C +ATOM 1332 N4 C A 61 36.488 10.699 48.793 1.00 0.00 N +ATOM 1333 C5 C A 61 34.819 9.198 49.666 1.00 0.54 C +ATOM 1334 C6 C A 61 34.423 8.478 50.716 1.00 0.00 C +ATOM 1335 P A A 62 31.598 9.715 55.969 1.00 0.00 P +ATOM 1336 OP1 A A 62 30.669 9.321 57.084 1.00 13.83 O +ATOM 1337 OP2 A A 62 31.052 10.839 55.161 1.00 3.90 O +ATOM 1338 O5' A A 62 33.083 9.928 56.470 1.00 5.65 O +ATOM 1339 C5' A A 62 33.403 9.720 57.876 1.00 7.49 C +ATOM 1340 C4' A A 62 34.706 10.474 58.070 1.00 6.76 C +ATOM 1341 O4' A A 62 35.545 10.215 56.971 1.00 6.26 O +ATOM 1342 C3' A A 62 34.569 11.986 58.102 1.00 11.20 C +ATOM 1343 O3' A A 62 34.173 12.498 59.379 1.00 15.08 O +ATOM 1344 C2' A A 62 35.965 12.441 57.682 1.00 6.66 C +ATOM 1345 O2' A A 62 36.804 12.357 58.830 1.00 13.43 O +ATOM 1346 C1' A A 62 36.328 11.379 56.680 1.00 2.51 C +ATOM 1347 N9 A A 62 36.065 11.879 55.322 1.00 1.03 N +ATOM 1348 C8 A A 62 35.142 11.452 54.417 1.00 0.95 C +ATOM 1349 N7 A A 62 35.172 12.121 53.270 1.00 0.87 N +ATOM 1350 C5 A A 62 36.188 13.049 53.464 1.00 0.00 C +ATOM 1351 C6 A A 62 36.711 14.055 52.624 1.00 2.21 C +ATOM 1352 N6 A A 62 36.281 14.302 51.395 1.00 2.87 N +ATOM 1353 N1 A A 62 37.730 14.797 53.157 1.00 3.05 N +ATOM 1354 C2 A A 62 38.197 14.567 54.417 1.00 3.86 C +ATOM 1355 N3 A A 62 37.750 13.639 55.258 1.00 0.41 N +ATOM 1356 C4 A A 62 36.744 12.914 54.724 1.00 0.00 C +ATOM 1357 P C A 63 32.847 13.431 59.411 1.00 11.17 P +ATOM 1358 OP1 C A 63 32.074 13.060 60.640 1.00 24.93 O +ATOM 1359 OP2 C A 63 32.118 13.111 58.167 1.00 9.41 O +ATOM 1360 O5' C A 63 33.453 14.898 59.476 1.00 8.59 O +ATOM 1361 C5' C A 63 34.502 15.129 60.446 1.00 8.21 C +ATOM 1362 C4' C A 63 35.462 16.135 59.848 1.00 11.64 C +ATOM 1363 O4' C A 63 36.065 15.590 58.684 1.00 6.82 O +ATOM 1364 C3' C A 63 34.819 17.445 59.379 1.00 9.87 C +ATOM 1365 O3' C A 63 34.582 18.389 60.414 1.00 12.92 O +ATOM 1366 C2' C A 63 35.845 17.917 58.345 1.00 11.37 C +ATOM 1367 O2' C A 63 36.897 18.541 59.088 1.00 12.44 O +ATOM 1368 C1' C A 63 36.321 16.619 57.731 1.00 4.28 C +ATOM 1369 N1 C A 63 35.595 16.456 56.454 1.00 3.35 N +ATOM 1370 C2 C A 63 36.131 17.085 55.339 1.00 0.67 C +ATOM 1371 O2 C A 63 37.171 17.737 55.436 1.00 0.00 O +ATOM 1372 N3 C A 63 35.468 16.945 54.159 1.00 0.00 N +ATOM 1373 C4 C A 63 34.316 16.219 54.046 1.00 0.00 C +ATOM 1374 N4 C A 63 33.716 16.124 52.866 1.00 0.00 N +ATOM 1375 C5 C A 63 33.773 15.584 55.193 1.00 0.00 C +ATOM 1376 C6 C A 63 34.439 15.730 56.357 1.00 1.15 C +ATOM 1377 P A A 64 33.427 19.508 60.381 1.00 29.16 P +ATOM 1378 OP1 A A 64 33.257 20.166 61.723 1.00 22.93 O +ATOM 1379 OP2 A A 64 32.197 18.766 59.993 1.00 29.67 O +ATOM 1380 O5' A A 64 33.893 20.599 59.298 1.00 13.19 O +ATOM 1381 C5' A A 64 34.536 21.796 59.832 1.00 11.86 C +ATOM 1382 C4' A A 64 35.309 22.426 58.684 1.00 9.56 C +ATOM 1383 O4' A A 64 35.835 21.437 57.828 1.00 10.56 O +ATOM 1384 C3' A A 64 34.459 23.298 57.763 1.00 9.53 C +ATOM 1385 O3' A A 64 34.179 24.596 58.313 1.00 6.01 O +ATOM 1386 C2' A A 64 35.285 23.320 56.486 1.00 9.55 C +ATOM 1387 O2' A A 64 36.328 24.264 56.696 1.00 13.78 O +ATOM 1388 C1' A A 64 35.832 21.920 56.486 1.00 10.59 C +ATOM 1389 N9 A A 64 34.945 21.099 55.646 1.00 9.66 N +ATOM 1390 C8 A A 64 34.213 20.003 56.050 1.00 8.00 C +ATOM 1391 N7 A A 64 33.503 19.475 55.080 1.00 9.86 N +ATOM 1392 C5 A A 64 33.786 20.273 53.981 1.00 6.12 C +ATOM 1393 C6 A A 64 33.330 20.217 52.640 1.00 7.34 C +ATOM 1394 N6 A A 64 32.484 19.300 52.187 1.00 4.78 N +ATOM 1395 N1 A A 64 33.823 21.184 51.815 1.00 6.33 N +ATOM 1396 C2 A A 64 34.696 22.134 52.268 1.00 8.33 C +ATOM 1397 N3 A A 64 35.165 22.241 53.512 1.00 10.73 N +ATOM 1398 C4 A A 64 34.666 21.279 54.320 1.00 9.34 C +ATOM 1399 P G A 65 32.620 24.596 58.813 1.00 15.79 P +ATOM 1400 OP1 G A 65 32.494 25.395 60.074 1.00 16.85 O +ATOM 1401 OP2 G A 65 32.334 23.151 59.024 1.00 11.11 O +ATOM 1402 O5' G A 65 31.888 25.232 57.553 1.00 11.06 O +ATOM 1403 C5' G A 65 32.317 26.564 57.214 1.00 9.01 C +ATOM 1404 C4' G A 65 32.814 26.575 55.775 1.00 5.09 C +ATOM 1405 O4' G A 65 33.303 25.310 55.355 1.00 8.92 O +ATOM 1406 C3' G A 65 31.711 26.901 54.757 1.00 0.42 C +ATOM 1407 O3' G A 65 31.378 28.295 54.724 1.00 0.15 O +ATOM 1408 C2' G A 65 32.301 26.345 53.480 1.00 1.10 C +ATOM 1409 O2' G A 65 33.217 27.329 52.995 1.00 0.00 O +ATOM 1410 C1' G A 65 33.020 25.114 53.965 1.00 6.67 C +ATOM 1411 N9 G A 65 32.107 23.989 53.706 1.00 3.03 N +ATOM 1412 C8 G A 65 31.561 23.106 54.611 1.00 0.12 C +ATOM 1413 N7 G A 65 30.768 22.224 54.062 1.00 2.15 N +ATOM 1414 C5 G A 65 30.788 22.544 52.704 1.00 0.00 C +ATOM 1415 C6 G A 65 30.135 21.959 51.589 1.00 1.19 C +ATOM 1416 O6 G A 65 29.373 20.987 51.589 1.00 8.55 O +ATOM 1417 N1 G A 65 30.402 22.561 50.393 1.00 0.00 N +ATOM 1418 C2 G A 65 31.232 23.635 50.280 1.00 0.00 C +ATOM 1419 N2 G A 65 31.381 24.101 49.035 1.00 0.00 N +ATOM 1420 N3 G A 65 31.868 24.225 51.298 1.00 0.00 N +ATOM 1421 C4 G A 65 31.604 23.629 52.478 1.00 0.00 C +ATOM 1422 P A A 66 29.776 28.571 54.902 1.00 2.97 P +ATOM 1423 OP1 A A 66 29.596 29.858 55.646 1.00 8.00 O +ATOM 1424 OP2 A A 66 29.279 27.430 55.694 1.00 1.20 O +ATOM 1425 O5' A A 66 29.263 28.594 53.383 1.00 0.00 O +ATOM 1426 C5' A A 66 29.972 29.465 52.462 1.00 0.00 C +ATOM 1427 C4' A A 66 29.626 29.116 51.040 1.00 0.34 C +ATOM 1428 O4' A A 66 30.052 27.795 50.732 1.00 3.47 O +ATOM 1429 C3' A A 66 28.134 29.094 50.716 1.00 2.03 C +ATOM 1430 O3' A A 66 27.581 30.387 50.474 1.00 3.00 O +ATOM 1431 C2' A A 66 28.070 28.189 49.472 1.00 0.26 C +ATOM 1432 O2' A A 66 28.437 28.976 48.357 1.00 0.00 O +ATOM 1433 C1' A A 66 29.143 27.188 49.795 1.00 0.00 C +ATOM 1434 N9 A A 66 28.563 25.979 50.409 1.00 0.00 N +ATOM 1435 C8 A A 66 28.577 25.631 51.735 1.00 0.00 C +ATOM 1436 N7 A A 66 27.990 24.484 51.977 1.00 0.00 N +ATOM 1437 C5 A A 66 27.557 24.056 50.732 1.00 0.30 C +ATOM 1438 C6 A A 66 26.858 22.893 50.328 1.00 0.00 C +ATOM 1439 N6 A A 66 26.468 21.943 51.153 1.00 0.00 N +ATOM 1440 N1 A A 66 26.601 22.803 48.987 1.00 0.00 N +ATOM 1441 C2 A A 66 27.001 23.775 48.114 1.00 0.12 C +ATOM 1442 N3 A A 66 27.661 24.889 48.421 1.00 0.00 N +ATOM 1443 C4 A A 66 27.907 24.967 49.747 1.00 0.18 C +ATOM 1444 P A A 67 26.072 30.651 50.991 1.00 14.15 P +ATOM 1445 OP1 A A 67 25.872 32.135 51.153 1.00 15.31 O +ATOM 1446 OP2 A A 67 25.985 29.943 52.300 1.00 0.00 O +ATOM 1447 O5' A A 67 25.186 30.021 49.827 1.00 3.37 O +ATOM 1448 C5' A A 67 25.272 30.494 48.454 1.00 2.77 C +ATOM 1449 C4' A A 67 24.520 29.487 47.613 1.00 8.12 C +ATOM 1450 O4' A A 67 25.169 28.228 47.710 1.00 11.83 O +ATOM 1451 C3' A A 67 23.080 29.218 48.034 1.00 10.99 C +ATOM 1452 O3' A A 67 22.121 30.168 47.565 1.00 5.85 O +ATOM 1453 C2' A A 67 22.847 27.812 47.452 1.00 9.78 C +ATOM 1454 O2' A A 67 22.531 27.969 46.078 1.00 7.59 O +ATOM 1455 C1' A A 67 24.210 27.177 47.646 1.00 6.70 C +ATOM 1456 N9 A A 67 24.163 26.378 48.874 1.00 0.00 N +ATOM 1457 C8 A A 67 24.626 26.727 50.118 1.00 0.00 C +ATOM 1458 N7 A A 67 24.440 25.805 51.023 1.00 0.00 N +ATOM 1459 C5 A A 67 23.800 24.776 50.328 1.00 2.64 C +ATOM 1460 C6 A A 67 23.334 23.506 50.749 1.00 0.00 C +ATOM 1461 N6 A A 67 23.434 23.039 51.993 1.00 0.00 N +ATOM 1462 N1 A A 67 22.747 22.758 49.779 1.00 0.00 N +ATOM 1463 C2 A A 67 22.628 23.208 48.486 1.00 0.00 C +ATOM 1464 N3 A A 67 23.051 24.388 48.034 1.00 2.05 N +ATOM 1465 C4 A A 67 23.627 25.119 49.003 1.00 1.40 C +ATOM 1466 P U A 68 20.892 30.623 48.502 1.00 5.45 P +ATOM 1467 OP1 U A 68 20.409 31.983 48.098 1.00 15.56 O +ATOM 1468 OP2 U A 68 21.428 30.595 49.892 1.00 0.71 O +ATOM 1469 O5' U A 68 19.773 29.521 48.227 1.00 13.99 O +ATOM 1470 C5' U A 68 19.500 29.263 46.821 1.00 15.33 C +ATOM 1471 C4' U A 68 18.947 27.857 46.724 1.00 11.41 C +ATOM 1472 O4' U A 68 19.946 26.913 47.080 1.00 5.34 O +ATOM 1473 C3' U A 68 17.781 27.570 47.678 1.00 10.61 C +ATOM 1474 O3' U A 68 16.512 28.059 47.209 1.00 12.58 O +ATOM 1475 C2' U A 68 17.844 26.047 47.775 1.00 8.89 C +ATOM 1476 O2' U A 68 17.191 25.529 46.611 1.00 14.50 O +ATOM 1477 C1' U A 68 19.346 25.799 47.726 1.00 3.33 C +ATOM 1478 N1 U A 68 19.740 25.619 49.132 1.00 5.06 N +ATOM 1479 C2 U A 68 19.366 24.416 49.714 1.00 7.94 C +ATOM 1480 O2 U A 68 18.757 23.562 49.068 1.00 8.66 O +ATOM 1481 N3 U A 68 19.706 24.220 51.023 1.00 1.82 N +ATOM 1482 C4 U A 68 20.382 25.158 51.751 1.00 1.17 C +ATOM 1483 O4 U A 68 20.642 24.866 52.947 1.00 2.33 O +ATOM 1484 C5 U A 68 20.749 26.384 51.120 1.00 0.00 C +ATOM 1485 C6 U A 68 20.409 26.564 49.844 1.00 1.22 C +ATOM 1486 P U A 69 15.506 28.712 48.308 1.00 16.15 P +ATOM 1487 OP1 U A 69 14.440 29.493 47.613 1.00 4.70 O +ATOM 1488 OP2 U A 69 16.362 29.560 49.165 1.00 6.55 O +ATOM 1489 O5' U A 69 14.923 27.435 49.084 1.00 9.24 O +ATOM 1490 C5' U A 69 13.993 26.586 48.340 1.00 11.14 C +ATOM 1491 C4' U A 69 13.907 25.293 49.132 1.00 11.93 C +ATOM 1492 O4' U A 69 15.219 24.827 49.391 1.00 9.85 O +ATOM 1493 C3' U A 69 13.254 25.417 50.506 1.00 14.96 C +ATOM 1494 O3' U A 69 11.825 25.395 50.474 1.00 18.44 O +ATOM 1495 C2' U A 69 13.850 24.208 51.234 1.00 10.35 C +ATOM 1496 O2' U A 69 13.081 23.078 50.846 1.00 10.10 O +ATOM 1497 C1' U A 69 15.246 24.169 50.652 1.00 8.52 C +ATOM 1498 N1 U A 69 16.162 24.844 51.589 1.00 6.23 N +ATOM 1499 C2 U A 69 16.618 24.130 52.672 1.00 7.37 C +ATOM 1500 O2 U A 69 16.269 22.966 52.850 1.00 4.14 O +ATOM 1501 N3 U A 69 17.468 24.771 53.528 1.00 13.59 N +ATOM 1502 C4 U A 69 17.868 26.058 53.351 1.00 11.26 C +ATOM 1503 O4 U A 69 18.657 26.558 54.207 1.00 11.67 O +ATOM 1504 C5 U A 69 17.381 26.778 52.219 1.00 9.01 C +ATOM 1505 C6 U A 69 16.548 26.142 51.395 1.00 9.28 C +ATOM 1506 P C A 70 10.942 26.227 51.525 1.00 20.19 P +ATOM 1507 OP1 C A 70 9.633 26.615 50.910 1.00 23.18 O +ATOM 1508 OP2 C A 70 11.792 27.407 51.848 1.00 23.85 O +ATOM 1509 O5' C A 70 10.766 25.215 52.753 1.00 18.48 O +ATOM 1510 C5' C A 70 9.710 24.220 52.769 1.00 18.36 C +ATOM 1511 C4' C A 70 10.086 23.225 53.852 1.00 16.55 C +ATOM 1512 O4' C A 70 11.479 22.938 53.771 1.00 20.18 O +ATOM 1513 C3' C A 70 9.893 23.702 55.274 1.00 17.86 C +ATOM 1514 O3' C A 70 8.544 23.601 55.759 1.00 19.20 O +ATOM 1515 C2' C A 70 10.862 22.803 56.050 1.00 18.99 C +ATOM 1516 O2' C A 70 10.219 21.549 56.228 1.00 21.45 O +ATOM 1517 C1' C A 70 12.005 22.679 55.064 1.00 16.52 C +ATOM 1518 N1 C A 70 13.051 23.646 55.436 1.00 12.39 N +ATOM 1519 C2 C A 70 13.927 23.275 56.438 1.00 19.05 C +ATOM 1520 O2 C A 70 13.830 22.184 57.003 1.00 20.39 O +ATOM 1521 N3 C A 70 14.906 24.163 56.793 1.00 18.84 N +ATOM 1522 C4 C A 70 15.023 25.378 56.195 1.00 21.95 C +ATOM 1523 N4 C A 70 15.995 26.204 56.583 1.00 22.46 N +ATOM 1524 C5 C A 70 14.117 25.749 55.161 1.00 20.70 C +ATOM 1525 C6 C A 70 13.164 24.861 54.821 1.00 14.92 C +ATOM 1526 P G A 71 8.071 24.759 56.809 1.00 27.09 P +ATOM 1527 OP1 G A 71 6.575 24.838 56.809 1.00 29.37 O +ATOM 1528 OP2 G A 71 8.711 25.985 56.276 1.00 25.13 O +ATOM 1529 O5' G A 71 8.647 24.321 58.232 1.00 22.21 O +ATOM 1530 C5' G A 71 8.138 23.095 58.813 1.00 25.96 C +ATOM 1531 C4' G A 71 9.064 22.747 59.961 1.00 25.18 C +ATOM 1532 O4' G A 71 10.373 22.499 59.476 1.00 25.51 O +ATOM 1533 C3' G A 71 9.240 23.860 60.979 1.00 26.36 C +ATOM 1534 O3' G A 71 8.161 23.950 61.917 1.00 28.99 O +ATOM 1535 C2' G A 71 10.573 23.483 61.626 1.00 25.65 C +ATOM 1536 O2' G A 71 10.296 22.460 62.579 1.00 26.25 O +ATOM 1537 C1' G A 71 11.322 22.938 60.446 1.00 24.32 C +ATOM 1538 N9 G A 71 12.165 24.012 59.896 1.00 22.16 N +ATOM 1539 C8 G A 71 11.955 24.720 58.733 1.00 19.05 C +ATOM 1540 N7 G A 71 12.868 25.625 58.506 1.00 16.20 N +ATOM 1541 C5 G A 71 13.737 25.507 59.589 1.00 17.04 C +ATOM 1542 C6 G A 71 14.926 26.210 59.912 1.00 18.37 C +ATOM 1543 O6 G A 71 15.456 27.121 59.266 1.00 20.31 O +ATOM 1544 N1 G A 71 15.516 25.805 61.092 1.00 17.37 N +ATOM 1545 C2 G A 71 15.000 24.810 61.868 1.00 16.19 C +ATOM 1546 N2 G A 71 15.719 24.557 62.967 1.00 18.04 N +ATOM 1547 N3 G A 71 13.890 24.118 61.610 1.00 11.69 N +ATOM 1548 C4 G A 71 13.314 24.517 60.446 1.00 17.46 C +ATOM 1549 P C A 72 7.705 25.456 62.321 1.00 30.95 P +ATOM 1550 OP1 C A 72 6.309 25.406 62.854 1.00 27.88 O +ATOM 1551 OP2 C A 72 7.828 26.215 61.044 1.00 29.12 O +ATOM 1552 O5' C A 72 8.797 25.822 63.420 1.00 16.81 O +ATOM 1553 C5' C A 72 8.887 24.816 64.470 1.00 21.29 C +ATOM 1554 C4' C A 72 10.163 25.069 65.230 1.00 20.33 C +ATOM 1555 O4' C A 72 11.279 24.877 64.389 1.00 24.21 O +ATOM 1556 C3' C A 72 10.329 26.491 65.779 1.00 22.82 C +ATOM 1557 O3' C A 72 9.623 26.733 66.992 1.00 25.84 O +ATOM 1558 C2' C A 72 11.842 26.575 65.925 1.00 27.18 C +ATOM 1559 O2' C A 72 12.158 25.934 67.169 1.00 29.23 O +ATOM 1560 C1' C A 72 12.328 25.771 64.745 1.00 25.74 C +ATOM 1561 N1 C A 72 12.668 26.699 63.662 1.00 25.00 N +ATOM 1562 C2 C A 72 13.794 27.492 63.808 1.00 24.31 C +ATOM 1563 O2 C A 72 14.480 27.407 64.826 1.00 25.98 O +ATOM 1564 N3 C A 72 14.103 28.352 62.806 1.00 22.66 N +ATOM 1565 C4 C A 72 13.351 28.447 61.674 1.00 24.65 C +ATOM 1566 N4 C A 72 13.707 29.313 60.721 1.00 27.48 N +ATOM 1567 C5 C A 72 12.195 27.632 61.529 1.00 27.22 C +ATOM 1568 C6 C A 72 11.902 26.789 62.531 1.00 27.68 C +ATOM 1569 P A A 73 9.097 28.234 67.315 1.00 27.45 P +ATOM 1570 OP1 A A 73 8.168 28.222 68.478 1.00 24.27 O +ATOM 1571 OP2 A A 73 8.401 28.633 66.054 1.00 24.10 O +ATOM 1572 O5' A A 73 10.436 29.043 67.606 1.00 24.19 O +ATOM 1573 C5' A A 73 11.199 28.745 68.802 1.00 27.37 C +ATOM 1574 C4' A A 73 12.411 29.656 68.769 1.00 29.49 C +ATOM 1575 O4' A A 73 13.251 29.291 67.670 1.00 29.13 O +ATOM 1576 C3' A A 73 12.101 31.129 68.527 1.00 32.07 C +ATOM 1577 O3' A A 73 11.682 31.832 69.690 1.00 34.60 O +ATOM 1578 C2' A A 73 13.424 31.646 67.945 1.00 29.01 C +ATOM 1579 O2' A A 73 14.297 31.894 69.044 1.00 27.53 O +ATOM 1580 C1' A A 73 13.890 30.454 67.137 1.00 28.43 C +ATOM 1581 N9 A A 73 13.554 30.679 65.731 1.00 26.68 N +ATOM 1582 C8 A A 73 12.518 30.151 65.004 1.00 24.43 C +ATOM 1583 N7 A A 73 12.495 30.550 63.743 1.00 23.16 N +ATOM 1584 C5 A A 73 13.590 31.404 63.646 1.00 19.93 C +ATOM 1585 C6 A A 73 14.103 32.152 62.563 1.00 20.89 C +ATOM 1586 N6 A A 73 13.574 32.163 61.351 1.00 24.41 N +ATOM 1587 N1 A A 73 15.219 32.889 62.838 1.00 21.91 N +ATOM 1588 C2 A A 73 15.779 32.894 64.082 1.00 24.59 C +ATOM 1589 N3 A A 73 15.349 32.214 65.149 1.00 24.25 N +ATOM 1590 C4 A A 73 14.250 31.489 64.858 1.00 22.52 C +ATOM 1591 P C A 74 10.693 33.102 69.480 1.00 39.69 P +ATOM 1592 OP1 C A 74 10.103 33.513 70.790 1.00 29.46 O +ATOM 1593 OP2 C A 74 9.677 32.602 68.511 1.00 29.74 O +ATOM 1594 O5' C A 74 11.682 34.204 68.866 1.00 37.49 O +ATOM 1595 C5' C A 74 13.078 34.165 69.270 1.00 34.40 C +ATOM 1596 C4' C A 74 13.850 35.064 68.333 1.00 33.09 C +ATOM 1597 O4' C A 74 14.040 34.435 67.072 1.00 34.22 O +ATOM 1598 C3' C A 74 13.144 36.386 68.010 1.00 31.87 C +ATOM 1599 O3' C A 74 13.317 37.330 69.044 1.00 30.07 O +ATOM 1600 C2' C A 74 13.804 36.779 66.684 1.00 33.18 C +ATOM 1601 O2' C A 74 15.036 37.409 67.008 1.00 34.33 O +ATOM 1602 C1' C A 74 14.027 35.419 66.022 1.00 31.93 C +ATOM 1603 N1 C A 74 12.991 35.154 65.004 1.00 28.12 N +ATOM 1604 C2 C A 74 13.161 35.795 63.775 1.00 28.57 C +ATOM 1605 O2 C A 74 14.120 36.537 63.581 1.00 30.04 O +ATOM 1606 N3 C A 74 12.228 35.570 62.806 1.00 27.74 N +ATOM 1607 C4 C A 74 11.156 34.755 63.000 1.00 25.44 C +ATOM 1608 N4 C A 74 10.289 34.592 61.997 1.00 23.80 N +ATOM 1609 C5 C A 74 10.992 34.103 64.260 1.00 25.11 C +ATOM 1610 C6 C A 74 11.922 34.333 65.198 1.00 27.20 C +ATOM 1611 P C A 75 12.571 38.702 69.319 1.00 40.57 P +ATOM 1612 OP1 C A 75 13.464 39.624 70.127 1.00 39.27 O +ATOM 1613 OP2 C A 75 11.342 38.325 70.078 1.00 36.25 O +ATOM 1614 O5' C A 75 12.255 39.365 67.897 1.00 31.83 O +ATOM 1615 C5' C A 75 11.335 40.495 67.913 1.00 27.55 C +ATOM 1616 C4' C A 75 11.006 40.805 66.458 1.00 26.80 C +ATOM 1617 O4' C A 75 11.309 39.674 65.666 1.00 24.35 O +ATOM 1618 C3' C A 75 9.537 41.102 66.183 1.00 28.28 C +ATOM 1619 O3' C A 75 9.134 42.440 66.458 0.70 29.36 O +ATOM 1620 C2' C A 75 9.437 40.771 64.697 1.00 26.31 C +ATOM 1621 O2' C A 75 9.906 41.912 64.002 1.00 28.50 O +ATOM 1622 C1' C A 75 10.393 39.590 64.567 1.00 24.36 C +ATOM 1623 N1 C A 75 9.597 38.353 64.567 1.00 21.37 N +ATOM 1624 C2 C A 75 8.867 38.095 63.403 1.00 25.62 C +ATOM 1625 O2 C A 75 8.900 38.870 62.450 1.00 27.04 O +ATOM 1626 N3 C A 75 8.114 36.953 63.371 1.00 25.19 N +ATOM 1627 C4 C A 75 8.071 36.088 64.422 1.00 24.44 C +ATOM 1628 N4 C A 75 7.315 34.991 64.309 1.00 24.63 N +ATOM 1629 C5 C A 75 8.821 36.357 65.585 1.00 24.16 C +ATOM 1630 C6 C A 75 9.553 37.487 65.618 1.00 23.86 C +ATOM 1631 P A A 76 9.487 43.244 67.800 0.70 29.71 P +ATOM 1632 OP1 A A 76 9.333 42.356 68.996 0.70 33.40 O +ATOM 1633 OP2 A A 76 8.507 44.369 67.816 0.70 33.05 O +ATOM 1634 O5' A A 76 10.989 43.722 67.606 0.70 35.56 O +ATOM 1635 C5' A A 76 12.058 43.211 68.430 0.62 37.62 C +ATOM 1636 C4' A A 76 13.161 44.251 68.414 0.62 39.32 C +ATOM 1637 O4' A A 76 12.615 45.527 68.705 0.62 39.53 O +ATOM 1638 C3' A A 76 14.267 44.048 69.448 0.62 40.32 C +ATOM 1639 O3' A A 76 15.253 43.098 69.044 0.62 41.15 O +ATOM 1640 C2' A A 76 14.826 45.465 69.577 0.62 40.57 C +ATOM 1641 O2' A A 76 15.709 45.667 68.478 0.62 39.29 O +ATOM 1642 C1' A A 76 13.580 46.308 69.416 0.62 40.91 C +ATOM 1643 N9 A A 76 13.071 46.708 70.741 0.35 42.10 N +ATOM 1644 C8 A A 76 13.727 47.365 71.759 0.35 42.72 C +ATOM 1645 N7 A A 76 12.991 47.579 72.810 0.35 43.75 N +ATOM 1646 C5 A A 76 11.762 47.022 72.487 0.35 43.24 C +ATOM 1647 C6 A A 76 10.549 46.927 73.214 0.35 44.11 C +ATOM 1648 N6 A A 76 10.379 47.399 74.442 0.35 44.46 N +ATOM 1649 N1 A A 76 9.527 46.297 72.551 0.35 44.29 N +ATOM 1650 C2 A A 76 9.683 45.802 71.291 0.35 43.56 C +ATOM 1651 N3 A A 76 10.792 45.859 70.563 0.35 43.16 N +ATOM 1652 C4 A A 76 11.795 46.483 71.226 0.35 42.87 C Added: SwiftApps/modFTDock/app/Scoring/build1 =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/build1 ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: SwiftApps/modFTDock/app/Scoring/distances300r.exe =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/distances300r.exe ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: SwiftApps/modFTDock/app/Scoring/eval300.exe =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/eval300.exe ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: SwiftApps/modFTDock/app/Scoring/modmerge =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/modmerge ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: SwiftApps/modFTDock/app/Scoring/run_short.bat =================================================================== --- SwiftApps/modFTDock/app/Scoring/run_short.bat (rev 0) +++ SwiftApps/modFTDock/app/Scoring/run_short.bat 2011-12-02 20:56:36 UTC (rev 5337) @@ -0,0 +1,12 @@ +#!/bin/bash + +# destroy results files +rm 2RNK.dat 2RNK.res.gz + +# prepare DAT files +tar xvf some_dat.tar +rm 2RNK_0{1,2,3,4,5,6,7,8,9}?.dat +rm 2RNK_00{1,2,3,4,5,6,7,8,9}.dat + +# make the run +time ./scoredat.bat 2RNK Property changes on: SwiftApps/modFTDock/app/Scoring/run_short.bat ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modFTDock/app/Scoring/run_test.bat =================================================================== --- SwiftApps/modFTDock/app/Scoring/run_test.bat (rev 0) +++ SwiftApps/modFTDock/app/Scoring/run_test.bat 2011-12-02 20:56:36 UTC (rev 5337) @@ -0,0 +1,10 @@ +#!/bin/bash + +# destroy results files +rm 2RNK.dat 2RNK.res.gz + +# prepare DAT files +tar xvf some_dat.tar + +# make the run +time ./scoredat.bat 2RNK Property changes on: SwiftApps/modFTDock/app/Scoring/run_test.bat ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modFTDock/app/Scoring/scoredat.bat =================================================================== --- SwiftApps/modFTDock/app/Scoring/scoredat.bat (rev 0) +++ SwiftApps/modFTDock/app/Scoring/scoredat.bat 2011-12-02 20:56:36 UTC (rev 5337) @@ -0,0 +1,107 @@ +#!/bin/bash +#$ -S /bin/bash +#$ -j y + +##### IMPORTANT NOTICE ##### +# run only one instance per node +# as many would use the same files and crash one another... + +# * to run a test (takes > 1h): +# ./run_test.bat +# * to run a shorter test (about 1 minute): +# ./run_short.bat + +############################ + + + +## $1 is a protein : 1jos-A +## qsub -cwd -pe threaded 3 ~/Database/scoredat.bat 1jos-A +## for i in `ls ????-?_???.dat | cut -c 1-6 | sort | uniq`; do qsub -cwd -pe threaded 3 ~/Database/scoredat.bat ${i}; done + +## NB we use "-pe threaded 3" because nodes on godzilla have 4-cores +## hence prevents more than 2 of these to run on same node + + + +################################################## +# prolog +# + +echo "" +## useful to know which computer did the job! +uname -a +echo "processing res file for: " ${1} + + + +################################################## +# make local copies for executables/data +# because they are used extensively + +for fullpath in ./build1 ./scoredat.exe ./distances300r.exe ./eval300.exe ./tRNA_score.exe +do + + myfile="${fullpath##*/}" + mydir="${fullpath:0:${#fullpath} - ${#filename}}" + +if [ ! -e /tmp/${myfile} ] || [ ${fullpath} -nt /tmp/${myfile} ] +then + # copy if file not there or if + # the source one is newer than the local copy + cp --verbose ${fullpath} /tmp/${myfile} +fi + +done + + + +################################################## +# merge .dat files into one +# + +if [ -e ${1}.dat ] +then + echo ${1} " already merged!" +else + ## proceed with computation + ## this is where the 100 dat files are + ## merged into 1 single large file + ls ${1}_???.dat | wc -l + ./modmerge ./ "${1}_???.dat" > ${1}.dat +fi +rm -f ${1}_???.dat + + + +################################################## +# make the .res file +# + +if [ -e ${1}.res.gz ] +then + echo ${1} " already resed!" +elif [ -e ${1}.dat ] +then + ## this will also reduce the nfsd traffic + ## copy over the local versions + + ## copy the DAT file + cp --verbose ${1}.dat /tmp/ + ## copy the static PDB file + cp --verbose `grep -h "Static molecule" ${1}*.dat | head -1 | awk '{print $4}'` /tmp/ + ## copy the mobile PDB file + cp --verbose `grep -h "Mobile molecule" ${1}*.dat | head -1 | awk '{print $4}'` /tmp/ + + ## proceed with computation + ## remember that all execs/data are local + echo "computing res file..." + /tmp/scoredat.exe /tmp/distances300r.exe /tmp/eval300.exe /tmp/${1}.dat /tmp/tRNA_score.exe > /tmp/${1}.res + + gzip -9 /tmp/${1}.res + mv /tmp/${1}.res.gz ${1}.res.gz + echo "done with " ${1} + + ## cleanup + rm /tmp/${1}.dat +fi Property changes on: SwiftApps/modFTDock/app/Scoring/scoredat.bat ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modFTDock/app/Scoring/scoredat.exe =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/scoredat.exe ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: SwiftApps/modFTDock/app/Scoring/some_dat.tar =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/some_dat.tar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modFTDock/app/Scoring/tRNA_score.exe =================================================================== (Binary files differ) Property changes on: SwiftApps/modFTDock/app/Scoring/tRNA_score.exe ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream From davidk at ci.uchicago.edu Fri Dec 2 07:54:45 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 07:54:45 -0600 (CST) Subject: [Swift-commit] r5328 - in usertools: . swift-ec2-boot swift-ec2-boot/bin swift-ec2-boot/lib swift-ec2-boot/lib/python2.7 swift-ec2-boot/lib/python2.7/site-packages swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files swift-ec2-boot/lib/python2.7/site-p ackages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipe s swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.eg g/globus/provision/chef-files/cookbooks/galaxy/templates/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java swift-ec2-boot/lib/pyth on2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files /cookbooks/postgresql/templates swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates swift-ec2-boot/lib/py thon2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2 swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests Message-ID: <20111202135445.D206B9CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 07:54:44 -0600 (Fri, 02 Dec 2011) New Revision: 5328 Added: usertools/swift-ec2-boot/ usertools/swift-ec2-boot/bin/ usertools/swift-ec2-boot/bin/bundle_image usertools/swift-ec2-boot/bin/cfadmin usertools/swift-ec2-boot/bin/cq usertools/swift-ec2-boot/bin/cwutil usertools/swift-ec2-boot/bin/elbadmin usertools/swift-ec2-boot/bin/fetch_file usertools/swift-ec2-boot/bin/gp-ec2-create-ami usertools/swift-ec2-boot/bin/gp-ec2-update-ami usertools/swift-ec2-boot/bin/gp-go-register-endpoints usertools/swift-ec2-boot/bin/gp-instance-add-host usertools/swift-ec2-boot/bin/gp-instance-add-user usertools/swift-ec2-boot/bin/gp-instance-create usertools/swift-ec2-boot/bin/gp-instance-describe usertools/swift-ec2-boot/bin/gp-instance-list usertools/swift-ec2-boot/bin/gp-instance-remove-hosts usertools/swift-ec2-boot/bin/gp-instance-remove-users usertools/swift-ec2-boot/bin/gp-instance-start usertools/swift-ec2-boot/bin/gp-instance-stop usertools/swift-ec2-boot/bin/gp-instance-terminate usertools/swift-ec2-boot/bin/gp-instance-update usertools/swift-ec2-boot/bin/kill_instance usertools/swift-ec2-boot/bin/launch_instance usertools/swift-ec2-boot/bin/list_instances usertools/swift-ec2-boot/bin/lss3 usertools/swift-ec2-boot/bin/pyami_sendmail usertools/swift-ec2-boot/bin/route53 usertools/swift-ec2-boot/bin/s3multiput usertools/swift-ec2-boot/bin/s3put usertools/swift-ec2-boot/bin/sdbadmin usertools/swift-ec2-boot/bin/taskadmin usertools/swift-ec2-boot/ec2.template.conf usertools/swift-ec2-boot/lib/ usertools/swift-ec2-boot/lib/python2.7/ usertools/swift-ec2-boot/lib/python2.7/site-packages/ usertools/swift-ec2-boot/lib/python2.7/site-packages/easy-install.pth usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/__init__.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py Log: Globus Provision EC2 utils Added: usertools/swift-ec2-boot/bin/bundle_image =================================================================== --- usertools/swift-ec2-boot/bin/bundle_image (rev 0) +++ usertools/swift-ec2-boot/bin/bundle_image 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','bundle_image' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'bundle_image') Property changes on: usertools/swift-ec2-boot/bin/bundle_image ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/cfadmin =================================================================== --- usertools/swift-ec2-boot/bin/cfadmin (rev 0) +++ usertools/swift-ec2-boot/bin/cfadmin 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','cfadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'cfadmin') Property changes on: usertools/swift-ec2-boot/bin/cfadmin ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/cq =================================================================== --- usertools/swift-ec2-boot/bin/cq (rev 0) +++ usertools/swift-ec2-boot/bin/cq 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','cq' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'cq') Property changes on: usertools/swift-ec2-boot/bin/cq ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/cwutil =================================================================== --- usertools/swift-ec2-boot/bin/cwutil (rev 0) +++ usertools/swift-ec2-boot/bin/cwutil 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','cwutil' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'cwutil') Property changes on: usertools/swift-ec2-boot/bin/cwutil ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/elbadmin =================================================================== --- usertools/swift-ec2-boot/bin/elbadmin (rev 0) +++ usertools/swift-ec2-boot/bin/elbadmin 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','elbadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'elbadmin') Property changes on: usertools/swift-ec2-boot/bin/elbadmin ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/fetch_file =================================================================== --- usertools/swift-ec2-boot/bin/fetch_file (rev 0) +++ usertools/swift-ec2-boot/bin/fetch_file 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','fetch_file' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'fetch_file') Property changes on: usertools/swift-ec2-boot/bin/fetch_file ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-ec2-create-ami =================================================================== --- usertools/swift-ec2-boot/bin/gp-ec2-create-ami (rev 0) +++ usertools/swift-ec2-boot/bin/gp-ec2-create-ami 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-ec2-create-ami' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-ec2-create-ami')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-ec2-create-ami ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-ec2-update-ami =================================================================== --- usertools/swift-ec2-boot/bin/gp-ec2-update-ami (rev 0) +++ usertools/swift-ec2-boot/bin/gp-ec2-update-ami 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-ec2-update-ami' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-ec2-update-ami')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-ec2-update-ami ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-go-register-endpoints =================================================================== --- usertools/swift-ec2-boot/bin/gp-go-register-endpoints (rev 0) +++ usertools/swift-ec2-boot/bin/gp-go-register-endpoints 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-go-register-endpoints' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-go-register-endpoints')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-go-register-endpoints ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-add-host =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-add-host (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-add-host 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-add-host' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-add-host')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-add-host ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-add-user =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-add-user (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-add-user 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-add-user' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-add-user')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-add-user ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-create =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-create (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-create 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-create' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-create')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-create ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-describe =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-describe (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-describe 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-describe' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-describe')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-describe ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-list =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-list (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-list 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-list' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-list')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-list ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-remove-hosts =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-remove-hosts (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-remove-hosts 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-remove-hosts' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-remove-hosts')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-remove-hosts ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-remove-users =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-remove-users (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-remove-users 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-remove-users' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-remove-users')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-remove-users ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-start =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-start (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-start 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-start' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-start')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-start ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-stop =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-stop (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-stop 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-stop' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-stop')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-stop ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-terminate =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-terminate (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-terminate 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-terminate' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-terminate')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-terminate ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/gp-instance-update =================================================================== --- usertools/swift-ec2-boot/bin/gp-instance-update (rev 0) +++ usertools/swift-ec2-boot/bin/gp-instance-update 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-update' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-update')() + ) Property changes on: usertools/swift-ec2-boot/bin/gp-instance-update ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/kill_instance =================================================================== --- usertools/swift-ec2-boot/bin/kill_instance (rev 0) +++ usertools/swift-ec2-boot/bin/kill_instance 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','kill_instance' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'kill_instance') Property changes on: usertools/swift-ec2-boot/bin/kill_instance ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/launch_instance =================================================================== --- usertools/swift-ec2-boot/bin/launch_instance (rev 0) +++ usertools/swift-ec2-boot/bin/launch_instance 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','launch_instance' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'launch_instance') Property changes on: usertools/swift-ec2-boot/bin/launch_instance ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/list_instances =================================================================== --- usertools/swift-ec2-boot/bin/list_instances (rev 0) +++ usertools/swift-ec2-boot/bin/list_instances 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','list_instances' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'list_instances') Property changes on: usertools/swift-ec2-boot/bin/list_instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/lss3 =================================================================== --- usertools/swift-ec2-boot/bin/lss3 (rev 0) +++ usertools/swift-ec2-boot/bin/lss3 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','lss3' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'lss3') Property changes on: usertools/swift-ec2-boot/bin/lss3 ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/pyami_sendmail =================================================================== --- usertools/swift-ec2-boot/bin/pyami_sendmail (rev 0) +++ usertools/swift-ec2-boot/bin/pyami_sendmail 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','pyami_sendmail' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'pyami_sendmail') Property changes on: usertools/swift-ec2-boot/bin/pyami_sendmail ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/route53 =================================================================== --- usertools/swift-ec2-boot/bin/route53 (rev 0) +++ usertools/swift-ec2-boot/bin/route53 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','route53' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'route53') Property changes on: usertools/swift-ec2-boot/bin/route53 ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/s3multiput =================================================================== --- usertools/swift-ec2-boot/bin/s3multiput (rev 0) +++ usertools/swift-ec2-boot/bin/s3multiput 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','s3multiput' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 's3multiput') Property changes on: usertools/swift-ec2-boot/bin/s3multiput ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/s3put =================================================================== --- usertools/swift-ec2-boot/bin/s3put (rev 0) +++ usertools/swift-ec2-boot/bin/s3put 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','s3put' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 's3put') Property changes on: usertools/swift-ec2-boot/bin/s3put ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/sdbadmin =================================================================== --- usertools/swift-ec2-boot/bin/sdbadmin (rev 0) +++ usertools/swift-ec2-boot/bin/sdbadmin 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','sdbadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'sdbadmin') Property changes on: usertools/swift-ec2-boot/bin/sdbadmin ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/taskadmin =================================================================== --- usertools/swift-ec2-boot/bin/taskadmin (rev 0) +++ usertools/swift-ec2-boot/bin/taskadmin 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','taskadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'taskadmin') Property changes on: usertools/swift-ec2-boot/bin/taskadmin ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/ec2.template.conf =================================================================== --- usertools/swift-ec2-boot/ec2.template.conf (rev 0) +++ usertools/swift-ec2-boot/ec2.template.conf 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,17 @@ +[general] +domains: swift +deploy: ec2 + +[domain-swift] +users: swift +nfs-nis: yes +lrm: none +cluster-nodes: _CLUSTER-NODES_ + +[ec2] +ami: _AMI_ +instance-type: _INSTANCE-TYPE_ +keypair: _KEYPAIR_ +keyfile: _KEYFILE_ +username: ubuntu + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/easy-install.pth =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/easy-install.pth (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/easy-install.pth 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,7 @@ +import sys; sys.__plen = len(sys.path) +./globus_provision-0.3.2-py2.7.egg +/usr/local/lib/python2.7/dist-packages/globusonline_transfer_api_client-0.10.8-py2.7.egg +/usr/local/lib/python2.7/dist-packages/colorama-0.2.4-py2.7.egg +/usr/local/lib/python2.7/dist-packages/paramiko-1.7.7.1-py2.7.egg +/usr/local/lib/python2.7/dist-packages/boto-2.1.1-py2.7.egg +import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new) Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,20 @@ +Metadata-Version: 1.0 +Name: globus-provision +Version: 0.3.2 +Summary: A tool for deploying fully-configured Globus systems on Amazon EC2 +Home-page: http://globus.org/provision +Author: University of Chicago +Author-email: borja at cs.uchicago.edu +License: Apache Software License +Description: UNKNOWN +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: Intended Audience :: Education +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Programming Language :: Python +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: System :: Distributed Computing Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,206 @@ +README.TXT +distribute_setup.py +setup.cfg +setup.py +doc/Makefile +doc/arch.png +doc/changelog.rst +doc/cli_ref_top.rst +doc/conf.py +doc/config_ref_top.rst +doc/developer.rst +doc/docs.rst +doc/download.rst +doc/ec2.rst +doc/example_cluster.png +doc/example_mini_clusters.png +doc/figures.odg +doc/gen_ami_page.py +doc/gen_cli_doc.py +doc/gen_config_doc.py +doc/gen_recipe_doc.py +doc/gen_samples.py +doc/gen_topology_doc.py +doc/go.rst +doc/guide_autocomplete.rst +doc/guide_compute_go.rst +doc/guides.rst +doc/index.rst +doc/install.rst +doc/instance_operations.rst +doc/intro.rst +doc/intro_common.rst +doc/quickstart.rst +doc/recipe_ref_top.rst +doc/stopology_ref_top.rst +doc/support.rst +doc/topology.rst +doc/topology_ref_top.rst +doc/whatis.rst +doc/_static/logo.png +doc/_templates/layout.html +doc/_templates/quickstart.html +samples/dummy.conf +samples/ec2.conf +samples/go-condor-ec2.conf +samples/go-gridftp-ec2.conf +samples/simple-dummy.conf +samples/simple-ec2.conf +samples/single-gridftp-ec2.conf +scripts/gp-complete.sh +src/dg_paraproxy/WrapSock.py +src/dg_paraproxy/__init__.py +src/globus/__init__.py +src/globus/provision/__init__.py +src/globus/provision/chef-files/README.md +src/globus/provision/chef-files/cookbooks/apt/README.md +src/globus/provision/chef-files/cookbooks/apt/TODO.org +src/globus/provision/chef-files/cookbooks/apt/metadata.json +src/globus/provision/chef-files/cookbooks/apt/metadata.rb +src/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher +src/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf +src/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf +src/globus/provision/chef-files/cookbooks/apt/providers/repository.rb +src/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb +src/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb +src/globus/provision/chef-files/cookbooks/apt/recipes/default.rb +src/globus/provision/chef-files/cookbooks/apt/resources/repository.rb +src/globus/provision/chef-files/cookbooks/condor/README.rdoc +src/globus/provision/chef-files/cookbooks/condor/metadata.rb +src/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf +src/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb +src/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb +src/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb +src/globus/provision/chef-files/cookbooks/condor/recipes/default.rb +src/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb +src/globus/provision/chef-files/cookbooks/galaxy/README.rdoc +src/globus/provision/chef-files/cookbooks/galaxy/metadata.rb +src/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh +src/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init +src/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini +src/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini +src/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb +src/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb +src/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb +src/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb +src/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb +src/globus/provision/chef-files/cookbooks/globus/README.rdoc +src/globus/provision/chef-files/cookbooks/globus/metadata.rb +src/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 +src/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy +src/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert +src/globus/provision/chef-files/cookbooks/globus/files/default/anon.key +src/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 +src/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy +src/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert +src/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf +src/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config +src/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy +src/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/default.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb +src/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb +src/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb +src/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb +src/globus/provision/chef-files/cookbooks/java/README.md +src/globus/provision/chef-files/cookbooks/java/metadata.json +src/globus/provision/chef-files/cookbooks/java/metadata.rb +src/globus/provision/chef-files/cookbooks/java/attributes/default.rb +src/globus/provision/chef-files/cookbooks/java/files/default/java.seed +src/globus/provision/chef-files/cookbooks/java/recipes/default.rb +src/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb +src/globus/provision/chef-files/cookbooks/java/recipes/sun.rb +src/globus/provision/chef-files/cookbooks/postgresql/README.rdoc +src/globus/provision/chef-files/cookbooks/postgresql/metadata.json +src/globus/provision/chef-files/cookbooks/postgresql/metadata.rb +src/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb +src/globus/provision/chef-files/cookbooks/provision/README.rdoc +src/globus/provision/chef-files/cookbooks/provision/metadata.json +src/globus/provision/chef-files/cookbooks/provision/metadata.rb +src/globus/provision/chef-files/cookbooks/provision/attributes/default.rb +src/globus/provision/chef-files/cookbooks/provision/files/default/auto.master +src/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf +src/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common +src/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server +src/globus/provision/chef-files/cookbooks/provision/files/default/nis +src/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/default.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb +src/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb +src/globus/provision/chef-files/roles/README.md +src/globus/provision/chef-files/roles/domain-clusternode-condor.rb +src/globus/provision/chef-files/roles/domain-condor.rb +src/globus/provision/chef-files/roles/domain-gridftp-default.rb +src/globus/provision/chef-files/roles/domain-gridftp-gc.rb +src/globus/provision/chef-files/roles/domain-myproxy.rb +src/globus/provision/chef-files/roles/domain-nfsnis-client.rb +src/globus/provision/chef-files/roles/domain-nfsnis.rb +src/globus/provision/chef-files/roles/globus.rb +src/globus/provision/cli/__init__.py +src/globus/provision/cli/api.py +src/globus/provision/cli/ec2.py +src/globus/provision/cli/globusonline.py +src/globus/provision/common/__init__.py +src/globus/provision/common/certs.py +src/globus/provision/common/config.py +src/globus/provision/common/defaults.py +src/globus/provision/common/go_transfer.py +src/globus/provision/common/log.py +src/globus/provision/common/persistence.py +src/globus/provision/common/ssh.py +src/globus/provision/common/threads.py +src/globus/provision/common/utils.py +src/globus/provision/core/__init__.py +src/globus/provision/core/api.py +src/globus/provision/core/config.py +src/globus/provision/core/deploy.py +src/globus/provision/core/instance.py +src/globus/provision/core/topology.py +src/globus/provision/deploy/__init__.py +src/globus/provision/deploy/dummy/__init__.py +src/globus/provision/deploy/ec2/__init__.py +src/globus/provision/deploy/ec2/images.py +src/globus/provision/tests/__init__.py +src/globus/provision/tests/common.py +src/globus/provision/tests/test_samples.py +src/globus_provision.egg-info/PKG-INFO +src/globus_provision.egg-info/SOURCES.txt +src/globus_provision.egg-info/dependency_links.txt +src/globus_provision.egg-info/entry_points.txt +src/globus_provision.egg-info/not-zip-safe +src/globus_provision.egg-info/requires.txt +src/globus_provision.egg-info/top_level.txt +test/test_cli.py +test/test_mt.py \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1 @@ + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,16 @@ +[console_scripts] +gp-ec2-create-ami = globus.provision.cli.ec2:gp_ec2_create_ami_func +gp-instance-add-user = globus.provision.cli.api:gp_instance_add_user_func +gp-go-register-endpoints = globus.provision.cli.globusonline:gp_go_register_endpoints_func +gp-instance-remove-hosts = globus.provision.cli.api:gp_instance_remove_hosts_func +gp-instance-add-host = globus.provision.cli.api:gp_instance_add_host_func +gp-instance-remove-users = globus.provision.cli.api:gp_instance_remove_users_func +gp-instance-create = globus.provision.cli.api:gp_instance_create_func +gp-instance-describe = globus.provision.cli.api:gp_instance_describe_func +gp-instance-list = globus.provision.cli.api:gp_instance_list_func +gp-instance-update = globus.provision.cli.api:gp_instance_update_func +gp-instance-start = globus.provision.cli.api:gp_instance_start_func +gp-ec2-update-ami = globus.provision.cli.ec2:gp_ec2_update_ami_func +gp-instance-terminate = globus.provision.cli.api:gp_instance_terminate_func +gp-instance-stop = globus.provision.cli.api:gp_instance_stop_func + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1 @@ + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +boto>=2.0 +paramiko>=1.7.7.1 +colorama>=0.2.4 +pyOpenSSL>=0.10 +globusonline-transfer-api-client>=0.10.7 \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1 @@ +globus Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,15 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,29 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Globus Provision is a tool for deploying fully-configured Globus systems on Amazon EC2 + +See http://globus.org/provision/ for more details +""" + +VERSION="0.3" +RELEASE="0.3.2" +AMI={"us-east-1": + {"32-bit": "ami-4f35f826", + "64-bit": "ami-375d905e", + "HVM": "ami-0b5d9062"} + } Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,8 @@ +Globus Provision Chef Cookbooks +=============================== + +These are the `Chef `_ cookbooks for the +`Globus Provision `_ project. These cookbooks +are not meant to be used on their own. Please refer to the Globus Provision +documentation for instructions on how to deploy and configure a Globus +system using these cookbooks. \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,109 @@ +Description +=========== + +Configures various APT components on Debian-like systems. Also includes a LWRP. + +Recipes +======= + +default +------- +The default recipe runs apt-get update during the Compile Phase of the Chef run to ensure that the system's package cache is updated with the latest. It is recommended that this recipe appear first in a node's run list (directly or through a role) to ensure that when installing packages, Chef will be able to download the latest version available on the remote APT repository. + +This recipe also sets up a local cache directory for preseeding packages. + +cacher +------ +Installs the apt-cacher package and service so the system can provide APT caching. You can check the usage report at http://{hostname}:3142/report. The cacher recipe includes the `cacher-client` recipe, so it helps seed itself. + +cacher-client +------------- +Configures the node to use the apt-cacher server as a client. + +Resources/Providers +=================== + +This LWRP provides an easy way to manage additional APT repositories. + +# Actions + +- :add: creates a repository file and builds the repository listing +- :remove: removes the repository file + +# Attribute Parameters + +- repo_name: name attribute. The name of the channel to discover +- uri: the base of the Debian distribution +- distribution: this is usually your release's codename...ie something like `karmic`, `lucid` or `maverick` +- components: package groupings..when it doubt use `main` +- deb_src: whether or not to add the repository as a source repo as well +- key_server: the GPG keyserver where the key for the repo should be retrieved +- key: if a `key_server` is provided, this is assumed to be the fingerprint, otherwise it is the URI to the GPG key for the repo + +# Example + + # add the Zenoss repo + apt_repository "zenoss" do + uri "http://dev.zenoss.org/deb" + components ["main","stable"] + action :add + end + + # add the Nginx PPA; grab key from keyserver + apt_repository "nginx-php" do + uri "http://ppa.launchpad.net/nginx/php5/ubuntu" + distribution node['lsb']['codename'] + components ["main"] + keyserver "keyserver.ubuntu.com" + key "C300EE8C" + action :add + end + + # add the Cloudkick Repo + apt_repository "cloudkick" do + uri "http://packages.cloudkick.com/ubuntu" + distribution node['lsb']['codename'] + components ["main"] + key "http://packages.cloudkick.com/cloudkick.packages.key" + action :add + end + + # remove Zenoss repo + apt_repository "zenoss" do + action :remove + end + +Usage +===== + +Put `recipe[apt]` first in the run list. If you have other recipes that you want to use to configure how apt behaves, like new sources, notify the execute resource to run, e.g.: + + template "/etc/apt/sources.list.d/my_apt_sources.list" do + notifies :run, resources(:execute => "apt-get update"), :immediately + end + +The above will run during execution phase since it is a normal template resource, and should appear before other package resources that need the sources in the template. + +Put `recipe[apt::cacher]` in the run_list for a server to provide APT caching and add `recipe[apt::cacher-client]` on the rest of the Debian-based nodes to take advantage of the caching server. + +License and Author +================== + +Author:: Joshua Timberman () +Author:: Matt Ray () +Author:: Seth Chisamore () + +Copyright 2009-2011 Opscode, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,3 @@ +* remove proxy from /etc/apt/apt.conf if it's listed (from preseed install) +* check contents of /etc/apt/apt.conf.d/01proxy +* investigate apt-cacher-ng Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,9 @@ +# apt-cacher startup configuration file + +# IMPORTANT: check the apt-cacher.conf file before using apt-cacher as daemon. + +# set to 1 to start the daemon at boot time +AUTOSTART=1 + +# extra settings to override the ones in apt-cacher.conf +# EXTRAOPT=" daemon_port=3142 limit=30 " Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,144 @@ +# This file has been modified by ./apt-proxy-to-apt-cacher +# Some lines may have been appended at the bottom of this file +# This file has been modified by /usr/share/apt-cacher/apt-proxy-to-apt-cacher +# Some lines may have been appended at the bottom of this file +################################################################# +# This is the config file for apt-cacher. On most Debian systems +# you can safely leave the defaults alone. +################################################################# + +# cache_dir is used to set the location of the local cache. This can +# become quite large, so make sure it is somewhere with plenty of space. +cache_dir=/var/cache/apt-cacher + +# The email address of the administrator is displayed in the info page +# and traffic reports. +admin_email=root at localhost + +# For the daemon startup settings please edit the file /etc/default/apt-cacher. + +# Daemon port setting, only useful in stand-alone mode. You need to run the +# daemon as root to use privileged ports (<1024). +daemon_port = 3142 + +# optional settings, user and group to run the daemon as. Make sure they have +# sufficient permissions on the cache and log directories. Comment the settings +# to run apt-cacher as the native user. +group=www-data +user=www-data + +# optional setting, binds the listening daemon to one specified IP. Use IP +# ranges for more advanced configuration, see below. +# daemon_addr=localhost + +# If your apt-cacher machine is directly exposed to the Internet and you are +# worried about unauthorised machines fetching packages through it, you can +# specify a list of IPv4 addresses which are allowed to use it and another +# list of IPv4 addresses which aren't. +# Localhost (127.0.0.1) is always allowed. Other addresses must be matched +# by allowed_hosts and not by denied_hosts to be permitted to use the cache. +# Setting allowed_hosts to "*" means "allow all". +# Otherwise the format is a comma-separated list containing addresses, +# optionally with masks (like 10.0.0.0/22), or ranges of addresses (two +# addresses separated by a hyphen, no masks, like '192.168.0.3-192.168.0.56'). +allowed_hosts=* +denied_hosts= + +# And similiarly for IPv6 with allowed_hosts_6 and denied_hosts_6. +# Note that IPv4-mapped IPv6 addresses (::ffff:w.x.y.z) are truncated to +# w.x.y.z and are handled as IPv4. +allowed_hosts_6=fec0::/16 +denied_hosts_6= + +# This thing can be done by Apache but is much simplier here - limit access to +# Debian mirrors based on server names in the URLs +#allowed_locations=ftp.uni-kl.de,ftp.nerim.net,debian.tu-bs.de + +# Apt-cacher can generate usage reports every 24 hours if you set this +# directive to 1. You can view the reports in a web browser by pointing +# to your cache machine with '/apt-cacher/report' on the end, like this: +# http://yourcache.example.com/apt-cacher/report +# Generating reports is very fast even with many thousands of logfile +# lines, so you can safely turn this on without creating much +# additional system load. +generate_reports=1 + +# Apt-cacher can clean up its cache directory every 24 hours if you set +# this directive to 1. Cleaning the cache can take some time to run +# (generally in the order of a few minutes) and removes all package +# files that are not mentioned in any existing 'Packages' lists. This +# has the effect of deleting packages that have been superseded by an +# updated 'Packages' list. +clean_cache=1 + +# The directory to use for apt-cacher access and error logs. +# The access log records every request in the format: +# date-time|client ip address|HIT/MISS/EXPIRED|object size|object name +# The error log is slightly more free-form, and is also used for debug +# messages if debug mode is turned on. +# Note that the old 'logfile' and 'errorfile' directives are +# deprecated: if you set them explicitly they will be honoured, but it's +# better to just get rid of them from old config files. +logdir=/var/log/apt-cacher + +# apt-cacher can use different methods to decide whether package lists need to +# be updated, +# A) looking at the age of the cached files +# B) getting HTTP header from server and comparing that with cached data. This +# method is more reliable and avoids desynchronisation of data and index files +# but needs to transfer few bytes from the server every time somebody requests +# the files ("apt-get update") +# Set the following value to the maximum age (in hours) for method A or to 0 +# for method B +expire_hours=0 + +# Apt-cacher can pass all its requests to an external http proxy like +# Squid, which could be very useful if you are using an ISP that blocks +# port 80 and requires all web traffic to go through its proxy. The +# format is 'hostname:port', eg: 'proxy.example.com:8080'. +http_proxy=proxy.example.com:8080 + +# Use of an external proxy can be turned on or off with this flag. +# Value should be either 0 (off) or 1 (on). +use_proxy=0 + +# External http proxy sometimes need authentication to get full access. The +# format is 'username:password'. +http_proxy_auth=proxyuser:proxypass + +# Use of external proxy authentication can be turned on or off with this flag. +# Value should be either 0 (off) or 1 (on). +use_proxy_auth=0 + +# Rate limiting sets the maximum bandwidth in bytes per second to use +# for fetching packages. Syntax is fully defined in 'man wget'. +# Use 'k' or 'm' to use kilobits or megabits / second: eg, 'limit=25k'. +# Use 0 or a negative value for no rate limiting. +limit=0 + +# Debug mode makes apt-cacher spew a lot of extra debug junk to the +# error log (whose location is defined with the 'logdir' directive). +# Leave this off unless you need it, or your error log will get very +# big. Acceptable values are 0 or 1. +debug=0 + +# Adapt the line in the usage info web page to match your server configuration +# example_sources_line=deb http://my.cacher.server:3142/ftp.au.debian.org/debian unstable main contrib non-free + +# Print a 410 (Gone) HTTP message with the specified text when accessed via +# CGI. Useful to tell users to adapt their sources.list files when the +# apt-cacher server is beeing relocated (via apt-get's error messages while +# running "update") +#cgi_advise_to_use = Please use http://cacheserver:3142/ as apt-cacher access URL +#cgi_advise_to_use = Server relocated. To change sources.list, run perl -pe "s,/apt-cacher\??,:3142," -i /etc/apt/sources.list + +# Server mapping - this allows to hide real server names behind virtual paths +# that appear in the access URL. This method is known from apt-proxy. This is +# also the only method to use FTP access to the target hosts. The syntax is simple, the part of the beginning to replace, followed by a list of mirror urls, all space separated. Multiple profile are separated by semicolons +# path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ; security security.debian.org/debian-security ftp2.de.debian.org/debian-security +# Note that you need to specify all target servers in the allowed_locations +# options if you make use of it. Also note that the paths should not overlap +# each other. FTP access method not supported yet, maybe in the future. + +# extra setting from apt-proxy configuration +path_map = ubuntu us.archive.ubuntu.com/ubuntu ; ubuntu-security security.ubuntu.com/ubuntu ; debian debian.osuosl.org/debian/ ; security security.debian.org/debian-security Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,50 @@ +[DEFAULT] +;; All times are in seconds, but you can add a suffix +;; for minutes(m), hours(h) or days(d) + +;; commented out address so apt-proxy will listen on all IPs +;; address = 127.0.0.1 +port = 9999 +cache_dir = /var/cache/apt-proxy + +;; Control files (Packages/Sources/Contents) refresh rate +min_refresh_delay = 1s +complete_clientless_downloads = 1 + +;; Debugging settings. +debug = all:4 db:0 + +time = 30 +passive_ftp = on + +;;-------------------------------------------------------------- +;; Cache housekeeping + +cleanup_freq = 1d +max_age = 120d +max_versions = 3 + +;;--------------------------------------------------------------- +;; Backend servers +;; +;; Place each server in its own [section] + +[ubuntu] +; Ubuntu archive +backends = + http://us.archive.ubuntu.com/ubuntu + +[ubuntu-security] +; Ubuntu security updates +backends = http://security.ubuntu.com/ubuntu + +[debian] +;; Backend servers, in order of preference +backends = + http://debian.osuosl.org/debian/ + +[security] +;; Debian security archive +backends = + http://security.debian.org/debian-security + http://ftp2.de.debian.org/debian-security Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,34 @@ +{ + "dependencies": { + }, + "name": "apt", + "maintainer_email": "cookbooks at opscode.com", + "attributes": { + }, + "license": "Apache 2.0", + "suggestions": { + }, + "platforms": { + "debian": ">= 0.0.0", + "ubuntu": ">= 0.0.0" + }, + "maintainer": "Opscode, Inc.", + "long_description": "Description\n===========\n\nConfigures various APT components on Debian-like systems. Also includes a LWRP.\n\nRecipes\n=======\n\ndefault\n-------\nThe default recipe runs apt-get update during the Compile Phase of the Chef run to ensure that the system's package cache is updated with the latest. It is recommended that this recipe appear first in a node's run list (directly or through a role) to ensure that when installing packages, Chef will be able to download the latest version available on the remote APT repository.\n\nThis recipe also sets up a local cache directory for preseeding packages.\n\ncacher\n------\nInstalls the apt-cacher package and service so the system can provide APT caching. You can check the usage report at http://{hostname}:3142/report. The cacher recipe includes the `cacher-client` recipe, so it helps seed itself.\n\ncacher-client\n-------------\nConfigures the node to use the apt-cacher server as a client.\n\nResources/Provid ers\n===================\n\nThis LWRP provides an easy way to manage additional APT repositories.\n\n# Actions\n\n- :add: creates a repository file and builds the repository listing\n- :remove: removes the repository file\n\n# Attribute Parameters\n\n- repo_name: name attribute. The name of the channel to discover\n- uri: the base of the Debian distribution\n- distribution: this is usually your release's codename...ie something like `karmic`, `lucid` or `maverick`\n- components: package groupings..when it doubt use `main`\n- deb_src: whether or not to add the repository as a source repo as well\n- key_server: the GPG keyserver where the key for the repo should be retrieved\n- key: if a `key_server` is provided, this is assumed to be the fingerprint, otherwise it is the URI to the GPG key for the repo\n\n# Example\n\n # add the Zenoss repo\n apt_repository \"zenoss\" do\n uri \"http://dev.zenoss.org/deb\"\n components [\"main\",\"stable\"]\n action :add\n end\n \n # add the Nginx PPA; grab key from keyserver\n apt_repository \"nginx-php\" do\n uri \"http://ppa.launchpad.net/nginx/php5/ubuntu\"\n distribution node['lsb']['codename']\n components [\"main\"]\n keyserver \"keyserver.ubuntu.com\"\n key \"C300EE8C\"\n action :add\n end\n \n # add the Cloudkick Repo\n apt_repository \"cloudkick\" do\n uri \"http://packages.cloudkick.com/ubuntu\"\n distribution node['lsb']['codename']\n components [\"main\"]\n key \"http://packages.cloudkick.com/cloudkick.packages.key\"\n action :add\n end\n \n # remove Zenoss repo\n apt_repository \"zenoss\" do\n action :remove\n end\n \nUsage\n=====\n\nPut `recipe[apt]` first in the run list. If you have other recipes that you want to use to configure how apt behaves, like new sources, notify the execute resource to run, e.g.:\n\n template \"/etc/apt/sources.list.d/my_apt_sources.list\" do\n notifies :run, resources(:execute => \"apt-get update\"), :immediately\n end\n\nThe above will run during execution phase since it is a normal template resource, and should appear before other package resources that need the sources in the template.\n\nPut `recipe[apt::cacher]` in the run_list for a server to provide APT caching and add `recipe[apt::cacher-client]` on the rest of the Debian-based nodes to take advantage of the caching server.\n\nLicense and Author\n==================\n\nAuthor:: Joshua Timberman ()\nAuthor:: Matt Ray ()\nAuthor:: Seth Chisamore ()\n\nCopyright 2009-2011 Opscode, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n", + "version": "1.1.2", + "recommendations": { + }, + "recipes": { + "apt": "Runs apt-get update during compile phase and sets up preseed directories", + "apt::cacher-client": "Client for the apt::cacher server", + "apt::cacher": "Set up an APT cache" + }, + "groupings": { + }, + "conflicting": { + }, + "replacing": { + }, + "description": "Configures apt and apt services and an LWRP for managing apt repositories", + "providing": { + } +} \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,13 @@ +maintainer "Opscode, Inc." +maintainer_email "cookbooks at opscode.com" +license "Apache 2.0" +description "Configures apt and apt services and an LWRP for managing apt repositories" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version "1.1.2" +recipe "apt", "Runs apt-get update during compile phase and sets up preseed directories" +recipe "apt::cacher", "Set up an APT cache" +recipe "apt::cacher-client", "Client for the apt::cacher server" + +%w{ ubuntu debian }.each do |os| + supports os +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,72 @@ +# +# Cookbook Name:: apt +# Provider:: repository +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +action :add do + unless ::File.exists?("/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list") + Chef::Log.info "Adding #{new_resource.repo_name} repository to /etc/apt/sources.list.d/#{new_resource.repo_name}-source.list" + # add key + if new_resource.keyserver && new_resource.key + execute "install-key #{new_resource.key}" do + command "apt-key adv --keyserver #{new_resource.keyserver} --recv #{new_resource.key}" + action :nothing + end.run_action(:run) + elsif new_resource.key && (new_resource.key =~ /http/) + key_name = new_resource.key.split(/\//).last + remote_file "#{Chef::Config[:file_cache_path]}/#{key_name}" do + source new_resource.key + mode "0644" + action :nothing + end.run_action(:create_if_missing) + execute "install-key #{key_name}" do + command "apt-key add #{Chef::Config[:file_cache_path]}/#{key_name}" + action :nothing + end.run_action(:run) + end + # build our listing + repository = "deb" + repository = "deb-src" if new_resource.deb_src + repository = "# Created by the Chef apt_repository LWRP\n" + repository + repository += " #{new_resource.uri}" + repository += " #{new_resource.distribution}" + new_resource.components.each {|component| repository += " #{component}"} + # write out the file, replace it if it already exists + file "/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list" do + owner "root" + group "root" + mode 0644 + content repository + "\n" + action :nothing + end.run_action(:create) + execute "update package index" do + command "apt-get update" + action :nothing + end.run_action(:run) + new_resource.updated_by_last_action(true) + end +end + +action :remove do + if ::File.exists?("/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list") + Chef::Log.info "Removing #{new_resource.repo_name} repository from /etc/apt/sources.list.d/" + file "/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list" do + action :delete + end + new_resource.updated_by_last_action(true) + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,44 @@ +# +# Cookbook Name:: apt +# Recipe:: cacher-client +# +# Copyright 2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +#remove Acquire::http::Proxy lines from /etc/apt/apt.conf since we use 01proxy +#these are leftover from preseed installs +execute "Remove proxy from /etc/apt/apt.conf" do + command "sed --in-place '/^Acquire::http::Proxy/d' /etc/apt/apt.conf" + only_if "grep Acquire::http::Proxy /etc/apt/apt.conf" +end + +servers = search(:node, 'recipes:apt\:\:cacher') || [] +if servers.length > 0 + Chef::Log.info("apt-cacher server found on #{servers[0]}.") + proxy = "Acquire::http::Proxy \"http://#{servers[0].ipaddress}:3142\";\n" + file "/etc/apt/apt.conf.d/01proxy" do + owner "root" + group "root" + mode "0644" + content proxy + action :create + end +else + Chef::Log.info("No apt-cacher server found.") + file "/etc/apt/apt.conf.d/01proxy" do + action :delete + only_if {File.exists?("/etc/apt/apt.conf.d/01proxy")} + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,45 @@ +# +# Cookbook Name:: apt +# Recipe:: cacher +# +# Copyright 2008-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +package "apt-cacher" do + action :install +end + +service "apt-cacher" do + supports :restart => true, :status => false + action [ :enable, :start ] +end + +cookbook_file "/etc/apt-cacher/apt-cacher.conf" do + source "apt-cacher.conf" + owner "root" + group "root" + mode 0644 + notifies :restart, resources(:service => "apt-cacher") +end + +cookbook_file "/etc/default/apt-cacher" do + source "apt-cacher" + owner "root" + group "root" + mode 0644 + notifies :restart, resources(:service => "apt-cacher") +end + +#this will help seed the proxy +include_recipe "apt::cacher-client" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,33 @@ +# +# Cookbook Name:: apt +# Recipe:: default +# +# Copyright 2008-2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +e = execute "apt-get update" do + action :nothing +end + +e.run_action(:run) + +%w{/var/cache/local /var/cache/local/preseeding}.each do |dirname| + directory dirname do + owner "root" + group "root" + mode 0755 + action :create + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,30 @@ +# +# Cookbook Name:: apt +# Resource:: repository +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +actions :add, :remove + +#name of the repo, used for source.list filename +attribute :repo_name, :kind_of => String, :name_attribute => true +attribute :uri, :kind_of => String +attribute :distribution, :kind_of => String +attribute :components, :kind_of => Array, :default => [] +#whether or not to add the repository as a source repo as well +attribute :deb_src, :default => false +attribute :keyserver, :kind_of => String, :default => nil +attribute :key, :kind_of => String, :default => nil Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,9 @@ +description "Create Condor run directory" + +start on filesystem + +task +script + mkdir -p /var/run/condor + chown condor.condor /var/run/condor +end script Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures condor" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,54 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Condor common actions +## +## This recipe is a dependency of ``condor_head`` and ``condor_worker``, which will set +## up a Condor head node or worker node. This recipe handles all the actions +## that are common to both. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +case node.platform +when "ubuntu" + + cookbook_file "/etc/init/condor-dir.conf" do + source "condor-dir.conf" + mode 0644 + owner "root" + group "root" + end + +end + +apt_repository "condor" do + uri "http://www.cs.wisc.edu/condor/debian/stable/" + distribution "lenny" + components ["contrib"] + action :add +end + +package "condor" do + action :install + options "--force-yes" +end + +execute "update-rc.d condor defaults" do + user "root" + group "root" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Condor head node +## +## Set up a Condor head node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] + +# The "condor" recipe handles actions that are common to +# both head and worker nodes. +include_recipe "condor::condor" + + +# The lrm_head attribute is part of the generated topology.rb file, +# and contains the FQDN of the head node. +server = gp_domain[:lrm_head] + + +# Domain (used by Condor for authorization). +# This should eventually be included in the topology. +domain = server[server.index(".")+1, server.length] + + +# Create the local configuration file. +template "/etc/condor/condor_config.local" do + source "condor_config.erb" + mode 0644 + owner "condor" + group "condor" + variables( + :server => server, + :domain => domain, + :daemons => "COLLECTOR, MASTER, NEGOTIATOR, SCHEDD" + ) + notifies :restart, "service[condor]" +end + +service "condor" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,57 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Condor worker node +## +## Set up a Condor worker node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] + +# The "condor" recipe handles actions that are common to +# both head and worker nodes. +include_recipe "condor::condor" + + +# The lrm_head attribute is part of the generated topology.rb file, +# and contains the FQDN of the head node. +server = gp_domain[:lrm_head] + + +# Domain (used by Condor for authorization). +# This should eventually be included in the topology. +domain = server[server.index(".")+1, server.length] + + +# Create the local configuration file. +template "/etc/condor/condor_config.local" do + source "condor_config.erb" + mode 0644 + owner "condor" + group "condor" + variables( + :server => server, + :domain => domain, + :daemons => "MASTER, STARTD" + ) + notifies :restart, "service[condor]" +end + +service "condor" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# RECIPE: Default recipe. +# +# This cookbook has no default recipe. +# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,49 @@ +## What machine is your central manager? + +CONDOR_HOST = <%= @server %> + + +## Internet domain of machines sharing a common UID space. + +UID_DOMAIN = <%= @domain %> + + +## Internet domain of machines sharing a common file system. + +FILESYSTEM_DOMAIN = <%= @domain %> + + +## Pool's short description + +COLLECTOR_NAME = DemoGrid Condor Pool + + +## When is this machine willing to start a job? + +START = TRUE + + +## When to suspend a job? + +SUSPEND = FALSE + + +## When to nicely stop a job? +## (as opposed to killing it instantaneously) + +PREEMPT = FALSE + + +## When to instantaneously kill a preempting job +## (e.g. if a job is in the pre-empting stage for too long) + +KILL = FALSE + + +## This macro determines what daemons the condor_master will start and keep its watchful eyes on. +## The list is a comma or space separated list of subsystem names + +DAEMON_LIST = <%= @daemons %> + +ALLOW_READ = *.<%= @domain %>, 127.0.* +ALLOW_WRITE = *.<%= @domain %>, 127.0.* Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,46 @@ +#!/bin/sh + +cd `dirname $0` + +python ./scripts/check_python.py +[ $? -ne 0 ] && exit 1 + +SAMPLES=" + external_service_types_conf.xml.sample + datatypes_conf.xml.sample + reports_wsgi.ini.sample + tool_conf.xml.sample + tool_data_table_conf.xml.sample + universe_wsgi.ini.sample + tool-data/shared/ucsc/builds.txt.sample + tool-data/*.sample + static/welcome.html.sample +" + +# Create any missing config/location files +for sample in $SAMPLES; do + file=`echo $sample | sed -e 's/\.sample$//'` + if [ ! -f "$file" -a -f "$sample" ]; then + echo "Initializing $file from `basename $sample`" + cp $sample $file + fi +done + +# explicitly attempt to fetch eggs before running +FETCH_EGGS=1 +for arg in "$@"; do + [ "$arg" = "--stop-daemon" ] && FETCH_EGGS=0; break +done +if [ $FETCH_EGGS -eq 1 ]; then + python ./scripts/check_eggs.py quiet + if [ $? -ne 0 ]; then + echo "Some eggs are out of date, attempting to fetch..." + python ./scripts/fetch_eggs.py + if [ $? -eq 0 ]; then + echo "Fetch successful." + else + echo "Fetch failed." + exit 1 + fi + fi +fi Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,55 @@ +#!/bin/bash + +# Author: James Casbon, 2009 + +### BEGIN INIT INFO +# Provides: galaxy +# Required-Start: $network $local_fs $mysql +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Galaxy +### END INIT INFO + +. /lib/lsb/init-functions + +USER="galaxy" +GROUP="galaxy" +DIR="/nfs/software/galaxy/" +PYTHON="/usr/bin/python" +OPTS="-ES ./scripts/paster.py serve --log-file /nfs/home/galaxy/galaxy.log universe_wsgi.ini" +PIDFILE="/var/run/galaxy.pid" + +case "${1:-''}" in + 'start') + log_daemon_msg "Starting Galaxy" + if start-stop-daemon --chuid $USER --group $GROUP --start --make-pidfile \ + --pidfile $PIDFILE --background --chdir $DIR --exec $PYTHON -- $OPTS; then + log_end_msg 0 + else + log_end_msg 1 + fi + + ;; + 'stop') + log_daemon_msg "Stopping Galaxy" + if start-stop-daemon --stop --pidfile $PIDFILE; then + log_end_msg 0 + else + log_end_msg 1 + fi + ;; + 'restart') + # restart commands here + $0 stop + $0 start + + ;; + *) # no parameter specified + echo "Usage: $SELF start|stop|restart|reload|force-reload|status" + exit 1 + ;; +esac + + + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,574 @@ +# +# Galaxy is configured by default to be useable in a single-user development +# environment. To tune the application for a multi-user production +# environment, see the documentation at: +# +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ProductionServer +# + +# Throughout this sample configuration file, except where stated otherwise, +# uncommented values override the default if left unset, whereas commented +# values are set to the default value. +# examples of many of these options are explained in more detail in the wiki: +# +# Config hackers are encouraged to check there before asking for help. + +# ---- HTTP Server ---------------------------------------------------------- + +# Configuration of the internal HTTP server. + +[server:main] + +# The internal HTTP server to use. Currently only Paste is provided. This +# option is required. +use = egg:Paste#http + +# The port on which to listen. +#port = 8080 + +# The address on which to listen. By default, only listen to localhost (Galaxy +# will not be accessible over the network). Use '0.0.0.0' to listen on all +# available network interfaces. +host = 0.0.0.0 + +# Use a threadpool for the web server instead of creating a thread for each +# request. +use_threadpool = True + +# Number of threads in the web server thread pool. +#threadpool_workers = 10 + +# ---- Filters -------------------------------------------------------------- + +# Filters sit between Galaxy and the HTTP server. + +# These filters are disabled by default. They can be enabled with +# 'filter-with' in the [app:main] section below. + +# Define the gzip filter. +[filter:gzip] +use = egg:Paste#gzip + +# Define the proxy-prefix filter. +[filter:proxy-prefix] +use = egg:PasteDeploy#prefix +prefix = /galaxy + +# ---- Galaxy --------------------------------------------------------------- + +# Configuration of the Galaxy application. + +[app:main] + +# -- Application and filtering + +# The factory for the WSGI application. This should not be changed. +paste.app_factory = galaxy.web.buildapp:app_factory + +# If not running behind a proxy server, you may want to enable gzip compression +# to decrease the size of data transferred over the network. If using a proxy +# server, please enable gzip compression there instead. +#filter-with = gzip + +# If running behind a proxy server and Galaxy is served from a subdirectory, +# enable the proxy-prefix filter and set the prefix in the +# [filter:proxy-prefix] section above. +#filter-with = proxy-prefix + +# If proxy-prefix is enabled and you're running more than one Galaxy instance +# behind one hostname, you will want to set this to the same path as the prefix +# in the filter above. This value becomes the "path" attribute set in the +# cookie so the cookies from each instance will not clobber each other. +#cookie_path = None + +# -- Database + +# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You +# may use a SQLAlchemy connection string to specify an external database +# instead. This string takes many options which are explained in detail in the +# config file documentation. +#database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE + +# If the server logs errors about not having enough database pool connections, +# you will want to increase these values, or consider running more Galaxy +# processes. +#database_engine_option_pool_size = 5 +#database_engine_option_max_overflow = 10 + +# If using MySQL and the server logs the error "MySQL server has gone away", +# you will want to set this to some positive value (7200 should work). +#database_engine_option_pool_recycle = -1 + +# If large database query results are causing memory or response time issues in +# the Galaxy process, leave the result on the server instead. This option is +# only available for PostgreSQL and is highly recommended. +#database_engine_option_server_side_cursors = False + +# Create only one connection to the database per thread, to reduce the +# connection overhead. Recommended when not using SQLite: +#database_engine_option_strategy = threadlocal + +# Log all database transactions, can be useful for debugging and performance +# profiling. Logging is done via Python's 'logging' module under the qualname +# 'galaxy.model.orm.logging_connection_proxy' +#database_query_profiling_proxy = False + +# -- Files and directories + +# Dataset files are stored in this directory. +#file_path = database/files + +# Temporary files are stored in this directory. +#new_file_path = database/tmp + +# Tool config file, defines what tools are available in Galaxy. +#tool_config_file = tool_conf.xml + +# Path to the directory containing the tools defined in the config. +#tool_path = tools + +# Directory where data used by tools is located, see the samples in that +# directory and the wiki for help: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataIntegration +#tool_data_path = tool-data + +# Directory where chrom len files are kept, currently mainly used by trackster +#len_file_path = tool-data/shared/ucsc/chrom + + +# Datatypes config file, defines what data (file) types are available in +# Galaxy. +#datatypes_config_file = datatypes_conf.xml + +# Each job is given a unique empty directory as its current working directory. +# This option defines in what parent directory those directories will be +# created. +#job_working_directory = database/job_working_directory + +# If using a cluster, Galaxy will write job scripts and stdout/stderr to this +# directory. +#cluster_files_directory = database/pbs + +# External service types config file, defines what types of external_services configurations +# are available in Galaxy. +#external_service_type_config_file = external_service_types_conf.xml + +# Path to the directory containing the external_service_types defined in the config. +#external_service_type_path = external_service_types + +# -- Mail and notification + +# Galaxy sends mail for various things: Subscribing users to the mailing list +# if they request it, emailing password resets, notification from the Galaxy +# Sample Tracking system, and reporting dataset errors. To do this, it needs +# to send mail through an SMTP server, which you may define here. +#smtp_server = None + +# On the user registration form, users may choose to join the mailing list. +# This is the address of the list they'll be subscribed to. +#mailing_join_addr = galaxy-user-join at bx.psu.edu + +# Datasets in an error state include a link to report the error. Those reports +# will be sent to this address. Error reports are disabled if no address is set. +#error_email_to = None + +# -- Display sites + +# Galaxy can display data at various external browsers. These options specify +# which browsers should be available. URLs and builds available at these +# browsers are defined in the specifield files. + +# UCSC browsers: tool-data/shared/ucsc/ucsc_build_sites.txt +#ucsc_display_sites = main,test,archaea,ucla + +# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt +#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly,yeast_sgd + +# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt +#genetrack_display_sites = main,test + +# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code. + +use_nglims = False +nglims_config_file = tool-data/nglims.yaml + +# -- UI Localization + +# Append "/{brand}" to the "Galaxy" text in the masthead. +#brand = None + +# The URL linked by the "Galaxy/brand" text. +#logo_url = / + +# The URL linked by the "Galaxy Wiki" link in the "Help" menu. +#wiki_url = http://bitbucket.org/galaxy/galaxy-central/wiki + +# The URL linked by the "Email comments..." link in the "Help" menu. +#bugs_email = mailto:galaxy-bugs at bx.psu.edu + +# The URL linked by the "How to Cite..." link in the "Help" menu. +#citation_url = http://bitbucket.org/galaxy/galaxy-central/wiki/Citations + +# Serve static content, which must be enabled if you're not serving it via a +# proxy server. These options should be self explanatory and so are not +# documented individually. You can use these paths (or ones in the proxy +# server) to point to your own styles. +static_enabled = True +static_cache_time = 360 +static_dir = %(here)s/static/ +static_images_dir = %(here)s/static/images +static_favicon_dir = %(here)s/static/favicon.ico +static_scripts_dir = %(here)s/static/scripts/ +static_style_dir = %(here)s/static/june_2007_style/blue + +# -- Advanced proxy features + +# For help on configuring the Advanced proxy features, see: +# http://usegalaxy.org/production + +# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set +# this to True to inform Galaxy that mod_xsendfile is enabled upstream. +#apache_xsendfile = False + +# The same download handling can be done by nginx using X-Accel-Redirect. This +# should be set to the path defined in the nginx config as an internal redirect +# with access to Galaxy's data files (see documentation linked above). +#nginx_x_accel_redirect_base = False + +# nginx can make use of mod_zip to create zip files containing multiple library +# files. If using X-Accel-Redirect, this can be the same value as that option. +#nginx_x_archive_files_base = False + +# If using compression in the upstream proxy server, use this option to disable +# gzipping of library .tar.gz and .zip archives, since the proxy server will do +# it faster on the fly. +#upstream_gzip = False + +# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. +# Configuration for this is complex and explained in detail in the +# documentation linked above. The upload store is a temporary directory in +# which files uploaded by the upload module will be placed. +#nginx_upload_store = False + +# This value overrides the action set on the file upload form, e.g. the web +# path where the nginx_upload_module has been configured to intercept upload +# requests. +#nginx_upload_path = False + +# -- Logging and Debugging + +# Verbosity of console log messages. Acceptable values can be found here: +# http://docs.python.org/library/logging.html#logging-levels +#log_level = DEBUG + +# Print database operations to the server log (warning, quite verbose!). +#database_engine_option_echo = False + +# Print database pool operations to the server log (warning, quite verbose!). +#database_engine_option_echo_pool = False + +# Turn on logging of application events and some user events to the database. +#log_events = True + +# Turn on logging of user actions to the database. Actions currently logged are +# grid views, tool searches, and use of "recently" used tools menu. The +# log_events and log_actions functionality will eventually be merged. +#log_actions = True + +# Debug enables access to various config options useful for development and +# debugging: use_lint, use_profile, use_printdebug and use_interactive. It +# also causes the files used by PBS/SGE (submission script, output, and error) +# to remain on disk after the job is complete. Debug mode is disabled if +# commented, but is uncommented by default in the sample config. +debug = True + +# Check for WSGI compliance. +#use_lint = False + +# Run the Python profiler on each request. +#use_profile = False + +# Intercept print statements and show them on the returned page. +#use_printdebug = True + +# Enable live debugging in your browser. This should NEVER be enabled on a +# public site. Enabled in the sample config for development. +use_interactive = True + +# Write thread status periodically to 'heartbeat.log', (careful, uses disk +# space rapidly!). Useful to determine why your processes may be consuming a +# lot of CPU. +#use_heartbeat = False + +# Enable the memory debugging interface (careful, negatively impacts server +# performance). +#use_memdump = False + +# -- Data Libraries + +# These library upload options are described in much more detail in the wiki: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataLibraries/UploadingFiles + +# Add an option to the library upload form which allows administrators to +# upload a directory of files. +library_import_dir = True + +# Add an option to the library upload form which allows authorized +# non-administrators to upload a directory of files. The configured directory +# must contain sub-directories named the same as the non-admin user's Galaxy +# login ( email ). The non-admin user is restricted to uploading files or +# sub-directories of files contained in their directory. +#user_library_import_dir = None + +# Add an option to the admin library upload tool allowing admins to paste +# filesystem paths to files and directories in a box, and these paths will be +# added to a library. Set to True to enable. Please note the security +# implication that this will give Galaxy Admins access to anything your Galaxy +# user has access to. +allow_library_path_paste = True + +# Users may choose to download multiple files from a library in an archive. By +# default, Galaxy allows users to select from a few different archive formats +# if testing shows that Galaxy is able to create files using these formats. +# Specific formats can be disabled with this option, separate more than one +# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. +#disable_library_comptypes = + +# Some sequencer integration features in beta allow you to automatically +# transfer datasets. This is done using a lightweight transfer manager which +# runs outside of Galaxy (but is spawned by it automatically). Galaxy will +# communicate with this manager over the port specified here. +#transfer_manager_port = 8163 + +# Search data libraries with whoosh +#enable_whoosh_library_search = True +# Whoosh indexes are stored in this directory. +#whoosh_index_dir = database/whoosh_indexes + +# Search data libraries with lucene +#enable_lucene_library_search = False +# maxiumum file size to index for searching, in MB +#fulltext_max_size = 500 +#fulltext_noindex_filetypes=bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger +# base URL of server providing search functionality using lucene +#fulltext_url = http://localhost:8081 + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +#id_secret = USING THE DEFAULT IS NOT SECURE! + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ApacheProxy +#use_remote_user = False + +# If use_remote_user is enabled and your external authentication +# method just returns bare usernames, set a default mail domain to be appended +# to usernames, to become your Galaxy usernames (email addresses). +#remote_user_maildomain = None + +# If use_remote_user is enabled, you can set this to a URL that will log your +# users out. +#remote_user_logout_href = None + +# Administrative users - set this to a comma-separated list of valid Galaxy +# users (email addresses). These users will have access to the Admin section +# of the server, and will have access to create users, groups, roles, +# libraries, and more. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Admin/AdminInterface +admin_users = steder at ci.uchicago.edu,borja at cs.uchicago.edu,madduri at mcs.anl.gov,ballen at ci.uchicago.edu + +# Force everyone to log in (disable anonymous access). +#require_login = False + +# Allow unregistered users to create new accounts (otherwise, they will have to +# be created by an admin). +#allow_user_creation = True + +# Allow administrators to delete accounts. +#allow_user_deletion = False + +# By default, users' data will be public, but setting this to True will cause +# it to be private. Does not affect existing users and data, only ones created +# after this option is set. Users may still change their default back to +# public. +#new_user_dataset_access_role_default_private = False + +# -- Beta features + +# Enable Galaxy to communicate directly with a sequencer +#enable_sequencer_communication = False + +# Enable Galaxy's built-in visualization module, Trackster. +#enable_tracks = False + +# Enable Galaxy Pages. Pages are custom webpages that include embedded Galaxy items, +# such as datasets, histories, workflows, and visualizations; pages are useful for +# documenting and sharing multiple analyses or workflows. Pages are created using a +# WYSIWYG editor that is very similar to a word processor. +#enable_pages = False + +# Enable authentication via OpenID. Allows users to log in to their Galaxy +# account by authenticating with an OpenID provider. +enable_openid = True + +# Enable the (experimental! beta!) Web API. Documentation forthcoming. +#enable_api = False + +# Enable Galaxy's "Upload via FTP" interface. You'll need to install and +# configure an FTP server (we've used ProFTPd since it can use Galaxy's +# database for authentication) and set the following two options. + +# This should point to a directory containing subdirectories matching users' +# email addresses, where Galaxy will look for files. +ftp_upload_dir = /nfs/scratch + +# this value changes how the user_ftp_dir is determined: +# - normally it is set by doing os.path.join(ftp_upload_dir, user.email) +# - with globus we want to do os.path.join(ftp_upload_dir, user.username) +globus_online = True + +# The endpoint to use when doing globus transfers onto the galaxy machine: +globus_endpoint = "borja#galaxy" + +# home directory root: +# normally this is /home +# As a hack I'm looking for credential files in a users home directory +home_root = /nfs/home + +# globus cert settings: +# globus expects the user home directory to contain a user key and user cert: +globus_userkey = .globus/userkey.pem +globus_usercert = .globus/usercert.pem +# you also need to specify the path to your root certificate: +globus_rootcert = /etc/grid-security/certificates/d1b603c3.0 + +# When we want to transfer files back with globus online we symbolicly +# link those datasets from galaxy's home dir into something readable +# by globus. +# +globus_scratch = /nfs/scratch + +# This should be the hostname of your FTP server, which will be provided to +# users in the help text. +ftp_upload_site = "go://borja#galaxy3" + +# -- Job Execution + +# If running multiple Galaxy processes, one can be designated as the job +# runner. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/WebApplicationScaling +#enable_job_running = True + +# Should jobs be tracked through the database, rather than in memory. +# Necessary if you're running the load balanced setup. +#track_jobs_in_database = False + +# This enables splitting of jobs into tasks, if specified by the particular tool config. +# This is a new feature and not recommended for production servers yet. +#use_tasked_jobs = False +#local_task_queue_workers = 2 + +# Enable job recovery (if Galaxy is restarted while cluster jobs are running, +# it can "recover" them when it starts). This is not safe to use if you are +# running more than one Galaxy server using the same database. +#enable_job_recovery = True + +# Setting metadata on job outputs to in a separate process (or if using a +# cluster, on the cluster). Thanks to Python's Global Interpreter Lock and the +# hefty expense that setting metadata incurs, your Galaxy process may become +# unresponsive when this operation occurs internally. +#set_metadata_externally = False + +# Although it is fairly reliable, setting metadata can occasionally fail. In +# these instances, you can choose to retry setting it internally or leave it in +# a failed state (since retrying internally may cause the Galaxy process to be +# unresponsive). If this option is set to False, the user will be given the +# option to retry externally, or set metadata manually (when possible). +#retry_metadata_internally = True + +# If (for example) you run on a cluster and your datasets (by default, +# database/files/) are mounted read-only, this option will override tool output +# paths to write outputs to the working directory instead, and the job manager +# will move the outputs to their proper place in the dataset directory on the +# Galaxy server after the job completes. +#outputs_to_working_directory = False + +# Number of concurrent jobs to run (local job runner) +#local_job_queue_workers = 5 + +# Jobs can be killed after a certain amount of execution time. Format is in +# hh:mm:ss. Currently only implemented for PBS. +#job_walltime = None + +# Jobs can be killed if any of their outputs grow over a certain size (in +# bytes). 0 for no limit. +#output_size_limit = 0 + +# Clustering Galaxy is not a straightforward process and requires some +# pre-configuration. See the the wiki before attempting to set any of these +# options: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/Cluster + +# Comma-separated list of job runners to start. local is always started. If +# left commented, no jobs will be run on the cluster, even if a cluster URL is +# explicitly defined in the [galaxy:tool_runners] section below. The runners +# currently available are 'pbs' and 'drmaa'. +#start_job_runners = None + +# The URL for the default runner to use when a tool doesn't explicitly define a +# runner below. +#default_cluster_job_runner = local:/// + +# The cluster runners have their own thread pools used to prepare and finish +# jobs (so that these sometimes lengthy operations do not block normal queue +# operation). The value here is the number of worker threads available to each +# started runner. +#cluster_job_queue_workers = 3 + +# These options are only used when using file staging with PBS. +#pbs_application_server = +#pbs_stage_path = +#pbs_dataset_server = + +# ---- Tool Job Runners ----------------------------------------------------- + +# Individual per-tool job runner overrides. If not listed here, a tool will +# run with the runner defined with default_cluster_job_runner. + +[galaxy:tool_runners] + +biomart = local:/// +encode_db1 = local:/// +hbvar = local:/// +microbial_import1 = local:/// +ucsc_table_direct1 = local:/// +ucsc_table_direct_archaea1 = local:/// +ucsc_table_direct_test1 = local:/// +upload1 = local:/// + +# ---- Galaxy Message Queue ------------------------------------------------- + +# Galaxy uses AMQ protocol to receive messages from external sources like +# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation. +# For Galaxy to receive messages from a message queue the RabbitMQ server has +# to be set up with a user account and other parameters listed below. The 'host' +# and 'port' fields should point to where the RabbitMQ server is running. + +[galaxy_amqp] + +#host = 127.0.0.1 +#port = 5672 +#userid = galaxy +#password = galaxy +#virtual_host = galaxy_messaging_engine +#queue = galaxy_queue +#exchange = galaxy_exchange +#routing_key = bar_code_scanner +#rabbitmqctl_path = /path/to/rabbitmqctl \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,548 @@ +# +# Galaxy is configured by default to be useable in a single-user development +# environment. To tune the application for a multi-user production +# environment, see the documentation at: +# +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ProductionServer +# + +# Throughout this sample configuration file, except where stated otherwise, +# uncommented values override the default if left unset, whereas commented +# values are set to the default value. +# examples of many of these options are explained in more detail in the wiki: +# +# Config hackers are encouraged to check there before asking for help. + +# ---- HTTP Server ---------------------------------------------------------- + +# Configuration of the internal HTTP server. + +[server:main] + +# The internal HTTP server to use. Currently only Paste is provided. This +# option is required. +use = egg:Paste#http + +# The port on which to listen. +#port = 8080 + +# The address on which to listen. By default, only listen to localhost (Galaxy +# will not be accessible over the network). Use '0.0.0.0' to listen on all +# available network interfaces. +host = 0.0.0.0 + +# Use a threadpool for the web server instead of creating a thread for each +# request. +use_threadpool = True + +# Number of threads in the web server thread pool. +#threadpool_workers = 10 + +# ---- Filters -------------------------------------------------------------- + +# Filters sit between Galaxy and the HTTP server. + +# These filters are disabled by default. They can be enabled with +# 'filter-with' in the [app:main] section below. + +# Define the gzip filter. +[filter:gzip] +use = egg:Paste#gzip + +# Define the proxy-prefix filter. +[filter:proxy-prefix] +use = egg:PasteDeploy#prefix +prefix = /galaxy + +# ---- Galaxy --------------------------------------------------------------- + +# Configuration of the Galaxy application. + +[app:main] + +# -- Application and filtering + +# The factory for the WSGI application. This should not be changed. +paste.app_factory = galaxy.web.buildapp:app_factory + +# If not running behind a proxy server, you may want to enable gzip compression +# to decrease the size of data transferred over the network. If using a proxy +# server, please enable gzip compression there instead. +#filter-with = gzip + +# If running behind a proxy server and Galaxy is served from a subdirectory, +# enable the proxy-prefix filter and set the prefix in the +# [filter:proxy-prefix] section above. +#filter-with = proxy-prefix + +# If proxy-prefix is enabled and you're running more than one Galaxy instance +# behind one hostname, you will want to set this to the same path as the prefix +# in the filter above. This value becomes the "path" attribute set in the +# cookie so the cookies from each instance will not clobber each other. +#cookie_path = None + +# -- Database + +# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You +# may use a SQLAlchemy connection string to specify an external database +# instead. This string takes many options which are explained in detail in the +# config file documentation. +#database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE + +# If the server logs errors about not having enough database pool connections, +# you will want to increase these values, or consider running more Galaxy +# processes. +#database_engine_option_pool_size = 5 +#database_engine_option_max_overflow = 10 + +# If using MySQL and the server logs the error "MySQL server has gone away", +# you will want to set this to some positive value (7200 should work). +#database_engine_option_pool_recycle = -1 + +# If large database query results are causing memory or response time issues in +# the Galaxy process, leave the result on the server instead. This option is +# only available for PostgreSQL and is highly recommended. +#database_engine_option_server_side_cursors = False + +# Create only one connection to the database per thread, to reduce the +# connection overhead. Recommended when not using SQLite: +#database_engine_option_strategy = threadlocal + +# Log all database transactions, can be useful for debugging and performance +# profiling. Logging is done via Python's 'logging' module under the qualname +# 'galaxy.model.orm.logging_connection_proxy' +#database_query_profiling_proxy = False + +# -- Files and directories + +# Dataset files are stored in this directory. +#file_path = database/files + +# Temporary files are stored in this directory. +#new_file_path = database/tmp + +# Tool config file, defines what tools are available in Galaxy. +#tool_config_file = tool_conf.xml + +# Path to the directory containing the tools defined in the config. +#tool_path = tools + +# Directory where data used by tools is located, see the samples in that +# directory and the wiki for help: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataIntegration +#tool_data_path = tool-data + +# Directory where chrom len files are kept, currently mainly used by trackster +#len_file_path = tool-data/shared/ucsc/chrom + + +# Datatypes config file, defines what data (file) types are available in +# Galaxy. +#datatypes_config_file = datatypes_conf.xml + +# Each job is given a unique empty directory as its current working directory. +# This option defines in what parent directory those directories will be +# created. +#job_working_directory = database/job_working_directory + +# If using a cluster, Galaxy will write job scripts and stdout/stderr to this +# directory. +#cluster_files_directory = database/pbs + +# External service types config file, defines what types of external_services configurations +# are available in Galaxy. +#external_service_type_config_file = external_service_types_conf.xml + +# Path to the directory containing the external_service_types defined in the config. +#external_service_type_path = external_service_types + +# -- Mail and notification + +# Galaxy sends mail for various things: Subscribing users to the mailing list +# if they request it, emailing password resets, notification from the Galaxy +# Sample Tracking system, and reporting dataset errors. To do this, it needs +# to send mail through an SMTP server, which you may define here. +#smtp_server = None + +# On the user registration form, users may choose to join the mailing list. +# This is the address of the list they'll be subscribed to. +#mailing_join_addr = galaxy-user-join at bx.psu.edu + +# Datasets in an error state include a link to report the error. Those reports +# will be sent to this address. Error reports are disabled if no address is set. +#error_email_to = None + +# -- Display sites + +# Galaxy can display data at various external browsers. These options specify +# which browsers should be available. URLs and builds available at these +# browsers are defined in the specifield files. + +# UCSC browsers: tool-data/shared/ucsc/ucsc_build_sites.txt +#ucsc_display_sites = main,test,archaea,ucla + +# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt +#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly + +# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt +#genetrack_display_sites = main,test + +# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code. + +use_nglims = False +nglims_config_file = tool-data/nglims.yaml + +# -- UI Localization + +# Append "/{brand}" to the "Galaxy" text in the masthead. +#brand = None + +# The URL linked by the "Galaxy/brand" text. +#logo_url = / + +# The URL linked by the "Galaxy Wiki" link in the "Help" menu. +#wiki_url = http://bitbucket.org/galaxy/galaxy-central/wiki + +# The URL linked by the "Email comments..." link in the "Help" menu. +#bugs_email = mailto:galaxy-bugs at bx.psu.edu + +# The URL linked by the "How to Cite..." link in the "Help" menu. +#citation_url = http://bitbucket.org/galaxy/galaxy-central/wiki/Citations + +# Serve static content, which must be enabled if you're not serving it via a +# proxy server. These options should be self explanatory and so are not +# documented individually. You can use these paths (or ones in the proxy +# server) to point to your own styles. +static_enabled = True +static_cache_time = 360 +static_dir = %(here)s/static/ +static_images_dir = %(here)s/static/images +static_favicon_dir = %(here)s/static/favicon.ico +static_scripts_dir = %(here)s/static/scripts/ +static_style_dir = %(here)s/static/june_2007_style/blue + +# -- Advanced proxy features + +# For help on configuring the Advanced proxy features, see: +# http://usegalaxy.org/production + +# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set +# this to True to inform Galaxy that mod_xsendfile is enabled upstream. +#apache_xsendfile = False + +# The same download handling can be done by nginx using X-Accel-Redirect. This +# should be set to the path defined in the nginx config as an internal redirect +# with access to Galaxy's data files (see documentation linked above). +#nginx_x_accel_redirect_base = False + +# nginx can make use of mod_zip to create zip files containing multiple library +# files. If using X-Accel-Redirect, this can be the same value as that option. +#nginx_x_archive_files_base = False + +# If using compression in the upstream proxy server, use this option to disable +# gzipping of library .tar.gz and .zip archives, since the proxy server will do +# it faster on the fly. +#upstream_gzip = False + +# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. +# Configuration for this is complex and explained in detail in the +# documentation linked above. The upload store is a temporary directory in +# which files uploaded by the upload module will be placed. +#nginx_upload_store = False + +# This value overrides the action set on the file upload form, e.g. the web +# path where the nginx_upload_module has been configured to intercept upload +# requests. +#nginx_upload_path = False + +# -- Logging and Debugging + +# Verbosity of console log messages. Acceptable values can be found here: +# http://docs.python.org/library/logging.html#logging-levels +#log_level = DEBUG + +# Print database operations to the server log (warning, quite verbose!). +#database_engine_option_echo = False + +# Print database pool operations to the server log (warning, quite verbose!). +#database_engine_option_echo_pool = False + +# Turn on logging of application events and some user events to the database. +#log_events = True + +# Turn on logging of user actions to the database. Actions currently logged are +# grid views, tool searches, and use of "recently" used tools menu. The +# log_events and log_actions functionality will eventually be merged. +#log_actions = True + +# Debug enables access to various config options useful for development and +# debugging: use_lint, use_profile, use_printdebug and use_interactive. It +# also causes the files used by PBS/SGE (submission script, output, and error) +# to remain on disk after the job is complete. Debug mode is disabled if +# commented, but is uncommented by default in the sample config. +debug = True + +# Check for WSGI compliance. +#use_lint = False + +# Run the Python profiler on each request. +#use_profile = False + +# Intercept print statements and show them on the returned page. +#use_printdebug = True + +# Enable live debugging in your browser. This should NEVER be enabled on a +# public site. Enabled in the sample config for development. +use_interactive = True + +# Write thread status periodically to 'heartbeat.log', (careful, uses disk +# space rapidly!). Useful to determine why your processes may be consuming a +# lot of CPU. +#use_heartbeat = False + +# Enable the memory debugging interface (careful, negatively impacts server +# performance). +#use_memdump = False + +# -- Data Libraries + +# These library upload options are described in much more detail in the wiki: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataLibraries/UploadingFiles + +# Add an option to the library upload form which allows administrators to +# upload a directory of files. +#library_import_dir = None + +# Add an option to the library upload form which allows authorized +# non-administrators to upload a directory of files. The configured directory +# must contain sub-directories named the same as the non-admin user's Galaxy +# login ( email ). The non-admin user is restricted to uploading files or +# sub-directories of files contained in their directory. +#user_library_import_dir = None + +# Add an option to the admin library upload tool allowing admins to paste +# filesystem paths to files and directories in a box, and these paths will be +# added to a library. Set to True to enable. Please note the security +# implication that this will give Galaxy Admins access to anything your Galaxy +# user has access to. +#allow_library_path_paste = False + +# Users may choose to download multiple files from a library in an archive. By +# default, Galaxy allows users to select from a few different archive formats +# if testing shows that Galaxy is able to create files using these formats. +# Specific formats can be disabled with this option, separate more than one +# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. +#disable_library_comptypes = + +# Some sequencer integration features in beta allow you to automatically +# transfer datasets. This is done using a lightweight transfer manager which +# runs outside of Galaxy (but is spawned by it automatically). Galaxy will +# communicate with this manager over the port specified here. +#transfer_manager_port = 8163 + +# Search data libraries with whoosh +#enable_whoosh_library_search = True +# Whoosh indexes are stored in this directory. +#whoosh_index_dir = database/whoosh_indexes + +# Search data libraries with lucene +#enable_lucene_library_search = False +# maxiumum file size to index for searching, in MB +#fulltext_max_size = 500 +#fulltext_noindex_filetypes=bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger +# base URL of server providing search functionality using lucene +#fulltext_url = http://localhost:8081 + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +#id_secret = USING THE DEFAULT IS NOT SECURE! + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ApacheProxy +#use_remote_user = False + +# If use_remote_user is enabled and your external authentication +# method just returns bare usernames, set a default mail domain to be appended +# to usernames, to become your Galaxy usernames (email addresses). +#remote_user_maildomain = None + +# If use_remote_user is enabled, you can set this to a URL that will log your +# users out. +#remote_user_logout_href = None + +# Administrative users - set this to a comma-separated list of valid Galaxy +# users (email addresses). These users will have access to the Admin section +# of the server, and will have access to create users, groups, roles, +# libraries, and more. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Admin/AdminInterface +#admin_users = None + +# Force everyone to log in (disable anonymous access). +#require_login = False + +# Allow unregistered users to create new accounts (otherwise, they will have to +# be created by an admin). +#allow_user_creation = True + +# Allow administrators to delete accounts. +#allow_user_deletion = False + +# By default, users' data will be public, but setting this to True will cause +# it to be private. Does not affect existing users and data, only ones created +# after this option is set. Users may still change their default back to +# public. +#new_user_dataset_access_role_default_private = False + +# -- Beta features + +# Enable Galaxy to communicate directly with a sequencer +#enable_sequencer_communication = False + +# Enable Galaxy's built-in visualization module, Trackster. +#enable_tracks = False + +# Enable Galaxy Pages. Pages are custom webpages that include embedded Galaxy items, +# such as datasets, histories, workflows, and visualizations; pages are useful for +# documenting and sharing multiple analyses or workflows. Pages are created using a +# WYSIWYG editor that is very similar to a word processor. +#enable_pages = False + +# Enable authentication via OpenID. Allows users to log in to their Galaxy +# account by authenticating with an OpenID provider. +#enable_openid = False + +# Enable the (experimental! beta!) Web API. Documentation forthcoming. +#enable_api = False + +# Enable Galaxy's "Upload via FTP" interface. You'll need to install and +# configure an FTP server (we've used ProFTPd since it can use Galaxy's +# database for authentication) and set the following two options. + +# This should point to a directory containing subdirectories matching users' +# email addresses, where Galaxy will look for files. +#ftp_upload_dir = None + +# This should be the hostname of your FTP server, which will be provided to +# users in the help text. +#ftp_upload_site = None + +# -- Job Execution + +# If running multiple Galaxy processes, one can be designated as the job +# runner. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/WebApplicationScaling +#enable_job_running = True + +# Should jobs be tracked through the database, rather than in memory. +# Necessary if you're running the load balanced setup. +#track_jobs_in_database = False + +# This enables splitting of jobs into tasks, if specified by the particular tool config. +# This is a new feature and not recommended for production servers yet. +#use_tasked_jobs = False +#local_task_queue_workers = 2 + +# Enable job recovery (if Galaxy is restarted while cluster jobs are running, +# it can "recover" them when it starts). This is not safe to use if you are +# running more than one Galaxy server using the same database. +#enable_job_recovery = True + +# Setting metadata on job outputs to in a separate process (or if using a +# cluster, on the cluster). Thanks to Python's Global Interpreter Lock and the +# hefty expense that setting metadata incurs, your Galaxy process may become +# unresponsive when this operation occurs internally. +#set_metadata_externally = False + +# Although it is fairly reliable, setting metadata can occasionally fail. In +# these instances, you can choose to retry setting it internally or leave it in +# a failed state (since retrying internally may cause the Galaxy process to be +# unresponsive). If this option is set to False, the user will be given the +# option to retry externally, or set metadata manually (when possible). +#retry_metadata_internally = True + +# If (for example) you run on a cluster and your datasets (by default, +# database/files/) are mounted read-only, this option will override tool output +# paths to write outputs to the working directory instead, and the job manager +# will move the outputs to their proper place in the dataset directory on the +# Galaxy server after the job completes. +#outputs_to_working_directory = False + +# Number of concurrent jobs to run (local job runner) +#local_job_queue_workers = 5 + +# Jobs can be killed after a certain amount of execution time. Format is in +# hh:mm:ss. Currently only implemented for PBS. +#job_walltime = None + +# Jobs can be killed if any of their outputs grow over a certain size (in +# bytes). 0 for no limit. +#output_size_limit = 0 + +# Clustering Galaxy is not a straightforward process and requires some +# pre-configuration. See the the wiki before attempting to set any of these +# options: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/Cluster + +# Comma-separated list of job runners to start. local is always started. If +# left commented, no jobs will be run on the cluster, even if a cluster URL is +# explicitly defined in the [galaxy:tool_runners] section below. The runners +# currently available are 'pbs' and 'drmaa'. +#start_job_runners = None + +# The URL for the default runner to use when a tool doesn't explicitly define a +# runner below. +#default_cluster_job_runner = local:/// + +# The cluster runners have their own thread pools used to prepare and finish +# jobs (so that these sometimes lengthy operations do not block normal queue +# operation). The value here is the number of worker threads available to each +# started runner. +#cluster_job_queue_workers = 3 + +# These options are only used when using file staging with PBS. +#pbs_application_server = +#pbs_stage_path = +#pbs_dataset_server = + +# ---- Tool Job Runners ----------------------------------------------------- + +# Individual per-tool job runner overrides. If not listed here, a tool will +# run with the runner defined with default_cluster_job_runner. + +[galaxy:tool_runners] + +biomart = local:/// +encode_db1 = local:/// +hbvar = local:/// +microbial_import1 = local:/// +ucsc_table_direct1 = local:/// +ucsc_table_direct_archaea1 = local:/// +ucsc_table_direct_test1 = local:/// +upload1 = local:/// + +# ---- Galaxy Message Queue ------------------------------------------------- + +# Galaxy uses AMQ protocol to receive messages from external sources like +# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation. +# For Galaxy to receive messages from a message queue the RabbitMQ server has +# to be set up with a user account and other parameters listed below. The 'host' +# and 'port' fields should point to where the RabbitMQ server is running. + +[galaxy_amqp] + +#host = 127.0.0.1 +#port = 5672 +#userid = galaxy +#password = galaxy +#virtual_host = galaxy_messaging_engine +#queue = galaxy_queue +#exchange = galaxy_exchange +#routing_key = bar_code_scanner +#rabbitmqctl_path = /path/to/rabbitmqctl Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures galaxy" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,45 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +if ! File.exists?(node[:blast][:dir]) + + directory "#{node[:blast][:dir]}" do + owner "root" + group "root" + mode "0755" + action :create + end + + remote_file "#{node[:scratch_dir]}/blast.tar.gz" do + source "http://mirrors.vbi.vt.edu/mirrors/ftp.ncbi.nih.gov/blast/executables/blast+/2.2.25/ncbi-blast-2.2.25+-ia32-linux.tar.gz" + owner "root" + group "root" + mode "0644" + end + + execute "tar" do + user "root" + group "root" + command "tar xzf #{node[:scratch_dir]}/blast.tar.gz --strip-components=1 --directory #{node[:blast][:dir]}" + action :run + end + + link "/nfs/software/bin/blastp" do + to "#{node[:blast][:dir]}/bin/blastp" + end + +end + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,8 @@ +# +# Cookbook Name:: galaxy +# Recipe:: default +# +# Copyright 2011, YOUR_COMPANY_NAME +# +# All rights reserved - Do Not Redistribute +# Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,112 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Galaxy (Globus fork) common actions +## +## This recipe performs common actions required when installing the Globus +## fork of Galaxy. If Galaxy is being installed on a domain with NFS/NIS, +## this recipe must be run on the NFS/NIS server, and the galaxy-globus +## recipe can be run on another node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +go_endpoints = gp_domain[:go_endpoints].to_a + +if go_endpoints.size > 0 + go_endpoint = go_endpoints[0] + go_endpoint = "#{go_endpoint[:user]}##{go_endpoint[:name]}" +else + go_endpoint = "" +end + +if gp_domain[:nfs_server] + homedirs = "/nfs/home" +else + homedirs = "/home" +end + +group "galaxy" do + gid 4000 +end + +user "galaxy" do + comment "Galaxy User" + uid 4000 + gid 4000 + home "#{homedirs}/galaxy" + password "!" + shell "/bin/bash" + supports :manage_home => true + notifies :run, "execute[ypinit]" +end + +# We need to run this for changes to take effect in the NIS server. +execute "ypinit" do + only_if do gp_domain[:nis_server] end + user "root" + group "root" + command "make -C /var/yp" + action :nothing +end + +if ! File.exists?(node[:galaxy][:dir]) + + directory "#{node[:galaxy][:dir]}" do + owner "galaxy" + group "galaxy" + mode "0755" + action :create + end + + remote_file "#{node[:scratch_dir]}/galaxy-dist.tip.tar.bz2" do + source "https://bitbucket.org/steder/galaxy-globus/get/tip.tar.bz2" + owner "root" + group "root" + mode "0644" + end + + execute "tar" do + user "galaxy" + group "galaxy" + command "tar xjf #{node[:scratch_dir]}/galaxy-dist.tip.tar.bz2 --strip-components=1 --directory #{node[:galaxy][:dir]}" + action :run + end + + cookbook_file "#{node[:galaxy][:dir]}/galaxy-setup.sh" do + source "galaxy-setup.sh" + owner "galaxy" + group "galaxy" + mode "0755" + end + + template "#{node[:galaxy][:dir]}/universe_wsgi.ini" do + source "galaxy-universe.erb" + mode 0644 + owner "galaxy" + group "galaxy" + variables( + :db_connect => "postgres:///galaxy?user=galaxy&password=galaxy&host=/var/run/postgresql", + :go_endpoint => go_endpoint + ) + end + +end + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,107 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Galaxy (Globus fork) server +## +## This installs the Globus fork of Galaxy. +## If Galaxy is being installed on a domain with NFS/NIS, you must have applied +## the galaxy-globus-common recipe to the NFS/NIS server. If you are running +## a standalone Galaxy server, you will need to apply galaxy-globus-common and +## galaxy-globus on the same node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "postgresql::server" + +database_exists = "psql galaxy postgres -c ''" + +# Create postgresql user + +execute "createuser" do + user "postgres" + command "createuser -D -S -R galaxy" + action :run + not_if database_exists +end + +execute "createdb" do + user "postgres" + command "createdb galaxy" + action :run + not_if database_exists +end + +execute "alter_user" do + user "postgres" + command "psql -c \"alter user galaxy with encrypted password 'galaxy';\"" + action :run + not_if database_exists +end + +execute "grant_all" do + user "postgres" + command "psql -c \"grant all privileges on database galaxy to galaxy;\"" + action :run + not_if database_exists +end + +case node.platform + when "ubuntu" + if node.platform_version.to_f >= 11.04 + package "python2.6" + execute "update-alternatives" do + python_version = `python -c "import sys; print sys.version_info[0] * 10 + sys.version_info[1]"`.to_f + only_if do python_version > 26 end + user "root" + command "update-alternatives --install /usr/bin/python python /usr/bin/python2.6 10" + action :run + end + end +end + +execute "galaxy-setup.sh" do + user "galaxy" + group "galaxy" + cwd node[:galaxy][:dir] + command "./galaxy-setup.sh" + action :run +end + +# Add init script +cookbook_file "/etc/init.d/galaxy" do + source "galaxy.init" + owner "root" + group "root" + mode "0755" + notifies :run, "execute[update-rc.d]" +end + +execute "update-rc.d" do + user "root" + group "root" + command "update-rc.d galaxy defaults" + action :nothing +end + +execute "galaxy_restart" do + user "root" + group "root" + command "/etc/init.d/galaxy restart" + action :run + environment ({'PATH' => "/nfs/software/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"}) +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,574 @@ +# +# Galaxy is configured by default to be useable in a single-user development +# environment. To tune the application for a multi-user production +# environment, see the documentation at: +# +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ProductionServer +# + +# Throughout this sample configuration file, except where stated otherwise, +# uncommented values override the default if left unset, whereas commented +# values are set to the default value. +# examples of many of these options are explained in more detail in the wiki: +# +# Config hackers are encouraged to check there before asking for help. + +# ---- HTTP Server ---------------------------------------------------------- + +# Configuration of the internal HTTP server. + +[server:main] + +# The internal HTTP server to use. Currently only Paste is provided. This +# option is required. +use = egg:Paste#http + +# The port on which to listen. +#port = 8080 + +# The address on which to listen. By default, only listen to localhost (Galaxy +# will not be accessible over the network). Use '0.0.0.0' to listen on all +# available network interfaces. +host = 0.0.0.0 + +# Use a threadpool for the web server instead of creating a thread for each +# request. +use_threadpool = True + +# Number of threads in the web server thread pool. +#threadpool_workers = 10 + +# ---- Filters -------------------------------------------------------------- + +# Filters sit between Galaxy and the HTTP server. + +# These filters are disabled by default. They can be enabled with +# 'filter-with' in the [app:main] section below. + +# Define the gzip filter. +[filter:gzip] +use = egg:Paste#gzip + +# Define the proxy-prefix filter. +[filter:proxy-prefix] +use = egg:PasteDeploy#prefix +prefix = /galaxy + +# ---- Galaxy --------------------------------------------------------------- + +# Configuration of the Galaxy application. + +[app:main] + +# -- Application and filtering + +# The factory for the WSGI application. This should not be changed. +paste.app_factory = galaxy.web.buildapp:app_factory + +# If not running behind a proxy server, you may want to enable gzip compression +# to decrease the size of data transferred over the network. If using a proxy +# server, please enable gzip compression there instead. +#filter-with = gzip + +# If running behind a proxy server and Galaxy is served from a subdirectory, +# enable the proxy-prefix filter and set the prefix in the +# [filter:proxy-prefix] section above. +#filter-with = proxy-prefix + +# If proxy-prefix is enabled and you're running more than one Galaxy instance +# behind one hostname, you will want to set this to the same path as the prefix +# in the filter above. This value becomes the "path" attribute set in the +# cookie so the cookies from each instance will not clobber each other. +#cookie_path = None + +# -- Database + +# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You +# may use a SQLAlchemy connection string to specify an external database +# instead. This string takes many options which are explained in detail in the +# config file documentation. +database_connection = <%=@db_connect%> + +# If the server logs errors about not having enough database pool connections, +# you will want to increase these values, or consider running more Galaxy +# processes. +#database_engine_option_pool_size = 5 +#database_engine_option_max_overflow = 10 + +# If using MySQL and the server logs the error "MySQL server has gone away", +# you will want to set this to some positive value (7200 should work). +#database_engine_option_pool_recycle = -1 + +# If large database query results are causing memory or response time issues in +# the Galaxy process, leave the result on the server instead. This option is +# only available for PostgreSQL and is highly recommended. +#database_engine_option_server_side_cursors = False + +# Create only one connection to the database per thread, to reduce the +# connection overhead. Recommended when not using SQLite: +#database_engine_option_strategy = threadlocal + +# Log all database transactions, can be useful for debugging and performance +# profiling. Logging is done via Python's 'logging' module under the qualname +# 'galaxy.model.orm.logging_connection_proxy' +#database_query_profiling_proxy = False + +# -- Files and directories + +# Dataset files are stored in this directory. +#file_path = database/files + +# Temporary files are stored in this directory. +#new_file_path = database/tmp + +# Tool config file, defines what tools are available in Galaxy. +#tool_config_file = tool_conf.xml + +# Path to the directory containing the tools defined in the config. +#tool_path = tools + +# Directory where data used by tools is located, see the samples in that +# directory and the wiki for help: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataIntegration +#tool_data_path = tool-data + +# Directory where chrom len files are kept, currently mainly used by trackster +#len_file_path = tool-data/shared/ucsc/chrom + + +# Datatypes config file, defines what data (file) types are available in +# Galaxy. +#datatypes_config_file = datatypes_conf.xml + +# Each job is given a unique empty directory as its current working directory. +# This option defines in what parent directory those directories will be +# created. +#job_working_directory = database/job_working_directory + +# If using a cluster, Galaxy will write job scripts and stdout/stderr to this +# directory. +#cluster_files_directory = database/pbs + +# External service types config file, defines what types of external_services configurations +# are available in Galaxy. +#external_service_type_config_file = external_service_types_conf.xml + +# Path to the directory containing the external_service_types defined in the config. +#external_service_type_path = external_service_types + +# -- Mail and notification + +# Galaxy sends mail for various things: Subscribing users to the mailing list +# if they request it, emailing password resets, notification from the Galaxy +# Sample Tracking system, and reporting dataset errors. To do this, it needs +# to send mail through an SMTP server, which you may define here. +#smtp_server = None + +# On the user registration form, users may choose to join the mailing list. +# This is the address of the list they'll be subscribed to. +#mailing_join_addr = galaxy-user-join at bx.psu.edu + +# Datasets in an error state include a link to report the error. Those reports +# will be sent to this address. Error reports are disabled if no address is set. +#error_email_to = None + +# -- Display sites + +# Galaxy can display data at various external browsers. These options specify +# which browsers should be available. URLs and builds available at these +# browsers are defined in the specifield files. + +# UCSC browsers: tool-data/shared/ucsc/ucsc_build_sites.txt +#ucsc_display_sites = main,test,archaea,ucla + +# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt +#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly,yeast_sgd + +# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt +#genetrack_display_sites = main,test + +# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code. + +use_nglims = False +nglims_config_file = tool-data/nglims.yaml + +# -- UI Localization + +# Append "/{brand}" to the "Galaxy" text in the masthead. +#brand = None + +# The URL linked by the "Galaxy/brand" text. +#logo_url = / + +# The URL linked by the "Galaxy Wiki" link in the "Help" menu. +#wiki_url = http://bitbucket.org/galaxy/galaxy-central/wiki + +# The URL linked by the "Email comments..." link in the "Help" menu. +#bugs_email = mailto:galaxy-bugs at bx.psu.edu + +# The URL linked by the "How to Cite..." link in the "Help" menu. +#citation_url = http://bitbucket.org/galaxy/galaxy-central/wiki/Citations + +# Serve static content, which must be enabled if you're not serving it via a +# proxy server. These options should be self explanatory and so are not +# documented individually. You can use these paths (or ones in the proxy +# server) to point to your own styles. +static_enabled = True +static_cache_time = 360 +static_dir = %(here)s/static/ +static_images_dir = %(here)s/static/images +static_favicon_dir = %(here)s/static/favicon.ico +static_scripts_dir = %(here)s/static/scripts/ +static_style_dir = %(here)s/static/june_2007_style/blue + +# -- Advanced proxy features + +# For help on configuring the Advanced proxy features, see: +# http://usegalaxy.org/production + +# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set +# this to True to inform Galaxy that mod_xsendfile is enabled upstream. +#apache_xsendfile = False + +# The same download handling can be done by nginx using X-Accel-Redirect. This +# should be set to the path defined in the nginx config as an internal redirect +# with access to Galaxy's data files (see documentation linked above). +#nginx_x_accel_redirect_base = False + +# nginx can make use of mod_zip to create zip files containing multiple library +# files. If using X-Accel-Redirect, this can be the same value as that option. +#nginx_x_archive_files_base = False + +# If using compression in the upstream proxy server, use this option to disable +# gzipping of library .tar.gz and .zip archives, since the proxy server will do +# it faster on the fly. +#upstream_gzip = False + +# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. +# Configuration for this is complex and explained in detail in the +# documentation linked above. The upload store is a temporary directory in +# which files uploaded by the upload module will be placed. +#nginx_upload_store = False + +# This value overrides the action set on the file upload form, e.g. the web +# path where the nginx_upload_module has been configured to intercept upload +# requests. +#nginx_upload_path = False + +# -- Logging and Debugging + +# Verbosity of console log messages. Acceptable values can be found here: +# http://docs.python.org/library/logging.html#logging-levels +#log_level = DEBUG + +# Print database operations to the server log (warning, quite verbose!). +#database_engine_option_echo = False + +# Print database pool operations to the server log (warning, quite verbose!). +#database_engine_option_echo_pool = False + +# Turn on logging of application events and some user events to the database. +#log_events = True + +# Turn on logging of user actions to the database. Actions currently logged are +# grid views, tool searches, and use of "recently" used tools menu. The +# log_events and log_actions functionality will eventually be merged. +#log_actions = True + +# Debug enables access to various config options useful for development and +# debugging: use_lint, use_profile, use_printdebug and use_interactive. It +# also causes the files used by PBS/SGE (submission script, output, and error) +# to remain on disk after the job is complete. Debug mode is disabled if +# commented, but is uncommented by default in the sample config. +debug = True + +# Check for WSGI compliance. +#use_lint = False + +# Run the Python profiler on each request. +#use_profile = False + +# Intercept print statements and show them on the returned page. +#use_printdebug = True + +# Enable live debugging in your browser. This should NEVER be enabled on a +# public site. Enabled in the sample config for development. +use_interactive = True + +# Write thread status periodically to 'heartbeat.log', (careful, uses disk +# space rapidly!). Useful to determine why your processes may be consuming a +# lot of CPU. +#use_heartbeat = False + +# Enable the memory debugging interface (careful, negatively impacts server +# performance). +#use_memdump = False + +# -- Data Libraries + +# These library upload options are described in much more detail in the wiki: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataLibraries/UploadingFiles + +# Add an option to the library upload form which allows administrators to +# upload a directory of files. +library_import_dir = True + +# Add an option to the library upload form which allows authorized +# non-administrators to upload a directory of files. The configured directory +# must contain sub-directories named the same as the non-admin user's Galaxy +# login ( email ). The non-admin user is restricted to uploading files or +# sub-directories of files contained in their directory. +#user_library_import_dir = None + +# Add an option to the admin library upload tool allowing admins to paste +# filesystem paths to files and directories in a box, and these paths will be +# added to a library. Set to True to enable. Please note the security +# implication that this will give Galaxy Admins access to anything your Galaxy +# user has access to. +allow_library_path_paste = True + +# Users may choose to download multiple files from a library in an archive. By +# default, Galaxy allows users to select from a few different archive formats +# if testing shows that Galaxy is able to create files using these formats. +# Specific formats can be disabled with this option, separate more than one +# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. +#disable_library_comptypes = + +# Some sequencer integration features in beta allow you to automatically +# transfer datasets. This is done using a lightweight transfer manager which +# runs outside of Galaxy (but is spawned by it automatically). Galaxy will +# communicate with this manager over the port specified here. +#transfer_manager_port = 8163 + +# Search data libraries with whoosh +#enable_whoosh_library_search = True +# Whoosh indexes are stored in this directory. +#whoosh_index_dir = database/whoosh_indexes + +# Search data libraries with lucene +#enable_lucene_library_search = False +# maxiumum file size to index for searching, in MB +#fulltext_max_size = 500 +#fulltext_noindex_filetypes=bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger +# base URL of server providing search functionality using lucene +#fulltext_url = http://localhost:8081 + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +#id_secret = USING THE DEFAULT IS NOT SECURE! + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ApacheProxy +#use_remote_user = False + +# If use_remote_user is enabled and your external authentication +# method just returns bare usernames, set a default mail domain to be appended +# to usernames, to become your Galaxy usernames (email addresses). +#remote_user_maildomain = None + +# If use_remote_user is enabled, you can set this to a URL that will log your +# users out. +#remote_user_logout_href = None + +# Administrative users - set this to a comma-separated list of valid Galaxy +# users (email addresses). These users will have access to the Admin section +# of the server, and will have access to create users, groups, roles, +# libraries, and more. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Admin/AdminInterface +admin_users = steder at ci.uchicago.edu,borja at cs.uchicago.edu,madduri at mcs.anl.gov,ballen at ci.uchicago.edu + +# Force everyone to log in (disable anonymous access). +#require_login = False + +# Allow unregistered users to create new accounts (otherwise, they will have to +# be created by an admin). +#allow_user_creation = True + +# Allow administrators to delete accounts. +#allow_user_deletion = False + +# By default, users' data will be public, but setting this to True will cause +# it to be private. Does not affect existing users and data, only ones created +# after this option is set. Users may still change their default back to +# public. +#new_user_dataset_access_role_default_private = False + +# -- Beta features + +# Enable Galaxy to communicate directly with a sequencer +#enable_sequencer_communication = False + +# Enable Galaxy's built-in visualization module, Trackster. +#enable_tracks = False + +# Enable Galaxy Pages. Pages are custom webpages that include embedded Galaxy items, +# such as datasets, histories, workflows, and visualizations; pages are useful for +# documenting and sharing multiple analyses or workflows. Pages are created using a +# WYSIWYG editor that is very similar to a word processor. +#enable_pages = False + +# Enable authentication via OpenID. Allows users to log in to their Galaxy +# account by authenticating with an OpenID provider. +enable_openid = True + +# Enable the (experimental! beta!) Web API. Documentation forthcoming. +#enable_api = False + +# Enable Galaxy's "Upload via FTP" interface. You'll need to install and +# configure an FTP server (we've used ProFTPd since it can use Galaxy's +# database for authentication) and set the following two options. + +# This should point to a directory containing subdirectories matching users' +# email addresses, where Galaxy will look for files. +ftp_upload_dir = /nfs/scratch + +# this value changes how the user_ftp_dir is determined: +# - normally it is set by doing os.path.join(ftp_upload_dir, user.email) +# - with globus we want to do os.path.join(ftp_upload_dir, user.username) +globus_online = True + +# The endpoint to use when doing globus transfers onto the galaxy machine: +globus_endpoint = "<%=@go_endpoint%>" + +# home directory root: +# normally this is /home +# As a hack I'm looking for credential files in a users home directory +home_root = /nfs/home + +# globus cert settings: +# globus expects the user home directory to contain a user key and user cert: +globus_userkey = .globus/userkey.pem +globus_usercert = .globus/usercert.pem +# you also need to specify the path to your root certificate: +globus_rootcert = /etc/grid-security/certificates/gd-bundle_ca.cert + +# When we want to transfer files back with globus online we symbolicly +# link those datasets from galaxy's home dir into something readable +# by globus. +# +globus_scratch = /nfs/scratch + +# This should be the hostname of your FTP server, which will be provided to +# users in the help text. +ftp_upload_site = "go://borja#galaxy" + +# -- Job Execution + +# If running multiple Galaxy processes, one can be designated as the job +# runner. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/WebApplicationScaling +#enable_job_running = True + +# Should jobs be tracked through the database, rather than in memory. +# Necessary if you're running the load balanced setup. +#track_jobs_in_database = False + +# This enables splitting of jobs into tasks, if specified by the particular tool config. +# This is a new feature and not recommended for production servers yet. +#use_tasked_jobs = False +#local_task_queue_workers = 2 + +# Enable job recovery (if Galaxy is restarted while cluster jobs are running, +# it can "recover" them when it starts). This is not safe to use if you are +# running more than one Galaxy server using the same database. +#enable_job_recovery = True + +# Setting metadata on job outputs to in a separate process (or if using a +# cluster, on the cluster). Thanks to Python's Global Interpreter Lock and the +# hefty expense that setting metadata incurs, your Galaxy process may become +# unresponsive when this operation occurs internally. +#set_metadata_externally = False + +# Although it is fairly reliable, setting metadata can occasionally fail. In +# these instances, you can choose to retry setting it internally or leave it in +# a failed state (since retrying internally may cause the Galaxy process to be +# unresponsive). If this option is set to False, the user will be given the +# option to retry externally, or set metadata manually (when possible). +#retry_metadata_internally = True + +# If (for example) you run on a cluster and your datasets (by default, +# database/files/) are mounted read-only, this option will override tool output +# paths to write outputs to the working directory instead, and the job manager +# will move the outputs to their proper place in the dataset directory on the +# Galaxy server after the job completes. +#outputs_to_working_directory = False + +# Number of concurrent jobs to run (local job runner) +#local_job_queue_workers = 5 + +# Jobs can be killed after a certain amount of execution time. Format is in +# hh:mm:ss. Currently only implemented for PBS. +#job_walltime = None + +# Jobs can be killed if any of their outputs grow over a certain size (in +# bytes). 0 for no limit. +#output_size_limit = 0 + +# Clustering Galaxy is not a straightforward process and requires some +# pre-configuration. See the the wiki before attempting to set any of these +# options: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/Cluster + +# Comma-separated list of job runners to start. local is always started. If +# left commented, no jobs will be run on the cluster, even if a cluster URL is +# explicitly defined in the [galaxy:tool_runners] section below. The runners +# currently available are 'pbs' and 'drmaa'. +#start_job_runners = None + +# The URL for the default runner to use when a tool doesn't explicitly define a +# runner below. +#default_cluster_job_runner = local:/// + +# The cluster runners have their own thread pools used to prepare and finish +# jobs (so that these sometimes lengthy operations do not block normal queue +# operation). The value here is the number of worker threads available to each +# started runner. +#cluster_job_queue_workers = 3 + +# These options are only used when using file staging with PBS. +#pbs_application_server = +#pbs_stage_path = +#pbs_dataset_server = + +# ---- Tool Job Runners ----------------------------------------------------- + +# Individual per-tool job runner overrides. If not listed here, a tool will +# run with the runner defined with default_cluster_job_runner. + +[galaxy:tool_runners] + +biomart = local:/// +encode_db1 = local:/// +hbvar = local:/// +microbial_import1 = local:/// +ucsc_table_direct1 = local:/// +ucsc_table_direct_archaea1 = local:/// +ucsc_table_direct_test1 = local:/// +upload1 = local:/// + +# ---- Galaxy Message Queue ------------------------------------------------- + +# Galaxy uses AMQ protocol to receive messages from external sources like +# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation. +# For Galaxy to receive messages from a message queue the RabbitMQ server has +# to be set up with a user account and other parameters listed below. The 'host' +# and 'port' fields should point to where the RabbitMQ server is running. + +[galaxy_amqp] + +#host = 127.0.0.1 +#port = 5672 +#userid = galaxy +#password = galaxy +#virtual_host = galaxy_messaging_engine +#queue = galaxy_queue +#exchange = galaxy_exchange +#routing_key = bar_code_scanner +#rabbitmqctl_path = /path/to/rabbitmqctl \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFtTCCA52gAwIBAgIJAJhUGjc90yzKMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAlVTMRowGAYDVQQKExFHbG9idXMgQ29uc29ydGl1bTEaMBgGA1UEAxMRR2xv +YnVzIENvbm5lY3QgQ0EwHhcNMTEwMjE3MTU1NDA1WhcNMTYwODA5MTU1NDA1WjBF +MQswCQYDVQQGEwJVUzEaMBgGA1UEChMRR2xvYnVzIENvbnNvcnRpdW0xGjAYBgNV +BAMTEUdsb2J1cyBDb25uZWN0IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEAsDDXyExuG5s5CgPsSqWRD/rc+O9ceaEU25xqmUuo53i4D0+e3taGEkmK +5RC3VsQNJMp19Cccbul8jmDnmpa2lpbhuTz+RSGkRs7ap7x+mogoJ2W3jVhAfNFH +U8lrQ5TQ2jLhEJRuDJjcPFIn3n1fIfIR6GKMH0XOI9aLJGGabmpw/2wo0VzxadU6 +CtuhdCr4g2uII64lSME/GtV86OZQKINxmFS9MxjWpjYk1JxoaOAjRz5FKqyT+RAt +OfN7cW9r/J1S6fQHATUlh9B6P3nav7AJ3CiORLGNIgC8fNqCm7mLtbI7eU6oRkMv +0sTahdc0TgIfXqT+5+L/deWEeym0sHYaR+VLVe8QvZAkHkrp3Wmi2h3RLvs3lpyY +w6LU7mlvQZBuRoEun2SRGD3znFzj6i71yjw0uZXFXfunOvVwS7Hz/MGLouQUCCZZ +UPR1IIkCmiYLKcbQJgWwZS25R6/dLU1sYNpbyS2cLnjfxOpe+YUVtuo1bLGjLNuI +1w42qOZWhLfiUM7A51vSevyi/Xi5dXVTMF4ojnx6gfqBmjvCxshtox9Ks46ZeA6e +4/ExICZQoLl4iicsdg2TN00E3YBq10tBqbbDBL9MxO5a07rnol6IV2cg8YRfhg5a +jeYi0mCb8FdvCZojYxT6hQHs5XNvyChZUnj9/XfCK2Z9Rn2fRCkCAwEAAaOBpzCB +pDAdBgNVHQ4EFgQUa2OeAn1TDx4TDJlaaHiHSYKnMRkwdQYDVR0jBG4wbIAUa2Oe +An1TDx4TDJlaaHiHSYKnMRmhSaRHMEUxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFH +bG9idXMgQ29uc29ydGl1bTEaMBgGA1UEAxMRR2xvYnVzIENvbm5lY3QgQ0GCCQCY +VBo3PdMsyjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQBbnicVSC1L +UiYNWR/PNjYd8RKUyxUyNYxx1lCqCMYBaROp7mD9ddklT7C/H7tt5WxZDAwl7XRv +jckXmcnn8nqqiwsDfh0dcgE0FZEQNRc+IyXyw+sjE6rLDHc0WcUDVgV5wM1GFf23 +92PnOTz2pNPLDVxLsGc3452EreNzZyW82atklXuuUGRyhnVB5iFlLREgc3UPmumu +Q6uiZDvST6JJ6BSC2KkHUjnUKBZy6kOE1CyZIv24eE1pTxE/P4uCVp7+9yysYJ4h +771aH3tSkJ8AMcmFY+UCZ1H4Ck+u4rP80y4RheMvUhZ4sGQ4R3AMmpEFX8lgFc4P +uZBW1DOKJ0kj6+z30BNKpeBsCjEjLGsQlNGFYhevVm9/ZnKEHBIr49+asFftV491 +DnhZJ0IxZlQ3JTG9tQQLWDPSEBiQKMxicHtC9bnegTXPxFvv8kd3z/vnbJnEx3Sz +jzDo9yrhHIdjTaY/Ej9xB5ax051unOxi4Ozpexj3h9+J+5rw1jd4w8ex15oX6xcQ +qhxDfB/6rbKtCyTMkp6030pDlf7RLDWouX1Y7zzOfL66X/dckoCCIi3rqfkEiqrt +N/OGwF2ENQ6TS4q1rMj/SKNZpJZn7RHw0RxUf3V6O4T2C+JCYLF/pR3TCkWwh3VC +gjMI3URhfQBdQSn2aT6rIylSMtnyLyfj9g== +-----END CERTIFICATE----- Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,13 @@ +# Format: +#------------------------------------------------------------------------ +# token type | def.authority | value +#--------------|---------------|----------------------------------------- +# EACL entry #1| + +access_id_CA X509 '/C=US/O=Globus Consortium/CN=Globus Connect CA' + +pos_rights globus CA:sign + +cond_subjects globus '"/C=US/O=Globus Consortium/OU=Globus Connect User/*" "/C=US/O=Globus Consortium/OU=Globus Connect Server/*" "/C=US/O=Globus Consortium/OU=Globus Connect Service/*"' + +# end of EACL Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDkDCCAXgCAQEwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCVVMxGjAYBgNV +BAoTEUdsb2J1cyBDb25zb3J0aXVtMRowGAYDVQQDExFHbG9idXMgQ29ubmVjdCBD +QTAeFw0xMTAyMTcxNjM2MjhaFw0xMjAyMTcxNjM2MjhaMFsxCzAJBgNVBAYTAlVT +MRowGAYDVQQKExFHbG9idXMgQ29uc29ydGl1bTEcMBoGA1UECxMTR2xvYnVzIENv +bm5lY3QgVXNlcjESMBAGA1UEAxMJYW5vbnltb3VzMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDbdaIIAkQ6F2RoEoamBEuvPCvWuyTJgaSKBhzC4+uIsCM0Wsu+ +v/sR68D9eRmbqGpqGv6IlhDSlGWLMObl+UN1kbgzwITtpUlQujvsvJCn8T3u1045 +kRSODZyhsj0EITQAqEl0G2eWw7A/V+8Bu15gOuuACTmkEsIuDfLV7r+OnwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4ICAQBrraAVmVZlD9jmfMv6OI2hVmIiN80Sb81ykDv8 +bB+qzL2KiLnnk8i56EdU3gzz/J0TVw+XVQ6ZQHpbJkyfjnRVO9vN1RPzYUYZUl0f +xKXWzWn+uhRyzIWWGi3CMxKg4/fxnIvbkayqqVQolilhF3AH5yQ9xShkMwIhNe60 +1hBcCcotKmKkJ0ABVszHCjchop/l/5Nr2idNUj9kLFmXUC3KL39VOJj+4Uxf5H3a +CwSFRCOU7qkY16jMmuFsmycwfC0S81GqlNzj1DaIj4YbF2J5d5gZ1ifL0Swm2v1h +SLmyTQ3UJROxrVaBmsDrnSF4l/Yunsd08C/X27xrbYlNWJDHgdaToaWTIdPBx8Tz +IsvnLLS3QfEAZERKbc6y+s/KB9n65Yv5b2ZlVTmeDc7mlOQaM0BVSPkmhgK5q2w2 +ZjP85UCbO5HKKJjJHuWr7XAucQskvfI7D4AofKmOcdFz+EhT6F/5EVwhjhDoBda/ +rN9HYRFMtmxbxjpSN9Q0lhKAk9H19JIQSlA1EXFrrUuRs+NfNiFhcDLkTdqaxr2c +Tf8ve6StjyM2y5cktqr2+HKYUaUypWfOoQkMDeHtP5/Br24foE82BPY+U69SLS3A +azJla7NZKns05vzTQ74blWcWFWQl1E0KTmeLbOCOPdrcej90UkSKBs+/UUoC2GMJ +1pA1sg== +-----END CERTIFICATE----- Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDbdaIIAkQ6F2RoEoamBEuvPCvWuyTJgaSKBhzC4+uIsCM0Wsu+ +v/sR68D9eRmbqGpqGv6IlhDSlGWLMObl+UN1kbgzwITtpUlQujvsvJCn8T3u1045 +kRSODZyhsj0EITQAqEl0G2eWw7A/V+8Bu15gOuuACTmkEsIuDfLV7r+OnwIDAQAB +AoGBAJFk9sttjPwboVbd5z04HVhkefrSk8W40WTsNcPcsqAlab125gNjN5ig44RK +5e9dfdr8NWQSX+TTkg7MgD0ejlSs9iKLsgmHDU/l3sadtdBVQ+EDNg+7lzePj1Od +nffHIih+RK1a5e/g6KdU/57FQ0fk5xdgdbFNXJ493L3h97ypAkEA765/QJCCvFTa +4nPtmpN9VCSa+xC+nvOKfSqqGbGQimSPTOu0XC7XaU9Iypf6kxOBNT+mYHSku4QY +djWBziWuuwJBAOpmrTsjgIY6C68GG8XZWorF1ouhDYd7VBl5wrz9ly7RAGXrSp5q +Fjnk9MwRc0AHlCu/e32LltDHKePT+I1Ea20CQHFDassd/0n0Z4N/+RaFAELVEY/3 +d70xpY5ErSF7MazUnItjD1ZIpG8VknZ6n2UFYJfDPmJyfK5IXC7wVikO0aUCQGHV +vVRDuy9LJvlEmW75C5uEe8oHzLfRuAZyFeAAEIwP3BSuIpUAPoqnj61lUy9UennQ +EGEUVDyMBGX9YW7FMfkCQQCRyC9WxlWR9oweffR2hafQLZztC22tDdUlNvj3NlNl +R20gP5g3g2L4gTDEe06G6Baq0i2Fjpn56R2JwTU1y55F +-----END RSA PRIVATE KEY----- Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBITANBgkqhkiG9w0BAQUFADB1MRMwEQYKCZImiZPyLGQB +GRYDbmV0MRIwEAYKCZImiZPyLGQBGRYCRVMxDjAMBgNVBAoTBUVTbmV0MSAwHgYD +VQQLExdDZXJ0aWZpY2F0ZSBBdXRob3JpdGllczEYMBYGA1UEAxMPRVNuZXQgUm9v +dCBDQSAxMB4XDTAyMTAwODA3MDAwMFoXDTIyMTAyNjA3MDAwMFowdTETMBEGCgmS +JomT8ixkARkWA25ldDESMBAGCgmSJomT8ixkARkWAkVTMQ4wDAYDVQQKEwVFU25l +dDEgMB4GA1UECxMXQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMxGDAWBgNVBAMTD0VT +bmV0IFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKF +PX1QK86g62z/KX0pRAtRnS8VXmrLUDaFMwZyKEeueWxkrymyvnuDo4hCDPrIfEzI +cAWnJyE1ev4aWw3l3Qm75GDUiyV401Op598iPT5bbCMlHJcYBANwRNKnvtZ8DcoU +9Ba75tqUQHV1TRx6Nkw1AQ5gNMQSuZ5wCsDREGs+Be3JRa06RJf8k5gw5odqBjCT +kGmIwCcx1qEuLGXOcQoM+yEKZvD485MiPKaEKYJBRDHi0h+vvj1j8ge9SJ8Jy6ML +4B+2QNLb7fTjSutMF5qGJKlCgHw6dNLHuW2glS1KZ3Dt1iXkO6SdowclsKvpFhW9 +fDIftu/TOcMLOJi5fgUCAwEAAaOBmjCBlzARBglghkgBhvhCAQEEBAMCAAcwIQYD +VR0RBBowGIEWRVNuZXQtUm9vdC1DQS0xQGVzLm5ldDAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS8XU1IL/g1lFmrXIlLPtGyOhQB6jAfBgNVHSMEGDAWgBS8XU1I +L/g1lFmrXIlLPtGyOhQB6jAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEFBQAD +ggEBAA7Gy/hGi6nKiwm2fAXvQNU7Oe86VGz92VPICxjCyCCMW3uYuFAJVTjB6wRM +UH/fw01I+pC9CZ+RUIhxWqFKJiz+Wf3jkq+25rPQ2Ve5FTesB/urUncwqZKRaOk5 +StSW5XQjCIfKk7W6q6BJk3nMAm67btSoRdE9NfsefEpHbJJ+dtjRgyJx+QX7sOft +IsqHMWmEj7QTAjoCJvrSTXavHKosQ5s+aPySbZ6R6MCBzTsUzJk1fbTvrzJnzi0s +H4eyZ17WxRj8BxnyN6BHM/0ger2b/c6vrfrW67/J6A0ebClbdunFdsYxPtcH49yo +ugTqyKEVEeH7hhVkOH0bGf4Q0Vc= +-----END CERTIFICATE----- Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,59 @@ +# $Id: d1b603c3.signing_policy,v 1.1 2009/03/27 18:31:33 dhiva Exp $ +# +# This file is parsed from start to finish with a given CA and subject +# name. +# subject names may include the following wildcard characters: +# * Matches any number of characters. +# ? Matches any single character. +# +# CA names must be specified (no wildcards). Names containing whitespaces +# must be included in single quotes, e.g. 'Certification Authority'. +# Names must not contain new line symbols. +# The value of condition attribute is represented as a set of regular +# expressions. Each regular expression must be included in double quotes. +# +# This policy file dictates the following policy: +# +# The ESnet root CA signs certificates of various entities. +# +# Format: +#------------------------------------------------------------------------ +# token type | def.authority | value +#--------------|---------------|----------------------------------------- +# EACL entry #1| + + access_id_CA X509 '/DC=net/DC=ES/O=ESnet/OU=Certificate Authorities/CN=ESnet Root CA 1' + + pos_rights globus CA:sign + + cond_subjects globus '"/DC=org/DC=DOEGrids/OU=Certificate Authorities/*" "/DC=net/DC=ES/*" "/DC=org/DC=fusiongrid/OU=Certificate Authorities/*"' + +# +# End DOE SG CA Policy +# +# $Log: d1b603c3.signing_policy,v $ +# Revision 1.1 2009/03/27 18:31:33 dhiva +# *** empty log message *** +# +# Revision 1.5 2006/04/20 20:23:16 helm +# Added fusion grid subdir from mrt, removed misleading doc +# +# Revision 1.4 2006/04/20 20:17:22 helm +# revision change +# +# Revision 1.2 2003/05/27 16:29:35 helm +# Change statement of policy +# +# Revision 1.1 2003/05/22 22:38:22 helm +# *** empty log message *** +# +# Revision 1.3 2003/05/03 01:31:42 dhiva +# Fixed the Subject Name of the ESnet Root CA +# Modified the access_id_CA and included /O=ESnet +# +# Revision 1.2 2003/05/03 01:18:09 dhiva +# $Id: d1b603c3.signing_policy,v 1.1 2009/03/27 18:31:33 dhiva Exp $ included for all these files +# +# Revision 1.1 2003/05/03 01:15:06 dhiva +# Globus Support Files for pki1.doegrids.org CA +# Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,76 @@ +-----BEGIN CERTIFICATE----- +MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx +ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw +MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH +QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j +b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j +b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H +KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm +VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR +SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT +cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ +6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu +MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS +kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB +BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f +BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv +c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH +AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO +BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG +OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU +A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o +0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX +RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH +qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV +U+4= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh +bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu +Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g +QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe +BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX +DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE +YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC +ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q +N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO +r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN +f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH +U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU +TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb +VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg +SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv +biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg +MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw +AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv +ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu +Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd +IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv +bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1 +QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O +WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf +SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy +NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY +dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 +WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS +v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v +UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu +IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC +W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd +-----END CERTIFICATE----- Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,3 @@ +port 2811 +banner "DemoGrid GridFTP" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,8 @@ +authorized_retrievers "*" +pam "sufficient" +certificate_issuer_cert /var/lib/globus/simple_ca/cacert.pem +certificate_issuer_key /var/lib/globus/simple_ca/private/cakey.pem +certificate_issuer_key_passphrase "cagrid" +certificate_serialfile /var/lib/globus/simple_ca/serial +certificate_out_dir /var/lib/globus/simple_ca/newcerts +certificate_mapapp /var/lib/myproxy/myproxy-certificate-mapapp \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,9 @@ +service myproxy-server +{ + socket_type = stream + protocol = tcp + wait = no + user = root + server = /usr/sbin/myproxy-server + disable = no +} Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures globus" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 client tools +## +## This recipe installs only the Globus client tools (grid-proxy-init, +## myproxy-logon, globus-url-copy, etc.). GridFTP, GRAM, etc. are set up +## in separate recipes. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::repository" + +package "globus-gsi-cert-utils-progs" +package "globus-proxy-utils" +package "globus-gass-copy-progs" +package "gsi-openssh-clients" +package "myproxy" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# RECIPE: Default recipe. +# +# This cookbook has no default recipe. +# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,70 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: GC certificate +## +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +require "openssl" + +include_recipe "globus::go_cert" + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +cookbook_file "/etc/grid-security/anon.cert" do + source "anon.cert" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/anon.key" do + source "anon.key" + mode 0400 + owner "root" + group "root" +end + +ruby_block "get_gc_certificate" do + cert_file = "/etc/grid-security/gc-cert-#{gp_node[:gc_setupkey]}.pem" + key_file = "/etc/grid-security/gc-key-#{gp_node[:gc_setupkey]}.pem" + only_if do ! File.exists?(cert_file) end + block do + begin + ENV["X509_USER_CERT"]="/etc/grid-security/anon.cert" + ENV["X509_USER_KEY"]="/etc/grid-security/anon.key" + cert_blob = `gsissh -F /dev/null -o "GSSApiTrustDns no" -o "ServerAliveInterval 15" -o "ServerAliveCountMax 8" relay.globusonline.org -p 2223 register #{gp_node[:gc_setupkey]}` + + cert = OpenSSL::X509::Certificate.new(cert_blob) + cert_f = File.new(cert_file, 'w') + cert_f.write(cert.to_pem) + cert_f.chmod(0644) + + key = OpenSSL::PKey::RSA.new(cert_blob) + key_f = File.new(key_file, 'w') + key_f.write(key.to_pem) + key_f.chmod(0400) + rescue + # TODO: Find a way to communicate to GP that this has happened, + # so it can be reported to the user. + p "Unable to obtain GC certificate" + end + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,78 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: GO CA certificates +## +## This recipe installs the certificates of CAs that sign the various GO +## certificates (user certificates, the Transfer API server, etc.) +## +## This recipe must be applied to any node that will be interacting with +## a GO service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Create the grid-security directory + +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + +directory "/etc/grid-security/certificates" do + owner "root" + group "root" + mode "0755" + action :create +end + +cookbook_file "/etc/grid-security/certificates/d1b603c3.0" do + source "d1b603c3.0" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/d1b603c3.signing_policy" do + source "d1b603c3.signing_policy" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/4396eb4d.0" do + source "4396eb4d.0" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/4396eb4d.signing_policy" do + source "4396eb4d.signing_policy" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/gd-bundle_ca.cert" do + source "gd-bundle_ca.cert" + mode 0644 + owner "root" + group "root" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,36 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 GridFTP +## +## This recipe installs the GridFTP server and sets it up as a xinetd service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::repository" + +package "xinetd" +package "globus-gridftp-server-progs" +package "libglobus-xio-gsi-driver-dev" + +cookbook_file "/etc/gridftp.conf.default" do + source "gridftp.conf" + mode 0644 + owner "root" + group "root" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 GridFTP +## +## This recipe installs the GridFTP server and sets it up as a xinetd service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +include_recipe "globus::gridftp-common" + +template "/etc/xinetd.d/gsiftp" do + source "xinetd.gridftp.erb" + mode 0644 + owner "root" + group "root" + variables( + :public_ip => gp_node[:public_ip], + :gc => false + ) + notifies :restart, "service[xinetd]" +end + +service "xinetd" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,44 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 GridFTP +## +## This recipe installs the GridFTP server and sets it up as a xinetd service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::gc-cert" +include_recipe "globus::gridftp-common" + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +template "/etc/xinetd.d/gsiftp" do + source "xinetd.gridftp.erb" + mode 0644 + owner "root" + group "root" + variables( + :public_ip => gp_node[:public_ip], + :gc => true, + :gc_setupkey => gp_node[:gc_setupkey] + ) + notifies :restart, "service[xinetd]" +end + +service "xinetd" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,77 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 MyProxy +## +## Installs a MyProxy server, and sets is up as a xinetd service. +## +## For authentication, the MyProxy server will use the local UNIX accounts +## through PAM. If the node this recipe is applied to is part of a NIS +## domain, then the global NIS accounts will be used. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::repository" + +package "xinetd" +package "globus-simple-ca" +package "myproxy-server" + +directory "/var/lib/myproxy" do + owner "root" + group "root" + mode "0700" + action :create +end + + +cookbook_file "/etc/myproxy-server.config" do + source "myproxy-server.config" + mode 0644 + owner "root" + group "root" +end + +template "/var/lib/myproxy/myproxy-certificate-mapapp" do + source "myproxy-dnmap.erb" + mode 0744 + owner "root" + group "root" +end + +cookbook_file "/etc/xinetd.d/myproxy" do + source "xinetd.myproxy" + mode 0644 + owner "root" + group "root" + notifies :restart, "service[xinetd]" +end + +execute "add_services_entry" do + line = "myproxy-server 7512/tcp # Myproxy server" + only_if do + File.read("/etc/services").index(line).nil? + end + user "root" + group "root" + command "echo \"#{line}\" >> /etc/services" + action :run + notifies :restart, "service[xinetd]" +end + +service "xinetd" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,65 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 repository +## +## Adds the APT sources list for the Globus Toolkit 5.1.1 +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +case node.platform + when "ubuntu" + if node.platform_version == "11.04" + distro_id = "natty" + elsif node.platform_version == "10.10" + distro_id = "maverick" + elsif node.platform_version == "10.04" + distro_id = "lenny" + end + + when "debian" + if node.platform_version.to_f >= 6.0 + distro_id = "squeeze" + elsif node.platform_version.to_f >= 5.0 + distro_id = "lenny" + end + +end + +remote_file "#{node[:scratch_dir]}/gt5_repository.deb" do + action :create_if_missing + source "http://www.globus.org/ftppub/gt5/5.1/5.1.1/installers/repo/globus-repository-#{distro_id}_0.0.1_all.deb" + owner "root" + group "root" + mode "0644" +end + +package "gt5_repository" do + action :install + source "#{node[:scratch_dir]}/gt5_repository.deb" + provider Chef::Provider::Package::Dpkg + notifies :run, "execute[apt-get update]", :immediately +end + +execute "apt-get update" do + user "root" + group "root" + command "apt-get update" + action :nothing +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,12 @@ +#!/bin/sh + +username=$1 +if [ X"$username" = X ]; then + # no username given + exit 1 +fi + +# DN must match the signing policy for your CA. +echo "/O=Grid/OU=DemoGrid/CN=${username}" + +exit 0 Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,13 @@ +service gsigatekeeper +{ + socket_type = stream + protocol = tcp + wait = no + user = root + env += GLOBUS_LOCATION=<%= @globus_location %> + env += LD_LIBRARY_PATH=<%= @globus_location %>/lib + env += LD_LIBRARY_PATH=GLOBUS_LOCATION/lib + server = <%= @globus_location %>/sbin/globus-gatekeeper + server_args = -conf <%= @globus_location %>/etc/globus-gatekeeper.conf + disable = no +} Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,21 @@ +service gsiftp + { + instances = 50 + socket_type = stream + wait = no + user = root + server = /usr/sbin/globus-gridftp-server + <% if @public_ip %> + server_args = -i --data-interface <%= @public_ip %> + <% else %> + server_args = -i + <% end %> + <% if @gc %> + env += X509_USER_CERT=/etc/grid-security/gc-cert-<%= @gc_setupkey %>.pem + env += X509_USER_KEY=/etc/grid-security/gc-key-<%= @gc_setupkey %>.pem + <% end %> + env += GLOBUS_TCP_PORT_RANGE=50000,51000 + log_on_success += DURATION + nice = 10 + disable = no + } Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,102 @@ +Description +=========== + +Installs a Java. Uses OpenJDK by default but supports installation of the Sun's Java. + +--- +Requirements +============ + +Platform +-------- + +* Debian, Ubuntu +* CentOS, Red Hat, Fedora + +Cookbooks +--------- + +* apt + +--- +Attributes +========== + +* `node["java"]["install_flavor"]` - Flavor of JVM you would like installed (`sun` or `openjdk`), default `openjdk`. + +--- +Recipes +======= + +default +------- + +Include the default recipe in a run list, to get `java`. By default the `openjdk` flavor of Java is installed, but this can be changed by using the `install_flavor` attribute. + +openjdk +------- + +This recipe installs the `openjdk` flavor of Java. + +sun +--- + +This recipe installs the `sun` flavor of Java. + +On Debian and Ubuntu systems the recipe will add the correct apt repository (`non-free` on Debian or `partner` on Ubuntu), pre-seed the package and update java alternatives. + +On Red Hat flavored Linux (RHEL, CentOS, Fedora), the installation of the Sun flavor of Java is slightly more complicated as the `rpm` package is not readily available in any public Yum repository. The Sun JDK `rpm` package can be downloaded directly from Sun but comes wrapped as a compressed bin file. After the file has been downloaded, decompressed and license accepted the `rpm` package (names something like `jdk-6u25-ea-linux-amd64.rpm`) can be retrieved by this recipe using the `remote_file` or `cookbook_file` resources. The recipe will choose the correct resource based on the existence (or non-existence) of the `node['sun']['rpm_url']` attribute. See below for an example role using this attribute in the proper way. If you would like to deliver the `rpm` package file as part of this cookbook place the `rpm` package file in the `files/default` directory and the cookbook will retrieve the file during installation. + +--- +Usage +===== + +Simply include the `java` recipe where ever you would like Java installed. + +To install Sun flavored Java on Debian or Ubuntu override the `node['java']['install_flavor']` attribute with in role: + + name "java" + description "Install Sun Java on Ubuntu" + override_attributes( + "java" => { + "install_flavor" => "sun" + } + ) + run_list( + "recipe[java]" + ) + +On RedHat flavored Linux be sure to set the `rpm_url` and `rpm_checksum` attributes if you placed the `rpm` file on a remote server: + + name "java" + description "Install Sun Java on CentOS" + override_attributes( + "java" => { + "install_flavor" => "sun", + "version" => "6u25", + "rpm_url" => "https://mycompany.s3.amazonaws.com/sun_jdk", + "rpm_checksum" => "c473e3026f991e617710bad98f926435959303fe084a5a31140ad5ad75d7bf13" + } + ) + run_list( + "recipe[java]" + ) + +License and Author +================== + +Author:: Seth Chisamore () + +Copyright:: 2008-2011, Opscode, Inc + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,29 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Attributes:: default +# +# Copyright 2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +default['java']['install_flavor'] = "sun" + +case platform +when "centos","redhat","fedora" + default['java']['version'] = "6u25" + default['java']['arch'] = kernel['machine'] =~ /x86_64/ ? "amd64" : "i586" + set['java']['java_home'] = "/usr/lib/jvm/java" +else + set['java']['java_home'] = "/usr/lib/jvm/default-java" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,11 @@ +sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true +sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true +sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true +sun-java6-jre sun-java6-jre/stopthread boolean true +sun-java6-jre sun-java6-jre/jcepolicy note +sun-java6-bin shared/error-sun-dlj-v1-1 error +sun-java6-jdk shared/error-sun-dlj-v1-1 error +sun-java6-jre shared/error-sun-dlj-v1-1 error +sun-java6-bin shared/present-sun-dlj-v1-1 note +sun-java6-jdk shared/present-sun-dlj-v1-1 note +sun-java6-jre shared/present-sun-dlj-v1-1 note \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,50 @@ +{ + "name": "java", + "description": "Installs Java runtime.", + "long_description": "Description\n===========\n\nInstalls a Java. Uses OpenJDK by default but supports installation of the Sun's Java.\n\n---\nRequirements\n============\n\nPlatform\n--------\n\n* Debian, Ubuntu\n* CentOS, Red Hat, Fedora\n\nCookbooks\n---------\n\n* apt\n\n---\nAttributes\n==========\n\n* `node[\"java\"][\"install_flavor\"]` - Flavor of JVM you would like installed (`sun` or `openjdk`), default `openjdk`.\n\n---\nRecipes\n=======\n\ndefault\n-------\n\nInclude the default recipe in a run list, to get `java`. By default the `openjdk` flavor of Java is installed, but this can be changed by using the `install_flavor` attribute.\n\nopenjdk\n-------\n\nThis recipe installs the `openjdk` flavor of Java.\n\nsun\n---\n\nThis recipe installs the `sun` flavor of Java. \n\nOn Debian and Ubuntu systems the recipe will add the correct apt repository (`non-free` on Debian or `partner` on Ubuntu), pre-seed the package and update java alternatives.\n\nOn Red Hat flavor ed Linux (RHEL, CentOS, Fedora), the installation of the Sun flavor of Java is slightly more complicated as the `rpm` package is not readily available in any public Yum repository. The Sun JDK `rpm` package can be downloaded directly from Sun but comes wrapped as a compressed bin file. After the file has been downloaded, decompressed and license accepted the `rpm` package (names something like `jdk-6u25-ea-linux-amd64.rpm`) can be retrieved by this recipe using the `remote_file` or `cookbook_file` resources. The recipe will choose the correct resource based on the existence (or non-existence) of the `node['sun']['rpm_url']` attribute. See below for an example role using this attribute in the proper way. If you would like to deliver the `rpm` package file as part of this cookbook place the `rpm` package file in the `files/default` directory and the cookbook will retrieve the file during installation.\n\n---\nUsage\n=====\n\nSimply include the `java` recipe where ever you would like Java installed. \n\nTo install Sun flavored Java on Debian or Ubuntu override the `node['java']['install_flavor']` attribute with in role:\n\n name \"java\"\n description \"Install Sun Java on Ubuntu\"\n override_attributes(\n \"java\" => {\n \"install_flavor\" => \"sun\"\n }\n )\n run_list(\n \"recipe[java]\"\n )\n\nOn RedHat flavored Linux be sure to set the `rpm_url` and `rpm_checksum` attributes if you placed the `rpm` file on a remote server:\n\n name \"java\"\n description \"Install Sun Java on CentOS\"\n override_attributes(\n \"java\" => {\n \"install_flavor\" => \"sun\",\n \"version\" => \"6u25\",\n \"rpm_url\" => \"https://mycompany.s3.amazonaws.com/sun_jdk\",\n \"rpm_checksum\" => \"c473e3026f991e617710bad98f926435959303fe084a5a31140ad5ad75d7bf13\"\n }\n )\n run_list(\n \"recipe[java]\"\n )\n\nLicense and Author\n==================\n\nAuthor:: Seth Chi samore ()\n\nCopyright:: 2008-2011, Opscode, Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n", + "maintainer": "Opscode, Inc.", + "maintainer_email": "cookbooks at opscode.com", + "license": "Apache 2.0", + "platforms": { + "debian": [ + + ], + "ubuntu": [ + + ], + "centos": [ + + ], + "redhat": [ + + ], + "fedora": [ + + ] + }, + "dependencies": { + "apt": [ + + ] + }, + "recommendations": { + }, + "suggestions": { + }, + "conflicting": { + }, + "providing": { + }, + "replacing": { + }, + "attributes": { + }, + "groupings": { + }, + "recipes": { + "java": "Installs Java runtime", + "java::openjdk": "Installs the OpenJDK flavor of Java", + "java::sun": "Installs the Sun flavor of Java" + }, + "version": "1.1.0" +} \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,16 @@ +maintainer "Opscode, Inc." +maintainer_email "cookbooks at opscode.com" +license "Apache 2.0" +description "Installs Java runtime." +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version "1.1" + +depends "apt" + +recipe "java", "Installs Java runtime" +recipe "java::openjdk", "Installs the OpenJDK flavor of Java" +recipe "java::sun", "Installs the Sun flavor of Java" + +%w{ debian ubuntu centos redhat fedora }.each do |os| + supports os +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,21 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Recipe:: default +# +# Copyright 2008-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "java::#{node['java']['install_flavor']}" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,39 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Recipe:: openjdk +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +pkgs = value_for_platform( + ["centos","redhat","fedora"] => { + "default" => ["java-1.6.0-openjdk","java-1.6.0-openjdk-devel"] + }, + "default" => ["openjdk-6-jdk","default-jdk"] +) + +execute "update-java-alternatives" do + command "update-java-alternatives -s java-6-openjdk" + returns [0,2] + action :nothing + only_if { platform?("ubuntu", "debian") } +end + +pkgs.each do |pkg| + package pkg do + action :install + notifies :run, "execute[update-java-alternatives]" + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,93 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Recipe:: sun +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +pkgs = value_for_platform( + ["centos","redhat","fedora"] => { + "default" => ["jdk-#{node['java']['version']}-ea-linux-#{node['java']['arch']}.rpm"] + }, + ["debian","ubuntu"] => { + "default" => ["sun-java6-jdk"] + } +) + +case node['platform'] +when "ubuntu" + + apt_repository "ubuntu-partner" do + uri "http://archive.canonical.com/ubuntu" + distribution node['lsb']['codename'] + components ['partner'] + action :add + end + # update-java-alternatives doesn't work with only sun java installed + node.set['java']['java_home'] = "/usr/lib/jvm/java-6-sun" + +when "debian" + + apt_repository "debian-non-free" do + uri "http://http.us.debian.org/debian" + distribution "stable" + components ['main','contrib','non-free'] + action :add + end + # update-java-alternatives doesn't work with only sun java installed + node.set['java']['java_home'] = "/usr/lib/jvm/java-6-sun" + +when "centos", "redhat", "fedora" + + pkgs.each do |pkg| + if node['java'].attribute?('rpm_url') + remote_file "#{Chef::Config[:file_cache_path]}/#{pkg}" do + source "#{node['java']['rpm_url']}/#{pkg}" + checksum node['java']['rpm_checksum'] + mode "0644" + end + else + cookbook_file "#{Chef::Config[:file_cache_path]}/#{pkg}" do + source pkg + mode "0644" + action :create_if_missing + end + end + end + +else + Chef::Log.error("Installation of Sun Java packages not supported on this platform.") +end + +execute "update-java-alternatives" do + command "update-java-alternatives -s java-6-sun" + returns [0,2] + action :nothing + only_if { platform?("ubuntu", "debian") } +end + +pkgs.each do |pkg| + package pkg do + case node['platform'] + when "ubuntu", "debian" + response_file "java.seed" + when "centos", "redhat", "fedora" + source "#{Chef::Config[:file_cache_path]}/#{pkg}" + options "--nogpgcheck" # sun/oracle doesn't sign their RPMs o_O + end + action :install + notifies :run, "execute[update-java-alternatives]" + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,49 @@ += DESCRIPTION: + +Installs and configures postgresql client or server. + += REQUIREMENTS: + +== Platform: + +Tested on CentOS 5.5, Ubuntu 10.04 but should support centos, redhat, fedora, suse, ubuntu and debian. + +== Cookbooks: + += ATTRIBUTES: + +* postgresql[:dir] - configuration file location. +* postgresql[:version] - Version of postgresql to use. Configured in attributes based on platform. +* postgresql[:ssl] - used on debian family installs to enable ssl support. The debian post installation script automatically builds the certificates. + += USAGE: + +For clients: + + include_recipe "postgresql::client" + +For server: + + include_recipe "postgresql::server" + +(client is already included by server). This will check the platform that the node is and include either redhat family recipe (postgresql::server_redhat) or debian family (postgresql::server_debian) because the two styles differ quite a bit. + +The templates provided by this cookbook will probably need to be tweaked for the local environment, no tuning parameters are specified in them. The templates are separated by family designation in the template directory, since Chef doesn't do "platform family" style file specificity. + += LICENSE and AUTHOR: + +Author:: Joshua Timberman () + +Copyright:: 2009-2010, Opscode, Inc + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,68 @@ +# +# Cookbook Name:: postgresql +# Attributes:: postgresql +# +# Copyright 2008-2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +case platform +when "debian" + + if platform_version.to_f == 5.0 + default[:postgresql][:version] = "8.3" + elsif platform_version =~ /.*sid/ + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" + +when "ubuntu" + + if platform_version.to_f <= 9.04 + default[:postgresql][:version] = "8.3" + else + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" + +when "fedora" + + if platform_version.to_f <= 12 + default[:postgresql][:version] = "8.3" + else + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/var/lib/pgsql/data" + +when "redhat","centos" + + default[:postgresql][:version] = "8.4" + set[:postgresql][:dir] = "/var/lib/pgsql/data" + +when "suse" + + if platform_version.to_f <= 11.1 + default[:postgresql][:version] = "8.3" + else + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/var/lib/pgsql/data" + +else + default[:postgresql][:version] = "8.4" + set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,51 @@ +{ + "name": "postgresql", + "description": "Installs and configures postgresql for clients or servers", + "long_description": "= DESCRIPTION:\n\nInstalls and configures postgresql client or server.\n\n= REQUIREMENTS:\n\n== Platform:\n\nTested on CentOS 5.5, Ubuntu 10.04 but should support centos, redhat, fedora, suse, ubuntu and debian.\n\n== Cookbooks:\n\n= ATTRIBUTES: \n\n* postgresql[:dir] - configuration file location.\n* postgresql[:version] - Version of postgresql to use. Configured in attributes based on platform.\n* postgresql[:ssl] - used on debian family installs to enable ssl support. The debian post installation script automatically builds the certificates.\n\n= USAGE:\n\nFor clients:\n\n include_recipe \"postgresql::client\"\n \nFor server: \n\n include_recipe \"postgresql::server\"\n \n(client is already included by server). This will check the platform that the node is and include either redhat family recipe (postgresql::server_redhat) or debian family (postgresql::server_debian) because the two styles differ quite a bit.\n\nThe templates provided by this co okbook will probably need to be tweaked for the local environment, no tuning parameters are specified in them. The templates are separated by family designation in the template directory, since Chef doesn't do \"platform family\" style file specificity.\n\n= LICENSE and AUTHOR:\n \nAuthor:: Joshua Timberman ()\n\nCopyright:: 2009-2010, Opscode, Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n", + "maintainer": "Opscode, Inc.", + "maintainer_email": "cookbooks at opscode.com", + "license": "Apache 2.0", + "platforms": { + "rhel": [ + + ], + "centos": [ + + ], + "fedora": [ + + ], + "ubuntu": [ + + ], + "debian": [ + + ], + "suse": [ + + ] + }, + "dependencies": { + }, + "recommendations": { + }, + "suggestions": { + }, + "conflicting": { + }, + "providing": { + }, + "replacing": { + }, + "attributes": { + }, + "groupings": { + }, + "recipes": { + "postgresql": "Empty, use one of the other recipes", + "postgresql::client": "Installs postgresql client package(s)", + "postgresql::server": "Installs postgresql server packages, debian family style", + "postgresql::redhat": "Installs postgresql server packages, redhat family style" + }, + "version": "0.11.1" +} \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,15 @@ +maintainer "Opscode, Inc." +maintainer_email "cookbooks at opscode.com" +license "Apache 2.0" +description "Installs and configures postgresql for clients or servers" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.11.1" +recipe "postgresql", "Empty, use one of the other recipes" +recipe "postgresql::client", "Installs postgresql client package(s)" +recipe "postgresql::server", "Installs postgresql server packages, templates" +recipe "postgresql::redhat", "Installs postgresql server packages, redhat family style" +recipe "postgresql::server", "Installs postgresql server packages, debian family style" + +%w{rhel centos fedora ubuntu debian suse}.each do |os| + supports os +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,27 @@ +# +# Cookbook Name:: postgresql +# Recipe:: client +# +# Copyright 2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +case node.platform +when "ubuntu","debian" + package "postgresql-client" +when "fedora","suse" + package "postgresql-devel" +when "redhat","centos" + package "postgresql#{node.postgresql.version.split('.').join}-devel" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,20 @@ +# +# Cookbook Name:: postgresql +# Recipe:: default +# +# Copyright 2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,36 @@ +#/postgresql.conf. +# Cookbook Name:: postgresql +# Recipe:: server +# +# Copyright 2009-2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" + +case node[:postgresql][:version] +when "8.3" + node.default[:postgresql][:ssl] = "off" +when "8.4" + node.default[:postgresql][:ssl] = "true" +end + +# Include the right "family" recipe for installing the server +# since they do things slightly differently. +case node.platform +when "redhat", "centos", "fedora", "suse" + include_recipe "postgresql::server_redhat" +when "debian", "ubuntu" + include_recipe "postgresql::server_debian" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,62 @@ +#/postgresql.conf. +# Cookbook Name:: postgresql +# Recipe:: server +# +# Copyright 2009-2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" + +case node[:postgresql][:version] +when "8.3" + node.default[:postgresql][:ssl] = "off" +when "8.4" + node.default[:postgresql][:ssl] = "true" +end + +package "postgresql" + +case node.platform + when "ubuntu" + if node.platform_version.to_f >= 11.04 + postgresql_service = "postgresql" + else + postgresql_service = "postgresql-#{node.postgresql.version}" + end + when "debian" + postgresql_service = "postgresql-#{node.postgresql.version}" +end + +service "postgresql" do + service_name postgresql_service + supports :restart => true, :status => true, :reload => true + action :nothing +end + +template "#{node[:postgresql][:dir]}/pg_hba.conf" do + source "debian.pg_hba.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :reload, resources(:service => "postgresql") +end + +template "#{node[:postgresql][:dir]}/postgresql.conf" do + source "debian.postgresql.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :restart, resources(:service => "postgresql") +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,84 @@ +#/postgresql.conf. +# Cookbook Name:: postgresql +# Recipe:: server +# +# Copyright 2009-2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" + +# Create a group and user like the package will. +# Otherwise the templates fail. + +group "postgres" do + # Workaround lack of option for -r and -o... + group_name "-r -o postgres" + not_if { Etc.getgrnam("postgres") } + gid 26 +end + +user "postgres" do + # Workaround lack of option for -M and -n... + username "-M -n postgres" + not_if { Etc.getpwnam("postgres") } + shell "/bin/bash" + comment "PostgreSQL Server" + home "/var/lib/pgsql" + gid "postgres" + system true + uid 26 + supports :non_unique => true +end + +package "postgresql" do + case node.platform + when "redhat","centos" + package_name "postgresql#{node.postgresql.version.split('.').join}" + else + package_name "postgresql" + end +end + +case node.platform +when "redhat","centos" + package "postgresql#{node.postgresql.version.split('.').join}-server" +when "fedora","suse" + package "postgresql-server" +end + +execute "/sbin/service postgresql initdb" do + not_if { ::FileTest.exist?(File.join(node.postgresql.dir, "PG_VERSION")) } +end + +service "postgresql" do + supports :restart => true, :status => true, :reload => true + action [:enable, :start] +end + +template "#{node[:postgresql][:dir]}/pg_hba.conf" do + source "redhat.pg_hba.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :reload, resources(:service => "postgresql") +end + +template "#{node[:postgresql][:dir]}/postgresql.conf" do + source "redhat.postgresql.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :restart, resources(:service => "postgresql") +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,83 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the +# PostgreSQL documentation for a complete description +# of this file. A short synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTION] +# host DATABASE USER CIDR-ADDRESS METHOD [OPTION] +# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION] +# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: "local" is a Unix-domain socket, +# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an +# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. +# +# DATABASE can be "all", "sameuser", "samerole", a database name, or +# a comma-separated list thereof. +# +# USER can be "all", a user name, a group name prefixed with "+", or +# a comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names from +# a separate file. +# +# CIDR-ADDRESS specifies the set of hosts the record matches. +# It is made up of an IP address and a CIDR mask that is an integer +# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies +# the number of significant bits in the mask. Alternatively, you can write +# an IP address and netmask in separate columns to specify the set of hosts. +# +# METHOD can be "trust", "reject", "md5", "crypt", "password", "gss", "sspi", +# "krb5", "ident", "pam" or "ldap". Note that "password" sends passwords +# in clear text; "md5" is preferred since it sends encrypted passwords. +# +# OPTION is the ident map or the name of the PAM service, depending on METHOD. +# +# Database and user names containing spaces, commas, quotes and other special +# characters must be quoted. Quoting one of the keywords "all", "sameuser" or +# "samerole" makes the name lose its special character, and just match a +# database or username with that name. +# +# This file is read on server startup and when the postmaster receives +# a SIGHUP signal. If you edit the file on a running system, you have +# to SIGHUP the postmaster for the changes to take effect. You can use +# "pg_ctl reload" to do that. + +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL listen +# on a non-local interface via the listen_addresses configuration parameter, +# or via the -i or -h command line switches. +# + + + + +# DO NOT DISABLE! +# If you change this first entry you will need to make sure that the +# database +# super user can access the database using some other method. +# Noninteractive +# access to all databases is required during automatic maintenance +# (autovacuum, daily cronjob, replication, and similar tasks). +# +# Database administrative login by UNIX sockets +local all postgres trust + +# TYPE DATABASE USER CIDR-ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all trust +# IPv4 local connections: +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,499 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The "=" is optional.) Whitespace may be used. Comments are introduced with +# "#" anywhere on a line. The complete list of parameter names and allowed +# values can be found in the PostgreSQL documentation. +# +# The commented-out settings shown in this file represent the default values. +# Re-commenting a setting is NOT sufficient to revert it to the default value; +# you need to reload the server. +# +# This file is read on server startup and when the server receives a SIGHUP +# signal. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload". Some +# parameters, which are marked below, require a server shutdown and restart to +# take effect. +# +# Any parameter can also be given as a command-line option to the server, e.g., +# "postgres -c log_connections=on". Some paramters can be changed at run time +# with the "SET" SQL command. +# +# Memory units: kB = kilobytes MB = megabytes GB = gigabytes +# Time units: ms = milliseconds s = seconds min = minutes h = hours d = days + + +#------------------------------------------------------------------------------ +# FILE LOCATIONS +#------------------------------------------------------------------------------ + +# The default values of these variables are driven from the -D command-line +# option or PGDATA environment variable, represented here as ConfigDir. + +data_directory = '/var/lib/postgresql/<%= node.postgresql.version -%>/main' # use data in another directory + # (change requires restart) +hba_file = '/etc/postgresql/<%= node.postgresql.version -%>/main/pg_hba.conf' # host-based authentication file + # (change requires restart) +ident_file = '/etc/postgresql/<%= node.postgresql.version -%>/main/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +external_pid_file = '/var/run/postgresql/<%= node.postgresql.version -%>-main.pid' # write an extra PID file + # (change requires restart) + + +#------------------------------------------------------------------------------ +# CONNECTIONS AND AUTHENTICATION +#------------------------------------------------------------------------------ + +# - Connection Settings - + +#listen_addresses = 'localhost' # what IP address(es) to listen on; + # comma-separated list of addresses; + # defaults to 'localhost', '*' = all + # (change requires restart) +port = 5432 # (change requires restart) +max_connections = 100 # (change requires restart) +# Note: Increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). You might +# also need to raise shared_buffers to support more connections. +#superuser_reserved_connections = 3 # (change requires restart) +unix_socket_directory = '/var/run/postgresql' # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # begin with 0 to use octal notation + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - Security and Authentication - + +#authentication_timeout = 1min # 1s-600s +ssl = <%= node.postgresql.ssl -%> # (change requires restart) +#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers + # (change requires restart) +#password_encryption = on +#db_user_namespace = off + +# Kerberos and GSSAPI +#krb_server_keyfile = '' # (change requires restart) +#krb_srvname = 'postgres' # (change requires restart, Kerberos only) +#krb_server_hostname = '' # empty string matches any keytab entry + # (change requires restart, Kerberos only) +#krb_caseins_users = off # (change requires restart) +#krb_realm = '' # (change requires restart) + +# - TCP Keepalives - +# see "man 7 tcp" for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default + + +#------------------------------------------------------------------------------ +# RESOURCE USAGE (except WAL) +#------------------------------------------------------------------------------ + +# - Memory - + +shared_buffers = 24MB # min 128kB or max_connections*16kB + # (change requires restart) +#temp_buffers = 8MB # min 800kB +#max_prepared_transactions = 5 # can be 0 or more + # (change requires restart) +# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +#work_mem = 1MB # min 64kB +#maintenance_work_mem = 16MB # min 1MB +#max_stack_depth = 2MB # min 100kB + +# - Free Space Map - + +<% if node.postgresql.version == "8.4" %> +<% # max_fsm_pages doesn't exist on 8.4 %> +#max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each + # (change requires restart) +<% else %> +max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each + # (change requires restart) +<% end %> +#max_fsm_relations = 1000 # min 100, ~70 bytes each + # (change requires restart) + +# - Kernel Resource Usage - + +#max_files_per_process = 1000 # min 25 + # (change requires restart) +#shared_preload_libraries = '' # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0 # 0-1000 milliseconds +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 10 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 1-10000 credits + +# - Background Writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round +#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round + + +#------------------------------------------------------------------------------ +# WRITE AHEAD LOG +#------------------------------------------------------------------------------ + +# - Settings - + +#fsync = on # turns forced synchronization on or off +#synchronous_commit = on # immediate fsync at commit +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_buffers = 64kB # min 32kB + # (change requires restart) +#wal_writer_delay = 200ms # 1-10000 milliseconds + +#commit_delay = 0 # range 0-100000, in microseconds +#commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min # range 30s-1h +#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0 +#checkpoint_warning = 30s # 0 is off + +# - Archiving - + +#archive_mode = off # allows archiving to be done + # (change requires restart) +#archive_command = '' # command to use to archive a logfile segment +#archive_timeout = 0 # force a logfile segment switch after this + # time; 0 is off + + +#------------------------------------------------------------------------------ +# QUERY TUNING +#------------------------------------------------------------------------------ + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +#effective_cache_size = 128MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 + +# - Other Planner Options - + +#default_statistics_target = 10 # range 1-1000 +#constraint_exclusion = off +#from_collapse_limit = 8 +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOIN clauses + + +#------------------------------------------------------------------------------ +# ERROR REPORTING AND LOGGING +#------------------------------------------------------------------------------ + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, csvlog, syslog and eventlog, + # depending on platform. csvlog + # requires logging_collector to be on. + +# This is used when logging to stderr: +#logging_collector = off # Enable capturing of stderr and csvlog + # into log files. Required to be on for + # csvlogs. + # (change requires restart) + +# These are only used if logging_collector is on: +#log_directory = 'pg_log' # directory where log files are written, + # can be absolute or relative to PGDATA +#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, + # can include strftime() escapes +#log_truncate_on_rotation = off # If on, an existing log file of the + # same name as the new log file will be + # truncated rather than appended to. + # But such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. +#log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 to disable. +#log_rotation_size = 10MB # Automatic rotation of logfiles will + # happen after that much log output. + # 0 to disable. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + + +# - When to Log - + +#client_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error + +#log_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_error_verbosity = default # terse, default, or verbose messages + +#log_min_error_statement = error # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations, > 0 logs only + # statements running at least this time. + +#silent_mode = off # DO NOT USE without syslog or + # logging_collector + # (change requires restart) + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = off +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_hostname = off +log_line_prefix = '%t ' # special values: + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %p = process ID + # %t = timestamp without milliseconds + # %m = timestamp with milliseconds + # %i = command tag + # %c = session ID + # %l = session line number + # %s = session start timestamp + # %v = virtual transaction ID + # %x = transaction ID (0 if none) + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_lock_waits = off # log lock waits >= deadlock_timeout +#log_statement = 'none' # none, ddl, mod, all +#log_temp_files = -1 # log temporary files equal or larger + # than specified size; + # -1 disables, 0 logs all temp files +#log_timezone = unknown # actually, defaults to TZ environment + # setting + + +#------------------------------------------------------------------------------ +# RUNTIME STATISTICS +#------------------------------------------------------------------------------ + +# - Query/Index Statistics Collector - + +#track_activities = on +#track_counts = on +#update_process_title = on + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM PARAMETERS +#------------------------------------------------------------------------------ + +#autovacuum = on # Enable autovacuum subprocess? 'on' + # requires track_counts to also be on. +#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and + # their durations, > 0 logs only + # actions running at least that time. +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 50 # min number of row updates before + # vacuum +#autovacuum_analyze_threshold = 50 # min number of row updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = 20 # default vacuum cost delay for + # autovacuum, -1 means use + # vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#search_path = '"$user",public' # schema names +#default_tablespace = '' # a tablespace name, '' uses the default +#temp_tablespaces = '' # a list of tablespace names, '' uses + # only default tablespace +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#session_replication_role = 'origin' +#statement_timeout = 0 # 0 is disabled +#vacuum_freeze_min_age = 100000000 +#xmlbinary = 'base64' +#xmloption = 'content' + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +#timezone = unknown # actually, defaults to TZ environment + # setting +#timezone_abbreviations = 'Default' # Select the set of available time zone + # abbreviations. Currently, there are + # Default + # Australia + # India + # You can create your own file in + # share/timezonesets/. +#extra_float_digits = 0 # min -15, max 2 +#client_encoding = sql_ascii # actually, defaults to database + # encoding + +# These settings are initialized by initdb, but they can be changed. +#lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +#lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +#lc_numeric = 'en_US.UTF-8' # locale for number formatting +#lc_time = 'en_US.UTF-8' # locale for time formatting + +# default configuration for text search +default_text_search_config = 'pg_catalog.english' + +# - Other Defaults - + +#explain_pretty_print = on +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +# Note: Each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. + + +#------------------------------------------------------------------------------ +# VERSION/PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#add_missing_from = off +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#regex_flavor = advanced # advanced, extended, or basic +#sql_inheritance = on +#standard_conforming_strings = off +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +#custom_variable_classes = '' # list of custom variable class names Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,74 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the +# PostgreSQL documentation for a complete description +# of this file. A short synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTIONS] +# host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] +# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] +# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: "local" is a Unix-domain socket, +# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an +# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. +# +# DATABASE can be "all", "sameuser", "samerole", a database name, or +# a comma-separated list thereof. +# +# USER can be "all", a user name, a group name prefixed with "+", or +# a comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names from +# a separate file. +# +# CIDR-ADDRESS specifies the set of hosts the record matches. +# It is made up of an IP address and a CIDR mask that is an integer +# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies +# the number of significant bits in the mask. Alternatively, you can write +# an IP address and netmask in separate columns to specify the set of hosts. +# +# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", "krb5", +# "ident", "pam", "ldap" or "cert". Note that "password" sends passwords +# in clear text; "md5" is preferred since it sends encrypted passwords. +# +# OPTIONS are a set of options for the authentication in the format +# NAME=VALUE. The available options depend on the different authentication +# methods - refer to the "Client Authentication" section in the documentation +# for a list of which options are available for which authentication methods. +# +# Database and user names containing spaces, commas, quotes and other special +# characters must be quoted. Quoting one of the keywords "all", "sameuser" or +# "samerole" makes the name lose its special character, and just match a +# database or username with that name. +# +# This file is read on server startup and when the postmaster receives +# a SIGHUP signal. If you edit the file on a running system, you have +# to SIGHUP the postmaster for the changes to take effect. You can use +# "pg_ctl reload" to do that. + +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL listen +# on a non-local interface via the listen_addresses configuration parameter, +# or via the -i or -h command line switches. +# + + + +# TYPE DATABASE USER CIDR-ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all ident +# IPv4 local connections: +host all all 127.0.0.1/32 ident +# IPv6 local connections: +host all all ::1/128 ident Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,501 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The "=" is optional.) Whitespace may be used. Comments are introduced with +# "#" anywhere on a line. The complete list of parameter names and allowed +# values can be found in the PostgreSQL documentation. +# +# The commented-out settings shown in this file represent the default values. +# Re-commenting a setting is NOT sufficient to revert it to the default value; +# you need to reload the server. +# +# This file is read on server startup and when the server receives a SIGHUP +# signal. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload". Some +# parameters, which are marked below, require a server shutdown and restart to +# take effect. +# +# Any parameter can also be given as a command-line option to the server, e.g., +# "postgres -c log_connections=on". Some parameters can be changed at run time +# with the "SET" SQL command. +# +# Memory units: kB = kilobytes Time units: ms = milliseconds +# MB = megabytes s = seconds +# GB = gigabytes min = minutes +# h = hours +# d = days + + +#------------------------------------------------------------------------------ +# FILE LOCATIONS +#------------------------------------------------------------------------------ + +# The default values of these variables are driven from the -D command-line +# option or PGDATA environment variable, represented here as ConfigDir. + +#data_directory = 'ConfigDir' # use data in another directory + # (change requires restart) +#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file + # (change requires restart) +#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +#external_pid_file = '(none)' # write an extra PID file + # (change requires restart) + + +#------------------------------------------------------------------------------ +# CONNECTIONS AND AUTHENTICATION +#------------------------------------------------------------------------------ + +# - Connection Settings - + +#listen_addresses = 'localhost' # what IP address(es) to listen on; + # comma-separated list of addresses; + # defaults to 'localhost', '*' = all + # (change requires restart) +#port = 5432 # (change requires restart) +max_connections = 100 # (change requires restart) +# Note: Increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). +#superuser_reserved_connections = 3 # (change requires restart) +#unix_socket_directory = '' # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # begin with 0 to use octal notation + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - Security and Authentication - + +#authentication_timeout = 1min # 1s-600s +#ssl = off # (change requires restart) +#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers + # (change requires restart) +#ssl_renegotiation_limit = 512MB # amount of data between renegotiations +#password_encryption = on +#db_user_namespace = off + +# Kerberos and GSSAPI +#krb_server_keyfile = '' +#krb_srvname = 'postgres' # (Kerberos only) +#krb_caseins_users = off + +# - TCP Keepalives - +# see "man 7 tcp" for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default + + +#------------------------------------------------------------------------------ +# RESOURCE USAGE (except WAL) +#------------------------------------------------------------------------------ + +# - Memory - + +shared_buffers = 32MB # min 128kB + # (change requires restart) +#temp_buffers = 8MB # min 800kB +#max_prepared_transactions = 0 # zero disables the feature + # (change requires restart) +# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +# It is not advisable to set max_prepared_transactions nonzero unless you +# actively intend to use prepared transactions. +#work_mem = 1MB # min 64kB +#maintenance_work_mem = 16MB # min 1MB +#max_stack_depth = 2MB # min 100kB + +# - Kernel Resource Usage - + +#max_files_per_process = 1000 # min 25 + # (change requires restart) +#shared_preload_libraries = '' # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0ms # 0-100 milliseconds +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 10 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 1-10000 credits + +# - Background Writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round +#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round + +# - Asynchronous Behavior - + +#effective_io_concurrency = 1 # 1-1000. 0 disables prefetching + + +#------------------------------------------------------------------------------ +# WRITE AHEAD LOG +#------------------------------------------------------------------------------ + +# - Settings - + +#fsync = on # turns forced synchronization on or off +#synchronous_commit = on # immediate fsync at commit +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_buffers = 64kB # min 32kB + # (change requires restart) +#wal_writer_delay = 200ms # 1-10000 milliseconds + +#commit_delay = 0 # range 0-100000, in microseconds +#commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min # range 30s-1h +#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0 +#checkpoint_warning = 30s # 0 disables + +# - Archiving - + +#archive_mode = off # allows archiving to be done + # (change requires restart) +#archive_command = '' # command to use to archive a logfile segment +#archive_timeout = 0 # force a logfile segment switch after this + # number of seconds; 0 disables + + +#------------------------------------------------------------------------------ +# QUERY TUNING +#------------------------------------------------------------------------------ + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +#effective_cache_size = 128MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 + +# - Other Planner Options - + +#default_statistics_target = 100 # range 1-10000 +#constraint_exclusion = partition # on, off, or partition +#cursor_tuple_fraction = 0.1 # range 0.0-1.0 +#from_collapse_limit = 8 +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOIN clauses + + +#------------------------------------------------------------------------------ +# ERROR REPORTING AND LOGGING +#------------------------------------------------------------------------------ + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, csvlog, syslog and eventlog, + # depending on platform. csvlog + # requires logging_collector to be on. + +# This is used when logging to stderr: +logging_collector = on # Enable capturing of stderr and csvlog + # into log files. Required to be on for + # csvlogs. + # (change requires restart) + +# These are only used if logging_collector is on: +log_directory = 'pg_log' # directory where log files are written, + # can be absolute or relative to PGDATA +log_filename = 'postgresql-%a.log' # log file name pattern, + # can include strftime() escapes +log_truncate_on_rotation = on # If on, an existing log file of the + # same name as the new log file will be + # truncated rather than appended to. + # But such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. +log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 disables. +log_rotation_size = 0 # Automatic rotation of logfiles will + # happen after that much log output. + # 0 disables. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + +#silent_mode = off # Run server silently. + # DO NOT USE without syslog or + # logging_collector + # (change requires restart) + + +# - When to Log - + +#client_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error + +#log_min_messages = warning # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_error_verbosity = default # terse, default, or verbose messages + +#log_min_error_statement = error # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations, > 0 logs only + # statements running at least this number + # of milliseconds + + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = on +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_hostname = off +#log_line_prefix = '' # special values: + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %p = process ID + # %t = timestamp without milliseconds + # %m = timestamp with milliseconds + # %i = command tag + # %c = session ID + # %l = session line number + # %s = session start timestamp + # %v = virtual transaction ID + # %x = transaction ID (0 if none) + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_lock_waits = off # log lock waits >= deadlock_timeout +#log_statement = 'none' # none, ddl, mod, all +#log_temp_files = -1 # log temporary files equal or larger + # than the specified size in kilobytes; + # -1 disables, 0 logs all temp files +#log_timezone = unknown # actually, defaults to TZ environment + # setting + + +#------------------------------------------------------------------------------ +# RUNTIME STATISTICS +#------------------------------------------------------------------------------ + +# - Query/Index Statistics Collector - + +#track_activities = on +#track_counts = on +#track_functions = none # none, pl, all +#track_activity_query_size = 1024 +#update_process_title = on +#stats_temp_directory = 'pg_stat_tmp' + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM PARAMETERS +#------------------------------------------------------------------------------ + +#autovacuum = on # Enable autovacuum subprocess? 'on' + # requires track_counts to also be on. +#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and + # their durations, > 0 logs only + # actions running at least this number + # of milliseconds. +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 50 # min number of row updates before + # vacuum +#autovacuum_analyze_threshold = 50 # min number of row updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for + # autovacuum, in milliseconds; + # -1 means use vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#search_path = '"$user",public' # schema names +#default_tablespace = '' # a tablespace name, '' uses the default +#temp_tablespaces = '' # a list of tablespace names, '' uses + # only default tablespace +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#session_replication_role = 'origin' +#statement_timeout = 0 # in milliseconds, 0 is disabled +#vacuum_freeze_min_age = 50000000 +#vacuum_freeze_table_age = 150000000 +#xmlbinary = 'base64' +#xmloption = 'content' + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +#intervalstyle = 'postgres' +#timezone = unknown # actually, defaults to TZ environment + # setting +#timezone_abbreviations = 'Default' # Select the set of available time zone + # abbreviations. Currently, there are + # Default + # Australia + # India + # You can create your own file in + # share/timezonesets/. +#extra_float_digits = 0 # min -15, max 2 +#client_encoding = sql_ascii # actually, defaults to database + # encoding + +# These settings are initialized by initdb, but they can be changed. +lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +lc_numeric = 'en_US.UTF-8' # locale for number formatting +lc_time = 'en_US.UTF-8' # locale for time formatting + +# default configuration for text search +default_text_search_config = 'pg_catalog.english' + +# - Other Defaults - + +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +# Note: Each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. + + +#------------------------------------------------------------------------------ +# VERSION/PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#add_missing_from = off +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#regex_flavor = advanced # advanced, extended, or basic +#sql_inheritance = on +#standard_conforming_strings = off +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +#custom_variable_classes = '' # list of custom variable class names Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,7 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. + + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,22 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +# Default attributes. +# For now, only directories where software is going to be installed. + +default[:galaxy][:dir] = "/nfs/software/galaxy" +default[:blast][:dir] = "/nfs/software/blast" +default[:globus][:simpleCA] = "/var/lib/globus/simple_ca" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,2 @@ ++auto.master +/nfs /etc/auto.nfs Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,92 @@ +# +# SSLeay example configuration file. +# This is mostly being used for generation of certificate requests. +# + +RANDFILE = $ENV::HOME/.rnd + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = /var/lib/globus/simple_ca/ +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = x509v3_extensions # The extentions to add to the cert +default_days = 365 # how long to certify for +default_crl_days= 365 # DEE 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = optional +stateOrProvinceName = optional +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +x509_extensions = v3_ca +req_extensions = v3_req + +[ req_distinguished_name ] +# BEGIN CONFIG +0.organizationName = Level 0 Organization +0.organizationName_default = Grid +0.organizationalUnitName = Level 0 Organizational Unit +0.organizationalUnitName_default = DemoGrid +commonName = Name (e.g., John M. Smith) +commonName_max = 64 +# END CONFIG + +[ v3_ca ] +basicConstraints = critical,CA:true +subjectKeyIdentifier = hash +nsCertType = sslCA,emailCA,objCA + +[ v3_req ] +nsCertType = sslCA,emailCA,objCA + +[ x509v3_extensions ] +nsCertType = objsign,email,server,client + + + + + + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,19 @@ +# If you do not set values for the NEED_ options, they will be attempted +# autodetected; this should be sufficient for most people. Valid alternatives +# for the NEED_ options are "yes" and "no". + +# Do you want to start the statd daemon? It is not needed for NFSv4. +NEED_STATD=no + +# Options for rpc.statd. +# Should rpc.statd listen on a specific port? This is especially useful +# when you have a port-based firewall. To use a fixed port, set this +# this variable to a statd argument like: "--port 4000 --outgoing-port 4001". +# For more information, see rpc.statd(8) or http://wiki.debian.org/?SecuringNFS +STATDOPTS= + +# Do you want to start the idmapd daemon? It is only needed for NFSv4. +NEED_IDMAPD=yes + +# Do you want to start the gssd daemon? It is required for Kerberos mounts. +NEED_GSSD= Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,18 @@ +# Number of servers to start up +RPCNFSDCOUNT=8 + +# Runtime priority of server (see nice(1)) +RPCNFSDPRIORITY=0 + +# Options for rpc.mountd. +# If you have a port-based firewall, you might want to set up +# a fixed port here using the --port option. For more information, +# see rpc.mountd(8) or http://wiki.debian.org/?SecuringNFS +RPCMOUNTDOPTS="--manage-gids --port 34000" + +# Do you want to start the svcgssd daemon? It is only required for Kerberos +# exports. Valid alternatives are "yes" and "no"; the default is "no". +NEED_SVCGSSD= + +# Options for rpc.svcgssd. +RPCSVCGSSDOPTS= Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,35 @@ +# +# /etc/defaults/nis Configuration settings for the NIS daemons. +# + +# Are we a NIS server and if so what kind (values: false, slave, master)? +NISSERVER=master + +# Are we a NIS client? +NISCLIENT=false + +# Location of the master NIS password file (for yppasswdd). +# If you change this make sure it matches with /var/yp/Makefile. +YPPWDDIR=/etc + +# Do we allow the user to use ypchsh and/or ypchfn ? The YPCHANGEOK +# fields are passed with -e to yppasswdd, see it's manpage. +# Possible values: "chsh", "chfn", "chsh,chfn" +YPCHANGEOK=chsh + +# NIS master server. If this is configured on a slave server then ypinit +# will be run each time NIS is started. +NISMASTER= + +# Additional options to be given to ypserv when it is started. +YPSERVARGS= + +# Additional options to be given to ypbind when it is started. +YPBINDARGS=-no-dbus + +# Additional options to be given to yppasswdd when it is started. Note +# that if -p is set then the YPPWDDIR above should be empty. +YPPASSWDDARGS= + +# Additional options to be given to ypxfrd when it is started. +YPXFRDARGS= Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,39 @@ +{ + "dependencies": { + + }, + "platforms": { + + }, + "long_description": "= DESCRIPTION:\n\n= REQUIREMENTS:\n\n= ATTRIBUTES:\n\n= USAGE:\n\n", + "providing": { + + }, + "maintainer": "YOUR_COMPANY_NAME", + "recipes": { + + }, + "replacing": { + + }, + "license": "All rights reserved", + "maintainer_email": "YOUR_EMAIL", + "groupings": { + + }, + "version": "0.0.1", + "recommendations": { + + }, + "description": "Installs/Configures demogrid", + "suggestions": { + + }, + "name": "demogrid", + "attributes": { + + }, + "conflicting": { + + } +} \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures Globus Provision" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,139 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: CA certificate +## +## This recipe installs the CA certificate used to generate the user and +## host certificates in a Globus Provision instance. If no CA certificate +## was specified explicitly in the configuration file, then a self-signed +## certificate will be created on-the-fly by ``gp-start``. +## +## The certificate is installed not just as a trusted certificate, but also +## as a certificate that will be recognized by ``grid-cert-request`` when +## requesting a certificate. +## +## Note that this only installs the certificate, not the private key. To +## set up a node to act as an actual CA (for example, to use with MyProxy) +## use the ``simpleca`` recipe. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +require "openssl" + +r = cookbook_file "#{node[:scratch_dir]}/gp-ca-cert.pem" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" + action :nothing +end + +r.run_action(:create) + +node.default[:ca_cert] = OpenSSL::X509::Certificate.new(File.read("#{node[:scratch_dir]}/gp-ca-cert.pem")) +node.default[:ca_cert_hash] = "%08x" % node.default[:ca_cert].subject.hash + +subject = {} +node.default[:ca_cert].subject.to_a.each do |name,value,n| + subject[name.downcase]=value +end +node.default[:ca_cert_subject] = subject +# Create the grid-security directory + +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + +directory "/etc/grid-security/certificates" do + owner "root" + group "root" + mode "0755" + action :create +end + + +# Copy the certificate itself. +# Note that the certificate is generated by demogrid-prepare, and then +# placed in the cookbook's files directory. + +cookbook_file "/etc/grid-security/certificates/#{node.default[:ca_cert_hash]}.0" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" +end + +# Copy a lot of other supporting files. + +template "/etc/grid-security/certificates/#{node.default[:ca_cert_hash]}.signing_policy" do + source "signing_policy.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert] + ) +end + +template "/etc/grid-security/certificates/globus-user-ssl.conf.#{node.default[:ca_cert_hash]}" do + source "globus-ssl.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert], + :type => :user + ) +end + +template "/etc/grid-security/certificates/globus-host-ssl.conf.#{node.default[:ca_cert_hash]}" do + source "globus-ssl.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert], + :type => :host + ) +end + +template "/etc/grid-security/certificates/grid-security.conf.#{node.default[:ca_cert_hash]}" do + source "grid-security.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :subject => node.default[:ca_cert_subject] + ) +end + +link "/etc/grid-security/globus-host-ssl.conf" do + to "/etc/grid-security/certificates/globus-host-ssl.conf.#{node.default[:ca_cert_hash]}" +end + +link "/etc/grid-security/globus-user-ssl.conf" do + to "/etc/grid-security/certificates/globus-user-ssl.conf.#{node.default[:ca_cert_hash]}" +end + +link "/etc/grid-security/grid-security.conf" do + to "/etc/grid-security/certificates/grid-security.conf.#{node.default[:ca_cert_hash]}" +end + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# RECIPE: Default recipe. +# +# This cookbook has no default recipe. +# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,154 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Domain users +## +## This recipe creates the users in a domain. +## +## This recipe will work both on a node that has the ``nfs_server`` and/or +## ``nis_server`` recipes on it (in which case global accounts will be +## created) and on a node that is not an NFS/NIS server (in which case, +## local accounts will be created). +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# Necessary to create users +package "libshadow-ruby1.8" do + action :install +end + +# Create the "Globus Provision Admins" group. +# Users in this group have passwordless sudo access +# on all nodes. +group "gp-admins" do + gid 3000 +end + + +# The :users attribute is part of the generated topology.rb file, +# and contains information on a domain's users (username, +# password, etc.) +users = gp_domain[:users].to_hash + +if gp_domain[:nfs_server] + homedirs = "/nfs/home" +else + homedirs = "/home" +end + + +# We start by creating the domain's users. +users.values.each do |u| + # Create the user + user u[:id] do + not_if "id #{u[:id]}" + comment u[:description] + gid 100 + home "#{homedirs}/#{u[:id]}" + password u[:password_hash] + shell "/bin/bash" + supports :manage_home => true + notifies :run, "execute[rebuild_yp]" + end + + auth_keys = "#{homedirs}/#{u[:id]}/.ssh/authorized_keys" + key_file = "#{homedirs}/#{u[:id]}/.ssh/id_rsa" + pkey_file = key_file+".pub" + + # Create passwordless SSH key + execute "ssh-keygen" do + not_if do File.exists?(key_file) end + user u[:id] + command "ssh-keygen -N \"\" -f #{key_file}" + action :run + end + + file auth_keys do + owner u[:id] + mode "0644" + action :create + end + + # Create the authorized_keys file. + execute "add_pkey" do + only_if do + pkey = File.read(pkey_file) + File.read(auth_keys).index(pkey).nil? + end + user "root" + group "root" + command "cat #{pkey_file} >> #{auth_keys}" + action :run + end + + execute "add_topology_pkey" do + only_if do + u[:ssh_pkey] and File.read(auth_keys).index(u[:ssh_pkey]).nil? + end + user "root" + group "root" + command "echo #{u[:ssh_pkey]} >> #{auth_keys}" + action :run + end + + group "gp-admins" do + only_if do u[:admin] end + members [u[:id]] + append true + action :modify + end + +end + +# If we specified that this domain's users will use certificates +# for authentication, then we need to copy the certificate and key +# into their .globus directory. +users.values.select{|u| u[:certificate] == "generated"}.each do |u| + directory "#{homedirs}/#{u[:id]}/.globus" do + owner u[:id] + group "users" + mode "0755" + action :create + end + + cookbook_file "#{homedirs}/#{u[:id]}/.globus/usercert.pem" do + source "#{u[:id]}_cert.pem" + mode 0644 + owner u[:id] + group "users" + end + + cookbook_file "#{homedirs}/#{u[:id]}/.globus/userkey.pem" do + source "#{u[:id]}_key.pem" + mode 0400 + owner u[:id] + group "users" + end +end + +# We need to run this for changes to take effect in the NIS server. +execute "rebuild_yp" do + only_if do gp_domain[:nis_server] end + user "root" + group "root" + command "make -C /var/yp" + action :nothing +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: EC2 AMI software pre-install +## +## This recipe preinstalls a subset of the software used on a Globus Provision +## instance to speed up subsequent deployments. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +package "libshadow-ruby1.8" +package "nis" +package "portmap" +package "nfs-common" +package "autofs" +package "xinetd" +package "libssl0.9.8" + +include_recipe "globus::client-tools" +package "globus-simple-ca" +package "myproxy-server" +package "globus-gridftp-server-progs" +package "libglobus-xio-gsi-driver-dev" + +include_recipe "condor::condor" +include_recipe "java" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Provision common actions +## +## This recipe performs actions that are common to all Globus Provision nodes. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# Copy the hosts file +cookbook_file "/etc/hosts" do + source "hosts" + mode 0644 + owner "root" + group "root" +end + +# Create a BASH profile file with Globus Provision variables +file "/etc/profile.d/globusprovision" do + mode 0644 + owner "root" + group "root" + content "export MYPROXY_SERVER=#{gp_domain[:myproxy_server]}" +end + +# Add passwordless access to members of the gp-admins group +execute "add_sudoers" do + line = "%gp-admins ALL=NOPASSWD: ALL" + only_if do + File.read("/etc/sudoers").index(line).nil? + end + user "root" + group "root" + command "echo \"#{line}\" >> /etc/sudoers" + action :run +end + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,57 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Gridmap file +## +## This recipe creates a gridmap file with the entries specified in the topoloy. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# Create grid-security directory. +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + +# If it does not exist, create an empty gridmap file. +file "/etc/grid-security/grid-mapfile" do + owner "root" + group "root" + mode "0644" + action :create +end + +# Create gridmap +# Note: Will be regenerated from scratch on subsequent runs of Chef. +# TODO: Read in existing gridmap, and merge it with provided one (shouldn't be hard +# to do, but not necessary right now) +gridmap = gp_domain[:gridmap].to_a +template "/etc/grid-security/grid-mapfile" do + source "gridmap.erb" + mode 0644 + owner "root" + group "root" + variables( + :gridmap => gridmap + ) +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,49 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Host certificate +## +## Adds a host certificate to the node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Create grid-security directory +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + + +# Copy the certificate and key. + +cookbook_file "/etc/grid-security/hostcert.pem" do + source "#{node[:node_id]}_cert.pem" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/hostkey.pem" do + source "#{node[:node_id]}_key.pem" + mode 0400 + owner "root" + group "root" +end + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,133 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NFS client +## +## Set up node so it will have access to its domain's NFS server. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# The nfs_server attribute is part of the generated topology.rb file, +# and contains the IP of the domain's NFS server. +server = gp_domain[:nfs_server_ip] + + +# Packages we need + +package "nfs-common" +package "autofs" + +# Set configuration options for NFSv4 +cookbook_file "/etc/default/nfs-common" do + source "nfs-common" + mode 0644 + owner "root" + group "root" + notifies :run, "execute[nfs services restart]", :immediately +end + + +# Set up the home directories so they will be automounted. + +if ! File.exists?("/nfs") + # Create the directory where the NFS directories will be mounted + directory "/nfs" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + # Create the directory where home directories will be mounted + directory "/nfs/home" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + # Create the directory where scratch directory will be mounted + directory "/nfs/scratch" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + # Create the directory where software directory will be mounted + directory "/nfs/software" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end +end + + +cookbook_file "/etc/auto.master" do + source "auto.master" + mode 0644 + owner "root" + group "root" +end + +template "/etc/auto.nfs" do + source "auto.nfs.erb" + mode 0644 + owner "root" + group "root" + variables( + :server => server + ) + notifies :restart, "service[autofs]", :immediately +end + +execute "nfs services restart" do + user "root" + group "root" + action :nothing + case node.platform + when "debian" + command "/etc/init.d/nfs-common restart" + when "ubuntu" + command "service idmapd --full-restart" + end +end + +service "autofs" + +# Add /nfs/software/bin to everyone's environment (we do this in /etc/enviroment +# instead of /etc/profile.d/ (which is BASH-specific) because daemons started by +# init scripts don't necessarily load BASH environment information. +# Note that if this file is modified and /nfs/software/bin is removed from the path, +# subsequent runs of Chef will replace it will a file with just the PATH variable +file "/etc/environment" do + only_if do + File.read("/etc/environment").index(/PATH=.*\/nfs\/software\/bin.*/).nil? + end + owner "root" + mode "0644" + content "PATH=\"/nfs/software/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games\"\n" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,152 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NFS Server +## +## Set up a domain's NFS server and its shared directories. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +subnet = nil + +# Install the NFS server package +package "nfs-kernel-server" do + action :install +end + + +# Configuration file with fixed port +cookbook_file "/etc/default/nfs-kernel-server" do + source "nfs-kernel-server" + mode 0644 + owner "root" + group "root" +end + +# Set configuration options for NFSv4 +cookbook_file "/etc/default/nfs-common" do + source "nfs-common" + mode 0644 + owner "root" + group "root" +end + +template "/etc/hosts.allow" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :allow + ) +end + +template "/etc/hosts.deny" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :deny + ) +end + +# Create directories + +# Home directories +directory "/nfs/home" do + owner "root" + group "root" + mode "0755" + recursive true + action :create +end + +# Scratch directory +# This is a kludge: it assumes that ephemeral storage will be mounted +# on /mnt. If it is not, the recipe should still work since /mnt +# has to be empty, but keeping the scratch directory there is not ideal. +# A more general-purpose solution would be preferable (ideally by +# specifying these shared directories in the topology) +directory "/mnt/scratch" do + owner "root" + group "root" + mode 01777 + recursive true + action :create +end + +link "/nfs/scratch" do + to "/mnt/scratch" +end + +# Software directories +directory "/nfs/software" do + owner "root" + group "root" + mode "0755" + recursive true + action :create +end + +# /nfs/software/bin will be in every user's $PATH +# For an executable in /nfs/software to be in the user's PATH, +# the corresponding recipe should create a symbolic link from +# /nfs/software/bin to the executable +directory "/nfs/software/bin" do + owner "root" + group "root" + mode "0755" + recursive true + action :create +end + +# Add exports +template "/etc/exports" do + source "exports.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet + ) + notifies :restart, "service[nfs-kernel-server]" + notifies :run, "execute[nfs services restart]" +end + + +# Restart NFS +service "nfs-kernel-server" + +execute "nfs services restart" do + user "root" + group "root" + action :nothing + case node.platform + when "debian" + command "/etc/init.d/nfs-common restart" + when "ubuntu" + command "service statd --full-restart; service idmapd --full-restart" + end +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,88 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NIS client +## +## Set up node so it will have access to its domain's NIS server, allowing +## domain users to log into it. +## +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# The nis_server attribute is part of the generated topology.rb file, +# and contains the IP of the domain's NFS/NIS server. +server = gp_domain[:nis_server_ip] + + +# Packages we need + +package "nis" +package "portmap" + + +# Modify various configuration files to enable access to the NIS server. + +execute "add_passwd_entry" do + only_if do + File.read("/etc/passwd").index("+::::::").nil? + end + user "root" + group "root" + command "echo +:::::: >> /etc/passwd" + action :run + notifies :restart, "service[nis]" +end + +execute "add_shadow_entry" do + only_if do + File.read("/etc/shadow").index("+::::::::").nil? + end + user "root" + group "root" + command "echo +:::::::: >> /etc/shadow" + action :run + notifies :restart, "service[nis]" +end + +execute "add_group_entry" do + only_if do + File.read("/etc/group").index("+:::").nil? + end + user "root" + group "root" + command "echo +::: >> /etc/group" + action :run + notifies :restart, "service[nis]" +end + +file "/etc/yp.conf" do + owner "root" + mode "0644" + content "ypserver #{server}" + notifies :restart, "service[nis]", :immediately +end + +# Restart NIS +service "nis" + +execute "update-rc.d nis defaults" do + user "root" + group "root" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,104 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NIS Server +## +## Set up an domain's NIS server. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +subnet = nil + +# Packages we need + +package "nis" +package "portmap" + + +# Only allow access to the nodes in that domain's subnet + +template "/etc/hosts.allow" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :allow + ) +end + +template "/etc/hosts.deny" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :deny + ) +end + +cookbook_file "/etc/default/nis" do + source "nis" + mode 0644 + owner "root" + group "root" + notifies :restart, "service[nis]" + notifies :run, "execute[ypinit]" +end + +file "/etc/yp.conf" do + owner "root" + mode "0644" + content "domain grid.example.org server #{gp_node[:hostname]}" + notifies :restart, "service[nis]" + notifies :run, "execute[ypinit]" +end + +template "/etc/ypserv.securenets" do + source "ypserv.securenets.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet + ) + notifies :run, "execute[ypinit]" +end + + +# Restart services so the changes take effect. + +execute "ypinit" do + user "root" + group "root" + command "echo | /usr/lib/yp/ypinit -m" + action :nothing +end + +service "nis" + +execute "update-rc.d nis defaults" do + user "root" + group "root" +end Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,133 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: SimpleCA +## +## This recipe installs the CA certificate and key so the node can use SimpleCA +## commands to sign certificate requests. +## +## Note that, instead of using grid-create-ca, we set up all the necessary files +## manually. This is necessary since the CA certificate already exists when the +## recipes are run (it is either created by Globus Provision or provided +## explicitly by the user), and we need to install that specific CA. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +if ! File.exists?(node[:globus][:simpleCA] ) + + require "openssl" + + r = cookbook_file "#{node[:scratch_dir]}/gp-ca-cert.pem" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" + action :nothing + end + + r.run_action(:create) + + node.default[:ca_cert] = OpenSSL::X509::Certificate.new(File.read("#{node[:scratch_dir]}/gp-ca-cert.pem")) + node.default[:ca_cert_hash] = "%08x" % node.default[:ca_cert].subject.hash + + # Create the basic directory structure + + directory node[:globus][:simpleCA] do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + directory "#{node[:globus][:simpleCA]}/certs" do + owner "root" + group "root" + mode "0755" + action :create + end + + directory "#{node[:globus][:simpleCA]}/crl" do + owner "root" + group "root" + mode "0755" + action :create + end + + directory "#{node[:globus][:simpleCA]}/newcerts" do + owner "root" + group "root" + mode "0755" + action :create + end + + directory "#{node[:globus][:simpleCA]}/private" do + owner "root" + group "root" + mode "0700" + action :create + end + + + # Copy the CA certificate and key. + cookbook_file "#{node[:globus][:simpleCA]}/cacert.pem" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" + end + + cookbook_file "#{node[:globus][:simpleCA]}/private/cakey.pem" do + source "ca_key.pem" + mode 0400 + owner "root" + group "root" + end + + # Various configuration files needed in the CA directory + + template "#{node[:globus][:simpleCA]}/grid-ca-ssl.conf" do + source "globus-ssl.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert], + :type => :ca + ) + end + + file "#{node[:globus][:simpleCA]}/index.txt" do + owner "root" + group "root" + mode "0644" + action :create + end + + file "#{node[:globus][:simpleCA]}/serial" do + owner "root" + group "root" + mode "0644" + action :create + content "01\n" + end + +end + + + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1 @@ +* -fstype=nfs4 <%=@server%>:/nfs/home/& \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,3 @@ +scratch -fstype=nfs4 <%=@server%>:/mnt/scratch +software -fstype=nfs4 <%=@server%>:/nfs/software +home -fstype=nfs4 <%=@server%>:/nfs/home Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,9 @@ +<% if @subnet %> +/nfs/home <%= @subnet %>/24(rw,root_squash,no_subtree_check,sync) +/mnt/scratch <%= @subnet %>/24(rw,root_squash,no_subtree_check,sync) +/nfs/software <%= @subnet %>/24(rw,root_squash,no_subtree_check,sync) +<% else %> +/nfs/home (rw,root_squash,no_subtree_check,sync) +/mnt/scratch (rw,root_squash,no_subtree_check,sync) +/nfs/software (rw,root_squash,no_subtree_check,sync) +<% end %> Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,109 @@ +# +# SSLeay example configuration file. +# This is mostly being used for generation of certificate requests. +# + +RANDFILE = $ENV::HOME/.rnd + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = /var/lib/globus/simple_ca # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = x509v3_extensions # The extentions to add to the cert +default_days = 365 # how long to certify for +default_crl_days= 365 # DEE 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = optional +stateOrProvinceName = optional +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +x509_extensions = v3_ca +req_extensions = v3_req + +[ req_distinguished_name ] +# BEGIN CONFIG +<% +oucount = 0 +ocount = 0 + at certificate.subject.to_a.each do |name, value, n| + case + when name.match(/^[Cc]$/) %> +countryName = Country Name (2 letter code) +countryName_default = <%= value %> +countryName_min = 2 +countryName_max = 2 +<% when name.match(/^[Oo]$/) %> +<%= ocount %>.organizationName = Level <%= ocount %> Organization +<%= ocount %>.organizationName_default = <%= value %> +<% ocount += 1 %> +<% when name.match(/^[Oo][Uu]$/) %> +<%= oucount %>.organizationalUnitName = Level <%= oucount %> Organizational Unit +<%= oucount %>.organizationalUnitName_default = <%= value %> +<% oucount += 1 %> +<% when name.match(/^[Cc][Nn]$/) + if @type == :user %> +<%= oucount %>.organizationalUnitName = Level <%= oucount %> Organizational Unit +<%= oucount %>.organizationalUnitName_default = local +<% end %> +commonName = Name (E.g., John M. Smith) +commonName_max = 64 +<% else + raise "Unknown subject name component" + end +end%> +# END CONFIG + +[ v3_ca ] +basicConstraints = critical,CA:true +subjectKeyIdentifier = hash +nsCertType = sslCA,emailCA,objCA + +[ v3_req ] +nsCertType = sslCA,emailCA,objCA + +[ x509v3_extensions ] +nsCertType = objsign,email,server,client Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,41 @@ +################################################################# +# +# File: grid-security.conf +# +# Purpose: This file contains the configuration information +# for the Grid Security Infrastructure +# +################################################################# + +# These values are set by grid-ca-create +SETUP_GSI_HOST_BASE_DN="$SETUP_GSI_HOST_BASE_DN" +SETUP_GSI_USER_BASE_DN="$SETUP_GSI_USER_BASE_DN" +SETUP_GSI_CA_NAME="$SETUP_GS_CA_NAME" +SETUP_GSI_CA_EMAIL_ADDR="$SETUP_GSI_CA_EMAIL_ADDR" + +DEFAULT_GSI_HOST_BASE_DN="<%= @subject.select{|k,v| k != "cn"}.collect{|x| x[0]+"="+x[1]}.join ", " %>" +DEFAULT_GSI_USER_BASE_DN="<%= @subject.select{|k,v| k != "cn"}.collect{|x| x[0]+"="+x[1]}.join ", " %>" +DEFAULT_GSI_CA_NAME="<%= @subject["cn"] %>" +DEFAULT_GSI_CA_EMAIL_ADDR="ca at globusprovision.example.org" + +# Distinguish Name (DN) of the Host +GSI_HOST_BASE_DN="${SETUP_GSI_HOST_BASE_DN:-${DEFAULT_GSI_HOST_BASE_DN}}" + +# Distinguish Name (DN) of the User +GSI_USER_BASE_DN="${SETUP_GSI_USER_BASE_DN:-${DEFAULT_GSI_USER_BASE_DN}}" + +# CA Name for the organization +GSI_CA_NAME="${SETUP_GSI_CA_NAME:-${DEFAULT_GSI_CA_NAME}}" + +# CA Email address for the organization +GSI_CA_EMAIL_ADDR="${SETUP_GSI_CA_EMAIL_ADDR:-${DEFAULT_GSI_CA_EMAIL_ADDR}}" + +export GSI_HOST_BASE_DN +export GSI_USER_BASE_DN +export GSI_CA_NAME +export GSI_CA_EMAIL_ADDR + + + + + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +<% @gridmap.each do |g| %> +"<%= g[:dn] %>" <%= g[:login] %> +<% end %> + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,11 @@ +<% if @subnet %> + <% if @type == :allow %> +mountd nfsd statd lockd rquotad portmap ypserv ypbind: <%= @subnet %>/24 + <% elsif @type == :deny %> +mountd nfsd statd lockd rquotad portmap ypserv ypbind: ALL + <% end %> +<% else %> + <% if @type == :allow %> +mountd nfsd statd lockd rquotad portmap ypserv ypbind: ALL + <% end %> +<% end %> \ No newline at end of file Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,5 @@ +access_id_CA X509 '<%= @certificate.subject.to_s %>' + +pos_rights globus CA:sign + +cond_subjects globus '"<%= @certificate.subject.to_s.sub(/CN=.*/, "*") %>"' Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,8 @@ +# Always allow access for localhost +255.0.0.0 127.0.0.0 + +<% if @subnet %> +255.255.255.0 <%= @subnet %> +<% else %> +0.0.0.0 0.0.0.0 +<% end %> Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,16 @@ +Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife. + +For example, create `roles/base_example.rb`: + + name "base_example" + description "Example base role applied to all nodes." + # List of recipes and roles to apply. Requires Chef 0.8, earlier versions use 'recipes()'. + #run_list() + # Attributes applied if the node doesn't have it set already. + #default_attributes() + # Attributes applied no matter what the node has set already. + #override_attributes() + +Then upload it to the Chef Server: + + knife role from file roles/base_example.rb Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-clusternode-condor" +description "A domain's Condor worker node" +run_list "recipe[condor::condor_worker]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-condor" +description "A domain's Condor head node" +run_list "recipe[condor::condor_head]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-gridftp-default" +description "A domain's GridFTP machine" +run_list "role[globus]", "recipe[globus::gridftp-default]", "recipe[provision::gridmap]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-gridftp-gc" +description "A domain's GridFTP machine (using a Globus Connect certificate)" +run_list "role[globus]", "recipe[globus::gridftp-gc]", "recipe[provision::gridmap]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-myproxy" +description "A domain's MyProxy server" +run_list "role[globus]", "recipe[provision::simpleca]", "recipe[provision::ca]", "recipe[globus::myproxy]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-nfsnis-client" +description "A domain's client machine (any machine that is not the NFS/NIS server)" +run_list "recipe[provision::gp_node]", "recipe[provision::nis_client]", "recipe[provision::nfs_client]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "domain-nfsnis" +description "An domain's NFS/NIS server" +run_list "recipe[provision::gp_node]", "recipe[provision::nis_server]", "recipe[provision::nfs_server]", "recipe[provision::domain_users]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,4 @@ +name "globus" +description "A machine running Globus" +run_list "recipe[globus::client-tools]", "recipe[provision::ca]", "recipe[provision::hostcert]" + Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,176 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +from globus.provision.core.topology import Topology, Node +import tempfile +from globus.provision.common.threads import SIGINTWatcher + +""" +The CLI: A console frontend to Globus Provision that allows a user to request instances, +start them, etc. +""" + +import subprocess +from optparse import OptionParser, OptionGroup +import os +import os.path +import getpass +import colorama +from colorama import Fore, Style +from globus.provision.common import defaults +from globus.provision.common import log +from globus.provision import RELEASE + +class Command(object): + """Base class for all Globus Provisioning commands""" + + def __init__(self, argv, root = False, disable_sigintwatch = False): + + if root: + if getpass.getuser() != "root": + print "Must run as root" + exit(1) + + self.argv = argv + self.optparser = OptionParser(version = RELEASE) + self.opt = None + self.args = None + + common_opts = OptionGroup(self.optparser, "Common options", "These options are common to all Globus Provision commands") + self.optparser.add_option_group(common_opts) + + common_opts.add_option("-v", "--verbose", + action="store_true", dest="verbose", + help = "Produce verbose output.") + + common_opts.add_option("-d", "--debug", + action="store_true", dest="debug", + help = "Write debugging information. Implies -v.") + + common_opts.add_option("-i", "--instances-dir", + action="store", type="string", dest="dir", + default = defaults.INSTANCE_LOCATION, + help = "Use this directory to store information about the instances " + "(instead of the default ~/.globusprovision/instances/)") + + colorama.init(autoreset = True) + + if not disable_sigintwatch: + SIGINTWatcher(self.cleanup_after_kill) + + + def parse_options(self): + opt, args = self.optparser.parse_args(self.argv) + + self.opt = opt + self.args = args + + if self.opt.debug: + loglevel = 2 + elif self.opt.verbose: + loglevel = 1 + else: + loglevel = 0 + + log.init_logging(loglevel) + + def _run(self, cmd, exit_on_error=True, silent=True): + if silent: + devnull = open("/dev/null") + cmd_list = cmd.split() + if silent: + retcode = subprocess.call(cmd_list, stdout=devnull, stderr=devnull) + else: + retcode = subprocess.call(cmd_list) + if silent: + devnull.close() + if retcode != 0 and exit_on_error: + print "Error when running %s" % cmd + exit(1) + return retcode + + def _check_exists_file(self, filename): + if not os.path.exists(filename): + print "File %s does not exist" % filename + exit(1) + + def _print_error(self, what, reason): + print colorama.Fore.RED + colorama.Style.BRIGHT + " \033[1;31mERROR\033[0m", + print ": %s" % what + print colorama.Fore.WHITE + colorama.Style.BRIGHT + "\033[1;37mReason\033[0m", + print ": %s" % reason + + def _colorize_topology_state(self, state): + state_str = Topology.state_str[state] + reset = Fore.RESET + Style.RESET_ALL + if state == Topology.STATE_NEW: + return Fore.BLUE + Style.BRIGHT + state_str + reset + elif state == Topology.STATE_RUNNING: + return Fore.GREEN + Style.BRIGHT + state_str + reset + elif state in (Topology.STATE_STARTING, Topology.STATE_CONFIGURING, Topology.STATE_STOPPING, Topology.STATE_RESUMING, Topology.STATE_TERMINATING): + return Fore.YELLOW + Style.BRIGHT + state_str + reset + elif state in (Topology.STATE_TERMINATED, Topology.STATE_FAILED): + return Fore.RED + Style.BRIGHT + state_str + reset + elif state == Topology.STATE_STOPPED: + return Fore.MAGENTA + Style.BRIGHT + state_str + reset + else: + return state_str + + def _colorize_node_state(self, state): + state_str = Node.state_str[state] + reset = Fore.RESET + Style.RESET_ALL + if state == Node.STATE_NEW: + return Fore.BLUE + Style.BRIGHT + state_str + reset + elif state == Node.STATE_RUNNING: + return Fore.GREEN + Style.BRIGHT + state_str + reset + elif state in (Node.STATE_STARTING, Node.STATE_RUNNING_UNCONFIGURED, Node.STATE_CONFIGURING, Node.STATE_RECONFIGURING, Node.STATE_STOPPING, Node.STATE_STOPPING_CONFIGURING, Node.STATE_STOPPING_CONFIGURED, Node.STATE_RESUMING, Node.STATE_RESUMED_UNCONFIGURED, Node.STATE_RESUMED_RECONFIGURING, Node.STATE_TERMINATING): + return Fore.YELLOW + Style.BRIGHT + state_str + reset + elif state in (Node.STATE_TERMINATED, Node.STATE_FAILED): + return Fore.RED + Style.BRIGHT + state_str + reset + elif state == Node.STATE_STOPPED: + return Fore.MAGENTA + Style.BRIGHT + state_str + reset + else: + return state_str + + def _pad(self, str, colorstr, width): + if colorstr == "": + return str.ljust(width) + else: + return colorstr + " " * (width - len(str)) + + def _set_last_gpi(self, gpi): + try: + uid = os.getuid() + ppid = os.getppid() + + gpi_dir = "%s/.globusprovision-%i" % (tempfile.gettempdir(), uid) + gpi_file = "%s/%i" % (gpi_dir, ppid) + + if not os.path.exists(gpi_dir): + os.mkdir(gpi_dir, 0700) + + f = open(gpi_file, "w") + f.write(gpi) + f.close() + except Exception, e: + # Saving the last GPI is just for the benefit of auto-completion. + # If it doesn't work, worse that will happen is that the user + # won't be able to autocomplete the last GPI + pass + + def cleanup_after_kill(self): + print "Globus Provision has been unexpectedly killed and may have left resources" + print "in an unconfigured state. Use gp-instance-terminate to release resources." + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,878 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +import json + +""" +Commands that directly invoke the API. Most of these commands are a one-to-one +mapping to the API, although some some (like gp-instance-add-host) simply provide +a more convenient interface on top of instance_update(). +""" + +import time +import sys + +from colorama import Fore, Style + +import globus.provision.common.defaults as defaults + +from globus.provision.cli import Command +from globus.provision.core.api import API +from globus.provision.common.utils import parse_extra_files_files +from globus.provision.common.threads import SIGINTWatcher +from globus.provision.core.topology import Topology, Node, User +from globus.provision.core.config import SimpleTopologyConfig +from globus.provision.common.config import ConfigException + + +def gp_instance_create_func(): + return gp_instance_create(sys.argv).run() + +class gp_instance_create(Command): + """ + Creates a new Globus Provision instance. + """ + + name = "gp-instance-create" + + def __init__(self, argv): + Command.__init__(self, argv, disable_sigintwatch=True) + + self.optparser.add_option("-c", "--conf", + action="store", type="string", dest="conf", + default = defaults.CONFIG_FILE, + help = "Configuration file.") + + self.optparser.add_option("-t", "--topology", + action="store", type="string", dest="topology", + help = "Topology file. Can be either a simple topology file (with extension .conf) " + "or a topology JSON file (with extension .json).") + + def run(self): + self.parse_options() + + if self.opt.conf is None: + print "You must specify a configuration file using the -c/--conf option." + return 1 + + self._check_exists_file(self.opt.conf) + + if self.opt.topology is None: + topology_file = self.opt.conf + else: + self._check_exists_file(self.opt.topology) + topology_file = self.opt.topology + + if topology_file.endswith(".json"): + jsonfile = open(topology_file) + topology_json = jsonfile.read() + jsonfile.close() + elif topology_file.endswith(".conf"): + try: + conf = SimpleTopologyConfig(topology_file) + topology = conf.to_topology() + topology_json = topology.to_json_string() + except ConfigException, cfge: + self._print_error("Error in topology configuration file.", cfge) + return 1 + else: + self._print_error("Unrecognized topology file format.", "File must be either a JSON (.json) or configuration (.conf) file.") + return 1 + + configf = open(self.opt.conf) + config_txt = configf.read() + configf.close() + + api = API(self.opt.dir) + (status_code, message, inst_id) = api.instance_create(topology_json, config_txt) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not create instance.", message) + return 1 + else: + print "Created new instance:", + print Fore.WHITE + Style.BRIGHT + inst_id + self._set_last_gpi(inst_id) + return 0 + +def gp_instance_describe_func(): + return gp_instance_describe(sys.argv).run() + +class gp_instance_describe(Command): + """ + Describes a Globus Provision instance, providing information on the state of the instance, + and of the individual hosts (including their hostnames and IPs, if the instance is running). + Running in verbose mode (with the ``-v`` option) + will print out the raw JSON representation of the instance's topology. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-describe --verbose gpi-12345678 + + """ + + name = "gp-instance-describe" + + def __init__(self, argv): + Command.__init__(self, argv, disable_sigintwatch=True) + + def run(self): + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + self._set_last_gpi(inst_id) + + if self.opt.verbose or self.opt.debug: + print topology_json + else: + topology = Topology.from_json_string(topology_json) + reset = Fore.RESET + Style.RESET_ALL + print Fore.WHITE + Style.BRIGHT + inst_id + reset + ": " + self._colorize_topology_state(topology.state) + print + for domain in topology.domains.values(): + print "Domain " + Fore.CYAN + "'%s'" % domain.id + + # Find "column" widths and get values while we're at it + node_width = state_width = hostname_width = ip_width = 0 + rows = [] + for node in domain.get_nodes(): + if len(node.id) > node_width: + node_width = len(node.id) + + if node.has_property("state"): + state = node.state + else: + state = Node.STATE_NEW + state_str = Node.state_str[state] + + if len(state_str) > state_width: + state_width = len(state_str) + + if node.has_property("hostname"): + hostname = node.hostname + else: + hostname = "" + + if len(hostname) > hostname_width: + hostname_width = len(hostname) + + if node.has_property("ip"): + ip = node.ip + else: + ip = "" + + if len(ip) > ip_width: + ip_width = len(ip) + + rows.append((node.id, state, state_str, hostname, ip)) + + for (node_id, state, state_str, hostname, ip) in rows: + node_id_pad = self._pad(node_id, Fore.WHITE + Style.BRIGHT + node_id + Fore.RESET + Style.RESET_ALL, node_width + 2) + state_pad = self._pad(state_str, self._colorize_node_state(state), state_width + 2) + hostname_pad = self._pad(hostname, "", hostname_width + 2) + ip_pad = self._pad(ip, "", ip_width) + print " " + node_id_pad + state_pad + hostname_pad + ip_pad + print + + return 0 + +def gp_instance_start_func(): + return gp_instance_start(sys.argv).run() + +class gp_instance_start(Command): + """ + Starts a Globus Provision instance. If the instance was previous stopped, ``gp-instance-start`` + will resume it. + + See :ref:`sec_test_chef` for details on how to use the ``--extra-files`` option. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-start --extra-files foo.txt gpi-12345678 + + """ + + name = "gp-instance-start" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-x", "--extra-files", + action="store", type="string", dest="extra_files", + help = "File with list of files to upload to each host before configuring the instance.") + + self.optparser.add_option("-r", "--run", + action="store", type="string", dest="run", + help = "File with list of commands to run on each host after configuring the instance.") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + if self.opt.extra_files != None: + self._check_exists_file(self.opt.extra_files) + extra_files = parse_extra_files_files(self.opt.extra_files) + else: + extra_files = [] + + if self.opt.run != None: + self._check_exists_file(self.opt.run) + run_cmds = [l.strip() for l in open(self.opt.run).readlines()] + else: + run_cmds = [] + + print "Starting instance", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + api = API(self.opt.dir) + status_code, message = api.instance_start(inst_id, extra_files, run_cmds) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Started instance in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + print + self._print_error("Could not start instance.", message) + return 1 + +def gp_instance_update_func(): + return gp_instance_update(sys.argv).run() + +class gp_instance_update(Command): + """ + Updates a Globus Provision instance's topology. Globus Provision will determine what changes + and necessary (adding/removing hosts, etc.) and will return an error if an invalid update + was specified. + + See :ref:`sec_test_chef` for details on how to use the ``--extra-files`` option. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-update --topology newtopology.json gpi-12345678 + + """ + + name = "gp-instance-update" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-t", "--topology", + action="store", type="string", dest="topology", + help = "Topology file (JSON format only)") + + self.optparser.add_option("-x", "--extra-files", + action="store", type="string", dest="extra_files", + help = "File with list of files to upload to each host before configuring the instance.") + + self.optparser.add_option("-r", "--run", + action="store", type="string", dest="run", + help = "File with list of commands to run on each host after configuring the instance.") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + if self.opt.topology != None: + self._check_exists_file(self.opt.topology) + + jsonfile = open(self.opt.topology) + topology_json = jsonfile.read() + jsonfile.close() + else: + topology_json = None + + + if self.opt.extra_files != None: + self._check_exists_file(self.opt.extra_files) + extra_files = parse_extra_files_files(self.opt.extra_files) + else: + extra_files = [] + + if self.opt.run != None: + self._check_exists_file(self.opt.run) + run_cmds = [l.strip() for l in open(self.opt.run).readlines()] + else: + run_cmds = [] + + print "Updating topology of", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + + api = API(self.opt.dir) + status_code, message = api.instance_update(inst_id, topology_json, extra_files, run_cmds) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Updated topology in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_stop_func(): + return gp_instance_stop(sys.argv).run() + +class gp_instance_stop(Command): + """ + Stops a running Globus Provision instance. This will shut down all the hosts in the instance, + but it will not free the corresponding resources. You can use :ref:`cli_gp-instance-start` to resume + the instance at a later time. Use :ref:`cli_gp-instance-terminate` if you want to shut down the hosts + *and* free all their resources (including all associated storage) + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-stop --verbose gpi-12345678 + + """ + + name = "gp-instance-stop" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + def run(self): + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + print "Stopping instance", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + api = API(self.opt.dir) + status_code, message = api.instance_stop(inst_id) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + self._set_last_gpi(inst_id) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not stop instance.", message) + print + return 1 + + +def gp_instance_terminate_func(): + return gp_instance_terminate(sys.argv).run() + +class gp_instance_terminate(Command): + """ + Terminates a Globus Provision instance. This not only shuts down all the hosts in the + instance, but also frees up all associated resources, including storage. Use this command + only if you want to irreversibly "kill" your instance. If you only want to stop it temporarily + (shutting down the hosts, but allowing them to be resumed at a later time), use + :ref:`cli_gp-instance-stop` instead. + + This command can also be used on instances that are in the "Failed" state, to free their + resources. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-terminate --verbose gpi-12345678 + + """ + + name = "gp-instance-terminate" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + def run(self): + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + print "Terminating instance", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + api = API(self.opt.dir) + status_code, message = api.instance_terminate(inst_id) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + self._set_last_gpi(inst_id) + return 0 + elif status_code == API.STATUS_FAIL: + print + self._print_error("Could not terminate instance.", message) + return 1 + + +def gp_instance_list_func(): + return gp_instance_list(sys.argv).run() + +class gp_instance_list(Command): + """ + Lists all instances you've created, showing their identifier and their state. + + If you only want to list certain instances, you can specify a list of instance + identifiers after all other parameters. For example:: + + gp-instance-list --verbose gpi-11111111 gpi-22222222 gpi-33333333 + + """ + + name = "gp-instance-list" + + def __init__(self, argv): + Command.__init__(self, argv, disable_sigintwatch=True) + + def run(self): + self.parse_options() + + if len(self.args) >= 2: + inst_ids = self.args[1:] + else: + inst_ids = None + + api = API(self.opt.dir) + (status_code, message, topologies_json) = api.instance_list(inst_ids) + + + if status_code != API.STATUS_SUCCESS: + self._print_error("Unable to list instances.", message) + return 1 + else: + insts = json.loads(topologies_json) + + for inst in insts: + if self.opt.verbose or self.opt.debug: + print json.dumps(inst, indent=2) + else: + topology = Topology.from_json_dict(inst) + + reset = Fore.RESET + Style.RESET_ALL + print Fore.WHITE + Style.BRIGHT + topology.id + reset + ": " + self._colorize_topology_state(topology.state) + + return 0 + +def gp_instance_add_user_func(): + return gp_instance_add_user(sys.argv).run() + +class gp_instance_add_user(Command): + """ + Adds a user to a running instance. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-add-user --domain simple --login johnsmith gpi-12345678 + + """ + + name = "gp-instance-add-user" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Domain that the user will be added to.") + + self.optparser.add_option("-l", "--login", + action="store", type="string", dest="login", + help = "User's UNIX login name") + + self.optparser.add_option("-p", "--password-hash", + action="store", type="string", dest="passwd", + default = "!", + help = "Password hash (default is disabled password)") + + self.optparser.add_option("-s", "--ssh-pubkey", + action="store", type="string", dest="ssh", + help = "Public SSH key to be added to the new user's authorized_keys file.") + + self.optparser.add_option("-a", "--admin", + action="store_true", dest="admin", + help = "Gives the user sudo privileges.") + + self.optparser.add_option("-c", "--certificate", + action="store", type="string", dest="certificate", + default = "generated", + help = "Type of certificate. Can be \"generated\" or \"none\" (default is " + "to generate a certificate for the user)") + + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not add user", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + domain = t.domains[self.opt.domain] + + user = User() + user.set_property("id", self.opt.login) + user.set_property("password_hash", self.opt.passwd) + user.set_property("ssh_pkey", self.opt.ssh) + if self.opt.admin != None: + user.set_property("admin", self.opt.admin) + else: + user.set_property("admin", False) + user.set_property("certificate", self.opt.certificate) + + domain.add_to_array("users", user) + + topology_json = t.to_json_string() + + print "Adding new user to", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Added user in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_add_host_func(): + return gp_instance_add_host(sys.argv).run() + +class gp_instance_add_host(Command): + """ + Adds a new host to a running instance. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-add-host --domain simple --id simple-gridftp --run-list role[domain-gridftp-default] gpi-12345678 + + """ + + name = "gp-instance-add-host" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Domain that the user will be added to.") + + self.optparser.add_option("-n", "--id", + action="store", type="string", dest="id", + help = "Unique identifier for the new host.") + + self.optparser.add_option("-p", "--depends", + action="store", type="string", dest="depends", + default = None, + help = "ID of the node (if any) that the new host depends on.") + + self.optparser.add_option("-r", "--run-list", + action="store", type="string", dest="runlist", + help = "List of Chef recipes or roles to apply to this host.") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not add host", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + domain = t.domains[self.opt.domain] + + node = Node() + node.set_property("id", self.opt.id) + node.set_property("run_list", self.opt.runlist.split(",")) + if self.opt.depends != None: + node.set_property("depends", "node:%s" % self.opt.depends) + + domain.add_to_array("nodes", (node)) + + topology_json = t.to_json_string() + + print "Adding new host to", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Added host in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_remove_users_func(): + return gp_instance_remove_users(sys.argv).run() + +class gp_instance_remove_users(Command): + """ + Removes users from a running instance. + + The logins of the users to be removed must be specified after the instance identifier which, + in turn, must be specified after all other parameters. For example:: + + gp-instance-remove-users --domain simple gpi-12345678 johnsmith sarahjane + + """ + + name = "gp-instance-remove-users" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Removes users from this domain") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) <= 2: + print "You must specify an instance id and at least one host." + print "For example: %s [options] gpi-37a8bf17 simple-wn3" % self.name + return 1 + + inst_id = self.args[1] + users = self.args[2:] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not remove users", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + removed = [] + domain_users = t.domains[self.opt.domain].users + + for user in users: + if user in domain_users: + domain_users.pop(user) + removed.append(user) + + remaining = set(removed) ^ set(users) + for r in remaining: + print Fore.YELLOW + Style.BRIGHT + "Warning" + Fore.RESET + Style.RESET_ALL + ":", + print "User %s does not exist." % r + + topology_json = t.to_json_string() + + if len(removed) > 0: + print "Removing users %s from" % list(removed), + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Removed users in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_remove_hosts_func(): + return gp_instance_remove_hosts(sys.argv).run() + +class gp_instance_remove_hosts(Command): + """ + Removes hosts from a running instance. + + The host identifiers must be specified after the instance identifier which, + in turn, must be specified after all other parameters. For example:: + + gp-instance-remove-hosts --domain simple gpi-12345678 simple-gridftp simple-condor + + """ + + name = "gp-instance-remove-hosts" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Remove hosts from this domain") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) <= 2: + print "You must specify an instance id and at least one host." + print "For example: %s [options] gpi-37a8bf17 simple-wn3" % self.name + return 1 + + inst_id = self.args[1] + hosts = self.args[2:] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not remove hosts", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + removed = [] + nodes = t.domains[self.opt.domain].nodes + + for host in hosts: + if host in nodes: + nodes.pop(host) + removed.append(host) + + remaining = set(removed) ^ set(hosts) + for r in remaining: + print Fore.YELLOW + Style.BRIGHT + "Warning" + Fore.RESET + Style.RESET_ALL + ":", + print "Host %s does not exist." % r + + topology_json = t.to_json_string() + + if len(removed) > 0: + print "Removing hosts %s from" % list(removed), + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Removed hosts in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,114 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Commands related to the EC2 deployer, but which do not require access to the API +""" + +import sys +import os.path + +from globus.provision.cli import Command +from globus.provision.deploy.ec2.images import EC2AMICreator, EC2AMIUpdater +from globus.provision.common import defaults +from globus.provision.core.config import GPConfig +from globus.provision.common.utils import parse_extra_files_files + + +def gp_ec2_create_ami_func(): + return gp_ec2_create_ami(sys.argv).run() + +class gp_ec2_create_ami(Command): + """ + Creates a Globus Provision AMI with Chef files pre-deployed, and + some software pre-installed. + """ + + name = "gp-ec2-create-ami" + + def __init__(self, argv): + Command.__init__(self, argv) + + self.optparser.add_option("-s", "--chef-directory", + action="store", type="string", dest="chef_dir", + help = "Location of Chef files.") + + self.optparser.add_option("-c", "--conf", + action="store", type="string", dest="conf", + default = defaults.CONFIG_FILE, + help = "Configuration file. Must include an [ec2] section.") + + self.optparser.add_option("-a", "--ami", + action="store", type="string", dest="ami", + help = "AMI to base the new AMI on.") + + self.optparser.add_option("-n", "--name", + action="store", type="string", dest="aminame", + help = "Name of AMI to create") + + self.optparser.add_option("-t", "--instance-type", + action="store", type="string", dest="instance_type", + help = "EC2 instance type to use") + + def run(self): + self.parse_options() + + config = GPConfig(os.path.expanduser(self.opt.conf)) + chef_dir = os.path.expanduser(self.opt.chef_dir) + + c = EC2AMICreator(chef_dir, self.opt.ami, self.opt.aminame, self.opt.instance_type, config) + c.run() + + +def gp_ec2_update_ami_func(): + return gp_ec2_update_ami(sys.argv).run() + +class gp_ec2_update_ami(Command): + """ + Takes an existing AMI, adds files to it, and creates a new AMI. + """ + + name = "gp-ec2-update-ami" + + def __init__(self, argv): + Command.__init__(self, argv) + + self.optparser.add_option("-a", "--ami", + action="store", type="string", dest="ami", + help = "AMI to update.") + + self.optparser.add_option("-n", "--name", + action="store", type="string", dest="aminame", + help = "Name of new AMI.") + + self.optparser.add_option("-c", "--conf", + action="store", type="string", dest="conf", + default = defaults.CONFIG_FILE, + help = "Configuration file. Must include an [ec2] section.") + + self.optparser.add_option("-f", "--files", + action="store", type="string", dest="files", + help = "Files to add to AMI") + + def run(self): + self.parse_options() + + files = parse_extra_files_files(self.opt.files) + config = GPConfig(os.path.expanduser(self.opt.conf)) + + c = EC2AMIUpdater(self.opt.ami, self.opt.aminame, files, config) + c.run() + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,70 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +""" +Commands related to Globus Online endpoint management, but which do not require access to the API +""" + +import sys +import os.path +import paramiko +from globus.provision.common.ssh import SSH + +from globus.provision.cli import Command +from globus.provision.core.instance import InstanceStore +from globus.provision.common.go_transfer import GlobusOnlineHelper + +def gp_go_register_endpoints_func(): + return gp_go_register_endpoints(sys.argv).run() + +class gp_go_register_endpoints(Command): + """ + Creates the Globus Online endpoints specified in an instance's topology. + + The instance identifier must be specified after all other parameters. For example:: + + gp-go-register-endpoints --public gpi-12345678 + """ + + name = "gp-go-register-endpoints" + + def __init__(self, argv): + Command.__init__(self, argv) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Register only the endpoints in this domain") + + self.optparser.add_option("-r", "--replace", + action="store_true", dest="replace", + help = "If an endpoint already exists, replace it") + + def run(self): + self.parse_options() + inst_id = self.args[1] + + istore = InstanceStore(self.opt.dir) + inst = istore.get_instance(inst_id) + + go_helper = GlobusOnlineHelper.from_instance(inst) + + for domain_name, domain in inst.topology.domains.items(): + for ep in domain.go_endpoints: + go_helper.connect(ep.user) + if (not ep.has_property("globus_connect_cert")) or (ep.has_property("globus_connect_cert") and not ep.globus_connect_cert): + go_helper.create_endpoint(ep, self.opt.replace) + go_helper.disconnect() + + print "Created endpoint '%s#%s' for domain '%s'" % (ep.user, ep.name, domain_name) \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,18 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +class GPException(Exception): + pass \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,113 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Certificate management +""" + +from OpenSSL import crypto +import os.path + +class CertificateGenerator(object): + """ + A class for generating CA, host, and user certificates. + """ + + def __init__(self, dn, ca_cert = None, ca_key = None): + self.ca_cert = ca_cert + self.ca_key = ca_key + self.serial = 1 + + self.dn = [x.split("=") for x in dn.split(",")] + self.dn = dict([(n.upper().strip(), v.strip()) for n,v in self.dn]) + + def set_ca(self, ca_cert, ca_key): + self.ca_cert = ca_cert + self.ca_key = ca_key + + def gen_selfsigned_ca_cert(self, cn): + return self.__gen_certificate(cn = cn, + issuer_cert = None, + issuer_key = None) + + def gen_user_cert(self, cn): + return self.__gen_certificate(cn = cn, + issuer_cert = self.ca_cert, + issuer_key = self.ca_key) + + def gen_host_cert(self, hostname): + return self.__gen_certificate(cn = "host/"+hostname, + issuer_cert = self.ca_cert, + issuer_key = self.ca_key) + + def __gen_certificate(self, cn, issuer_cert, issuer_key): + k = crypto.PKey() + k.generate_key(crypto.TYPE_RSA, 1024) + + cert = crypto.X509() + if self.dn.has_key("C"): + cert.get_subject().C = self.dn["C"] + if self.dn.has_key("ST"): + cert.get_subject().ST = self.dn["ST"] + if self.dn.has_key("L"): + cert.get_subject().L = self.dn["L"] + if self.dn.has_key("O"): + cert.get_subject().O = self.dn["O"] + if self.dn.has_key("OU"): + cert.get_subject().OU = self.dn["OU"] + cert.get_subject().CN = cn + cert.set_serial_number(self.serial) + self.serial += 1 + cert.set_version(2) + cert.gmtime_adj_notBefore(0) + cert.gmtime_adj_notAfter(10*365*24*60*60) + cert.set_pubkey(k) + + + if issuer_cert == None: + cert.set_issuer(cert.get_subject()) + else: + cert.set_issuer(issuer_cert.get_subject()) + + if issuer_cert == None: + cert.sign(k, 'sha1') + else: + cert.sign(issuer_key, 'sha1') + + return cert, k + + # TODO: Return something meaningful depending on whether the + # certificate was regenerated or not + def save_certificate(self, cert, key, cert_file, key_file, force = False): + if not os.path.exists(cert_file) or force: + cert_file = open(cert_file, "w") + cert_file.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert)) + cert_file.close() + + key_file = open(key_file, "w") + key_file.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key)) + key_file.close() + + def load_certificate(self, cert_file, key_file): + cert_file = open(cert_file, "r") + cert = crypto.load_certificate(crypto.FILETYPE_PEM, cert_file.read()) + cert_file.close() + + key_file = open(key_file, "r") + key = crypto.load_privatekey(crypto.FILETYPE_PEM, key_file.read()) + key_file.close() + + return cert, key \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,187 @@ +# -------------------------------------------------------------------------- # +# Copyright 2006-2009, 2011 University of Chicago # +# Copyright 2008-2009, Distributed Systems Architecture Group, Universidad # +# Complutense de Madrid (dsa-research.org) # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +A self-documenting, self-validating configuration file parser +(derived from Python's ConfigParser) +""" + +import ConfigParser +import textwrap +import os.path + +OPTTYPE_INT = 0 +OPTTYPE_FLOAT = 1 +OPTTYPE_STRING = 2 +OPTTYPE_BOOLEAN = 3 +OPTTYPE_FILE = 4 + +class ConfigException(Exception): + """A simple exception class used for configuration exceptions""" + pass + +class Section(object): + """ + A section in the configuration file + """ + + def __init__(self, name, required, multiple = None, required_if=None, doc=None): + self.name = name + self.required = required + self.required_if = required_if + self.multiple = multiple + self.doc = doc + self.options = {} + + def get_doc(self): + return textwrap.dedent(self.doc).strip() + + +class Option(object): + """ + An option in a section + """ + + def __init__(self, name, getter, type, required, required_if=None, default=None, valid=None, doc=None): + self.name = name + self.getter = getter + self.type = type + self.required = required + self.required_if = required_if + self.default = default + self.valid = valid + self.doc = doc + + def get_doc(self): + return textwrap.dedent(self.doc).strip() + +class Config(object): + """ + A configuration file + """ + + def __init__(self, config_file, sections): + self.config = ConfigParser.ConfigParser() + self.config.readfp(open(config_file, "r")) + + self.sections = sections + self._options = {} + + self.__load_all() + + def __load_all(self): + multi_sections = [s for s in self.sections if s.multiple != None] + required_sections = [s for s in self.sections if s.required] + conditional_sections = [s for s in self.sections if not s.required and s.required_if != None] + optional_sections = [s for s in self.sections if not s.required and s.required_if == None] + + sections = multi_sections + required_sections + conditional_sections + optional_sections + + for sec in sections: + if sec.multiple != None: + valid = self.config.get(sec.multiple[0],sec.multiple[1]).split() + for v in valid: + secname = "%s-%s" % (sec.name, v) + if self.config.has_section(secname): + for opt in sec.options: + self.__load_option(sec, secname, opt, True, multiname = v) + else: + has_section = self.config.has_section(sec.name) + + # If the section is required, check if it exists + if sec.required and not has_section: + raise ConfigException, "Required section [%s] not found" % sec.name + + # If the section is conditionally required, check that + # it meets the conditions + if sec.required_if != None: + for req in sec.required_if: + (condsec,condopt) = req[0] + condvalue = req[1] + + if self.config.has_option(condsec,condopt) and self.config.get(condsec,condopt) == condvalue: + if not has_section: + raise ConfigException, "Section '%s' is required when %s.%s==%s" % (sec.name, condsec, condopt, condvalue) + + # Load options + for opt in sec.options: + self.__load_option(sec, sec.name, opt, has_section) + + + def __load_option(self, sec, secname, opt, has_section, multiname = None): + # Load a single option + optname = opt.name + + has_option = self.config.has_option(secname, optname) + + if not has_option: + if has_section: + if opt.required: + raise ConfigException, "Required option '%s.%s' not found" % (secname, optname) + if opt.required_if != None: + for req in opt.required_if: + (condsec,condopt) = req[0] + condvalue = req[1] + + if self.config.has_option(condsec,condopt) and self.config.get(condsec,condopt) == condvalue: + raise ConfigException, "Option '%s.%s' is required when %s.%s==%s" % (secname, optname, condsec, condopt, condvalue) + + value = opt.default + if has_section and opt.type == OPTTYPE_FILE and value != None: + value = os.path.expanduser(value) + if not os.path.exists(value): + raise ConfigException, "File '%s' does not exist (default for '%s.%s')" % (value, secname, optname) + else: + if opt.type == OPTTYPE_INT: + value = self.config.getint(secname, optname) + elif opt.type == OPTTYPE_FLOAT: + value = self.config.getfloat(secname, optname) + elif opt.type == OPTTYPE_STRING: + value = self.config.get(secname, optname) + elif opt.type == OPTTYPE_BOOLEAN: + value = self.config.getboolean(secname, optname) + elif opt.type == OPTTYPE_FILE: + value = os.path.expanduser(self.config.get(secname, optname)) + if not os.path.exists(value): + raise ConfigException, "File '%s' does not exist (specified for '%s.%s')" % (value, secname, optname) + + if opt.valid != None: + if not value in opt.valid: + raise ConfigException, "Invalid value '%s' specified for '%s.%s'. Valid values are %s" % (value, secname, optname, opt.valid) + + if sec.multiple != None: + self._options[(multiname,opt.getter)] = value + else: + self._options[opt.getter] = value + + def get(self, opt): + return self._options[opt] + + def has(self, opt): + return self._options.has_key(opt) + + @classmethod + def from_file(cls, configfile): + file = open (configfile, "r") + c = ConfigParser.ConfigParser() + c.readfp(file) + cfg = cls(c) + return cfg + + + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,24 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Default file locations +""" + +import os.path + +CONFIG_FILE = os.path.expanduser("~/.globusprovision/provision.conf") +INSTANCE_LOCATION = os.path.expanduser("~/.globusprovision/instances") \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,317 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +""" +Helper classes for performing Globus Online operations. + +""" + +import re +import StringIO +import os.path +import paramiko + +from pkg_resources import resource_filename + +from globus.provision.common.ssh import SSH +from globus.provision.common import log +from globusonline.transfer.api_client import TransferAPIClient, ClientError + + +class GlobusOnlineException(Exception): + pass + +class EndpointExistsException(GlobusOnlineException): + pass + +class GlobusOnlineHelper(object): + + def endpoint_create(self, ep, replace): + + if self.endpoint_exists(ep): + if not replace: + raise EndpointExistsException, "An endpoint called '%s' already exists. Please choose a different name." % ep.name + else: + self.endpoint_remove(ep) + + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + def _get_hostnames_subjects(self, ep): + ca_dn = self.inst.config.get("ca-dn") + if ca_dn == None: + ca_dn = "/O=Grid/OU=Globus Provision (generated)" + else: + ca_dn = [x.split("=") for x in ca_dn.split(",")] + ca_dn = "".join(["/%s=%s" % (n.upper().strip(), v.strip()) for n,v in ca_dn]) + + if ep.gridftp.startswith("node:"): + gridftp_node = self.inst.topology.get_node_by_id(ep.gridftp[5:]) + gridftp_hostname = gridftp_node.hostname + + if ep.has_property("globus_connect_cert") and ep.globus_connect_cert: + if ep.has_property("globus_connect_cert_dn"): + gridftp_subject = ep.globus_connect_cert_dn + else: + gridftp_subject = None + else: + gridftp_subject = "%s/CN=host/%s" % (ca_dn, gridftp_hostname) + else: + # Note: If user specifies an arbitrary GridFTP hostname, it + # will only work if it uses a valid host certificate that + # is trusted by Globus Online. + gridftp_hostname = ep.gridftp + gridftp_subject = None + + if ep.myproxy.startswith("node:"): + myproxy_node = self.inst.topology.get_node_by_id(ep.myproxy[5:]) + myproxy_hostname = myproxy_node.hostname + myproxy_subject = "%s/CN=host/%s" % (ca_dn, gridftp_hostname) + else: + myproxy_hostname = ep.myproxy + myproxy_subject = None + + return gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject + + @staticmethod + def from_instance(inst): + if inst.config.get("go-cert-file") == None and inst.config.get("go-ssh-key") != None: + # Use SSH + ssh_key = os.path.expanduser(inst.config.get("go-ssh-key")) + return GlobusOnlineCLIHelper(inst, ssh_key) + elif inst.config.get("go-cert-file") != None: + go_cert_file = os.path.expanduser(inst.config.get("go-cert-file")) + go_key_file = os.path.expanduser(inst.config.get("go-key-file")) + go_server_ca = resource_filename("globus.provision", "chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert") + return GlobusOnlineAPIHelper(inst, go_cert_file, go_key_file, go_server_ca) + else: + raise GlobusOnlineException, "Must specify either an SSH key or a certificate to connect to GO" + + +class GlobusOnlineAPIHelper(GlobusOnlineHelper): + def __init__(self, inst, go_cert_file, go_key_file, go_server_ca): + self.inst = inst + self.go_cert_file = go_cert_file + self.go_key_file = go_key_file + self.go_server_ca = go_server_ca + + def connect(self, username): + self.api = TransferAPIClient(username, self.go_server_ca, self.go_cert_file, self.go_key_file) + + def endpoint_exists(self, ep): + try: + (code, msg, data) = self.api.endpoint(ep.name) + + if code == 200: + return True + elif code == 404: + return False + else: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + if ce.status_code == 404: + return False + else: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + def disconnect(self): + self.api.close() + + def endpoint_remove(self, ep): + try: + (code, msg, data) = self.api.endpoint_delete(ep.name) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + def endpoint_gc_create(self, ep, replace): + if self.endpoint_exists(ep): + if not replace: + raise EndpointExistsException, "An endpoint called '%s' already exists. Please choose a different name." % ep.name + else: + self.endpoint_remove(ep) + + try: + (code, msg, data) = self.api.endpoint_create(ep.name, None, description="Globus Provision endpoint", + is_globus_connect=True) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + gc_setupkey = data["globus_connect_setup_key"] + + return gc_setupkey + + def endpoint_gc_create_finalize(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + # This is a kludge until http://jira.globus.org/browse/KOA-1624 gets fixed + username = self.inst.config.get("ec2-username") + keyfile = os.path.expanduser(self.inst.config.get("ec2-keyfile")) + gc_setupkey = self.inst.topology.get_node_by_id(ep.gridftp[5:]).gc_setupkey + ssh = SSH(username, gridftp_hostname, keyfile, default_outf = None, default_errf = None) + ssh.open() + outf = StringIO.StringIO() + errf = StringIO.StringIO() + rc = ssh.run("grid-cert-info -subject -file /etc/grid-security/gc-cert-%s.pem" % (gc_setupkey), outf=outf, errf=errf, exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep.name + ssh.close() + + gridftp_subject = outf.getvalue().strip() + + self.endpoint_remove(ep) + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + + def _endpoint_create(self, ep_name, gridftp_hostname, gridftp_subject, myproxy_hostname, public): + try: + (code, msg, data) = self.api.endpoint_create(ep_name, gridftp_hostname, description="Globus Provision endpoint", + scheme="gsiftp", port=2811, subject=gridftp_subject, + myproxy_server=myproxy_hostname) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + + if public: + try: + (code, msg, data) = self.api.endpoint(ep_name) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + data["public"] = True + + try: + (code, msg, data) = self.api.endpoint_update(ep_name, data) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + + +class GlobusOnlineCLIHelper(GlobusOnlineHelper): + def __init__(self, inst, ssh_key): + self.inst = inst + self.ssh_key = ssh_key + + def connect(self, username): + self.ssh = SSH(username, "cli.globusonline.org", self.ssh_key, default_outf = None, default_errf = None) + try: + self.ssh.open(timeout=10) + except paramiko.PasswordRequiredException, pre: + msg = "The specified SSH key (%s) requires a password." % self.ssh_key + msg += "Please specify a passwordless SSH key." + raise GlobusOnlineException, msg + except Exception, e: + raise GlobusOnlineException, "Could not connect to GO CLI. Cause: %s" % e + + def disconnect(self): + self.ssh.close() + + def endpoint_exists(self, ep): + rc = self.ssh.run("endpoint-list %s" % (ep.name), exception_on_error=False) + return (rc == 0) + + def endpoint_remove(self, ep): + rc = self.ssh.run("endpoint-remove %s" % (ep.name), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not remove endpoint %s" % ep.name + + def endpoint_remove_server(self, ep, server): + rc = self.ssh.run("endpoint-remove %s -p %s" % (ep.name, server), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not remove server for endpoint %s" % ep.name + + def endpoint_gc_create(self, ep, replace): + if self.endpoint_exists(ep): + if not replace: + raise EndpointExistsException, "An endpoint called '%s' already exists. Please choose a different name." % ep.name + else: + self.endpoint_remove(ep) + + outf = StringIO.StringIO() + errf = StringIO.StringIO() + + rc = self.ssh.run("endpoint-add %s --gc" % (ep.name), outf=outf, errf=errf, exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep.name + + output = outf.getvalue() + gc_setupkey = re.findall("[0-9abcdef-]+$", output)[0] + + return gc_setupkey + + def endpoint_gc_create_finalize(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + outf = StringIO.StringIO() + errf = StringIO.StringIO() + rc = self.ssh.run("endpoint-list -f subjects %s" % (ep.name), outf=outf, errf=errf, exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep.name + + gridftp_subject = outf.getvalue().strip() + ep.set_property("globus_connect_cert_dn", gridftp_subject) + + self.endpoint_remove(ep) + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + def endpoint_stop(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + self.endpoint_remove_server(ep, gridftp_hostname) + + # Create a disconnected endpoint + self._endpoint_create(ep.name, "relay-disconnected.globusonline.org", gridftp_subject, "myproxy.globusonline.org", ep.public) + + def endpoint_resume(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + # Remove disconnected server + self.endpoint_remove_server(ep, "relay-disconnected.globusonline.org") + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + def _endpoint_create(self, ep_name, gridftp_hostname, gridftp_subject, myproxy_hostname, public): + rc = self.ssh.run("endpoint-add %s -p %s -s \"%s\"" % (ep_name, gridftp_hostname, gridftp_subject), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep_name + + rc = self.ssh.run("endpoint-modify --myproxy-server=%s %s" % (myproxy_hostname, ep_name), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not set MyProxy server for endpoint %s" % ep_name + + if public: + rc = self.ssh.run("endpoint-modify --public %s" % (ep_name), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not make endpoint %s public" % ep_name + + + + + + + + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,63 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Convenience functions around the logging module +""" + +import logging +import os.path + +def init_logging(level): + if level == 2: + level = logging.DEBUG + elif level == 1: + level = logging.INFO + else: + level = logging.WARNING + logging.getLogger('boto').setLevel(logging.CRITICAL) + logging.getLogger('paramiko').setLevel(logging.CRITICAL) + + l = logging.getLogger("globusprovision") + l.setLevel(logging.DEBUG) + + fh = logging.StreamHandler() + fh.setLevel(level) + formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s') + fh.setFormatter(formatter) + l.addHandler(fh) + +def set_logging_instance(instance): + l = logging.getLogger("globusprovision") + fh = logging.FileHandler(os.path.expanduser('%s/deploy.log' % instance.instance_dir)) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(message)s') + fh.setFormatter(formatter) + l.addHandler(fh) + +def log(msg, func, node): + if node != None: + msg = "%s - %s" % (node.id, msg) + func(msg) + +def debug(msg, node = None): + log(msg, logging.getLogger('globusprovision').debug, node) + +def warning(msg, node = None): + log(msg, logging.getLogger('globusprovision').warning, node) + +def info(msg, node = None): + log(msg, logging.getLogger('globusprovision').info, node) Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,544 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Persistent objects + +A self-documenting, self-validating, persistent object library. +The only persistent backend currently supported is JSON, but +others could be added. +""" + +from globus.provision.common.utils import enum + +import inspect +import json + +class ObjectValidationException(Exception): + """A simple exception class used for validation exceptions""" + pass + +PropertyTypes = enum("STRING", + "INTEGER", + "NUMBER", + "BOOLEAN", + "OBJECT", + "ARRAY", + "NULL", + "ANY") + +def pt_to_str(pt, items_type = None): + if pt == PropertyTypes.STRING: + return "string" + elif pt == PropertyTypes.INTEGER: + return "integer" + elif pt == PropertyTypes.NUMBER: + return "number" + elif pt == PropertyTypes.BOOLEAN: + return "boolean" + elif pt == PropertyTypes.OBJECT: + return "object" + elif pt == PropertyTypes.ARRAY: + return "list of %s" % pt_to_str(items_type) + elif pt == PropertyTypes.NULL: + return "null" + elif pt == PropertyTypes.ANY: + return "any" + elif inspect.isclass(pt) and issubclass(pt, PersistentObject): + return pt.__name__ + else: + return "unknown" + +def validate_property_type(value, expected_type, items_type = None, json = False): + if expected_type == PropertyTypes.STRING: + valid = isinstance(value, basestring) + elif expected_type == PropertyTypes.INTEGER: + valid = isinstance(value, int) + elif expected_type == PropertyTypes.NUMBER: + valid = isinstance(value, int) or isinstance(value, float) + elif expected_type == PropertyTypes.BOOLEAN: + valid = isinstance(value, bool) + elif expected_type == PropertyTypes.OBJECT: + valid = isinstance(value, dict) + elif expected_type == PropertyTypes.ARRAY: + if isinstance(value, list): + valid = True + for elem in value: + valid &= validate_property_type(elem, items_type, json = json) + elif isinstance(value, dict): + valid = True + for elem in value.values(): + valid &= validate_property_type(elem, items_type, json = json) + else: + valid = False + elif expected_type == PropertyTypes.NULL: + valid = value is None + elif expected_type == PropertyTypes.ANY: + valid = True + elif issubclass(expected_type, PersistentObject): + # Further validation is done when we convert + # this object + if json: + valid = isinstance(value, dict) + else: + valid = isinstance(value, expected_type) + else: + valid = False + + return valid + +class Property(object): + def __init__(self, name, proptype, required, description, editable = False, items = None, items_unique = False): + self.name = name + self.type = proptype + self.required = required + self.editable = editable + self.items_unique = items_unique + self.description = description + self.items = items + + +class PropertyChange(object): + ADD = 0 + REMOVE = 1 + EDIT = 2 + + def __init__(self, change_type): + self.change_type = change_type + + +class PrimitivePropertyChange(PropertyChange): + + def __init__(self, change_type, old_value, new_value): + PropertyChange.__init__(self, change_type) + self.old_value = old_value + self.new_value = new_value + + def to_dict(self): + if self.change_type == PropertyChange.ADD: + return {"__action__": "add"} + elif self.change_type == PropertyChange.REMOVE: + return {"__action__": "remove"} + elif self.change_type == PropertyChange.EDIT: + d = {} + d["old"] = self.old_value + d["new"] = self.new_value + return d + + +class ArrayPropertyChange(PropertyChange): + + def __init__(self, change_type, add, remove, edit): + PropertyChange.__init__(self, change_type) + self.add = add + self.remove = remove + self.edit = edit + + def to_dict(self): + if self.change_type == PropertyChange.ADD: + return {"__action__": "add"} + elif self.change_type == PropertyChange.REMOVE: + return {"__action__": "remove"} + elif self.change_type == PropertyChange.EDIT: + d = {} + + if len(self.add) > 0: + d["ADD"] = self.add + + if len(self.remove) > 0: + d["REMOVE"] = self.remove + + if len(self.edit) > 0: + editd = {} + for property in self.edit: + editd[property] = self.edit[property].to_dict() + d["EDIT"] = editd + + return d + + +class ObjectPropertyChange(PropertyChange): + + def __init__(self, change_type, changes): + PropertyChange.__init__(self, change_type) + self.changes = changes + + def to_dict(self): + if self.change_type == PropertyChange.ADD: + return {"__action__": "add"} + elif self.change_type == PropertyChange.REMOVE: + return {"__action__": "remove"} + elif self.change_type == PropertyChange.EDIT: + d = {} + for property in self.changes: + d[property] = self.changes[property].to_dict() + return d + + +class PersistentObject(object): + def __init__(self): + self._json_file = None + + def save(self, filename = None): + if self._json_file == None and filename == None: + raise Exception("Don't know where to save this topology") + if filename != None: + self._json_file = filename + f = open (self._json_file, "w") + json_string = self.to_json_string() + f.write(json_string) + f.close() + + def set_property(self, p_name, p_value): + # TODO: Validation + setattr(self, p_name, p_value) + + def has_property(self, p_name): + return hasattr(self, p_name) + + def get_property(self, p_name): + # TODO: Validation + return getattr(self, p_name) + + def add_to_array(self, p_name, item_value): + if not self.properties.has_key(p_name): + raise ObjectValidationException("%s does not have a %s property" % (type(self).__name__, p_name)) + + p = self.properties[p_name] + + if p.type != PropertyTypes.ARRAY: + raise ObjectValidationException("Tried to add %s to %s.%s, but it is not an array." % (item_value, type(self).__name__, p_name)) + + if not validate_property_type(item_value, p.items): + raise ObjectValidationException("Tried to add %s to %s.%s, but this array contains %s." % (item_value, type(self).__name__, p_name, pt_to_str(p.items))) + + if p.items_unique and inspect.isclass(p.items) and issubclass(p.items, PersistentObject): + if not self.has_property(p_name): + p_value = {} + self.set_property(p_name, p_value) + else: + p_value = self.get_property(p_name) + + setattr(item_value, "parent_%s" % type(self).__name__, self) + p_value[item_value.id] = item_value + else: + if not self.has_property(p_name): + p_value = [] + self.set_property(p_name, p_value) + else: + p_value = self.get_property(p_name) + + p_value.append(item_value) + + + def validate_update(self, pobj): + if type(self) != type(pobj): + raise ObjectValidationException("Cannot update a %s object with a %s object" % (type(self).__name__, type(pobj).__name__)) + + changes = {} + for name, property in self.properties.items(): + self_hasattr = hasattr(self, name) + pobj_hasattr = hasattr(pobj, name) + + if self_hasattr: + self_value = getattr(self, name) + + if pobj_hasattr: + pobj_value = getattr(pobj, name) + + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + if not self_hasattr and pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to add a property, but it is non-editable (setting '%s' to %s)""" % (name, pobj_value)) + else: + changes[name] = PrimitivePropertyChange(PropertyChange.ADD, None, pobj_value) + elif self_hasattr and not pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to remove a property, but it is non-editable (removing '%s' = %s)""" % (name, self_value)) + else: + changes[name] = PrimitivePropertyChange(PropertyChange.REMOVE, self_value, None) + elif self_hasattr and pobj_hasattr: + # If this is a primitive type, check if the value has changed and, if so, + # whether the change is allowed. + if self_value != pobj_value: + if not property.editable: + raise ObjectValidationException("Tried to change the value of non-editable property '%s' (from %s to %s)""" % (name, self_value, pobj_value)) + else: + changes[name] = PrimitivePropertyChange(PropertyChange.EDIT, self_value, pobj_value) + elif property.type == PropertyTypes.ARRAY: + if not self_hasattr and pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to add a property, but it is non-editable (setting '%s' to %s)""" % (name, pobj_value)) + else: + changes[name] = ArrayPropertyChange(PropertyChange.ADD, None, None, None) + elif self_hasattr and not pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to remove a property, but it is non-editable (removing '%s' = %s)""" % (name, self_value)) + else: + changes[name] = ArrayPropertyChange(PropertyChange.REMOVE, None, None, None) + elif self_hasattr and pobj_hasattr: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + self_set = set(self_value) + pobj_set = set(pobj_value) + + add = list(pobj_set - self_set) + remove = list(self_set - pobj_set) + + if len(add) + len(remove) > 0: + if property.editable: + changes[name] = ArrayPropertyChange(PropertyChange.EDIT, add, remove, {}) + else: + raise ObjectValidationException("Tried to add/remove items from non-editable array '%s' (Add: %s Remove: %s)""" % (name, add, remove)) + elif inspect.isclass(property.items) and issubclass(property.items, PersistentObject): + if property.items_unique: + self_set = set(self_value.keys()) + pobj_set = set(pobj_value.keys()) + + add = list(pobj_set - self_set) + remove = list(self_set - pobj_set) + + if len(add) + len(remove) > 0 and not property.editable: + raise ObjectValidationException("Tried to add/remove items from non-editable array '%s' (Add: %s Remove: %s)""" % (name, add, remove)) + + common = list(self_set & pobj_set) + + self_items_value = dict([(k, v) for k, v in self_value.items() if k in common]) + pobj_items_value = dict([(k, v) for k, v in pobj_value.items() if k in common]) + + edit = {} + for s in self_items_value.values(): + p = pobj_items_value[s.id] + item_changes = s.validate_update(p) + if len(item_changes.changes) > 0: + if not property.editable: + raise ObjectValidationException("Tried to edit an item in an non-editable array '%s' (Item with id '%s')""" % (name, s.id)) + else: + edit[s.id] = item_changes + + if len(add) + len(remove) + len(edit) > 0: + changes[name] = ArrayPropertyChange(PropertyChange.EDIT, add, remove, edit) + else: + # We have no way of telling if individual entries have been edited, + # or even if entries have been added/removed, since we don't have + # object equality implemented yet. + pass + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + elif issubclass(property.type, PersistentObject): + if not self_hasattr and pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to add a property, but it is non-editable (setting '%s' to %s)""" % (name, pobj_value)) + else: + changes[name] = ObjectPropertyChange(PropertyChange.ADD, None) + elif self_hasattr and not pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to remove a property, but it is non-editable (removing '%s' = %s)""" % (name, self_value)) + else: + changes[name] = ObjectPropertyChange(PropertyChange.REMOVE, None) + elif self_hasattr and pobj_hasattr: + property_changes = self_value.validate_update(pobj_value) + if len(property_changes.changes) > 0: + if not property.editable: + raise ObjectValidationException("Tried to to change the value of non-editable property '%s' (Changes: '%s')""" % (name, property_changes.to_dict())) + else: + changes[name] = property_changes + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + return ObjectPropertyChange(PropertyChange.EDIT, changes) + + def to_json_dict(self): + json = {} + for name, property in self.properties.items(): + if hasattr(self, name): + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + value = getattr(self, name) + elif property.type == PropertyTypes.ARRAY: + value = [] + + if inspect.isclass(property.items) and issubclass(property.items, PersistentObject) and property.items_unique: + l = getattr(self, name).values() + else: + l = getattr(self, name) + + for elem in l: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + value.append(elem) + elif issubclass(property.items, PersistentObject): + elem_obj = elem.to_json_dict() + value.append(elem_obj) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + elif issubclass(property.type, PersistentObject): + value = getattr(self, name).to_json_dict() + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + json[name] = value + + return json + + def to_json_string(self): + return json.dumps(self.to_json_dict(), indent=2) + + def __primitive_to_ruby(self, value, p_type): + if p_type == PropertyTypes.STRING: + return "\"%s\"" % value + elif p_type == PropertyTypes.INTEGER: + return "%i" % value + elif p_type == PropertyTypes.NUMBER: + return "%f" % value + elif p_type == PropertyTypes.BOOLEAN: + if value == True: + return "true" + else: + return "false" + elif p_type == PropertyTypes.NULL: + return "nil" + + def to_ruby_hash_string(self): + hash_str = "{" + + obj_items = {} + for name, property in self.properties.items(): + if hasattr(self, name): + value = getattr(self, name) + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + value_str = self.__primitive_to_ruby(value, property.type) + elif property.type == PropertyTypes.ARRAY and inspect.isclass(property.items) and issubclass(property.items, PersistentObject) and property.items_unique: + value_str = "{" + + items = {} + for k, elem in value.items(): + items[k] = elem.to_ruby_hash_string() + + value_str += ", ".join([" \"%s\" => %s" % (k,v) for k,v in items.items()]) + value_str += "}" + elif property.type == PropertyTypes.ARRAY: + value_str = "[" + + items = [] + for elem in value: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + items.append( self.__primitive_to_ruby(elem, property.items) ) + elif issubclass(property.items, PersistentObject): + items.append( elem.to_ruby_hash_string() ) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + value_str += ", ".join(items) + value_str += "]" + elif inspect.isclass(property.type) and issubclass(property.type, PersistentObject): + value_str = value.to_ruby_hash_string() + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + obj_items[name] = value_str + + hash_str += ", ".join([" :%s => %s" % (k,v) for k,v in obj_items.items()]) + + hash_str += "}" + + return hash_str + + @classmethod + def from_json_string(cls, json_string): + try: + json_dict = json.loads(json_string) + return cls.from_json_dict(json_dict) + except ValueError, ve: + raise ObjectValidationException("Error parsing JSON. %s" % ve) + + @classmethod + def from_json_dict(cls, obj_dict): + obj = cls() + if not isinstance(obj_dict, dict): + raise ObjectValidationException("JSON provided for %s is not a dictionary" % cls.__name__) + + given_names = set(obj_dict.keys()) + required_names = set([p.name for p in cls.properties.values() if p.required]) + valid_names = set(cls.properties.keys()) + + # Check whether required fields are present + missing = required_names - given_names + if len(missing) > 0: + raise ObjectValidationException("JSON provided for %s is missing required properties: %s" % (cls.__name__, ", ".join(missing))) + + # Check whether there are any unexpected fields + unexpected = given_names - valid_names + if len(unexpected) > 0: + raise ObjectValidationException("Encountered unexpected properties in JSON provided for %s: %s" % (cls.__name__, ", ".join(unexpected))) + + for p_name, p_value in obj_dict.items(): + property = cls.properties[p_name] + if not validate_property_type(p_value, property.type, property.items, json = True): + raise ObjectValidationException("'%s' is not a valid value for %s.%s. Expected a %s." % (p_value, cls.__name__, p_name, pt_to_str(property.type, property.items))) + else: + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + obj.set_property(p_name, p_value) + + elif property.type == PropertyTypes.ARRAY and property.items_unique: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + l = list(set(p_value)) + if len(l) < len(p_value): + raise ObjectValidationException("%s.%s requires unique values, but '%s' contains duplicate values." % (cls.__name__, p_name, p_value)) + obj.set_property(p_name, l) + if inspect.isclass(property.items) and issubclass(property.items, PersistentObject): + d = {} + for elem in p_value: + if not elem.has_key("id"): + raise ObjectValidationException("%s.%s requires unique objects, but '%s' does not have an 'id' property." % (cls.__name__, p_name, elem)) + key = elem["id"] + if d.has_key(key): + raise ObjectValidationException("%s.%s requires unique objects, but id=%s encountered twice." % (cls.__name__, p_name, key)) + elem_obj = property.items.from_json_dict(elem) + setattr(elem_obj, "parent_%s" % cls.__name__, obj) + d[key] = elem_obj + obj.set_property(p_name, d) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + elif property.type == PropertyTypes.ARRAY and not property.items_unique: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + l = [] + for elem in p_value: + l.append(elem) + obj.set_property(p_name, l) + elif inspect.isclass(property.items) and issubclass(property.items, PersistentObject): + l = [] + for elem in p_value: + elem_obj = property.items.from_json_dict(elem) + l.append(elem_obj) + obj.set_property(p_name, l) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + elif inspect.isclass(property.type) and issubclass(property.type, PersistentObject): + p_value_obj = property.type.from_json_dict(p_value) + obj.set_property(p_name, p_value_obj) + + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + return obj Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,207 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Remote execution and file transfer via SSH + +This module provides an abstraction over the paramiko package. +""" + +import sys +import paramiko +import time +import select +import os.path +import traceback +from paramiko.ssh_exception import SSHException + +# Try to use our patched version of paraproxy only if +# it is available. If it isn't, ProxyCommand support +# will simply be unavailable +try: + import dg_paraproxy +except: + pass + +from Crypto.Random import atfork + +from globus.provision.common import log +from os import walk + +class SSHCommandFailureException(Exception): + def __init__(self, ssh, command): + self.ssh = ssh + self.command = command + + +class SSH(object): + def __init__(self, username, hostname, key_path, default_outf = sys.stdout, default_errf = sys.stderr, port=22): + self.username = username + self.hostname = hostname + self.key_path = key_path + self.default_outf = default_outf + self.default_errf = default_errf + self.port = port + + def open(self, timeout = 120): + key = paramiko.RSAKey.from_private_key_file(self.key_path) + connected = False + t_start = time.time() + while not connected: + try: + atfork() + self.client = paramiko.SSHClient() + self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + self.client.connect(self.hostname, self.port, self.username, timeout=5, pkey=key) + connected = True + except Exception, e: + t_now = time.time() + if t_now - t_start > timeout: + raise e + else: + time.sleep(2) + + try: + self.sftp = self.client.get_transport().open_sftp_client() + except SSHException, sshe: + # Some SSH servers, like the GO CLI, are not amenable to SFTP + log.debug("Unable to create an SFTP client on this connection.") + self.sftp = None + + def close(self): + self.client.close() + + def run(self, command, outf=None, errf=None, exception_on_error = True, expectnooutput=False): + channel = self.client.get_transport().open_session() + + log.debug("%s - Running %s" % (self.hostname,command)) + + if outf == None: + outf = self.default_outf + + if errf == None: + errf = self.default_errf + + try: + channel.exec_command(command) + if expectnooutput: + log.debug("Ignoring output from command (not expecting any)") + else: + all_out_nbytes = 0 + all_err_nbytes = 0 + rem_out = "" + rem_err = "" + while True: + rl, wl, xl = select.select([channel],[],[], 0.1) + if len(rl) > 0: + out_nbytes, rem_out = self.__recv(outf, channel.recv_ready, channel.recv, "SSH_OUT", rem_out) + err_nbytes, rem_err = self.__recv(errf, channel.recv_stderr_ready, channel.recv_stderr, "SSH_ERR", rem_err) + + if out_nbytes + err_nbytes == 0: + break + + all_out_nbytes += out_nbytes + all_err_nbytes += err_nbytes + + if all_out_nbytes == 0: + log.debug("Command did not write to standard output.") + + if all_err_nbytes == 0: + log.debug("Command did not write to standard error.") + + log.debug("%s - Waiting for exit status: %s" % (self.hostname,command)) + rc = channel.recv_exit_status() + log.debug("%s - Ran %s (exit status: %i)" % (self.hostname,command,rc)) + channel.close() + except Exception, e: + raise # Replace by something more meaningful + + if exception_on_error and rc != 0: + raise SSHCommandFailureException(self, command) + else: + return rc + + + + + def scp(self, fromf, tof): + # Create directory if it does not exist + try: + self.sftp.stat(os.path.dirname(tof)) + except IOError, e: + pdirs = get_parent_directories(tof) + for d in pdirs: + try: + self.sftp.stat(d) + except IOError, e: + self.sftp.mkdir(d) + try: + self.sftp.put(fromf, tof) + except Exception, e: + traceback.print_exc() + try: + self.close() + except: + pass + log.debug("scp %s -> %s:%s" % (fromf, self.hostname, tof)) + + def scp_dir(self, fromdir, todir): + for root, dirs, files in walk(fromdir): + todir_full = todir + "/" + root[len(fromdir):] + try: + self.sftp.stat(todir_full) + except IOError, e: + self.sftp.mkdir(todir_full) + for f in files: + fromfile = root + "/" + f + tofile = todir_full + "/" + f + self.sftp.put(fromfile, tofile) + log.debug("scp %s -> %s:%s" % (fromfile, self.hostname, tofile)) + + def __recv(self, f, ready_func, recv_func, log_label, rem): + nbytes = 0 + while ready_func(): + data = recv_func(4096) + if len(data) > 0: + nbytes += len(data) + + if f is not None: + f.write(data) + + lines = data.split('\n') + + if len(lines) == 1: + rem += lines[0] + else: + log.debug(log_label + ": %s" % (rem + lines[0])) + for line in lines[1:-1]: + log.debug(log_label + ": %s" % line) + rem = lines[-1] + + if f is not None: f.flush() + + return nbytes, rem + + +def get_parent_directories(filepath): + dir = os.path.dirname(filepath) + dirs = [dir] + while dir != "/": + dir = os.path.dirname(dir) + dirs.append(dir) + dirs.reverse() + return dirs + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,163 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Thread management + +This module provides an abstraction over the threading package, including +the ability to manage the execution of a tree of threads. +""" + +import os +import sys +import signal +import threading +import traceback +from globus.provision.common import log + +class ThreadAbortException(Exception): + pass + +class GPThread (threading.Thread): + def __init__ (self, multi, name, depends = None): + threading.Thread.__init__(self) + self.multi = multi + self.name = name + self.exception = None + self.stack_trace = None + self.status = -1 + self.depends = depends + + def check_continue(self): + if self.multi.abort.is_set(): + raise ThreadAbortException() + + def run2(self): + pass + + def run(self): + try: + self.run2() + self.status = 0 + except Exception: + exc_type, exc_value, exc_traceback = sys.exc_info() + self.exception = exc_value + self.stack_trace = traceback.format_exception(exc_type, exc_value, exc_traceback) + self.status = 1 + self.multi.thread_failure(self) + + if self.status == 0: + self.multi.thread_success(self) + +class MultiThread(object): + def __init__(self): + self.num_threads = 0 + self.done_threads = 0 + self.threads = {} + self.lock = threading.Lock() + self.all_done = threading.Event() + self.abort = threading.Event() + + def add_thread(self, thread): + self.threads[thread.name] = thread + self.num_threads += 1 + + def run(self): + self.done_threads = 0 + for t in [th for th in self.threads.values() if th.depends == None]: + t.start() + self.all_done.wait() + + def thread_success(self, thread): + with self.lock: + self.done_threads += 1 + log.debug("%s thread has finished successfully." % thread.name) + log.debug("%i threads are done. Remaining: %s" % (self.done_threads, ",".join([t.name for t in self.threads.values() if t.status == -1]))) + for t in [th for th in self.threads.values() if th.depends == thread]: + t.start() + if self.done_threads == self.num_threads: + self.all_done.set() + + def thread_failure(self, thread): + with self.lock: + if not isinstance(thread.exception, ThreadAbortException): + log.debug("%s thread has failed: %s" % (thread.name, thread.exception)) + self.abort.set() + else: + log.debug("%s thread is being aborted." % thread.name) + thread.status = 2 + self.done_threads += 1 + self.abort_dependents(thread) + log.debug("%i threads are done. Remaining: %s" % (self.done_threads, ",".join([t.name for t in self.threads.values() if t.status == -1]))) + if self.done_threads == self.num_threads: + self.all_done.set() + + def abort_dependents(self, thread): + dep = [th for th in self.threads.values() if th.depends == thread] + for th in dep: + log.debug("%s thread is being aborted because it depends on failed %s thread." % (th.name, thread.name)) + th.status = 3 + self.done_threads += 1 + self.abort_dependents(th) + + def all_success(self): + return all([t.status == 0 for t in self.threads.values()]) + + def get_exceptions(self): + return dict([(t.name, (t.exception, t.stack_trace)) for t in self.threads.values() if t.status == 1]) + +# From http://code.activestate.com/recipes/496735-workaround-for-missed-sigint-in-multithreaded-prog/ +# Modified so it will run a cleanup function +class SIGINTWatcher(object): + """this class solves two problems with multithreaded + programs in Python, (1) a signal might be delivered + to any thread (which is just a malfeature) and (2) if + the thread that gets the signal is waiting, the signal + is ignored (which is a bug). + + The watcher is a concurrent process (not thread) that + waits for a signal and the process that contains the + threads. See Appendix A of The Little Book of Semaphores. + http://greenteapress.com/semaphores/ + + I have only tested this on Linux. I would expect it to + work on the Macintosh and not work on Windows. + """ + + def __init__(self, cleanup_func): + """ Creates a child thread, which returns. The parent + thread waits for a KeyboardInterrupt and then kills + the child thread. + """ + self.cleanup_func = cleanup_func + self.child = os.fork() + if self.child == 0: + return + else: + self.watch() + + def watch(self): + try: + os.wait() + except KeyboardInterrupt: + self.cleanup_func() + self.kill() + sys.exit() + + def kill(self): + try: + os.kill(self.child, signal.SIGKILL) + except OSError: pass Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,127 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Miscellaneous utility functions. +""" + +import glob +import os + +from os import environ + +from boto.ec2.connection import EC2Connection,RegionInfo +from boto import connect_ec2 + + +def create_ec2_connection(hostname = None, path = None, port = None): + if hostname == None: + # We're using EC2. + # Check for AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, + # and use EC2Connection. boto will fill in all the values + if not (environ.has_key("AWS_ACCESS_KEY_ID") and environ.has_key("AWS_SECRET_ACCESS_KEY")): + return None + else: + return EC2Connection() + else: + # We're using an EC2-ish cloud. + # Check for EC2_ACCESS_KEY and EC2_SECRET_KEY (these are used by Eucalyptus; + # we will probably have to tweak this further to support other systems) + if not (environ.has_key("EC2_ACCESS_KEY") and environ.has_key("EC2_SECRET_KEY")): + return None + else: + print "Setting region" + region = RegionInfo(name="eucalyptus", endpoint=hostname) + return connect_ec2(aws_access_key_id=environ["EC2_ACCESS_KEY"], + aws_secret_access_key=environ["EC2_SECRET_KEY"], + is_secure=False, + region=region, + port=port, + path=path) + + +def parse_extra_files_files(f): + l = [] + extra_f = open(f) + for line in extra_f: + srcglob, dst = line.split() + srcs = glob.glob(os.path.expanduser(srcglob)) + srcs = [s for s in srcs if os.path.isfile(s)] + dst_isdir = (os.path.basename(dst) == "") + for src in srcs: + full_dst = dst + if dst_isdir: + full_dst += os.path.basename(src) + l.append( (src, full_dst) ) + return l + +def rest_table(col_names, rows): + def gen_line(lens, char): + return "+" + char + (char + "+" + char).join([char * l for l in lens]) + char + "+\n" + + num_cols = len(col_names) + len_cols = [0] * num_cols + height_row = [0] * len(rows) + + table = "" + + for i, name in enumerate(col_names): + len_cols[i] = max(len(name), len_cols[i]) + + for i, row in enumerate(rows): + for j in range(num_cols): + lines = row[j].split("\n") + row_len = max([len(l) for l in lines]) + len_cols[j] = max(row_len, len_cols[j]) + height_row[i] = max(len(lines), height_row[i]) + + table += gen_line(len_cols, "-") + + table += "|" + for i, name in enumerate(col_names): + table += " " + table += col_names[i].ljust(len_cols[i]) + table += " |" + table += "\n" + + table += gen_line(len_cols, "=") + + for i, row in enumerate(rows): + for j in range(height_row[i]): + table += "|" + for k, col in enumerate(row): + lines = col.split("\n") + + if len(lines) < j + 1: + col_txt = " " * len_cols[k] + else: + col_txt = lines[j].ljust(len_cols[k]) + + table += " " + table += col_txt + table += " |" + table += "\n" + + table += gen_line(len_cols, "-") + + return table + +# From http://stackoverflow.com/questions/36932/whats-the-best-way-to-implement-an-enum-in-python +def enum(*sequential, **named): + enums = dict(zip(sequential, range(len(sequential))), **named) + return type('Enum', (), enums) + + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,28 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +This is the core package of Globus Provision. The core is in charge of managing +instances (creating, starting, stopping, etc.). Although the core orchestrates +the deployment of instances, it does not have any infrastructure-specific code. +In other words, the core knows how to start an instance but, when it reaches a +point where an infrastructure-specific action has to be taken (e.g., "start an +EC2 instance"), it delegates that task to the appropriate deployer (in the +globus.provision.deploy package). + +The core provides an API that is used by the Command-Line Interface, +and could potentially be used by other frontends. +""" \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,735 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +""" +The Globus Provision API + +This API is currently meant to be used locally (i.e., not accessible through a +network via a remote call interface like REST, SOAP, etc.) and by a single +user (i.e., there is no notion of different users owning different instances). +Future versions of Globus Provision may run as a daemon with a remotely-accessible +API that supports multiple users. +""" + +import sys +import traceback +import os.path + +from boto.exception import EC2ResponseError + +import globus.provision.deploy.ec2 as ec2_deploy +import globus.provision.deploy.dummy as dummy_deploy + +from globus.provision.core.deploy import DeploymentException +from globus.provision.core.topology import Topology, Node +from globus.provision.core.instance import InstanceStore, InstanceException +from globus.provision.common.threads import MultiThread +from globus.provision.common.ssh import SSHCommandFailureException +from globus.provision.common import log +from globus.provision.common.config import ConfigException +from globus.provision.common.persistence import ObjectValidationException,\ + PropertyChange +from globus.provision.common.go_transfer import GlobusOnlineCLIHelper, GlobusOnlineHelper,\ + GlobusOnlineException + +class API(object): + """ + The Globus Provision API. + """ + + STATUS_SUCCESS = 0 + STATUS_FAIL = 1 + + def __init__(self, instances_dir): + self.instances_dir = instances_dir + + def instance_create(self, topology_json, config_txt): + try: + istore = InstanceStore(self.instances_dir) + inst = istore.create_new_instance(topology_json, config_txt) + except ConfigException, cfge: + message = "Error in configuration file: %s" % cfge + return (API.STATUS_FAIL, message, None) + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (API.STATUS_FAIL, message, None) + except: + message = self.__unexpected_exception_to_text(what = "creating a new instance.") + return (API.STATUS_FAIL, message, None) + + return (API.STATUS_SUCCESS, "Success", inst.id) + + def instance(self, inst_id): + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message, None) + + try: + json_string = inst.topology.to_json_string() + except: + message = self.__unexpected_exception_to_text(what = "accessing the instance's topology.") + return (API.STATUS_FAIL, message, None) + + return (API.STATUS_SUCCESS, "Success", json_string) + + def instance_start(self, inst_id, extra_files, run_cmds): + + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + try: + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class(extra_files, run_cmds) + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + if inst.topology.state == Topology.STATE_NEW: + resuming = False + elif inst.topology.state == Topology.STATE_STOPPED: + resuming = True + else: + message = "Cannot start an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + if not resuming: + inst.topology.state = Topology.STATE_STARTING + else: + inst.topology.state = Topology.STATE_RESUMING + + inst.topology.save() + + if not resuming: + try: + eps = inst.topology.get_go_endpoints() + self.__globusonline_pre_start(inst, eps) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + + inst.topology.save() + + nodes = inst.topology.get_nodes() + + (success, message, node_vm) = self.__allocate_vms(deployer, nodes, resuming) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_CONFIGURING + inst.topology.save() + + log.info("Instances are running.") + + for node, vm in node_vm.items(): + deployer.post_allocate(node, vm) + + inst.topology.save() + + # Generate certificates + if not resuming: + inst.gen_certificates(force_hosts=False, force_users=False) + else: + inst.gen_certificates(force_hosts=True, force_users=False) + + inst.topology.gen_chef_ruby_file(inst.instance_dir + "/topology.rb") + inst.topology.gen_hosts_file(inst.instance_dir + "/hosts") + + log.info("Setting up Globus Provision on instances") + + (success, message) = self.__configure_vms(deployer, node_vm) + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_RUNNING + inst.topology.save() + + log.info("Creating Globus Online endpoints") + eps = inst.topology.get_go_endpoints() + if not resuming: + try: + self.__globusonline_post_start(inst, eps) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + else: + try: + self.__globusonline_resume(inst, eps) + except GlobusOnlineException, goe: + log.warning("Unable to resume GO endpoint/s: %s" % goe) + + inst.topology.save() + + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "starting the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_update(self, inst_id, topology_json, extra_files, run_cmds): + try: + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + if inst.topology.state == Topology.STATE_NEW: + # If the topology is still in a New state, we simply + # validate that the update is valid, and replace + # the old topology. We don't need to deploy or + # configure any hosts.. + if topology_json != None: + (success, message, create_hosts, destroy_hosts) = inst.update_topology(topology_json) + if not success: + message = "Error in topology file: %s" % message + return (API.STATUS_FAIL, message) + + return (API.STATUS_SUCCESS, "Success") + elif inst.topology.state != Topology.STATE_RUNNING: + message = "Cannot update the topology of an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class(extra_files, run_cmds) + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + if topology_json != None: + old_topology = inst.topology + try: + (success, message, topology_changes) = inst.update_topology(topology_json) + if not success: + return (API.STATUS_FAIL, message) + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (API.STATUS_FAIL, message) + + create_hosts = [] + destroy_hosts = [] + + create_endpoints = [] + remove_endpoints = [] + + if topology_changes.changes.has_key("domains"): + for domain in topology_changes.changes["domains"].add: + d = inst.topology.domains[domain] + create_hosts += [n.id for n in d.nodes.values()] + + for domain in topology_changes.changes["domains"].remove: + d = inst.topology.domains[domain].keys() + destroy_hosts += [n.id for n in d.nodes.values()] + + for domain in topology_changes.changes["domains"].edit: + if topology_changes.changes["domains"].edit[domain].changes.has_key("nodes"): + nodes_changes = topology_changes.changes["domains"].edit[domain].changes["nodes"] + create_hosts += nodes_changes.add + destroy_hosts += nodes_changes.remove + + if topology_changes.changes["domains"].edit[domain].changes.has_key("go_endpoints"): + ep_changes = topology_changes.changes["domains"].edit[domain].changes["go_endpoints"] + if ep_changes.change_type == PropertyChange.ADD: + create_endpoints += inst.topology.domains[domain].go_endpoints + elif ep_changes.change_type == PropertyChange.REMOVE: + remove_endpoints += old_topology.domains[domain].go_endpoints + elif ep_changes.change_type == PropertyChange.EDIT: + create_endpoints += ep_changes.add + remove_endpoints += ep_changes.remove + + nodes = inst.topology.get_nodes() + + if len(destroy_hosts) > 0: + old_nodes = old_topology.get_nodes() + log.info("Terminating hosts %s" % destroy_hosts) + old_nodes = [n for n in old_nodes if n.id in destroy_hosts] + (success, message) = self.__terminate_vms(deployer, old_nodes) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.save() + + if len(create_endpoints) > 0: + try: + self.__globusonline_pre_start(inst, create_endpoints) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + + if len(create_hosts) > 0: + nodes = inst.topology.get_nodes() + log.info("Allocating VMs for hosts %s" % create_hosts) + new_nodes = [n for n in nodes if n.id in create_hosts] + (success, message, node_vm) = self.__allocate_vms(deployer, new_nodes, resuming = False) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.save() + + for node, vm in node_vm.items(): + deployer.post_allocate(node, vm) + + inst.topology.save() + + # Generate certificates + inst.gen_certificates() + + inst.topology.gen_chef_ruby_file(inst.instance_dir + "/topology.rb") + inst.topology.gen_hosts_file(inst.instance_dir + "/hosts") + + log.info("Setting up Globus Provision on instances") + + # Right now we reconfigure all nodes. It shouldn't be hard to follow + # the dependency tree to make sure only the new nodes and "ancestor" + # nodes are updated + nodes = inst.topology.get_nodes() + node_vm = deployer.get_node_vm(nodes) + (success, message) = self.__configure_vms(deployer, node_vm) + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + if topology_json != None: + self.__globusonline_remove(inst, remove_endpoints) + + if len(create_endpoints) > 0: + try: + self.__globusonline_post_start(inst, create_endpoints) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + + inst.topology.state = Topology.STATE_RUNNING + inst.topology.save() + + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "starting the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_stop(self, inst_id): + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + try: + if inst.topology.state != Topology.STATE_RUNNING: + message = "Cannot start an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class() + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_STOPPING + inst.topology.save() + + nodes = inst.topology.get_nodes() + + (success, message) = self.__stop_vms(deployer, nodes) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_STOPPED + inst.topology.save() + + log.info("Stopping Globus Online endpoints") + try: + eps = inst.topology.get_go_endpoints() + self.__globusonline_stop(inst, eps) + inst.topology.save() + except GlobusOnlineException, goe: + log.warning("Unable to stop GO endpoint/s: %s" % goe) + + log.info("Instance has stopped successfully.") + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "stopping the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_terminate(self, inst_id): + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + try: + if inst.topology.state in [Topology.STATE_NEW]: + message = "Cannot terminate an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class() + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_TERMINATING + inst.topology.save() + + nodes = inst.topology.get_nodes() + + (success, message) = self.__terminate_vms(deployer, nodes) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + # Remove GO endpoints + eps = inst.topology.get_go_endpoints() + self.__globusonline_remove(inst, eps) + + inst.topology.state = Topology.STATE_TERMINATED + inst.topology.save() + + log.info("Instances have been terminated.") + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "starting the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_list(self, inst_ids): + istore = InstanceStore(self.instances_dir) + + (valid, invalid) = istore.get_instances(inst_ids) + instances_jsons = [] + for inst in valid: + instances_jsons.append(inst.topology.to_json_string()) + + instances_json = "[" + ",".join(instances_jsons) + "]" + + # TODO: Return invalid instances as "warnings", once we + # add that extra return value to the API. + return API.STATUS_SUCCESS, "Success", instances_json + + + def __get_instance(self, inst_id): + try: + istore = InstanceStore(self.instances_dir) + inst = istore.get_instance(inst_id) + return (True, "Success", inst) + except ConfigException, cfge: + message = "Error in configuration file: %s" % cfge + return (False, message, None) + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (False, message, None) + except InstanceException, ie: + return (False, str(ie), None) + except: + message = self.__unexpected_exception_to_text(what = "accessing the instance.") + return (False, message, None) + + def __get_deployer_class(self, inst): + if inst.config.get("deploy") == "ec2": + deploy_module = ec2_deploy + elif inst.config.get("deploy") == "dummy": + deploy_module = dummy_deploy + + return deploy_module.Deployer + + + def __globusonline_pre_start(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + if ep.has_property("globus_connect_cert") and ep.globus_connect_cert: + if ep.gridftp.startswith("node:"): + gridftp_node = inst.topology.get_node_by_id(ep.gridftp[5:]) + go_helper.connect(ep.user) + gc_setupkey = go_helper.endpoint_gc_create(ep, replace = True) + gridftp_node.set_property("gc_setupkey", gc_setupkey) + go_helper.disconnect() + + + def __globusonline_post_start(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + go_helper.connect(ep.user) + if ep.has_property("globus_connect_cert") and ep.globus_connect_cert: + if ep.gridftp.startswith("node:"): + go_helper.endpoint_gc_create_finalize(ep) + else: + go_helper.create_endpoint(ep, replace=True) + go_helper.disconnect() + + def __globusonline_remove(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + try: + for ep in eps: + go_helper.connect(ep.user) + try: + go_helper.endpoint_remove(ep) + except: + pass + go_helper.disconnect() + except GlobusOnlineException, goe: + log.warning("Unable to remove GO endpoint/s: %s" % goe) + + + def __globusonline_stop(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + go_helper.connect(ep.user) + go_helper.endpoint_stop(ep) + go_helper.disconnect() + + def __globusonline_resume(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + go_helper.connect(ep.user) + go_helper.endpoint_resume(ep) + go_helper.disconnect() + + + def __allocate_vms(self, deployer, nodes, resuming): + # TODO: Make this an option + sequential = False + topology = deployer.instance.topology + + if not resuming: + log.info("Allocating %i VMs." % len(nodes)) + next_state = Node.STATE_RUNNING_UNCONFIGURED + else: + log.info("Resuming %i VMs" % len(nodes)) + next_state = Node.STATE_RESUMED_UNCONFIGURED + node_vm = {} + for n in nodes: + try: + if not resuming: + n.set_property("state", Node.STATE_STARTING) + topology.save() + vm = deployer.allocate_vm(n) + else: + n.set_property("state", Node.STATE_RESUMING) + topology.save() + vm = deployer.resume_vm(n) + node_vm[n] = vm + except Exception: + message = self.__unexpected_exception_to_text() + return (False, message, None) + + if sequential: + log.debug("Waiting for instance to start.") + wait = deployer.NodeWaitThread(None, "wait-%s" % str(vm), n, vm, deployer, state = next_state) + wait.run2() + + if not sequential: + log.debug("Waiting for instances to start.") + mt_instancewait = MultiThread() + for node, vm in node_vm.items(): + mt_instancewait.add_thread(deployer.NodeWaitThread(mt_instancewait, "wait-%s" % str(vm), node, vm, deployer, state = next_state)) + + mt_instancewait.run() + if not mt_instancewait.all_success(): + message = self.__mt_exceptions_to_text(mt_instancewait.get_exceptions(), "Exception raised while waiting for instances.") + return (False, message, None) + + return (True, "Success", node_vm) + + + def __configure_vms(self, deployer, node_vm, basic = True, chef = True): + nodes = node_vm.keys() + mt_configure = MultiThread() + topology = deployer.instance.topology + order = topology.get_launch_order(nodes) + + threads = {} + for nodeset in order: + rest = dict([(n, deployer.NodeConfigureThread(mt_configure, + "configure-%s" % n.id, + n, + node_vm[n], + deployer, + depends=threads.get(topology.get_depends(n)), + basic = basic, + chef = chef)) for n in nodeset]) + threads.update(rest) + + for thread in threads.values(): + mt_configure.add_thread(thread) + + mt_configure.run() + if not mt_configure.all_success(): + message = self.__mt_exceptions_to_text(mt_configure.get_exceptions(), "Globus Provision was unable to configure the instances.") + return (False, message) + + return (True, "Success") + + def __mt_exceptions_to_text(self, exceptions, what): + msg = "ERROR - " + what + for thread_name in exceptions: + msg += "\n\n" + exception_obj, exception_trace = exceptions[thread_name] + if isinstance(exception_obj, SSHCommandFailureException): + msg += " %s: Error while running '%s'\n" % (thread_name, exception_obj.command) + elif isinstance(exception_obj, EC2ResponseError): + msg += " %s: EC2 error '%s'\n" % (thread_name, exception_obj.reason) + msg += " Body: %s\n" % exception_obj.body + else: + msg += " %s: Unexpected exception '%s'\n" % (thread_name, exception_obj.__class__.__name__) + msg += " Message: %s\n" % exception_obj + for l in exception_trace: + msg += l + return msg + + + def __unexpected_exception_to_text(self, what=""): + exc_type, exc_value, exc_traceback = sys.exc_info() + if what != "": what = " when " + what + msg = "An unexpected '%s' exception has been raised%s\n\n" % (exc_type.__name__, what) + msg += "Message: %s\n\n" % exc_value + trace = traceback.format_exception(exc_type, exc_value, exc_traceback) + for l in trace: + msg += l + return msg + + + def __stop_vms(self, deployer, nodes): + node_vm = deployer.get_node_vm(nodes) + topology = deployer.instance.topology + mt_configure = MultiThread() + order = topology.get_launch_order(nodes) + order.reverse() + + for n in node_vm: + n.state = Node.STATE_STOPPING + topology.save() + + threads = {} + for nodeset in order: + rest = dict([(n, deployer.NodeConfigureThread(mt_configure, + "stop-configure-%s" % n.id, + n, + node_vm[n], + deployer, + depends=threads.get(topology.get_depends(n)))) for n in nodeset]) + threads.update(rest) + + for thread in threads.values(): + mt_configure.add_thread(thread) + + mt_configure.run() + if not mt_configure.all_success(): + message = self.__mt_exceptions_to_text(mt_configure.get_exceptions(), "Globus Provision was unable to configure the instances.") + return (False, message) + + + for nodeset in order: + deployer.stop_vms(nodeset) + + log.debug("Waiting for instances to stop.") + mt_instancewait = MultiThread() + for node, vm in node_vm.items(): + mt_instancewait.add_thread(deployer.NodeWaitThread(mt_instancewait, "wait-%s" % str(vm), node, vm, deployer, state = Node.STATE_STOPPED)) + + mt_instancewait.run() + if not mt_instancewait.all_success(): + message = self.__mt_exceptions_to_text(mt_instancewait.get_exceptions(), "Exception raised while waiting for instances.") + return (False, message) + + return (True, "Success") + + def __terminate_vms(self, deployer, nodes): + topology = deployer.instance.topology + + for n in nodes: + n.state = Node.STATE_TERMINATING + topology.save() + + deployer.terminate_vms(nodes) + + node_vm = deployer.get_node_vm(nodes) + + log.debug("Waiting for instances to terminate.") + mt_instancewait = MultiThread() + for node, vm in node_vm.items(): + mt_instancewait.add_thread(deployer.NodeWaitThread(mt_instancewait, "wait-%s" % str(vm), node, vm, deployer, state = Node.STATE_TERMINATED)) + + mt_instancewait.run() + if not mt_instancewait.all_success(): + message = self.__mt_exceptions_to_text(mt_instancewait.get_exceptions(), "Exception raised while waiting for instances.") + return (False, message) + + return (True, "Success") + + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,806 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Contains the parsers for the two configuration files used in Globus Provision: + +* The instance configuration file (GPConfig): This is the configuration file + that specifies options related to an instance's deploymenr. + +* The simple topology file: This is a simple format for specifying topologies + (which internally translated to the topology JSON format). It has the + format of a configuration file although, strictly speaking, it is *not* + a configuration file. + +""" + +from globus.provision.core.topology import Domain, User, Node, Topology,\ + DeployData, EC2DeployData, GridMapEntry, GOEndpoint +from globus.provision.common.config import Config, Section, Option, OPTTYPE_INT, OPTTYPE_FLOAT, OPTTYPE_STRING, OPTTYPE_BOOLEAN, OPTTYPE_FILE +import os.path +import getpass + +class GPConfig(Config): + """ + The instance configuration file. + """ + + sections = [] + + # ============================= # + # # + # GENERAL OPTIONS # + # # + # ============================= # + + general = Section("general", required=True, + doc = "This section is used for general options affecting Globus Provision as a whole.") + general.options = \ + [ + Option(name = "ca-cert", + getter = "ca-cert", + type = OPTTYPE_FILE, + required = False, + doc = """ + Location of CA certificate (PEM-encoded) used to generate user + and host certificates. If blank, Globus Provision will generate a self-signed + certificate from scratch. + """), + Option(name = "ca-key", + getter = "ca-key", + type = OPTTYPE_FILE, + required = False, + doc = """ + Location of the private key (PEM-encoded) for the certificate + specified in ``ca-cert``. + """), + Option(name = "ca-dn", + getter = "ca-dn", + type = OPTTYPE_STRING, + required = False, + doc = """ + Distinguished Name of the certificates that will be signed with + the CA certificate specified in ``ca-cert``. + + For example, if you set this value to ``O=Foo, OU=Bar``, the certificates + will have subjects like ``/O=Foo/OU=Bar/CN=borja``, ``/O=Foo/OU=Bar/CN=host/foo.example.org``, etc. + """), + Option(name = "scratch-dir", + getter = "scratch-dir", + type = OPTTYPE_STRING, + required = False, + default = "/var/tmp", + doc = """ + Scratch directory that Chef will use (on the provisioned machines) + while configuring them. + """), + Option(name = "deploy", + getter = "deploy", + type = OPTTYPE_STRING, + required = True, + valid = ["ec2", "dummy"], + doc = """ + Globus Provision can support various "deployers" that are used to + deploy the hosts in a topology. Two deployers are currently supported: + + * ``ec2``: Hosts are deployed as Amazon EC2 instances. + * ``dummy``: Hosts are not actually deployed and are assigned dummy + hostnames and IP addresses. + + See the Globus Provision documentation for more details on the + available deployers. + """) + ] + + sections.append(general) + + # ====================== # + # # + # EC2 OPTIONS # + # # + # ====================== # + + ec2 = Section("ec2", required=False, + required_if = [(("general","deploy"),"ec2")], + doc = """ + When the EC2 deployer is selected, Globus Provision will need certain information about + your EC2 account to be able to request EC2 instances on which to deploy your topology. This account + information is specified in this section of the configuration file. If you are unclear on what values + you need to specify here, see :ref:`chap_ec2` for more detailed instructions (including how to set up + an Amazon EC2 account)""") + ec2.options = \ + [ + Option(name = "keypair", + getter = "ec2-keypair", + type = OPTTYPE_STRING, + required = True, + doc = """ + The *name* of the Amazon EC2 keypair you will use to log into the VMs. + See :ref:`chap_ec2` for instructions on how to obtain this keypair. + """), + Option(name = "keyfile", + getter = "ec2-keyfile", + type = OPTTYPE_FILE, + required = True, + doc = """ + The actual location of the keypair on your local filesystem. + See :ref:`chap_ec2` for instructions on how to obtain this keypair. + """), + Option(name = "username", + getter = "ec2-username", + type = OPTTYPE_STRING, + required = True, + doc = """ + The username that Globus Provision will use to connect to the EC2 instances, + using the keypair specified in ``keypair``. If you are using one of the + Globus Provision AMIs, you need to set this value to ``ubuntu``. + """), + Option(name = "server-hostname", + getter = "ec2-server-hostname", + type = OPTTYPE_STRING, + required = False, + doc = """ + The hostname of the EC2 server. If you are using Amazon AWS, leave this option + unspecified. If you are using an EC2-compatible system, such as OpenNebula, Nimbus, + Eucalyptus, etc. set this to the server running that system's EC2 interface. + """), + Option(name = "server-port", + getter = "ec2-server-port", + type = OPTTYPE_INT, + required = False, + doc = """ + The TCP port of the EC2 server. If you are using Amazon AWS, leave this option + unspecified. If you are using an EC2-compatible system, such as OpenNebula, Nimbus, + Eucalyptus, etc. set this to the port on which that system's EC2 interface is listening on. + """), + Option(name = "server-path", + getter = "ec2-server-path", + type = OPTTYPE_STRING, + required = False, + doc = """ + The path portion of the EC2 server. If you are using Amazon AWS, leave this option + unspecified. If you are using an EC2-compatible system, such as OpenNebula, OpenStack, + Eucalyptus, etc. set this to the path (in the host specified in ``server-hostname``) + that the system's EC2 interface is available on. + """) + ] + sections.append(ec2) + + # ================================ # + # # + # GLOBUS ONLINE OPTIONS # + # # + # ================================ # + + go = Section("globusonline", required=False, + doc = """ + When a topology includes Globus Online transfer endpoints, Globus Provision will + use GO's API to set up those endpoints. To do so, it will need some information + about your GO account. If you are unclear on what values you need to specify here, + see :ref:`chap_go` for more detailed instructions. + """) + go.options = \ + [ + + Option(name = "ssh-key", + getter = "go-ssh-key", + type = OPTTYPE_FILE, + default = "~/.ssh/id_rsa", + required = False, + doc = """ + SSH key to use when connecting to the Globus Online CLI. The public key + for this SSH key must have been previously added to your Globus Online + profile. + """), + Option(name = "cert-file", + getter = "go-cert-file", + type = OPTTYPE_FILE, + required = False, + doc = """ + When this option is specified, Globus Provision will access your GO + account using Globus Online's Transfer API (instead of sending commands + to Globus Online's CLI via SSH). To do so, Globus Provision needs the + location of a user certificate (PEM-encoded) that is authorized to access + the accounts specified in your topology's endpoints. + + See :ref:`chap_go` for more details on the differences between using the + Transfer API, instead of the CLI via SSH. + """), + Option(name = "key-file", + getter = "go-key-file", + type = OPTTYPE_FILE, + required = False, + doc = """ + Location of the private key (PEM-encoded) for the certificate + specified in ``cert-file``. + """), + Option(name = "server-ca-file", + getter = "go-server-ca-file", + type = OPTTYPE_STRING, + required = False, + doc = """ + To verify the server certificate of the Globus Online Transfer API server, + Globus Provision needs the certificate of the CA that signed that certificate. + This file is already bundled with Globus Provision. The only reason for using + this option to specify a different CA certificate is in the unlikely case that + the API server decides to switch to a different CA (and the file bundled + with Globus Provision has not been updated to that CA yet). + """) + ] + sections.append(go) + + def __init__(self, config_file): + Config.__init__(self, config_file, self.sections) + + +class SimpleTopologyConfig(Config): + """ + The simple topology file + """ + + sections = [] + + # ============================= # + # # + # GENERAL OPTIONS # + # # + # ============================= # + + general = Section("general", required=True, + doc = "This section is used for general options affecting all the topology.") + general.options = \ + [ + Option(name = "domains", + getter = "domains", + type = OPTTYPE_STRING, + required = True, + doc = """ + The names of the domains you are defining in this topology. They must each be separated by + a single space. + """), + Option(name = "deploy", + getter = "deploy", + type = OPTTYPE_STRING, + required = True, + valid = ["ec2", "dummy"], + doc = """ + See the :ref:`deploy option ` in :ref:`chap_config_ref` + """), + Option(name = "ssh-pubkey", + getter = "ssh-pubkey", + type = OPTTYPE_FILE, + required = False, + default = "~/.ssh/id_rsa.pub", + doc = """ + When creating users, an SSH public key must be added to their ``authorized_keys`` file + to allow the creator of the topology to log in as those users. When using a topology file, + each SSH key is specified separately for each user; in a simple topology, you can specify + a single SSH public key for all the users (by default, the SSH key of the topology's creator + will be used) + + Take into account that you *can* specify per-user SSH keys in a simple topology by using the + :ref:`users-file option`. + """) + ] + + sections.append(general) + + domain = Section("domain", required=False, multiple=("general", "domains"), + doc = """ + For each domain specified in the ``domains`` option, you will need to specify a section + titled ``[domain-DDD]`` where ``DD`` is the name of the domain. For example, if you specify the following:: + + [general] + domains: foo bar + + You will need to specify the following sections:: + + [domain-foo] + ... + + [domain-bar] + ... + + Each section provides a few high-level options about each domain. + This provides a simple, but constrained, way of specifying what services and users + should be created in each domain. For more complex topologies, you may have + to write a regular :ref:`topology file `. + """) + domain.options = \ + [ + Option(name = "users", + getter = "users", + type = OPTTYPE_STRING, + required = False, + default = "0", + doc = """ + This option can be either a number, or a list of usernames separated by spaces. + + If a number is specified, the users will be named ``D-userN``, where ``D`` is the + domain name and ``N`` is a number between 1 and the number specified in this option. + + If a list of usernames is specified, users with those login names will be created. + + These users will be created with corresponding user certificates. To create users without user certificates + use option ``users-no-cert``. + """), + Option(name = "users-no-cert", + getter = "users-no-cert", + type = OPTTYPE_STRING, + default = "0", + required = False, + doc = """ + Same as ``users`` but creating users without certificates. + + Note that if you specify a number for *both* the ``users`` and ``users-no-cert`` option + (with values N and M, respectively), the first N users will have certificates, and the + remaining M will not. + """), + Option(name = "users-file", + getter = "users-file", + type = OPTTYPE_FILE, + required = False, + doc = """ + The path to a file with a specification of the users to create in this domain. This file will have one line + per user, each with three fields (separated by whitespace): + + #. A single character, ``C`` or ``N``. If ``C`` is specified, the user will have a user certificate created + for it. Otherwise, it will nor. + #. The user's UNIX login name. + #. (Optional) An SSH public key to add to the user's ``authorized_keys`` file. If not specified, the public + key specified in :ref:`option ssh-pubkey` will be used. + + For example:: + + C borja ssh-rsa FOOFOOFOO...BARBARBAR borja at example.org + C childers ssh-rsa FOOFOOFOO...BARBARBAR childers at example.org + N foster + N madduri + + """), + + Option(name = "barebones-nodes", + getter = "barebones-nodes", + type = OPTTYPE_INT, + default = 0, + required = False, + doc = """ + A "barebones node" is a node on which no software will be installed. If ``nfs-nis`` is ``True``, + these nodes *will* be configured as NFS/NIS clients. These nodes can be useful for testing. + """), + + Option(name = "nfs-nis", + getter = "nfs-nis", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether an NFS/NIS server should be setup in this domain. When ``True``, there will be a global + filesystem and global user account space in the domain. Most notably, the users' home directories will be on an + NFS directory, which means they will be able to access the same home directory from any host in the domain + (as opposed to having separate home directories in each host). + + When ``False``, user accounts and home directories will be created on every individual host. This option can + be useful if you are creating a single-host domain. + """), + Option(name = "login", + getter = "login", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether a separate "login node" should be created in the topology. This option can be useful if you + want a distinct node that users can log into but that does not host one of the topology's servers (like the NFS + server, a GridFTP server, etc.) + """), + Option(name = "myproxy", + getter = "myproxy", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a MyProxy server on this domain. + """), + Option(name = "gram", + getter = "gram", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a GRAM5 server on this domain. + """), + Option(name = "gridftp", + getter = "gridftp", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a GridFTP server on this domain. + """), + Option(name = "lrm", + getter = "lrm", + type = OPTTYPE_STRING, + valid = ["none", "condor"], + default = "none", + required = False, + doc = """ + Specifies whether to set up an LRM (Local Resource Manager) on this domain. Currently, only + `Condor `_ is supported. + """), + Option(name = "cluster-nodes", + getter = "cluster-nodes", + type = OPTTYPE_INT, + required = False, + doc = """ + The number of worker nodes to create for the LRM. + """), + Option(name = "galaxy", + getter = "galaxy", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a Galaxy server on this domain. + """), + + Option(name = "go-endpoint", + getter = "go-endpoint", + type = OPTTYPE_STRING, + required = False, + doc = """ + If this domain has a GridFTP server, it can be configured as a GO endpoint. + The format for this option is # (e.g., johnsmith#test-ep). + Take into account that you must be authorized to use the GO account for , + and that you must specify the appropriate credentials in the + :ref:`[globusonline] section` of the configuration file. + + See :ref:`chap_go` for more details. + """), + + Option(name = "go-auth", + getter = "go-auth", + type = OPTTYPE_STRING, + required = False, + valid = ["myproxy", "go"], + doc = """ + The authentication method that Globus Online will use when contacting the endpoint on + behalf of a user. The valid options are: + + * ``myproxy``: Contact the MyProxy server specified in the topology. Note that + the :ref:`myproxy option` must be set to ``true`` + for this to work + * ``go``: Use Globus Online authentication. + + See :ref:`chap_go`, and specifically :ref:`Globus Online Authentication Methods `, + for more details on the implications of each authentication method. + """), + + Option(name = "go-gc", + getter = "go-gc", + type = OPTTYPE_BOOLEAN, + required = False, + default = True, + doc = """ + If true, the endpoint will use a Globus Connect certificate. + If not, it will use the host certificate generated by Globus Provision. + Take into account that, for the GridFTP server to be trusted by + Globus Online, it must use a certificate trusted by Globus Online. + Unless you used a CA trusted by Globus Online to generate the certificates + for the topology, you must use a Globus Connect certificate. + """) + ] + sections.append(domain) + + ec2 = Section("ec2", required=False, + required_if = [(("general","deploy"),"ec2")], + doc = """ + When the EC2 deployer is selected, this section will allow you to + specify EC2 deployment options that are specific to this topology.""") + ec2.options = \ + [ + Option(name = "ami", + getter = "ec2-ami", + type = OPTTYPE_STRING, + required = True, + doc = """ + This is the AMI (`Amazon Machine Image `_) + that Globus Provision will use to create each host in the domani. Any recent Ubuntu or Debian + AMI should work. Nonetheless, take into account that we provide an AMI that has most of the + necessary software pre-installed in it, considerably speeding up the setup of the machines. + The latest Globus Provision AMI is always listed in the Globus Provision website. + """), + Option(name = "instance-type", + getter = "ec2-instance-type", + type = OPTTYPE_STRING, + required = True, + default = "t1.micro", + doc = """ + This is the `EC2 instance type `_ that will + be used to launch the machines in this domain. The default is to use micro-instances (t1.micro), + which tend to be enough if you are just tinkering around. + """), + Option(name = "availability-zone", + getter = "ec2-availability-zone", + type = OPTTYPE_STRING, + required = False, + default = None, + doc = """ + The `availability zone `_ + you want the VMs to be deployed in. + Unless you have a good reason for choosing a specific availability zone, + you should let Globus Provision choose a default zone for you. + """) + ] + sections.append(ec2) + + + def __init__(self, configfile): + Config.__init__(self, configfile, self.sections) + + def to_topology(self): + ssh_pubkeyf = os.path.expanduser(self.get("ssh-pubkey")) + ssh_pubkeyf = open(ssh_pubkeyf) + ssh_pubkey = ssh_pubkeyf.read().strip() + ssh_pubkeyf.close() + + topology = Topology() + + if self.get("deploy") == "dummy": + # No default deploy data + pass + elif self.get("deploy") == "ec2": + deploy_data = DeployData() + ec2_deploy_data = EC2DeployData() + + ec2_deploy_data.set_property("ami", self.get("ec2-ami")) + ec2_deploy_data.set_property("instance_type", self.get("ec2-instance-type")) + + deploy_data.set_property("ec2", ec2_deploy_data) + topology.set_property("default_deploy_data", deploy_data) + + domains = self.get("domains").split() + for domain_name in domains: + domain = Domain() + domain.set_property("id", domain_name) + topology.add_to_array("domains", domain) + + has_go_ep = self.get((domain_name,"go-endpoint")) != None + + user = User() + user.set_property("id", getpass.getuser()) + user.set_property("password_hash", "!") + user.set_property("certificate", "generated") + user.set_property("admin", True) + user.set_property("ssh_pkey", ssh_pubkey) + domain.add_user(user) + + usersfile = self.get((domain_name, "users-file")) + + if usersfile != None: + usersfile = open(usersfile, "r") + + for line in usersfile: + fields = line.split() + type = fields[0] + username = fields[1] + if len(fields) >= 3: + user_ssh_pubkey = " ".join(fields[2:]) + else: + user_ssh_pubkey = ssh_pubkey + + user = User() + user.set_property("id", username) + user.set_property("password_hash", "!") + user.set_property("ssh_pkey", user_ssh_pubkey) + if type == "C": + user.set_property("certificate", "generated") + else: + user.set_property("certificate", "none") + + domain.add_user(user) + + usersfile.close() + else: + users = self.get((domain_name, "users")) + users_nocert = self.get((domain_name, "users-no-cert")) + + if users.isdigit(): + num_users = int(users) + usernames = [("%s-user%i" % (domain_name, i), True) for i in range(1,num_users + 1)] + else: + num_users = 0 + usernames = [(u, True) for u in users.split() if u != getpass.getuser()] + + if users_nocert.isdigit(): + usernames += [("%s-user%i" % (domain_name, i), False) for i in range(num_users + 1,num_users + int(users_nocert) + 1)] + else: + usernames += [(u, False) for u in users_nocert.split() if u != getpass.getuser()] + + for username, cert in usernames: + user = User() + user.set_property("id", username) + user.set_property("password_hash", "!") + user.set_property("ssh_pkey", ssh_pubkey) + if cert: + user.set_property("certificate", "generated") + else: + user.set_property("certificate", "none") + domain.add_user(user) + + for user in domain.users.values(): + gme = GridMapEntry() + gme.set_property("dn", "/O=Grid/OU=Globus Provision (generated)/CN=%s" % user.id) + gme.set_property("login", user.id) + domain.add_to_array("gridmap", gme) + if self.get((domain_name,"go-auth")) == "go": + gme = GridMapEntry() + gme.set_property("dn", "/C=US/O=Globus Consortium/OU=Globus Connect User/CN=%s" % user.id) + gme.set_property("login", user.id) + domain.add_to_array("gridmap", gme) + + + if self.get((domain_name,"nfs-nis")): + server_node = Node() + server_name = "%s-server" % domain_name + server_node.set_property("id", server_name) + server_node.add_to_array("run_list", "role[domain-nfsnis]") + if not self.get((domain_name,"login")): + # If there is no login node, the NFS/NIS server will + # effectively act as one. + server_node.add_to_array("run_list", "role[globus]") + if self.get((domain_name,"galaxy")): + # If there is a Galaxy server in the domain, the "common" + # recipe has to be installed on the NFS/NIS server + server_node.add_to_array("run_list", "recipe[galaxy::galaxy-globus-common]") + + domain.add_node(server_node) + + for i in range(self.get((domain_name,"barebones-nodes"))): + bb_name = "%s-blank-%i" % (domain_name, i+1) + + bb_node = Node() + bb_node.set_property("id", bb_name) + if self.get((domain_name,"nfs-nis")): + bb_node.set_property("depends", "node:%s" % server_name) + bb_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + bb_node.add_to_array("run_list", "recipe[provision::gp_node]") + bb_node.add_to_array("run_list", "recipe[provision::domain_users]") + + domain.add_node(bb_node) + + if self.get((domain_name,"login")): + login_node = Node() + login_node.set_property("id", "%s-login" % domain_name) + if self.get((domain_name,"nfs-nis")): + login_node.set_property("depends", "node:%s" % server_name) + login_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + login_node.add_to_array("run_list", "recipe[provision::gp_node]") + login_node.add_to_array("run_list", "recipe[provision::domain_users]") + login_node.add_to_array("run_list", "role[globus]") + domain.add_node(login_node) + + if self.get((domain_name,"myproxy")): + myproxy_node = Node() + myproxy_node.set_property("id", "%s-myproxy" % domain_name) + if self.get((domain_name,"nfs-nis")): + myproxy_node.set_property("depends", "node:%s" % server_name) + myproxy_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + myproxy_node.add_to_array("run_list", "recipe[provision::gp_node]") + myproxy_node.add_to_array("run_list", "recipe[provision::domain_users]") + myproxy_node.add_to_array("run_list", "role[domain-myproxy]") + domain.add_node(myproxy_node) + + if self.get((domain_name,"gridftp")): + gridftp_node = Node() + gridftp_node.set_property("id", "%s-gridftp" % domain_name) + if self.get((domain_name,"nfs-nis")): + gridftp_node.set_property("depends", "node:%s" % server_name) + gridftp_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + gridftp_node.add_to_array("run_list", "recipe[provision::gp_node]") + gridftp_node.add_to_array("run_list", "recipe[provision::domain_users]") + + if has_go_ep: + if self.get((domain_name,"go-gc")): + gridftp_node.add_to_array("run_list", "role[domain-gridftp-gc]") + else: + gridftp_node.add_to_array("run_list", "recipe[globus::go_cert]") + gridftp_node.add_to_array("run_list", "role[domain-gridftp-default]") + else: + gridftp_node.add_to_array("run_list", "role[domain-gridftp-default]") + domain.add_node(gridftp_node) + + if self.get((domain_name,"galaxy")): + galaxy_node = Node() + galaxy_node.set_property("id", "%s-galaxy" % domain_name) + + if self.get((domain_name,"nfs-nis")): + galaxy_node.set_property("depends", "node:%s" % server_name) + galaxy_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + galaxy_node.add_to_array("run_list", "recipe[provision::gp_node]") + galaxy_node.add_to_array("run_list", "recipe[provision::domain_users]") + galaxy_node.add_to_array("run_list", "recipe[galaxy::galaxy-globus-common]") + + if self.get((domain_name,"go-endpoint")) != None: + galaxy_node.add_to_array("run_list", "recipe[globus::go_cert]") + galaxy_node.add_to_array("run_list", "recipe[galaxy::galaxy-globus]") + domain.add_node(galaxy_node) + + + lrm = self.get((domain_name,"lrm")) + if lrm != "none": + gram = self.get((domain_name,"gram")) + if lrm == "condor": + if gram: + node_name = "%s-gram-condor" % domain_name + role = "role[domain-gram-condor]" + else: + node_name = "%s-condor" % domain_name + role = "role[domain-condor]" + workernode_role = "role[domain-clusternode-condor]" + + lrm_node = Node() + lrm_node.set_property("id", node_name) + if self.get((domain_name,"nfs-nis")): + lrm_node.set_property("depends", "node:%s" % server_name) + lrm_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + lrm_node.add_to_array("run_list", "recipe[provision::gp_node]") + lrm_node.add_to_array("run_list", "recipe[provision::domain_users]") + lrm_node.add_to_array("run_list", role) + domain.add_node(lrm_node) + + clusternode_host = 1 + for i in range(self.get((domain_name,"cluster-nodes"))): + wn_name = "%s-condor-wn%i" % (domain_name, i+1) + + wn_node = Node() + wn_node.set_property("id", wn_name) + wn_node.set_property("depends", "node:%s" % node_name) + if self.get((domain_name,"nfs-nis")): + wn_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + wn_node.add_to_array("run_list", "recipe[provision::gp_node]") + wn_node.add_to_array("run_list", "recipe[provision::domain_users]") + wn_node.add_to_array("run_list", workernode_role) + domain.add_node(wn_node) + + clusternode_host += 1 + + if has_go_ep: + goep = GOEndpoint() + gouser, goname = self.get((domain_name,"go-endpoint")).split("#") + goep.set_property("user", gouser) + goep.set_property("name", goname) + goep.set_property("public", False) + goep.set_property("gridftp", "node:%s-gridftp" % domain_name) + + if self.get((domain_name,"go-auth")) == "myproxy": + goep.set_property("myproxy", "node:%s-myproxy" % domain_name) + else: + goep.set_property("myproxy", "myproxy.globusonline.org") + + goep.set_property("globus_connect_cert", self.get((domain_name,"go-gc"))) + + domain.add_to_array("go_endpoints", goep) + + return topology + + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,300 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Core deployment classes. + +These classes contain code that is common to all deployers (i.e., they don't +contain any infrastructure-specific code). + +To create a new deployer, you will need to extend classes the classes +in this module. + +""" + +from globus.provision.common.threads import GPThread +from globus.provision.common.ssh import SSH, SSHCommandFailureException +from globus.provision.common import log +from globus.provision.core.topology import Node + +from abc import ABCMeta, abstractmethod + +class DeploymentException(Exception): + """A simple exception class used for deployment exceptions""" + pass + +class BaseDeployer(object): + """ + The base class for a deployer. + + A deployer must implement all the abstract methods in this class + """ + + __metaclass__ = ABCMeta + + def __init__(self, extra_files = [], run_cmds = []): + self.instance = None + self.extra_files = extra_files + self.run_cmds = run_cmds + + @abstractmethod + def set_instance(self, inst): pass + + @abstractmethod + def allocate_vm(self, node): pass + + @abstractmethod + def post_allocate(self, node, vm): pass + + @abstractmethod + def stop_vms(self, nodes): pass + + @abstractmethod + def resume_vm(self, node): pass + + @abstractmethod + def terminate_vms(self, nodes): pass + + @abstractmethod + def get_node_vm(self, nodes): pass + + @abstractmethod + def get_wait_thread_class(self): pass + + @abstractmethod + def get_configure_thread_class(self): pass + + +class VM(object): + """ + A VM object represents a virtual machine managed by a + deployer. It is basically meant as an opaque type that + can be returned by the deployer to the core, and then + passed from the core to other functions in the deployer. + """ + def __init__(self): + pass + +class WaitThread(GPThread): + """ + The base class for "waiter threads". + + A derived class must implement the wait() method, with the + deployer-specific code that will wait until a VM + has reached a given state. + """ + + __metaclass__ = ABCMeta + + def __init__(self, multi, name, node, vm, deployer, state, depends): + GPThread.__init__(self, multi, name, depends) + self.node = node + self.vm = vm + self.deployer = deployer + self.state = state + + def run2(self): + topology = self.deployer.instance.topology + + self.wait() + + self.node.state = self.state + topology.save() + + @abstractmethod + def wait(self): pass + + +class ConfigureThread(GPThread): + """ + The base class for "configure threads". + + This is a thread that takes care of configuring a single VM. + Most of the actions (e.g., SSH'ing to the VM and running Chef) + will be the same in most deployers. So, this class simply + requires that derived classes implement pre_configure() + and post_configure(), in case there are deployer-specific + actions that must be taken. The connect() method must + also be implemented, although it can usually just be + a call to ssh_connect. + """ + + __metaclass__ = ABCMeta + + def __init__(self, multi, name, node, vm, deployer, depends = None, basic = True, chef = True, dryrun=False): + GPThread.__init__(self, multi, name, depends) + self.domain = node.parent_Domain + self.node = node + self.vm = vm + self.deployer = deployer + self.config = deployer.instance.config + self.basic = basic + self.chef = chef + self.dryrun = dryrun + + def run2(self): + topology = self.deployer.instance.topology + + if self.node.state in (Node.STATE_RUNNING_UNCONFIGURED, Node.STATE_RUNNING, Node.STATE_RESUMED_UNCONFIGURED): + if self.node.state == Node.STATE_RUNNING_UNCONFIGURED: + log.debug("Configuring node for the first time", self.node) + self.node.state = Node.STATE_CONFIGURING + next_state = Node.STATE_RUNNING + elif self.node.state == Node.STATE_RUNNING: + log.debug("Reconfiguring already-running node", self.node) + self.node.state = Node.STATE_RECONFIGURING + next_state = Node.STATE_RUNNING + elif self.node.state == Node.STATE_RESUMED_UNCONFIGURED: + log.debug("Reconfiguring resumed node", self.node) + self.node.state = Node.STATE_RESUMED_RECONFIGURING + next_state = Node.STATE_RUNNING + + topology.save() + + if not self.dryrun: + ssh = self.connect() + self.check_continue() + self.pre_configure(ssh) + self.check_continue() + self.configure(ssh) + self.check_continue() + self.post_configure(ssh) + self.check_continue() + + self.node.state = next_state + topology.save() + elif self.node.state == Node.STATE_STOPPING: + log.debug("Doing pre-shutdown configuration", self.node) + self.node.state = Node.STATE_STOPPING_CONFIGURING + topology.save() + + if not self.dryrun: + ssh = self.connect() + self.check_continue() + self.configure_stop(ssh) + self.check_continue() + + self.node.state = Node.STATE_STOPPING_CONFIGURED + topology.save() + + @abstractmethod + def connect(self): pass + + @abstractmethod + def pre_configure(self): pass + + @abstractmethod + def post_configure(self): pass + + def ssh_connect(self, username, hostname, keyfile): + node = self.node + + log.debug("Establishing SSH connection", node) + ssh = SSH(username, hostname, keyfile, default_outf = None, default_errf = None) + try: + ssh.open() + except Exception, e: + log.debug("SSH connection timed out", node) + # Raise exception and let multi-thread manager handle it + raise e + log.debug("SSH connection established", node) + + return ssh + + def configure(self, ssh): + domain = self.domain + node = self.node + instance_dir = self.deployer.instance.instance_dir + + if self.basic: + # Make backup copies of hostname and /etc/hosts + if node.state in (Node.STATE_CONFIGURING, Node.STATE_RESUMED_RECONFIGURING): + ssh.run("sudo cp /etc/hosts /etc/hosts.gp-bak", expectnooutput=True) + ssh.run("sudo cp /etc/hostname /etc/hostname.gp-bak", expectnooutput=True) + + # Upload host file and update hostname + log.debug("Uploading host file and updating hostname", node) + ssh.scp("%s/hosts" % instance_dir, + "/chef/cookbooks/provision/files/default/hosts") + ssh.run("sudo cp /chef/cookbooks/provision/files/default/hosts /etc/hosts", expectnooutput=True) + + ssh.run("sudo bash -c \"echo %s > /etc/hostname\"" % node.hostname, expectnooutput=True) + ssh.run("sudo /etc/init.d/hostname.sh || sudo /etc/init.d/hostname restart", expectnooutput=True) + + self.check_continue() + + if self.chef: + # Upload topology file + log.debug("Uploading topology file", node) + ssh.scp("%s/topology.rb" % instance_dir, + "/chef/cookbooks/provision/attributes/topology.rb") + + # Copy certificates + log.debug("Copying certificates", node) + ssh.scp_dir("%s/certs" % instance_dir, + "/chef/cookbooks/provision/files/default/") + + # Upload extra files + log.debug("Copying extra files", node) + for src, dst in self.deployer.extra_files: + ssh.scp(src, dst) + + self.check_continue() + + # Run chef + log.debug("Running chef", node) + ssh.run("echo -e \"cookbook_path \\\"/chef/cookbooks\\\"\\nrole_path \\\"/chef/roles\\\"\" > /tmp/chef.conf", expectnooutput=True) + ssh.run("echo '{ \"run_list\": [ %s ], \"scratch_dir\": \"%s\", \"domain_id\": \"%s\", \"node_id\": \"%s\" }' > /tmp/chef.json" % (",".join("\"%s\"" % r for r in node.run_list), self.config.get("scratch-dir"), domain.id, node.id), expectnooutput=True) + + # Sometimes, Chef will fail because a service didn't start or restart + # properly (NFS-related services seem to do this occasionally). + # In most cases, the problem just "goes away" if you try to restart the + # service again. So, if Chef fails, we don't give up and try again + # (since the recipes are idempotent, there's no harm to running them + # multiple times) + chef_tries = 3 + while chef_tries > 0: + rc = ssh.run("sudo -i chef-solo -c /tmp/chef.conf -j /tmp/chef.json", exception_on_error = False) + if rc != 0: + chef_tries -= 1 + log.debug("chef-solo failed. %i attempts left", node) + else: + break + + if chef_tries == 0: + raise DeploymentException, "Failed to configure node %s" % node.id + + self.check_continue() + + for cmd in self.deployer.run_cmds: + ssh.run(cmd) + + log.info("Configuration done.", node) + + def configure_stop(self, ssh): + node = self.node + + log.info("Configuring node for shutdown", node) + ssh.run("sudo cp /etc/hosts.gp-bak /etc/hosts", expectnooutput=True) + ssh.run("sudo cp /etc/hostname.gp-bak /etc/hostname", expectnooutput=True) + ssh.run("sudo /etc/init.d/hostname.sh || sudo /etc/init.d/hostname restart", expectnooutput=True) + ssh.run("sudo bash -c \"echo +auto.master > /etc/auto.master\"", exception_on_error = False) + ssh.run("sudo bash -c \"echo > /etc/yp.conf\"", exception_on_error = False) + ssh.run("sudo bash -c \"echo > /etc/default/nfs-common\"", exception_on_error = False) + + ssh.run("sudo update-rc.d -f nis remove", exception_on_error = False) + log.info("Configuration done.", node) + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,246 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Instance Management + +This module is the single point of access to information about instances. +See the documentation in InstanceStore and Instance for more details. + +""" + +import os.path +import random +from globus.provision.core.config import GPConfig +from globus.provision.core.topology import Topology +from globus.provision.common.certs import CertificateGenerator +from globus.provision.common.persistence import ObjectValidationException + +class InstanceException(Exception): + """A simple exception class used for instance exceptions""" + pass + +class InstanceStore(object): + """ + The instance database. + + Stores information on all the instances created by the user. + + Currently, it uses a simple filesystem-based model. There is a + designated "instances directory" (default: ~/.globusprovision/instances/). + When an instance is created, a directory with the instance's id is + created in the instances directory. For example:: + + ~/.globusprovision/instances/gpi-12345678/ + + All files related to an instance, including the topology file are + stored in that directory. Generated files (such as certificates, etc.) + are also stored there. + + The rest of the code only accesses the instances through this class. + So, it should be possible to eventually replace this with a more elaborate + solution (e.g., storing the instance data in a database, etc.) + """ + + def __init__(self, instances_dir): + self.instances_dir = instances_dir + + def create_new_instance(self, topology_json, config_txt): + created = False + while not created: + inst_id = "gpi-" + hex(random.randint(1,2**31-1))[2:].rjust(8,"0") + inst_dir = "%s/%s" % (self.instances_dir, inst_id) + if not os.path.exists(inst_dir): + os.makedirs(inst_dir) + created = True + + configf = open("%s/provision.conf" % inst_dir, "w") + configf.write(config_txt) + configf.close() + + # We don't do anything with it. Just use it to raise an exception + # if there is anything wrong with the configuration file + GPConfig("%s/provision.conf" % inst_dir) + + topology = Topology.from_json_string(topology_json) + topology.set_property("id", inst_id) + topology.set_property("state", Topology.STATE_NEW) + topology.save("%s/topology.json" % inst_dir) + + inst = Instance(inst_id, inst_dir) + + return inst + + def get_instance(self, inst_id): + inst_dir = "%s/%s" % (self.instances_dir, inst_id) + + if not os.path.exists(inst_dir): + raise InstanceException("Instance %s does not exist" % inst_id) + return Instance(inst_id, inst_dir) + + def get_instances(self, inst_ids = None): + valid_instances = [] + invalid_instances = [] + + for inst_id in self.__get_instance_ids(): + if inst_ids == None or (inst_ids != None and inst_id in inst_ids): + try: + inst = Instance(inst_id, "%s/%s" % (self.instances_dir, inst_id)) + valid_instances.append(inst) + except Exception, e: + invalid_instances.append((inst_id,str(e))) + + return (valid_instances, invalid_instances) + + def __get_instance_ids(self): + inst_ids = [i for i in os.listdir(self.instances_dir)] + return inst_ids + +class Instance(object): + """ + A Globus Provision Instance + + This class represents a single instance. Right now, an instance is + the combination of a configuration file and a topology (both of which + are provided when the instance is created). + + The configuration file contains all the information about + the instance that will (arguably) not change during its lifetime. + The topology contains the specification of the hosts, users, etc. + that are going to be deployed, and that could change during the + instance's lifetime. + + For example, the configuration file specifies what keypair to use + when accessing EC2. Although this could conceivably change, it is + not as likely as a change in the topology (e.g., adding a new host, + changing the run list of a host, etc.) + + """ + + # Relative to instance directory + CERTS_DIR = "/certs" + + def __init__(self, inst_id, instance_dir): + self.instance_dir = instance_dir + self.id = inst_id + self.config = GPConfig("%s/provision.conf" % instance_dir) + self.topology = self.__load_topology() + + def __load_topology(self): + topology_file = "%s/topology.json" % self.instance_dir + f = open (topology_file, "r") + json_string = f.read() + topology = Topology.from_json_string(json_string) + topology._json_file = topology_file + f.close() + return topology + + def update_topology(self, topology_json): + try: + topology_file = "%s/topology.json" % self.instance_dir + new_topology = Topology.from_json_string(topology_json) + new_topology._json_file = topology_file + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (False, message, None) + + try: + topology_changes = self.topology.validate_update(new_topology) + except ObjectValidationException, ove: + message = "Could not update topology: %s" % ove + return (False, message, None) + + self.topology = new_topology + self.topology.save() + + return (True, "Success", topology_changes) + + def gen_certificates(self, force_hosts = False, force_users = False, force_ca = False): + certs_dir = self.instance_dir + self.CERTS_DIR + if not os.path.exists(certs_dir): + os.makedirs(certs_dir) + + dn = self.config.get("ca-dn") + if dn == None: + dn = "O=Grid, OU=Globus Provision (generated)" + + certg = CertificateGenerator(dn) + + cert_files = [] + ca_cert_file = self.config.get("ca-cert") + ca_cert_key = self.config.get("ca-key") + + if ca_cert_file != None: + ca_cert, ca_key = certg.load_certificate(ca_cert_file, ca_cert_key) + else: + ca_cert, ca_key = certg.gen_selfsigned_ca_cert("Globus Provision CA") + + certg.set_ca(ca_cert, ca_key) + + h = "%x" % ca_cert.subject_name_hash() + + hash_file = open(certs_dir + "/ca_cert.hash", "w") + hash_file.write(h) + hash_file.close() + + ca_cert_file = "%s/ca_cert.pem" % certs_dir + ca_key_file = certs_dir + "/ca_key.pem" + cert_files.append(ca_cert_file) + cert_files.append(ca_key_file) + certg.save_certificate(cert = ca_cert, + key = ca_key, + cert_file = ca_cert_file, + key_file = ca_key_file, + force = force_ca) + + users = [u for u in self.topology.get_users() if u.certificate=="generated"] + for user in users: + cert, key = certg.gen_user_cert(cn = user.id) + + cert_file = "%s/%s_cert.pem" % (certs_dir, user.id) + key_file = "%s/%s_key.pem" % (certs_dir, user.id) + cert_files.append(cert_file) + cert_files.append(key_file) + certg.save_certificate(cert = cert, + key = key, + cert_file = cert_file, + key_file = key_file, + force = force_users) + + nodes = self.topology.get_nodes() + for n in nodes: + cert, key = certg.gen_host_cert(hostname = n.hostname) + + filename = n.id + + cert_file = "%s/%s_cert.pem" % (certs_dir, filename) + key_file = "%s/%s_key.pem" % (certs_dir, filename) + cert_files.append(cert_file) + cert_files.append(key_file) + certg.save_certificate(cert = cert, + key = key, + cert_file = cert_file, + key_file = key_file, + force = force_hosts) + + return cert_files + + + + + + + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,683 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Topology + +This module contains classes used to manage a topology. All of these classes +are PersistentObjects, so the properties are defined separately from +the classes themselves, which can make the code a bit hard to read. +Before diving into this code, you may want to check out the topology +documentation (in the Globus Provision Documentation), which is automatically +generated from the code in this module. + +""" + +from globus.provision.common.persistence import PersistentObject, PropertyTypes,\ + Property + +class Topology(PersistentObject): + STATE_NEW = 1 + STATE_STARTING = 2 + STATE_CONFIGURING = 3 + STATE_RUNNING = 4 + STATE_STOPPING = 5 + STATE_STOPPED = 6 + STATE_RESUMING = 7 + STATE_TERMINATING = 8 + STATE_TERMINATED = 9 + STATE_FAILED = 10 + + # String representation of states + state_str = {STATE_NEW : "New", + STATE_STARTING : "Starting", + STATE_CONFIGURING : "Configuring", + STATE_RUNNING : "Running", + STATE_STOPPING : "Stopping", + STATE_STOPPED : "Stopped", + STATE_RESUMING : "Resuming", + STATE_TERMINATING : "Terminating", + STATE_TERMINATED : "Terminated", + STATE_FAILED : "Failed"} + + def get_nodes(self): + nodes = [] + for domain in self.domains.values(): + nodes += [n for n in domain.get_nodes()] + return nodes + + def get_users(self): + users = [] + for domain in self.domains.values(): + users += domain.get_users() + return users + + def gen_hosts_file(self, filename): + hosts = """127.0.0.1 localhost + +# The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts + +""" + + nodes = self.get_nodes() + for n in nodes: + hosts += " ".join((n.ip, n.hostname, n.hostname.split(".")[0], "\n")) + + hostsfile = open(filename, "w") + hostsfile.write(hosts) + hostsfile.close() + + def gen_chef_ruby_file(self, filename): + + def gen_topology_line(server_name, domain_id, recipes): + server = domain.find_with_recipes(recipes) + if len(server) > 0: + server_node = server[0] + if len(server) > 1: + # TODO: Print a warning saying more than one NFS server has been found + pass + hostname_line = "default[:topology][:domains][\"%s\"][:%s] = \"%s\"\n" % (domain_id, server_name, server_node.hostname) + ip_line = "default[:topology][:domains][\"%s\"][:%s_ip] = \"%s\"\n" % (domain_id, server_name, server_node.ip) + + return hostname_line + ip_line + else: + return "" + + topology = "default[:topology] = %s\n" % self.to_ruby_hash_string() + + for domain in self.domains.values(): + topology += gen_topology_line("nfs_server", domain.id, ["recipe[provision::nfs_server]", "role[domain-nfsnis]"]) + topology += gen_topology_line("nis_server", domain.id, ["recipe[provision::nis_server]", "role[domain-nfsnis]"]) + topology += gen_topology_line("myproxy_server", domain.id, ["recipe[globus::myproxy]"]) + topology += gen_topology_line("lrm_head", domain.id, ["recipe[condor::condor_head]", "role[domain-condor]"]) + + topologyfile = open(filename, "w") + topologyfile.write(topology) + topologyfile.close() + + def get_depends(self, node): + if not hasattr(node, "depends"): + return None + else: + return self.get_node_by_id(node.depends[5:]) + + def get_launch_order(self, nodes): + order = [] + parents = [n for n in nodes if self.get_depends(n) == None or self.get_depends(n) not in nodes] + while len(parents) > 0: + order.append(parents) + parents = [n for n in nodes if self.get_depends(n) in parents] + return order + + def get_node_by_id(self, node_id): + nodes = self.get_nodes() + node = [n for n in nodes if n.id == node_id] + if len(node) == 1: + return node[0] + else: + return None + + def get_deploy_data(self, node, deployer, p_name): + if node.has_property("deploy_data") and node.deploy_data.has_property(deployer): + deploy_data = node.deploy_data.get_property(deployer) + if deploy_data.has_property(p_name): + return deploy_data.get_property(p_name) + + # If node doesn't have requested deploy data, return default (if any) + if self.has_property("default_deploy_data") and self.default_deploy_data.has_property(deployer): + deploy_data = self.default_deploy_data.get_property(deployer) + if deploy_data.has_property(p_name): + return deploy_data.get_property(p_name) + + return None + + def get_go_endpoints(self): + eps = [] + for domain_name, domain in self.domains.items(): + if domain.has_property("go_endpoints"): + eps += domain.go_endpoints + return eps + + def add_domain(self, domain): + self.add_to_array("domains", domain) + + + +class Domain(PersistentObject): + + def get_nodes(self): + return self.nodes.values() + + def get_users(self): + return self.users.values() + + def find_with_recipes(self, recipes): + nodes = [] + for node in self.nodes.values(): + for r in recipes: + if r in node.run_list: + nodes.append(node) + continue + return nodes + + def add_user(self, user): + self.add_to_array("users", user) + + def add_node(self, node): + self.add_to_array("nodes", node) + +class DeployData(PersistentObject): + pass + +class EC2DeployData(PersistentObject): + pass + +class Node(PersistentObject): + STATE_NEW = 0 + STATE_STARTING = 1 + STATE_RUNNING_UNCONFIGURED = 2 + STATE_CONFIGURING = 3 + STATE_RUNNING = 4 + STATE_RECONFIGURING = 11 + STATE_STOPPING = 5 + STATE_STOPPING_CONFIGURING = 12 + STATE_STOPPING_CONFIGURED = 13 + STATE_STOPPED = 6 + STATE_RESUMING = 7 + STATE_RESUMED_UNCONFIGURED = 14 + STATE_RESUMED_RECONFIGURING = 15 + STATE_TERMINATING = 8 + STATE_TERMINATED = 9 + STATE_FAILED = 10 + + # String representation of states + state_str = {STATE_NEW : "New", + STATE_STARTING : "Starting", + STATE_RUNNING_UNCONFIGURED : "Running (unconfigured)", + STATE_CONFIGURING : "Configuring", + STATE_RUNNING : "Running", + STATE_RECONFIGURING : "Running (reconfiguring)", + STATE_STOPPING : "Stopping", + STATE_STOPPING_CONFIGURING : "Stopping (configuring)", + STATE_STOPPING_CONFIGURED : "Stopping (configured)", + STATE_STOPPED : "Stopped", + STATE_RESUMING : "Resuming", + STATE_RESUMED_UNCONFIGURED : "Resumed (unconfigured)", + STATE_RESUMED_RECONFIGURING : "Resumed (reconfiguring)", + STATE_TERMINATING : "Terminating", + STATE_TERMINATED : "Terminated", + STATE_FAILED : "Failed"} + + +class User(PersistentObject): + pass + +class GridMapEntry(PersistentObject): + pass + +class GOEndpoint(PersistentObject): + pass + +Topology.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = False, + description = """ + Once an instance with this topology has been created, + this property will contain the instance ID + (e.g., ``gpi-12345678``) assigned by Globus Provision. + """), + + "state": + Property(name="state", + proptype = PropertyTypes.INTEGER, + required = False, + description = """ + Once an instance has been created with this topology, + this property indicates the state the instance is in. + Possible values are: + + %s + + """ % +"\n ".join(["* %i: %s" % (i, Topology.state_str[i]) for i in sorted(Topology.state_str.keys())])), + + "domains": + Property(name = "domains", + proptype = PropertyTypes.ARRAY, + items = Domain, + items_unique = True, + editable = True, + required = True, + description = """ + The domains in this topology. + """), + + "default_deploy_data": + Property(name = "default_deploy_data", + proptype = DeployData, + required = False, + editable = True, + description = """ + The default deployment-specific data for this instance. + Individual nodes can override the default values in their + ``deploy_data`` property. + """) + } + +DeployData.properties = { "ec2": + Property(name = "ec2", + proptype = EC2DeployData, + required = False, + editable = True, + description = """ + Used to specify EC2-specific deployment data. + """) + } + +EC2DeployData.properties = { + "instance_type": + Property(name = "instance_type", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + An EC2 instance type (e.g., ``t1.micro``, ``m1.small``, etc.) + """), + + "instance_id": + Property(name = "instance_id", + proptype = PropertyTypes.STRING, + required = False, + description = """ + Once a host has been deployed on EC2, + this property will contain its EC2 instance identifier. + """), + "ami": + Property(name = "ami", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + The Amazon Machine Image (AMI) to use when creating + new hosts on Amazon EC2. + """), + + "security_groups": + Property(name = "security_groups", + proptype = PropertyTypes.ARRAY, + items = PropertyTypes.STRING, + items_unique = True, + required = False, + editable = True, + description = """ + A list of `Security Groups `_ + to apply to hosts on EC2. If no security groups are specified, + Globus Provision will create one called ``globus-provision`` + that opens the TCP/UDP ports for SSH, GridFTP, and MyProxy. + """) + } + + +Domain.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = True, + description = """ + A unique name for the domain. + """), + + "nodes": + Property(name="nodes", + proptype = PropertyTypes.ARRAY, + items = Node, + items_unique = True, + required = True, + editable = True, + description = """ + The list of hosts (or *nodes*) in this domain. + """), + + "go_endpoints": + Property(name="go_endpoints", + proptype = PropertyTypes.ARRAY, + items = GOEndpoint, + required = False, + editable = True, + description = """ + The list of Globus Online endpoints defined for this domain. + """), + + "users": + Property(name="users", + proptype = PropertyTypes.ARRAY, + items = User, + items_unique = True, + required = True, + editable = True, + description = """ + The list of users in this domain. + """), + + "gridmap": + Property(name="gridmap", + proptype = PropertyTypes.ARRAY, + items = GridMapEntry, + required = False, + editable = True, + description = """ + The list of gridmap entries for this domain. This + is the gridmap that Globus services running on this + domain will use to determine if a given user is + authorized to access the service. + """), + } + +Node.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = True, + description = """ + A unique identifier for this host. The value of this + property is only used for identification purposes + (e.g., when printing the status of an instance with + ``gp-instance-describe``), and will not affect other + properties, like its hostname, etc. (except when using + the ``dummy`` deployer). + """), + "state": + Property(name="state", + proptype = PropertyTypes.INTEGER, + required = False, + editable = False, + description = """ + Once an instance with this topology has been created, + this property will indicate the state of this particular + host. + + Possible values are: + + %s + + """ % +"\n ".join(["* %i: %s" % (i, Node.state_str[i]) for i in sorted(Node.state_str.keys())])), + + "run_list": + Property(name="run_list", + proptype = PropertyTypes.ARRAY, + items = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The list of Chef recipes to run on this node. + See :ref:`sec_runlist` for more details. + """), + + "depends": + Property(name="depends", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + Sometimes, a host cannot be configured until another host + in the topology is configured. For example, NFS clients cannot + start until the NFS server is starting. This property is + used to specify such dependencies. The value of this property + must be of the form node:*node_id*, where *node_id* is + the identifier of another node in the domain. + + For example, if this node depends on ``simple-nfs`` the value + of this property would be ``node:simple-nfs``. + """), + + "hostname": + Property(name="hostname", + proptype = PropertyTypes.STRING, + required = False, + description = """ + The fully-qualified hostname assigned by the deployer. + """), + + "ip": + Property(name="ip", + proptype = PropertyTypes.STRING, + required = False, + description = """ + The IP address assigned by the deployer. + """), + + "public_ip": + Property(name="public_ip", + proptype = PropertyTypes.STRING, + required = False, + description = """ + If the IP address assigned in ``ip`` is a private, non-routable, + IP address, but the host is also assigned a public IP, it will + be assigned to this property by the deployer. + """), + + "deploy_data": + Property(name = "deploy_data", + proptype = DeployData, + required = False, + description = """ + Host-specific deployment data. The values specified here + will override any values specified in the topology's + ``default_deploy__data`` property. + """), + + "gc_setupkey": + Property(name = "gc_setupkey", + proptype = PropertyTypes.STRING, + required = False, + description = """ + Globus Connect setup key used to obtain a certificate + for use by services in this node. + """) + + } + + +User.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The user's login name. + """), + + "description": + Property(name="description", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + A description of the user. + """), + + "password_hash": + Property(name="password_hash", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The password hash for the user, exactly as it will appear + in the shadow file (``/etc/shadow``). To generate a password, + you can use the ``mkpasswd`` command. We recommend you generate + SHA-512 password hashes. For example:: + + $ mkpasswd -m sha-512 mypassword + $6$XrtqyXi4LO$8M/sk6t8zE5Ac.acLPBt577f1eGv.YnUVZPhGmBlQF/YrYnkWQPq7EMfryWEdHm664B.RaY3O8oZtbiQjXfu10 + + The string starting with ``$6$`` is the password hash. + + You can disable password access for this user by setting this + property to ``!``. + """), + + "ssh_pkey": + Property(name="ssh_pkey", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + A public SSH key. If a value is specified for this property, + this public key will be added to the user's ``authorized_keys`` + file. + """), + + "admin": + Property(name="admin", + proptype = PropertyTypes.BOOLEAN, + required = False, + editable = True, + description = """ + If ``true``, this user will be granted passwordless sudo + access on all hosts in this domain. + """), + + "certificate": + Property(name = "certificate", + proptype = PropertyTypes.STRING, + required = False, + description = """ + This property can take on the following values: + + * ``"generated"``: A user certificate must be generated for this user. + * ``"none"``: Do not generate a certificate for this user. + """), + } + +GridMapEntry.properties = { + "dn": + Property(name="dn", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The distinguished name in the gridmap entry + (e.g., ``"/O=Grid/OU=My Grid/CN=J.Random User"``) + """), + + "login": + Property(name="login", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The login the distinguished name will map to. + Must be a valid login in the domain. + """), + } + +GOEndpoint.properties = { + + "user": + Property(name="user", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The Globus Online user account in which to create + this endpoint. + """), + "name": + Property(name="name", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The endpoint name. + """), + + "public": + Property(name="public", + proptype = PropertyTypes.BOOLEAN, + required = True, + description = """ + Whether the endpoint should be public or not. + """), + + "gridftp": + Property(name="gridftp", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The GridFTP server for this endpoint. You can specify + either a fully qualified hostname, or refer to an existing + node in this domain by writing node:*node_id*, + where *node_id* is the identifier of another node in the domain. + """), + + "myproxy": + Property(name="myproxy", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The MyProxy server that will be used for authenticating + users that want to use this endpoint. You can specify + either a fully qualified hostname, or refer to an existing + node in this domain by writing node:*node_id*, + where *node_id* is the identifier of another node in the domain. + + Take into account that, to set up this endpoint for + "Globus Online Authentication" (as described in :ref:`sec_go_auth`) + you will need to do the following: + + * Set this property to ``myproxy.globusonline.org`` + * For each GO user you want to authorize in this endpoint, + add an entry with the following distinguished name:: + + "/C=US/O=Globus Consortium/OU=Globus Connect User/CN=username" + + Where ``username`` is the username of the GO account you + want to authorized. Usually, you will want that DN to map + to the same username in the domain, although this is not + required. + + """), + + "globus_connect_cert": + Property(name="globus_connect_cert", + proptype = PropertyTypes.BOOLEAN, + required = False, + description = """ + If true, this endpoint will use a Globus Connect certificate. + If not, it will use the host certificate generated by Globus Provision. + Take into account that, for the GridFTP server to be trusted by + Globus Online, it must use a certificate trusted by Globus Online. + Unless you used a CA trusted by Globus Online to generate the certificates + for the topology, you must use a Globus Connect certificate. + """), + + "globus_connect_cert_dn": + Property(name="globus_connect_cert", + proptype = PropertyTypes.STRING, + required = False, + description = """ + The DN of the Globus Connect certificate for this endpoint. + """) + + } Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,25 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +This package contains the "deployers". + +Globus Provision can support multiple deployment backends called "deployers", +selected on a per-instance basis. Currently, Amazon EC2 is the only "real" +deployer available. A "dummy" deployer is also available for testing purposes. +However, additional deployers can be implemented by creating a child class +of globus.provision.core.deploy.BaseDeployer. +""" \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,98 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +The dummy deployer + +All the actions in this deployer simply return immediately, simulating a +backend that never fails. This deployer is useful for testing. +""" + +from globus.provision.common.threads import GPThread +import sys +from globus.provision.common import log +from globus.provision.core.deploy import BaseDeployer, VM, ConfigureThread, WaitThread +from globus.provision.core.topology import Node + +class DummyVM(VM): + """ + A "dummy VM". Doesn't actually contain anything. + + See the documentation on globus.provision.core.deploy.VM for details + on what the VM class is used for. + """ + + def __init__(self): + VM.__init__(self) + +class Deployer(BaseDeployer): + """ + The dummy deployer + """ + + def __init__(self, *args, **kwargs): + BaseDeployer.__init__(self, *args, **kwargs) + + def set_instance(self, inst): + self.instance = inst + + def allocate_vm(self, node): + log.info("Allocated dummy VM.") + return DummyVM() + + def resume_vm(self, node): + log.info("Resumed dummy VM.") + return DummyVM() + + def post_allocate(self, node, vm): + node.hostname = "%s.gp.example.org" % node.id + node.ip = "1.2.3.4" + + def get_node_vm(self, nodes): + node_vm = {} + for n in nodes: + node_vm[n] = DummyVM() + return node_vm + + def stop_vms(self, nodes): + log.info("Dummy nodes terminated.") + + def terminate_vms(self, nodes): + log.info("Dummy nodes terminated.") + + def get_wait_thread_class(self): + return self.NodeWaitThread + + def get_configure_thread_class(self): + return self.NodeConfigureThread + + class NodeWaitThread(WaitThread): + def __init__(self, multi, name, node, vm, deployer, state, depends = None): + WaitThread.__init__(self, multi, name, node, vm, deployer, state, depends) + + def wait(self): + log.info("Waiting for state %s" % Node.state_str[self.state]) + + class NodeConfigureThread(ConfigureThread): + def __init__(self, multi, name, node, vm, deployer, depends = None, basic = True, chef = True): + ConfigureThread.__init__(self, multi, name, node, vm, deployer, depends, basic, chef, dryrun = True) + + def connect(self): pass + + def pre_configure(self): pass + + def post_configure(self): pass + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,330 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +The EC2 deployer + +This deployer will create and manage hosts for a topology using Amazon EC2. +""" + +from cPickle import load +from boto.exception import BotoClientError, EC2ResponseError +from globus.provision.common.utils import create_ec2_connection +from globus.provision.common.ssh import SSH, SSHCommandFailureException +from globus.provision.common.threads import MultiThread, GPThread, SIGINTWatcher +import random +import time +import sys +import traceback +import os.path +from globus.provision.common import log +from globus.provision.core.deploy import BaseDeployer, VM, ConfigureThread, WaitThread,\ + DeploymentException +from globus.provision.core.topology import DeployData, EC2DeployData, Node + +class EC2VM(VM): + """ + Represents a VM running on EC2. + + See the documentation on globus.provision.core.deploy.VM for details + on what the VM class is used for. + """ + + def __init__(self, ec2_instance): + self.ec2_instance = ec2_instance + + def __str__(self): + return self.ec2_instance.id + +class Deployer(BaseDeployer): + """ + The EC2 deployer. + """ + + def __init__(self, *args, **kwargs): + BaseDeployer.__init__(self, *args, **kwargs) + self.conn = None + self.instances = None + self.vols = [] + self.supports_create_tags = True + self.has_gp_sg = False + + def set_instance(self, inst): + self.instance = inst + self.__connect() + + def __connect(self): + config = self.instance.config + + try: + log.debug("Connecting to EC2...") + ec2_server_hostname = config.get("ec2-server-hostname") + ec2_server_port = config.get("ec2-server-port") + ec2_server_path = config.get("ec2-server-path") + + if ec2_server_hostname != None: + self.conn = create_ec2_connection(ec2_server_hostname, + ec2_server_path, + ec2_server_port) + else: + self.conn = create_ec2_connection() + + if self.conn == None: + raise DeploymentException, "AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables are not set." + + log.debug("Connected to EC2.") + except BotoClientError, exc: + raise DeploymentException, "Could not connect to EC2. %s" % exc.reason + + def __get_security_groups(self, topology, node): + sgs = topology.get_deploy_data(node, "ec2", "security_groups") + if sgs is None: + sgs = [] + + if len(sgs) == 0: + if self.has_gp_sg: + sgs = ["globus-provision"] + else: + gp_sg = self.conn.get_all_security_groups(filters={"group-name":"globus-provision"}) + if len(gp_sg) == 0: + gp_sg = self.conn.create_security_group('globus-provision', 'Security group for Globus Provision instances') + + # Internal + gp_sg.authorize(src_group = gp_sg) + + # SSH + gp_sg.authorize('tcp', 22, 22, '0.0.0.0/0') + + # GridFTP + gp_sg.authorize('tcp', 2811, 2811, '0.0.0.0/0') + gp_sg.authorize('udp', 2811, 2811, '0.0.0.0/0') + gp_sg.authorize('tcp', 50000, 51000, '0.0.0.0/0') + + # MyProxy + gp_sg.authorize('tcp', 7512, 7512, '0.0.0.0/0') + + # Galaxy + gp_sg.authorize('tcp', 8080, 8080, '0.0.0.0/0') + + sgs = ["globus-provision"] + self.has_gp_sg = True + else: + all_sgs = self.conn.get_all_security_groups() + # TODO: Validate that the security groups are valid + + return sgs + + def allocate_vm(self, node): + topology = self.instance.topology + + instance_type = topology.get_deploy_data(node, "ec2", "instance_type") + ami = topology.get_deploy_data(node, "ec2", "ami") + security_groups = self.__get_security_groups(topology, node) + + try: + image = self.conn.get_image(ami) + except EC2ResponseError, ec2err: + if ec2err.error_code in ("InvalidAMIID.NotFound", "InvalidAMIID.Malformed"): + raise DeploymentException, "AMI %s does not exist" % ami + else: + raise ec2err + + if image == None: + # Workaround for this bug: + # https://bugs.launchpad.net/eucalyptus/+bug/495670 + image = [i for i in self.conn.get_all_images() if i.id == ami] + if len(image) == 0: + raise DeploymentException, "AMI %s does not exist" % ami + else: + image = image[0] + + user_data = """#cloud-config +manage_etc_hosts: true +""" + + log.info(" |- Launching a %s instance for %s." % (instance_type, node.id)) + reservation = image.run(min_count=1, + max_count=1, + instance_type=instance_type, + security_groups= security_groups, + user_data = user_data, + key_name=self.instance.config.get("ec2-keypair"), + placement = None) + instance = reservation.instances[0] + + return EC2VM(instance) + + def resume_vm(self, node): + ec2_instance_id = node.deploy_data.ec2.instance_id + + log.info(" |- Resuming instance %s for %s." % (ec2_instance_id, node.id)) + started = self.conn.start_instances([ec2_instance_id]) + log.info(" |- Resumed instance %s." % ",".join([i.id for i in started])) + + return EC2VM(started[0]) + + def post_allocate(self, node, vm): + ec2_instance = vm.ec2_instance + + if ec2_instance.private_ip_address != None: + # A correct EC2 system should return this + node.ip = ec2_instance.private_ip_address + else: + # Unfortunately, some EC2-ish systems won't return the private IP address + # We fall back on the private_dns_name, which should still work + # (plus, some EC2-ish systems actually set this to the IP address) + node.ip = ec2_instance.private_dns_name + + node.hostname = ec2_instance.public_dns_name + + # TODO: The following won't work on EC2-ish systems behind a firewall. + node.public_ip = ".".join(ec2_instance.public_dns_name.split(".")[0].split("-")[1:]) + + if not node.has_property("deploy_data"): + node.deploy_data = DeployData() + node.deploy_data.ec2 = EC2DeployData() + + node.deploy_data.ec2.instance_id = ec2_instance.id + + try: + if self.supports_create_tags: + self.conn.create_tags([ec2_instance.id], {"Name": "%s_%s" % (self.instance.id, node.id)}) + except: + # Some EC2-ish systems don't support the create_tags call. + # If it fails, we just silently ignore it, as it is not essential, + # but make sure not to call it again, as EC2-ish systems will + # timeout instead of immediately returning an error + self.supports_create_tags = False + + + def get_node_vm(self, nodes): + ec2_instance_ids = [n.deploy_data.ec2.instance_id for n in nodes] + reservations = self.conn.get_all_instances(ec2_instance_ids) + node_vm = {} + for r in reservations: + instance = r.instances[0] + node = [n for n in nodes if n.deploy_data.ec2.instance_id==instance.id][0] + node_vm[node] = EC2VM(instance) + return node_vm + + def stop_vms(self, nodes): + ec2_instance_ids = [n.deploy_data.ec2.instance_id for n in nodes] + log.info("Stopping EC2 instances %s." % ", ".join(ec2_instance_ids)) + stopped = self.conn.stop_instances(ec2_instance_ids) + log.info("Stopped EC2 instances %s." % ", ".join([i.id for i in stopped])) + + def terminate_vms(self, nodes): + ec2_instance_ids = [n.deploy_data.ec2.instance_id for n in nodes] + log.info("Terminating EC2 instances %s." % ", ".join(ec2_instance_ids)) + terminated = self.conn.terminate_instances(ec2_instance_ids) + log.info("Terminated EC2 instances %s." % ", ".join([i.id for i in terminated])) + + def wait_state(self, obj, state, interval = 2.0): + jitter = random.uniform(0.0, 0.5) + while True: + time.sleep(interval + jitter) + try: + newstate = obj.update() + except EC2ResponseError, ec2err: + if ec2err.error_code == "InvalidInstanceID.NotFound": + # If the instance was just created, this is a transient error. + # We just have to wait until the instance appears. + pass + else: + raise ec2err + + if newstate == state: + return True + # TODO: Check errors + + def get_wait_thread_class(self): + return self.NodeWaitThread + + def get_configure_thread_class(self): + return self.NodeConfigureThread + + class NodeWaitThread(WaitThread): + def __init__(self, multi, name, node, vm, deployer, state, depends = None): + WaitThread.__init__(self, multi, name, node, vm, deployer, state, depends) + self.ec2_instance = vm.ec2_instance + + def wait(self): + if self.state in (Node.STATE_RUNNING_UNCONFIGURED, Node.STATE_RESUMED_UNCONFIGURED): + self.deployer.wait_state(self.ec2_instance, "running") + log.info("Instance %s is running. Hostname: %s" % (self.ec2_instance.id, self.ec2_instance.public_dns_name)) + elif self.state == Node.STATE_STOPPED: + self.deployer.wait_state(self.ec2_instance, "stopped") + elif self.state == Node.STATE_TERMINATED: + self.deployer.wait_state(self.ec2_instance, "terminated") + + + class NodeConfigureThread(ConfigureThread): + def __init__(self, multi, name, node, vm, deployer, depends = None, basic = True, chef = True): + ConfigureThread.__init__(self, multi, name, node, vm, deployer, depends, basic, chef) + self.ec2_instance = self.vm.ec2_instance + + def connect(self): + keyfile = os.path.expanduser(self.config.get("ec2-keyfile")) + ssh = self.ssh_connect(self.config.get("ec2-username"), self.ec2_instance.public_dns_name, keyfile) + return ssh + + def pre_configure(self, ssh): + node = self.node + instance = self.ec2_instance + + log.info("Setting up instance %s. Hostname: %s" % (instance.id, instance.public_dns_name), node) + + try: + ssh.run("ls -l /chef") + except SSHCommandFailureException: + #The image is not properly setup, so do all pre-configuration for globus-provision + log.info("Image is not configured with Chef, so installing...") + + ssh.run("sudo chown -R %s /chef" % self.config.get("ec2-username")) + ssh.scp_dir("%s" % self.chef_dir, "/chef") + + + + ssh.run("addgroup admin", exception_on_error = False) + ssh.run("echo \"%s `hostname`\" | sudo tee -a /etc/hosts" % instance.private_ip_address) + + ssh.run("sudo apt-get install lsb-release wget") + ssh.run("echo \"deb http://apt.opscode.com/ `lsb_release -cs` main\" | sudo tee /etc/apt/sources.list.d/opscode.list") + ssh.run("wget -qO - http://apt.opscode.com/packages at opscode.com.gpg.key | sudo apt-key add -") + ssh.run("sudo apt-get update") + ssh.run("echo 'chef chef/chef_server_url string http://127.0.0.1:4000' | sudo debconf-set-selections") + ssh.run("sudo apt-get -q=2 install chef") + + ssh.run("echo -e \"cookbook_path \\\"/chef/cookbooks\\\"\\nrole_path \\\"/chef/roles\\\"\" > /tmp/chef.conf") + ssh.run("echo '{ \"run_list\": \"recipe[provision::ec2]\", \"scratch_dir\": \"%s\" }' > /tmp/chef.json" % self.scratch_dir) + + ssh.run("sudo chef-solo -c /tmp/chef.conf -j /tmp/chef.json") + + ssh.run("sudo update-rc.d -f nis remove") + ssh.run("sudo update-rc.d -f condor remove") + ssh.run("sudo update-rc.d -f chef-client remove") + + + log.debug("Removing private data...") + + ssh.run("sudo find /root/.*history /home/*/.*history -exec rm -f {} \;", exception_on_error = False) + + + + + def post_configure(self, ssh): + pass + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,211 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +from boto.exception import EC2ResponseError + +""" +EC2 images utilities. + +Contains code to manage Globus Provision AMIs. +""" + +from globus.provision.common.utils import create_ec2_connection +from globus.provision.common.ssh import SSH +from globus.provision.common import log +import time + +class EC2AMICreator(object): + """ + Used to create a Globus Provision AMI. + """ + + def __init__(self, chef_dir, base_ami, ami_name, instance_type, config): + self.chef_dir = chef_dir + self.base_ami = base_ami + self.ami_name = ami_name + self.instance_type = instance_type + self.config = config + + self.keypair = config.get("ec2-keypair") + self.keyfile = config.get("ec2-keyfile") + self.hostname = config.get("ec2-server-hostname") + self.port = config.get("ec2-server-port") + self.path = config.get("ec2-server-path") + self.username = config.get("ec2-username") + self.scratch_dir = config.get("scratch-dir") + + def run(self): + log.init_logging(2) + + conn = create_ec2_connection(hostname=self.hostname, path=self.path, port=self.port) + + print "Creating instance" + reservation = conn.run_instances(self.base_ami, + min_count=1, max_count=1, + instance_type=self.instance_type, + key_name=self.keypair) + instance = reservation.instances[0] + print "Instance %s created. Waiting for it to start..." % instance.id + + while True: + try: + newstate = instance.update() + if newstate == "running": + break + time.sleep(2) + except EC2ResponseError, ec2err: + if ec2err.error_code == "InvalidInstanceID.NotFound": + # If the instance was just created, this is a transient error. + # We just have to wait until the instance appears. + pass + else: + raise ec2err + + print "Instance running" + print self.username, instance.public_dns_name, self.keyfile + ssh = SSH(self.username, instance.public_dns_name, self.keyfile, None, None) + try: + ssh.open() + except Exception, e: + print e.message + exit(1) + + print "Copying Chef files" + ssh.run("sudo mkdir /chef") + ssh.run("sudo chown -R %s /chef" % self.username) + ssh.scp_dir("%s" % self.chef_dir, "/chef") + + # Some VMs don't include their hostname + ssh.run("echo \"%s `hostname`\" | sudo tee -a /etc/hosts" % instance.private_ip_address) + + ssh.run("sudo apt-get install lsb-release wget") + ssh.run("echo \"deb http://apt.opscode.com/ `lsb_release -cs` main\" | sudo tee /etc/apt/sources.list.d/opscode.list") + ssh.run("wget -qO - http://apt.opscode.com/packages at opscode.com.gpg.key | sudo apt-key add -") + ssh.run("sudo apt-get update") + ssh.run("echo 'chef chef/chef_server_url string http://127.0.0.1:4000' | sudo debconf-set-selections") + ssh.run("sudo apt-get -q=2 install chef") + + ssh.run("echo -e \"cookbook_path \\\"/chef/cookbooks\\\"\\nrole_path \\\"/chef/roles\\\"\" > /tmp/chef.conf") + ssh.run("echo '{ \"run_list\": \"recipe[provision::ec2]\", \"scratch_dir\": \"%s\" }' > /tmp/chef.json" % self.scratch_dir) + + ssh.run("sudo chef-solo -c /tmp/chef.conf -j /tmp/chef.json") + + ssh.run("sudo update-rc.d -f nis remove") + ssh.run("sudo update-rc.d -f condor remove") + ssh.run("sudo update-rc.d -f chef-client remove") + + print "Removing private data and authorized keys" + ssh.run("sudo find /root/.*history /home/*/.*history -exec rm -f {} \;", exception_on_error = False) + ssh.run("sudo find / -name authorized_keys -exec rm -f {} \;", exception_on_error = False) + + # Apparently instance.stop() will terminate + # the instance (this is a known bug), so we + # use stop_instances instead. + print "Stopping instance" + conn.stop_instances([instance.id]) + while instance.update() != "stopped": + time.sleep(2) + print "Instance stopped" + + print "Creating AMI" + # Doesn't actually return AMI. Have to make it public manually. + ami = conn.create_image(instance.id, self.ami_name, description=self.ami_name) + + print "Cleaning up" + + + print "Terminating instance" + #conn.terminate_instances([instance.id]) + #while instance.update() != "terminated": + # time.sleep(2) + print "Instance terminated" + + + +class EC2AMIUpdater(object): + """ + Used to update a Globus Provision AMI. + """ + + def __init__(self, base_ami, ami_name, files, config): + self.base_ami = base_ami + self.ami_name = ami_name + self.files = files + + self.config = config + + self.keypair = config.get("ec2-keypair") + self.keyfile = config.get("ec2-keyfile") + self.hostname = config.get("ec2-server-hostname") + self.port = config.get("ec2-server-port") + self.path = config.get("ec2-server-path") + self.username = config.get("ec2-username") + + def run(self): + log.init_logging(2) + + conn = create_ec2_connection(hostname=self.hostname, path=self.path, port=self.port) + + print "Creating instance" + reservation = conn.run_instances(self.base_ami, + min_count=1, max_count=1, + instance_type='m1.small', + key_name=self.keypair) + instance = reservation.instances[0] + print "Instance %s created. Waiting for it to start..." % instance.id + + while instance.update() != "running": + time.sleep(2) + + print "Instance running." + + print "Opening SSH connection." + ssh = SSH(self.username, instance.public_dns_name, self.keyfile) + ssh.open() + + print "Copying files" + for src, dst in self.files: + ssh.scp(src, dst) + + print "Removing private data and authorized keys" + ssh.run("sudo find /root/.*history /home/*/.*history -exec rm -f {} \;", exception_on_error = False) + ssh.run("sudo find / -name authorized_keys -exec rm -f {} \;", exception_on_error = False) + + # Apparently instance.stop() will terminate + # the instance (this is a known bug), so we + # use stop_instances instead. + print "Stopping instance" + conn.stop_instances([instance.id]) + while instance.update() != "stopped": + time.sleep(2) + print "Instance stopped" + + print "Creating AMI" + + # Doesn't actually return AMI. Have to make it public manually. + ami = conn.create_image(instance.id, self.ami_name, description=self.ami_name) + + if ami != None: + print ami + print "Cleaning up" + + + print "Terminating instance" + conn.terminate_instances([instance.id]) + while instance.update() != "terminated": + time.sleep(2) + print "Instance terminated" + + Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py ___________________________________________________________________ Added: svn:executable + * Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,34 @@ +from globus.provision.core.config import SimpleTopologyConfig +import tempfile +import shutil + +def load_config_file(f, dummy): + configf = open(f) + config_txt = configf.read() + if dummy: + config_txt = config_txt.replace("deploy: ec2", "deploy: dummy") + configf.close() + + topology_file = f + conf = SimpleTopologyConfig(topology_file) + topology = conf.to_topology() + topology_json = topology.to_json_string() + + return config_txt, topology_json + +def create_temp_config_file(f, tempf, dummy): + configf = open(f) + config_txt = configf.read() + if dummy: + config_txt = config_txt.replace("deploy: ec2", "deploy: dummy") + configf.close() + + configf = open(tempf, "w") + configf.write(config_txt) + configf.close() + +def create_instances_dir(): + return tempfile.mkdtemp(prefix="gptesttmp") + +def remove_instances_dir(d): + shutil.rmtree(d) \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py =================================================================== --- usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py (rev 0) +++ usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py 2011-12-02 13:54:44 UTC (rev 5328) @@ -0,0 +1,138 @@ +from globus.provision.core.api import API +from globus.provision.tests.common import load_config_file, create_instances_dir,\ + remove_instances_dir, create_temp_config_file +from globus.provision.core.topology import Topology +import json +from globus.provision.cli.api import gp_instance_create, gp_instance_describe,\ + gp_instance_start, gp_instance_stop, gp_instance_list, gp_instance_update,\ + gp_instance_terminate +import os + +# TODO: Assumes we're running from the source root directory. Make this location independent. +SAMPLE_DIR = "./samples/" +SAMPLES = ("simple-dummy.conf", "simple-ec2.conf", "single-gridftp-ec2.conf") + + +def test_samples_api(): + for s in SAMPLES: + yield check_sample_api, SAMPLE_DIR + s + +def test_samples_cli(): + for s in SAMPLES: + yield check_sample_cli, SAMPLE_DIR + s + + +def check_sample_api(s): + instances_dir = create_instances_dir() + + config_txt, topology_json = load_config_file(s, dummy = True) + + api = API(instances_dir) + + (status_code, message, inst_id) = api.instance_create(topology_json, config_txt) + assert status_code == API.STATUS_SUCCESS + check_instance_state(api, inst_id, Topology.STATE_NEW) + + (status_code, message, topologies_json) = api.instance_list(None) + assert status_code == API.STATUS_SUCCESS + insts = json.loads(topologies_json) + assert len(insts) == 1 + assert insts[0]["id"] == inst_id + + (status_code, message, topologies_json) = api.instance_list([inst_id]) + assert status_code == API.STATUS_SUCCESS, message + insts = json.loads(topologies_json) + assert len(insts) == 1 + assert insts[0]["id"] == inst_id + + (status_code, message) = api.instance_start(inst_id, [], []) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_RUNNING) + + (status_code, message) = api.instance_stop(inst_id) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_STOPPED) + + (status_code, message) = api.instance_start(inst_id, [], []) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_RUNNING) + + (status_code, message) = api.instance_update(inst_id, None, [], []) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_RUNNING) + + (status_code, message) = api.instance_terminate(inst_id) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_TERMINATED) + + remove_instances_dir(instances_dir) + +def check_sample_cli(s): + instances_dir = create_instances_dir() + temp_config_file = instances_dir + "/test.conf" + create_temp_config_file(s, temp_config_file, dummy = True) + + common_args = ["GPCOMMAND", "-i", instances_dir] + + args = ["-c", temp_config_file] + rc = gp_instance_create(common_args + args).run() + assert rc == 0 + + insts = [n for n in os.listdir(instances_dir) if n.startswith("gpi-")] + assert len(insts) == 1 + inst_id = insts[0] + print inst_id + args = [inst_id] + print common_args + args + rc = gp_instance_describe(common_args + args).run() + assert rc == 0 + + args = [inst_id, "-v"] + rc = gp_instance_describe(common_args + args).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_start(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + + args = ["-v"] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + + args = ["-v", inst_id] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + return + args = [inst_id] + rc = gp_instance_stop(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_start(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_update(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_terminate(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + remove_instances_dir(instances_dir) + + +def check_instance_state(api, inst_id, state): + (status_code, message, topology_json) = api.instance(inst_id) + assert status_code == API.STATUS_SUCCESS, message + topology = Topology.from_json_string(topology_json) + assert topology.state == state + \ No newline at end of file Property changes on: usertools/swift-ec2-boot/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py ___________________________________________________________________ Added: svn:executable + * From davidk at ci.uchicago.edu Fri Dec 2 10:38:41 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 10:38:41 -0600 (CST) Subject: [Swift-commit] r5330 - in branches/release-0.93: . bin bin/vm bin/vm/ec2 bin/vm/ec2/bin bin/vm/ec2/lib bin/vm/ec2/lib/python2.7 bin/vm/ec2/lib/python2.7/site-packages bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py 2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3 .2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default bin/vm/ec2/lib/python2.7/sit e-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes bin/vm/ec2/lib/pyt hon2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/ templates/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py 2.7.egg/globus/provision/chef-files/roles bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2 bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests bin/vm/futuregrid bin/vm/futuregrid/plan Message-ID: <20111202163841.4AE459CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 10:38:40 -0600 (Fri, 02 Dec 2011) New Revision: 5330 Added: branches/release-0.93/bin/vm/ branches/release-0.93/bin/vm/ec2/ branches/release-0.93/bin/vm/ec2/bin/ branches/release-0.93/bin/vm/ec2/bin/bundle_image branches/release-0.93/bin/vm/ec2/bin/cfadmin branches/release-0.93/bin/vm/ec2/bin/cq branches/release-0.93/bin/vm/ec2/bin/cwutil branches/release-0.93/bin/vm/ec2/bin/elbadmin branches/release-0.93/bin/vm/ec2/bin/fetch_file branches/release-0.93/bin/vm/ec2/bin/gp-ec2-create-ami branches/release-0.93/bin/vm/ec2/bin/gp-ec2-update-ami branches/release-0.93/bin/vm/ec2/bin/gp-go-register-endpoints branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-host branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-user branches/release-0.93/bin/vm/ec2/bin/gp-instance-create branches/release-0.93/bin/vm/ec2/bin/gp-instance-describe branches/release-0.93/bin/vm/ec2/bin/gp-instance-list branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-hosts branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-users branches/release-0.93/bin/vm/ec2/bin/gp-instance-start branches/release-0.93/bin/vm/ec2/bin/gp-instance-stop branches/release-0.93/bin/vm/ec2/bin/gp-instance-terminate branches/release-0.93/bin/vm/ec2/bin/gp-instance-update branches/release-0.93/bin/vm/ec2/bin/kill_instance branches/release-0.93/bin/vm/ec2/bin/launch_instance branches/release-0.93/bin/vm/ec2/bin/list_instances branches/release-0.93/bin/vm/ec2/bin/lss3 branches/release-0.93/bin/vm/ec2/bin/pyami_sendmail branches/release-0.93/bin/vm/ec2/bin/route53 branches/release-0.93/bin/vm/ec2/bin/s3multiput branches/release-0.93/bin/vm/ec2/bin/s3put branches/release-0.93/bin/vm/ec2/bin/sdbadmin branches/release-0.93/bin/vm/ec2/bin/taskadmin branches/release-0.93/bin/vm/ec2/ec2.template.conf branches/release-0.93/bin/vm/ec2/lib/ branches/release-0.93/bin/vm/ec2/lib/python2.7/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/easy-install.pth branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/__init__.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py branches/release-0.93/bin/vm/futuregrid/ branches/release-0.93/bin/vm/futuregrid/plan/ branches/release-0.93/bin/vm/futuregrid/plan/test-level1.conf branches/release-0.93/bin/vm/futuregrid/plan/top.conf Modified: branches/release-0.93/build.xml Log: EC2 and futuregrid utilities Added: branches/release-0.93/bin/vm/ec2/bin/bundle_image =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/bundle_image (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/bundle_image 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','bundle_image' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'bundle_image') Property changes on: branches/release-0.93/bin/vm/ec2/bin/bundle_image ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/cfadmin =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/cfadmin (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/cfadmin 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','cfadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'cfadmin') Property changes on: branches/release-0.93/bin/vm/ec2/bin/cfadmin ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/cq =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/cq (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/cq 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','cq' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'cq') Property changes on: branches/release-0.93/bin/vm/ec2/bin/cq ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/cwutil =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/cwutil (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/cwutil 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','cwutil' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'cwutil') Property changes on: branches/release-0.93/bin/vm/ec2/bin/cwutil ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/elbadmin =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/elbadmin (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/elbadmin 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','elbadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'elbadmin') Property changes on: branches/release-0.93/bin/vm/ec2/bin/elbadmin ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/fetch_file =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/fetch_file (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/fetch_file 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','fetch_file' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'fetch_file') Property changes on: branches/release-0.93/bin/vm/ec2/bin/fetch_file ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-ec2-create-ami =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-ec2-create-ami (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-ec2-create-ami 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-ec2-create-ami' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-ec2-create-ami')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-ec2-create-ami ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-ec2-update-ami =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-ec2-update-ami (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-ec2-update-ami 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-ec2-update-ami' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-ec2-update-ami')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-ec2-update-ami ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-go-register-endpoints =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-go-register-endpoints (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-go-register-endpoints 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-go-register-endpoints' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-go-register-endpoints')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-go-register-endpoints ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-host =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-host (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-host 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-add-host' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-add-host')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-host ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-user =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-user (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-user 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-add-user' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-add-user')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-add-user ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-create =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-create (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-create 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-create' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-create')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-create ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-describe =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-describe (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-describe 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-describe' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-describe')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-describe ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-list =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-list (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-list 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-list' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-list')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-list ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-hosts =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-hosts (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-hosts 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-remove-hosts' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-remove-hosts')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-hosts ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-users =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-users (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-users 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-remove-users' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-remove-users')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-remove-users ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-start =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-start (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-start 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-start' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-start')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-start ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-stop =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-stop (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-stop 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-stop' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-stop')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-stop ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-terminate =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-terminate (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-terminate 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-terminate' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-terminate')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-terminate ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/gp-instance-update =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/gp-instance-update (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/gp-instance-update 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +#!/usr/bin/python +# EASY-INSTALL-ENTRY-SCRIPT: 'globus-provision==0.3.2','console_scripts','gp-instance-update' +__requires__ = 'globus-provision==0.3.2' +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.exit( + load_entry_point('globus-provision==0.3.2', 'console_scripts', 'gp-instance-update')() + ) Property changes on: branches/release-0.93/bin/vm/ec2/bin/gp-instance-update ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/kill_instance =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/kill_instance (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/kill_instance 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','kill_instance' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'kill_instance') Property changes on: branches/release-0.93/bin/vm/ec2/bin/kill_instance ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/launch_instance =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/launch_instance (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/launch_instance 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','launch_instance' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'launch_instance') Property changes on: branches/release-0.93/bin/vm/ec2/bin/launch_instance ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/list_instances =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/list_instances (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/list_instances 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','list_instances' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'list_instances') Property changes on: branches/release-0.93/bin/vm/ec2/bin/list_instances ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/lss3 =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/lss3 (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/lss3 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','lss3' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'lss3') Property changes on: branches/release-0.93/bin/vm/ec2/bin/lss3 ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/pyami_sendmail =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/pyami_sendmail (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/pyami_sendmail 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','pyami_sendmail' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'pyami_sendmail') Property changes on: branches/release-0.93/bin/vm/ec2/bin/pyami_sendmail ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/route53 =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/route53 (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/route53 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','route53' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'route53') Property changes on: branches/release-0.93/bin/vm/ec2/bin/route53 ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/s3multiput =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/s3multiput (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/s3multiput 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','s3multiput' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 's3multiput') Property changes on: branches/release-0.93/bin/vm/ec2/bin/s3multiput ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/s3put =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/s3put (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/s3put 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','s3put' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 's3put') Property changes on: branches/release-0.93/bin/vm/ec2/bin/s3put ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/sdbadmin =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/sdbadmin (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/sdbadmin 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','sdbadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'sdbadmin') Property changes on: branches/release-0.93/bin/vm/ec2/bin/sdbadmin ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/bin/taskadmin =================================================================== --- branches/release-0.93/bin/vm/ec2/bin/taskadmin (rev 0) +++ branches/release-0.93/bin/vm/ec2/bin/taskadmin 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +#!/usr/bin/python +# EASY-INSTALL-SCRIPT: 'boto==2.1.1','taskadmin' +__requires__ = 'boto==2.1.1' +import pkg_resources +pkg_resources.run_script('boto==2.1.1', 'taskadmin') Property changes on: branches/release-0.93/bin/vm/ec2/bin/taskadmin ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/ec2.template.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/ec2.template.conf (rev 0) +++ branches/release-0.93/bin/vm/ec2/ec2.template.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,17 @@ +[general] +domains: swift +deploy: ec2 + +[domain-swift] +users: swift +nfs-nis: yes +lrm: none +cluster-nodes: _CLUSTER-NODES_ + +[ec2] +ami: _AMI_ +instance-type: _INSTANCE-TYPE_ +keypair: _KEYPAIR_ +keyfile: _KEYFILE_ +username: ubuntu + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/easy-install.pth =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/easy-install.pth (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/easy-install.pth 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,7 @@ +import sys; sys.__plen = len(sys.path) +./globus_provision-0.3.2-py2.7.egg +/usr/local/lib/python2.7/dist-packages/globusonline_transfer_api_client-0.10.8-py2.7.egg +/usr/local/lib/python2.7/dist-packages/colorama-0.2.4-py2.7.egg +/usr/local/lib/python2.7/dist-packages/paramiko-1.7.7.1-py2.7.egg +/usr/local/lib/python2.7/dist-packages/boto-2.1.1-py2.7.egg +import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new) Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/PKG-INFO 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,20 @@ +Metadata-Version: 1.0 +Name: globus-provision +Version: 0.3.2 +Summary: A tool for deploying fully-configured Globus systems on Amazon EC2 +Home-page: http://globus.org/provision +Author: University of Chicago +Author-email: borja at cs.uchicago.edu +License: Apache Software License +Description: UNKNOWN +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: System Administrators +Classifier: Intended Audience :: Education +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Programming Language :: Python +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: System :: Distributed Computing Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/SOURCES.txt 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,206 @@ +README.TXT +distribute_setup.py +setup.cfg +setup.py +doc/Makefile +doc/arch.png +doc/changelog.rst +doc/cli_ref_top.rst +doc/conf.py +doc/config_ref_top.rst +doc/developer.rst +doc/docs.rst +doc/download.rst +doc/ec2.rst +doc/example_cluster.png +doc/example_mini_clusters.png +doc/figures.odg +doc/gen_ami_page.py +doc/gen_cli_doc.py +doc/gen_config_doc.py +doc/gen_recipe_doc.py +doc/gen_samples.py +doc/gen_topology_doc.py +doc/go.rst +doc/guide_autocomplete.rst +doc/guide_compute_go.rst +doc/guides.rst +doc/index.rst +doc/install.rst +doc/instance_operations.rst +doc/intro.rst +doc/intro_common.rst +doc/quickstart.rst +doc/recipe_ref_top.rst +doc/stopology_ref_top.rst +doc/support.rst +doc/topology.rst +doc/topology_ref_top.rst +doc/whatis.rst +doc/_static/logo.png +doc/_templates/layout.html +doc/_templates/quickstart.html +samples/dummy.conf +samples/ec2.conf +samples/go-condor-ec2.conf +samples/go-gridftp-ec2.conf +samples/simple-dummy.conf +samples/simple-ec2.conf +samples/single-gridftp-ec2.conf +scripts/gp-complete.sh +src/dg_paraproxy/WrapSock.py +src/dg_paraproxy/__init__.py +src/globus/__init__.py +src/globus/provision/__init__.py +src/globus/provision/chef-files/README.md +src/globus/provision/chef-files/cookbooks/apt/README.md +src/globus/provision/chef-files/cookbooks/apt/TODO.org +src/globus/provision/chef-files/cookbooks/apt/metadata.json +src/globus/provision/chef-files/cookbooks/apt/metadata.rb +src/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher +src/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf +src/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf +src/globus/provision/chef-files/cookbooks/apt/providers/repository.rb +src/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb +src/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb +src/globus/provision/chef-files/cookbooks/apt/recipes/default.rb +src/globus/provision/chef-files/cookbooks/apt/resources/repository.rb +src/globus/provision/chef-files/cookbooks/condor/README.rdoc +src/globus/provision/chef-files/cookbooks/condor/metadata.rb +src/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf +src/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb +src/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb +src/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb +src/globus/provision/chef-files/cookbooks/condor/recipes/default.rb +src/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb +src/globus/provision/chef-files/cookbooks/galaxy/README.rdoc +src/globus/provision/chef-files/cookbooks/galaxy/metadata.rb +src/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh +src/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init +src/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini +src/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini +src/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb +src/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb +src/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb +src/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb +src/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb +src/globus/provision/chef-files/cookbooks/globus/README.rdoc +src/globus/provision/chef-files/cookbooks/globus/metadata.rb +src/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 +src/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy +src/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert +src/globus/provision/chef-files/cookbooks/globus/files/default/anon.key +src/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 +src/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy +src/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert +src/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf +src/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config +src/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy +src/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/default.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb +src/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb +src/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb +src/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb +src/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb +src/globus/provision/chef-files/cookbooks/java/README.md +src/globus/provision/chef-files/cookbooks/java/metadata.json +src/globus/provision/chef-files/cookbooks/java/metadata.rb +src/globus/provision/chef-files/cookbooks/java/attributes/default.rb +src/globus/provision/chef-files/cookbooks/java/files/default/java.seed +src/globus/provision/chef-files/cookbooks/java/recipes/default.rb +src/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb +src/globus/provision/chef-files/cookbooks/java/recipes/sun.rb +src/globus/provision/chef-files/cookbooks/postgresql/README.rdoc +src/globus/provision/chef-files/cookbooks/postgresql/metadata.json +src/globus/provision/chef-files/cookbooks/postgresql/metadata.rb +src/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb +src/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb +src/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb +src/globus/provision/chef-files/cookbooks/provision/README.rdoc +src/globus/provision/chef-files/cookbooks/provision/metadata.json +src/globus/provision/chef-files/cookbooks/provision/metadata.rb +src/globus/provision/chef-files/cookbooks/provision/attributes/default.rb +src/globus/provision/chef-files/cookbooks/provision/files/default/auto.master +src/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf +src/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common +src/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server +src/globus/provision/chef-files/cookbooks/provision/files/default/nis +src/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/default.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb +src/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb +src/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb +src/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb +src/globus/provision/chef-files/roles/README.md +src/globus/provision/chef-files/roles/domain-clusternode-condor.rb +src/globus/provision/chef-files/roles/domain-condor.rb +src/globus/provision/chef-files/roles/domain-gridftp-default.rb +src/globus/provision/chef-files/roles/domain-gridftp-gc.rb +src/globus/provision/chef-files/roles/domain-myproxy.rb +src/globus/provision/chef-files/roles/domain-nfsnis-client.rb +src/globus/provision/chef-files/roles/domain-nfsnis.rb +src/globus/provision/chef-files/roles/globus.rb +src/globus/provision/cli/__init__.py +src/globus/provision/cli/api.py +src/globus/provision/cli/ec2.py +src/globus/provision/cli/globusonline.py +src/globus/provision/common/__init__.py +src/globus/provision/common/certs.py +src/globus/provision/common/config.py +src/globus/provision/common/defaults.py +src/globus/provision/common/go_transfer.py +src/globus/provision/common/log.py +src/globus/provision/common/persistence.py +src/globus/provision/common/ssh.py +src/globus/provision/common/threads.py +src/globus/provision/common/utils.py +src/globus/provision/core/__init__.py +src/globus/provision/core/api.py +src/globus/provision/core/config.py +src/globus/provision/core/deploy.py +src/globus/provision/core/instance.py +src/globus/provision/core/topology.py +src/globus/provision/deploy/__init__.py +src/globus/provision/deploy/dummy/__init__.py +src/globus/provision/deploy/ec2/__init__.py +src/globus/provision/deploy/ec2/images.py +src/globus/provision/tests/__init__.py +src/globus/provision/tests/common.py +src/globus/provision/tests/test_samples.py +src/globus_provision.egg-info/PKG-INFO +src/globus_provision.egg-info/SOURCES.txt +src/globus_provision.egg-info/dependency_links.txt +src/globus_provision.egg-info/entry_points.txt +src/globus_provision.egg-info/not-zip-safe +src/globus_provision.egg-info/requires.txt +src/globus_provision.egg-info/top_level.txt +test/test_cli.py +test/test_mt.py \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/dependency_links.txt 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1 @@ + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/entry_points.txt 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,16 @@ +[console_scripts] +gp-ec2-create-ami = globus.provision.cli.ec2:gp_ec2_create_ami_func +gp-instance-add-user = globus.provision.cli.api:gp_instance_add_user_func +gp-go-register-endpoints = globus.provision.cli.globusonline:gp_go_register_endpoints_func +gp-instance-remove-hosts = globus.provision.cli.api:gp_instance_remove_hosts_func +gp-instance-add-host = globus.provision.cli.api:gp_instance_add_host_func +gp-instance-remove-users = globus.provision.cli.api:gp_instance_remove_users_func +gp-instance-create = globus.provision.cli.api:gp_instance_create_func +gp-instance-describe = globus.provision.cli.api:gp_instance_describe_func +gp-instance-list = globus.provision.cli.api:gp_instance_list_func +gp-instance-update = globus.provision.cli.api:gp_instance_update_func +gp-instance-start = globus.provision.cli.api:gp_instance_start_func +gp-ec2-update-ami = globus.provision.cli.ec2:gp_ec2_update_ami_func +gp-instance-terminate = globus.provision.cli.api:gp_instance_terminate_func +gp-instance-stop = globus.provision.cli.api:gp_instance_stop_func + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/not-zip-safe 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1 @@ + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/requires.txt 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +boto>=2.0 +paramiko>=1.7.7.1 +colorama>=0.2.4 +pyOpenSSL>=0.10 +globusonline-transfer-api-client>=0.10.7 \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/EGG-INFO/top_level.txt 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1 @@ +globus Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,15 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,29 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Globus Provision is a tool for deploying fully-configured Globus systems on Amazon EC2 + +See http://globus.org/provision/ for more details +""" + +VERSION="0.3" +RELEASE="0.3.2" +AMI={"us-east-1": + {"32-bit": "ami-4f35f826", + "64-bit": "ami-375d905e", + "HVM": "ami-0b5d9062"} + } Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/README.md 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,8 @@ +Globus Provision Chef Cookbooks +=============================== + +These are the `Chef `_ cookbooks for the +`Globus Provision `_ project. These cookbooks +are not meant to be used on their own. Please refer to the Globus Provision +documentation for instructions on how to deploy and configure a Globus +system using these cookbooks. \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/README.md 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,109 @@ +Description +=========== + +Configures various APT components on Debian-like systems. Also includes a LWRP. + +Recipes +======= + +default +------- +The default recipe runs apt-get update during the Compile Phase of the Chef run to ensure that the system's package cache is updated with the latest. It is recommended that this recipe appear first in a node's run list (directly or through a role) to ensure that when installing packages, Chef will be able to download the latest version available on the remote APT repository. + +This recipe also sets up a local cache directory for preseeding packages. + +cacher +------ +Installs the apt-cacher package and service so the system can provide APT caching. You can check the usage report at http://{hostname}:3142/report. The cacher recipe includes the `cacher-client` recipe, so it helps seed itself. + +cacher-client +------------- +Configures the node to use the apt-cacher server as a client. + +Resources/Providers +=================== + +This LWRP provides an easy way to manage additional APT repositories. + +# Actions + +- :add: creates a repository file and builds the repository listing +- :remove: removes the repository file + +# Attribute Parameters + +- repo_name: name attribute. The name of the channel to discover +- uri: the base of the Debian distribution +- distribution: this is usually your release's codename...ie something like `karmic`, `lucid` or `maverick` +- components: package groupings..when it doubt use `main` +- deb_src: whether or not to add the repository as a source repo as well +- key_server: the GPG keyserver where the key for the repo should be retrieved +- key: if a `key_server` is provided, this is assumed to be the fingerprint, otherwise it is the URI to the GPG key for the repo + +# Example + + # add the Zenoss repo + apt_repository "zenoss" do + uri "http://dev.zenoss.org/deb" + components ["main","stable"] + action :add + end + + # add the Nginx PPA; grab key from keyserver + apt_repository "nginx-php" do + uri "http://ppa.launchpad.net/nginx/php5/ubuntu" + distribution node['lsb']['codename'] + components ["main"] + keyserver "keyserver.ubuntu.com" + key "C300EE8C" + action :add + end + + # add the Cloudkick Repo + apt_repository "cloudkick" do + uri "http://packages.cloudkick.com/ubuntu" + distribution node['lsb']['codename'] + components ["main"] + key "http://packages.cloudkick.com/cloudkick.packages.key" + action :add + end + + # remove Zenoss repo + apt_repository "zenoss" do + action :remove + end + +Usage +===== + +Put `recipe[apt]` first in the run list. If you have other recipes that you want to use to configure how apt behaves, like new sources, notify the execute resource to run, e.g.: + + template "/etc/apt/sources.list.d/my_apt_sources.list" do + notifies :run, resources(:execute => "apt-get update"), :immediately + end + +The above will run during execution phase since it is a normal template resource, and should appear before other package resources that need the sources in the template. + +Put `recipe[apt::cacher]` in the run_list for a server to provide APT caching and add `recipe[apt::cacher-client]` on the rest of the Debian-based nodes to take advantage of the caching server. + +License and Author +================== + +Author:: Joshua Timberman () +Author:: Matt Ray () +Author:: Seth Chisamore () + +Copyright 2009-2011 Opscode, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/TODO.org 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,3 @@ +* remove proxy from /etc/apt/apt.conf if it's listed (from preseed install) +* check contents of /etc/apt/apt.conf.d/01proxy +* investigate apt-cacher-ng Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,9 @@ +# apt-cacher startup configuration file + +# IMPORTANT: check the apt-cacher.conf file before using apt-cacher as daemon. + +# set to 1 to start the daemon at boot time +AUTOSTART=1 + +# extra settings to override the ones in apt-cacher.conf +# EXTRAOPT=" daemon_port=3142 limit=30 " Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-cacher.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,144 @@ +# This file has been modified by ./apt-proxy-to-apt-cacher +# Some lines may have been appended at the bottom of this file +# This file has been modified by /usr/share/apt-cacher/apt-proxy-to-apt-cacher +# Some lines may have been appended at the bottom of this file +################################################################# +# This is the config file for apt-cacher. On most Debian systems +# you can safely leave the defaults alone. +################################################################# + +# cache_dir is used to set the location of the local cache. This can +# become quite large, so make sure it is somewhere with plenty of space. +cache_dir=/var/cache/apt-cacher + +# The email address of the administrator is displayed in the info page +# and traffic reports. +admin_email=root at localhost + +# For the daemon startup settings please edit the file /etc/default/apt-cacher. + +# Daemon port setting, only useful in stand-alone mode. You need to run the +# daemon as root to use privileged ports (<1024). +daemon_port = 3142 + +# optional settings, user and group to run the daemon as. Make sure they have +# sufficient permissions on the cache and log directories. Comment the settings +# to run apt-cacher as the native user. +group=www-data +user=www-data + +# optional setting, binds the listening daemon to one specified IP. Use IP +# ranges for more advanced configuration, see below. +# daemon_addr=localhost + +# If your apt-cacher machine is directly exposed to the Internet and you are +# worried about unauthorised machines fetching packages through it, you can +# specify a list of IPv4 addresses which are allowed to use it and another +# list of IPv4 addresses which aren't. +# Localhost (127.0.0.1) is always allowed. Other addresses must be matched +# by allowed_hosts and not by denied_hosts to be permitted to use the cache. +# Setting allowed_hosts to "*" means "allow all". +# Otherwise the format is a comma-separated list containing addresses, +# optionally with masks (like 10.0.0.0/22), or ranges of addresses (two +# addresses separated by a hyphen, no masks, like '192.168.0.3-192.168.0.56'). +allowed_hosts=* +denied_hosts= + +# And similiarly for IPv6 with allowed_hosts_6 and denied_hosts_6. +# Note that IPv4-mapped IPv6 addresses (::ffff:w.x.y.z) are truncated to +# w.x.y.z and are handled as IPv4. +allowed_hosts_6=fec0::/16 +denied_hosts_6= + +# This thing can be done by Apache but is much simplier here - limit access to +# Debian mirrors based on server names in the URLs +#allowed_locations=ftp.uni-kl.de,ftp.nerim.net,debian.tu-bs.de + +# Apt-cacher can generate usage reports every 24 hours if you set this +# directive to 1. You can view the reports in a web browser by pointing +# to your cache machine with '/apt-cacher/report' on the end, like this: +# http://yourcache.example.com/apt-cacher/report +# Generating reports is very fast even with many thousands of logfile +# lines, so you can safely turn this on without creating much +# additional system load. +generate_reports=1 + +# Apt-cacher can clean up its cache directory every 24 hours if you set +# this directive to 1. Cleaning the cache can take some time to run +# (generally in the order of a few minutes) and removes all package +# files that are not mentioned in any existing 'Packages' lists. This +# has the effect of deleting packages that have been superseded by an +# updated 'Packages' list. +clean_cache=1 + +# The directory to use for apt-cacher access and error logs. +# The access log records every request in the format: +# date-time|client ip address|HIT/MISS/EXPIRED|object size|object name +# The error log is slightly more free-form, and is also used for debug +# messages if debug mode is turned on. +# Note that the old 'logfile' and 'errorfile' directives are +# deprecated: if you set them explicitly they will be honoured, but it's +# better to just get rid of them from old config files. +logdir=/var/log/apt-cacher + +# apt-cacher can use different methods to decide whether package lists need to +# be updated, +# A) looking at the age of the cached files +# B) getting HTTP header from server and comparing that with cached data. This +# method is more reliable and avoids desynchronisation of data and index files +# but needs to transfer few bytes from the server every time somebody requests +# the files ("apt-get update") +# Set the following value to the maximum age (in hours) for method A or to 0 +# for method B +expire_hours=0 + +# Apt-cacher can pass all its requests to an external http proxy like +# Squid, which could be very useful if you are using an ISP that blocks +# port 80 and requires all web traffic to go through its proxy. The +# format is 'hostname:port', eg: 'proxy.example.com:8080'. +http_proxy=proxy.example.com:8080 + +# Use of an external proxy can be turned on or off with this flag. +# Value should be either 0 (off) or 1 (on). +use_proxy=0 + +# External http proxy sometimes need authentication to get full access. The +# format is 'username:password'. +http_proxy_auth=proxyuser:proxypass + +# Use of external proxy authentication can be turned on or off with this flag. +# Value should be either 0 (off) or 1 (on). +use_proxy_auth=0 + +# Rate limiting sets the maximum bandwidth in bytes per second to use +# for fetching packages. Syntax is fully defined in 'man wget'. +# Use 'k' or 'm' to use kilobits or megabits / second: eg, 'limit=25k'. +# Use 0 or a negative value for no rate limiting. +limit=0 + +# Debug mode makes apt-cacher spew a lot of extra debug junk to the +# error log (whose location is defined with the 'logdir' directive). +# Leave this off unless you need it, or your error log will get very +# big. Acceptable values are 0 or 1. +debug=0 + +# Adapt the line in the usage info web page to match your server configuration +# example_sources_line=deb http://my.cacher.server:3142/ftp.au.debian.org/debian unstable main contrib non-free + +# Print a 410 (Gone) HTTP message with the specified text when accessed via +# CGI. Useful to tell users to adapt their sources.list files when the +# apt-cacher server is beeing relocated (via apt-get's error messages while +# running "update") +#cgi_advise_to_use = Please use http://cacheserver:3142/ as apt-cacher access URL +#cgi_advise_to_use = Server relocated. To change sources.list, run perl -pe "s,/apt-cacher\??,:3142," -i /etc/apt/sources.list + +# Server mapping - this allows to hide real server names behind virtual paths +# that appear in the access URL. This method is known from apt-proxy. This is +# also the only method to use FTP access to the target hosts. The syntax is simple, the part of the beginning to replace, followed by a list of mirror urls, all space separated. Multiple profile are separated by semicolons +# path_map = debian ftp.uni-kl.de/pub/linux/debian ftp2.de.debian.org/debian ; ubuntu archive.ubuntu.com/ubuntu ; security security.debian.org/debian-security ftp2.de.debian.org/debian-security +# Note that you need to specify all target servers in the allowed_locations +# options if you make use of it. Also note that the paths should not overlap +# each other. FTP access method not supported yet, maybe in the future. + +# extra setting from apt-proxy configuration +path_map = ubuntu us.archive.ubuntu.com/ubuntu ; ubuntu-security security.ubuntu.com/ubuntu ; debian debian.osuosl.org/debian/ ; security security.debian.org/debian-security Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/files/default/apt-proxy-v2.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,50 @@ +[DEFAULT] +;; All times are in seconds, but you can add a suffix +;; for minutes(m), hours(h) or days(d) + +;; commented out address so apt-proxy will listen on all IPs +;; address = 127.0.0.1 +port = 9999 +cache_dir = /var/cache/apt-proxy + +;; Control files (Packages/Sources/Contents) refresh rate +min_refresh_delay = 1s +complete_clientless_downloads = 1 + +;; Debugging settings. +debug = all:4 db:0 + +time = 30 +passive_ftp = on + +;;-------------------------------------------------------------- +;; Cache housekeeping + +cleanup_freq = 1d +max_age = 120d +max_versions = 3 + +;;--------------------------------------------------------------- +;; Backend servers +;; +;; Place each server in its own [section] + +[ubuntu] +; Ubuntu archive +backends = + http://us.archive.ubuntu.com/ubuntu + +[ubuntu-security] +; Ubuntu security updates +backends = http://security.ubuntu.com/ubuntu + +[debian] +;; Backend servers, in order of preference +backends = + http://debian.osuosl.org/debian/ + +[security] +;; Debian security archive +backends = + http://security.debian.org/debian-security + http://ftp2.de.debian.org/debian-security Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.json 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,34 @@ +{ + "dependencies": { + }, + "name": "apt", + "maintainer_email": "cookbooks at opscode.com", + "attributes": { + }, + "license": "Apache 2.0", + "suggestions": { + }, + "platforms": { + "debian": ">= 0.0.0", + "ubuntu": ">= 0.0.0" + }, + "maintainer": "Opscode, Inc.", + "long_description": "Description\n===========\n\nConfigures various APT components on Debian-like systems. Also includes a LWRP.\n\nRecipes\n=======\n\ndefault\n-------\nThe default recipe runs apt-get update during the Compile Phase of the Chef run to ensure that the system's package cache is updated with the latest. It is recommended that this recipe appear first in a node's run list (directly or through a role) to ensure that when installing packages, Chef will be able to download the latest version available on the remote APT repository.\n\nThis recipe also sets up a local cache directory for preseeding packages.\n\ncacher\n------\nInstalls the apt-cacher package and service so the system can provide APT caching. You can check the usage report at http://{hostname}:3142/report. The cacher recipe includes the `cacher-client` recipe, so it helps seed itself.\n\ncacher-client\n-------------\nConfigures the node to use the apt-cacher server as a client.\n\nResources/Provid ers\n===================\n\nThis LWRP provides an easy way to manage additional APT repositories.\n\n# Actions\n\n- :add: creates a repository file and builds the repository listing\n- :remove: removes the repository file\n\n# Attribute Parameters\n\n- repo_name: name attribute. The name of the channel to discover\n- uri: the base of the Debian distribution\n- distribution: this is usually your release's codename...ie something like `karmic`, `lucid` or `maverick`\n- components: package groupings..when it doubt use `main`\n- deb_src: whether or not to add the repository as a source repo as well\n- key_server: the GPG keyserver where the key for the repo should be retrieved\n- key: if a `key_server` is provided, this is assumed to be the fingerprint, otherwise it is the URI to the GPG key for the repo\n\n# Example\n\n # add the Zenoss repo\n apt_repository \"zenoss\" do\n uri \"http://dev.zenoss.org/deb\"\n components [\"main\",\"stable\"]\n action :add\n end\n \n # add the Nginx PPA; grab key from keyserver\n apt_repository \"nginx-php\" do\n uri \"http://ppa.launchpad.net/nginx/php5/ubuntu\"\n distribution node['lsb']['codename']\n components [\"main\"]\n keyserver \"keyserver.ubuntu.com\"\n key \"C300EE8C\"\n action :add\n end\n \n # add the Cloudkick Repo\n apt_repository \"cloudkick\" do\n uri \"http://packages.cloudkick.com/ubuntu\"\n distribution node['lsb']['codename']\n components [\"main\"]\n key \"http://packages.cloudkick.com/cloudkick.packages.key\"\n action :add\n end\n \n # remove Zenoss repo\n apt_repository \"zenoss\" do\n action :remove\n end\n \nUsage\n=====\n\nPut `recipe[apt]` first in the run list. If you have other recipes that you want to use to configure how apt behaves, like new sources, notify the execute resource to run, e.g.:\n\n template \"/etc/apt/sources.list.d/my_apt_sources.list\" do\n notifies :run, resources(:execute => \"apt-get update\"), :immediately\n end\n\nThe above will run during execution phase since it is a normal template resource, and should appear before other package resources that need the sources in the template.\n\nPut `recipe[apt::cacher]` in the run_list for a server to provide APT caching and add `recipe[apt::cacher-client]` on the rest of the Debian-based nodes to take advantage of the caching server.\n\nLicense and Author\n==================\n\nAuthor:: Joshua Timberman ()\nAuthor:: Matt Ray ()\nAuthor:: Seth Chisamore ()\n\nCopyright 2009-2011 Opscode, Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n", + "version": "1.1.2", + "recommendations": { + }, + "recipes": { + "apt": "Runs apt-get update during compile phase and sets up preseed directories", + "apt::cacher-client": "Client for the apt::cacher server", + "apt::cacher": "Set up an APT cache" + }, + "groupings": { + }, + "conflicting": { + }, + "replacing": { + }, + "description": "Configures apt and apt services and an LWRP for managing apt repositories", + "providing": { + } +} \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,13 @@ +maintainer "Opscode, Inc." +maintainer_email "cookbooks at opscode.com" +license "Apache 2.0" +description "Configures apt and apt services and an LWRP for managing apt repositories" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version "1.1.2" +recipe "apt", "Runs apt-get update during compile phase and sets up preseed directories" +recipe "apt::cacher", "Set up an APT cache" +recipe "apt::cacher-client", "Client for the apt::cacher server" + +%w{ ubuntu debian }.each do |os| + supports os +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/providers/repository.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,72 @@ +# +# Cookbook Name:: apt +# Provider:: repository +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +action :add do + unless ::File.exists?("/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list") + Chef::Log.info "Adding #{new_resource.repo_name} repository to /etc/apt/sources.list.d/#{new_resource.repo_name}-source.list" + # add key + if new_resource.keyserver && new_resource.key + execute "install-key #{new_resource.key}" do + command "apt-key adv --keyserver #{new_resource.keyserver} --recv #{new_resource.key}" + action :nothing + end.run_action(:run) + elsif new_resource.key && (new_resource.key =~ /http/) + key_name = new_resource.key.split(/\//).last + remote_file "#{Chef::Config[:file_cache_path]}/#{key_name}" do + source new_resource.key + mode "0644" + action :nothing + end.run_action(:create_if_missing) + execute "install-key #{key_name}" do + command "apt-key add #{Chef::Config[:file_cache_path]}/#{key_name}" + action :nothing + end.run_action(:run) + end + # build our listing + repository = "deb" + repository = "deb-src" if new_resource.deb_src + repository = "# Created by the Chef apt_repository LWRP\n" + repository + repository += " #{new_resource.uri}" + repository += " #{new_resource.distribution}" + new_resource.components.each {|component| repository += " #{component}"} + # write out the file, replace it if it already exists + file "/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list" do + owner "root" + group "root" + mode 0644 + content repository + "\n" + action :nothing + end.run_action(:create) + execute "update package index" do + command "apt-get update" + action :nothing + end.run_action(:run) + new_resource.updated_by_last_action(true) + end +end + +action :remove do + if ::File.exists?("/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list") + Chef::Log.info "Removing #{new_resource.repo_name} repository from /etc/apt/sources.list.d/" + file "/etc/apt/sources.list.d/#{new_resource.repo_name}-source.list" do + action :delete + end + new_resource.updated_by_last_action(true) + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher-client.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,44 @@ +# +# Cookbook Name:: apt +# Recipe:: cacher-client +# +# Copyright 2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +#remove Acquire::http::Proxy lines from /etc/apt/apt.conf since we use 01proxy +#these are leftover from preseed installs +execute "Remove proxy from /etc/apt/apt.conf" do + command "sed --in-place '/^Acquire::http::Proxy/d' /etc/apt/apt.conf" + only_if "grep Acquire::http::Proxy /etc/apt/apt.conf" +end + +servers = search(:node, 'recipes:apt\:\:cacher') || [] +if servers.length > 0 + Chef::Log.info("apt-cacher server found on #{servers[0]}.") + proxy = "Acquire::http::Proxy \"http://#{servers[0].ipaddress}:3142\";\n" + file "/etc/apt/apt.conf.d/01proxy" do + owner "root" + group "root" + mode "0644" + content proxy + action :create + end +else + Chef::Log.info("No apt-cacher server found.") + file "/etc/apt/apt.conf.d/01proxy" do + action :delete + only_if {File.exists?("/etc/apt/apt.conf.d/01proxy")} + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/cacher.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,45 @@ +# +# Cookbook Name:: apt +# Recipe:: cacher +# +# Copyright 2008-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +package "apt-cacher" do + action :install +end + +service "apt-cacher" do + supports :restart => true, :status => false + action [ :enable, :start ] +end + +cookbook_file "/etc/apt-cacher/apt-cacher.conf" do + source "apt-cacher.conf" + owner "root" + group "root" + mode 0644 + notifies :restart, resources(:service => "apt-cacher") +end + +cookbook_file "/etc/default/apt-cacher" do + source "apt-cacher" + owner "root" + group "root" + mode 0644 + notifies :restart, resources(:service => "apt-cacher") +end + +#this will help seed the proxy +include_recipe "apt::cacher-client" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,33 @@ +# +# Cookbook Name:: apt +# Recipe:: default +# +# Copyright 2008-2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +e = execute "apt-get update" do + action :nothing +end + +e.run_action(:run) + +%w{/var/cache/local /var/cache/local/preseeding}.each do |dirname| + directory dirname do + owner "root" + group "root" + mode 0755 + action :create + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/apt/resources/repository.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,30 @@ +# +# Cookbook Name:: apt +# Resource:: repository +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +actions :add, :remove + +#name of the repo, used for source.list filename +attribute :repo_name, :kind_of => String, :name_attribute => true +attribute :uri, :kind_of => String +attribute :distribution, :kind_of => String +attribute :components, :kind_of => Array, :default => [] +#whether or not to add the repository as a source repo as well +attribute :deb_src, :default => false +attribute :keyserver, :kind_of => String, :default => nil +attribute :key, :kind_of => String, :default => nil Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/README.rdoc 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/files/default/condor-dir.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,9 @@ +description "Create Condor run directory" + +start on filesystem + +task +script + mkdir -p /var/run/condor + chown condor.condor /var/run/condor +end script Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures condor" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,54 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Condor common actions +## +## This recipe is a dependency of ``condor_head`` and ``condor_worker``, which will set +## up a Condor head node or worker node. This recipe handles all the actions +## that are common to both. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +case node.platform +when "ubuntu" + + cookbook_file "/etc/init/condor-dir.conf" do + source "condor-dir.conf" + mode 0644 + owner "root" + group "root" + end + +end + +apt_repository "condor" do + uri "http://www.cs.wisc.edu/condor/debian/stable/" + distribution "lenny" + components ["contrib"] + action :add +end + +package "condor" do + action :install + options "--force-yes" +end + +execute "update-rc.d condor defaults" do + user "root" + group "root" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_head.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Condor head node +## +## Set up a Condor head node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] + +# The "condor" recipe handles actions that are common to +# both head and worker nodes. +include_recipe "condor::condor" + + +# The lrm_head attribute is part of the generated topology.rb file, +# and contains the FQDN of the head node. +server = gp_domain[:lrm_head] + + +# Domain (used by Condor for authorization). +# This should eventually be included in the topology. +domain = server[server.index(".")+1, server.length] + + +# Create the local configuration file. +template "/etc/condor/condor_config.local" do + source "condor_config.erb" + mode 0644 + owner "condor" + group "condor" + variables( + :server => server, + :domain => domain, + :daemons => "COLLECTOR, MASTER, NEGOTIATOR, SCHEDD" + ) + notifies :restart, "service[condor]" +end + +service "condor" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/condor_worker.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,57 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Condor worker node +## +## Set up a Condor worker node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] + +# The "condor" recipe handles actions that are common to +# both head and worker nodes. +include_recipe "condor::condor" + + +# The lrm_head attribute is part of the generated topology.rb file, +# and contains the FQDN of the head node. +server = gp_domain[:lrm_head] + + +# Domain (used by Condor for authorization). +# This should eventually be included in the topology. +domain = server[server.index(".")+1, server.length] + + +# Create the local configuration file. +template "/etc/condor/condor_config.local" do + source "condor_config.erb" + mode 0644 + owner "condor" + group "condor" + variables( + :server => server, + :domain => domain, + :daemons => "MASTER, STARTD" + ) + notifies :restart, "service[condor]" +end + +service "condor" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# RECIPE: Default recipe. +# +# This cookbook has no default recipe. +# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/condor/templates/default/condor_config.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,49 @@ +## What machine is your central manager? + +CONDOR_HOST = <%= @server %> + + +## Internet domain of machines sharing a common UID space. + +UID_DOMAIN = <%= @domain %> + + +## Internet domain of machines sharing a common file system. + +FILESYSTEM_DOMAIN = <%= @domain %> + + +## Pool's short description + +COLLECTOR_NAME = DemoGrid Condor Pool + + +## When is this machine willing to start a job? + +START = TRUE + + +## When to suspend a job? + +SUSPEND = FALSE + + +## When to nicely stop a job? +## (as opposed to killing it instantaneously) + +PREEMPT = FALSE + + +## When to instantaneously kill a preempting job +## (e.g. if a job is in the pre-empting stage for too long) + +KILL = FALSE + + +## This macro determines what daemons the condor_master will start and keep its watchful eyes on. +## The list is a comma or space separated list of subsystem names + +DAEMON_LIST = <%= @daemons %> + +ALLOW_READ = *.<%= @domain %>, 127.0.* +ALLOW_WRITE = *.<%= @domain %>, 127.0.* Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/README.rdoc 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy-setup.sh 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,46 @@ +#!/bin/sh + +cd `dirname $0` + +python ./scripts/check_python.py +[ $? -ne 0 ] && exit 1 + +SAMPLES=" + external_service_types_conf.xml.sample + datatypes_conf.xml.sample + reports_wsgi.ini.sample + tool_conf.xml.sample + tool_data_table_conf.xml.sample + universe_wsgi.ini.sample + tool-data/shared/ucsc/builds.txt.sample + tool-data/*.sample + static/welcome.html.sample +" + +# Create any missing config/location files +for sample in $SAMPLES; do + file=`echo $sample | sed -e 's/\.sample$//'` + if [ ! -f "$file" -a -f "$sample" ]; then + echo "Initializing $file from `basename $sample`" + cp $sample $file + fi +done + +# explicitly attempt to fetch eggs before running +FETCH_EGGS=1 +for arg in "$@"; do + [ "$arg" = "--stop-daemon" ] && FETCH_EGGS=0; break +done +if [ $FETCH_EGGS -eq 1 ]; then + python ./scripts/check_eggs.py quiet + if [ $? -ne 0 ]; then + echo "Some eggs are out of date, attempting to fetch..." + python ./scripts/fetch_eggs.py + if [ $? -eq 0 ]; then + echo "Fetch successful." + else + echo "Fetch failed." + exit 1 + fi + fi +fi Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/galaxy.init 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,55 @@ +#!/bin/bash + +# Author: James Casbon, 2009 + +### BEGIN INIT INFO +# Provides: galaxy +# Required-Start: $network $local_fs $mysql +# Required-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Galaxy +### END INIT INFO + +. /lib/lsb/init-functions + +USER="galaxy" +GROUP="galaxy" +DIR="/nfs/software/galaxy/" +PYTHON="/usr/bin/python" +OPTS="-ES ./scripts/paster.py serve --log-file /nfs/home/galaxy/galaxy.log universe_wsgi.ini" +PIDFILE="/var/run/galaxy.pid" + +case "${1:-''}" in + 'start') + log_daemon_msg "Starting Galaxy" + if start-stop-daemon --chuid $USER --group $GROUP --start --make-pidfile \ + --pidfile $PIDFILE --background --chdir $DIR --exec $PYTHON -- $OPTS; then + log_end_msg 0 + else + log_end_msg 1 + fi + + ;; + 'stop') + log_daemon_msg "Stopping Galaxy" + if start-stop-daemon --stop --pidfile $PIDFILE; then + log_end_msg 0 + else + log_end_msg 1 + fi + ;; + 'restart') + # restart commands here + $0 stop + $0 start + + ;; + *) # no parameter specified + echo "Usage: $SELF start|stop|restart|reload|force-reload|status" + exit 1 + ;; +esac + + + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi-globus.ini 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,574 @@ +# +# Galaxy is configured by default to be useable in a single-user development +# environment. To tune the application for a multi-user production +# environment, see the documentation at: +# +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ProductionServer +# + +# Throughout this sample configuration file, except where stated otherwise, +# uncommented values override the default if left unset, whereas commented +# values are set to the default value. +# examples of many of these options are explained in more detail in the wiki: +# +# Config hackers are encouraged to check there before asking for help. + +# ---- HTTP Server ---------------------------------------------------------- + +# Configuration of the internal HTTP server. + +[server:main] + +# The internal HTTP server to use. Currently only Paste is provided. This +# option is required. +use = egg:Paste#http + +# The port on which to listen. +#port = 8080 + +# The address on which to listen. By default, only listen to localhost (Galaxy +# will not be accessible over the network). Use '0.0.0.0' to listen on all +# available network interfaces. +host = 0.0.0.0 + +# Use a threadpool for the web server instead of creating a thread for each +# request. +use_threadpool = True + +# Number of threads in the web server thread pool. +#threadpool_workers = 10 + +# ---- Filters -------------------------------------------------------------- + +# Filters sit between Galaxy and the HTTP server. + +# These filters are disabled by default. They can be enabled with +# 'filter-with' in the [app:main] section below. + +# Define the gzip filter. +[filter:gzip] +use = egg:Paste#gzip + +# Define the proxy-prefix filter. +[filter:proxy-prefix] +use = egg:PasteDeploy#prefix +prefix = /galaxy + +# ---- Galaxy --------------------------------------------------------------- + +# Configuration of the Galaxy application. + +[app:main] + +# -- Application and filtering + +# The factory for the WSGI application. This should not be changed. +paste.app_factory = galaxy.web.buildapp:app_factory + +# If not running behind a proxy server, you may want to enable gzip compression +# to decrease the size of data transferred over the network. If using a proxy +# server, please enable gzip compression there instead. +#filter-with = gzip + +# If running behind a proxy server and Galaxy is served from a subdirectory, +# enable the proxy-prefix filter and set the prefix in the +# [filter:proxy-prefix] section above. +#filter-with = proxy-prefix + +# If proxy-prefix is enabled and you're running more than one Galaxy instance +# behind one hostname, you will want to set this to the same path as the prefix +# in the filter above. This value becomes the "path" attribute set in the +# cookie so the cookies from each instance will not clobber each other. +#cookie_path = None + +# -- Database + +# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You +# may use a SQLAlchemy connection string to specify an external database +# instead. This string takes many options which are explained in detail in the +# config file documentation. +#database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE + +# If the server logs errors about not having enough database pool connections, +# you will want to increase these values, or consider running more Galaxy +# processes. +#database_engine_option_pool_size = 5 +#database_engine_option_max_overflow = 10 + +# If using MySQL and the server logs the error "MySQL server has gone away", +# you will want to set this to some positive value (7200 should work). +#database_engine_option_pool_recycle = -1 + +# If large database query results are causing memory or response time issues in +# the Galaxy process, leave the result on the server instead. This option is +# only available for PostgreSQL and is highly recommended. +#database_engine_option_server_side_cursors = False + +# Create only one connection to the database per thread, to reduce the +# connection overhead. Recommended when not using SQLite: +#database_engine_option_strategy = threadlocal + +# Log all database transactions, can be useful for debugging and performance +# profiling. Logging is done via Python's 'logging' module under the qualname +# 'galaxy.model.orm.logging_connection_proxy' +#database_query_profiling_proxy = False + +# -- Files and directories + +# Dataset files are stored in this directory. +#file_path = database/files + +# Temporary files are stored in this directory. +#new_file_path = database/tmp + +# Tool config file, defines what tools are available in Galaxy. +#tool_config_file = tool_conf.xml + +# Path to the directory containing the tools defined in the config. +#tool_path = tools + +# Directory where data used by tools is located, see the samples in that +# directory and the wiki for help: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataIntegration +#tool_data_path = tool-data + +# Directory where chrom len files are kept, currently mainly used by trackster +#len_file_path = tool-data/shared/ucsc/chrom + + +# Datatypes config file, defines what data (file) types are available in +# Galaxy. +#datatypes_config_file = datatypes_conf.xml + +# Each job is given a unique empty directory as its current working directory. +# This option defines in what parent directory those directories will be +# created. +#job_working_directory = database/job_working_directory + +# If using a cluster, Galaxy will write job scripts and stdout/stderr to this +# directory. +#cluster_files_directory = database/pbs + +# External service types config file, defines what types of external_services configurations +# are available in Galaxy. +#external_service_type_config_file = external_service_types_conf.xml + +# Path to the directory containing the external_service_types defined in the config. +#external_service_type_path = external_service_types + +# -- Mail and notification + +# Galaxy sends mail for various things: Subscribing users to the mailing list +# if they request it, emailing password resets, notification from the Galaxy +# Sample Tracking system, and reporting dataset errors. To do this, it needs +# to send mail through an SMTP server, which you may define here. +#smtp_server = None + +# On the user registration form, users may choose to join the mailing list. +# This is the address of the list they'll be subscribed to. +#mailing_join_addr = galaxy-user-join at bx.psu.edu + +# Datasets in an error state include a link to report the error. Those reports +# will be sent to this address. Error reports are disabled if no address is set. +#error_email_to = None + +# -- Display sites + +# Galaxy can display data at various external browsers. These options specify +# which browsers should be available. URLs and builds available at these +# browsers are defined in the specifield files. + +# UCSC browsers: tool-data/shared/ucsc/ucsc_build_sites.txt +#ucsc_display_sites = main,test,archaea,ucla + +# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt +#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly,yeast_sgd + +# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt +#genetrack_display_sites = main,test + +# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code. + +use_nglims = False +nglims_config_file = tool-data/nglims.yaml + +# -- UI Localization + +# Append "/{brand}" to the "Galaxy" text in the masthead. +#brand = None + +# The URL linked by the "Galaxy/brand" text. +#logo_url = / + +# The URL linked by the "Galaxy Wiki" link in the "Help" menu. +#wiki_url = http://bitbucket.org/galaxy/galaxy-central/wiki + +# The URL linked by the "Email comments..." link in the "Help" menu. +#bugs_email = mailto:galaxy-bugs at bx.psu.edu + +# The URL linked by the "How to Cite..." link in the "Help" menu. +#citation_url = http://bitbucket.org/galaxy/galaxy-central/wiki/Citations + +# Serve static content, which must be enabled if you're not serving it via a +# proxy server. These options should be self explanatory and so are not +# documented individually. You can use these paths (or ones in the proxy +# server) to point to your own styles. +static_enabled = True +static_cache_time = 360 +static_dir = %(here)s/static/ +static_images_dir = %(here)s/static/images +static_favicon_dir = %(here)s/static/favicon.ico +static_scripts_dir = %(here)s/static/scripts/ +static_style_dir = %(here)s/static/june_2007_style/blue + +# -- Advanced proxy features + +# For help on configuring the Advanced proxy features, see: +# http://usegalaxy.org/production + +# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set +# this to True to inform Galaxy that mod_xsendfile is enabled upstream. +#apache_xsendfile = False + +# The same download handling can be done by nginx using X-Accel-Redirect. This +# should be set to the path defined in the nginx config as an internal redirect +# with access to Galaxy's data files (see documentation linked above). +#nginx_x_accel_redirect_base = False + +# nginx can make use of mod_zip to create zip files containing multiple library +# files. If using X-Accel-Redirect, this can be the same value as that option. +#nginx_x_archive_files_base = False + +# If using compression in the upstream proxy server, use this option to disable +# gzipping of library .tar.gz and .zip archives, since the proxy server will do +# it faster on the fly. +#upstream_gzip = False + +# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. +# Configuration for this is complex and explained in detail in the +# documentation linked above. The upload store is a temporary directory in +# which files uploaded by the upload module will be placed. +#nginx_upload_store = False + +# This value overrides the action set on the file upload form, e.g. the web +# path where the nginx_upload_module has been configured to intercept upload +# requests. +#nginx_upload_path = False + +# -- Logging and Debugging + +# Verbosity of console log messages. Acceptable values can be found here: +# http://docs.python.org/library/logging.html#logging-levels +#log_level = DEBUG + +# Print database operations to the server log (warning, quite verbose!). +#database_engine_option_echo = False + +# Print database pool operations to the server log (warning, quite verbose!). +#database_engine_option_echo_pool = False + +# Turn on logging of application events and some user events to the database. +#log_events = True + +# Turn on logging of user actions to the database. Actions currently logged are +# grid views, tool searches, and use of "recently" used tools menu. The +# log_events and log_actions functionality will eventually be merged. +#log_actions = True + +# Debug enables access to various config options useful for development and +# debugging: use_lint, use_profile, use_printdebug and use_interactive. It +# also causes the files used by PBS/SGE (submission script, output, and error) +# to remain on disk after the job is complete. Debug mode is disabled if +# commented, but is uncommented by default in the sample config. +debug = True + +# Check for WSGI compliance. +#use_lint = False + +# Run the Python profiler on each request. +#use_profile = False + +# Intercept print statements and show them on the returned page. +#use_printdebug = True + +# Enable live debugging in your browser. This should NEVER be enabled on a +# public site. Enabled in the sample config for development. +use_interactive = True + +# Write thread status periodically to 'heartbeat.log', (careful, uses disk +# space rapidly!). Useful to determine why your processes may be consuming a +# lot of CPU. +#use_heartbeat = False + +# Enable the memory debugging interface (careful, negatively impacts server +# performance). +#use_memdump = False + +# -- Data Libraries + +# These library upload options are described in much more detail in the wiki: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataLibraries/UploadingFiles + +# Add an option to the library upload form which allows administrators to +# upload a directory of files. +library_import_dir = True + +# Add an option to the library upload form which allows authorized +# non-administrators to upload a directory of files. The configured directory +# must contain sub-directories named the same as the non-admin user's Galaxy +# login ( email ). The non-admin user is restricted to uploading files or +# sub-directories of files contained in their directory. +#user_library_import_dir = None + +# Add an option to the admin library upload tool allowing admins to paste +# filesystem paths to files and directories in a box, and these paths will be +# added to a library. Set to True to enable. Please note the security +# implication that this will give Galaxy Admins access to anything your Galaxy +# user has access to. +allow_library_path_paste = True + +# Users may choose to download multiple files from a library in an archive. By +# default, Galaxy allows users to select from a few different archive formats +# if testing shows that Galaxy is able to create files using these formats. +# Specific formats can be disabled with this option, separate more than one +# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. +#disable_library_comptypes = + +# Some sequencer integration features in beta allow you to automatically +# transfer datasets. This is done using a lightweight transfer manager which +# runs outside of Galaxy (but is spawned by it automatically). Galaxy will +# communicate with this manager over the port specified here. +#transfer_manager_port = 8163 + +# Search data libraries with whoosh +#enable_whoosh_library_search = True +# Whoosh indexes are stored in this directory. +#whoosh_index_dir = database/whoosh_indexes + +# Search data libraries with lucene +#enable_lucene_library_search = False +# maxiumum file size to index for searching, in MB +#fulltext_max_size = 500 +#fulltext_noindex_filetypes=bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger +# base URL of server providing search functionality using lucene +#fulltext_url = http://localhost:8081 + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +#id_secret = USING THE DEFAULT IS NOT SECURE! + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ApacheProxy +#use_remote_user = False + +# If use_remote_user is enabled and your external authentication +# method just returns bare usernames, set a default mail domain to be appended +# to usernames, to become your Galaxy usernames (email addresses). +#remote_user_maildomain = None + +# If use_remote_user is enabled, you can set this to a URL that will log your +# users out. +#remote_user_logout_href = None + +# Administrative users - set this to a comma-separated list of valid Galaxy +# users (email addresses). These users will have access to the Admin section +# of the server, and will have access to create users, groups, roles, +# libraries, and more. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Admin/AdminInterface +admin_users = steder at ci.uchicago.edu,borja at cs.uchicago.edu,madduri at mcs.anl.gov,ballen at ci.uchicago.edu + +# Force everyone to log in (disable anonymous access). +#require_login = False + +# Allow unregistered users to create new accounts (otherwise, they will have to +# be created by an admin). +#allow_user_creation = True + +# Allow administrators to delete accounts. +#allow_user_deletion = False + +# By default, users' data will be public, but setting this to True will cause +# it to be private. Does not affect existing users and data, only ones created +# after this option is set. Users may still change their default back to +# public. +#new_user_dataset_access_role_default_private = False + +# -- Beta features + +# Enable Galaxy to communicate directly with a sequencer +#enable_sequencer_communication = False + +# Enable Galaxy's built-in visualization module, Trackster. +#enable_tracks = False + +# Enable Galaxy Pages. Pages are custom webpages that include embedded Galaxy items, +# such as datasets, histories, workflows, and visualizations; pages are useful for +# documenting and sharing multiple analyses or workflows. Pages are created using a +# WYSIWYG editor that is very similar to a word processor. +#enable_pages = False + +# Enable authentication via OpenID. Allows users to log in to their Galaxy +# account by authenticating with an OpenID provider. +enable_openid = True + +# Enable the (experimental! beta!) Web API. Documentation forthcoming. +#enable_api = False + +# Enable Galaxy's "Upload via FTP" interface. You'll need to install and +# configure an FTP server (we've used ProFTPd since it can use Galaxy's +# database for authentication) and set the following two options. + +# This should point to a directory containing subdirectories matching users' +# email addresses, where Galaxy will look for files. +ftp_upload_dir = /nfs/scratch + +# this value changes how the user_ftp_dir is determined: +# - normally it is set by doing os.path.join(ftp_upload_dir, user.email) +# - with globus we want to do os.path.join(ftp_upload_dir, user.username) +globus_online = True + +# The endpoint to use when doing globus transfers onto the galaxy machine: +globus_endpoint = "borja#galaxy" + +# home directory root: +# normally this is /home +# As a hack I'm looking for credential files in a users home directory +home_root = /nfs/home + +# globus cert settings: +# globus expects the user home directory to contain a user key and user cert: +globus_userkey = .globus/userkey.pem +globus_usercert = .globus/usercert.pem +# you also need to specify the path to your root certificate: +globus_rootcert = /etc/grid-security/certificates/d1b603c3.0 + +# When we want to transfer files back with globus online we symbolicly +# link those datasets from galaxy's home dir into something readable +# by globus. +# +globus_scratch = /nfs/scratch + +# This should be the hostname of your FTP server, which will be provided to +# users in the help text. +ftp_upload_site = "go://borja#galaxy3" + +# -- Job Execution + +# If running multiple Galaxy processes, one can be designated as the job +# runner. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/WebApplicationScaling +#enable_job_running = True + +# Should jobs be tracked through the database, rather than in memory. +# Necessary if you're running the load balanced setup. +#track_jobs_in_database = False + +# This enables splitting of jobs into tasks, if specified by the particular tool config. +# This is a new feature and not recommended for production servers yet. +#use_tasked_jobs = False +#local_task_queue_workers = 2 + +# Enable job recovery (if Galaxy is restarted while cluster jobs are running, +# it can "recover" them when it starts). This is not safe to use if you are +# running more than one Galaxy server using the same database. +#enable_job_recovery = True + +# Setting metadata on job outputs to in a separate process (or if using a +# cluster, on the cluster). Thanks to Python's Global Interpreter Lock and the +# hefty expense that setting metadata incurs, your Galaxy process may become +# unresponsive when this operation occurs internally. +#set_metadata_externally = False + +# Although it is fairly reliable, setting metadata can occasionally fail. In +# these instances, you can choose to retry setting it internally or leave it in +# a failed state (since retrying internally may cause the Galaxy process to be +# unresponsive). If this option is set to False, the user will be given the +# option to retry externally, or set metadata manually (when possible). +#retry_metadata_internally = True + +# If (for example) you run on a cluster and your datasets (by default, +# database/files/) are mounted read-only, this option will override tool output +# paths to write outputs to the working directory instead, and the job manager +# will move the outputs to their proper place in the dataset directory on the +# Galaxy server after the job completes. +#outputs_to_working_directory = False + +# Number of concurrent jobs to run (local job runner) +#local_job_queue_workers = 5 + +# Jobs can be killed after a certain amount of execution time. Format is in +# hh:mm:ss. Currently only implemented for PBS. +#job_walltime = None + +# Jobs can be killed if any of their outputs grow over a certain size (in +# bytes). 0 for no limit. +#output_size_limit = 0 + +# Clustering Galaxy is not a straightforward process and requires some +# pre-configuration. See the the wiki before attempting to set any of these +# options: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/Cluster + +# Comma-separated list of job runners to start. local is always started. If +# left commented, no jobs will be run on the cluster, even if a cluster URL is +# explicitly defined in the [galaxy:tool_runners] section below. The runners +# currently available are 'pbs' and 'drmaa'. +#start_job_runners = None + +# The URL for the default runner to use when a tool doesn't explicitly define a +# runner below. +#default_cluster_job_runner = local:/// + +# The cluster runners have their own thread pools used to prepare and finish +# jobs (so that these sometimes lengthy operations do not block normal queue +# operation). The value here is the number of worker threads available to each +# started runner. +#cluster_job_queue_workers = 3 + +# These options are only used when using file staging with PBS. +#pbs_application_server = +#pbs_stage_path = +#pbs_dataset_server = + +# ---- Tool Job Runners ----------------------------------------------------- + +# Individual per-tool job runner overrides. If not listed here, a tool will +# run with the runner defined with default_cluster_job_runner. + +[galaxy:tool_runners] + +biomart = local:/// +encode_db1 = local:/// +hbvar = local:/// +microbial_import1 = local:/// +ucsc_table_direct1 = local:/// +ucsc_table_direct_archaea1 = local:/// +ucsc_table_direct_test1 = local:/// +upload1 = local:/// + +# ---- Galaxy Message Queue ------------------------------------------------- + +# Galaxy uses AMQ protocol to receive messages from external sources like +# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation. +# For Galaxy to receive messages from a message queue the RabbitMQ server has +# to be set up with a user account and other parameters listed below. The 'host' +# and 'port' fields should point to where the RabbitMQ server is running. + +[galaxy_amqp] + +#host = 127.0.0.1 +#port = 5672 +#userid = galaxy +#password = galaxy +#virtual_host = galaxy_messaging_engine +#queue = galaxy_queue +#exchange = galaxy_exchange +#routing_key = bar_code_scanner +#rabbitmqctl_path = /path/to/rabbitmqctl \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/files/default/universe_wsgi.ini 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,548 @@ +# +# Galaxy is configured by default to be useable in a single-user development +# environment. To tune the application for a multi-user production +# environment, see the documentation at: +# +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ProductionServer +# + +# Throughout this sample configuration file, except where stated otherwise, +# uncommented values override the default if left unset, whereas commented +# values are set to the default value. +# examples of many of these options are explained in more detail in the wiki: +# +# Config hackers are encouraged to check there before asking for help. + +# ---- HTTP Server ---------------------------------------------------------- + +# Configuration of the internal HTTP server. + +[server:main] + +# The internal HTTP server to use. Currently only Paste is provided. This +# option is required. +use = egg:Paste#http + +# The port on which to listen. +#port = 8080 + +# The address on which to listen. By default, only listen to localhost (Galaxy +# will not be accessible over the network). Use '0.0.0.0' to listen on all +# available network interfaces. +host = 0.0.0.0 + +# Use a threadpool for the web server instead of creating a thread for each +# request. +use_threadpool = True + +# Number of threads in the web server thread pool. +#threadpool_workers = 10 + +# ---- Filters -------------------------------------------------------------- + +# Filters sit between Galaxy and the HTTP server. + +# These filters are disabled by default. They can be enabled with +# 'filter-with' in the [app:main] section below. + +# Define the gzip filter. +[filter:gzip] +use = egg:Paste#gzip + +# Define the proxy-prefix filter. +[filter:proxy-prefix] +use = egg:PasteDeploy#prefix +prefix = /galaxy + +# ---- Galaxy --------------------------------------------------------------- + +# Configuration of the Galaxy application. + +[app:main] + +# -- Application and filtering + +# The factory for the WSGI application. This should not be changed. +paste.app_factory = galaxy.web.buildapp:app_factory + +# If not running behind a proxy server, you may want to enable gzip compression +# to decrease the size of data transferred over the network. If using a proxy +# server, please enable gzip compression there instead. +#filter-with = gzip + +# If running behind a proxy server and Galaxy is served from a subdirectory, +# enable the proxy-prefix filter and set the prefix in the +# [filter:proxy-prefix] section above. +#filter-with = proxy-prefix + +# If proxy-prefix is enabled and you're running more than one Galaxy instance +# behind one hostname, you will want to set this to the same path as the prefix +# in the filter above. This value becomes the "path" attribute set in the +# cookie so the cookies from each instance will not clobber each other. +#cookie_path = None + +# -- Database + +# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You +# may use a SQLAlchemy connection string to specify an external database +# instead. This string takes many options which are explained in detail in the +# config file documentation. +#database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE + +# If the server logs errors about not having enough database pool connections, +# you will want to increase these values, or consider running more Galaxy +# processes. +#database_engine_option_pool_size = 5 +#database_engine_option_max_overflow = 10 + +# If using MySQL and the server logs the error "MySQL server has gone away", +# you will want to set this to some positive value (7200 should work). +#database_engine_option_pool_recycle = -1 + +# If large database query results are causing memory or response time issues in +# the Galaxy process, leave the result on the server instead. This option is +# only available for PostgreSQL and is highly recommended. +#database_engine_option_server_side_cursors = False + +# Create only one connection to the database per thread, to reduce the +# connection overhead. Recommended when not using SQLite: +#database_engine_option_strategy = threadlocal + +# Log all database transactions, can be useful for debugging and performance +# profiling. Logging is done via Python's 'logging' module under the qualname +# 'galaxy.model.orm.logging_connection_proxy' +#database_query_profiling_proxy = False + +# -- Files and directories + +# Dataset files are stored in this directory. +#file_path = database/files + +# Temporary files are stored in this directory. +#new_file_path = database/tmp + +# Tool config file, defines what tools are available in Galaxy. +#tool_config_file = tool_conf.xml + +# Path to the directory containing the tools defined in the config. +#tool_path = tools + +# Directory where data used by tools is located, see the samples in that +# directory and the wiki for help: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataIntegration +#tool_data_path = tool-data + +# Directory where chrom len files are kept, currently mainly used by trackster +#len_file_path = tool-data/shared/ucsc/chrom + + +# Datatypes config file, defines what data (file) types are available in +# Galaxy. +#datatypes_config_file = datatypes_conf.xml + +# Each job is given a unique empty directory as its current working directory. +# This option defines in what parent directory those directories will be +# created. +#job_working_directory = database/job_working_directory + +# If using a cluster, Galaxy will write job scripts and stdout/stderr to this +# directory. +#cluster_files_directory = database/pbs + +# External service types config file, defines what types of external_services configurations +# are available in Galaxy. +#external_service_type_config_file = external_service_types_conf.xml + +# Path to the directory containing the external_service_types defined in the config. +#external_service_type_path = external_service_types + +# -- Mail and notification + +# Galaxy sends mail for various things: Subscribing users to the mailing list +# if they request it, emailing password resets, notification from the Galaxy +# Sample Tracking system, and reporting dataset errors. To do this, it needs +# to send mail through an SMTP server, which you may define here. +#smtp_server = None + +# On the user registration form, users may choose to join the mailing list. +# This is the address of the list they'll be subscribed to. +#mailing_join_addr = galaxy-user-join at bx.psu.edu + +# Datasets in an error state include a link to report the error. Those reports +# will be sent to this address. Error reports are disabled if no address is set. +#error_email_to = None + +# -- Display sites + +# Galaxy can display data at various external browsers. These options specify +# which browsers should be available. URLs and builds available at these +# browsers are defined in the specifield files. + +# UCSC browsers: tool-data/shared/ucsc/ucsc_build_sites.txt +#ucsc_display_sites = main,test,archaea,ucla + +# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt +#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly + +# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt +#genetrack_display_sites = main,test + +# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code. + +use_nglims = False +nglims_config_file = tool-data/nglims.yaml + +# -- UI Localization + +# Append "/{brand}" to the "Galaxy" text in the masthead. +#brand = None + +# The URL linked by the "Galaxy/brand" text. +#logo_url = / + +# The URL linked by the "Galaxy Wiki" link in the "Help" menu. +#wiki_url = http://bitbucket.org/galaxy/galaxy-central/wiki + +# The URL linked by the "Email comments..." link in the "Help" menu. +#bugs_email = mailto:galaxy-bugs at bx.psu.edu + +# The URL linked by the "How to Cite..." link in the "Help" menu. +#citation_url = http://bitbucket.org/galaxy/galaxy-central/wiki/Citations + +# Serve static content, which must be enabled if you're not serving it via a +# proxy server. These options should be self explanatory and so are not +# documented individually. You can use these paths (or ones in the proxy +# server) to point to your own styles. +static_enabled = True +static_cache_time = 360 +static_dir = %(here)s/static/ +static_images_dir = %(here)s/static/images +static_favicon_dir = %(here)s/static/favicon.ico +static_scripts_dir = %(here)s/static/scripts/ +static_style_dir = %(here)s/static/june_2007_style/blue + +# -- Advanced proxy features + +# For help on configuring the Advanced proxy features, see: +# http://usegalaxy.org/production + +# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set +# this to True to inform Galaxy that mod_xsendfile is enabled upstream. +#apache_xsendfile = False + +# The same download handling can be done by nginx using X-Accel-Redirect. This +# should be set to the path defined in the nginx config as an internal redirect +# with access to Galaxy's data files (see documentation linked above). +#nginx_x_accel_redirect_base = False + +# nginx can make use of mod_zip to create zip files containing multiple library +# files. If using X-Accel-Redirect, this can be the same value as that option. +#nginx_x_archive_files_base = False + +# If using compression in the upstream proxy server, use this option to disable +# gzipping of library .tar.gz and .zip archives, since the proxy server will do +# it faster on the fly. +#upstream_gzip = False + +# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. +# Configuration for this is complex and explained in detail in the +# documentation linked above. The upload store is a temporary directory in +# which files uploaded by the upload module will be placed. +#nginx_upload_store = False + +# This value overrides the action set on the file upload form, e.g. the web +# path where the nginx_upload_module has been configured to intercept upload +# requests. +#nginx_upload_path = False + +# -- Logging and Debugging + +# Verbosity of console log messages. Acceptable values can be found here: +# http://docs.python.org/library/logging.html#logging-levels +#log_level = DEBUG + +# Print database operations to the server log (warning, quite verbose!). +#database_engine_option_echo = False + +# Print database pool operations to the server log (warning, quite verbose!). +#database_engine_option_echo_pool = False + +# Turn on logging of application events and some user events to the database. +#log_events = True + +# Turn on logging of user actions to the database. Actions currently logged are +# grid views, tool searches, and use of "recently" used tools menu. The +# log_events and log_actions functionality will eventually be merged. +#log_actions = True + +# Debug enables access to various config options useful for development and +# debugging: use_lint, use_profile, use_printdebug and use_interactive. It +# also causes the files used by PBS/SGE (submission script, output, and error) +# to remain on disk after the job is complete. Debug mode is disabled if +# commented, but is uncommented by default in the sample config. +debug = True + +# Check for WSGI compliance. +#use_lint = False + +# Run the Python profiler on each request. +#use_profile = False + +# Intercept print statements and show them on the returned page. +#use_printdebug = True + +# Enable live debugging in your browser. This should NEVER be enabled on a +# public site. Enabled in the sample config for development. +use_interactive = True + +# Write thread status periodically to 'heartbeat.log', (careful, uses disk +# space rapidly!). Useful to determine why your processes may be consuming a +# lot of CPU. +#use_heartbeat = False + +# Enable the memory debugging interface (careful, negatively impacts server +# performance). +#use_memdump = False + +# -- Data Libraries + +# These library upload options are described in much more detail in the wiki: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataLibraries/UploadingFiles + +# Add an option to the library upload form which allows administrators to +# upload a directory of files. +#library_import_dir = None + +# Add an option to the library upload form which allows authorized +# non-administrators to upload a directory of files. The configured directory +# must contain sub-directories named the same as the non-admin user's Galaxy +# login ( email ). The non-admin user is restricted to uploading files or +# sub-directories of files contained in their directory. +#user_library_import_dir = None + +# Add an option to the admin library upload tool allowing admins to paste +# filesystem paths to files and directories in a box, and these paths will be +# added to a library. Set to True to enable. Please note the security +# implication that this will give Galaxy Admins access to anything your Galaxy +# user has access to. +#allow_library_path_paste = False + +# Users may choose to download multiple files from a library in an archive. By +# default, Galaxy allows users to select from a few different archive formats +# if testing shows that Galaxy is able to create files using these formats. +# Specific formats can be disabled with this option, separate more than one +# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. +#disable_library_comptypes = + +# Some sequencer integration features in beta allow you to automatically +# transfer datasets. This is done using a lightweight transfer manager which +# runs outside of Galaxy (but is spawned by it automatically). Galaxy will +# communicate with this manager over the port specified here. +#transfer_manager_port = 8163 + +# Search data libraries with whoosh +#enable_whoosh_library_search = True +# Whoosh indexes are stored in this directory. +#whoosh_index_dir = database/whoosh_indexes + +# Search data libraries with lucene +#enable_lucene_library_search = False +# maxiumum file size to index for searching, in MB +#fulltext_max_size = 500 +#fulltext_noindex_filetypes=bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger +# base URL of server providing search functionality using lucene +#fulltext_url = http://localhost:8081 + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +#id_secret = USING THE DEFAULT IS NOT SECURE! + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ApacheProxy +#use_remote_user = False + +# If use_remote_user is enabled and your external authentication +# method just returns bare usernames, set a default mail domain to be appended +# to usernames, to become your Galaxy usernames (email addresses). +#remote_user_maildomain = None + +# If use_remote_user is enabled, you can set this to a URL that will log your +# users out. +#remote_user_logout_href = None + +# Administrative users - set this to a comma-separated list of valid Galaxy +# users (email addresses). These users will have access to the Admin section +# of the server, and will have access to create users, groups, roles, +# libraries, and more. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Admin/AdminInterface +#admin_users = None + +# Force everyone to log in (disable anonymous access). +#require_login = False + +# Allow unregistered users to create new accounts (otherwise, they will have to +# be created by an admin). +#allow_user_creation = True + +# Allow administrators to delete accounts. +#allow_user_deletion = False + +# By default, users' data will be public, but setting this to True will cause +# it to be private. Does not affect existing users and data, only ones created +# after this option is set. Users may still change their default back to +# public. +#new_user_dataset_access_role_default_private = False + +# -- Beta features + +# Enable Galaxy to communicate directly with a sequencer +#enable_sequencer_communication = False + +# Enable Galaxy's built-in visualization module, Trackster. +#enable_tracks = False + +# Enable Galaxy Pages. Pages are custom webpages that include embedded Galaxy items, +# such as datasets, histories, workflows, and visualizations; pages are useful for +# documenting and sharing multiple analyses or workflows. Pages are created using a +# WYSIWYG editor that is very similar to a word processor. +#enable_pages = False + +# Enable authentication via OpenID. Allows users to log in to their Galaxy +# account by authenticating with an OpenID provider. +#enable_openid = False + +# Enable the (experimental! beta!) Web API. Documentation forthcoming. +#enable_api = False + +# Enable Galaxy's "Upload via FTP" interface. You'll need to install and +# configure an FTP server (we've used ProFTPd since it can use Galaxy's +# database for authentication) and set the following two options. + +# This should point to a directory containing subdirectories matching users' +# email addresses, where Galaxy will look for files. +#ftp_upload_dir = None + +# This should be the hostname of your FTP server, which will be provided to +# users in the help text. +#ftp_upload_site = None + +# -- Job Execution + +# If running multiple Galaxy processes, one can be designated as the job +# runner. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/WebApplicationScaling +#enable_job_running = True + +# Should jobs be tracked through the database, rather than in memory. +# Necessary if you're running the load balanced setup. +#track_jobs_in_database = False + +# This enables splitting of jobs into tasks, if specified by the particular tool config. +# This is a new feature and not recommended for production servers yet. +#use_tasked_jobs = False +#local_task_queue_workers = 2 + +# Enable job recovery (if Galaxy is restarted while cluster jobs are running, +# it can "recover" them when it starts). This is not safe to use if you are +# running more than one Galaxy server using the same database. +#enable_job_recovery = True + +# Setting metadata on job outputs to in a separate process (or if using a +# cluster, on the cluster). Thanks to Python's Global Interpreter Lock and the +# hefty expense that setting metadata incurs, your Galaxy process may become +# unresponsive when this operation occurs internally. +#set_metadata_externally = False + +# Although it is fairly reliable, setting metadata can occasionally fail. In +# these instances, you can choose to retry setting it internally or leave it in +# a failed state (since retrying internally may cause the Galaxy process to be +# unresponsive). If this option is set to False, the user will be given the +# option to retry externally, or set metadata manually (when possible). +#retry_metadata_internally = True + +# If (for example) you run on a cluster and your datasets (by default, +# database/files/) are mounted read-only, this option will override tool output +# paths to write outputs to the working directory instead, and the job manager +# will move the outputs to their proper place in the dataset directory on the +# Galaxy server after the job completes. +#outputs_to_working_directory = False + +# Number of concurrent jobs to run (local job runner) +#local_job_queue_workers = 5 + +# Jobs can be killed after a certain amount of execution time. Format is in +# hh:mm:ss. Currently only implemented for PBS. +#job_walltime = None + +# Jobs can be killed if any of their outputs grow over a certain size (in +# bytes). 0 for no limit. +#output_size_limit = 0 + +# Clustering Galaxy is not a straightforward process and requires some +# pre-configuration. See the the wiki before attempting to set any of these +# options: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/Cluster + +# Comma-separated list of job runners to start. local is always started. If +# left commented, no jobs will be run on the cluster, even if a cluster URL is +# explicitly defined in the [galaxy:tool_runners] section below. The runners +# currently available are 'pbs' and 'drmaa'. +#start_job_runners = None + +# The URL for the default runner to use when a tool doesn't explicitly define a +# runner below. +#default_cluster_job_runner = local:/// + +# The cluster runners have their own thread pools used to prepare and finish +# jobs (so that these sometimes lengthy operations do not block normal queue +# operation). The value here is the number of worker threads available to each +# started runner. +#cluster_job_queue_workers = 3 + +# These options are only used when using file staging with PBS. +#pbs_application_server = +#pbs_stage_path = +#pbs_dataset_server = + +# ---- Tool Job Runners ----------------------------------------------------- + +# Individual per-tool job runner overrides. If not listed here, a tool will +# run with the runner defined with default_cluster_job_runner. + +[galaxy:tool_runners] + +biomart = local:/// +encode_db1 = local:/// +hbvar = local:/// +microbial_import1 = local:/// +ucsc_table_direct1 = local:/// +ucsc_table_direct_archaea1 = local:/// +ucsc_table_direct_test1 = local:/// +upload1 = local:/// + +# ---- Galaxy Message Queue ------------------------------------------------- + +# Galaxy uses AMQ protocol to receive messages from external sources like +# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation. +# For Galaxy to receive messages from a message queue the RabbitMQ server has +# to be set up with a user account and other parameters listed below. The 'host' +# and 'port' fields should point to where the RabbitMQ server is running. + +[galaxy_amqp] + +#host = 127.0.0.1 +#port = 5672 +#userid = galaxy +#password = galaxy +#virtual_host = galaxy_messaging_engine +#queue = galaxy_queue +#exchange = galaxy_exchange +#routing_key = bar_code_scanner +#rabbitmqctl_path = /path/to/rabbitmqctl Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures galaxy" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/blast-nfsserver.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,45 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +if ! File.exists?(node[:blast][:dir]) + + directory "#{node[:blast][:dir]}" do + owner "root" + group "root" + mode "0755" + action :create + end + + remote_file "#{node[:scratch_dir]}/blast.tar.gz" do + source "http://mirrors.vbi.vt.edu/mirrors/ftp.ncbi.nih.gov/blast/executables/blast+/2.2.25/ncbi-blast-2.2.25+-ia32-linux.tar.gz" + owner "root" + group "root" + mode "0644" + end + + execute "tar" do + user "root" + group "root" + command "tar xzf #{node[:scratch_dir]}/blast.tar.gz --strip-components=1 --directory #{node[:blast][:dir]}" + action :run + end + + link "/nfs/software/bin/blastp" do + to "#{node[:blast][:dir]}/bin/blastp" + end + +end + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,8 @@ +# +# Cookbook Name:: galaxy +# Recipe:: default +# +# Copyright 2011, YOUR_COMPANY_NAME +# +# All rights reserved - Do Not Redistribute +# Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus-common.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,112 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Galaxy (Globus fork) common actions +## +## This recipe performs common actions required when installing the Globus +## fork of Galaxy. If Galaxy is being installed on a domain with NFS/NIS, +## this recipe must be run on the NFS/NIS server, and the galaxy-globus +## recipe can be run on another node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +go_endpoints = gp_domain[:go_endpoints].to_a + +if go_endpoints.size > 0 + go_endpoint = go_endpoints[0] + go_endpoint = "#{go_endpoint[:user]}##{go_endpoint[:name]}" +else + go_endpoint = "" +end + +if gp_domain[:nfs_server] + homedirs = "/nfs/home" +else + homedirs = "/home" +end + +group "galaxy" do + gid 4000 +end + +user "galaxy" do + comment "Galaxy User" + uid 4000 + gid 4000 + home "#{homedirs}/galaxy" + password "!" + shell "/bin/bash" + supports :manage_home => true + notifies :run, "execute[ypinit]" +end + +# We need to run this for changes to take effect in the NIS server. +execute "ypinit" do + only_if do gp_domain[:nis_server] end + user "root" + group "root" + command "make -C /var/yp" + action :nothing +end + +if ! File.exists?(node[:galaxy][:dir]) + + directory "#{node[:galaxy][:dir]}" do + owner "galaxy" + group "galaxy" + mode "0755" + action :create + end + + remote_file "#{node[:scratch_dir]}/galaxy-dist.tip.tar.bz2" do + source "https://bitbucket.org/steder/galaxy-globus/get/tip.tar.bz2" + owner "root" + group "root" + mode "0644" + end + + execute "tar" do + user "galaxy" + group "galaxy" + command "tar xjf #{node[:scratch_dir]}/galaxy-dist.tip.tar.bz2 --strip-components=1 --directory #{node[:galaxy][:dir]}" + action :run + end + + cookbook_file "#{node[:galaxy][:dir]}/galaxy-setup.sh" do + source "galaxy-setup.sh" + owner "galaxy" + group "galaxy" + mode "0755" + end + + template "#{node[:galaxy][:dir]}/universe_wsgi.ini" do + source "galaxy-universe.erb" + mode 0644 + owner "galaxy" + group "galaxy" + variables( + :db_connect => "postgres:///galaxy?user=galaxy&password=galaxy&host=/var/run/postgresql", + :go_endpoint => go_endpoint + ) + end + +end + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/recipes/galaxy-globus.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,107 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Galaxy (Globus fork) server +## +## This installs the Globus fork of Galaxy. +## If Galaxy is being installed on a domain with NFS/NIS, you must have applied +## the galaxy-globus-common recipe to the NFS/NIS server. If you are running +## a standalone Galaxy server, you will need to apply galaxy-globus-common and +## galaxy-globus on the same node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "postgresql::server" + +database_exists = "psql galaxy postgres -c ''" + +# Create postgresql user + +execute "createuser" do + user "postgres" + command "createuser -D -S -R galaxy" + action :run + not_if database_exists +end + +execute "createdb" do + user "postgres" + command "createdb galaxy" + action :run + not_if database_exists +end + +execute "alter_user" do + user "postgres" + command "psql -c \"alter user galaxy with encrypted password 'galaxy';\"" + action :run + not_if database_exists +end + +execute "grant_all" do + user "postgres" + command "psql -c \"grant all privileges on database galaxy to galaxy;\"" + action :run + not_if database_exists +end + +case node.platform + when "ubuntu" + if node.platform_version.to_f >= 11.04 + package "python2.6" + execute "update-alternatives" do + python_version = `python -c "import sys; print sys.version_info[0] * 10 + sys.version_info[1]"`.to_f + only_if do python_version > 26 end + user "root" + command "update-alternatives --install /usr/bin/python python /usr/bin/python2.6 10" + action :run + end + end +end + +execute "galaxy-setup.sh" do + user "galaxy" + group "galaxy" + cwd node[:galaxy][:dir] + command "./galaxy-setup.sh" + action :run +end + +# Add init script +cookbook_file "/etc/init.d/galaxy" do + source "galaxy.init" + owner "root" + group "root" + mode "0755" + notifies :run, "execute[update-rc.d]" +end + +execute "update-rc.d" do + user "root" + group "root" + command "update-rc.d galaxy defaults" + action :nothing +end + +execute "galaxy_restart" do + user "root" + group "root" + command "/etc/init.d/galaxy restart" + action :run + environment ({'PATH' => "/nfs/software/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"}) +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/galaxy/templates/default/galaxy-universe.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,574 @@ +# +# Galaxy is configured by default to be useable in a single-user development +# environment. To tune the application for a multi-user production +# environment, see the documentation at: +# +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ProductionServer +# + +# Throughout this sample configuration file, except where stated otherwise, +# uncommented values override the default if left unset, whereas commented +# values are set to the default value. +# examples of many of these options are explained in more detail in the wiki: +# +# Config hackers are encouraged to check there before asking for help. + +# ---- HTTP Server ---------------------------------------------------------- + +# Configuration of the internal HTTP server. + +[server:main] + +# The internal HTTP server to use. Currently only Paste is provided. This +# option is required. +use = egg:Paste#http + +# The port on which to listen. +#port = 8080 + +# The address on which to listen. By default, only listen to localhost (Galaxy +# will not be accessible over the network). Use '0.0.0.0' to listen on all +# available network interfaces. +host = 0.0.0.0 + +# Use a threadpool for the web server instead of creating a thread for each +# request. +use_threadpool = True + +# Number of threads in the web server thread pool. +#threadpool_workers = 10 + +# ---- Filters -------------------------------------------------------------- + +# Filters sit between Galaxy and the HTTP server. + +# These filters are disabled by default. They can be enabled with +# 'filter-with' in the [app:main] section below. + +# Define the gzip filter. +[filter:gzip] +use = egg:Paste#gzip + +# Define the proxy-prefix filter. +[filter:proxy-prefix] +use = egg:PasteDeploy#prefix +prefix = /galaxy + +# ---- Galaxy --------------------------------------------------------------- + +# Configuration of the Galaxy application. + +[app:main] + +# -- Application and filtering + +# The factory for the WSGI application. This should not be changed. +paste.app_factory = galaxy.web.buildapp:app_factory + +# If not running behind a proxy server, you may want to enable gzip compression +# to decrease the size of data transferred over the network. If using a proxy +# server, please enable gzip compression there instead. +#filter-with = gzip + +# If running behind a proxy server and Galaxy is served from a subdirectory, +# enable the proxy-prefix filter and set the prefix in the +# [filter:proxy-prefix] section above. +#filter-with = proxy-prefix + +# If proxy-prefix is enabled and you're running more than one Galaxy instance +# behind one hostname, you will want to set this to the same path as the prefix +# in the filter above. This value becomes the "path" attribute set in the +# cookie so the cookies from each instance will not clobber each other. +#cookie_path = None + +# -- Database + +# By default, Galaxy uses a SQLite database at 'database/universe.sqlite'. You +# may use a SQLAlchemy connection string to specify an external database +# instead. This string takes many options which are explained in detail in the +# config file documentation. +database_connection = <%=@db_connect%> + +# If the server logs errors about not having enough database pool connections, +# you will want to increase these values, or consider running more Galaxy +# processes. +#database_engine_option_pool_size = 5 +#database_engine_option_max_overflow = 10 + +# If using MySQL and the server logs the error "MySQL server has gone away", +# you will want to set this to some positive value (7200 should work). +#database_engine_option_pool_recycle = -1 + +# If large database query results are causing memory or response time issues in +# the Galaxy process, leave the result on the server instead. This option is +# only available for PostgreSQL and is highly recommended. +#database_engine_option_server_side_cursors = False + +# Create only one connection to the database per thread, to reduce the +# connection overhead. Recommended when not using SQLite: +#database_engine_option_strategy = threadlocal + +# Log all database transactions, can be useful for debugging and performance +# profiling. Logging is done via Python's 'logging' module under the qualname +# 'galaxy.model.orm.logging_connection_proxy' +#database_query_profiling_proxy = False + +# -- Files and directories + +# Dataset files are stored in this directory. +#file_path = database/files + +# Temporary files are stored in this directory. +#new_file_path = database/tmp + +# Tool config file, defines what tools are available in Galaxy. +#tool_config_file = tool_conf.xml + +# Path to the directory containing the tools defined in the config. +#tool_path = tools + +# Directory where data used by tools is located, see the samples in that +# directory and the wiki for help: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataIntegration +#tool_data_path = tool-data + +# Directory where chrom len files are kept, currently mainly used by trackster +#len_file_path = tool-data/shared/ucsc/chrom + + +# Datatypes config file, defines what data (file) types are available in +# Galaxy. +#datatypes_config_file = datatypes_conf.xml + +# Each job is given a unique empty directory as its current working directory. +# This option defines in what parent directory those directories will be +# created. +#job_working_directory = database/job_working_directory + +# If using a cluster, Galaxy will write job scripts and stdout/stderr to this +# directory. +#cluster_files_directory = database/pbs + +# External service types config file, defines what types of external_services configurations +# are available in Galaxy. +#external_service_type_config_file = external_service_types_conf.xml + +# Path to the directory containing the external_service_types defined in the config. +#external_service_type_path = external_service_types + +# -- Mail and notification + +# Galaxy sends mail for various things: Subscribing users to the mailing list +# if they request it, emailing password resets, notification from the Galaxy +# Sample Tracking system, and reporting dataset errors. To do this, it needs +# to send mail through an SMTP server, which you may define here. +#smtp_server = None + +# On the user registration form, users may choose to join the mailing list. +# This is the address of the list they'll be subscribed to. +#mailing_join_addr = galaxy-user-join at bx.psu.edu + +# Datasets in an error state include a link to report the error. Those reports +# will be sent to this address. Error reports are disabled if no address is set. +#error_email_to = None + +# -- Display sites + +# Galaxy can display data at various external browsers. These options specify +# which browsers should be available. URLs and builds available at these +# browsers are defined in the specifield files. + +# UCSC browsers: tool-data/shared/ucsc/ucsc_build_sites.txt +#ucsc_display_sites = main,test,archaea,ucla + +# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt +#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly,yeast_sgd + +# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt +#genetrack_display_sites = main,test + +# -- Next gen LIMS interface on top of existing Galaxy Sample/Request management code. + +use_nglims = False +nglims_config_file = tool-data/nglims.yaml + +# -- UI Localization + +# Append "/{brand}" to the "Galaxy" text in the masthead. +#brand = None + +# The URL linked by the "Galaxy/brand" text. +#logo_url = / + +# The URL linked by the "Galaxy Wiki" link in the "Help" menu. +#wiki_url = http://bitbucket.org/galaxy/galaxy-central/wiki + +# The URL linked by the "Email comments..." link in the "Help" menu. +#bugs_email = mailto:galaxy-bugs at bx.psu.edu + +# The URL linked by the "How to Cite..." link in the "Help" menu. +#citation_url = http://bitbucket.org/galaxy/galaxy-central/wiki/Citations + +# Serve static content, which must be enabled if you're not serving it via a +# proxy server. These options should be self explanatory and so are not +# documented individually. You can use these paths (or ones in the proxy +# server) to point to your own styles. +static_enabled = True +static_cache_time = 360 +static_dir = %(here)s/static/ +static_images_dir = %(here)s/static/images +static_favicon_dir = %(here)s/static/favicon.ico +static_scripts_dir = %(here)s/static/scripts/ +static_style_dir = %(here)s/static/june_2007_style/blue + +# -- Advanced proxy features + +# For help on configuring the Advanced proxy features, see: +# http://usegalaxy.org/production + +# Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set +# this to True to inform Galaxy that mod_xsendfile is enabled upstream. +#apache_xsendfile = False + +# The same download handling can be done by nginx using X-Accel-Redirect. This +# should be set to the path defined in the nginx config as an internal redirect +# with access to Galaxy's data files (see documentation linked above). +#nginx_x_accel_redirect_base = False + +# nginx can make use of mod_zip to create zip files containing multiple library +# files. If using X-Accel-Redirect, this can be the same value as that option. +#nginx_x_archive_files_base = False + +# If using compression in the upstream proxy server, use this option to disable +# gzipping of library .tar.gz and .zip archives, since the proxy server will do +# it faster on the fly. +#upstream_gzip = False + +# nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. +# Configuration for this is complex and explained in detail in the +# documentation linked above. The upload store is a temporary directory in +# which files uploaded by the upload module will be placed. +#nginx_upload_store = False + +# This value overrides the action set on the file upload form, e.g. the web +# path where the nginx_upload_module has been configured to intercept upload +# requests. +#nginx_upload_path = False + +# -- Logging and Debugging + +# Verbosity of console log messages. Acceptable values can be found here: +# http://docs.python.org/library/logging.html#logging-levels +#log_level = DEBUG + +# Print database operations to the server log (warning, quite verbose!). +#database_engine_option_echo = False + +# Print database pool operations to the server log (warning, quite verbose!). +#database_engine_option_echo_pool = False + +# Turn on logging of application events and some user events to the database. +#log_events = True + +# Turn on logging of user actions to the database. Actions currently logged are +# grid views, tool searches, and use of "recently" used tools menu. The +# log_events and log_actions functionality will eventually be merged. +#log_actions = True + +# Debug enables access to various config options useful for development and +# debugging: use_lint, use_profile, use_printdebug and use_interactive. It +# also causes the files used by PBS/SGE (submission script, output, and error) +# to remain on disk after the job is complete. Debug mode is disabled if +# commented, but is uncommented by default in the sample config. +debug = True + +# Check for WSGI compliance. +#use_lint = False + +# Run the Python profiler on each request. +#use_profile = False + +# Intercept print statements and show them on the returned page. +#use_printdebug = True + +# Enable live debugging in your browser. This should NEVER be enabled on a +# public site. Enabled in the sample config for development. +use_interactive = True + +# Write thread status periodically to 'heartbeat.log', (careful, uses disk +# space rapidly!). Useful to determine why your processes may be consuming a +# lot of CPU. +#use_heartbeat = False + +# Enable the memory debugging interface (careful, negatively impacts server +# performance). +#use_memdump = False + +# -- Data Libraries + +# These library upload options are described in much more detail in the wiki: +# http://bitbucket.org/galaxy/galaxy-central/wiki/DataLibraries/UploadingFiles + +# Add an option to the library upload form which allows administrators to +# upload a directory of files. +library_import_dir = True + +# Add an option to the library upload form which allows authorized +# non-administrators to upload a directory of files. The configured directory +# must contain sub-directories named the same as the non-admin user's Galaxy +# login ( email ). The non-admin user is restricted to uploading files or +# sub-directories of files contained in their directory. +#user_library_import_dir = None + +# Add an option to the admin library upload tool allowing admins to paste +# filesystem paths to files and directories in a box, and these paths will be +# added to a library. Set to True to enable. Please note the security +# implication that this will give Galaxy Admins access to anything your Galaxy +# user has access to. +allow_library_path_paste = True + +# Users may choose to download multiple files from a library in an archive. By +# default, Galaxy allows users to select from a few different archive formats +# if testing shows that Galaxy is able to create files using these formats. +# Specific formats can be disabled with this option, separate more than one +# format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. +#disable_library_comptypes = + +# Some sequencer integration features in beta allow you to automatically +# transfer datasets. This is done using a lightweight transfer manager which +# runs outside of Galaxy (but is spawned by it automatically). Galaxy will +# communicate with this manager over the port specified here. +#transfer_manager_port = 8163 + +# Search data libraries with whoosh +#enable_whoosh_library_search = True +# Whoosh indexes are stored in this directory. +#whoosh_index_dir = database/whoosh_indexes + +# Search data libraries with lucene +#enable_lucene_library_search = False +# maxiumum file size to index for searching, in MB +#fulltext_max_size = 500 +#fulltext_noindex_filetypes=bam,sam,wig,bigwig,fasta,fastq,fastqsolexa,fastqillumina,fastqsanger +# base URL of server providing search functionality using lucene +#fulltext_url = http://localhost:8081 + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +#id_secret = USING THE DEFAULT IS NOT SECURE! + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/ApacheProxy +#use_remote_user = False + +# If use_remote_user is enabled and your external authentication +# method just returns bare usernames, set a default mail domain to be appended +# to usernames, to become your Galaxy usernames (email addresses). +#remote_user_maildomain = None + +# If use_remote_user is enabled, you can set this to a URL that will log your +# users out. +#remote_user_logout_href = None + +# Administrative users - set this to a comma-separated list of valid Galaxy +# users (email addresses). These users will have access to the Admin section +# of the server, and will have access to create users, groups, roles, +# libraries, and more. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Admin/AdminInterface +admin_users = steder at ci.uchicago.edu,borja at cs.uchicago.edu,madduri at mcs.anl.gov,ballen at ci.uchicago.edu + +# Force everyone to log in (disable anonymous access). +#require_login = False + +# Allow unregistered users to create new accounts (otherwise, they will have to +# be created by an admin). +#allow_user_creation = True + +# Allow administrators to delete accounts. +#allow_user_deletion = False + +# By default, users' data will be public, but setting this to True will cause +# it to be private. Does not affect existing users and data, only ones created +# after this option is set. Users may still change their default back to +# public. +#new_user_dataset_access_role_default_private = False + +# -- Beta features + +# Enable Galaxy to communicate directly with a sequencer +#enable_sequencer_communication = False + +# Enable Galaxy's built-in visualization module, Trackster. +#enable_tracks = False + +# Enable Galaxy Pages. Pages are custom webpages that include embedded Galaxy items, +# such as datasets, histories, workflows, and visualizations; pages are useful for +# documenting and sharing multiple analyses or workflows. Pages are created using a +# WYSIWYG editor that is very similar to a word processor. +#enable_pages = False + +# Enable authentication via OpenID. Allows users to log in to their Galaxy +# account by authenticating with an OpenID provider. +enable_openid = True + +# Enable the (experimental! beta!) Web API. Documentation forthcoming. +#enable_api = False + +# Enable Galaxy's "Upload via FTP" interface. You'll need to install and +# configure an FTP server (we've used ProFTPd since it can use Galaxy's +# database for authentication) and set the following two options. + +# This should point to a directory containing subdirectories matching users' +# email addresses, where Galaxy will look for files. +ftp_upload_dir = /nfs/scratch + +# this value changes how the user_ftp_dir is determined: +# - normally it is set by doing os.path.join(ftp_upload_dir, user.email) +# - with globus we want to do os.path.join(ftp_upload_dir, user.username) +globus_online = True + +# The endpoint to use when doing globus transfers onto the galaxy machine: +globus_endpoint = "<%=@go_endpoint%>" + +# home directory root: +# normally this is /home +# As a hack I'm looking for credential files in a users home directory +home_root = /nfs/home + +# globus cert settings: +# globus expects the user home directory to contain a user key and user cert: +globus_userkey = .globus/userkey.pem +globus_usercert = .globus/usercert.pem +# you also need to specify the path to your root certificate: +globus_rootcert = /etc/grid-security/certificates/gd-bundle_ca.cert + +# When we want to transfer files back with globus online we symbolicly +# link those datasets from galaxy's home dir into something readable +# by globus. +# +globus_scratch = /nfs/scratch + +# This should be the hostname of your FTP server, which will be provided to +# users in the help text. +ftp_upload_site = "go://borja#galaxy" + +# -- Job Execution + +# If running multiple Galaxy processes, one can be designated as the job +# runner. For more information, see: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/WebApplicationScaling +#enable_job_running = True + +# Should jobs be tracked through the database, rather than in memory. +# Necessary if you're running the load balanced setup. +#track_jobs_in_database = False + +# This enables splitting of jobs into tasks, if specified by the particular tool config. +# This is a new feature and not recommended for production servers yet. +#use_tasked_jobs = False +#local_task_queue_workers = 2 + +# Enable job recovery (if Galaxy is restarted while cluster jobs are running, +# it can "recover" them when it starts). This is not safe to use if you are +# running more than one Galaxy server using the same database. +#enable_job_recovery = True + +# Setting metadata on job outputs to in a separate process (or if using a +# cluster, on the cluster). Thanks to Python's Global Interpreter Lock and the +# hefty expense that setting metadata incurs, your Galaxy process may become +# unresponsive when this operation occurs internally. +#set_metadata_externally = False + +# Although it is fairly reliable, setting metadata can occasionally fail. In +# these instances, you can choose to retry setting it internally or leave it in +# a failed state (since retrying internally may cause the Galaxy process to be +# unresponsive). If this option is set to False, the user will be given the +# option to retry externally, or set metadata manually (when possible). +#retry_metadata_internally = True + +# If (for example) you run on a cluster and your datasets (by default, +# database/files/) are mounted read-only, this option will override tool output +# paths to write outputs to the working directory instead, and the job manager +# will move the outputs to their proper place in the dataset directory on the +# Galaxy server after the job completes. +#outputs_to_working_directory = False + +# Number of concurrent jobs to run (local job runner) +#local_job_queue_workers = 5 + +# Jobs can be killed after a certain amount of execution time. Format is in +# hh:mm:ss. Currently only implemented for PBS. +#job_walltime = None + +# Jobs can be killed if any of their outputs grow over a certain size (in +# bytes). 0 for no limit. +#output_size_limit = 0 + +# Clustering Galaxy is not a straightforward process and requires some +# pre-configuration. See the the wiki before attempting to set any of these +# options: +# http://bitbucket.org/galaxy/galaxy-central/wiki/Config/Cluster + +# Comma-separated list of job runners to start. local is always started. If +# left commented, no jobs will be run on the cluster, even if a cluster URL is +# explicitly defined in the [galaxy:tool_runners] section below. The runners +# currently available are 'pbs' and 'drmaa'. +#start_job_runners = None + +# The URL for the default runner to use when a tool doesn't explicitly define a +# runner below. +#default_cluster_job_runner = local:/// + +# The cluster runners have their own thread pools used to prepare and finish +# jobs (so that these sometimes lengthy operations do not block normal queue +# operation). The value here is the number of worker threads available to each +# started runner. +#cluster_job_queue_workers = 3 + +# These options are only used when using file staging with PBS. +#pbs_application_server = +#pbs_stage_path = +#pbs_dataset_server = + +# ---- Tool Job Runners ----------------------------------------------------- + +# Individual per-tool job runner overrides. If not listed here, a tool will +# run with the runner defined with default_cluster_job_runner. + +[galaxy:tool_runners] + +biomart = local:/// +encode_db1 = local:/// +hbvar = local:/// +microbial_import1 = local:/// +ucsc_table_direct1 = local:/// +ucsc_table_direct_archaea1 = local:/// +ucsc_table_direct_test1 = local:/// +upload1 = local:/// + +# ---- Galaxy Message Queue ------------------------------------------------- + +# Galaxy uses AMQ protocol to receive messages from external sources like +# bar code scanners. Galaxy has been tested against RabbitMQ AMQP implementation. +# For Galaxy to receive messages from a message queue the RabbitMQ server has +# to be set up with a user account and other parameters listed below. The 'host' +# and 'port' fields should point to where the RabbitMQ server is running. + +[galaxy_amqp] + +#host = 127.0.0.1 +#port = 5672 +#userid = galaxy +#password = galaxy +#virtual_host = galaxy_messaging_engine +#queue = galaxy_queue +#exchange = galaxy_exchange +#routing_key = bar_code_scanner +#rabbitmqctl_path = /path/to/rabbitmqctl \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/README.rdoc 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.0 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,33 @@ +-----BEGIN CERTIFICATE----- +MIIFtTCCA52gAwIBAgIJAJhUGjc90yzKMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAlVTMRowGAYDVQQKExFHbG9idXMgQ29uc29ydGl1bTEaMBgGA1UEAxMRR2xv +YnVzIENvbm5lY3QgQ0EwHhcNMTEwMjE3MTU1NDA1WhcNMTYwODA5MTU1NDA1WjBF +MQswCQYDVQQGEwJVUzEaMBgGA1UEChMRR2xvYnVzIENvbnNvcnRpdW0xGjAYBgNV +BAMTEUdsb2J1cyBDb25uZWN0IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC +CgKCAgEAsDDXyExuG5s5CgPsSqWRD/rc+O9ceaEU25xqmUuo53i4D0+e3taGEkmK +5RC3VsQNJMp19Cccbul8jmDnmpa2lpbhuTz+RSGkRs7ap7x+mogoJ2W3jVhAfNFH +U8lrQ5TQ2jLhEJRuDJjcPFIn3n1fIfIR6GKMH0XOI9aLJGGabmpw/2wo0VzxadU6 +CtuhdCr4g2uII64lSME/GtV86OZQKINxmFS9MxjWpjYk1JxoaOAjRz5FKqyT+RAt +OfN7cW9r/J1S6fQHATUlh9B6P3nav7AJ3CiORLGNIgC8fNqCm7mLtbI7eU6oRkMv +0sTahdc0TgIfXqT+5+L/deWEeym0sHYaR+VLVe8QvZAkHkrp3Wmi2h3RLvs3lpyY +w6LU7mlvQZBuRoEun2SRGD3znFzj6i71yjw0uZXFXfunOvVwS7Hz/MGLouQUCCZZ +UPR1IIkCmiYLKcbQJgWwZS25R6/dLU1sYNpbyS2cLnjfxOpe+YUVtuo1bLGjLNuI +1w42qOZWhLfiUM7A51vSevyi/Xi5dXVTMF4ojnx6gfqBmjvCxshtox9Ks46ZeA6e +4/ExICZQoLl4iicsdg2TN00E3YBq10tBqbbDBL9MxO5a07rnol6IV2cg8YRfhg5a +jeYi0mCb8FdvCZojYxT6hQHs5XNvyChZUnj9/XfCK2Z9Rn2fRCkCAwEAAaOBpzCB +pDAdBgNVHQ4EFgQUa2OeAn1TDx4TDJlaaHiHSYKnMRkwdQYDVR0jBG4wbIAUa2Oe +An1TDx4TDJlaaHiHSYKnMRmhSaRHMEUxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFH +bG9idXMgQ29uc29ydGl1bTEaMBgGA1UEAxMRR2xvYnVzIENvbm5lY3QgQ0GCCQCY +VBo3PdMsyjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQBbnicVSC1L +UiYNWR/PNjYd8RKUyxUyNYxx1lCqCMYBaROp7mD9ddklT7C/H7tt5WxZDAwl7XRv +jckXmcnn8nqqiwsDfh0dcgE0FZEQNRc+IyXyw+sjE6rLDHc0WcUDVgV5wM1GFf23 +92PnOTz2pNPLDVxLsGc3452EreNzZyW82atklXuuUGRyhnVB5iFlLREgc3UPmumu +Q6uiZDvST6JJ6BSC2KkHUjnUKBZy6kOE1CyZIv24eE1pTxE/P4uCVp7+9yysYJ4h +771aH3tSkJ8AMcmFY+UCZ1H4Ck+u4rP80y4RheMvUhZ4sGQ4R3AMmpEFX8lgFc4P +uZBW1DOKJ0kj6+z30BNKpeBsCjEjLGsQlNGFYhevVm9/ZnKEHBIr49+asFftV491 +DnhZJ0IxZlQ3JTG9tQQLWDPSEBiQKMxicHtC9bnegTXPxFvv8kd3z/vnbJnEx3Sz +jzDo9yrhHIdjTaY/Ej9xB5ax051unOxi4Ozpexj3h9+J+5rw1jd4w8ex15oX6xcQ +qhxDfB/6rbKtCyTMkp6030pDlf7RLDWouX1Y7zzOfL66X/dckoCCIi3rqfkEiqrt +N/OGwF2ENQ6TS4q1rMj/SKNZpJZn7RHw0RxUf3V6O4T2C+JCYLF/pR3TCkWwh3VC +gjMI3URhfQBdQSn2aT6rIylSMtnyLyfj9g== +-----END CERTIFICATE----- Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/4396eb4d.signing_policy 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,13 @@ +# Format: +#------------------------------------------------------------------------ +# token type | def.authority | value +#--------------|---------------|----------------------------------------- +# EACL entry #1| + +access_id_CA X509 '/C=US/O=Globus Consortium/CN=Globus Connect CA' + +pos_rights globus CA:sign + +cond_subjects globus '"/C=US/O=Globus Consortium/OU=Globus Connect User/*" "/C=US/O=Globus Consortium/OU=Globus Connect Server/*" "/C=US/O=Globus Consortium/OU=Globus Connect Service/*"' + +# end of EACL Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.cert 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDkDCCAXgCAQEwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCVVMxGjAYBgNV +BAoTEUdsb2J1cyBDb25zb3J0aXVtMRowGAYDVQQDExFHbG9idXMgQ29ubmVjdCBD +QTAeFw0xMTAyMTcxNjM2MjhaFw0xMjAyMTcxNjM2MjhaMFsxCzAJBgNVBAYTAlVT +MRowGAYDVQQKExFHbG9idXMgQ29uc29ydGl1bTEcMBoGA1UECxMTR2xvYnVzIENv +bm5lY3QgVXNlcjESMBAGA1UEAxMJYW5vbnltb3VzMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDbdaIIAkQ6F2RoEoamBEuvPCvWuyTJgaSKBhzC4+uIsCM0Wsu+ +v/sR68D9eRmbqGpqGv6IlhDSlGWLMObl+UN1kbgzwITtpUlQujvsvJCn8T3u1045 +kRSODZyhsj0EITQAqEl0G2eWw7A/V+8Bu15gOuuACTmkEsIuDfLV7r+OnwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4ICAQBrraAVmVZlD9jmfMv6OI2hVmIiN80Sb81ykDv8 +bB+qzL2KiLnnk8i56EdU3gzz/J0TVw+XVQ6ZQHpbJkyfjnRVO9vN1RPzYUYZUl0f +xKXWzWn+uhRyzIWWGi3CMxKg4/fxnIvbkayqqVQolilhF3AH5yQ9xShkMwIhNe60 +1hBcCcotKmKkJ0ABVszHCjchop/l/5Nr2idNUj9kLFmXUC3KL39VOJj+4Uxf5H3a +CwSFRCOU7qkY16jMmuFsmycwfC0S81GqlNzj1DaIj4YbF2J5d5gZ1ifL0Swm2v1h +SLmyTQ3UJROxrVaBmsDrnSF4l/Yunsd08C/X27xrbYlNWJDHgdaToaWTIdPBx8Tz +IsvnLLS3QfEAZERKbc6y+s/KB9n65Yv5b2ZlVTmeDc7mlOQaM0BVSPkmhgK5q2w2 +ZjP85UCbO5HKKJjJHuWr7XAucQskvfI7D4AofKmOcdFz+EhT6F/5EVwhjhDoBda/ +rN9HYRFMtmxbxjpSN9Q0lhKAk9H19JIQSlA1EXFrrUuRs+NfNiFhcDLkTdqaxr2c +Tf8ve6StjyM2y5cktqr2+HKYUaUypWfOoQkMDeHtP5/Br24foE82BPY+U69SLS3A +azJla7NZKns05vzTQ74blWcWFWQl1E0KTmeLbOCOPdrcej90UkSKBs+/UUoC2GMJ +1pA1sg== +-----END CERTIFICATE----- Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/anon.key 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDbdaIIAkQ6F2RoEoamBEuvPCvWuyTJgaSKBhzC4+uIsCM0Wsu+ +v/sR68D9eRmbqGpqGv6IlhDSlGWLMObl+UN1kbgzwITtpUlQujvsvJCn8T3u1045 +kRSODZyhsj0EITQAqEl0G2eWw7A/V+8Bu15gOuuACTmkEsIuDfLV7r+OnwIDAQAB +AoGBAJFk9sttjPwboVbd5z04HVhkefrSk8W40WTsNcPcsqAlab125gNjN5ig44RK +5e9dfdr8NWQSX+TTkg7MgD0ejlSs9iKLsgmHDU/l3sadtdBVQ+EDNg+7lzePj1Od +nffHIih+RK1a5e/g6KdU/57FQ0fk5xdgdbFNXJ493L3h97ypAkEA765/QJCCvFTa +4nPtmpN9VCSa+xC+nvOKfSqqGbGQimSPTOu0XC7XaU9Iypf6kxOBNT+mYHSku4QY +djWBziWuuwJBAOpmrTsjgIY6C68GG8XZWorF1ouhDYd7VBl5wrz9ly7RAGXrSp5q +Fjnk9MwRc0AHlCu/e32LltDHKePT+I1Ea20CQHFDassd/0n0Z4N/+RaFAELVEY/3 +d70xpY5ErSF7MazUnItjD1ZIpG8VknZ6n2UFYJfDPmJyfK5IXC7wVikO0aUCQGHV +vVRDuy9LJvlEmW75C5uEe8oHzLfRuAZyFeAAEIwP3BSuIpUAPoqnj61lUy9UennQ +EGEUVDyMBGX9YW7FMfkCQQCRyC9WxlWR9oweffR2hafQLZztC22tDdUlNvj3NlNl +R20gP5g3g2L4gTDEe06G6Baq0i2Fjpn56R2JwTU1y55F +-----END RSA PRIVATE KEY----- Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.0 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBITANBgkqhkiG9w0BAQUFADB1MRMwEQYKCZImiZPyLGQB +GRYDbmV0MRIwEAYKCZImiZPyLGQBGRYCRVMxDjAMBgNVBAoTBUVTbmV0MSAwHgYD +VQQLExdDZXJ0aWZpY2F0ZSBBdXRob3JpdGllczEYMBYGA1UEAxMPRVNuZXQgUm9v +dCBDQSAxMB4XDTAyMTAwODA3MDAwMFoXDTIyMTAyNjA3MDAwMFowdTETMBEGCgmS +JomT8ixkARkWA25ldDESMBAGCgmSJomT8ixkARkWAkVTMQ4wDAYDVQQKEwVFU25l +dDEgMB4GA1UECxMXQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMxGDAWBgNVBAMTD0VT +bmV0IFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKF +PX1QK86g62z/KX0pRAtRnS8VXmrLUDaFMwZyKEeueWxkrymyvnuDo4hCDPrIfEzI +cAWnJyE1ev4aWw3l3Qm75GDUiyV401Op598iPT5bbCMlHJcYBANwRNKnvtZ8DcoU +9Ba75tqUQHV1TRx6Nkw1AQ5gNMQSuZ5wCsDREGs+Be3JRa06RJf8k5gw5odqBjCT +kGmIwCcx1qEuLGXOcQoM+yEKZvD485MiPKaEKYJBRDHi0h+vvj1j8ge9SJ8Jy6ML +4B+2QNLb7fTjSutMF5qGJKlCgHw6dNLHuW2glS1KZ3Dt1iXkO6SdowclsKvpFhW9 +fDIftu/TOcMLOJi5fgUCAwEAAaOBmjCBlzARBglghkgBhvhCAQEEBAMCAAcwIQYD +VR0RBBowGIEWRVNuZXQtUm9vdC1DQS0xQGVzLm5ldDAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS8XU1IL/g1lFmrXIlLPtGyOhQB6jAfBgNVHSMEGDAWgBS8XU1I +L/g1lFmrXIlLPtGyOhQB6jAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEFBQAD +ggEBAA7Gy/hGi6nKiwm2fAXvQNU7Oe86VGz92VPICxjCyCCMW3uYuFAJVTjB6wRM +UH/fw01I+pC9CZ+RUIhxWqFKJiz+Wf3jkq+25rPQ2Ve5FTesB/urUncwqZKRaOk5 +StSW5XQjCIfKk7W6q6BJk3nMAm67btSoRdE9NfsefEpHbJJ+dtjRgyJx+QX7sOft +IsqHMWmEj7QTAjoCJvrSTXavHKosQ5s+aPySbZ6R6MCBzTsUzJk1fbTvrzJnzi0s +H4eyZ17WxRj8BxnyN6BHM/0ger2b/c6vrfrW67/J6A0ebClbdunFdsYxPtcH49yo +ugTqyKEVEeH7hhVkOH0bGf4Q0Vc= +-----END CERTIFICATE----- Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/d1b603c3.signing_policy 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,59 @@ +# $Id: d1b603c3.signing_policy,v 1.1 2009/03/27 18:31:33 dhiva Exp $ +# +# This file is parsed from start to finish with a given CA and subject +# name. +# subject names may include the following wildcard characters: +# * Matches any number of characters. +# ? Matches any single character. +# +# CA names must be specified (no wildcards). Names containing whitespaces +# must be included in single quotes, e.g. 'Certification Authority'. +# Names must not contain new line symbols. +# The value of condition attribute is represented as a set of regular +# expressions. Each regular expression must be included in double quotes. +# +# This policy file dictates the following policy: +# +# The ESnet root CA signs certificates of various entities. +# +# Format: +#------------------------------------------------------------------------ +# token type | def.authority | value +#--------------|---------------|----------------------------------------- +# EACL entry #1| + + access_id_CA X509 '/DC=net/DC=ES/O=ESnet/OU=Certificate Authorities/CN=ESnet Root CA 1' + + pos_rights globus CA:sign + + cond_subjects globus '"/DC=org/DC=DOEGrids/OU=Certificate Authorities/*" "/DC=net/DC=ES/*" "/DC=org/DC=fusiongrid/OU=Certificate Authorities/*"' + +# +# End DOE SG CA Policy +# +# $Log: d1b603c3.signing_policy,v $ +# Revision 1.1 2009/03/27 18:31:33 dhiva +# *** empty log message *** +# +# Revision 1.5 2006/04/20 20:23:16 helm +# Added fusion grid subdir from mrt, removed misleading doc +# +# Revision 1.4 2006/04/20 20:17:22 helm +# revision change +# +# Revision 1.2 2003/05/27 16:29:35 helm +# Change statement of policy +# +# Revision 1.1 2003/05/22 22:38:22 helm +# *** empty log message *** +# +# Revision 1.3 2003/05/03 01:31:42 dhiva +# Fixed the Subject Name of the ESnet Root CA +# Modified the access_id_CA and included /O=ESnet +# +# Revision 1.2 2003/05/03 01:18:09 dhiva +# $Id: d1b603c3.signing_policy,v 1.1 2009/03/27 18:31:33 dhiva Exp $ included for all these files +# +# Revision 1.1 2003/05/03 01:15:06 dhiva +# Globus Support Files for pki1.doegrids.org CA +# Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,76 @@ +-----BEGIN CERTIFICATE----- +MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMx +ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYw +MTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMH +QXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5j +b20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5j +b20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3H +KrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQm +VZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpR +SgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRT +cDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ +6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEu +MB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDS +kdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEB +BCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0f +BD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBv +c2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUH +AgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAO +BgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IG +OgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMU +A2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o +0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTX +RE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuH +qDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWV +U+4= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1Zh +bGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu +Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g +QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAe +BgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoX +DTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBE +YWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgC +ggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+q +N1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiO +r18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lN +f4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEH +U1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHU +TBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMb +VmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwg +SW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlv +biBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEg +MB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUw +AwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdv +ZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMu +Z29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUd +IAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNv +bS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1 +QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4O +WBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0Vmsf +SxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0 +IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz +BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y +aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG +9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy +NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y +azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw +Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl +cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY +dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9 +WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS +v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v +UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu +IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC +W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd +-----END CERTIFICATE----- Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/gridftp.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,3 @@ +port 2811 +banner "DemoGrid GridFTP" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/myproxy-server.config 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,8 @@ +authorized_retrievers "*" +pam "sufficient" +certificate_issuer_cert /var/lib/globus/simple_ca/cacert.pem +certificate_issuer_key /var/lib/globus/simple_ca/private/cakey.pem +certificate_issuer_key_passphrase "cagrid" +certificate_serialfile /var/lib/globus/simple_ca/serial +certificate_out_dir /var/lib/globus/simple_ca/newcerts +certificate_mapapp /var/lib/myproxy/myproxy-certificate-mapapp \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/files/default/xinetd.myproxy 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,9 @@ +service myproxy-server +{ + socket_type = stream + protocol = tcp + wait = no + user = root + server = /usr/sbin/myproxy-server + disable = no +} Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures globus" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/client-tools.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,33 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 client tools +## +## This recipe installs only the Globus client tools (grid-proxy-init, +## myproxy-logon, globus-url-copy, etc.). GridFTP, GRAM, etc. are set up +## in separate recipes. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::repository" + +package "globus-gsi-cert-utils-progs" +package "globus-proxy-utils" +package "globus-gass-copy-progs" +package "gsi-openssh-clients" +package "myproxy" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# RECIPE: Default recipe. +# +# This cookbook has no default recipe. +# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gc-cert.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,70 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: GC certificate +## +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +require "openssl" + +include_recipe "globus::go_cert" + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +cookbook_file "/etc/grid-security/anon.cert" do + source "anon.cert" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/anon.key" do + source "anon.key" + mode 0400 + owner "root" + group "root" +end + +ruby_block "get_gc_certificate" do + cert_file = "/etc/grid-security/gc-cert-#{gp_node[:gc_setupkey]}.pem" + key_file = "/etc/grid-security/gc-key-#{gp_node[:gc_setupkey]}.pem" + only_if do ! File.exists?(cert_file) end + block do + begin + ENV["X509_USER_CERT"]="/etc/grid-security/anon.cert" + ENV["X509_USER_KEY"]="/etc/grid-security/anon.key" + cert_blob = `gsissh -F /dev/null -o "GSSApiTrustDns no" -o "ServerAliveInterval 15" -o "ServerAliveCountMax 8" relay.globusonline.org -p 2223 register #{gp_node[:gc_setupkey]}` + + cert = OpenSSL::X509::Certificate.new(cert_blob) + cert_f = File.new(cert_file, 'w') + cert_f.write(cert.to_pem) + cert_f.chmod(0644) + + key = OpenSSL::PKey::RSA.new(cert_blob) + key_f = File.new(key_file, 'w') + key_f.write(key.to_pem) + key_f.chmod(0400) + rescue + # TODO: Find a way to communicate to GP that this has happened, + # so it can be reported to the user. + p "Unable to obtain GC certificate" + end + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/go_cert.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,78 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: GO CA certificates +## +## This recipe installs the certificates of CAs that sign the various GO +## certificates (user certificates, the Transfer API server, etc.) +## +## This recipe must be applied to any node that will be interacting with +## a GO service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Create the grid-security directory + +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + +directory "/etc/grid-security/certificates" do + owner "root" + group "root" + mode "0755" + action :create +end + +cookbook_file "/etc/grid-security/certificates/d1b603c3.0" do + source "d1b603c3.0" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/d1b603c3.signing_policy" do + source "d1b603c3.signing_policy" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/4396eb4d.0" do + source "4396eb4d.0" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/4396eb4d.signing_policy" do + source "4396eb4d.signing_policy" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/certificates/gd-bundle_ca.cert" do + source "gd-bundle_ca.cert" + mode 0644 + owner "root" + group "root" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-common.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,36 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 GridFTP +## +## This recipe installs the GridFTP server and sets it up as a xinetd service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::repository" + +package "xinetd" +package "globus-gridftp-server-progs" +package "libglobus-xio-gsi-driver-dev" + +cookbook_file "/etc/gridftp.conf.default" do + source "gridftp.conf" + mode 0644 + owner "root" + group "root" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 GridFTP +## +## This recipe installs the GridFTP server and sets it up as a xinetd service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +include_recipe "globus::gridftp-common" + +template "/etc/xinetd.d/gsiftp" do + source "xinetd.gridftp.erb" + mode 0644 + owner "root" + group "root" + variables( + :public_ip => gp_node[:public_ip], + :gc => false + ) + notifies :restart, "service[xinetd]" +end + +service "xinetd" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/gridftp-gc.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,44 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 GridFTP +## +## This recipe installs the GridFTP server and sets it up as a xinetd service. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::gc-cert" +include_recipe "globus::gridftp-common" + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +template "/etc/xinetd.d/gsiftp" do + source "xinetd.gridftp.erb" + mode 0644 + owner "root" + group "root" + variables( + :public_ip => gp_node[:public_ip], + :gc => true, + :gc_setupkey => gp_node[:gc_setupkey] + ) + notifies :restart, "service[xinetd]" +end + +service "xinetd" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/myproxy.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,77 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 MyProxy +## +## Installs a MyProxy server, and sets is up as a xinetd service. +## +## For authentication, the MyProxy server will use the local UNIX accounts +## through PAM. If the node this recipe is applied to is part of a NIS +## domain, then the global NIS accounts will be used. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +include_recipe "globus::repository" + +package "xinetd" +package "globus-simple-ca" +package "myproxy-server" + +directory "/var/lib/myproxy" do + owner "root" + group "root" + mode "0700" + action :create +end + + +cookbook_file "/etc/myproxy-server.config" do + source "myproxy-server.config" + mode 0644 + owner "root" + group "root" +end + +template "/var/lib/myproxy/myproxy-certificate-mapapp" do + source "myproxy-dnmap.erb" + mode 0744 + owner "root" + group "root" +end + +cookbook_file "/etc/xinetd.d/myproxy" do + source "xinetd.myproxy" + mode 0644 + owner "root" + group "root" + notifies :restart, "service[xinetd]" +end + +execute "add_services_entry" do + line = "myproxy-server 7512/tcp # Myproxy server" + only_if do + File.read("/etc/services").index(line).nil? + end + user "root" + group "root" + command "echo \"#{line}\" >> /etc/services" + action :run + notifies :restart, "service[xinetd]" +end + +service "xinetd" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/recipes/repository.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,65 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Toolkit 5.1.1 repository +## +## Adds the APT sources list for the Globus Toolkit 5.1.1 +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +case node.platform + when "ubuntu" + if node.platform_version == "11.04" + distro_id = "natty" + elsif node.platform_version == "10.10" + distro_id = "maverick" + elsif node.platform_version == "10.04" + distro_id = "lenny" + end + + when "debian" + if node.platform_version.to_f >= 6.0 + distro_id = "squeeze" + elsif node.platform_version.to_f >= 5.0 + distro_id = "lenny" + end + +end + +remote_file "#{node[:scratch_dir]}/gt5_repository.deb" do + action :create_if_missing + source "http://www.globus.org/ftppub/gt5/5.1/5.1.1/installers/repo/globus-repository-#{distro_id}_0.0.1_all.deb" + owner "root" + group "root" + mode "0644" +end + +package "gt5_repository" do + action :install + source "#{node[:scratch_dir]}/gt5_repository.deb" + provider Chef::Provider::Package::Dpkg + notifies :run, "execute[apt-get update]", :immediately +end + +execute "apt-get update" do + user "root" + group "root" + command "apt-get update" + action :nothing +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/myproxy-dnmap.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,12 @@ +#!/bin/sh + +username=$1 +if [ X"$username" = X ]; then + # no username given + exit 1 +fi + +# DN must match the signing policy for your CA. +echo "/O=Grid/OU=DemoGrid/CN=${username}" + +exit 0 Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gram.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,13 @@ +service gsigatekeeper +{ + socket_type = stream + protocol = tcp + wait = no + user = root + env += GLOBUS_LOCATION=<%= @globus_location %> + env += LD_LIBRARY_PATH=<%= @globus_location %>/lib + env += LD_LIBRARY_PATH=GLOBUS_LOCATION/lib + server = <%= @globus_location %>/sbin/globus-gatekeeper + server_args = -conf <%= @globus_location %>/etc/globus-gatekeeper.conf + disable = no +} Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/globus/templates/default/xinetd.gridftp.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,21 @@ +service gsiftp + { + instances = 50 + socket_type = stream + wait = no + user = root + server = /usr/sbin/globus-gridftp-server + <% if @public_ip %> + server_args = -i --data-interface <%= @public_ip %> + <% else %> + server_args = -i + <% end %> + <% if @gc %> + env += X509_USER_CERT=/etc/grid-security/gc-cert-<%= @gc_setupkey %>.pem + env += X509_USER_KEY=/etc/grid-security/gc-key-<%= @gc_setupkey %>.pem + <% end %> + env += GLOBUS_TCP_PORT_RANGE=50000,51000 + log_on_success += DURATION + nice = 10 + disable = no + } Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/README.md 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,102 @@ +Description +=========== + +Installs a Java. Uses OpenJDK by default but supports installation of the Sun's Java. + +--- +Requirements +============ + +Platform +-------- + +* Debian, Ubuntu +* CentOS, Red Hat, Fedora + +Cookbooks +--------- + +* apt + +--- +Attributes +========== + +* `node["java"]["install_flavor"]` - Flavor of JVM you would like installed (`sun` or `openjdk`), default `openjdk`. + +--- +Recipes +======= + +default +------- + +Include the default recipe in a run list, to get `java`. By default the `openjdk` flavor of Java is installed, but this can be changed by using the `install_flavor` attribute. + +openjdk +------- + +This recipe installs the `openjdk` flavor of Java. + +sun +--- + +This recipe installs the `sun` flavor of Java. + +On Debian and Ubuntu systems the recipe will add the correct apt repository (`non-free` on Debian or `partner` on Ubuntu), pre-seed the package and update java alternatives. + +On Red Hat flavored Linux (RHEL, CentOS, Fedora), the installation of the Sun flavor of Java is slightly more complicated as the `rpm` package is not readily available in any public Yum repository. The Sun JDK `rpm` package can be downloaded directly from Sun but comes wrapped as a compressed bin file. After the file has been downloaded, decompressed and license accepted the `rpm` package (names something like `jdk-6u25-ea-linux-amd64.rpm`) can be retrieved by this recipe using the `remote_file` or `cookbook_file` resources. The recipe will choose the correct resource based on the existence (or non-existence) of the `node['sun']['rpm_url']` attribute. See below for an example role using this attribute in the proper way. If you would like to deliver the `rpm` package file as part of this cookbook place the `rpm` package file in the `files/default` directory and the cookbook will retrieve the file during installation. + +--- +Usage +===== + +Simply include the `java` recipe where ever you would like Java installed. + +To install Sun flavored Java on Debian or Ubuntu override the `node['java']['install_flavor']` attribute with in role: + + name "java" + description "Install Sun Java on Ubuntu" + override_attributes( + "java" => { + "install_flavor" => "sun" + } + ) + run_list( + "recipe[java]" + ) + +On RedHat flavored Linux be sure to set the `rpm_url` and `rpm_checksum` attributes if you placed the `rpm` file on a remote server: + + name "java" + description "Install Sun Java on CentOS" + override_attributes( + "java" => { + "install_flavor" => "sun", + "version" => "6u25", + "rpm_url" => "https://mycompany.s3.amazonaws.com/sun_jdk", + "rpm_checksum" => "c473e3026f991e617710bad98f926435959303fe084a5a31140ad5ad75d7bf13" + } + ) + run_list( + "recipe[java]" + ) + +License and Author +================== + +Author:: Seth Chisamore () + +Copyright:: 2008-2011, Opscode, Inc + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/attributes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,29 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Attributes:: default +# +# Copyright 2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +default['java']['install_flavor'] = "sun" + +case platform +when "centos","redhat","fedora" + default['java']['version'] = "6u25" + default['java']['arch'] = kernel['machine'] =~ /x86_64/ ? "amd64" : "i586" + set['java']['java_home'] = "/usr/lib/jvm/java" +else + set['java']['java_home'] = "/usr/lib/jvm/default-java" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/files/default/java.seed 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,11 @@ +sun-java6-bin shared/accepted-sun-dlj-v1-1 boolean true +sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true +sun-java6-jre shared/accepted-sun-dlj-v1-1 boolean true +sun-java6-jre sun-java6-jre/stopthread boolean true +sun-java6-jre sun-java6-jre/jcepolicy note +sun-java6-bin shared/error-sun-dlj-v1-1 error +sun-java6-jdk shared/error-sun-dlj-v1-1 error +sun-java6-jre shared/error-sun-dlj-v1-1 error +sun-java6-bin shared/present-sun-dlj-v1-1 note +sun-java6-jdk shared/present-sun-dlj-v1-1 note +sun-java6-jre shared/present-sun-dlj-v1-1 note \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.json 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,50 @@ +{ + "name": "java", + "description": "Installs Java runtime.", + "long_description": "Description\n===========\n\nInstalls a Java. Uses OpenJDK by default but supports installation of the Sun's Java.\n\n---\nRequirements\n============\n\nPlatform\n--------\n\n* Debian, Ubuntu\n* CentOS, Red Hat, Fedora\n\nCookbooks\n---------\n\n* apt\n\n---\nAttributes\n==========\n\n* `node[\"java\"][\"install_flavor\"]` - Flavor of JVM you would like installed (`sun` or `openjdk`), default `openjdk`.\n\n---\nRecipes\n=======\n\ndefault\n-------\n\nInclude the default recipe in a run list, to get `java`. By default the `openjdk` flavor of Java is installed, but this can be changed by using the `install_flavor` attribute.\n\nopenjdk\n-------\n\nThis recipe installs the `openjdk` flavor of Java.\n\nsun\n---\n\nThis recipe installs the `sun` flavor of Java. \n\nOn Debian and Ubuntu systems the recipe will add the correct apt repository (`non-free` on Debian or `partner` on Ubuntu), pre-seed the package and update java alternatives.\n\nOn Red Hat flavor ed Linux (RHEL, CentOS, Fedora), the installation of the Sun flavor of Java is slightly more complicated as the `rpm` package is not readily available in any public Yum repository. The Sun JDK `rpm` package can be downloaded directly from Sun but comes wrapped as a compressed bin file. After the file has been downloaded, decompressed and license accepted the `rpm` package (names something like `jdk-6u25-ea-linux-amd64.rpm`) can be retrieved by this recipe using the `remote_file` or `cookbook_file` resources. The recipe will choose the correct resource based on the existence (or non-existence) of the `node['sun']['rpm_url']` attribute. See below for an example role using this attribute in the proper way. If you would like to deliver the `rpm` package file as part of this cookbook place the `rpm` package file in the `files/default` directory and the cookbook will retrieve the file during installation.\n\n---\nUsage\n=====\n\nSimply include the `java` recipe where ever you would like Java installed. \n\nTo install Sun flavored Java on Debian or Ubuntu override the `node['java']['install_flavor']` attribute with in role:\n\n name \"java\"\n description \"Install Sun Java on Ubuntu\"\n override_attributes(\n \"java\" => {\n \"install_flavor\" => \"sun\"\n }\n )\n run_list(\n \"recipe[java]\"\n )\n\nOn RedHat flavored Linux be sure to set the `rpm_url` and `rpm_checksum` attributes if you placed the `rpm` file on a remote server:\n\n name \"java\"\n description \"Install Sun Java on CentOS\"\n override_attributes(\n \"java\" => {\n \"install_flavor\" => \"sun\",\n \"version\" => \"6u25\",\n \"rpm_url\" => \"https://mycompany.s3.amazonaws.com/sun_jdk\",\n \"rpm_checksum\" => \"c473e3026f991e617710bad98f926435959303fe084a5a31140ad5ad75d7bf13\"\n }\n )\n run_list(\n \"recipe[java]\"\n )\n\nLicense and Author\n==================\n\nAuthor:: Seth Chi samore ()\n\nCopyright:: 2008-2011, Opscode, Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n", + "maintainer": "Opscode, Inc.", + "maintainer_email": "cookbooks at opscode.com", + "license": "Apache 2.0", + "platforms": { + "debian": [ + + ], + "ubuntu": [ + + ], + "centos": [ + + ], + "redhat": [ + + ], + "fedora": [ + + ] + }, + "dependencies": { + "apt": [ + + ] + }, + "recommendations": { + }, + "suggestions": { + }, + "conflicting": { + }, + "providing": { + }, + "replacing": { + }, + "attributes": { + }, + "groupings": { + }, + "recipes": { + "java": "Installs Java runtime", + "java::openjdk": "Installs the OpenJDK flavor of Java", + "java::sun": "Installs the Sun flavor of Java" + }, + "version": "1.1.0" +} \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,16 @@ +maintainer "Opscode, Inc." +maintainer_email "cookbooks at opscode.com" +license "Apache 2.0" +description "Installs Java runtime." +long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) +version "1.1" + +depends "apt" + +recipe "java", "Installs Java runtime" +recipe "java::openjdk", "Installs the OpenJDK flavor of Java" +recipe "java::sun", "Installs the Sun flavor of Java" + +%w{ debian ubuntu centos redhat fedora }.each do |os| + supports os +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,21 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Recipe:: default +# +# Copyright 2008-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "java::#{node['java']['install_flavor']}" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/openjdk.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,39 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Recipe:: openjdk +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +pkgs = value_for_platform( + ["centos","redhat","fedora"] => { + "default" => ["java-1.6.0-openjdk","java-1.6.0-openjdk-devel"] + }, + "default" => ["openjdk-6-jdk","default-jdk"] +) + +execute "update-java-alternatives" do + command "update-java-alternatives -s java-6-openjdk" + returns [0,2] + action :nothing + only_if { platform?("ubuntu", "debian") } +end + +pkgs.each do |pkg| + package pkg do + action :install + notifies :run, "execute[update-java-alternatives]" + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/java/recipes/sun.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,93 @@ +# +# Author:: Seth Chisamore () +# Cookbook Name:: java +# Recipe:: sun +# +# Copyright 2010-2011, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +pkgs = value_for_platform( + ["centos","redhat","fedora"] => { + "default" => ["jdk-#{node['java']['version']}-ea-linux-#{node['java']['arch']}.rpm"] + }, + ["debian","ubuntu"] => { + "default" => ["sun-java6-jdk"] + } +) + +case node['platform'] +when "ubuntu" + + apt_repository "ubuntu-partner" do + uri "http://archive.canonical.com/ubuntu" + distribution node['lsb']['codename'] + components ['partner'] + action :add + end + # update-java-alternatives doesn't work with only sun java installed + node.set['java']['java_home'] = "/usr/lib/jvm/java-6-sun" + +when "debian" + + apt_repository "debian-non-free" do + uri "http://http.us.debian.org/debian" + distribution "stable" + components ['main','contrib','non-free'] + action :add + end + # update-java-alternatives doesn't work with only sun java installed + node.set['java']['java_home'] = "/usr/lib/jvm/java-6-sun" + +when "centos", "redhat", "fedora" + + pkgs.each do |pkg| + if node['java'].attribute?('rpm_url') + remote_file "#{Chef::Config[:file_cache_path]}/#{pkg}" do + source "#{node['java']['rpm_url']}/#{pkg}" + checksum node['java']['rpm_checksum'] + mode "0644" + end + else + cookbook_file "#{Chef::Config[:file_cache_path]}/#{pkg}" do + source pkg + mode "0644" + action :create_if_missing + end + end + end + +else + Chef::Log.error("Installation of Sun Java packages not supported on this platform.") +end + +execute "update-java-alternatives" do + command "update-java-alternatives -s java-6-sun" + returns [0,2] + action :nothing + only_if { platform?("ubuntu", "debian") } +end + +pkgs.each do |pkg| + package pkg do + case node['platform'] + when "ubuntu", "debian" + response_file "java.seed" + when "centos", "redhat", "fedora" + source "#{Chef::Config[:file_cache_path]}/#{pkg}" + options "--nogpgcheck" # sun/oracle doesn't sign their RPMs o_O + end + action :install + notifies :run, "execute[update-java-alternatives]" + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/README.rdoc 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,49 @@ += DESCRIPTION: + +Installs and configures postgresql client or server. + += REQUIREMENTS: + +== Platform: + +Tested on CentOS 5.5, Ubuntu 10.04 but should support centos, redhat, fedora, suse, ubuntu and debian. + +== Cookbooks: + += ATTRIBUTES: + +* postgresql[:dir] - configuration file location. +* postgresql[:version] - Version of postgresql to use. Configured in attributes based on platform. +* postgresql[:ssl] - used on debian family installs to enable ssl support. The debian post installation script automatically builds the certificates. + += USAGE: + +For clients: + + include_recipe "postgresql::client" + +For server: + + include_recipe "postgresql::server" + +(client is already included by server). This will check the platform that the node is and include either redhat family recipe (postgresql::server_redhat) or debian family (postgresql::server_debian) because the two styles differ quite a bit. + +The templates provided by this cookbook will probably need to be tweaked for the local environment, no tuning parameters are specified in them. The templates are separated by family designation in the template directory, since Chef doesn't do "platform family" style file specificity. + += LICENSE and AUTHOR: + +Author:: Joshua Timberman () + +Copyright:: 2009-2010, Opscode, Inc + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/attributes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,68 @@ +# +# Cookbook Name:: postgresql +# Attributes:: postgresql +# +# Copyright 2008-2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +case platform +when "debian" + + if platform_version.to_f == 5.0 + default[:postgresql][:version] = "8.3" + elsif platform_version =~ /.*sid/ + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" + +when "ubuntu" + + if platform_version.to_f <= 9.04 + default[:postgresql][:version] = "8.3" + else + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" + +when "fedora" + + if platform_version.to_f <= 12 + default[:postgresql][:version] = "8.3" + else + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/var/lib/pgsql/data" + +when "redhat","centos" + + default[:postgresql][:version] = "8.4" + set[:postgresql][:dir] = "/var/lib/pgsql/data" + +when "suse" + + if platform_version.to_f <= 11.1 + default[:postgresql][:version] = "8.3" + else + default[:postgresql][:version] = "8.4" + end + + set[:postgresql][:dir] = "/var/lib/pgsql/data" + +else + default[:postgresql][:version] = "8.4" + set[:postgresql][:dir] = "/etc/postgresql/#{node[:postgresql][:version]}/main" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.json 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,51 @@ +{ + "name": "postgresql", + "description": "Installs and configures postgresql for clients or servers", + "long_description": "= DESCRIPTION:\n\nInstalls and configures postgresql client or server.\n\n= REQUIREMENTS:\n\n== Platform:\n\nTested on CentOS 5.5, Ubuntu 10.04 but should support centos, redhat, fedora, suse, ubuntu and debian.\n\n== Cookbooks:\n\n= ATTRIBUTES: \n\n* postgresql[:dir] - configuration file location.\n* postgresql[:version] - Version of postgresql to use. Configured in attributes based on platform.\n* postgresql[:ssl] - used on debian family installs to enable ssl support. The debian post installation script automatically builds the certificates.\n\n= USAGE:\n\nFor clients:\n\n include_recipe \"postgresql::client\"\n \nFor server: \n\n include_recipe \"postgresql::server\"\n \n(client is already included by server). This will check the platform that the node is and include either redhat family recipe (postgresql::server_redhat) or debian family (postgresql::server_debian) because the two styles differ quite a bit.\n\nThe templates provided by this co okbook will probably need to be tweaked for the local environment, no tuning parameters are specified in them. The templates are separated by family designation in the template directory, since Chef doesn't do \"platform family\" style file specificity.\n\n= LICENSE and AUTHOR:\n \nAuthor:: Joshua Timberman ()\n\nCopyright:: 2009-2010, Opscode, Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n", + "maintainer": "Opscode, Inc.", + "maintainer_email": "cookbooks at opscode.com", + "license": "Apache 2.0", + "platforms": { + "rhel": [ + + ], + "centos": [ + + ], + "fedora": [ + + ], + "ubuntu": [ + + ], + "debian": [ + + ], + "suse": [ + + ] + }, + "dependencies": { + }, + "recommendations": { + }, + "suggestions": { + }, + "conflicting": { + }, + "providing": { + }, + "replacing": { + }, + "attributes": { + }, + "groupings": { + }, + "recipes": { + "postgresql": "Empty, use one of the other recipes", + "postgresql::client": "Installs postgresql client package(s)", + "postgresql::server": "Installs postgresql server packages, debian family style", + "postgresql::redhat": "Installs postgresql server packages, redhat family style" + }, + "version": "0.11.1" +} \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,15 @@ +maintainer "Opscode, Inc." +maintainer_email "cookbooks at opscode.com" +license "Apache 2.0" +description "Installs and configures postgresql for clients or servers" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.11.1" +recipe "postgresql", "Empty, use one of the other recipes" +recipe "postgresql::client", "Installs postgresql client package(s)" +recipe "postgresql::server", "Installs postgresql server packages, templates" +recipe "postgresql::redhat", "Installs postgresql server packages, redhat family style" +recipe "postgresql::server", "Installs postgresql server packages, debian family style" + +%w{rhel centos fedora ubuntu debian suse}.each do |os| + supports os +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/client.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,27 @@ +# +# Cookbook Name:: postgresql +# Recipe:: client +# +# Copyright 2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +case node.platform +when "ubuntu","debian" + package "postgresql-client" +when "fedora","suse" + package "postgresql-devel" +when "redhat","centos" + package "postgresql#{node.postgresql.version.split('.').join}-devel" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,20 @@ +# +# Cookbook Name:: postgresql +# Recipe:: default +# +# Copyright 2009, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,36 @@ +#/postgresql.conf. +# Cookbook Name:: postgresql +# Recipe:: server +# +# Copyright 2009-2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" + +case node[:postgresql][:version] +when "8.3" + node.default[:postgresql][:ssl] = "off" +when "8.4" + node.default[:postgresql][:ssl] = "true" +end + +# Include the right "family" recipe for installing the server +# since they do things slightly differently. +case node.platform +when "redhat", "centos", "fedora", "suse" + include_recipe "postgresql::server_redhat" +when "debian", "ubuntu" + include_recipe "postgresql::server_debian" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_debian.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,62 @@ +#/postgresql.conf. +# Cookbook Name:: postgresql +# Recipe:: server +# +# Copyright 2009-2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" + +case node[:postgresql][:version] +when "8.3" + node.default[:postgresql][:ssl] = "off" +when "8.4" + node.default[:postgresql][:ssl] = "true" +end + +package "postgresql" + +case node.platform + when "ubuntu" + if node.platform_version.to_f >= 11.04 + postgresql_service = "postgresql" + else + postgresql_service = "postgresql-#{node.postgresql.version}" + end + when "debian" + postgresql_service = "postgresql-#{node.postgresql.version}" +end + +service "postgresql" do + service_name postgresql_service + supports :restart => true, :status => true, :reload => true + action :nothing +end + +template "#{node[:postgresql][:dir]}/pg_hba.conf" do + source "debian.pg_hba.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :reload, resources(:service => "postgresql") +end + +template "#{node[:postgresql][:dir]}/postgresql.conf" do + source "debian.postgresql.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :restart, resources(:service => "postgresql") +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/recipes/server_redhat.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,84 @@ +#/postgresql.conf. +# Cookbook Name:: postgresql +# Recipe:: server +# +# Copyright 2009-2010, Opscode, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include_recipe "postgresql::client" + +# Create a group and user like the package will. +# Otherwise the templates fail. + +group "postgres" do + # Workaround lack of option for -r and -o... + group_name "-r -o postgres" + not_if { Etc.getgrnam("postgres") } + gid 26 +end + +user "postgres" do + # Workaround lack of option for -M and -n... + username "-M -n postgres" + not_if { Etc.getpwnam("postgres") } + shell "/bin/bash" + comment "PostgreSQL Server" + home "/var/lib/pgsql" + gid "postgres" + system true + uid 26 + supports :non_unique => true +end + +package "postgresql" do + case node.platform + when "redhat","centos" + package_name "postgresql#{node.postgresql.version.split('.').join}" + else + package_name "postgresql" + end +end + +case node.platform +when "redhat","centos" + package "postgresql#{node.postgresql.version.split('.').join}-server" +when "fedora","suse" + package "postgresql-server" +end + +execute "/sbin/service postgresql initdb" do + not_if { ::FileTest.exist?(File.join(node.postgresql.dir, "PG_VERSION")) } +end + +service "postgresql" do + supports :restart => true, :status => true, :reload => true + action [:enable, :start] +end + +template "#{node[:postgresql][:dir]}/pg_hba.conf" do + source "redhat.pg_hba.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :reload, resources(:service => "postgresql") +end + +template "#{node[:postgresql][:dir]}/postgresql.conf" do + source "redhat.postgresql.conf.erb" + owner "postgres" + group "postgres" + mode 0600 + notifies :restart, resources(:service => "postgresql") +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.pg_hba.conf.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,83 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the +# PostgreSQL documentation for a complete description +# of this file. A short synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTION] +# host DATABASE USER CIDR-ADDRESS METHOD [OPTION] +# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION] +# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: "local" is a Unix-domain socket, +# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an +# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. +# +# DATABASE can be "all", "sameuser", "samerole", a database name, or +# a comma-separated list thereof. +# +# USER can be "all", a user name, a group name prefixed with "+", or +# a comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names from +# a separate file. +# +# CIDR-ADDRESS specifies the set of hosts the record matches. +# It is made up of an IP address and a CIDR mask that is an integer +# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies +# the number of significant bits in the mask. Alternatively, you can write +# an IP address and netmask in separate columns to specify the set of hosts. +# +# METHOD can be "trust", "reject", "md5", "crypt", "password", "gss", "sspi", +# "krb5", "ident", "pam" or "ldap". Note that "password" sends passwords +# in clear text; "md5" is preferred since it sends encrypted passwords. +# +# OPTION is the ident map or the name of the PAM service, depending on METHOD. +# +# Database and user names containing spaces, commas, quotes and other special +# characters must be quoted. Quoting one of the keywords "all", "sameuser" or +# "samerole" makes the name lose its special character, and just match a +# database or username with that name. +# +# This file is read on server startup and when the postmaster receives +# a SIGHUP signal. If you edit the file on a running system, you have +# to SIGHUP the postmaster for the changes to take effect. You can use +# "pg_ctl reload" to do that. + +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL listen +# on a non-local interface via the listen_addresses configuration parameter, +# or via the -i or -h command line switches. +# + + + + +# DO NOT DISABLE! +# If you change this first entry you will need to make sure that the +# database +# super user can access the database using some other method. +# Noninteractive +# access to all databases is required during automatic maintenance +# (autovacuum, daily cronjob, replication, and similar tasks). +# +# Database administrative login by UNIX sockets +local all postgres trust + +# TYPE DATABASE USER CIDR-ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all trust +# IPv4 local connections: +host all all 127.0.0.1/32 md5 +# IPv6 local connections: +host all all ::1/128 md5 Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/debian.postgresql.conf.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,499 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The "=" is optional.) Whitespace may be used. Comments are introduced with +# "#" anywhere on a line. The complete list of parameter names and allowed +# values can be found in the PostgreSQL documentation. +# +# The commented-out settings shown in this file represent the default values. +# Re-commenting a setting is NOT sufficient to revert it to the default value; +# you need to reload the server. +# +# This file is read on server startup and when the server receives a SIGHUP +# signal. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload". Some +# parameters, which are marked below, require a server shutdown and restart to +# take effect. +# +# Any parameter can also be given as a command-line option to the server, e.g., +# "postgres -c log_connections=on". Some paramters can be changed at run time +# with the "SET" SQL command. +# +# Memory units: kB = kilobytes MB = megabytes GB = gigabytes +# Time units: ms = milliseconds s = seconds min = minutes h = hours d = days + + +#------------------------------------------------------------------------------ +# FILE LOCATIONS +#------------------------------------------------------------------------------ + +# The default values of these variables are driven from the -D command-line +# option or PGDATA environment variable, represented here as ConfigDir. + +data_directory = '/var/lib/postgresql/<%= node.postgresql.version -%>/main' # use data in another directory + # (change requires restart) +hba_file = '/etc/postgresql/<%= node.postgresql.version -%>/main/pg_hba.conf' # host-based authentication file + # (change requires restart) +ident_file = '/etc/postgresql/<%= node.postgresql.version -%>/main/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +external_pid_file = '/var/run/postgresql/<%= node.postgresql.version -%>-main.pid' # write an extra PID file + # (change requires restart) + + +#------------------------------------------------------------------------------ +# CONNECTIONS AND AUTHENTICATION +#------------------------------------------------------------------------------ + +# - Connection Settings - + +#listen_addresses = 'localhost' # what IP address(es) to listen on; + # comma-separated list of addresses; + # defaults to 'localhost', '*' = all + # (change requires restart) +port = 5432 # (change requires restart) +max_connections = 100 # (change requires restart) +# Note: Increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). You might +# also need to raise shared_buffers to support more connections. +#superuser_reserved_connections = 3 # (change requires restart) +unix_socket_directory = '/var/run/postgresql' # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # begin with 0 to use octal notation + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - Security and Authentication - + +#authentication_timeout = 1min # 1s-600s +ssl = <%= node.postgresql.ssl -%> # (change requires restart) +#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers + # (change requires restart) +#password_encryption = on +#db_user_namespace = off + +# Kerberos and GSSAPI +#krb_server_keyfile = '' # (change requires restart) +#krb_srvname = 'postgres' # (change requires restart, Kerberos only) +#krb_server_hostname = '' # empty string matches any keytab entry + # (change requires restart, Kerberos only) +#krb_caseins_users = off # (change requires restart) +#krb_realm = '' # (change requires restart) + +# - TCP Keepalives - +# see "man 7 tcp" for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default + + +#------------------------------------------------------------------------------ +# RESOURCE USAGE (except WAL) +#------------------------------------------------------------------------------ + +# - Memory - + +shared_buffers = 24MB # min 128kB or max_connections*16kB + # (change requires restart) +#temp_buffers = 8MB # min 800kB +#max_prepared_transactions = 5 # can be 0 or more + # (change requires restart) +# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +#work_mem = 1MB # min 64kB +#maintenance_work_mem = 16MB # min 1MB +#max_stack_depth = 2MB # min 100kB + +# - Free Space Map - + +<% if node.postgresql.version == "8.4" %> +<% # max_fsm_pages doesn't exist on 8.4 %> +#max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each + # (change requires restart) +<% else %> +max_fsm_pages = 153600 # min max_fsm_relations*16, 6 bytes each + # (change requires restart) +<% end %> +#max_fsm_relations = 1000 # min 100, ~70 bytes each + # (change requires restart) + +# - Kernel Resource Usage - + +#max_files_per_process = 1000 # min 25 + # (change requires restart) +#shared_preload_libraries = '' # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0 # 0-1000 milliseconds +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 10 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 1-10000 credits + +# - Background Writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round +#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round + + +#------------------------------------------------------------------------------ +# WRITE AHEAD LOG +#------------------------------------------------------------------------------ + +# - Settings - + +#fsync = on # turns forced synchronization on or off +#synchronous_commit = on # immediate fsync at commit +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_buffers = 64kB # min 32kB + # (change requires restart) +#wal_writer_delay = 200ms # 1-10000 milliseconds + +#commit_delay = 0 # range 0-100000, in microseconds +#commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min # range 30s-1h +#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0 +#checkpoint_warning = 30s # 0 is off + +# - Archiving - + +#archive_mode = off # allows archiving to be done + # (change requires restart) +#archive_command = '' # command to use to archive a logfile segment +#archive_timeout = 0 # force a logfile segment switch after this + # time; 0 is off + + +#------------------------------------------------------------------------------ +# QUERY TUNING +#------------------------------------------------------------------------------ + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +#effective_cache_size = 128MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 + +# - Other Planner Options - + +#default_statistics_target = 10 # range 1-1000 +#constraint_exclusion = off +#from_collapse_limit = 8 +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOIN clauses + + +#------------------------------------------------------------------------------ +# ERROR REPORTING AND LOGGING +#------------------------------------------------------------------------------ + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, csvlog, syslog and eventlog, + # depending on platform. csvlog + # requires logging_collector to be on. + +# This is used when logging to stderr: +#logging_collector = off # Enable capturing of stderr and csvlog + # into log files. Required to be on for + # csvlogs. + # (change requires restart) + +# These are only used if logging_collector is on: +#log_directory = 'pg_log' # directory where log files are written, + # can be absolute or relative to PGDATA +#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, + # can include strftime() escapes +#log_truncate_on_rotation = off # If on, an existing log file of the + # same name as the new log file will be + # truncated rather than appended to. + # But such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. +#log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 to disable. +#log_rotation_size = 10MB # Automatic rotation of logfiles will + # happen after that much log output. + # 0 to disable. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + + +# - When to Log - + +#client_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error + +#log_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_error_verbosity = default # terse, default, or verbose messages + +#log_min_error_statement = error # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations, > 0 logs only + # statements running at least this time. + +#silent_mode = off # DO NOT USE without syslog or + # logging_collector + # (change requires restart) + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = off +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_hostname = off +log_line_prefix = '%t ' # special values: + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %p = process ID + # %t = timestamp without milliseconds + # %m = timestamp with milliseconds + # %i = command tag + # %c = session ID + # %l = session line number + # %s = session start timestamp + # %v = virtual transaction ID + # %x = transaction ID (0 if none) + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_lock_waits = off # log lock waits >= deadlock_timeout +#log_statement = 'none' # none, ddl, mod, all +#log_temp_files = -1 # log temporary files equal or larger + # than specified size; + # -1 disables, 0 logs all temp files +#log_timezone = unknown # actually, defaults to TZ environment + # setting + + +#------------------------------------------------------------------------------ +# RUNTIME STATISTICS +#------------------------------------------------------------------------------ + +# - Query/Index Statistics Collector - + +#track_activities = on +#track_counts = on +#update_process_title = on + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM PARAMETERS +#------------------------------------------------------------------------------ + +#autovacuum = on # Enable autovacuum subprocess? 'on' + # requires track_counts to also be on. +#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and + # their durations, > 0 logs only + # actions running at least that time. +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 50 # min number of row updates before + # vacuum +#autovacuum_analyze_threshold = 50 # min number of row updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = 20 # default vacuum cost delay for + # autovacuum, -1 means use + # vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#search_path = '"$user",public' # schema names +#default_tablespace = '' # a tablespace name, '' uses the default +#temp_tablespaces = '' # a list of tablespace names, '' uses + # only default tablespace +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#session_replication_role = 'origin' +#statement_timeout = 0 # 0 is disabled +#vacuum_freeze_min_age = 100000000 +#xmlbinary = 'base64' +#xmloption = 'content' + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +#timezone = unknown # actually, defaults to TZ environment + # setting +#timezone_abbreviations = 'Default' # Select the set of available time zone + # abbreviations. Currently, there are + # Default + # Australia + # India + # You can create your own file in + # share/timezonesets/. +#extra_float_digits = 0 # min -15, max 2 +#client_encoding = sql_ascii # actually, defaults to database + # encoding + +# These settings are initialized by initdb, but they can be changed. +#lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +#lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +#lc_numeric = 'en_US.UTF-8' # locale for number formatting +#lc_time = 'en_US.UTF-8' # locale for time formatting + +# default configuration for text search +default_text_search_config = 'pg_catalog.english' + +# - Other Defaults - + +#explain_pretty_print = on +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +# Note: Each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. + + +#------------------------------------------------------------------------------ +# VERSION/PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#add_missing_from = off +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#regex_flavor = advanced # advanced, extended, or basic +#sql_inheritance = on +#standard_conforming_strings = off +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +#custom_variable_classes = '' # list of custom variable class names Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.pg_hba.conf.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,74 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the +# PostgreSQL documentation for a complete description +# of this file. A short synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTIONS] +# host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] +# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] +# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: "local" is a Unix-domain socket, +# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an +# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. +# +# DATABASE can be "all", "sameuser", "samerole", a database name, or +# a comma-separated list thereof. +# +# USER can be "all", a user name, a group name prefixed with "+", or +# a comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names from +# a separate file. +# +# CIDR-ADDRESS specifies the set of hosts the record matches. +# It is made up of an IP address and a CIDR mask that is an integer +# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies +# the number of significant bits in the mask. Alternatively, you can write +# an IP address and netmask in separate columns to specify the set of hosts. +# +# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", "krb5", +# "ident", "pam", "ldap" or "cert". Note that "password" sends passwords +# in clear text; "md5" is preferred since it sends encrypted passwords. +# +# OPTIONS are a set of options for the authentication in the format +# NAME=VALUE. The available options depend on the different authentication +# methods - refer to the "Client Authentication" section in the documentation +# for a list of which options are available for which authentication methods. +# +# Database and user names containing spaces, commas, quotes and other special +# characters must be quoted. Quoting one of the keywords "all", "sameuser" or +# "samerole" makes the name lose its special character, and just match a +# database or username with that name. +# +# This file is read on server startup and when the postmaster receives +# a SIGHUP signal. If you edit the file on a running system, you have +# to SIGHUP the postmaster for the changes to take effect. You can use +# "pg_ctl reload" to do that. + +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL listen +# on a non-local interface via the listen_addresses configuration parameter, +# or via the -i or -h command line switches. +# + + + +# TYPE DATABASE USER CIDR-ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all ident +# IPv4 local connections: +host all all 127.0.0.1/32 ident +# IPv6 local connections: +host all all ::1/128 ident Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/postgresql/templates/default/redhat.postgresql.conf.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,501 @@ +# ----------------------------- +# PostgreSQL configuration file +# ----------------------------- +# +# This file consists of lines of the form: +# +# name = value +# +# (The "=" is optional.) Whitespace may be used. Comments are introduced with +# "#" anywhere on a line. The complete list of parameter names and allowed +# values can be found in the PostgreSQL documentation. +# +# The commented-out settings shown in this file represent the default values. +# Re-commenting a setting is NOT sufficient to revert it to the default value; +# you need to reload the server. +# +# This file is read on server startup and when the server receives a SIGHUP +# signal. If you edit the file on a running system, you have to SIGHUP the +# server for the changes to take effect, or use "pg_ctl reload". Some +# parameters, which are marked below, require a server shutdown and restart to +# take effect. +# +# Any parameter can also be given as a command-line option to the server, e.g., +# "postgres -c log_connections=on". Some parameters can be changed at run time +# with the "SET" SQL command. +# +# Memory units: kB = kilobytes Time units: ms = milliseconds +# MB = megabytes s = seconds +# GB = gigabytes min = minutes +# h = hours +# d = days + + +#------------------------------------------------------------------------------ +# FILE LOCATIONS +#------------------------------------------------------------------------------ + +# The default values of these variables are driven from the -D command-line +# option or PGDATA environment variable, represented here as ConfigDir. + +#data_directory = 'ConfigDir' # use data in another directory + # (change requires restart) +#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file + # (change requires restart) +#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file + # (change requires restart) + +# If external_pid_file is not explicitly set, no extra PID file is written. +#external_pid_file = '(none)' # write an extra PID file + # (change requires restart) + + +#------------------------------------------------------------------------------ +# CONNECTIONS AND AUTHENTICATION +#------------------------------------------------------------------------------ + +# - Connection Settings - + +#listen_addresses = 'localhost' # what IP address(es) to listen on; + # comma-separated list of addresses; + # defaults to 'localhost', '*' = all + # (change requires restart) +#port = 5432 # (change requires restart) +max_connections = 100 # (change requires restart) +# Note: Increasing max_connections costs ~400 bytes of shared memory per +# connection slot, plus lock space (see max_locks_per_transaction). +#superuser_reserved_connections = 3 # (change requires restart) +#unix_socket_directory = '' # (change requires restart) +#unix_socket_group = '' # (change requires restart) +#unix_socket_permissions = 0777 # begin with 0 to use octal notation + # (change requires restart) +#bonjour_name = '' # defaults to the computer name + # (change requires restart) + +# - Security and Authentication - + +#authentication_timeout = 1min # 1s-600s +#ssl = off # (change requires restart) +#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers + # (change requires restart) +#ssl_renegotiation_limit = 512MB # amount of data between renegotiations +#password_encryption = on +#db_user_namespace = off + +# Kerberos and GSSAPI +#krb_server_keyfile = '' +#krb_srvname = 'postgres' # (Kerberos only) +#krb_caseins_users = off + +# - TCP Keepalives - +# see "man 7 tcp" for details + +#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; + # 0 selects the system default +#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; + # 0 selects the system default +#tcp_keepalives_count = 0 # TCP_KEEPCNT; + # 0 selects the system default + + +#------------------------------------------------------------------------------ +# RESOURCE USAGE (except WAL) +#------------------------------------------------------------------------------ + +# - Memory - + +shared_buffers = 32MB # min 128kB + # (change requires restart) +#temp_buffers = 8MB # min 800kB +#max_prepared_transactions = 0 # zero disables the feature + # (change requires restart) +# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory +# per transaction slot, plus lock space (see max_locks_per_transaction). +# It is not advisable to set max_prepared_transactions nonzero unless you +# actively intend to use prepared transactions. +#work_mem = 1MB # min 64kB +#maintenance_work_mem = 16MB # min 1MB +#max_stack_depth = 2MB # min 100kB + +# - Kernel Resource Usage - + +#max_files_per_process = 1000 # min 25 + # (change requires restart) +#shared_preload_libraries = '' # (change requires restart) + +# - Cost-Based Vacuum Delay - + +#vacuum_cost_delay = 0ms # 0-100 milliseconds +#vacuum_cost_page_hit = 1 # 0-10000 credits +#vacuum_cost_page_miss = 10 # 0-10000 credits +#vacuum_cost_page_dirty = 20 # 0-10000 credits +#vacuum_cost_limit = 200 # 1-10000 credits + +# - Background Writer - + +#bgwriter_delay = 200ms # 10-10000ms between rounds +#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round +#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round + +# - Asynchronous Behavior - + +#effective_io_concurrency = 1 # 1-1000. 0 disables prefetching + + +#------------------------------------------------------------------------------ +# WRITE AHEAD LOG +#------------------------------------------------------------------------------ + +# - Settings - + +#fsync = on # turns forced synchronization on or off +#synchronous_commit = on # immediate fsync at commit +#wal_sync_method = fsync # the default is the first option + # supported by the operating system: + # open_datasync + # fdatasync + # fsync + # fsync_writethrough + # open_sync +#full_page_writes = on # recover from partial page writes +#wal_buffers = 64kB # min 32kB + # (change requires restart) +#wal_writer_delay = 200ms # 1-10000 milliseconds + +#commit_delay = 0 # range 0-100000, in microseconds +#commit_siblings = 5 # range 1-1000 + +# - Checkpoints - + +#checkpoint_segments = 3 # in logfile segments, min 1, 16MB each +#checkpoint_timeout = 5min # range 30s-1h +#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0 +#checkpoint_warning = 30s # 0 disables + +# - Archiving - + +#archive_mode = off # allows archiving to be done + # (change requires restart) +#archive_command = '' # command to use to archive a logfile segment +#archive_timeout = 0 # force a logfile segment switch after this + # number of seconds; 0 disables + + +#------------------------------------------------------------------------------ +# QUERY TUNING +#------------------------------------------------------------------------------ + +# - Planner Method Configuration - + +#enable_bitmapscan = on +#enable_hashagg = on +#enable_hashjoin = on +#enable_indexscan = on +#enable_mergejoin = on +#enable_nestloop = on +#enable_seqscan = on +#enable_sort = on +#enable_tidscan = on + +# - Planner Cost Constants - + +#seq_page_cost = 1.0 # measured on an arbitrary scale +#random_page_cost = 4.0 # same scale as above +#cpu_tuple_cost = 0.01 # same scale as above +#cpu_index_tuple_cost = 0.005 # same scale as above +#cpu_operator_cost = 0.0025 # same scale as above +#effective_cache_size = 128MB + +# - Genetic Query Optimizer - + +#geqo = on +#geqo_threshold = 12 +#geqo_effort = 5 # range 1-10 +#geqo_pool_size = 0 # selects default based on effort +#geqo_generations = 0 # selects default based on effort +#geqo_selection_bias = 2.0 # range 1.5-2.0 + +# - Other Planner Options - + +#default_statistics_target = 100 # range 1-10000 +#constraint_exclusion = partition # on, off, or partition +#cursor_tuple_fraction = 0.1 # range 0.0-1.0 +#from_collapse_limit = 8 +#join_collapse_limit = 8 # 1 disables collapsing of explicit + # JOIN clauses + + +#------------------------------------------------------------------------------ +# ERROR REPORTING AND LOGGING +#------------------------------------------------------------------------------ + +# - Where to Log - + +#log_destination = 'stderr' # Valid values are combinations of + # stderr, csvlog, syslog and eventlog, + # depending on platform. csvlog + # requires logging_collector to be on. + +# This is used when logging to stderr: +logging_collector = on # Enable capturing of stderr and csvlog + # into log files. Required to be on for + # csvlogs. + # (change requires restart) + +# These are only used if logging_collector is on: +log_directory = 'pg_log' # directory where log files are written, + # can be absolute or relative to PGDATA +log_filename = 'postgresql-%a.log' # log file name pattern, + # can include strftime() escapes +log_truncate_on_rotation = on # If on, an existing log file of the + # same name as the new log file will be + # truncated rather than appended to. + # But such truncation only occurs on + # time-driven rotation, not on restarts + # or size-driven rotation. Default is + # off, meaning append to existing files + # in all cases. +log_rotation_age = 1d # Automatic rotation of logfiles will + # happen after that time. 0 disables. +log_rotation_size = 0 # Automatic rotation of logfiles will + # happen after that much log output. + # 0 disables. + +# These are relevant when logging to syslog: +#syslog_facility = 'LOCAL0' +#syslog_ident = 'postgres' + +#silent_mode = off # Run server silently. + # DO NOT USE without syslog or + # logging_collector + # (change requires restart) + + +# - When to Log - + +#client_min_messages = notice # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # log + # notice + # warning + # error + +#log_min_messages = warning # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic + +#log_error_verbosity = default # terse, default, or verbose messages + +#log_min_error_statement = error # values in order of decreasing detail: + # debug5 + # debug4 + # debug3 + # debug2 + # debug1 + # info + # notice + # warning + # error + # log + # fatal + # panic (effectively off) + +#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements + # and their durations, > 0 logs only + # statements running at least this number + # of milliseconds + + +# - What to Log - + +#debug_print_parse = off +#debug_print_rewritten = off +#debug_print_plan = off +#debug_pretty_print = on +#log_checkpoints = off +#log_connections = off +#log_disconnections = off +#log_duration = off +#log_hostname = off +#log_line_prefix = '' # special values: + # %u = user name + # %d = database name + # %r = remote host and port + # %h = remote host + # %p = process ID + # %t = timestamp without milliseconds + # %m = timestamp with milliseconds + # %i = command tag + # %c = session ID + # %l = session line number + # %s = session start timestamp + # %v = virtual transaction ID + # %x = transaction ID (0 if none) + # %q = stop here in non-session + # processes + # %% = '%' + # e.g. '<%u%%%d> ' +#log_lock_waits = off # log lock waits >= deadlock_timeout +#log_statement = 'none' # none, ddl, mod, all +#log_temp_files = -1 # log temporary files equal or larger + # than the specified size in kilobytes; + # -1 disables, 0 logs all temp files +#log_timezone = unknown # actually, defaults to TZ environment + # setting + + +#------------------------------------------------------------------------------ +# RUNTIME STATISTICS +#------------------------------------------------------------------------------ + +# - Query/Index Statistics Collector - + +#track_activities = on +#track_counts = on +#track_functions = none # none, pl, all +#track_activity_query_size = 1024 +#update_process_title = on +#stats_temp_directory = 'pg_stat_tmp' + + +# - Statistics Monitoring - + +#log_parser_stats = off +#log_planner_stats = off +#log_executor_stats = off +#log_statement_stats = off + + +#------------------------------------------------------------------------------ +# AUTOVACUUM PARAMETERS +#------------------------------------------------------------------------------ + +#autovacuum = on # Enable autovacuum subprocess? 'on' + # requires track_counts to also be on. +#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and + # their durations, > 0 logs only + # actions running at least this number + # of milliseconds. +#autovacuum_max_workers = 3 # max number of autovacuum subprocesses +#autovacuum_naptime = 1min # time between autovacuum runs +#autovacuum_vacuum_threshold = 50 # min number of row updates before + # vacuum +#autovacuum_analyze_threshold = 50 # min number of row updates before + # analyze +#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum +#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze +#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum + # (change requires restart) +#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for + # autovacuum, in milliseconds; + # -1 means use vacuum_cost_delay +#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for + # autovacuum, -1 means use + # vacuum_cost_limit + + +#------------------------------------------------------------------------------ +# CLIENT CONNECTION DEFAULTS +#------------------------------------------------------------------------------ + +# - Statement Behavior - + +#search_path = '"$user",public' # schema names +#default_tablespace = '' # a tablespace name, '' uses the default +#temp_tablespaces = '' # a list of tablespace names, '' uses + # only default tablespace +#check_function_bodies = on +#default_transaction_isolation = 'read committed' +#default_transaction_read_only = off +#session_replication_role = 'origin' +#statement_timeout = 0 # in milliseconds, 0 is disabled +#vacuum_freeze_min_age = 50000000 +#vacuum_freeze_table_age = 150000000 +#xmlbinary = 'base64' +#xmloption = 'content' + +# - Locale and Formatting - + +datestyle = 'iso, mdy' +#intervalstyle = 'postgres' +#timezone = unknown # actually, defaults to TZ environment + # setting +#timezone_abbreviations = 'Default' # Select the set of available time zone + # abbreviations. Currently, there are + # Default + # Australia + # India + # You can create your own file in + # share/timezonesets/. +#extra_float_digits = 0 # min -15, max 2 +#client_encoding = sql_ascii # actually, defaults to database + # encoding + +# These settings are initialized by initdb, but they can be changed. +lc_messages = 'en_US.UTF-8' # locale for system error message + # strings +lc_monetary = 'en_US.UTF-8' # locale for monetary formatting +lc_numeric = 'en_US.UTF-8' # locale for number formatting +lc_time = 'en_US.UTF-8' # locale for time formatting + +# default configuration for text search +default_text_search_config = 'pg_catalog.english' + +# - Other Defaults - + +#dynamic_library_path = '$libdir' +#local_preload_libraries = '' + + +#------------------------------------------------------------------------------ +# LOCK MANAGEMENT +#------------------------------------------------------------------------------ + +#deadlock_timeout = 1s +#max_locks_per_transaction = 64 # min 10 + # (change requires restart) +# Note: Each lock table slot uses ~270 bytes of shared memory, and there are +# max_locks_per_transaction * (max_connections + max_prepared_transactions) +# lock table slots. + + +#------------------------------------------------------------------------------ +# VERSION/PLATFORM COMPATIBILITY +#------------------------------------------------------------------------------ + +# - Previous PostgreSQL Versions - + +#add_missing_from = off +#array_nulls = on +#backslash_quote = safe_encoding # on, off, or safe_encoding +#default_with_oids = off +#escape_string_warning = on +#regex_flavor = advanced # advanced, extended, or basic +#sql_inheritance = on +#standard_conforming_strings = off +#synchronize_seqscans = on + +# - Other Platforms and Clients - + +#transform_null_equals = off + + +#------------------------------------------------------------------------------ +# CUSTOMIZED OPTIONS +#------------------------------------------------------------------------------ + +#custom_variable_classes = '' # list of custom variable class names Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/README.rdoc 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,7 @@ += DESCRIPTION: + +These recipes are used by Globus Provision; they are not meant to be used +directly. Please refer to the Globus Provision documentation for instructions +on how to deploy and configure a Globus system using these recipes. + + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/attributes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,22 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +# Default attributes. +# For now, only directories where software is going to be installed. + +default[:galaxy][:dir] = "/nfs/software/galaxy" +default[:blast][:dir] = "/nfs/software/blast" +default[:globus][:simpleCA] = "/var/lib/globus/simple_ca" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/auto.master 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,2 @@ ++auto.master +/nfs /etc/auto.nfs Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/grid-ca-ssl.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,92 @@ +# +# SSLeay example configuration file. +# This is mostly being used for generation of certificate requests. +# + +RANDFILE = $ENV::HOME/.rnd + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = /var/lib/globus/simple_ca/ +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = x509v3_extensions # The extentions to add to the cert +default_days = 365 # how long to certify for +default_crl_days= 365 # DEE 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = optional +stateOrProvinceName = optional +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +x509_extensions = v3_ca +req_extensions = v3_req + +[ req_distinguished_name ] +# BEGIN CONFIG +0.organizationName = Level 0 Organization +0.organizationName_default = Grid +0.organizationalUnitName = Level 0 Organizational Unit +0.organizationalUnitName_default = DemoGrid +commonName = Name (e.g., John M. Smith) +commonName_max = 64 +# END CONFIG + +[ v3_ca ] +basicConstraints = critical,CA:true +subjectKeyIdentifier = hash +nsCertType = sslCA,emailCA,objCA + +[ v3_req ] +nsCertType = sslCA,emailCA,objCA + +[ x509v3_extensions ] +nsCertType = objsign,email,server,client + + + + + + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-common 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,19 @@ +# If you do not set values for the NEED_ options, they will be attempted +# autodetected; this should be sufficient for most people. Valid alternatives +# for the NEED_ options are "yes" and "no". + +# Do you want to start the statd daemon? It is not needed for NFSv4. +NEED_STATD=no + +# Options for rpc.statd. +# Should rpc.statd listen on a specific port? This is especially useful +# when you have a port-based firewall. To use a fixed port, set this +# this variable to a statd argument like: "--port 4000 --outgoing-port 4001". +# For more information, see rpc.statd(8) or http://wiki.debian.org/?SecuringNFS +STATDOPTS= + +# Do you want to start the idmapd daemon? It is only needed for NFSv4. +NEED_IDMAPD=yes + +# Do you want to start the gssd daemon? It is required for Kerberos mounts. +NEED_GSSD= Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nfs-kernel-server 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,18 @@ +# Number of servers to start up +RPCNFSDCOUNT=8 + +# Runtime priority of server (see nice(1)) +RPCNFSDPRIORITY=0 + +# Options for rpc.mountd. +# If you have a port-based firewall, you might want to set up +# a fixed port here using the --port option. For more information, +# see rpc.mountd(8) or http://wiki.debian.org/?SecuringNFS +RPCMOUNTDOPTS="--manage-gids --port 34000" + +# Do you want to start the svcgssd daemon? It is only required for Kerberos +# exports. Valid alternatives are "yes" and "no"; the default is "no". +NEED_SVCGSSD= + +# Options for rpc.svcgssd. +RPCSVCGSSDOPTS= Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/files/default/nis 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,35 @@ +# +# /etc/defaults/nis Configuration settings for the NIS daemons. +# + +# Are we a NIS server and if so what kind (values: false, slave, master)? +NISSERVER=master + +# Are we a NIS client? +NISCLIENT=false + +# Location of the master NIS password file (for yppasswdd). +# If you change this make sure it matches with /var/yp/Makefile. +YPPWDDIR=/etc + +# Do we allow the user to use ypchsh and/or ypchfn ? The YPCHANGEOK +# fields are passed with -e to yppasswdd, see it's manpage. +# Possible values: "chsh", "chfn", "chsh,chfn" +YPCHANGEOK=chsh + +# NIS master server. If this is configured on a slave server then ypinit +# will be run each time NIS is started. +NISMASTER= + +# Additional options to be given to ypserv when it is started. +YPSERVARGS= + +# Additional options to be given to ypbind when it is started. +YPBINDARGS=-no-dbus + +# Additional options to be given to yppasswdd when it is started. Note +# that if -p is set then the YPPWDDIR above should be empty. +YPPASSWDDARGS= + +# Additional options to be given to ypxfrd when it is started. +YPXFRDARGS= Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.json 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,39 @@ +{ + "dependencies": { + + }, + "platforms": { + + }, + "long_description": "= DESCRIPTION:\n\n= REQUIREMENTS:\n\n= ATTRIBUTES:\n\n= USAGE:\n\n", + "providing": { + + }, + "maintainer": "YOUR_COMPANY_NAME", + "recipes": { + + }, + "replacing": { + + }, + "license": "All rights reserved", + "maintainer_email": "YOUR_EMAIL", + "groupings": { + + }, + "version": "0.0.1", + "recommendations": { + + }, + "description": "Installs/Configures demogrid", + "suggestions": { + + }, + "name": "demogrid", + "attributes": { + + }, + "conflicting": { + + } +} \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/metadata.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,6 @@ +maintainer "YOUR_COMPANY_NAME" +maintainer_email "YOUR_EMAIL" +license "All rights reserved" +description "Installs/Configures Globus Provision" +long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc')) +version "0.0.1" Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ca.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,139 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: CA certificate +## +## This recipe installs the CA certificate used to generate the user and +## host certificates in a Globus Provision instance. If no CA certificate +## was specified explicitly in the configuration file, then a self-signed +## certificate will be created on-the-fly by ``gp-start``. +## +## The certificate is installed not just as a trusted certificate, but also +## as a certificate that will be recognized by ``grid-cert-request`` when +## requesting a certificate. +## +## Note that this only installs the certificate, not the private key. To +## set up a node to act as an actual CA (for example, to use with MyProxy) +## use the ``simpleca`` recipe. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +require "openssl" + +r = cookbook_file "#{node[:scratch_dir]}/gp-ca-cert.pem" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" + action :nothing +end + +r.run_action(:create) + +node.default[:ca_cert] = OpenSSL::X509::Certificate.new(File.read("#{node[:scratch_dir]}/gp-ca-cert.pem")) +node.default[:ca_cert_hash] = "%08x" % node.default[:ca_cert].subject.hash + +subject = {} +node.default[:ca_cert].subject.to_a.each do |name,value,n| + subject[name.downcase]=value +end +node.default[:ca_cert_subject] = subject +# Create the grid-security directory + +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + +directory "/etc/grid-security/certificates" do + owner "root" + group "root" + mode "0755" + action :create +end + + +# Copy the certificate itself. +# Note that the certificate is generated by demogrid-prepare, and then +# placed in the cookbook's files directory. + +cookbook_file "/etc/grid-security/certificates/#{node.default[:ca_cert_hash]}.0" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" +end + +# Copy a lot of other supporting files. + +template "/etc/grid-security/certificates/#{node.default[:ca_cert_hash]}.signing_policy" do + source "signing_policy.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert] + ) +end + +template "/etc/grid-security/certificates/globus-user-ssl.conf.#{node.default[:ca_cert_hash]}" do + source "globus-ssl.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert], + :type => :user + ) +end + +template "/etc/grid-security/certificates/globus-host-ssl.conf.#{node.default[:ca_cert_hash]}" do + source "globus-ssl.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert], + :type => :host + ) +end + +template "/etc/grid-security/certificates/grid-security.conf.#{node.default[:ca_cert_hash]}" do + source "grid-security.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :subject => node.default[:ca_cert_subject] + ) +end + +link "/etc/grid-security/globus-host-ssl.conf" do + to "/etc/grid-security/certificates/globus-host-ssl.conf.#{node.default[:ca_cert_hash]}" +end + +link "/etc/grid-security/globus-user-ssl.conf" do + to "/etc/grid-security/certificates/globus-user-ssl.conf.#{node.default[:ca_cert_hash]}" +end + +link "/etc/grid-security/grid-security.conf" do + to "/etc/grid-security/certificates/grid-security.conf.#{node.default[:ca_cert_hash]}" +end + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# RECIPE: Default recipe. +# +# This cookbook has no default recipe. +# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/domain_users.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,154 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Domain users +## +## This recipe creates the users in a domain. +## +## This recipe will work both on a node that has the ``nfs_server`` and/or +## ``nis_server`` recipes on it (in which case global accounts will be +## created) and on a node that is not an NFS/NIS server (in which case, +## local accounts will be created). +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# Necessary to create users +package "libshadow-ruby1.8" do + action :install +end + +# Create the "Globus Provision Admins" group. +# Users in this group have passwordless sudo access +# on all nodes. +group "gp-admins" do + gid 3000 +end + + +# The :users attribute is part of the generated topology.rb file, +# and contains information on a domain's users (username, +# password, etc.) +users = gp_domain[:users].to_hash + +if gp_domain[:nfs_server] + homedirs = "/nfs/home" +else + homedirs = "/home" +end + + +# We start by creating the domain's users. +users.values.each do |u| + # Create the user + user u[:id] do + not_if "id #{u[:id]}" + comment u[:description] + gid 100 + home "#{homedirs}/#{u[:id]}" + password u[:password_hash] + shell "/bin/bash" + supports :manage_home => true + notifies :run, "execute[rebuild_yp]" + end + + auth_keys = "#{homedirs}/#{u[:id]}/.ssh/authorized_keys" + key_file = "#{homedirs}/#{u[:id]}/.ssh/id_rsa" + pkey_file = key_file+".pub" + + # Create passwordless SSH key + execute "ssh-keygen" do + not_if do File.exists?(key_file) end + user u[:id] + command "ssh-keygen -N \"\" -f #{key_file}" + action :run + end + + file auth_keys do + owner u[:id] + mode "0644" + action :create + end + + # Create the authorized_keys file. + execute "add_pkey" do + only_if do + pkey = File.read(pkey_file) + File.read(auth_keys).index(pkey).nil? + end + user "root" + group "root" + command "cat #{pkey_file} >> #{auth_keys}" + action :run + end + + execute "add_topology_pkey" do + only_if do + u[:ssh_pkey] and File.read(auth_keys).index(u[:ssh_pkey]).nil? + end + user "root" + group "root" + command "echo #{u[:ssh_pkey]} >> #{auth_keys}" + action :run + end + + group "gp-admins" do + only_if do u[:admin] end + members [u[:id]] + append true + action :modify + end + +end + +# If we specified that this domain's users will use certificates +# for authentication, then we need to copy the certificate and key +# into their .globus directory. +users.values.select{|u| u[:certificate] == "generated"}.each do |u| + directory "#{homedirs}/#{u[:id]}/.globus" do + owner u[:id] + group "users" + mode "0755" + action :create + end + + cookbook_file "#{homedirs}/#{u[:id]}/.globus/usercert.pem" do + source "#{u[:id]}_cert.pem" + mode 0644 + owner u[:id] + group "users" + end + + cookbook_file "#{homedirs}/#{u[:id]}/.globus/userkey.pem" do + source "#{u[:id]}_key.pem" + mode 0400 + owner u[:id] + group "users" + end +end + +# We need to run this for changes to take effect in the NIS server. +execute "rebuild_yp" do + only_if do gp_domain[:nis_server] end + user "root" + group "root" + command "make -C /var/yp" + action :nothing +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/ec2.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: EC2 AMI software pre-install +## +## This recipe preinstalls a subset of the software used on a Globus Provision +## instance to speed up subsequent deployments. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +package "libshadow-ruby1.8" +package "nis" +package "portmap" +package "nfs-common" +package "autofs" +package "xinetd" +package "libssl0.9.8" + +include_recipe "globus::client-tools" +package "globus-simple-ca" +package "myproxy-server" +package "globus-gridftp-server-progs" +package "libglobus-xio-gsi-driver-dev" + +include_recipe "condor::condor" +include_recipe "java" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gp_node.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,56 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Globus Provision common actions +## +## This recipe performs actions that are common to all Globus Provision nodes. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# Copy the hosts file +cookbook_file "/etc/hosts" do + source "hosts" + mode 0644 + owner "root" + group "root" +end + +# Create a BASH profile file with Globus Provision variables +file "/etc/profile.d/globusprovision" do + mode 0644 + owner "root" + group "root" + content "export MYPROXY_SERVER=#{gp_domain[:myproxy_server]}" +end + +# Add passwordless access to members of the gp-admins group +execute "add_sudoers" do + line = "%gp-admins ALL=NOPASSWD: ALL" + only_if do + File.read("/etc/sudoers").index(line).nil? + end + user "root" + group "root" + command "echo \"#{line}\" >> /etc/sudoers" + action :run +end + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/gridmap.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,57 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Gridmap file +## +## This recipe creates a gridmap file with the entries specified in the topoloy. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# Create grid-security directory. +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + +# If it does not exist, create an empty gridmap file. +file "/etc/grid-security/grid-mapfile" do + owner "root" + group "root" + mode "0644" + action :create +end + +# Create gridmap +# Note: Will be regenerated from scratch on subsequent runs of Chef. +# TODO: Read in existing gridmap, and merge it with provided one (shouldn't be hard +# to do, but not necessary right now) +gridmap = gp_domain[:gridmap].to_a +template "/etc/grid-security/grid-mapfile" do + source "gridmap.erb" + mode 0644 + owner "root" + group "root" + variables( + :gridmap => gridmap + ) +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/hostcert.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,49 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: Host certificate +## +## Adds a host certificate to the node. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Create grid-security directory +directory "/etc/grid-security" do + owner "root" + group "root" + mode "0755" + action :create +end + + +# Copy the certificate and key. + +cookbook_file "/etc/grid-security/hostcert.pem" do + source "#{node[:node_id]}_cert.pem" + mode 0644 + owner "root" + group "root" +end + +cookbook_file "/etc/grid-security/hostkey.pem" do + source "#{node[:node_id]}_key.pem" + mode 0400 + owner "root" + group "root" +end + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_client.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,133 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NFS client +## +## Set up node so it will have access to its domain's NFS server. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# The nfs_server attribute is part of the generated topology.rb file, +# and contains the IP of the domain's NFS server. +server = gp_domain[:nfs_server_ip] + + +# Packages we need + +package "nfs-common" +package "autofs" + +# Set configuration options for NFSv4 +cookbook_file "/etc/default/nfs-common" do + source "nfs-common" + mode 0644 + owner "root" + group "root" + notifies :run, "execute[nfs services restart]", :immediately +end + + +# Set up the home directories so they will be automounted. + +if ! File.exists?("/nfs") + # Create the directory where the NFS directories will be mounted + directory "/nfs" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + # Create the directory where home directories will be mounted + directory "/nfs/home" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + # Create the directory where scratch directory will be mounted + directory "/nfs/scratch" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + # Create the directory where software directory will be mounted + directory "/nfs/software" do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end +end + + +cookbook_file "/etc/auto.master" do + source "auto.master" + mode 0644 + owner "root" + group "root" +end + +template "/etc/auto.nfs" do + source "auto.nfs.erb" + mode 0644 + owner "root" + group "root" + variables( + :server => server + ) + notifies :restart, "service[autofs]", :immediately +end + +execute "nfs services restart" do + user "root" + group "root" + action :nothing + case node.platform + when "debian" + command "/etc/init.d/nfs-common restart" + when "ubuntu" + command "service idmapd --full-restart" + end +end + +service "autofs" + +# Add /nfs/software/bin to everyone's environment (we do this in /etc/enviroment +# instead of /etc/profile.d/ (which is BASH-specific) because daemons started by +# init scripts don't necessarily load BASH environment information. +# Note that if this file is modified and /nfs/software/bin is removed from the path, +# subsequent runs of Chef will replace it will a file with just the PATH variable +file "/etc/environment" do + only_if do + File.read("/etc/environment").index(/PATH=.*\/nfs\/software\/bin.*/).nil? + end + owner "root" + mode "0644" + content "PATH=\"/nfs/software/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games\"\n" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nfs_server.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,152 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NFS Server +## +## Set up a domain's NFS server and its shared directories. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +subnet = nil + +# Install the NFS server package +package "nfs-kernel-server" do + action :install +end + + +# Configuration file with fixed port +cookbook_file "/etc/default/nfs-kernel-server" do + source "nfs-kernel-server" + mode 0644 + owner "root" + group "root" +end + +# Set configuration options for NFSv4 +cookbook_file "/etc/default/nfs-common" do + source "nfs-common" + mode 0644 + owner "root" + group "root" +end + +template "/etc/hosts.allow" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :allow + ) +end + +template "/etc/hosts.deny" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :deny + ) +end + +# Create directories + +# Home directories +directory "/nfs/home" do + owner "root" + group "root" + mode "0755" + recursive true + action :create +end + +# Scratch directory +# This is a kludge: it assumes that ephemeral storage will be mounted +# on /mnt. If it is not, the recipe should still work since /mnt +# has to be empty, but keeping the scratch directory there is not ideal. +# A more general-purpose solution would be preferable (ideally by +# specifying these shared directories in the topology) +directory "/mnt/scratch" do + owner "root" + group "root" + mode 01777 + recursive true + action :create +end + +link "/nfs/scratch" do + to "/mnt/scratch" +end + +# Software directories +directory "/nfs/software" do + owner "root" + group "root" + mode "0755" + recursive true + action :create +end + +# /nfs/software/bin will be in every user's $PATH +# For an executable in /nfs/software to be in the user's PATH, +# the corresponding recipe should create a symbolic link from +# /nfs/software/bin to the executable +directory "/nfs/software/bin" do + owner "root" + group "root" + mode "0755" + recursive true + action :create +end + +# Add exports +template "/etc/exports" do + source "exports.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet + ) + notifies :restart, "service[nfs-kernel-server]" + notifies :run, "execute[nfs services restart]" +end + + +# Restart NFS +service "nfs-kernel-server" + +execute "nfs services restart" do + user "root" + group "root" + action :nothing + case node.platform + when "debian" + command "/etc/init.d/nfs-common restart" + when "ubuntu" + command "service statd --full-restart; service idmapd --full-restart" + end +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_client.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,88 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NIS client +## +## Set up node so it will have access to its domain's NIS server, allowing +## domain users to log into it. +## +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +# The nis_server attribute is part of the generated topology.rb file, +# and contains the IP of the domain's NFS/NIS server. +server = gp_domain[:nis_server_ip] + + +# Packages we need + +package "nis" +package "portmap" + + +# Modify various configuration files to enable access to the NIS server. + +execute "add_passwd_entry" do + only_if do + File.read("/etc/passwd").index("+::::::").nil? + end + user "root" + group "root" + command "echo +:::::: >> /etc/passwd" + action :run + notifies :restart, "service[nis]" +end + +execute "add_shadow_entry" do + only_if do + File.read("/etc/shadow").index("+::::::::").nil? + end + user "root" + group "root" + command "echo +:::::::: >> /etc/shadow" + action :run + notifies :restart, "service[nis]" +end + +execute "add_group_entry" do + only_if do + File.read("/etc/group").index("+:::").nil? + end + user "root" + group "root" + command "echo +::: >> /etc/group" + action :run + notifies :restart, "service[nis]" +end + +file "/etc/yp.conf" do + owner "root" + mode "0644" + content "ypserver #{server}" + notifies :restart, "service[nis]", :immediately +end + +# Restart NIS +service "nis" + +execute "update-rc.d nis defaults" do + user "root" + group "root" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/nis_server.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,104 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: NIS Server +## +## Set up an domain's NIS server. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +gp_domain = node[:topology][:domains][node[:domain_id]] +gp_node = gp_domain[:nodes][node[:node_id]] + +subnet = nil + +# Packages we need + +package "nis" +package "portmap" + + +# Only allow access to the nodes in that domain's subnet + +template "/etc/hosts.allow" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :allow + ) +end + +template "/etc/hosts.deny" do + source "hosts.denyallow.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet, + :type => :deny + ) +end + +cookbook_file "/etc/default/nis" do + source "nis" + mode 0644 + owner "root" + group "root" + notifies :restart, "service[nis]" + notifies :run, "execute[ypinit]" +end + +file "/etc/yp.conf" do + owner "root" + mode "0644" + content "domain grid.example.org server #{gp_node[:hostname]}" + notifies :restart, "service[nis]" + notifies :run, "execute[ypinit]" +end + +template "/etc/ypserv.securenets" do + source "ypserv.securenets.erb" + mode 0644 + owner "root" + group "root" + variables( + :subnet => subnet + ) + notifies :run, "execute[ypinit]" +end + + +# Restart services so the changes take effect. + +execute "ypinit" do + user "root" + group "root" + command "echo | /usr/lib/yp/ypinit -m" + action :nothing +end + +service "nis" + +execute "update-rc.d nis defaults" do + user "root" + group "root" +end Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/recipes/simpleca.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,133 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +## +## RECIPE: SimpleCA +## +## This recipe installs the CA certificate and key so the node can use SimpleCA +## commands to sign certificate requests. +## +## Note that, instead of using grid-create-ca, we set up all the necessary files +## manually. This is necessary since the CA certificate already exists when the +## recipes are run (it is either created by Globus Provision or provided +## explicitly by the user), and we need to install that specific CA. +## +##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +if ! File.exists?(node[:globus][:simpleCA] ) + + require "openssl" + + r = cookbook_file "#{node[:scratch_dir]}/gp-ca-cert.pem" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" + action :nothing + end + + r.run_action(:create) + + node.default[:ca_cert] = OpenSSL::X509::Certificate.new(File.read("#{node[:scratch_dir]}/gp-ca-cert.pem")) + node.default[:ca_cert_hash] = "%08x" % node.default[:ca_cert].subject.hash + + # Create the basic directory structure + + directory node[:globus][:simpleCA] do + owner "root" + group "root" + mode "0755" + action :create + recursive true + end + + directory "#{node[:globus][:simpleCA]}/certs" do + owner "root" + group "root" + mode "0755" + action :create + end + + directory "#{node[:globus][:simpleCA]}/crl" do + owner "root" + group "root" + mode "0755" + action :create + end + + directory "#{node[:globus][:simpleCA]}/newcerts" do + owner "root" + group "root" + mode "0755" + action :create + end + + directory "#{node[:globus][:simpleCA]}/private" do + owner "root" + group "root" + mode "0700" + action :create + end + + + # Copy the CA certificate and key. + cookbook_file "#{node[:globus][:simpleCA]}/cacert.pem" do + source "ca_cert.pem" + mode 0644 + owner "root" + group "root" + end + + cookbook_file "#{node[:globus][:simpleCA]}/private/cakey.pem" do + source "ca_key.pem" + mode 0400 + owner "root" + group "root" + end + + # Various configuration files needed in the CA directory + + template "#{node[:globus][:simpleCA]}/grid-ca-ssl.conf" do + source "globus-ssl.conf.erb" + mode 0644 + owner "root" + group "root" + variables( + :certificate => node.default[:ca_cert], + :type => :ca + ) + end + + file "#{node[:globus][:simpleCA]}/index.txt" do + owner "root" + group "root" + mode "0644" + action :create + end + + file "#{node[:globus][:simpleCA]}/serial" do + owner "root" + group "root" + mode "0644" + action :create + content "01\n" + end + +end + + + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.home.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1 @@ +* -fstype=nfs4 <%=@server%>:/nfs/home/& \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/auto.nfs.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,3 @@ +scratch -fstype=nfs4 <%=@server%>:/mnt/scratch +software -fstype=nfs4 <%=@server%>:/nfs/software +home -fstype=nfs4 <%=@server%>:/nfs/home Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/exports.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,9 @@ +<% if @subnet %> +/nfs/home <%= @subnet %>/24(rw,root_squash,no_subtree_check,sync) +/mnt/scratch <%= @subnet %>/24(rw,root_squash,no_subtree_check,sync) +/nfs/software <%= @subnet %>/24(rw,root_squash,no_subtree_check,sync) +<% else %> +/nfs/home (rw,root_squash,no_subtree_check,sync) +/mnt/scratch (rw,root_squash,no_subtree_check,sync) +/nfs/software (rw,root_squash,no_subtree_check,sync) +<% end %> Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/globus-ssl.conf.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,109 @@ +# +# SSLeay example configuration file. +# This is mostly being used for generation of certificate requests. +# + +RANDFILE = $ENV::HOME/.rnd + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = /var/lib/globus/simple_ca # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key +RANDFILE = $dir/private/.rand # private random number file + +x509_extensions = x509v3_extensions # The extentions to add to the cert +default_days = 365 # how long to certify for +default_crl_days= 365 # DEE 30 # how long before next CRL +default_md = sha1 # which md to use. +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = optional +stateOrProvinceName = optional +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 1024 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +x509_extensions = v3_ca +req_extensions = v3_req + +[ req_distinguished_name ] +# BEGIN CONFIG +<% +oucount = 0 +ocount = 0 + at certificate.subject.to_a.each do |name, value, n| + case + when name.match(/^[Cc]$/) %> +countryName = Country Name (2 letter code) +countryName_default = <%= value %> +countryName_min = 2 +countryName_max = 2 +<% when name.match(/^[Oo]$/) %> +<%= ocount %>.organizationName = Level <%= ocount %> Organization +<%= ocount %>.organizationName_default = <%= value %> +<% ocount += 1 %> +<% when name.match(/^[Oo][Uu]$/) %> +<%= oucount %>.organizationalUnitName = Level <%= oucount %> Organizational Unit +<%= oucount %>.organizationalUnitName_default = <%= value %> +<% oucount += 1 %> +<% when name.match(/^[Cc][Nn]$/) + if @type == :user %> +<%= oucount %>.organizationalUnitName = Level <%= oucount %> Organizational Unit +<%= oucount %>.organizationalUnitName_default = local +<% end %> +commonName = Name (E.g., John M. Smith) +commonName_max = 64 +<% else + raise "Unknown subject name component" + end +end%> +# END CONFIG + +[ v3_ca ] +basicConstraints = critical,CA:true +subjectKeyIdentifier = hash +nsCertType = sslCA,emailCA,objCA + +[ v3_req ] +nsCertType = sslCA,emailCA,objCA + +[ x509v3_extensions ] +nsCertType = objsign,email,server,client Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/grid-security.conf.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,41 @@ +################################################################# +# +# File: grid-security.conf +# +# Purpose: This file contains the configuration information +# for the Grid Security Infrastructure +# +################################################################# + +# These values are set by grid-ca-create +SETUP_GSI_HOST_BASE_DN="$SETUP_GSI_HOST_BASE_DN" +SETUP_GSI_USER_BASE_DN="$SETUP_GSI_USER_BASE_DN" +SETUP_GSI_CA_NAME="$SETUP_GS_CA_NAME" +SETUP_GSI_CA_EMAIL_ADDR="$SETUP_GSI_CA_EMAIL_ADDR" + +DEFAULT_GSI_HOST_BASE_DN="<%= @subject.select{|k,v| k != "cn"}.collect{|x| x[0]+"="+x[1]}.join ", " %>" +DEFAULT_GSI_USER_BASE_DN="<%= @subject.select{|k,v| k != "cn"}.collect{|x| x[0]+"="+x[1]}.join ", " %>" +DEFAULT_GSI_CA_NAME="<%= @subject["cn"] %>" +DEFAULT_GSI_CA_EMAIL_ADDR="ca at globusprovision.example.org" + +# Distinguish Name (DN) of the Host +GSI_HOST_BASE_DN="${SETUP_GSI_HOST_BASE_DN:-${DEFAULT_GSI_HOST_BASE_DN}}" + +# Distinguish Name (DN) of the User +GSI_USER_BASE_DN="${SETUP_GSI_USER_BASE_DN:-${DEFAULT_GSI_USER_BASE_DN}}" + +# CA Name for the organization +GSI_CA_NAME="${SETUP_GSI_CA_NAME:-${DEFAULT_GSI_CA_NAME}}" + +# CA Email address for the organization +GSI_CA_EMAIL_ADDR="${SETUP_GSI_CA_EMAIL_ADDR:-${DEFAULT_GSI_CA_EMAIL_ADDR}}" + +export GSI_HOST_BASE_DN +export GSI_USER_BASE_DN +export GSI_CA_NAME +export GSI_CA_EMAIL_ADDR + + + + + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/gridmap.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +<% @gridmap.each do |g| %> +"<%= g[:dn] %>" <%= g[:login] %> +<% end %> + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/hosts.denyallow.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,11 @@ +<% if @subnet %> + <% if @type == :allow %> +mountd nfsd statd lockd rquotad portmap ypserv ypbind: <%= @subnet %>/24 + <% elsif @type == :deny %> +mountd nfsd statd lockd rquotad portmap ypserv ypbind: ALL + <% end %> +<% else %> + <% if @type == :allow %> +mountd nfsd statd lockd rquotad portmap ypserv ypbind: ALL + <% end %> +<% end %> \ No newline at end of file Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/signing_policy.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,5 @@ +access_id_CA X509 '<%= @certificate.subject.to_s %>' + +pos_rights globus CA:sign + +cond_subjects globus '"<%= @certificate.subject.to_s.sub(/CN=.*/, "*") %>"' Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/cookbooks/provision/templates/default/ypserv.securenets.erb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,8 @@ +# Always allow access for localhost +255.0.0.0 127.0.0.0 + +<% if @subnet %> +255.255.255.0 <%= @subnet %> +<% else %> +0.0.0.0 0.0.0.0 +<% end %> Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/README.md 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,16 @@ +Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife. + +For example, create `roles/base_example.rb`: + + name "base_example" + description "Example base role applied to all nodes." + # List of recipes and roles to apply. Requires Chef 0.8, earlier versions use 'recipes()'. + #run_list() + # Attributes applied if the node doesn't have it set already. + #default_attributes() + # Attributes applied no matter what the node has set already. + #override_attributes() + +Then upload it to the Chef Server: + + knife role from file roles/base_example.rb Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-clusternode-condor.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-clusternode-condor" +description "A domain's Condor worker node" +run_list "recipe[condor::condor_worker]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-condor.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-condor" +description "A domain's Condor head node" +run_list "recipe[condor::condor_head]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-default.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-gridftp-default" +description "A domain's GridFTP machine" +run_list "role[globus]", "recipe[globus::gridftp-default]", "recipe[provision::gridmap]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-gridftp-gc.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-gridftp-gc" +description "A domain's GridFTP machine (using a Globus Connect certificate)" +run_list "role[globus]", "recipe[globus::gridftp-gc]", "recipe[provision::gridmap]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-myproxy.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-myproxy" +description "A domain's MyProxy server" +run_list "role[globus]", "recipe[provision::simpleca]", "recipe[provision::ca]", "recipe[globus::myproxy]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis-client.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-nfsnis-client" +description "A domain's client machine (any machine that is not the NFS/NIS server)" +run_list "recipe[provision::gp_node]", "recipe[provision::nis_client]", "recipe[provision::nfs_client]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/domain-nfsnis.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "domain-nfsnis" +description "An domain's NFS/NIS server" +run_list "recipe[provision::gp_node]", "recipe[provision::nis_server]", "recipe[provision::nfs_server]", "recipe[provision::domain_users]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/chef-files/roles/globus.rb 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,4 @@ +name "globus" +description "A machine running Globus" +run_list "recipe[globus::client-tools]", "recipe[provision::ca]", "recipe[provision::hostcert]" + Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,176 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +from globus.provision.core.topology import Topology, Node +import tempfile +from globus.provision.common.threads import SIGINTWatcher + +""" +The CLI: A console frontend to Globus Provision that allows a user to request instances, +start them, etc. +""" + +import subprocess +from optparse import OptionParser, OptionGroup +import os +import os.path +import getpass +import colorama +from colorama import Fore, Style +from globus.provision.common import defaults +from globus.provision.common import log +from globus.provision import RELEASE + +class Command(object): + """Base class for all Globus Provisioning commands""" + + def __init__(self, argv, root = False, disable_sigintwatch = False): + + if root: + if getpass.getuser() != "root": + print "Must run as root" + exit(1) + + self.argv = argv + self.optparser = OptionParser(version = RELEASE) + self.opt = None + self.args = None + + common_opts = OptionGroup(self.optparser, "Common options", "These options are common to all Globus Provision commands") + self.optparser.add_option_group(common_opts) + + common_opts.add_option("-v", "--verbose", + action="store_true", dest="verbose", + help = "Produce verbose output.") + + common_opts.add_option("-d", "--debug", + action="store_true", dest="debug", + help = "Write debugging information. Implies -v.") + + common_opts.add_option("-i", "--instances-dir", + action="store", type="string", dest="dir", + default = defaults.INSTANCE_LOCATION, + help = "Use this directory to store information about the instances " + "(instead of the default ~/.globusprovision/instances/)") + + colorama.init(autoreset = True) + + if not disable_sigintwatch: + SIGINTWatcher(self.cleanup_after_kill) + + + def parse_options(self): + opt, args = self.optparser.parse_args(self.argv) + + self.opt = opt + self.args = args + + if self.opt.debug: + loglevel = 2 + elif self.opt.verbose: + loglevel = 1 + else: + loglevel = 0 + + log.init_logging(loglevel) + + def _run(self, cmd, exit_on_error=True, silent=True): + if silent: + devnull = open("/dev/null") + cmd_list = cmd.split() + if silent: + retcode = subprocess.call(cmd_list, stdout=devnull, stderr=devnull) + else: + retcode = subprocess.call(cmd_list) + if silent: + devnull.close() + if retcode != 0 and exit_on_error: + print "Error when running %s" % cmd + exit(1) + return retcode + + def _check_exists_file(self, filename): + if not os.path.exists(filename): + print "File %s does not exist" % filename + exit(1) + + def _print_error(self, what, reason): + print colorama.Fore.RED + colorama.Style.BRIGHT + " \033[1;31mERROR\033[0m", + print ": %s" % what + print colorama.Fore.WHITE + colorama.Style.BRIGHT + "\033[1;37mReason\033[0m", + print ": %s" % reason + + def _colorize_topology_state(self, state): + state_str = Topology.state_str[state] + reset = Fore.RESET + Style.RESET_ALL + if state == Topology.STATE_NEW: + return Fore.BLUE + Style.BRIGHT + state_str + reset + elif state == Topology.STATE_RUNNING: + return Fore.GREEN + Style.BRIGHT + state_str + reset + elif state in (Topology.STATE_STARTING, Topology.STATE_CONFIGURING, Topology.STATE_STOPPING, Topology.STATE_RESUMING, Topology.STATE_TERMINATING): + return Fore.YELLOW + Style.BRIGHT + state_str + reset + elif state in (Topology.STATE_TERMINATED, Topology.STATE_FAILED): + return Fore.RED + Style.BRIGHT + state_str + reset + elif state == Topology.STATE_STOPPED: + return Fore.MAGENTA + Style.BRIGHT + state_str + reset + else: + return state_str + + def _colorize_node_state(self, state): + state_str = Node.state_str[state] + reset = Fore.RESET + Style.RESET_ALL + if state == Node.STATE_NEW: + return Fore.BLUE + Style.BRIGHT + state_str + reset + elif state == Node.STATE_RUNNING: + return Fore.GREEN + Style.BRIGHT + state_str + reset + elif state in (Node.STATE_STARTING, Node.STATE_RUNNING_UNCONFIGURED, Node.STATE_CONFIGURING, Node.STATE_RECONFIGURING, Node.STATE_STOPPING, Node.STATE_STOPPING_CONFIGURING, Node.STATE_STOPPING_CONFIGURED, Node.STATE_RESUMING, Node.STATE_RESUMED_UNCONFIGURED, Node.STATE_RESUMED_RECONFIGURING, Node.STATE_TERMINATING): + return Fore.YELLOW + Style.BRIGHT + state_str + reset + elif state in (Node.STATE_TERMINATED, Node.STATE_FAILED): + return Fore.RED + Style.BRIGHT + state_str + reset + elif state == Node.STATE_STOPPED: + return Fore.MAGENTA + Style.BRIGHT + state_str + reset + else: + return state_str + + def _pad(self, str, colorstr, width): + if colorstr == "": + return str.ljust(width) + else: + return colorstr + " " * (width - len(str)) + + def _set_last_gpi(self, gpi): + try: + uid = os.getuid() + ppid = os.getppid() + + gpi_dir = "%s/.globusprovision-%i" % (tempfile.gettempdir(), uid) + gpi_file = "%s/%i" % (gpi_dir, ppid) + + if not os.path.exists(gpi_dir): + os.mkdir(gpi_dir, 0700) + + f = open(gpi_file, "w") + f.write(gpi) + f.close() + except Exception, e: + # Saving the last GPI is just for the benefit of auto-completion. + # If it doesn't work, worse that will happen is that the user + # won't be able to autocomplete the last GPI + pass + + def cleanup_after_kill(self): + print "Globus Provision has been unexpectedly killed and may have left resources" + print "in an unconfigured state. Use gp-instance-terminate to release resources." + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,878 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +import json + +""" +Commands that directly invoke the API. Most of these commands are a one-to-one +mapping to the API, although some some (like gp-instance-add-host) simply provide +a more convenient interface on top of instance_update(). +""" + +import time +import sys + +from colorama import Fore, Style + +import globus.provision.common.defaults as defaults + +from globus.provision.cli import Command +from globus.provision.core.api import API +from globus.provision.common.utils import parse_extra_files_files +from globus.provision.common.threads import SIGINTWatcher +from globus.provision.core.topology import Topology, Node, User +from globus.provision.core.config import SimpleTopologyConfig +from globus.provision.common.config import ConfigException + + +def gp_instance_create_func(): + return gp_instance_create(sys.argv).run() + +class gp_instance_create(Command): + """ + Creates a new Globus Provision instance. + """ + + name = "gp-instance-create" + + def __init__(self, argv): + Command.__init__(self, argv, disable_sigintwatch=True) + + self.optparser.add_option("-c", "--conf", + action="store", type="string", dest="conf", + default = defaults.CONFIG_FILE, + help = "Configuration file.") + + self.optparser.add_option("-t", "--topology", + action="store", type="string", dest="topology", + help = "Topology file. Can be either a simple topology file (with extension .conf) " + "or a topology JSON file (with extension .json).") + + def run(self): + self.parse_options() + + if self.opt.conf is None: + print "You must specify a configuration file using the -c/--conf option." + return 1 + + self._check_exists_file(self.opt.conf) + + if self.opt.topology is None: + topology_file = self.opt.conf + else: + self._check_exists_file(self.opt.topology) + topology_file = self.opt.topology + + if topology_file.endswith(".json"): + jsonfile = open(topology_file) + topology_json = jsonfile.read() + jsonfile.close() + elif topology_file.endswith(".conf"): + try: + conf = SimpleTopologyConfig(topology_file) + topology = conf.to_topology() + topology_json = topology.to_json_string() + except ConfigException, cfge: + self._print_error("Error in topology configuration file.", cfge) + return 1 + else: + self._print_error("Unrecognized topology file format.", "File must be either a JSON (.json) or configuration (.conf) file.") + return 1 + + configf = open(self.opt.conf) + config_txt = configf.read() + configf.close() + + api = API(self.opt.dir) + (status_code, message, inst_id) = api.instance_create(topology_json, config_txt) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not create instance.", message) + return 1 + else: + print "Created new instance:", + print Fore.WHITE + Style.BRIGHT + inst_id + self._set_last_gpi(inst_id) + return 0 + +def gp_instance_describe_func(): + return gp_instance_describe(sys.argv).run() + +class gp_instance_describe(Command): + """ + Describes a Globus Provision instance, providing information on the state of the instance, + and of the individual hosts (including their hostnames and IPs, if the instance is running). + Running in verbose mode (with the ``-v`` option) + will print out the raw JSON representation of the instance's topology. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-describe --verbose gpi-12345678 + + """ + + name = "gp-instance-describe" + + def __init__(self, argv): + Command.__init__(self, argv, disable_sigintwatch=True) + + def run(self): + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + self._set_last_gpi(inst_id) + + if self.opt.verbose or self.opt.debug: + print topology_json + else: + topology = Topology.from_json_string(topology_json) + reset = Fore.RESET + Style.RESET_ALL + print Fore.WHITE + Style.BRIGHT + inst_id + reset + ": " + self._colorize_topology_state(topology.state) + print + for domain in topology.domains.values(): + print "Domain " + Fore.CYAN + "'%s'" % domain.id + + # Find "column" widths and get values while we're at it + node_width = state_width = hostname_width = ip_width = 0 + rows = [] + for node in domain.get_nodes(): + if len(node.id) > node_width: + node_width = len(node.id) + + if node.has_property("state"): + state = node.state + else: + state = Node.STATE_NEW + state_str = Node.state_str[state] + + if len(state_str) > state_width: + state_width = len(state_str) + + if node.has_property("hostname"): + hostname = node.hostname + else: + hostname = "" + + if len(hostname) > hostname_width: + hostname_width = len(hostname) + + if node.has_property("ip"): + ip = node.ip + else: + ip = "" + + if len(ip) > ip_width: + ip_width = len(ip) + + rows.append((node.id, state, state_str, hostname, ip)) + + for (node_id, state, state_str, hostname, ip) in rows: + node_id_pad = self._pad(node_id, Fore.WHITE + Style.BRIGHT + node_id + Fore.RESET + Style.RESET_ALL, node_width + 2) + state_pad = self._pad(state_str, self._colorize_node_state(state), state_width + 2) + hostname_pad = self._pad(hostname, "", hostname_width + 2) + ip_pad = self._pad(ip, "", ip_width) + print " " + node_id_pad + state_pad + hostname_pad + ip_pad + print + + return 0 + +def gp_instance_start_func(): + return gp_instance_start(sys.argv).run() + +class gp_instance_start(Command): + """ + Starts a Globus Provision instance. If the instance was previous stopped, ``gp-instance-start`` + will resume it. + + See :ref:`sec_test_chef` for details on how to use the ``--extra-files`` option. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-start --extra-files foo.txt gpi-12345678 + + """ + + name = "gp-instance-start" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-x", "--extra-files", + action="store", type="string", dest="extra_files", + help = "File with list of files to upload to each host before configuring the instance.") + + self.optparser.add_option("-r", "--run", + action="store", type="string", dest="run", + help = "File with list of commands to run on each host after configuring the instance.") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + if self.opt.extra_files != None: + self._check_exists_file(self.opt.extra_files) + extra_files = parse_extra_files_files(self.opt.extra_files) + else: + extra_files = [] + + if self.opt.run != None: + self._check_exists_file(self.opt.run) + run_cmds = [l.strip() for l in open(self.opt.run).readlines()] + else: + run_cmds = [] + + print "Starting instance", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + api = API(self.opt.dir) + status_code, message = api.instance_start(inst_id, extra_files, run_cmds) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Started instance in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + print + self._print_error("Could not start instance.", message) + return 1 + +def gp_instance_update_func(): + return gp_instance_update(sys.argv).run() + +class gp_instance_update(Command): + """ + Updates a Globus Provision instance's topology. Globus Provision will determine what changes + and necessary (adding/removing hosts, etc.) and will return an error if an invalid update + was specified. + + See :ref:`sec_test_chef` for details on how to use the ``--extra-files`` option. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-update --topology newtopology.json gpi-12345678 + + """ + + name = "gp-instance-update" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-t", "--topology", + action="store", type="string", dest="topology", + help = "Topology file (JSON format only)") + + self.optparser.add_option("-x", "--extra-files", + action="store", type="string", dest="extra_files", + help = "File with list of files to upload to each host before configuring the instance.") + + self.optparser.add_option("-r", "--run", + action="store", type="string", dest="run", + help = "File with list of commands to run on each host after configuring the instance.") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + if self.opt.topology != None: + self._check_exists_file(self.opt.topology) + + jsonfile = open(self.opt.topology) + topology_json = jsonfile.read() + jsonfile.close() + else: + topology_json = None + + + if self.opt.extra_files != None: + self._check_exists_file(self.opt.extra_files) + extra_files = parse_extra_files_files(self.opt.extra_files) + else: + extra_files = [] + + if self.opt.run != None: + self._check_exists_file(self.opt.run) + run_cmds = [l.strip() for l in open(self.opt.run).readlines()] + else: + run_cmds = [] + + print "Updating topology of", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + + api = API(self.opt.dir) + status_code, message = api.instance_update(inst_id, topology_json, extra_files, run_cmds) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Updated topology in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_stop_func(): + return gp_instance_stop(sys.argv).run() + +class gp_instance_stop(Command): + """ + Stops a running Globus Provision instance. This will shut down all the hosts in the instance, + but it will not free the corresponding resources. You can use :ref:`cli_gp-instance-start` to resume + the instance at a later time. Use :ref:`cli_gp-instance-terminate` if you want to shut down the hosts + *and* free all their resources (including all associated storage) + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-stop --verbose gpi-12345678 + + """ + + name = "gp-instance-stop" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + def run(self): + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + print "Stopping instance", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + api = API(self.opt.dir) + status_code, message = api.instance_stop(inst_id) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + self._set_last_gpi(inst_id) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not stop instance.", message) + print + return 1 + + +def gp_instance_terminate_func(): + return gp_instance_terminate(sys.argv).run() + +class gp_instance_terminate(Command): + """ + Terminates a Globus Provision instance. This not only shuts down all the hosts in the + instance, but also frees up all associated resources, including storage. Use this command + only if you want to irreversibly "kill" your instance. If you only want to stop it temporarily + (shutting down the hosts, but allowing them to be resumed at a later time), use + :ref:`cli_gp-instance-stop` instead. + + This command can also be used on instances that are in the "Failed" state, to free their + resources. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-terminate --verbose gpi-12345678 + + """ + + name = "gp-instance-terminate" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + def run(self): + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + print "Terminating instance", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + api = API(self.opt.dir) + status_code, message = api.instance_terminate(inst_id) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + self._set_last_gpi(inst_id) + return 0 + elif status_code == API.STATUS_FAIL: + print + self._print_error("Could not terminate instance.", message) + return 1 + + +def gp_instance_list_func(): + return gp_instance_list(sys.argv).run() + +class gp_instance_list(Command): + """ + Lists all instances you've created, showing their identifier and their state. + + If you only want to list certain instances, you can specify a list of instance + identifiers after all other parameters. For example:: + + gp-instance-list --verbose gpi-11111111 gpi-22222222 gpi-33333333 + + """ + + name = "gp-instance-list" + + def __init__(self, argv): + Command.__init__(self, argv, disable_sigintwatch=True) + + def run(self): + self.parse_options() + + if len(self.args) >= 2: + inst_ids = self.args[1:] + else: + inst_ids = None + + api = API(self.opt.dir) + (status_code, message, topologies_json) = api.instance_list(inst_ids) + + + if status_code != API.STATUS_SUCCESS: + self._print_error("Unable to list instances.", message) + return 1 + else: + insts = json.loads(topologies_json) + + for inst in insts: + if self.opt.verbose or self.opt.debug: + print json.dumps(inst, indent=2) + else: + topology = Topology.from_json_dict(inst) + + reset = Fore.RESET + Style.RESET_ALL + print Fore.WHITE + Style.BRIGHT + topology.id + reset + ": " + self._colorize_topology_state(topology.state) + + return 0 + +def gp_instance_add_user_func(): + return gp_instance_add_user(sys.argv).run() + +class gp_instance_add_user(Command): + """ + Adds a user to a running instance. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-add-user --domain simple --login johnsmith gpi-12345678 + + """ + + name = "gp-instance-add-user" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Domain that the user will be added to.") + + self.optparser.add_option("-l", "--login", + action="store", type="string", dest="login", + help = "User's UNIX login name") + + self.optparser.add_option("-p", "--password-hash", + action="store", type="string", dest="passwd", + default = "!", + help = "Password hash (default is disabled password)") + + self.optparser.add_option("-s", "--ssh-pubkey", + action="store", type="string", dest="ssh", + help = "Public SSH key to be added to the new user's authorized_keys file.") + + self.optparser.add_option("-a", "--admin", + action="store_true", dest="admin", + help = "Gives the user sudo privileges.") + + self.optparser.add_option("-c", "--certificate", + action="store", type="string", dest="certificate", + default = "generated", + help = "Type of certificate. Can be \"generated\" or \"none\" (default is " + "to generate a certificate for the user)") + + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not add user", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + domain = t.domains[self.opt.domain] + + user = User() + user.set_property("id", self.opt.login) + user.set_property("password_hash", self.opt.passwd) + user.set_property("ssh_pkey", self.opt.ssh) + if self.opt.admin != None: + user.set_property("admin", self.opt.admin) + else: + user.set_property("admin", False) + user.set_property("certificate", self.opt.certificate) + + domain.add_to_array("users", user) + + topology_json = t.to_json_string() + + print "Adding new user to", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Added user in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_add_host_func(): + return gp_instance_add_host(sys.argv).run() + +class gp_instance_add_host(Command): + """ + Adds a new host to a running instance. + + The instance identifier must be specified after all other parameters. For example:: + + gp-instance-add-host --domain simple --id simple-gridftp --run-list role[domain-gridftp-default] gpi-12345678 + + """ + + name = "gp-instance-add-host" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Domain that the user will be added to.") + + self.optparser.add_option("-n", "--id", + action="store", type="string", dest="id", + help = "Unique identifier for the new host.") + + self.optparser.add_option("-p", "--depends", + action="store", type="string", dest="depends", + default = None, + help = "ID of the node (if any) that the new host depends on.") + + self.optparser.add_option("-r", "--run-list", + action="store", type="string", dest="runlist", + help = "List of Chef recipes or roles to apply to this host.") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) != 2: + print "You must specify an instance id." + print "For example: %s [options] gpi-37a8bf17" % self.name + return 1 + + inst_id = self.args[1] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not add host", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + domain = t.domains[self.opt.domain] + + node = Node() + node.set_property("id", self.opt.id) + node.set_property("run_list", self.opt.runlist.split(",")) + if self.opt.depends != None: + node.set_property("depends", "node:%s" % self.opt.depends) + + domain.add_to_array("nodes", (node)) + + topology_json = t.to_json_string() + + print "Adding new host to", + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Added host in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_remove_users_func(): + return gp_instance_remove_users(sys.argv).run() + +class gp_instance_remove_users(Command): + """ + Removes users from a running instance. + + The logins of the users to be removed must be specified after the instance identifier which, + in turn, must be specified after all other parameters. For example:: + + gp-instance-remove-users --domain simple gpi-12345678 johnsmith sarahjane + + """ + + name = "gp-instance-remove-users" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Removes users from this domain") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) <= 2: + print "You must specify an instance id and at least one host." + print "For example: %s [options] gpi-37a8bf17 simple-wn3" % self.name + return 1 + + inst_id = self.args[1] + users = self.args[2:] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not remove users", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + removed = [] + domain_users = t.domains[self.opt.domain].users + + for user in users: + if user in domain_users: + domain_users.pop(user) + removed.append(user) + + remaining = set(removed) ^ set(users) + for r in remaining: + print Fore.YELLOW + Style.BRIGHT + "Warning" + Fore.RESET + Style.RESET_ALL + ":", + print "User %s does not exist." % r + + topology_json = t.to_json_string() + + if len(removed) > 0: + print "Removing users %s from" % list(removed), + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Removed users in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + return 0 + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + + +def gp_instance_remove_hosts_func(): + return gp_instance_remove_hosts(sys.argv).run() + +class gp_instance_remove_hosts(Command): + """ + Removes hosts from a running instance. + + The host identifiers must be specified after the instance identifier which, + in turn, must be specified after all other parameters. For example:: + + gp-instance-remove-hosts --domain simple gpi-12345678 simple-gridftp simple-condor + + """ + + name = "gp-instance-remove-hosts" + + def __init__(self, argv, disable_sigintwatch=False): + Command.__init__(self, argv, disable_sigintwatch=disable_sigintwatch) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Remove hosts from this domain") + + def run(self): + t_start = time.time() + self.parse_options() + + if len(self.args) <= 2: + print "You must specify an instance id and at least one host." + print "For example: %s [options] gpi-37a8bf17 simple-wn3" % self.name + return 1 + + inst_id = self.args[1] + hosts = self.args[2:] + + api = API(self.opt.dir) + (status_code, message, topology_json) = api.instance(inst_id) + + if status_code != API.STATUS_SUCCESS: + self._print_error("Could not access instance.", message) + return 1 + else: + t = Topology.from_json_string(topology_json) + + if not t.domains.has_key(self.opt.domain): + self._print_error("Could not remove hosts", "Domain '%s' does not exist" % self.opt.domain) + return 1 + + removed = [] + nodes = t.domains[self.opt.domain].nodes + + for host in hosts: + if host in nodes: + nodes.pop(host) + removed.append(host) + + remaining = set(removed) ^ set(hosts) + for r in remaining: + print Fore.YELLOW + Style.BRIGHT + "Warning" + Fore.RESET + Style.RESET_ALL + ":", + print "Host %s does not exist." % r + + topology_json = t.to_json_string() + + if len(removed) > 0: + print "Removing hosts %s from" % list(removed), + print Fore.WHITE + Style.BRIGHT + inst_id + Fore.RESET + Style.RESET_ALL + "...", + status_code, message = api.instance_update(inst_id, topology_json, [], []) + + if status_code == API.STATUS_SUCCESS: + print Fore.GREEN + Style.BRIGHT + "done!" + + self._set_last_gpi(inst_id) + + t_end = time.time() + + delta = t_end - t_start + minutes = int(delta / 60) + seconds = int(delta - (minutes * 60)) + print "Removed hosts in " + Fore.WHITE + Style.BRIGHT + "%i minutes and %s seconds" % (minutes, seconds) + elif status_code == API.STATUS_FAIL: + self._print_error("Could not update topology.", message) + return 1 + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/api.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,114 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Commands related to the EC2 deployer, but which do not require access to the API +""" + +import sys +import os.path + +from globus.provision.cli import Command +from globus.provision.deploy.ec2.images import EC2AMICreator, EC2AMIUpdater +from globus.provision.common import defaults +from globus.provision.core.config import GPConfig +from globus.provision.common.utils import parse_extra_files_files + + +def gp_ec2_create_ami_func(): + return gp_ec2_create_ami(sys.argv).run() + +class gp_ec2_create_ami(Command): + """ + Creates a Globus Provision AMI with Chef files pre-deployed, and + some software pre-installed. + """ + + name = "gp-ec2-create-ami" + + def __init__(self, argv): + Command.__init__(self, argv) + + self.optparser.add_option("-s", "--chef-directory", + action="store", type="string", dest="chef_dir", + help = "Location of Chef files.") + + self.optparser.add_option("-c", "--conf", + action="store", type="string", dest="conf", + default = defaults.CONFIG_FILE, + help = "Configuration file. Must include an [ec2] section.") + + self.optparser.add_option("-a", "--ami", + action="store", type="string", dest="ami", + help = "AMI to base the new AMI on.") + + self.optparser.add_option("-n", "--name", + action="store", type="string", dest="aminame", + help = "Name of AMI to create") + + self.optparser.add_option("-t", "--instance-type", + action="store", type="string", dest="instance_type", + help = "EC2 instance type to use") + + def run(self): + self.parse_options() + + config = GPConfig(os.path.expanduser(self.opt.conf)) + chef_dir = os.path.expanduser(self.opt.chef_dir) + + c = EC2AMICreator(chef_dir, self.opt.ami, self.opt.aminame, self.opt.instance_type, config) + c.run() + + +def gp_ec2_update_ami_func(): + return gp_ec2_update_ami(sys.argv).run() + +class gp_ec2_update_ami(Command): + """ + Takes an existing AMI, adds files to it, and creates a new AMI. + """ + + name = "gp-ec2-update-ami" + + def __init__(self, argv): + Command.__init__(self, argv) + + self.optparser.add_option("-a", "--ami", + action="store", type="string", dest="ami", + help = "AMI to update.") + + self.optparser.add_option("-n", "--name", + action="store", type="string", dest="aminame", + help = "Name of new AMI.") + + self.optparser.add_option("-c", "--conf", + action="store", type="string", dest="conf", + default = defaults.CONFIG_FILE, + help = "Configuration file. Must include an [ec2] section.") + + self.optparser.add_option("-f", "--files", + action="store", type="string", dest="files", + help = "Files to add to AMI") + + def run(self): + self.parse_options() + + files = parse_extra_files_files(self.opt.files) + config = GPConfig(os.path.expanduser(self.opt.conf)) + + c = EC2AMIUpdater(self.opt.ami, self.opt.aminame, files, config) + c.run() + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/ec2.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,70 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +""" +Commands related to Globus Online endpoint management, but which do not require access to the API +""" + +import sys +import os.path +import paramiko +from globus.provision.common.ssh import SSH + +from globus.provision.cli import Command +from globus.provision.core.instance import InstanceStore +from globus.provision.common.go_transfer import GlobusOnlineHelper + +def gp_go_register_endpoints_func(): + return gp_go_register_endpoints(sys.argv).run() + +class gp_go_register_endpoints(Command): + """ + Creates the Globus Online endpoints specified in an instance's topology. + + The instance identifier must be specified after all other parameters. For example:: + + gp-go-register-endpoints --public gpi-12345678 + """ + + name = "gp-go-register-endpoints" + + def __init__(self, argv): + Command.__init__(self, argv) + + self.optparser.add_option("-m", "--domain", + action="store", type="string", dest="domain", + help = "Register only the endpoints in this domain") + + self.optparser.add_option("-r", "--replace", + action="store_true", dest="replace", + help = "If an endpoint already exists, replace it") + + def run(self): + self.parse_options() + inst_id = self.args[1] + + istore = InstanceStore(self.opt.dir) + inst = istore.get_instance(inst_id) + + go_helper = GlobusOnlineHelper.from_instance(inst) + + for domain_name, domain in inst.topology.domains.items(): + for ep in domain.go_endpoints: + go_helper.connect(ep.user) + if (not ep.has_property("globus_connect_cert")) or (ep.has_property("globus_connect_cert") and not ep.globus_connect_cert): + go_helper.create_endpoint(ep, self.opt.replace) + go_helper.disconnect() + + print "Created endpoint '%s#%s' for domain '%s'" % (ep.user, ep.name, domain_name) \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/cli/globusonline.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,18 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +class GPException(Exception): + pass \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,113 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Certificate management +""" + +from OpenSSL import crypto +import os.path + +class CertificateGenerator(object): + """ + A class for generating CA, host, and user certificates. + """ + + def __init__(self, dn, ca_cert = None, ca_key = None): + self.ca_cert = ca_cert + self.ca_key = ca_key + self.serial = 1 + + self.dn = [x.split("=") for x in dn.split(",")] + self.dn = dict([(n.upper().strip(), v.strip()) for n,v in self.dn]) + + def set_ca(self, ca_cert, ca_key): + self.ca_cert = ca_cert + self.ca_key = ca_key + + def gen_selfsigned_ca_cert(self, cn): + return self.__gen_certificate(cn = cn, + issuer_cert = None, + issuer_key = None) + + def gen_user_cert(self, cn): + return self.__gen_certificate(cn = cn, + issuer_cert = self.ca_cert, + issuer_key = self.ca_key) + + def gen_host_cert(self, hostname): + return self.__gen_certificate(cn = "host/"+hostname, + issuer_cert = self.ca_cert, + issuer_key = self.ca_key) + + def __gen_certificate(self, cn, issuer_cert, issuer_key): + k = crypto.PKey() + k.generate_key(crypto.TYPE_RSA, 1024) + + cert = crypto.X509() + if self.dn.has_key("C"): + cert.get_subject().C = self.dn["C"] + if self.dn.has_key("ST"): + cert.get_subject().ST = self.dn["ST"] + if self.dn.has_key("L"): + cert.get_subject().L = self.dn["L"] + if self.dn.has_key("O"): + cert.get_subject().O = self.dn["O"] + if self.dn.has_key("OU"): + cert.get_subject().OU = self.dn["OU"] + cert.get_subject().CN = cn + cert.set_serial_number(self.serial) + self.serial += 1 + cert.set_version(2) + cert.gmtime_adj_notBefore(0) + cert.gmtime_adj_notAfter(10*365*24*60*60) + cert.set_pubkey(k) + + + if issuer_cert == None: + cert.set_issuer(cert.get_subject()) + else: + cert.set_issuer(issuer_cert.get_subject()) + + if issuer_cert == None: + cert.sign(k, 'sha1') + else: + cert.sign(issuer_key, 'sha1') + + return cert, k + + # TODO: Return something meaningful depending on whether the + # certificate was regenerated or not + def save_certificate(self, cert, key, cert_file, key_file, force = False): + if not os.path.exists(cert_file) or force: + cert_file = open(cert_file, "w") + cert_file.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert)) + cert_file.close() + + key_file = open(key_file, "w") + key_file.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key)) + key_file.close() + + def load_certificate(self, cert_file, key_file): + cert_file = open(cert_file, "r") + cert = crypto.load_certificate(crypto.FILETYPE_PEM, cert_file.read()) + cert_file.close() + + key_file = open(key_file, "r") + key = crypto.load_privatekey(crypto.FILETYPE_PEM, key_file.read()) + key_file.close() + + return cert, key \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/certs.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,187 @@ +# -------------------------------------------------------------------------- # +# Copyright 2006-2009, 2011 University of Chicago # +# Copyright 2008-2009, Distributed Systems Architecture Group, Universidad # +# Complutense de Madrid (dsa-research.org) # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +A self-documenting, self-validating configuration file parser +(derived from Python's ConfigParser) +""" + +import ConfigParser +import textwrap +import os.path + +OPTTYPE_INT = 0 +OPTTYPE_FLOAT = 1 +OPTTYPE_STRING = 2 +OPTTYPE_BOOLEAN = 3 +OPTTYPE_FILE = 4 + +class ConfigException(Exception): + """A simple exception class used for configuration exceptions""" + pass + +class Section(object): + """ + A section in the configuration file + """ + + def __init__(self, name, required, multiple = None, required_if=None, doc=None): + self.name = name + self.required = required + self.required_if = required_if + self.multiple = multiple + self.doc = doc + self.options = {} + + def get_doc(self): + return textwrap.dedent(self.doc).strip() + + +class Option(object): + """ + An option in a section + """ + + def __init__(self, name, getter, type, required, required_if=None, default=None, valid=None, doc=None): + self.name = name + self.getter = getter + self.type = type + self.required = required + self.required_if = required_if + self.default = default + self.valid = valid + self.doc = doc + + def get_doc(self): + return textwrap.dedent(self.doc).strip() + +class Config(object): + """ + A configuration file + """ + + def __init__(self, config_file, sections): + self.config = ConfigParser.ConfigParser() + self.config.readfp(open(config_file, "r")) + + self.sections = sections + self._options = {} + + self.__load_all() + + def __load_all(self): + multi_sections = [s for s in self.sections if s.multiple != None] + required_sections = [s for s in self.sections if s.required] + conditional_sections = [s for s in self.sections if not s.required and s.required_if != None] + optional_sections = [s for s in self.sections if not s.required and s.required_if == None] + + sections = multi_sections + required_sections + conditional_sections + optional_sections + + for sec in sections: + if sec.multiple != None: + valid = self.config.get(sec.multiple[0],sec.multiple[1]).split() + for v in valid: + secname = "%s-%s" % (sec.name, v) + if self.config.has_section(secname): + for opt in sec.options: + self.__load_option(sec, secname, opt, True, multiname = v) + else: + has_section = self.config.has_section(sec.name) + + # If the section is required, check if it exists + if sec.required and not has_section: + raise ConfigException, "Required section [%s] not found" % sec.name + + # If the section is conditionally required, check that + # it meets the conditions + if sec.required_if != None: + for req in sec.required_if: + (condsec,condopt) = req[0] + condvalue = req[1] + + if self.config.has_option(condsec,condopt) and self.config.get(condsec,condopt) == condvalue: + if not has_section: + raise ConfigException, "Section '%s' is required when %s.%s==%s" % (sec.name, condsec, condopt, condvalue) + + # Load options + for opt in sec.options: + self.__load_option(sec, sec.name, opt, has_section) + + + def __load_option(self, sec, secname, opt, has_section, multiname = None): + # Load a single option + optname = opt.name + + has_option = self.config.has_option(secname, optname) + + if not has_option: + if has_section: + if opt.required: + raise ConfigException, "Required option '%s.%s' not found" % (secname, optname) + if opt.required_if != None: + for req in opt.required_if: + (condsec,condopt) = req[0] + condvalue = req[1] + + if self.config.has_option(condsec,condopt) and self.config.get(condsec,condopt) == condvalue: + raise ConfigException, "Option '%s.%s' is required when %s.%s==%s" % (secname, optname, condsec, condopt, condvalue) + + value = opt.default + if has_section and opt.type == OPTTYPE_FILE and value != None: + value = os.path.expanduser(value) + if not os.path.exists(value): + raise ConfigException, "File '%s' does not exist (default for '%s.%s')" % (value, secname, optname) + else: + if opt.type == OPTTYPE_INT: + value = self.config.getint(secname, optname) + elif opt.type == OPTTYPE_FLOAT: + value = self.config.getfloat(secname, optname) + elif opt.type == OPTTYPE_STRING: + value = self.config.get(secname, optname) + elif opt.type == OPTTYPE_BOOLEAN: + value = self.config.getboolean(secname, optname) + elif opt.type == OPTTYPE_FILE: + value = os.path.expanduser(self.config.get(secname, optname)) + if not os.path.exists(value): + raise ConfigException, "File '%s' does not exist (specified for '%s.%s')" % (value, secname, optname) + + if opt.valid != None: + if not value in opt.valid: + raise ConfigException, "Invalid value '%s' specified for '%s.%s'. Valid values are %s" % (value, secname, optname, opt.valid) + + if sec.multiple != None: + self._options[(multiname,opt.getter)] = value + else: + self._options[opt.getter] = value + + def get(self, opt): + return self._options[opt] + + def has(self, opt): + return self._options.has_key(opt) + + @classmethod + def from_file(cls, configfile): + file = open (configfile, "r") + c = ConfigParser.ConfigParser() + c.readfp(file) + cfg = cls(c) + return cfg + + + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/config.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,24 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Default file locations +""" + +import os.path + +CONFIG_FILE = os.path.expanduser("~/.globusprovision/provision.conf") +INSTANCE_LOCATION = os.path.expanduser("~/.globusprovision/instances") \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/defaults.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,317 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +""" +Helper classes for performing Globus Online operations. + +""" + +import re +import StringIO +import os.path +import paramiko + +from pkg_resources import resource_filename + +from globus.provision.common.ssh import SSH +from globus.provision.common import log +from globusonline.transfer.api_client import TransferAPIClient, ClientError + + +class GlobusOnlineException(Exception): + pass + +class EndpointExistsException(GlobusOnlineException): + pass + +class GlobusOnlineHelper(object): + + def endpoint_create(self, ep, replace): + + if self.endpoint_exists(ep): + if not replace: + raise EndpointExistsException, "An endpoint called '%s' already exists. Please choose a different name." % ep.name + else: + self.endpoint_remove(ep) + + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + def _get_hostnames_subjects(self, ep): + ca_dn = self.inst.config.get("ca-dn") + if ca_dn == None: + ca_dn = "/O=Grid/OU=Globus Provision (generated)" + else: + ca_dn = [x.split("=") for x in ca_dn.split(",")] + ca_dn = "".join(["/%s=%s" % (n.upper().strip(), v.strip()) for n,v in ca_dn]) + + if ep.gridftp.startswith("node:"): + gridftp_node = self.inst.topology.get_node_by_id(ep.gridftp[5:]) + gridftp_hostname = gridftp_node.hostname + + if ep.has_property("globus_connect_cert") and ep.globus_connect_cert: + if ep.has_property("globus_connect_cert_dn"): + gridftp_subject = ep.globus_connect_cert_dn + else: + gridftp_subject = None + else: + gridftp_subject = "%s/CN=host/%s" % (ca_dn, gridftp_hostname) + else: + # Note: If user specifies an arbitrary GridFTP hostname, it + # will only work if it uses a valid host certificate that + # is trusted by Globus Online. + gridftp_hostname = ep.gridftp + gridftp_subject = None + + if ep.myproxy.startswith("node:"): + myproxy_node = self.inst.topology.get_node_by_id(ep.myproxy[5:]) + myproxy_hostname = myproxy_node.hostname + myproxy_subject = "%s/CN=host/%s" % (ca_dn, gridftp_hostname) + else: + myproxy_hostname = ep.myproxy + myproxy_subject = None + + return gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject + + @staticmethod + def from_instance(inst): + if inst.config.get("go-cert-file") == None and inst.config.get("go-ssh-key") != None: + # Use SSH + ssh_key = os.path.expanduser(inst.config.get("go-ssh-key")) + return GlobusOnlineCLIHelper(inst, ssh_key) + elif inst.config.get("go-cert-file") != None: + go_cert_file = os.path.expanduser(inst.config.get("go-cert-file")) + go_key_file = os.path.expanduser(inst.config.get("go-key-file")) + go_server_ca = resource_filename("globus.provision", "chef-files/cookbooks/globus/files/default/gd-bundle_ca.cert") + return GlobusOnlineAPIHelper(inst, go_cert_file, go_key_file, go_server_ca) + else: + raise GlobusOnlineException, "Must specify either an SSH key or a certificate to connect to GO" + + +class GlobusOnlineAPIHelper(GlobusOnlineHelper): + def __init__(self, inst, go_cert_file, go_key_file, go_server_ca): + self.inst = inst + self.go_cert_file = go_cert_file + self.go_key_file = go_key_file + self.go_server_ca = go_server_ca + + def connect(self, username): + self.api = TransferAPIClient(username, self.go_server_ca, self.go_cert_file, self.go_key_file) + + def endpoint_exists(self, ep): + try: + (code, msg, data) = self.api.endpoint(ep.name) + + if code == 200: + return True + elif code == 404: + return False + else: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + if ce.status_code == 404: + return False + else: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + def disconnect(self): + self.api.close() + + def endpoint_remove(self, ep): + try: + (code, msg, data) = self.api.endpoint_delete(ep.name) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + def endpoint_gc_create(self, ep, replace): + if self.endpoint_exists(ep): + if not replace: + raise EndpointExistsException, "An endpoint called '%s' already exists. Please choose a different name." % ep.name + else: + self.endpoint_remove(ep) + + try: + (code, msg, data) = self.api.endpoint_create(ep.name, None, description="Globus Provision endpoint", + is_globus_connect=True) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + gc_setupkey = data["globus_connect_setup_key"] + + return gc_setupkey + + def endpoint_gc_create_finalize(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + # This is a kludge until http://jira.globus.org/browse/KOA-1624 gets fixed + username = self.inst.config.get("ec2-username") + keyfile = os.path.expanduser(self.inst.config.get("ec2-keyfile")) + gc_setupkey = self.inst.topology.get_node_by_id(ep.gridftp[5:]).gc_setupkey + ssh = SSH(username, gridftp_hostname, keyfile, default_outf = None, default_errf = None) + ssh.open() + outf = StringIO.StringIO() + errf = StringIO.StringIO() + rc = ssh.run("grid-cert-info -subject -file /etc/grid-security/gc-cert-%s.pem" % (gc_setupkey), outf=outf, errf=errf, exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep.name + ssh.close() + + gridftp_subject = outf.getvalue().strip() + + self.endpoint_remove(ep) + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + + def _endpoint_create(self, ep_name, gridftp_hostname, gridftp_subject, myproxy_hostname, public): + try: + (code, msg, data) = self.api.endpoint_create(ep_name, gridftp_hostname, description="Globus Provision endpoint", + scheme="gsiftp", port=2811, subject=gridftp_subject, + myproxy_server=myproxy_hostname) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + + if public: + try: + (code, msg, data) = self.api.endpoint(ep_name) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + data["public"] = True + + try: + (code, msg, data) = self.api.endpoint_update(ep_name, data) + if code >= 400: + raise GlobusOnlineException, "Unexpected error %i: %s" % (code, msg) + except ClientError as ce: + raise GlobusOnlineException, "Unexpected GO API exception: %s" % ce + + + +class GlobusOnlineCLIHelper(GlobusOnlineHelper): + def __init__(self, inst, ssh_key): + self.inst = inst + self.ssh_key = ssh_key + + def connect(self, username): + self.ssh = SSH(username, "cli.globusonline.org", self.ssh_key, default_outf = None, default_errf = None) + try: + self.ssh.open(timeout=10) + except paramiko.PasswordRequiredException, pre: + msg = "The specified SSH key (%s) requires a password." % self.ssh_key + msg += "Please specify a passwordless SSH key." + raise GlobusOnlineException, msg + except Exception, e: + raise GlobusOnlineException, "Could not connect to GO CLI. Cause: %s" % e + + def disconnect(self): + self.ssh.close() + + def endpoint_exists(self, ep): + rc = self.ssh.run("endpoint-list %s" % (ep.name), exception_on_error=False) + return (rc == 0) + + def endpoint_remove(self, ep): + rc = self.ssh.run("endpoint-remove %s" % (ep.name), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not remove endpoint %s" % ep.name + + def endpoint_remove_server(self, ep, server): + rc = self.ssh.run("endpoint-remove %s -p %s" % (ep.name, server), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not remove server for endpoint %s" % ep.name + + def endpoint_gc_create(self, ep, replace): + if self.endpoint_exists(ep): + if not replace: + raise EndpointExistsException, "An endpoint called '%s' already exists. Please choose a different name." % ep.name + else: + self.endpoint_remove(ep) + + outf = StringIO.StringIO() + errf = StringIO.StringIO() + + rc = self.ssh.run("endpoint-add %s --gc" % (ep.name), outf=outf, errf=errf, exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep.name + + output = outf.getvalue() + gc_setupkey = re.findall("[0-9abcdef-]+$", output)[0] + + return gc_setupkey + + def endpoint_gc_create_finalize(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + outf = StringIO.StringIO() + errf = StringIO.StringIO() + rc = self.ssh.run("endpoint-list -f subjects %s" % (ep.name), outf=outf, errf=errf, exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep.name + + gridftp_subject = outf.getvalue().strip() + ep.set_property("globus_connect_cert_dn", gridftp_subject) + + self.endpoint_remove(ep) + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + def endpoint_stop(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + self.endpoint_remove_server(ep, gridftp_hostname) + + # Create a disconnected endpoint + self._endpoint_create(ep.name, "relay-disconnected.globusonline.org", gridftp_subject, "myproxy.globusonline.org", ep.public) + + def endpoint_resume(self, ep): + gridftp_hostname, gridftp_subject, myproxy_hostname, myproxy_subject = self._get_hostnames_subjects(ep) + + # Remove disconnected server + self.endpoint_remove_server(ep, "relay-disconnected.globusonline.org") + + self._endpoint_create(ep.name, gridftp_hostname, gridftp_subject, myproxy_hostname, ep.public) + + def _endpoint_create(self, ep_name, gridftp_hostname, gridftp_subject, myproxy_hostname, public): + rc = self.ssh.run("endpoint-add %s -p %s -s \"%s\"" % (ep_name, gridftp_hostname, gridftp_subject), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not create endpoint %s" % ep_name + + rc = self.ssh.run("endpoint-modify --myproxy-server=%s %s" % (myproxy_hostname, ep_name), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not set MyProxy server for endpoint %s" % ep_name + + if public: + rc = self.ssh.run("endpoint-modify --public %s" % (ep_name), exception_on_error=False) + if rc != 0: + raise GlobusOnlineException, "Could not make endpoint %s public" % ep_name + + + + + + + + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/go_transfer.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,63 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Convenience functions around the logging module +""" + +import logging +import os.path + +def init_logging(level): + if level == 2: + level = logging.DEBUG + elif level == 1: + level = logging.INFO + else: + level = logging.WARNING + logging.getLogger('boto').setLevel(logging.CRITICAL) + logging.getLogger('paramiko').setLevel(logging.CRITICAL) + + l = logging.getLogger("globusprovision") + l.setLevel(logging.DEBUG) + + fh = logging.StreamHandler() + fh.setLevel(level) + formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s') + fh.setFormatter(formatter) + l.addHandler(fh) + +def set_logging_instance(instance): + l = logging.getLogger("globusprovision") + fh = logging.FileHandler(os.path.expanduser('%s/deploy.log' % instance.instance_dir)) + fh.setLevel(logging.DEBUG) + formatter = logging.Formatter('%(asctime)s - %(message)s') + fh.setFormatter(formatter) + l.addHandler(fh) + +def log(msg, func, node): + if node != None: + msg = "%s - %s" % (node.id, msg) + func(msg) + +def debug(msg, node = None): + log(msg, logging.getLogger('globusprovision').debug, node) + +def warning(msg, node = None): + log(msg, logging.getLogger('globusprovision').warning, node) + +def info(msg, node = None): + log(msg, logging.getLogger('globusprovision').info, node) Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/log.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,544 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Persistent objects + +A self-documenting, self-validating, persistent object library. +The only persistent backend currently supported is JSON, but +others could be added. +""" + +from globus.provision.common.utils import enum + +import inspect +import json + +class ObjectValidationException(Exception): + """A simple exception class used for validation exceptions""" + pass + +PropertyTypes = enum("STRING", + "INTEGER", + "NUMBER", + "BOOLEAN", + "OBJECT", + "ARRAY", + "NULL", + "ANY") + +def pt_to_str(pt, items_type = None): + if pt == PropertyTypes.STRING: + return "string" + elif pt == PropertyTypes.INTEGER: + return "integer" + elif pt == PropertyTypes.NUMBER: + return "number" + elif pt == PropertyTypes.BOOLEAN: + return "boolean" + elif pt == PropertyTypes.OBJECT: + return "object" + elif pt == PropertyTypes.ARRAY: + return "list of %s" % pt_to_str(items_type) + elif pt == PropertyTypes.NULL: + return "null" + elif pt == PropertyTypes.ANY: + return "any" + elif inspect.isclass(pt) and issubclass(pt, PersistentObject): + return pt.__name__ + else: + return "unknown" + +def validate_property_type(value, expected_type, items_type = None, json = False): + if expected_type == PropertyTypes.STRING: + valid = isinstance(value, basestring) + elif expected_type == PropertyTypes.INTEGER: + valid = isinstance(value, int) + elif expected_type == PropertyTypes.NUMBER: + valid = isinstance(value, int) or isinstance(value, float) + elif expected_type == PropertyTypes.BOOLEAN: + valid = isinstance(value, bool) + elif expected_type == PropertyTypes.OBJECT: + valid = isinstance(value, dict) + elif expected_type == PropertyTypes.ARRAY: + if isinstance(value, list): + valid = True + for elem in value: + valid &= validate_property_type(elem, items_type, json = json) + elif isinstance(value, dict): + valid = True + for elem in value.values(): + valid &= validate_property_type(elem, items_type, json = json) + else: + valid = False + elif expected_type == PropertyTypes.NULL: + valid = value is None + elif expected_type == PropertyTypes.ANY: + valid = True + elif issubclass(expected_type, PersistentObject): + # Further validation is done when we convert + # this object + if json: + valid = isinstance(value, dict) + else: + valid = isinstance(value, expected_type) + else: + valid = False + + return valid + +class Property(object): + def __init__(self, name, proptype, required, description, editable = False, items = None, items_unique = False): + self.name = name + self.type = proptype + self.required = required + self.editable = editable + self.items_unique = items_unique + self.description = description + self.items = items + + +class PropertyChange(object): + ADD = 0 + REMOVE = 1 + EDIT = 2 + + def __init__(self, change_type): + self.change_type = change_type + + +class PrimitivePropertyChange(PropertyChange): + + def __init__(self, change_type, old_value, new_value): + PropertyChange.__init__(self, change_type) + self.old_value = old_value + self.new_value = new_value + + def to_dict(self): + if self.change_type == PropertyChange.ADD: + return {"__action__": "add"} + elif self.change_type == PropertyChange.REMOVE: + return {"__action__": "remove"} + elif self.change_type == PropertyChange.EDIT: + d = {} + d["old"] = self.old_value + d["new"] = self.new_value + return d + + +class ArrayPropertyChange(PropertyChange): + + def __init__(self, change_type, add, remove, edit): + PropertyChange.__init__(self, change_type) + self.add = add + self.remove = remove + self.edit = edit + + def to_dict(self): + if self.change_type == PropertyChange.ADD: + return {"__action__": "add"} + elif self.change_type == PropertyChange.REMOVE: + return {"__action__": "remove"} + elif self.change_type == PropertyChange.EDIT: + d = {} + + if len(self.add) > 0: + d["ADD"] = self.add + + if len(self.remove) > 0: + d["REMOVE"] = self.remove + + if len(self.edit) > 0: + editd = {} + for property in self.edit: + editd[property] = self.edit[property].to_dict() + d["EDIT"] = editd + + return d + + +class ObjectPropertyChange(PropertyChange): + + def __init__(self, change_type, changes): + PropertyChange.__init__(self, change_type) + self.changes = changes + + def to_dict(self): + if self.change_type == PropertyChange.ADD: + return {"__action__": "add"} + elif self.change_type == PropertyChange.REMOVE: + return {"__action__": "remove"} + elif self.change_type == PropertyChange.EDIT: + d = {} + for property in self.changes: + d[property] = self.changes[property].to_dict() + return d + + +class PersistentObject(object): + def __init__(self): + self._json_file = None + + def save(self, filename = None): + if self._json_file == None and filename == None: + raise Exception("Don't know where to save this topology") + if filename != None: + self._json_file = filename + f = open (self._json_file, "w") + json_string = self.to_json_string() + f.write(json_string) + f.close() + + def set_property(self, p_name, p_value): + # TODO: Validation + setattr(self, p_name, p_value) + + def has_property(self, p_name): + return hasattr(self, p_name) + + def get_property(self, p_name): + # TODO: Validation + return getattr(self, p_name) + + def add_to_array(self, p_name, item_value): + if not self.properties.has_key(p_name): + raise ObjectValidationException("%s does not have a %s property" % (type(self).__name__, p_name)) + + p = self.properties[p_name] + + if p.type != PropertyTypes.ARRAY: + raise ObjectValidationException("Tried to add %s to %s.%s, but it is not an array." % (item_value, type(self).__name__, p_name)) + + if not validate_property_type(item_value, p.items): + raise ObjectValidationException("Tried to add %s to %s.%s, but this array contains %s." % (item_value, type(self).__name__, p_name, pt_to_str(p.items))) + + if p.items_unique and inspect.isclass(p.items) and issubclass(p.items, PersistentObject): + if not self.has_property(p_name): + p_value = {} + self.set_property(p_name, p_value) + else: + p_value = self.get_property(p_name) + + setattr(item_value, "parent_%s" % type(self).__name__, self) + p_value[item_value.id] = item_value + else: + if not self.has_property(p_name): + p_value = [] + self.set_property(p_name, p_value) + else: + p_value = self.get_property(p_name) + + p_value.append(item_value) + + + def validate_update(self, pobj): + if type(self) != type(pobj): + raise ObjectValidationException("Cannot update a %s object with a %s object" % (type(self).__name__, type(pobj).__name__)) + + changes = {} + for name, property in self.properties.items(): + self_hasattr = hasattr(self, name) + pobj_hasattr = hasattr(pobj, name) + + if self_hasattr: + self_value = getattr(self, name) + + if pobj_hasattr: + pobj_value = getattr(pobj, name) + + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + if not self_hasattr and pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to add a property, but it is non-editable (setting '%s' to %s)""" % (name, pobj_value)) + else: + changes[name] = PrimitivePropertyChange(PropertyChange.ADD, None, pobj_value) + elif self_hasattr and not pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to remove a property, but it is non-editable (removing '%s' = %s)""" % (name, self_value)) + else: + changes[name] = PrimitivePropertyChange(PropertyChange.REMOVE, self_value, None) + elif self_hasattr and pobj_hasattr: + # If this is a primitive type, check if the value has changed and, if so, + # whether the change is allowed. + if self_value != pobj_value: + if not property.editable: + raise ObjectValidationException("Tried to change the value of non-editable property '%s' (from %s to %s)""" % (name, self_value, pobj_value)) + else: + changes[name] = PrimitivePropertyChange(PropertyChange.EDIT, self_value, pobj_value) + elif property.type == PropertyTypes.ARRAY: + if not self_hasattr and pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to add a property, but it is non-editable (setting '%s' to %s)""" % (name, pobj_value)) + else: + changes[name] = ArrayPropertyChange(PropertyChange.ADD, None, None, None) + elif self_hasattr and not pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to remove a property, but it is non-editable (removing '%s' = %s)""" % (name, self_value)) + else: + changes[name] = ArrayPropertyChange(PropertyChange.REMOVE, None, None, None) + elif self_hasattr and pobj_hasattr: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + self_set = set(self_value) + pobj_set = set(pobj_value) + + add = list(pobj_set - self_set) + remove = list(self_set - pobj_set) + + if len(add) + len(remove) > 0: + if property.editable: + changes[name] = ArrayPropertyChange(PropertyChange.EDIT, add, remove, {}) + else: + raise ObjectValidationException("Tried to add/remove items from non-editable array '%s' (Add: %s Remove: %s)""" % (name, add, remove)) + elif inspect.isclass(property.items) and issubclass(property.items, PersistentObject): + if property.items_unique: + self_set = set(self_value.keys()) + pobj_set = set(pobj_value.keys()) + + add = list(pobj_set - self_set) + remove = list(self_set - pobj_set) + + if len(add) + len(remove) > 0 and not property.editable: + raise ObjectValidationException("Tried to add/remove items from non-editable array '%s' (Add: %s Remove: %s)""" % (name, add, remove)) + + common = list(self_set & pobj_set) + + self_items_value = dict([(k, v) for k, v in self_value.items() if k in common]) + pobj_items_value = dict([(k, v) for k, v in pobj_value.items() if k in common]) + + edit = {} + for s in self_items_value.values(): + p = pobj_items_value[s.id] + item_changes = s.validate_update(p) + if len(item_changes.changes) > 0: + if not property.editable: + raise ObjectValidationException("Tried to edit an item in an non-editable array '%s' (Item with id '%s')""" % (name, s.id)) + else: + edit[s.id] = item_changes + + if len(add) + len(remove) + len(edit) > 0: + changes[name] = ArrayPropertyChange(PropertyChange.EDIT, add, remove, edit) + else: + # We have no way of telling if individual entries have been edited, + # or even if entries have been added/removed, since we don't have + # object equality implemented yet. + pass + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + elif issubclass(property.type, PersistentObject): + if not self_hasattr and pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to add a property, but it is non-editable (setting '%s' to %s)""" % (name, pobj_value)) + else: + changes[name] = ObjectPropertyChange(PropertyChange.ADD, None) + elif self_hasattr and not pobj_hasattr: + if not property.editable: + raise ObjectValidationException("Tried to remove a property, but it is non-editable (removing '%s' = %s)""" % (name, self_value)) + else: + changes[name] = ObjectPropertyChange(PropertyChange.REMOVE, None) + elif self_hasattr and pobj_hasattr: + property_changes = self_value.validate_update(pobj_value) + if len(property_changes.changes) > 0: + if not property.editable: + raise ObjectValidationException("Tried to to change the value of non-editable property '%s' (Changes: '%s')""" % (name, property_changes.to_dict())) + else: + changes[name] = property_changes + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + return ObjectPropertyChange(PropertyChange.EDIT, changes) + + def to_json_dict(self): + json = {} + for name, property in self.properties.items(): + if hasattr(self, name): + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + value = getattr(self, name) + elif property.type == PropertyTypes.ARRAY: + value = [] + + if inspect.isclass(property.items) and issubclass(property.items, PersistentObject) and property.items_unique: + l = getattr(self, name).values() + else: + l = getattr(self, name) + + for elem in l: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + value.append(elem) + elif issubclass(property.items, PersistentObject): + elem_obj = elem.to_json_dict() + value.append(elem_obj) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + elif issubclass(property.type, PersistentObject): + value = getattr(self, name).to_json_dict() + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + json[name] = value + + return json + + def to_json_string(self): + return json.dumps(self.to_json_dict(), indent=2) + + def __primitive_to_ruby(self, value, p_type): + if p_type == PropertyTypes.STRING: + return "\"%s\"" % value + elif p_type == PropertyTypes.INTEGER: + return "%i" % value + elif p_type == PropertyTypes.NUMBER: + return "%f" % value + elif p_type == PropertyTypes.BOOLEAN: + if value == True: + return "true" + else: + return "false" + elif p_type == PropertyTypes.NULL: + return "nil" + + def to_ruby_hash_string(self): + hash_str = "{" + + obj_items = {} + for name, property in self.properties.items(): + if hasattr(self, name): + value = getattr(self, name) + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + value_str = self.__primitive_to_ruby(value, property.type) + elif property.type == PropertyTypes.ARRAY and inspect.isclass(property.items) and issubclass(property.items, PersistentObject) and property.items_unique: + value_str = "{" + + items = {} + for k, elem in value.items(): + items[k] = elem.to_ruby_hash_string() + + value_str += ", ".join([" \"%s\" => %s" % (k,v) for k,v in items.items()]) + value_str += "}" + elif property.type == PropertyTypes.ARRAY: + value_str = "[" + + items = [] + for elem in value: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + items.append( self.__primitive_to_ruby(elem, property.items) ) + elif issubclass(property.items, PersistentObject): + items.append( elem.to_ruby_hash_string() ) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + value_str += ", ".join(items) + value_str += "]" + elif inspect.isclass(property.type) and issubclass(property.type, PersistentObject): + value_str = value.to_ruby_hash_string() + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + obj_items[name] = value_str + + hash_str += ", ".join([" :%s => %s" % (k,v) for k,v in obj_items.items()]) + + hash_str += "}" + + return hash_str + + @classmethod + def from_json_string(cls, json_string): + try: + json_dict = json.loads(json_string) + return cls.from_json_dict(json_dict) + except ValueError, ve: + raise ObjectValidationException("Error parsing JSON. %s" % ve) + + @classmethod + def from_json_dict(cls, obj_dict): + obj = cls() + if not isinstance(obj_dict, dict): + raise ObjectValidationException("JSON provided for %s is not a dictionary" % cls.__name__) + + given_names = set(obj_dict.keys()) + required_names = set([p.name for p in cls.properties.values() if p.required]) + valid_names = set(cls.properties.keys()) + + # Check whether required fields are present + missing = required_names - given_names + if len(missing) > 0: + raise ObjectValidationException("JSON provided for %s is missing required properties: %s" % (cls.__name__, ", ".join(missing))) + + # Check whether there are any unexpected fields + unexpected = given_names - valid_names + if len(unexpected) > 0: + raise ObjectValidationException("Encountered unexpected properties in JSON provided for %s: %s" % (cls.__name__, ", ".join(unexpected))) + + for p_name, p_value in obj_dict.items(): + property = cls.properties[p_name] + if not validate_property_type(p_value, property.type, property.items, json = True): + raise ObjectValidationException("'%s' is not a valid value for %s.%s. Expected a %s." % (p_value, cls.__name__, p_name, pt_to_str(property.type, property.items))) + else: + if property.type in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + obj.set_property(p_name, p_value) + + elif property.type == PropertyTypes.ARRAY and property.items_unique: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + l = list(set(p_value)) + if len(l) < len(p_value): + raise ObjectValidationException("%s.%s requires unique values, but '%s' contains duplicate values." % (cls.__name__, p_name, p_value)) + obj.set_property(p_name, l) + if inspect.isclass(property.items) and issubclass(property.items, PersistentObject): + d = {} + for elem in p_value: + if not elem.has_key("id"): + raise ObjectValidationException("%s.%s requires unique objects, but '%s' does not have an 'id' property." % (cls.__name__, p_name, elem)) + key = elem["id"] + if d.has_key(key): + raise ObjectValidationException("%s.%s requires unique objects, but id=%s encountered twice." % (cls.__name__, p_name, key)) + elem_obj = property.items.from_json_dict(elem) + setattr(elem_obj, "parent_%s" % cls.__name__, obj) + d[key] = elem_obj + obj.set_property(p_name, d) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + elif property.type == PropertyTypes.ARRAY and not property.items_unique: + if property.items in (PropertyTypes.STRING, PropertyTypes.INTEGER, PropertyTypes.NUMBER, PropertyTypes.BOOLEAN, PropertyTypes.NULL): + l = [] + for elem in p_value: + l.append(elem) + obj.set_property(p_name, l) + elif inspect.isclass(property.items) and issubclass(property.items, PersistentObject): + l = [] + for elem in p_value: + elem_obj = property.items.from_json_dict(elem) + l.append(elem_obj) + obj.set_property(p_name, l) + elif property.items in (PropertyTypes.ARRAY): + raise ObjectValidationException("ARRAYs of ARRAYs not supported.") + elif property.items in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + elif inspect.isclass(property.type) and issubclass(property.type, PersistentObject): + p_value_obj = property.type.from_json_dict(p_value) + obj.set_property(p_name, p_value_obj) + + elif property.type in (PropertyTypes.OBJECT, PropertyTypes.ANY): + raise ObjectValidationException("Arbitrary types (OBJECT, ANY) not supported.") + + return obj Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/persistence.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,207 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Remote execution and file transfer via SSH + +This module provides an abstraction over the paramiko package. +""" + +import sys +import paramiko +import time +import select +import os.path +import traceback +from paramiko.ssh_exception import SSHException + +# Try to use our patched version of paraproxy only if +# it is available. If it isn't, ProxyCommand support +# will simply be unavailable +try: + import dg_paraproxy +except: + pass + +from Crypto.Random import atfork + +from globus.provision.common import log +from os import walk + +class SSHCommandFailureException(Exception): + def __init__(self, ssh, command): + self.ssh = ssh + self.command = command + + +class SSH(object): + def __init__(self, username, hostname, key_path, default_outf = sys.stdout, default_errf = sys.stderr, port=22): + self.username = username + self.hostname = hostname + self.key_path = key_path + self.default_outf = default_outf + self.default_errf = default_errf + self.port = port + + def open(self, timeout = 120): + key = paramiko.RSAKey.from_private_key_file(self.key_path) + connected = False + t_start = time.time() + while not connected: + try: + atfork() + self.client = paramiko.SSHClient() + self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + self.client.connect(self.hostname, self.port, self.username, timeout=5, pkey=key) + connected = True + except Exception, e: + t_now = time.time() + if t_now - t_start > timeout: + raise e + else: + time.sleep(2) + + try: + self.sftp = self.client.get_transport().open_sftp_client() + except SSHException, sshe: + # Some SSH servers, like the GO CLI, are not amenable to SFTP + log.debug("Unable to create an SFTP client on this connection.") + self.sftp = None + + def close(self): + self.client.close() + + def run(self, command, outf=None, errf=None, exception_on_error = True, expectnooutput=False): + channel = self.client.get_transport().open_session() + + log.debug("%s - Running %s" % (self.hostname,command)) + + if outf == None: + outf = self.default_outf + + if errf == None: + errf = self.default_errf + + try: + channel.exec_command(command) + if expectnooutput: + log.debug("Ignoring output from command (not expecting any)") + else: + all_out_nbytes = 0 + all_err_nbytes = 0 + rem_out = "" + rem_err = "" + while True: + rl, wl, xl = select.select([channel],[],[], 0.1) + if len(rl) > 0: + out_nbytes, rem_out = self.__recv(outf, channel.recv_ready, channel.recv, "SSH_OUT", rem_out) + err_nbytes, rem_err = self.__recv(errf, channel.recv_stderr_ready, channel.recv_stderr, "SSH_ERR", rem_err) + + if out_nbytes + err_nbytes == 0: + break + + all_out_nbytes += out_nbytes + all_err_nbytes += err_nbytes + + if all_out_nbytes == 0: + log.debug("Command did not write to standard output.") + + if all_err_nbytes == 0: + log.debug("Command did not write to standard error.") + + log.debug("%s - Waiting for exit status: %s" % (self.hostname,command)) + rc = channel.recv_exit_status() + log.debug("%s - Ran %s (exit status: %i)" % (self.hostname,command,rc)) + channel.close() + except Exception, e: + raise # Replace by something more meaningful + + if exception_on_error and rc != 0: + raise SSHCommandFailureException(self, command) + else: + return rc + + + + + def scp(self, fromf, tof): + # Create directory if it does not exist + try: + self.sftp.stat(os.path.dirname(tof)) + except IOError, e: + pdirs = get_parent_directories(tof) + for d in pdirs: + try: + self.sftp.stat(d) + except IOError, e: + self.sftp.mkdir(d) + try: + self.sftp.put(fromf, tof) + except Exception, e: + traceback.print_exc() + try: + self.close() + except: + pass + log.debug("scp %s -> %s:%s" % (fromf, self.hostname, tof)) + + def scp_dir(self, fromdir, todir): + for root, dirs, files in walk(fromdir): + todir_full = todir + "/" + root[len(fromdir):] + try: + self.sftp.stat(todir_full) + except IOError, e: + self.sftp.mkdir(todir_full) + for f in files: + fromfile = root + "/" + f + tofile = todir_full + "/" + f + self.sftp.put(fromfile, tofile) + log.debug("scp %s -> %s:%s" % (fromfile, self.hostname, tofile)) + + def __recv(self, f, ready_func, recv_func, log_label, rem): + nbytes = 0 + while ready_func(): + data = recv_func(4096) + if len(data) > 0: + nbytes += len(data) + + if f is not None: + f.write(data) + + lines = data.split('\n') + + if len(lines) == 1: + rem += lines[0] + else: + log.debug(log_label + ": %s" % (rem + lines[0])) + for line in lines[1:-1]: + log.debug(log_label + ": %s" % line) + rem = lines[-1] + + if f is not None: f.flush() + + return nbytes, rem + + +def get_parent_directories(filepath): + dir = os.path.dirname(filepath) + dirs = [dir] + while dir != "/": + dir = os.path.dirname(dir) + dirs.append(dir) + dirs.reverse() + return dirs + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/ssh.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,163 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Thread management + +This module provides an abstraction over the threading package, including +the ability to manage the execution of a tree of threads. +""" + +import os +import sys +import signal +import threading +import traceback +from globus.provision.common import log + +class ThreadAbortException(Exception): + pass + +class GPThread (threading.Thread): + def __init__ (self, multi, name, depends = None): + threading.Thread.__init__(self) + self.multi = multi + self.name = name + self.exception = None + self.stack_trace = None + self.status = -1 + self.depends = depends + + def check_continue(self): + if self.multi.abort.is_set(): + raise ThreadAbortException() + + def run2(self): + pass + + def run(self): + try: + self.run2() + self.status = 0 + except Exception: + exc_type, exc_value, exc_traceback = sys.exc_info() + self.exception = exc_value + self.stack_trace = traceback.format_exception(exc_type, exc_value, exc_traceback) + self.status = 1 + self.multi.thread_failure(self) + + if self.status == 0: + self.multi.thread_success(self) + +class MultiThread(object): + def __init__(self): + self.num_threads = 0 + self.done_threads = 0 + self.threads = {} + self.lock = threading.Lock() + self.all_done = threading.Event() + self.abort = threading.Event() + + def add_thread(self, thread): + self.threads[thread.name] = thread + self.num_threads += 1 + + def run(self): + self.done_threads = 0 + for t in [th for th in self.threads.values() if th.depends == None]: + t.start() + self.all_done.wait() + + def thread_success(self, thread): + with self.lock: + self.done_threads += 1 + log.debug("%s thread has finished successfully." % thread.name) + log.debug("%i threads are done. Remaining: %s" % (self.done_threads, ",".join([t.name for t in self.threads.values() if t.status == -1]))) + for t in [th for th in self.threads.values() if th.depends == thread]: + t.start() + if self.done_threads == self.num_threads: + self.all_done.set() + + def thread_failure(self, thread): + with self.lock: + if not isinstance(thread.exception, ThreadAbortException): + log.debug("%s thread has failed: %s" % (thread.name, thread.exception)) + self.abort.set() + else: + log.debug("%s thread is being aborted." % thread.name) + thread.status = 2 + self.done_threads += 1 + self.abort_dependents(thread) + log.debug("%i threads are done. Remaining: %s" % (self.done_threads, ",".join([t.name for t in self.threads.values() if t.status == -1]))) + if self.done_threads == self.num_threads: + self.all_done.set() + + def abort_dependents(self, thread): + dep = [th for th in self.threads.values() if th.depends == thread] + for th in dep: + log.debug("%s thread is being aborted because it depends on failed %s thread." % (th.name, thread.name)) + th.status = 3 + self.done_threads += 1 + self.abort_dependents(th) + + def all_success(self): + return all([t.status == 0 for t in self.threads.values()]) + + def get_exceptions(self): + return dict([(t.name, (t.exception, t.stack_trace)) for t in self.threads.values() if t.status == 1]) + +# From http://code.activestate.com/recipes/496735-workaround-for-missed-sigint-in-multithreaded-prog/ +# Modified so it will run a cleanup function +class SIGINTWatcher(object): + """this class solves two problems with multithreaded + programs in Python, (1) a signal might be delivered + to any thread (which is just a malfeature) and (2) if + the thread that gets the signal is waiting, the signal + is ignored (which is a bug). + + The watcher is a concurrent process (not thread) that + waits for a signal and the process that contains the + threads. See Appendix A of The Little Book of Semaphores. + http://greenteapress.com/semaphores/ + + I have only tested this on Linux. I would expect it to + work on the Macintosh and not work on Windows. + """ + + def __init__(self, cleanup_func): + """ Creates a child thread, which returns. The parent + thread waits for a KeyboardInterrupt and then kills + the child thread. + """ + self.cleanup_func = cleanup_func + self.child = os.fork() + if self.child == 0: + return + else: + self.watch() + + def watch(self): + try: + os.wait() + except KeyboardInterrupt: + self.cleanup_func() + self.kill() + sys.exit() + + def kill(self): + try: + os.kill(self.child, signal.SIGKILL) + except OSError: pass Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/threads.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,127 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Miscellaneous utility functions. +""" + +import glob +import os + +from os import environ + +from boto.ec2.connection import EC2Connection,RegionInfo +from boto import connect_ec2 + + +def create_ec2_connection(hostname = None, path = None, port = None): + if hostname == None: + # We're using EC2. + # Check for AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, + # and use EC2Connection. boto will fill in all the values + if not (environ.has_key("AWS_ACCESS_KEY_ID") and environ.has_key("AWS_SECRET_ACCESS_KEY")): + return None + else: + return EC2Connection() + else: + # We're using an EC2-ish cloud. + # Check for EC2_ACCESS_KEY and EC2_SECRET_KEY (these are used by Eucalyptus; + # we will probably have to tweak this further to support other systems) + if not (environ.has_key("EC2_ACCESS_KEY") and environ.has_key("EC2_SECRET_KEY")): + return None + else: + print "Setting region" + region = RegionInfo(name="eucalyptus", endpoint=hostname) + return connect_ec2(aws_access_key_id=environ["EC2_ACCESS_KEY"], + aws_secret_access_key=environ["EC2_SECRET_KEY"], + is_secure=False, + region=region, + port=port, + path=path) + + +def parse_extra_files_files(f): + l = [] + extra_f = open(f) + for line in extra_f: + srcglob, dst = line.split() + srcs = glob.glob(os.path.expanduser(srcglob)) + srcs = [s for s in srcs if os.path.isfile(s)] + dst_isdir = (os.path.basename(dst) == "") + for src in srcs: + full_dst = dst + if dst_isdir: + full_dst += os.path.basename(src) + l.append( (src, full_dst) ) + return l + +def rest_table(col_names, rows): + def gen_line(lens, char): + return "+" + char + (char + "+" + char).join([char * l for l in lens]) + char + "+\n" + + num_cols = len(col_names) + len_cols = [0] * num_cols + height_row = [0] * len(rows) + + table = "" + + for i, name in enumerate(col_names): + len_cols[i] = max(len(name), len_cols[i]) + + for i, row in enumerate(rows): + for j in range(num_cols): + lines = row[j].split("\n") + row_len = max([len(l) for l in lines]) + len_cols[j] = max(row_len, len_cols[j]) + height_row[i] = max(len(lines), height_row[i]) + + table += gen_line(len_cols, "-") + + table += "|" + for i, name in enumerate(col_names): + table += " " + table += col_names[i].ljust(len_cols[i]) + table += " |" + table += "\n" + + table += gen_line(len_cols, "=") + + for i, row in enumerate(rows): + for j in range(height_row[i]): + table += "|" + for k, col in enumerate(row): + lines = col.split("\n") + + if len(lines) < j + 1: + col_txt = " " * len_cols[k] + else: + col_txt = lines[j].ljust(len_cols[k]) + + table += " " + table += col_txt + table += " |" + table += "\n" + + table += gen_line(len_cols, "-") + + return table + +# From http://stackoverflow.com/questions/36932/whats-the-best-way-to-implement-an-enum-in-python +def enum(*sequential, **named): + enums = dict(zip(sequential, range(len(sequential))), **named) + return type('Enum', (), enums) + + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/common/utils.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,28 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +This is the core package of Globus Provision. The core is in charge of managing +instances (creating, starting, stopping, etc.). Although the core orchestrates +the deployment of instances, it does not have any infrastructure-specific code. +In other words, the core knows how to start an instance but, when it reaches a +point where an infrastructure-specific action has to be taken (e.g., "start an +EC2 instance"), it delegates that task to the appropriate deployer (in the +globus.provision.deploy package). + +The core provides an API that is used by the Command-Line Interface, +and could potentially be used by other frontends. +""" \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,735 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +""" +The Globus Provision API + +This API is currently meant to be used locally (i.e., not accessible through a +network via a remote call interface like REST, SOAP, etc.) and by a single +user (i.e., there is no notion of different users owning different instances). +Future versions of Globus Provision may run as a daemon with a remotely-accessible +API that supports multiple users. +""" + +import sys +import traceback +import os.path + +from boto.exception import EC2ResponseError + +import globus.provision.deploy.ec2 as ec2_deploy +import globus.provision.deploy.dummy as dummy_deploy + +from globus.provision.core.deploy import DeploymentException +from globus.provision.core.topology import Topology, Node +from globus.provision.core.instance import InstanceStore, InstanceException +from globus.provision.common.threads import MultiThread +from globus.provision.common.ssh import SSHCommandFailureException +from globus.provision.common import log +from globus.provision.common.config import ConfigException +from globus.provision.common.persistence import ObjectValidationException,\ + PropertyChange +from globus.provision.common.go_transfer import GlobusOnlineCLIHelper, GlobusOnlineHelper,\ + GlobusOnlineException + +class API(object): + """ + The Globus Provision API. + """ + + STATUS_SUCCESS = 0 + STATUS_FAIL = 1 + + def __init__(self, instances_dir): + self.instances_dir = instances_dir + + def instance_create(self, topology_json, config_txt): + try: + istore = InstanceStore(self.instances_dir) + inst = istore.create_new_instance(topology_json, config_txt) + except ConfigException, cfge: + message = "Error in configuration file: %s" % cfge + return (API.STATUS_FAIL, message, None) + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (API.STATUS_FAIL, message, None) + except: + message = self.__unexpected_exception_to_text(what = "creating a new instance.") + return (API.STATUS_FAIL, message, None) + + return (API.STATUS_SUCCESS, "Success", inst.id) + + def instance(self, inst_id): + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message, None) + + try: + json_string = inst.topology.to_json_string() + except: + message = self.__unexpected_exception_to_text(what = "accessing the instance's topology.") + return (API.STATUS_FAIL, message, None) + + return (API.STATUS_SUCCESS, "Success", json_string) + + def instance_start(self, inst_id, extra_files, run_cmds): + + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + try: + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class(extra_files, run_cmds) + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + if inst.topology.state == Topology.STATE_NEW: + resuming = False + elif inst.topology.state == Topology.STATE_STOPPED: + resuming = True + else: + message = "Cannot start an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + if not resuming: + inst.topology.state = Topology.STATE_STARTING + else: + inst.topology.state = Topology.STATE_RESUMING + + inst.topology.save() + + if not resuming: + try: + eps = inst.topology.get_go_endpoints() + self.__globusonline_pre_start(inst, eps) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + + inst.topology.save() + + nodes = inst.topology.get_nodes() + + (success, message, node_vm) = self.__allocate_vms(deployer, nodes, resuming) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_CONFIGURING + inst.topology.save() + + log.info("Instances are running.") + + for node, vm in node_vm.items(): + deployer.post_allocate(node, vm) + + inst.topology.save() + + # Generate certificates + if not resuming: + inst.gen_certificates(force_hosts=False, force_users=False) + else: + inst.gen_certificates(force_hosts=True, force_users=False) + + inst.topology.gen_chef_ruby_file(inst.instance_dir + "/topology.rb") + inst.topology.gen_hosts_file(inst.instance_dir + "/hosts") + + log.info("Setting up Globus Provision on instances") + + (success, message) = self.__configure_vms(deployer, node_vm) + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_RUNNING + inst.topology.save() + + log.info("Creating Globus Online endpoints") + eps = inst.topology.get_go_endpoints() + if not resuming: + try: + self.__globusonline_post_start(inst, eps) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + else: + try: + self.__globusonline_resume(inst, eps) + except GlobusOnlineException, goe: + log.warning("Unable to resume GO endpoint/s: %s" % goe) + + inst.topology.save() + + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "starting the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_update(self, inst_id, topology_json, extra_files, run_cmds): + try: + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + if inst.topology.state == Topology.STATE_NEW: + # If the topology is still in a New state, we simply + # validate that the update is valid, and replace + # the old topology. We don't need to deploy or + # configure any hosts.. + if topology_json != None: + (success, message, create_hosts, destroy_hosts) = inst.update_topology(topology_json) + if not success: + message = "Error in topology file: %s" % message + return (API.STATUS_FAIL, message) + + return (API.STATUS_SUCCESS, "Success") + elif inst.topology.state != Topology.STATE_RUNNING: + message = "Cannot update the topology of an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class(extra_files, run_cmds) + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + if topology_json != None: + old_topology = inst.topology + try: + (success, message, topology_changes) = inst.update_topology(topology_json) + if not success: + return (API.STATUS_FAIL, message) + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (API.STATUS_FAIL, message) + + create_hosts = [] + destroy_hosts = [] + + create_endpoints = [] + remove_endpoints = [] + + if topology_changes.changes.has_key("domains"): + for domain in topology_changes.changes["domains"].add: + d = inst.topology.domains[domain] + create_hosts += [n.id for n in d.nodes.values()] + + for domain in topology_changes.changes["domains"].remove: + d = inst.topology.domains[domain].keys() + destroy_hosts += [n.id for n in d.nodes.values()] + + for domain in topology_changes.changes["domains"].edit: + if topology_changes.changes["domains"].edit[domain].changes.has_key("nodes"): + nodes_changes = topology_changes.changes["domains"].edit[domain].changes["nodes"] + create_hosts += nodes_changes.add + destroy_hosts += nodes_changes.remove + + if topology_changes.changes["domains"].edit[domain].changes.has_key("go_endpoints"): + ep_changes = topology_changes.changes["domains"].edit[domain].changes["go_endpoints"] + if ep_changes.change_type == PropertyChange.ADD: + create_endpoints += inst.topology.domains[domain].go_endpoints + elif ep_changes.change_type == PropertyChange.REMOVE: + remove_endpoints += old_topology.domains[domain].go_endpoints + elif ep_changes.change_type == PropertyChange.EDIT: + create_endpoints += ep_changes.add + remove_endpoints += ep_changes.remove + + nodes = inst.topology.get_nodes() + + if len(destroy_hosts) > 0: + old_nodes = old_topology.get_nodes() + log.info("Terminating hosts %s" % destroy_hosts) + old_nodes = [n for n in old_nodes if n.id in destroy_hosts] + (success, message) = self.__terminate_vms(deployer, old_nodes) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.save() + + if len(create_endpoints) > 0: + try: + self.__globusonline_pre_start(inst, create_endpoints) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + + if len(create_hosts) > 0: + nodes = inst.topology.get_nodes() + log.info("Allocating VMs for hosts %s" % create_hosts) + new_nodes = [n for n in nodes if n.id in create_hosts] + (success, message, node_vm) = self.__allocate_vms(deployer, new_nodes, resuming = False) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.save() + + for node, vm in node_vm.items(): + deployer.post_allocate(node, vm) + + inst.topology.save() + + # Generate certificates + inst.gen_certificates() + + inst.topology.gen_chef_ruby_file(inst.instance_dir + "/topology.rb") + inst.topology.gen_hosts_file(inst.instance_dir + "/hosts") + + log.info("Setting up Globus Provision on instances") + + # Right now we reconfigure all nodes. It shouldn't be hard to follow + # the dependency tree to make sure only the new nodes and "ancestor" + # nodes are updated + nodes = inst.topology.get_nodes() + node_vm = deployer.get_node_vm(nodes) + (success, message) = self.__configure_vms(deployer, node_vm) + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + if topology_json != None: + self.__globusonline_remove(inst, remove_endpoints) + + if len(create_endpoints) > 0: + try: + self.__globusonline_post_start(inst, create_endpoints) + except GlobusOnlineException, goe: + log.warning("Unable to create GO endpoint/s: %s" % goe) + + inst.topology.state = Topology.STATE_RUNNING + inst.topology.save() + + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "starting the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_stop(self, inst_id): + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + try: + if inst.topology.state != Topology.STATE_RUNNING: + message = "Cannot start an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class() + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_STOPPING + inst.topology.save() + + nodes = inst.topology.get_nodes() + + (success, message) = self.__stop_vms(deployer, nodes) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_STOPPED + inst.topology.save() + + log.info("Stopping Globus Online endpoints") + try: + eps = inst.topology.get_go_endpoints() + self.__globusonline_stop(inst, eps) + inst.topology.save() + except GlobusOnlineException, goe: + log.warning("Unable to stop GO endpoint/s: %s" % goe) + + log.info("Instance has stopped successfully.") + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "stopping the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_terminate(self, inst_id): + (success, message, inst) = self.__get_instance(inst_id) + + if not success: + return (API.STATUS_FAIL, message) + + log.set_logging_instance(inst) + + try: + if inst.topology.state in [Topology.STATE_NEW]: + message = "Cannot terminate an instance that is in state '%s'" % (Topology.state_str[inst.topology.state]) + return (API.STATUS_FAIL, message) + + deployer_class = self.__get_deployer_class(inst) + deployer = deployer_class() + + try: + deployer.set_instance(inst) + except DeploymentException, de: + message = "Deployer failed to initialize. %s " % de + return (API.STATUS_FAIL, message) + + inst.topology.state = Topology.STATE_TERMINATING + inst.topology.save() + + nodes = inst.topology.get_nodes() + + (success, message) = self.__terminate_vms(deployer, nodes) + + if not success: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + return (API.STATUS_FAIL, message) + + # Remove GO endpoints + eps = inst.topology.get_go_endpoints() + self.__globusonline_remove(inst, eps) + + inst.topology.state = Topology.STATE_TERMINATED + inst.topology.save() + + log.info("Instances have been terminated.") + return (API.STATUS_SUCCESS, "Success") + except: + message = self.__unexpected_exception_to_text(what = "starting the instance.") + try: + if inst != None: + inst.topology.state = Topology.STATE_FAILED + inst.topology.save() + except: + message += "\nNote: Unable to update instance's state to 'Failed'" + return (API.STATUS_FAIL, message) + + + def instance_list(self, inst_ids): + istore = InstanceStore(self.instances_dir) + + (valid, invalid) = istore.get_instances(inst_ids) + instances_jsons = [] + for inst in valid: + instances_jsons.append(inst.topology.to_json_string()) + + instances_json = "[" + ",".join(instances_jsons) + "]" + + # TODO: Return invalid instances as "warnings", once we + # add that extra return value to the API. + return API.STATUS_SUCCESS, "Success", instances_json + + + def __get_instance(self, inst_id): + try: + istore = InstanceStore(self.instances_dir) + inst = istore.get_instance(inst_id) + return (True, "Success", inst) + except ConfigException, cfge: + message = "Error in configuration file: %s" % cfge + return (False, message, None) + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (False, message, None) + except InstanceException, ie: + return (False, str(ie), None) + except: + message = self.__unexpected_exception_to_text(what = "accessing the instance.") + return (False, message, None) + + def __get_deployer_class(self, inst): + if inst.config.get("deploy") == "ec2": + deploy_module = ec2_deploy + elif inst.config.get("deploy") == "dummy": + deploy_module = dummy_deploy + + return deploy_module.Deployer + + + def __globusonline_pre_start(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + if ep.has_property("globus_connect_cert") and ep.globus_connect_cert: + if ep.gridftp.startswith("node:"): + gridftp_node = inst.topology.get_node_by_id(ep.gridftp[5:]) + go_helper.connect(ep.user) + gc_setupkey = go_helper.endpoint_gc_create(ep, replace = True) + gridftp_node.set_property("gc_setupkey", gc_setupkey) + go_helper.disconnect() + + + def __globusonline_post_start(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + go_helper.connect(ep.user) + if ep.has_property("globus_connect_cert") and ep.globus_connect_cert: + if ep.gridftp.startswith("node:"): + go_helper.endpoint_gc_create_finalize(ep) + else: + go_helper.create_endpoint(ep, replace=True) + go_helper.disconnect() + + def __globusonline_remove(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + try: + for ep in eps: + go_helper.connect(ep.user) + try: + go_helper.endpoint_remove(ep) + except: + pass + go_helper.disconnect() + except GlobusOnlineException, goe: + log.warning("Unable to remove GO endpoint/s: %s" % goe) + + + def __globusonline_stop(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + go_helper.connect(ep.user) + go_helper.endpoint_stop(ep) + go_helper.disconnect() + + def __globusonline_resume(self, inst, eps): + go_helper = GlobusOnlineHelper.from_instance(inst) + + for ep in eps: + go_helper.connect(ep.user) + go_helper.endpoint_resume(ep) + go_helper.disconnect() + + + def __allocate_vms(self, deployer, nodes, resuming): + # TODO: Make this an option + sequential = False + topology = deployer.instance.topology + + if not resuming: + log.info("Allocating %i VMs." % len(nodes)) + next_state = Node.STATE_RUNNING_UNCONFIGURED + else: + log.info("Resuming %i VMs" % len(nodes)) + next_state = Node.STATE_RESUMED_UNCONFIGURED + node_vm = {} + for n in nodes: + try: + if not resuming: + n.set_property("state", Node.STATE_STARTING) + topology.save() + vm = deployer.allocate_vm(n) + else: + n.set_property("state", Node.STATE_RESUMING) + topology.save() + vm = deployer.resume_vm(n) + node_vm[n] = vm + except Exception: + message = self.__unexpected_exception_to_text() + return (False, message, None) + + if sequential: + log.debug("Waiting for instance to start.") + wait = deployer.NodeWaitThread(None, "wait-%s" % str(vm), n, vm, deployer, state = next_state) + wait.run2() + + if not sequential: + log.debug("Waiting for instances to start.") + mt_instancewait = MultiThread() + for node, vm in node_vm.items(): + mt_instancewait.add_thread(deployer.NodeWaitThread(mt_instancewait, "wait-%s" % str(vm), node, vm, deployer, state = next_state)) + + mt_instancewait.run() + if not mt_instancewait.all_success(): + message = self.__mt_exceptions_to_text(mt_instancewait.get_exceptions(), "Exception raised while waiting for instances.") + return (False, message, None) + + return (True, "Success", node_vm) + + + def __configure_vms(self, deployer, node_vm, basic = True, chef = True): + nodes = node_vm.keys() + mt_configure = MultiThread() + topology = deployer.instance.topology + order = topology.get_launch_order(nodes) + + threads = {} + for nodeset in order: + rest = dict([(n, deployer.NodeConfigureThread(mt_configure, + "configure-%s" % n.id, + n, + node_vm[n], + deployer, + depends=threads.get(topology.get_depends(n)), + basic = basic, + chef = chef)) for n in nodeset]) + threads.update(rest) + + for thread in threads.values(): + mt_configure.add_thread(thread) + + mt_configure.run() + if not mt_configure.all_success(): + message = self.__mt_exceptions_to_text(mt_configure.get_exceptions(), "Globus Provision was unable to configure the instances.") + return (False, message) + + return (True, "Success") + + def __mt_exceptions_to_text(self, exceptions, what): + msg = "ERROR - " + what + for thread_name in exceptions: + msg += "\n\n" + exception_obj, exception_trace = exceptions[thread_name] + if isinstance(exception_obj, SSHCommandFailureException): + msg += " %s: Error while running '%s'\n" % (thread_name, exception_obj.command) + elif isinstance(exception_obj, EC2ResponseError): + msg += " %s: EC2 error '%s'\n" % (thread_name, exception_obj.reason) + msg += " Body: %s\n" % exception_obj.body + else: + msg += " %s: Unexpected exception '%s'\n" % (thread_name, exception_obj.__class__.__name__) + msg += " Message: %s\n" % exception_obj + for l in exception_trace: + msg += l + return msg + + + def __unexpected_exception_to_text(self, what=""): + exc_type, exc_value, exc_traceback = sys.exc_info() + if what != "": what = " when " + what + msg = "An unexpected '%s' exception has been raised%s\n\n" % (exc_type.__name__, what) + msg += "Message: %s\n\n" % exc_value + trace = traceback.format_exception(exc_type, exc_value, exc_traceback) + for l in trace: + msg += l + return msg + + + def __stop_vms(self, deployer, nodes): + node_vm = deployer.get_node_vm(nodes) + topology = deployer.instance.topology + mt_configure = MultiThread() + order = topology.get_launch_order(nodes) + order.reverse() + + for n in node_vm: + n.state = Node.STATE_STOPPING + topology.save() + + threads = {} + for nodeset in order: + rest = dict([(n, deployer.NodeConfigureThread(mt_configure, + "stop-configure-%s" % n.id, + n, + node_vm[n], + deployer, + depends=threads.get(topology.get_depends(n)))) for n in nodeset]) + threads.update(rest) + + for thread in threads.values(): + mt_configure.add_thread(thread) + + mt_configure.run() + if not mt_configure.all_success(): + message = self.__mt_exceptions_to_text(mt_configure.get_exceptions(), "Globus Provision was unable to configure the instances.") + return (False, message) + + + for nodeset in order: + deployer.stop_vms(nodeset) + + log.debug("Waiting for instances to stop.") + mt_instancewait = MultiThread() + for node, vm in node_vm.items(): + mt_instancewait.add_thread(deployer.NodeWaitThread(mt_instancewait, "wait-%s" % str(vm), node, vm, deployer, state = Node.STATE_STOPPED)) + + mt_instancewait.run() + if not mt_instancewait.all_success(): + message = self.__mt_exceptions_to_text(mt_instancewait.get_exceptions(), "Exception raised while waiting for instances.") + return (False, message) + + return (True, "Success") + + def __terminate_vms(self, deployer, nodes): + topology = deployer.instance.topology + + for n in nodes: + n.state = Node.STATE_TERMINATING + topology.save() + + deployer.terminate_vms(nodes) + + node_vm = deployer.get_node_vm(nodes) + + log.debug("Waiting for instances to terminate.") + mt_instancewait = MultiThread() + for node, vm in node_vm.items(): + mt_instancewait.add_thread(deployer.NodeWaitThread(mt_instancewait, "wait-%s" % str(vm), node, vm, deployer, state = Node.STATE_TERMINATED)) + + mt_instancewait.run() + if not mt_instancewait.all_success(): + message = self.__mt_exceptions_to_text(mt_instancewait.get_exceptions(), "Exception raised while waiting for instances.") + return (False, message) + + return (True, "Success") + + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/api.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,806 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Contains the parsers for the two configuration files used in Globus Provision: + +* The instance configuration file (GPConfig): This is the configuration file + that specifies options related to an instance's deploymenr. + +* The simple topology file: This is a simple format for specifying topologies + (which internally translated to the topology JSON format). It has the + format of a configuration file although, strictly speaking, it is *not* + a configuration file. + +""" + +from globus.provision.core.topology import Domain, User, Node, Topology,\ + DeployData, EC2DeployData, GridMapEntry, GOEndpoint +from globus.provision.common.config import Config, Section, Option, OPTTYPE_INT, OPTTYPE_FLOAT, OPTTYPE_STRING, OPTTYPE_BOOLEAN, OPTTYPE_FILE +import os.path +import getpass + +class GPConfig(Config): + """ + The instance configuration file. + """ + + sections = [] + + # ============================= # + # # + # GENERAL OPTIONS # + # # + # ============================= # + + general = Section("general", required=True, + doc = "This section is used for general options affecting Globus Provision as a whole.") + general.options = \ + [ + Option(name = "ca-cert", + getter = "ca-cert", + type = OPTTYPE_FILE, + required = False, + doc = """ + Location of CA certificate (PEM-encoded) used to generate user + and host certificates. If blank, Globus Provision will generate a self-signed + certificate from scratch. + """), + Option(name = "ca-key", + getter = "ca-key", + type = OPTTYPE_FILE, + required = False, + doc = """ + Location of the private key (PEM-encoded) for the certificate + specified in ``ca-cert``. + """), + Option(name = "ca-dn", + getter = "ca-dn", + type = OPTTYPE_STRING, + required = False, + doc = """ + Distinguished Name of the certificates that will be signed with + the CA certificate specified in ``ca-cert``. + + For example, if you set this value to ``O=Foo, OU=Bar``, the certificates + will have subjects like ``/O=Foo/OU=Bar/CN=borja``, ``/O=Foo/OU=Bar/CN=host/foo.example.org``, etc. + """), + Option(name = "scratch-dir", + getter = "scratch-dir", + type = OPTTYPE_STRING, + required = False, + default = "/var/tmp", + doc = """ + Scratch directory that Chef will use (on the provisioned machines) + while configuring them. + """), + Option(name = "deploy", + getter = "deploy", + type = OPTTYPE_STRING, + required = True, + valid = ["ec2", "dummy"], + doc = """ + Globus Provision can support various "deployers" that are used to + deploy the hosts in a topology. Two deployers are currently supported: + + * ``ec2``: Hosts are deployed as Amazon EC2 instances. + * ``dummy``: Hosts are not actually deployed and are assigned dummy + hostnames and IP addresses. + + See the Globus Provision documentation for more details on the + available deployers. + """) + ] + + sections.append(general) + + # ====================== # + # # + # EC2 OPTIONS # + # # + # ====================== # + + ec2 = Section("ec2", required=False, + required_if = [(("general","deploy"),"ec2")], + doc = """ + When the EC2 deployer is selected, Globus Provision will need certain information about + your EC2 account to be able to request EC2 instances on which to deploy your topology. This account + information is specified in this section of the configuration file. If you are unclear on what values + you need to specify here, see :ref:`chap_ec2` for more detailed instructions (including how to set up + an Amazon EC2 account)""") + ec2.options = \ + [ + Option(name = "keypair", + getter = "ec2-keypair", + type = OPTTYPE_STRING, + required = True, + doc = """ + The *name* of the Amazon EC2 keypair you will use to log into the VMs. + See :ref:`chap_ec2` for instructions on how to obtain this keypair. + """), + Option(name = "keyfile", + getter = "ec2-keyfile", + type = OPTTYPE_FILE, + required = True, + doc = """ + The actual location of the keypair on your local filesystem. + See :ref:`chap_ec2` for instructions on how to obtain this keypair. + """), + Option(name = "username", + getter = "ec2-username", + type = OPTTYPE_STRING, + required = True, + doc = """ + The username that Globus Provision will use to connect to the EC2 instances, + using the keypair specified in ``keypair``. If you are using one of the + Globus Provision AMIs, you need to set this value to ``ubuntu``. + """), + Option(name = "server-hostname", + getter = "ec2-server-hostname", + type = OPTTYPE_STRING, + required = False, + doc = """ + The hostname of the EC2 server. If you are using Amazon AWS, leave this option + unspecified. If you are using an EC2-compatible system, such as OpenNebula, Nimbus, + Eucalyptus, etc. set this to the server running that system's EC2 interface. + """), + Option(name = "server-port", + getter = "ec2-server-port", + type = OPTTYPE_INT, + required = False, + doc = """ + The TCP port of the EC2 server. If you are using Amazon AWS, leave this option + unspecified. If you are using an EC2-compatible system, such as OpenNebula, Nimbus, + Eucalyptus, etc. set this to the port on which that system's EC2 interface is listening on. + """), + Option(name = "server-path", + getter = "ec2-server-path", + type = OPTTYPE_STRING, + required = False, + doc = """ + The path portion of the EC2 server. If you are using Amazon AWS, leave this option + unspecified. If you are using an EC2-compatible system, such as OpenNebula, OpenStack, + Eucalyptus, etc. set this to the path (in the host specified in ``server-hostname``) + that the system's EC2 interface is available on. + """) + ] + sections.append(ec2) + + # ================================ # + # # + # GLOBUS ONLINE OPTIONS # + # # + # ================================ # + + go = Section("globusonline", required=False, + doc = """ + When a topology includes Globus Online transfer endpoints, Globus Provision will + use GO's API to set up those endpoints. To do so, it will need some information + about your GO account. If you are unclear on what values you need to specify here, + see :ref:`chap_go` for more detailed instructions. + """) + go.options = \ + [ + + Option(name = "ssh-key", + getter = "go-ssh-key", + type = OPTTYPE_FILE, + default = "~/.ssh/id_rsa", + required = False, + doc = """ + SSH key to use when connecting to the Globus Online CLI. The public key + for this SSH key must have been previously added to your Globus Online + profile. + """), + Option(name = "cert-file", + getter = "go-cert-file", + type = OPTTYPE_FILE, + required = False, + doc = """ + When this option is specified, Globus Provision will access your GO + account using Globus Online's Transfer API (instead of sending commands + to Globus Online's CLI via SSH). To do so, Globus Provision needs the + location of a user certificate (PEM-encoded) that is authorized to access + the accounts specified in your topology's endpoints. + + See :ref:`chap_go` for more details on the differences between using the + Transfer API, instead of the CLI via SSH. + """), + Option(name = "key-file", + getter = "go-key-file", + type = OPTTYPE_FILE, + required = False, + doc = """ + Location of the private key (PEM-encoded) for the certificate + specified in ``cert-file``. + """), + Option(name = "server-ca-file", + getter = "go-server-ca-file", + type = OPTTYPE_STRING, + required = False, + doc = """ + To verify the server certificate of the Globus Online Transfer API server, + Globus Provision needs the certificate of the CA that signed that certificate. + This file is already bundled with Globus Provision. The only reason for using + this option to specify a different CA certificate is in the unlikely case that + the API server decides to switch to a different CA (and the file bundled + with Globus Provision has not been updated to that CA yet). + """) + ] + sections.append(go) + + def __init__(self, config_file): + Config.__init__(self, config_file, self.sections) + + +class SimpleTopologyConfig(Config): + """ + The simple topology file + """ + + sections = [] + + # ============================= # + # # + # GENERAL OPTIONS # + # # + # ============================= # + + general = Section("general", required=True, + doc = "This section is used for general options affecting all the topology.") + general.options = \ + [ + Option(name = "domains", + getter = "domains", + type = OPTTYPE_STRING, + required = True, + doc = """ + The names of the domains you are defining in this topology. They must each be separated by + a single space. + """), + Option(name = "deploy", + getter = "deploy", + type = OPTTYPE_STRING, + required = True, + valid = ["ec2", "dummy"], + doc = """ + See the :ref:`deploy option ` in :ref:`chap_config_ref` + """), + Option(name = "ssh-pubkey", + getter = "ssh-pubkey", + type = OPTTYPE_FILE, + required = False, + default = "~/.ssh/id_rsa.pub", + doc = """ + When creating users, an SSH public key must be added to their ``authorized_keys`` file + to allow the creator of the topology to log in as those users. When using a topology file, + each SSH key is specified separately for each user; in a simple topology, you can specify + a single SSH public key for all the users (by default, the SSH key of the topology's creator + will be used) + + Take into account that you *can* specify per-user SSH keys in a simple topology by using the + :ref:`users-file option`. + """) + ] + + sections.append(general) + + domain = Section("domain", required=False, multiple=("general", "domains"), + doc = """ + For each domain specified in the ``domains`` option, you will need to specify a section + titled ``[domain-DDD]`` where ``DD`` is the name of the domain. For example, if you specify the following:: + + [general] + domains: foo bar + + You will need to specify the following sections:: + + [domain-foo] + ... + + [domain-bar] + ... + + Each section provides a few high-level options about each domain. + This provides a simple, but constrained, way of specifying what services and users + should be created in each domain. For more complex topologies, you may have + to write a regular :ref:`topology file `. + """) + domain.options = \ + [ + Option(name = "users", + getter = "users", + type = OPTTYPE_STRING, + required = False, + default = "0", + doc = """ + This option can be either a number, or a list of usernames separated by spaces. + + If a number is specified, the users will be named ``D-userN``, where ``D`` is the + domain name and ``N`` is a number between 1 and the number specified in this option. + + If a list of usernames is specified, users with those login names will be created. + + These users will be created with corresponding user certificates. To create users without user certificates + use option ``users-no-cert``. + """), + Option(name = "users-no-cert", + getter = "users-no-cert", + type = OPTTYPE_STRING, + default = "0", + required = False, + doc = """ + Same as ``users`` but creating users without certificates. + + Note that if you specify a number for *both* the ``users`` and ``users-no-cert`` option + (with values N and M, respectively), the first N users will have certificates, and the + remaining M will not. + """), + Option(name = "users-file", + getter = "users-file", + type = OPTTYPE_FILE, + required = False, + doc = """ + The path to a file with a specification of the users to create in this domain. This file will have one line + per user, each with three fields (separated by whitespace): + + #. A single character, ``C`` or ``N``. If ``C`` is specified, the user will have a user certificate created + for it. Otherwise, it will nor. + #. The user's UNIX login name. + #. (Optional) An SSH public key to add to the user's ``authorized_keys`` file. If not specified, the public + key specified in :ref:`option ssh-pubkey` will be used. + + For example:: + + C borja ssh-rsa FOOFOOFOO...BARBARBAR borja at example.org + C childers ssh-rsa FOOFOOFOO...BARBARBAR childers at example.org + N foster + N madduri + + """), + + Option(name = "barebones-nodes", + getter = "barebones-nodes", + type = OPTTYPE_INT, + default = 0, + required = False, + doc = """ + A "barebones node" is a node on which no software will be installed. If ``nfs-nis`` is ``True``, + these nodes *will* be configured as NFS/NIS clients. These nodes can be useful for testing. + """), + + Option(name = "nfs-nis", + getter = "nfs-nis", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether an NFS/NIS server should be setup in this domain. When ``True``, there will be a global + filesystem and global user account space in the domain. Most notably, the users' home directories will be on an + NFS directory, which means they will be able to access the same home directory from any host in the domain + (as opposed to having separate home directories in each host). + + When ``False``, user accounts and home directories will be created on every individual host. This option can + be useful if you are creating a single-host domain. + """), + Option(name = "login", + getter = "login", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether a separate "login node" should be created in the topology. This option can be useful if you + want a distinct node that users can log into but that does not host one of the topology's servers (like the NFS + server, a GridFTP server, etc.) + """), + Option(name = "myproxy", + getter = "myproxy", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a MyProxy server on this domain. + """), + Option(name = "gram", + getter = "gram", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a GRAM5 server on this domain. + """), + Option(name = "gridftp", + getter = "gridftp", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a GridFTP server on this domain. + """), + Option(name = "lrm", + getter = "lrm", + type = OPTTYPE_STRING, + valid = ["none", "condor"], + default = "none", + required = False, + doc = """ + Specifies whether to set up an LRM (Local Resource Manager) on this domain. Currently, only + `Condor `_ is supported. + """), + Option(name = "cluster-nodes", + getter = "cluster-nodes", + type = OPTTYPE_INT, + required = False, + doc = """ + The number of worker nodes to create for the LRM. + """), + Option(name = "galaxy", + getter = "galaxy", + type = OPTTYPE_BOOLEAN, + required = False, + default = False, + doc = """ + Specifies whether to set up a Galaxy server on this domain. + """), + + Option(name = "go-endpoint", + getter = "go-endpoint", + type = OPTTYPE_STRING, + required = False, + doc = """ + If this domain has a GridFTP server, it can be configured as a GO endpoint. + The format for this option is # (e.g., johnsmith#test-ep). + Take into account that you must be authorized to use the GO account for , + and that you must specify the appropriate credentials in the + :ref:`[globusonline] section` of the configuration file. + + See :ref:`chap_go` for more details. + """), + + Option(name = "go-auth", + getter = "go-auth", + type = OPTTYPE_STRING, + required = False, + valid = ["myproxy", "go"], + doc = """ + The authentication method that Globus Online will use when contacting the endpoint on + behalf of a user. The valid options are: + + * ``myproxy``: Contact the MyProxy server specified in the topology. Note that + the :ref:`myproxy option` must be set to ``true`` + for this to work + * ``go``: Use Globus Online authentication. + + See :ref:`chap_go`, and specifically :ref:`Globus Online Authentication Methods `, + for more details on the implications of each authentication method. + """), + + Option(name = "go-gc", + getter = "go-gc", + type = OPTTYPE_BOOLEAN, + required = False, + default = True, + doc = """ + If true, the endpoint will use a Globus Connect certificate. + If not, it will use the host certificate generated by Globus Provision. + Take into account that, for the GridFTP server to be trusted by + Globus Online, it must use a certificate trusted by Globus Online. + Unless you used a CA trusted by Globus Online to generate the certificates + for the topology, you must use a Globus Connect certificate. + """) + ] + sections.append(domain) + + ec2 = Section("ec2", required=False, + required_if = [(("general","deploy"),"ec2")], + doc = """ + When the EC2 deployer is selected, this section will allow you to + specify EC2 deployment options that are specific to this topology.""") + ec2.options = \ + [ + Option(name = "ami", + getter = "ec2-ami", + type = OPTTYPE_STRING, + required = True, + doc = """ + This is the AMI (`Amazon Machine Image `_) + that Globus Provision will use to create each host in the domani. Any recent Ubuntu or Debian + AMI should work. Nonetheless, take into account that we provide an AMI that has most of the + necessary software pre-installed in it, considerably speeding up the setup of the machines. + The latest Globus Provision AMI is always listed in the Globus Provision website. + """), + Option(name = "instance-type", + getter = "ec2-instance-type", + type = OPTTYPE_STRING, + required = True, + default = "t1.micro", + doc = """ + This is the `EC2 instance type `_ that will + be used to launch the machines in this domain. The default is to use micro-instances (t1.micro), + which tend to be enough if you are just tinkering around. + """), + Option(name = "availability-zone", + getter = "ec2-availability-zone", + type = OPTTYPE_STRING, + required = False, + default = None, + doc = """ + The `availability zone `_ + you want the VMs to be deployed in. + Unless you have a good reason for choosing a specific availability zone, + you should let Globus Provision choose a default zone for you. + """) + ] + sections.append(ec2) + + + def __init__(self, configfile): + Config.__init__(self, configfile, self.sections) + + def to_topology(self): + ssh_pubkeyf = os.path.expanduser(self.get("ssh-pubkey")) + ssh_pubkeyf = open(ssh_pubkeyf) + ssh_pubkey = ssh_pubkeyf.read().strip() + ssh_pubkeyf.close() + + topology = Topology() + + if self.get("deploy") == "dummy": + # No default deploy data + pass + elif self.get("deploy") == "ec2": + deploy_data = DeployData() + ec2_deploy_data = EC2DeployData() + + ec2_deploy_data.set_property("ami", self.get("ec2-ami")) + ec2_deploy_data.set_property("instance_type", self.get("ec2-instance-type")) + + deploy_data.set_property("ec2", ec2_deploy_data) + topology.set_property("default_deploy_data", deploy_data) + + domains = self.get("domains").split() + for domain_name in domains: + domain = Domain() + domain.set_property("id", domain_name) + topology.add_to_array("domains", domain) + + has_go_ep = self.get((domain_name,"go-endpoint")) != None + + user = User() + user.set_property("id", getpass.getuser()) + user.set_property("password_hash", "!") + user.set_property("certificate", "generated") + user.set_property("admin", True) + user.set_property("ssh_pkey", ssh_pubkey) + domain.add_user(user) + + usersfile = self.get((domain_name, "users-file")) + + if usersfile != None: + usersfile = open(usersfile, "r") + + for line in usersfile: + fields = line.split() + type = fields[0] + username = fields[1] + if len(fields) >= 3: + user_ssh_pubkey = " ".join(fields[2:]) + else: + user_ssh_pubkey = ssh_pubkey + + user = User() + user.set_property("id", username) + user.set_property("password_hash", "!") + user.set_property("ssh_pkey", user_ssh_pubkey) + if type == "C": + user.set_property("certificate", "generated") + else: + user.set_property("certificate", "none") + + domain.add_user(user) + + usersfile.close() + else: + users = self.get((domain_name, "users")) + users_nocert = self.get((domain_name, "users-no-cert")) + + if users.isdigit(): + num_users = int(users) + usernames = [("%s-user%i" % (domain_name, i), True) for i in range(1,num_users + 1)] + else: + num_users = 0 + usernames = [(u, True) for u in users.split() if u != getpass.getuser()] + + if users_nocert.isdigit(): + usernames += [("%s-user%i" % (domain_name, i), False) for i in range(num_users + 1,num_users + int(users_nocert) + 1)] + else: + usernames += [(u, False) for u in users_nocert.split() if u != getpass.getuser()] + + for username, cert in usernames: + user = User() + user.set_property("id", username) + user.set_property("password_hash", "!") + user.set_property("ssh_pkey", ssh_pubkey) + if cert: + user.set_property("certificate", "generated") + else: + user.set_property("certificate", "none") + domain.add_user(user) + + for user in domain.users.values(): + gme = GridMapEntry() + gme.set_property("dn", "/O=Grid/OU=Globus Provision (generated)/CN=%s" % user.id) + gme.set_property("login", user.id) + domain.add_to_array("gridmap", gme) + if self.get((domain_name,"go-auth")) == "go": + gme = GridMapEntry() + gme.set_property("dn", "/C=US/O=Globus Consortium/OU=Globus Connect User/CN=%s" % user.id) + gme.set_property("login", user.id) + domain.add_to_array("gridmap", gme) + + + if self.get((domain_name,"nfs-nis")): + server_node = Node() + server_name = "%s-server" % domain_name + server_node.set_property("id", server_name) + server_node.add_to_array("run_list", "role[domain-nfsnis]") + if not self.get((domain_name,"login")): + # If there is no login node, the NFS/NIS server will + # effectively act as one. + server_node.add_to_array("run_list", "role[globus]") + if self.get((domain_name,"galaxy")): + # If there is a Galaxy server in the domain, the "common" + # recipe has to be installed on the NFS/NIS server + server_node.add_to_array("run_list", "recipe[galaxy::galaxy-globus-common]") + + domain.add_node(server_node) + + for i in range(self.get((domain_name,"barebones-nodes"))): + bb_name = "%s-blank-%i" % (domain_name, i+1) + + bb_node = Node() + bb_node.set_property("id", bb_name) + if self.get((domain_name,"nfs-nis")): + bb_node.set_property("depends", "node:%s" % server_name) + bb_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + bb_node.add_to_array("run_list", "recipe[provision::gp_node]") + bb_node.add_to_array("run_list", "recipe[provision::domain_users]") + + domain.add_node(bb_node) + + if self.get((domain_name,"login")): + login_node = Node() + login_node.set_property("id", "%s-login" % domain_name) + if self.get((domain_name,"nfs-nis")): + login_node.set_property("depends", "node:%s" % server_name) + login_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + login_node.add_to_array("run_list", "recipe[provision::gp_node]") + login_node.add_to_array("run_list", "recipe[provision::domain_users]") + login_node.add_to_array("run_list", "role[globus]") + domain.add_node(login_node) + + if self.get((domain_name,"myproxy")): + myproxy_node = Node() + myproxy_node.set_property("id", "%s-myproxy" % domain_name) + if self.get((domain_name,"nfs-nis")): + myproxy_node.set_property("depends", "node:%s" % server_name) + myproxy_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + myproxy_node.add_to_array("run_list", "recipe[provision::gp_node]") + myproxy_node.add_to_array("run_list", "recipe[provision::domain_users]") + myproxy_node.add_to_array("run_list", "role[domain-myproxy]") + domain.add_node(myproxy_node) + + if self.get((domain_name,"gridftp")): + gridftp_node = Node() + gridftp_node.set_property("id", "%s-gridftp" % domain_name) + if self.get((domain_name,"nfs-nis")): + gridftp_node.set_property("depends", "node:%s" % server_name) + gridftp_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + gridftp_node.add_to_array("run_list", "recipe[provision::gp_node]") + gridftp_node.add_to_array("run_list", "recipe[provision::domain_users]") + + if has_go_ep: + if self.get((domain_name,"go-gc")): + gridftp_node.add_to_array("run_list", "role[domain-gridftp-gc]") + else: + gridftp_node.add_to_array("run_list", "recipe[globus::go_cert]") + gridftp_node.add_to_array("run_list", "role[domain-gridftp-default]") + else: + gridftp_node.add_to_array("run_list", "role[domain-gridftp-default]") + domain.add_node(gridftp_node) + + if self.get((domain_name,"galaxy")): + galaxy_node = Node() + galaxy_node.set_property("id", "%s-galaxy" % domain_name) + + if self.get((domain_name,"nfs-nis")): + galaxy_node.set_property("depends", "node:%s" % server_name) + galaxy_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + galaxy_node.add_to_array("run_list", "recipe[provision::gp_node]") + galaxy_node.add_to_array("run_list", "recipe[provision::domain_users]") + galaxy_node.add_to_array("run_list", "recipe[galaxy::galaxy-globus-common]") + + if self.get((domain_name,"go-endpoint")) != None: + galaxy_node.add_to_array("run_list", "recipe[globus::go_cert]") + galaxy_node.add_to_array("run_list", "recipe[galaxy::galaxy-globus]") + domain.add_node(galaxy_node) + + + lrm = self.get((domain_name,"lrm")) + if lrm != "none": + gram = self.get((domain_name,"gram")) + if lrm == "condor": + if gram: + node_name = "%s-gram-condor" % domain_name + role = "role[domain-gram-condor]" + else: + node_name = "%s-condor" % domain_name + role = "role[domain-condor]" + workernode_role = "role[domain-clusternode-condor]" + + lrm_node = Node() + lrm_node.set_property("id", node_name) + if self.get((domain_name,"nfs-nis")): + lrm_node.set_property("depends", "node:%s" % server_name) + lrm_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + lrm_node.add_to_array("run_list", "recipe[provision::gp_node]") + lrm_node.add_to_array("run_list", "recipe[provision::domain_users]") + lrm_node.add_to_array("run_list", role) + domain.add_node(lrm_node) + + clusternode_host = 1 + for i in range(self.get((domain_name,"cluster-nodes"))): + wn_name = "%s-condor-wn%i" % (domain_name, i+1) + + wn_node = Node() + wn_node.set_property("id", wn_name) + wn_node.set_property("depends", "node:%s" % node_name) + if self.get((domain_name,"nfs-nis")): + wn_node.add_to_array("run_list", "role[domain-nfsnis-client]") + else: + wn_node.add_to_array("run_list", "recipe[provision::gp_node]") + wn_node.add_to_array("run_list", "recipe[provision::domain_users]") + wn_node.add_to_array("run_list", workernode_role) + domain.add_node(wn_node) + + clusternode_host += 1 + + if has_go_ep: + goep = GOEndpoint() + gouser, goname = self.get((domain_name,"go-endpoint")).split("#") + goep.set_property("user", gouser) + goep.set_property("name", goname) + goep.set_property("public", False) + goep.set_property("gridftp", "node:%s-gridftp" % domain_name) + + if self.get((domain_name,"go-auth")) == "myproxy": + goep.set_property("myproxy", "node:%s-myproxy" % domain_name) + else: + goep.set_property("myproxy", "myproxy.globusonline.org") + + goep.set_property("globus_connect_cert", self.get((domain_name,"go-gc"))) + + domain.add_to_array("go_endpoints", goep) + + return topology + + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/config.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,300 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Core deployment classes. + +These classes contain code that is common to all deployers (i.e., they don't +contain any infrastructure-specific code). + +To create a new deployer, you will need to extend classes the classes +in this module. + +""" + +from globus.provision.common.threads import GPThread +from globus.provision.common.ssh import SSH, SSHCommandFailureException +from globus.provision.common import log +from globus.provision.core.topology import Node + +from abc import ABCMeta, abstractmethod + +class DeploymentException(Exception): + """A simple exception class used for deployment exceptions""" + pass + +class BaseDeployer(object): + """ + The base class for a deployer. + + A deployer must implement all the abstract methods in this class + """ + + __metaclass__ = ABCMeta + + def __init__(self, extra_files = [], run_cmds = []): + self.instance = None + self.extra_files = extra_files + self.run_cmds = run_cmds + + @abstractmethod + def set_instance(self, inst): pass + + @abstractmethod + def allocate_vm(self, node): pass + + @abstractmethod + def post_allocate(self, node, vm): pass + + @abstractmethod + def stop_vms(self, nodes): pass + + @abstractmethod + def resume_vm(self, node): pass + + @abstractmethod + def terminate_vms(self, nodes): pass + + @abstractmethod + def get_node_vm(self, nodes): pass + + @abstractmethod + def get_wait_thread_class(self): pass + + @abstractmethod + def get_configure_thread_class(self): pass + + +class VM(object): + """ + A VM object represents a virtual machine managed by a + deployer. It is basically meant as an opaque type that + can be returned by the deployer to the core, and then + passed from the core to other functions in the deployer. + """ + def __init__(self): + pass + +class WaitThread(GPThread): + """ + The base class for "waiter threads". + + A derived class must implement the wait() method, with the + deployer-specific code that will wait until a VM + has reached a given state. + """ + + __metaclass__ = ABCMeta + + def __init__(self, multi, name, node, vm, deployer, state, depends): + GPThread.__init__(self, multi, name, depends) + self.node = node + self.vm = vm + self.deployer = deployer + self.state = state + + def run2(self): + topology = self.deployer.instance.topology + + self.wait() + + self.node.state = self.state + topology.save() + + @abstractmethod + def wait(self): pass + + +class ConfigureThread(GPThread): + """ + The base class for "configure threads". + + This is a thread that takes care of configuring a single VM. + Most of the actions (e.g., SSH'ing to the VM and running Chef) + will be the same in most deployers. So, this class simply + requires that derived classes implement pre_configure() + and post_configure(), in case there are deployer-specific + actions that must be taken. The connect() method must + also be implemented, although it can usually just be + a call to ssh_connect. + """ + + __metaclass__ = ABCMeta + + def __init__(self, multi, name, node, vm, deployer, depends = None, basic = True, chef = True, dryrun=False): + GPThread.__init__(self, multi, name, depends) + self.domain = node.parent_Domain + self.node = node + self.vm = vm + self.deployer = deployer + self.config = deployer.instance.config + self.basic = basic + self.chef = chef + self.dryrun = dryrun + + def run2(self): + topology = self.deployer.instance.topology + + if self.node.state in (Node.STATE_RUNNING_UNCONFIGURED, Node.STATE_RUNNING, Node.STATE_RESUMED_UNCONFIGURED): + if self.node.state == Node.STATE_RUNNING_UNCONFIGURED: + log.debug("Configuring node for the first time", self.node) + self.node.state = Node.STATE_CONFIGURING + next_state = Node.STATE_RUNNING + elif self.node.state == Node.STATE_RUNNING: + log.debug("Reconfiguring already-running node", self.node) + self.node.state = Node.STATE_RECONFIGURING + next_state = Node.STATE_RUNNING + elif self.node.state == Node.STATE_RESUMED_UNCONFIGURED: + log.debug("Reconfiguring resumed node", self.node) + self.node.state = Node.STATE_RESUMED_RECONFIGURING + next_state = Node.STATE_RUNNING + + topology.save() + + if not self.dryrun: + ssh = self.connect() + self.check_continue() + self.pre_configure(ssh) + self.check_continue() + self.configure(ssh) + self.check_continue() + self.post_configure(ssh) + self.check_continue() + + self.node.state = next_state + topology.save() + elif self.node.state == Node.STATE_STOPPING: + log.debug("Doing pre-shutdown configuration", self.node) + self.node.state = Node.STATE_STOPPING_CONFIGURING + topology.save() + + if not self.dryrun: + ssh = self.connect() + self.check_continue() + self.configure_stop(ssh) + self.check_continue() + + self.node.state = Node.STATE_STOPPING_CONFIGURED + topology.save() + + @abstractmethod + def connect(self): pass + + @abstractmethod + def pre_configure(self): pass + + @abstractmethod + def post_configure(self): pass + + def ssh_connect(self, username, hostname, keyfile): + node = self.node + + log.debug("Establishing SSH connection", node) + ssh = SSH(username, hostname, keyfile, default_outf = None, default_errf = None) + try: + ssh.open() + except Exception, e: + log.debug("SSH connection timed out", node) + # Raise exception and let multi-thread manager handle it + raise e + log.debug("SSH connection established", node) + + return ssh + + def configure(self, ssh): + domain = self.domain + node = self.node + instance_dir = self.deployer.instance.instance_dir + + if self.basic: + # Make backup copies of hostname and /etc/hosts + if node.state in (Node.STATE_CONFIGURING, Node.STATE_RESUMED_RECONFIGURING): + ssh.run("sudo cp /etc/hosts /etc/hosts.gp-bak", expectnooutput=True) + ssh.run("sudo cp /etc/hostname /etc/hostname.gp-bak", expectnooutput=True) + + # Upload host file and update hostname + log.debug("Uploading host file and updating hostname", node) + ssh.scp("%s/hosts" % instance_dir, + "/chef/cookbooks/provision/files/default/hosts") + ssh.run("sudo cp /chef/cookbooks/provision/files/default/hosts /etc/hosts", expectnooutput=True) + + ssh.run("sudo bash -c \"echo %s > /etc/hostname\"" % node.hostname, expectnooutput=True) + ssh.run("sudo /etc/init.d/hostname.sh || sudo /etc/init.d/hostname restart", expectnooutput=True) + + self.check_continue() + + if self.chef: + # Upload topology file + log.debug("Uploading topology file", node) + ssh.scp("%s/topology.rb" % instance_dir, + "/chef/cookbooks/provision/attributes/topology.rb") + + # Copy certificates + log.debug("Copying certificates", node) + ssh.scp_dir("%s/certs" % instance_dir, + "/chef/cookbooks/provision/files/default/") + + # Upload extra files + log.debug("Copying extra files", node) + for src, dst in self.deployer.extra_files: + ssh.scp(src, dst) + + self.check_continue() + + # Run chef + log.debug("Running chef", node) + ssh.run("echo -e \"cookbook_path \\\"/chef/cookbooks\\\"\\nrole_path \\\"/chef/roles\\\"\" > /tmp/chef.conf", expectnooutput=True) + ssh.run("echo '{ \"run_list\": [ %s ], \"scratch_dir\": \"%s\", \"domain_id\": \"%s\", \"node_id\": \"%s\" }' > /tmp/chef.json" % (",".join("\"%s\"" % r for r in node.run_list), self.config.get("scratch-dir"), domain.id, node.id), expectnooutput=True) + + # Sometimes, Chef will fail because a service didn't start or restart + # properly (NFS-related services seem to do this occasionally). + # In most cases, the problem just "goes away" if you try to restart the + # service again. So, if Chef fails, we don't give up and try again + # (since the recipes are idempotent, there's no harm to running them + # multiple times) + chef_tries = 3 + while chef_tries > 0: + rc = ssh.run("sudo -i chef-solo -c /tmp/chef.conf -j /tmp/chef.json", exception_on_error = False) + if rc != 0: + chef_tries -= 1 + log.debug("chef-solo failed. %i attempts left", node) + else: + break + + if chef_tries == 0: + raise DeploymentException, "Failed to configure node %s" % node.id + + self.check_continue() + + for cmd in self.deployer.run_cmds: + ssh.run(cmd) + + log.info("Configuration done.", node) + + def configure_stop(self, ssh): + node = self.node + + log.info("Configuring node for shutdown", node) + ssh.run("sudo cp /etc/hosts.gp-bak /etc/hosts", expectnooutput=True) + ssh.run("sudo cp /etc/hostname.gp-bak /etc/hostname", expectnooutput=True) + ssh.run("sudo /etc/init.d/hostname.sh || sudo /etc/init.d/hostname restart", expectnooutput=True) + ssh.run("sudo bash -c \"echo +auto.master > /etc/auto.master\"", exception_on_error = False) + ssh.run("sudo bash -c \"echo > /etc/yp.conf\"", exception_on_error = False) + ssh.run("sudo bash -c \"echo > /etc/default/nfs-common\"", exception_on_error = False) + + ssh.run("sudo update-rc.d -f nis remove", exception_on_error = False) + log.info("Configuration done.", node) + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/deploy.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,246 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Instance Management + +This module is the single point of access to information about instances. +See the documentation in InstanceStore and Instance for more details. + +""" + +import os.path +import random +from globus.provision.core.config import GPConfig +from globus.provision.core.topology import Topology +from globus.provision.common.certs import CertificateGenerator +from globus.provision.common.persistence import ObjectValidationException + +class InstanceException(Exception): + """A simple exception class used for instance exceptions""" + pass + +class InstanceStore(object): + """ + The instance database. + + Stores information on all the instances created by the user. + + Currently, it uses a simple filesystem-based model. There is a + designated "instances directory" (default: ~/.globusprovision/instances/). + When an instance is created, a directory with the instance's id is + created in the instances directory. For example:: + + ~/.globusprovision/instances/gpi-12345678/ + + All files related to an instance, including the topology file are + stored in that directory. Generated files (such as certificates, etc.) + are also stored there. + + The rest of the code only accesses the instances through this class. + So, it should be possible to eventually replace this with a more elaborate + solution (e.g., storing the instance data in a database, etc.) + """ + + def __init__(self, instances_dir): + self.instances_dir = instances_dir + + def create_new_instance(self, topology_json, config_txt): + created = False + while not created: + inst_id = "gpi-" + hex(random.randint(1,2**31-1))[2:].rjust(8,"0") + inst_dir = "%s/%s" % (self.instances_dir, inst_id) + if not os.path.exists(inst_dir): + os.makedirs(inst_dir) + created = True + + configf = open("%s/provision.conf" % inst_dir, "w") + configf.write(config_txt) + configf.close() + + # We don't do anything with it. Just use it to raise an exception + # if there is anything wrong with the configuration file + GPConfig("%s/provision.conf" % inst_dir) + + topology = Topology.from_json_string(topology_json) + topology.set_property("id", inst_id) + topology.set_property("state", Topology.STATE_NEW) + topology.save("%s/topology.json" % inst_dir) + + inst = Instance(inst_id, inst_dir) + + return inst + + def get_instance(self, inst_id): + inst_dir = "%s/%s" % (self.instances_dir, inst_id) + + if not os.path.exists(inst_dir): + raise InstanceException("Instance %s does not exist" % inst_id) + return Instance(inst_id, inst_dir) + + def get_instances(self, inst_ids = None): + valid_instances = [] + invalid_instances = [] + + for inst_id in self.__get_instance_ids(): + if inst_ids == None or (inst_ids != None and inst_id in inst_ids): + try: + inst = Instance(inst_id, "%s/%s" % (self.instances_dir, inst_id)) + valid_instances.append(inst) + except Exception, e: + invalid_instances.append((inst_id,str(e))) + + return (valid_instances, invalid_instances) + + def __get_instance_ids(self): + inst_ids = [i for i in os.listdir(self.instances_dir)] + return inst_ids + +class Instance(object): + """ + A Globus Provision Instance + + This class represents a single instance. Right now, an instance is + the combination of a configuration file and a topology (both of which + are provided when the instance is created). + + The configuration file contains all the information about + the instance that will (arguably) not change during its lifetime. + The topology contains the specification of the hosts, users, etc. + that are going to be deployed, and that could change during the + instance's lifetime. + + For example, the configuration file specifies what keypair to use + when accessing EC2. Although this could conceivably change, it is + not as likely as a change in the topology (e.g., adding a new host, + changing the run list of a host, etc.) + + """ + + # Relative to instance directory + CERTS_DIR = "/certs" + + def __init__(self, inst_id, instance_dir): + self.instance_dir = instance_dir + self.id = inst_id + self.config = GPConfig("%s/provision.conf" % instance_dir) + self.topology = self.__load_topology() + + def __load_topology(self): + topology_file = "%s/topology.json" % self.instance_dir + f = open (topology_file, "r") + json_string = f.read() + topology = Topology.from_json_string(json_string) + topology._json_file = topology_file + f.close() + return topology + + def update_topology(self, topology_json): + try: + topology_file = "%s/topology.json" % self.instance_dir + new_topology = Topology.from_json_string(topology_json) + new_topology._json_file = topology_file + except ObjectValidationException, ove: + message = "Error in topology file: %s" % ove + return (False, message, None) + + try: + topology_changes = self.topology.validate_update(new_topology) + except ObjectValidationException, ove: + message = "Could not update topology: %s" % ove + return (False, message, None) + + self.topology = new_topology + self.topology.save() + + return (True, "Success", topology_changes) + + def gen_certificates(self, force_hosts = False, force_users = False, force_ca = False): + certs_dir = self.instance_dir + self.CERTS_DIR + if not os.path.exists(certs_dir): + os.makedirs(certs_dir) + + dn = self.config.get("ca-dn") + if dn == None: + dn = "O=Grid, OU=Globus Provision (generated)" + + certg = CertificateGenerator(dn) + + cert_files = [] + ca_cert_file = self.config.get("ca-cert") + ca_cert_key = self.config.get("ca-key") + + if ca_cert_file != None: + ca_cert, ca_key = certg.load_certificate(ca_cert_file, ca_cert_key) + else: + ca_cert, ca_key = certg.gen_selfsigned_ca_cert("Globus Provision CA") + + certg.set_ca(ca_cert, ca_key) + + h = "%x" % ca_cert.subject_name_hash() + + hash_file = open(certs_dir + "/ca_cert.hash", "w") + hash_file.write(h) + hash_file.close() + + ca_cert_file = "%s/ca_cert.pem" % certs_dir + ca_key_file = certs_dir + "/ca_key.pem" + cert_files.append(ca_cert_file) + cert_files.append(ca_key_file) + certg.save_certificate(cert = ca_cert, + key = ca_key, + cert_file = ca_cert_file, + key_file = ca_key_file, + force = force_ca) + + users = [u for u in self.topology.get_users() if u.certificate=="generated"] + for user in users: + cert, key = certg.gen_user_cert(cn = user.id) + + cert_file = "%s/%s_cert.pem" % (certs_dir, user.id) + key_file = "%s/%s_key.pem" % (certs_dir, user.id) + cert_files.append(cert_file) + cert_files.append(key_file) + certg.save_certificate(cert = cert, + key = key, + cert_file = cert_file, + key_file = key_file, + force = force_users) + + nodes = self.topology.get_nodes() + for n in nodes: + cert, key = certg.gen_host_cert(hostname = n.hostname) + + filename = n.id + + cert_file = "%s/%s_cert.pem" % (certs_dir, filename) + key_file = "%s/%s_key.pem" % (certs_dir, filename) + cert_files.append(cert_file) + cert_files.append(key_file) + certg.save_certificate(cert = cert, + key = key, + cert_file = cert_file, + key_file = key_file, + force = force_hosts) + + return cert_files + + + + + + + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/instance.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,683 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +Topology + +This module contains classes used to manage a topology. All of these classes +are PersistentObjects, so the properties are defined separately from +the classes themselves, which can make the code a bit hard to read. +Before diving into this code, you may want to check out the topology +documentation (in the Globus Provision Documentation), which is automatically +generated from the code in this module. + +""" + +from globus.provision.common.persistence import PersistentObject, PropertyTypes,\ + Property + +class Topology(PersistentObject): + STATE_NEW = 1 + STATE_STARTING = 2 + STATE_CONFIGURING = 3 + STATE_RUNNING = 4 + STATE_STOPPING = 5 + STATE_STOPPED = 6 + STATE_RESUMING = 7 + STATE_TERMINATING = 8 + STATE_TERMINATED = 9 + STATE_FAILED = 10 + + # String representation of states + state_str = {STATE_NEW : "New", + STATE_STARTING : "Starting", + STATE_CONFIGURING : "Configuring", + STATE_RUNNING : "Running", + STATE_STOPPING : "Stopping", + STATE_STOPPED : "Stopped", + STATE_RESUMING : "Resuming", + STATE_TERMINATING : "Terminating", + STATE_TERMINATED : "Terminated", + STATE_FAILED : "Failed"} + + def get_nodes(self): + nodes = [] + for domain in self.domains.values(): + nodes += [n for n in domain.get_nodes()] + return nodes + + def get_users(self): + users = [] + for domain in self.domains.values(): + users += domain.get_users() + return users + + def gen_hosts_file(self, filename): + hosts = """127.0.0.1 localhost + +# The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +fe00::0 ip6-localnet +ff00::0 ip6-mcastprefix +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +ff02::3 ip6-allhosts + +""" + + nodes = self.get_nodes() + for n in nodes: + hosts += " ".join((n.ip, n.hostname, n.hostname.split(".")[0], "\n")) + + hostsfile = open(filename, "w") + hostsfile.write(hosts) + hostsfile.close() + + def gen_chef_ruby_file(self, filename): + + def gen_topology_line(server_name, domain_id, recipes): + server = domain.find_with_recipes(recipes) + if len(server) > 0: + server_node = server[0] + if len(server) > 1: + # TODO: Print a warning saying more than one NFS server has been found + pass + hostname_line = "default[:topology][:domains][\"%s\"][:%s] = \"%s\"\n" % (domain_id, server_name, server_node.hostname) + ip_line = "default[:topology][:domains][\"%s\"][:%s_ip] = \"%s\"\n" % (domain_id, server_name, server_node.ip) + + return hostname_line + ip_line + else: + return "" + + topology = "default[:topology] = %s\n" % self.to_ruby_hash_string() + + for domain in self.domains.values(): + topology += gen_topology_line("nfs_server", domain.id, ["recipe[provision::nfs_server]", "role[domain-nfsnis]"]) + topology += gen_topology_line("nis_server", domain.id, ["recipe[provision::nis_server]", "role[domain-nfsnis]"]) + topology += gen_topology_line("myproxy_server", domain.id, ["recipe[globus::myproxy]"]) + topology += gen_topology_line("lrm_head", domain.id, ["recipe[condor::condor_head]", "role[domain-condor]"]) + + topologyfile = open(filename, "w") + topologyfile.write(topology) + topologyfile.close() + + def get_depends(self, node): + if not hasattr(node, "depends"): + return None + else: + return self.get_node_by_id(node.depends[5:]) + + def get_launch_order(self, nodes): + order = [] + parents = [n for n in nodes if self.get_depends(n) == None or self.get_depends(n) not in nodes] + while len(parents) > 0: + order.append(parents) + parents = [n for n in nodes if self.get_depends(n) in parents] + return order + + def get_node_by_id(self, node_id): + nodes = self.get_nodes() + node = [n for n in nodes if n.id == node_id] + if len(node) == 1: + return node[0] + else: + return None + + def get_deploy_data(self, node, deployer, p_name): + if node.has_property("deploy_data") and node.deploy_data.has_property(deployer): + deploy_data = node.deploy_data.get_property(deployer) + if deploy_data.has_property(p_name): + return deploy_data.get_property(p_name) + + # If node doesn't have requested deploy data, return default (if any) + if self.has_property("default_deploy_data") and self.default_deploy_data.has_property(deployer): + deploy_data = self.default_deploy_data.get_property(deployer) + if deploy_data.has_property(p_name): + return deploy_data.get_property(p_name) + + return None + + def get_go_endpoints(self): + eps = [] + for domain_name, domain in self.domains.items(): + if domain.has_property("go_endpoints"): + eps += domain.go_endpoints + return eps + + def add_domain(self, domain): + self.add_to_array("domains", domain) + + + +class Domain(PersistentObject): + + def get_nodes(self): + return self.nodes.values() + + def get_users(self): + return self.users.values() + + def find_with_recipes(self, recipes): + nodes = [] + for node in self.nodes.values(): + for r in recipes: + if r in node.run_list: + nodes.append(node) + continue + return nodes + + def add_user(self, user): + self.add_to_array("users", user) + + def add_node(self, node): + self.add_to_array("nodes", node) + +class DeployData(PersistentObject): + pass + +class EC2DeployData(PersistentObject): + pass + +class Node(PersistentObject): + STATE_NEW = 0 + STATE_STARTING = 1 + STATE_RUNNING_UNCONFIGURED = 2 + STATE_CONFIGURING = 3 + STATE_RUNNING = 4 + STATE_RECONFIGURING = 11 + STATE_STOPPING = 5 + STATE_STOPPING_CONFIGURING = 12 + STATE_STOPPING_CONFIGURED = 13 + STATE_STOPPED = 6 + STATE_RESUMING = 7 + STATE_RESUMED_UNCONFIGURED = 14 + STATE_RESUMED_RECONFIGURING = 15 + STATE_TERMINATING = 8 + STATE_TERMINATED = 9 + STATE_FAILED = 10 + + # String representation of states + state_str = {STATE_NEW : "New", + STATE_STARTING : "Starting", + STATE_RUNNING_UNCONFIGURED : "Running (unconfigured)", + STATE_CONFIGURING : "Configuring", + STATE_RUNNING : "Running", + STATE_RECONFIGURING : "Running (reconfiguring)", + STATE_STOPPING : "Stopping", + STATE_STOPPING_CONFIGURING : "Stopping (configuring)", + STATE_STOPPING_CONFIGURED : "Stopping (configured)", + STATE_STOPPED : "Stopped", + STATE_RESUMING : "Resuming", + STATE_RESUMED_UNCONFIGURED : "Resumed (unconfigured)", + STATE_RESUMED_RECONFIGURING : "Resumed (reconfiguring)", + STATE_TERMINATING : "Terminating", + STATE_TERMINATED : "Terminated", + STATE_FAILED : "Failed"} + + +class User(PersistentObject): + pass + +class GridMapEntry(PersistentObject): + pass + +class GOEndpoint(PersistentObject): + pass + +Topology.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = False, + description = """ + Once an instance with this topology has been created, + this property will contain the instance ID + (e.g., ``gpi-12345678``) assigned by Globus Provision. + """), + + "state": + Property(name="state", + proptype = PropertyTypes.INTEGER, + required = False, + description = """ + Once an instance has been created with this topology, + this property indicates the state the instance is in. + Possible values are: + + %s + + """ % +"\n ".join(["* %i: %s" % (i, Topology.state_str[i]) for i in sorted(Topology.state_str.keys())])), + + "domains": + Property(name = "domains", + proptype = PropertyTypes.ARRAY, + items = Domain, + items_unique = True, + editable = True, + required = True, + description = """ + The domains in this topology. + """), + + "default_deploy_data": + Property(name = "default_deploy_data", + proptype = DeployData, + required = False, + editable = True, + description = """ + The default deployment-specific data for this instance. + Individual nodes can override the default values in their + ``deploy_data`` property. + """) + } + +DeployData.properties = { "ec2": + Property(name = "ec2", + proptype = EC2DeployData, + required = False, + editable = True, + description = """ + Used to specify EC2-specific deployment data. + """) + } + +EC2DeployData.properties = { + "instance_type": + Property(name = "instance_type", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + An EC2 instance type (e.g., ``t1.micro``, ``m1.small``, etc.) + """), + + "instance_id": + Property(name = "instance_id", + proptype = PropertyTypes.STRING, + required = False, + description = """ + Once a host has been deployed on EC2, + this property will contain its EC2 instance identifier. + """), + "ami": + Property(name = "ami", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + The Amazon Machine Image (AMI) to use when creating + new hosts on Amazon EC2. + """), + + "security_groups": + Property(name = "security_groups", + proptype = PropertyTypes.ARRAY, + items = PropertyTypes.STRING, + items_unique = True, + required = False, + editable = True, + description = """ + A list of `Security Groups `_ + to apply to hosts on EC2. If no security groups are specified, + Globus Provision will create one called ``globus-provision`` + that opens the TCP/UDP ports for SSH, GridFTP, and MyProxy. + """) + } + + +Domain.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = True, + description = """ + A unique name for the domain. + """), + + "nodes": + Property(name="nodes", + proptype = PropertyTypes.ARRAY, + items = Node, + items_unique = True, + required = True, + editable = True, + description = """ + The list of hosts (or *nodes*) in this domain. + """), + + "go_endpoints": + Property(name="go_endpoints", + proptype = PropertyTypes.ARRAY, + items = GOEndpoint, + required = False, + editable = True, + description = """ + The list of Globus Online endpoints defined for this domain. + """), + + "users": + Property(name="users", + proptype = PropertyTypes.ARRAY, + items = User, + items_unique = True, + required = True, + editable = True, + description = """ + The list of users in this domain. + """), + + "gridmap": + Property(name="gridmap", + proptype = PropertyTypes.ARRAY, + items = GridMapEntry, + required = False, + editable = True, + description = """ + The list of gridmap entries for this domain. This + is the gridmap that Globus services running on this + domain will use to determine if a given user is + authorized to access the service. + """), + } + +Node.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = True, + description = """ + A unique identifier for this host. The value of this + property is only used for identification purposes + (e.g., when printing the status of an instance with + ``gp-instance-describe``), and will not affect other + properties, like its hostname, etc. (except when using + the ``dummy`` deployer). + """), + "state": + Property(name="state", + proptype = PropertyTypes.INTEGER, + required = False, + editable = False, + description = """ + Once an instance with this topology has been created, + this property will indicate the state of this particular + host. + + Possible values are: + + %s + + """ % +"\n ".join(["* %i: %s" % (i, Node.state_str[i]) for i in sorted(Node.state_str.keys())])), + + "run_list": + Property(name="run_list", + proptype = PropertyTypes.ARRAY, + items = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The list of Chef recipes to run on this node. + See :ref:`sec_runlist` for more details. + """), + + "depends": + Property(name="depends", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + Sometimes, a host cannot be configured until another host + in the topology is configured. For example, NFS clients cannot + start until the NFS server is starting. This property is + used to specify such dependencies. The value of this property + must be of the form node:*node_id*, where *node_id* is + the identifier of another node in the domain. + + For example, if this node depends on ``simple-nfs`` the value + of this property would be ``node:simple-nfs``. + """), + + "hostname": + Property(name="hostname", + proptype = PropertyTypes.STRING, + required = False, + description = """ + The fully-qualified hostname assigned by the deployer. + """), + + "ip": + Property(name="ip", + proptype = PropertyTypes.STRING, + required = False, + description = """ + The IP address assigned by the deployer. + """), + + "public_ip": + Property(name="public_ip", + proptype = PropertyTypes.STRING, + required = False, + description = """ + If the IP address assigned in ``ip`` is a private, non-routable, + IP address, but the host is also assigned a public IP, it will + be assigned to this property by the deployer. + """), + + "deploy_data": + Property(name = "deploy_data", + proptype = DeployData, + required = False, + description = """ + Host-specific deployment data. The values specified here + will override any values specified in the topology's + ``default_deploy__data`` property. + """), + + "gc_setupkey": + Property(name = "gc_setupkey", + proptype = PropertyTypes.STRING, + required = False, + description = """ + Globus Connect setup key used to obtain a certificate + for use by services in this node. + """) + + } + + +User.properties = { + "id": + Property(name="id", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The user's login name. + """), + + "description": + Property(name="description", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + A description of the user. + """), + + "password_hash": + Property(name="password_hash", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The password hash for the user, exactly as it will appear + in the shadow file (``/etc/shadow``). To generate a password, + you can use the ``mkpasswd`` command. We recommend you generate + SHA-512 password hashes. For example:: + + $ mkpasswd -m sha-512 mypassword + $6$XrtqyXi4LO$8M/sk6t8zE5Ac.acLPBt577f1eGv.YnUVZPhGmBlQF/YrYnkWQPq7EMfryWEdHm664B.RaY3O8oZtbiQjXfu10 + + The string starting with ``$6$`` is the password hash. + + You can disable password access for this user by setting this + property to ``!``. + """), + + "ssh_pkey": + Property(name="ssh_pkey", + proptype = PropertyTypes.STRING, + required = False, + editable = True, + description = """ + A public SSH key. If a value is specified for this property, + this public key will be added to the user's ``authorized_keys`` + file. + """), + + "admin": + Property(name="admin", + proptype = PropertyTypes.BOOLEAN, + required = False, + editable = True, + description = """ + If ``true``, this user will be granted passwordless sudo + access on all hosts in this domain. + """), + + "certificate": + Property(name = "certificate", + proptype = PropertyTypes.STRING, + required = False, + description = """ + This property can take on the following values: + + * ``"generated"``: A user certificate must be generated for this user. + * ``"none"``: Do not generate a certificate for this user. + """), + } + +GridMapEntry.properties = { + "dn": + Property(name="dn", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The distinguished name in the gridmap entry + (e.g., ``"/O=Grid/OU=My Grid/CN=J.Random User"``) + """), + + "login": + Property(name="login", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The login the distinguished name will map to. + Must be a valid login in the domain. + """), + } + +GOEndpoint.properties = { + + "user": + Property(name="user", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The Globus Online user account in which to create + this endpoint. + """), + "name": + Property(name="name", + proptype = PropertyTypes.STRING, + required = True, + description = """ + The endpoint name. + """), + + "public": + Property(name="public", + proptype = PropertyTypes.BOOLEAN, + required = True, + description = """ + Whether the endpoint should be public or not. + """), + + "gridftp": + Property(name="gridftp", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The GridFTP server for this endpoint. You can specify + either a fully qualified hostname, or refer to an existing + node in this domain by writing node:*node_id*, + where *node_id* is the identifier of another node in the domain. + """), + + "myproxy": + Property(name="myproxy", + proptype = PropertyTypes.STRING, + required = True, + editable = True, + description = """ + The MyProxy server that will be used for authenticating + users that want to use this endpoint. You can specify + either a fully qualified hostname, or refer to an existing + node in this domain by writing node:*node_id*, + where *node_id* is the identifier of another node in the domain. + + Take into account that, to set up this endpoint for + "Globus Online Authentication" (as described in :ref:`sec_go_auth`) + you will need to do the following: + + * Set this property to ``myproxy.globusonline.org`` + * For each GO user you want to authorize in this endpoint, + add an entry with the following distinguished name:: + + "/C=US/O=Globus Consortium/OU=Globus Connect User/CN=username" + + Where ``username`` is the username of the GO account you + want to authorized. Usually, you will want that DN to map + to the same username in the domain, although this is not + required. + + """), + + "globus_connect_cert": + Property(name="globus_connect_cert", + proptype = PropertyTypes.BOOLEAN, + required = False, + description = """ + If true, this endpoint will use a Globus Connect certificate. + If not, it will use the host certificate generated by Globus Provision. + Take into account that, for the GridFTP server to be trusted by + Globus Online, it must use a certificate trusted by Globus Online. + Unless you used a CA trusted by Globus Online to generate the certificates + for the topology, you must use a Globus Connect certificate. + """), + + "globus_connect_cert_dn": + Property(name="globus_connect_cert", + proptype = PropertyTypes.STRING, + required = False, + description = """ + The DN of the Globus Connect certificate for this endpoint. + """) + + } Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/core/topology.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,25 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +This package contains the "deployers". + +Globus Provision can support multiple deployment backends called "deployers", +selected on a per-instance basis. Currently, Amazon EC2 is the only "real" +deployer available. A "dummy" deployer is also available for testing purposes. +However, additional deployers can be implemented by creating a child class +of globus.provision.core.deploy.BaseDeployer. +""" \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,98 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +The dummy deployer + +All the actions in this deployer simply return immediately, simulating a +backend that never fails. This deployer is useful for testing. +""" + +from globus.provision.common.threads import GPThread +import sys +from globus.provision.common import log +from globus.provision.core.deploy import BaseDeployer, VM, ConfigureThread, WaitThread +from globus.provision.core.topology import Node + +class DummyVM(VM): + """ + A "dummy VM". Doesn't actually contain anything. + + See the documentation on globus.provision.core.deploy.VM for details + on what the VM class is used for. + """ + + def __init__(self): + VM.__init__(self) + +class Deployer(BaseDeployer): + """ + The dummy deployer + """ + + def __init__(self, *args, **kwargs): + BaseDeployer.__init__(self, *args, **kwargs) + + def set_instance(self, inst): + self.instance = inst + + def allocate_vm(self, node): + log.info("Allocated dummy VM.") + return DummyVM() + + def resume_vm(self, node): + log.info("Resumed dummy VM.") + return DummyVM() + + def post_allocate(self, node, vm): + node.hostname = "%s.gp.example.org" % node.id + node.ip = "1.2.3.4" + + def get_node_vm(self, nodes): + node_vm = {} + for n in nodes: + node_vm[n] = DummyVM() + return node_vm + + def stop_vms(self, nodes): + log.info("Dummy nodes terminated.") + + def terminate_vms(self, nodes): + log.info("Dummy nodes terminated.") + + def get_wait_thread_class(self): + return self.NodeWaitThread + + def get_configure_thread_class(self): + return self.NodeConfigureThread + + class NodeWaitThread(WaitThread): + def __init__(self, multi, name, node, vm, deployer, state, depends = None): + WaitThread.__init__(self, multi, name, node, vm, deployer, state, depends) + + def wait(self): + log.info("Waiting for state %s" % Node.state_str[self.state]) + + class NodeConfigureThread(ConfigureThread): + def __init__(self, multi, name, node, vm, deployer, depends = None, basic = True, chef = True): + ConfigureThread.__init__(self, multi, name, node, vm, deployer, depends, basic, chef, dryrun = True) + + def connect(self): pass + + def pre_configure(self): pass + + def post_configure(self): pass + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/dummy/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,330 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # + +""" +The EC2 deployer + +This deployer will create and manage hosts for a topology using Amazon EC2. +""" + +from cPickle import load +from boto.exception import BotoClientError, EC2ResponseError +from globus.provision.common.utils import create_ec2_connection +from globus.provision.common.ssh import SSH, SSHCommandFailureException +from globus.provision.common.threads import MultiThread, GPThread, SIGINTWatcher +import random +import time +import sys +import traceback +import os.path +from globus.provision.common import log +from globus.provision.core.deploy import BaseDeployer, VM, ConfigureThread, WaitThread,\ + DeploymentException +from globus.provision.core.topology import DeployData, EC2DeployData, Node + +class EC2VM(VM): + """ + Represents a VM running on EC2. + + See the documentation on globus.provision.core.deploy.VM for details + on what the VM class is used for. + """ + + def __init__(self, ec2_instance): + self.ec2_instance = ec2_instance + + def __str__(self): + return self.ec2_instance.id + +class Deployer(BaseDeployer): + """ + The EC2 deployer. + """ + + def __init__(self, *args, **kwargs): + BaseDeployer.__init__(self, *args, **kwargs) + self.conn = None + self.instances = None + self.vols = [] + self.supports_create_tags = True + self.has_gp_sg = False + + def set_instance(self, inst): + self.instance = inst + self.__connect() + + def __connect(self): + config = self.instance.config + + try: + log.debug("Connecting to EC2...") + ec2_server_hostname = config.get("ec2-server-hostname") + ec2_server_port = config.get("ec2-server-port") + ec2_server_path = config.get("ec2-server-path") + + if ec2_server_hostname != None: + self.conn = create_ec2_connection(ec2_server_hostname, + ec2_server_path, + ec2_server_port) + else: + self.conn = create_ec2_connection() + + if self.conn == None: + raise DeploymentException, "AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables are not set." + + log.debug("Connected to EC2.") + except BotoClientError, exc: + raise DeploymentException, "Could not connect to EC2. %s" % exc.reason + + def __get_security_groups(self, topology, node): + sgs = topology.get_deploy_data(node, "ec2", "security_groups") + if sgs is None: + sgs = [] + + if len(sgs) == 0: + if self.has_gp_sg: + sgs = ["globus-provision"] + else: + gp_sg = self.conn.get_all_security_groups(filters={"group-name":"globus-provision"}) + if len(gp_sg) == 0: + gp_sg = self.conn.create_security_group('globus-provision', 'Security group for Globus Provision instances') + + # Internal + gp_sg.authorize(src_group = gp_sg) + + # SSH + gp_sg.authorize('tcp', 22, 22, '0.0.0.0/0') + + # GridFTP + gp_sg.authorize('tcp', 2811, 2811, '0.0.0.0/0') + gp_sg.authorize('udp', 2811, 2811, '0.0.0.0/0') + gp_sg.authorize('tcp', 50000, 51000, '0.0.0.0/0') + + # MyProxy + gp_sg.authorize('tcp', 7512, 7512, '0.0.0.0/0') + + # Galaxy + gp_sg.authorize('tcp', 8080, 8080, '0.0.0.0/0') + + sgs = ["globus-provision"] + self.has_gp_sg = True + else: + all_sgs = self.conn.get_all_security_groups() + # TODO: Validate that the security groups are valid + + return sgs + + def allocate_vm(self, node): + topology = self.instance.topology + + instance_type = topology.get_deploy_data(node, "ec2", "instance_type") + ami = topology.get_deploy_data(node, "ec2", "ami") + security_groups = self.__get_security_groups(topology, node) + + try: + image = self.conn.get_image(ami) + except EC2ResponseError, ec2err: + if ec2err.error_code in ("InvalidAMIID.NotFound", "InvalidAMIID.Malformed"): + raise DeploymentException, "AMI %s does not exist" % ami + else: + raise ec2err + + if image == None: + # Workaround for this bug: + # https://bugs.launchpad.net/eucalyptus/+bug/495670 + image = [i for i in self.conn.get_all_images() if i.id == ami] + if len(image) == 0: + raise DeploymentException, "AMI %s does not exist" % ami + else: + image = image[0] + + user_data = """#cloud-config +manage_etc_hosts: true +""" + + log.info(" |- Launching a %s instance for %s." % (instance_type, node.id)) + reservation = image.run(min_count=1, + max_count=1, + instance_type=instance_type, + security_groups= security_groups, + user_data = user_data, + key_name=self.instance.config.get("ec2-keypair"), + placement = None) + instance = reservation.instances[0] + + return EC2VM(instance) + + def resume_vm(self, node): + ec2_instance_id = node.deploy_data.ec2.instance_id + + log.info(" |- Resuming instance %s for %s." % (ec2_instance_id, node.id)) + started = self.conn.start_instances([ec2_instance_id]) + log.info(" |- Resumed instance %s." % ",".join([i.id for i in started])) + + return EC2VM(started[0]) + + def post_allocate(self, node, vm): + ec2_instance = vm.ec2_instance + + if ec2_instance.private_ip_address != None: + # A correct EC2 system should return this + node.ip = ec2_instance.private_ip_address + else: + # Unfortunately, some EC2-ish systems won't return the private IP address + # We fall back on the private_dns_name, which should still work + # (plus, some EC2-ish systems actually set this to the IP address) + node.ip = ec2_instance.private_dns_name + + node.hostname = ec2_instance.public_dns_name + + # TODO: The following won't work on EC2-ish systems behind a firewall. + node.public_ip = ".".join(ec2_instance.public_dns_name.split(".")[0].split("-")[1:]) + + if not node.has_property("deploy_data"): + node.deploy_data = DeployData() + node.deploy_data.ec2 = EC2DeployData() + + node.deploy_data.ec2.instance_id = ec2_instance.id + + try: + if self.supports_create_tags: + self.conn.create_tags([ec2_instance.id], {"Name": "%s_%s" % (self.instance.id, node.id)}) + except: + # Some EC2-ish systems don't support the create_tags call. + # If it fails, we just silently ignore it, as it is not essential, + # but make sure not to call it again, as EC2-ish systems will + # timeout instead of immediately returning an error + self.supports_create_tags = False + + + def get_node_vm(self, nodes): + ec2_instance_ids = [n.deploy_data.ec2.instance_id for n in nodes] + reservations = self.conn.get_all_instances(ec2_instance_ids) + node_vm = {} + for r in reservations: + instance = r.instances[0] + node = [n for n in nodes if n.deploy_data.ec2.instance_id==instance.id][0] + node_vm[node] = EC2VM(instance) + return node_vm + + def stop_vms(self, nodes): + ec2_instance_ids = [n.deploy_data.ec2.instance_id for n in nodes] + log.info("Stopping EC2 instances %s." % ", ".join(ec2_instance_ids)) + stopped = self.conn.stop_instances(ec2_instance_ids) + log.info("Stopped EC2 instances %s." % ", ".join([i.id for i in stopped])) + + def terminate_vms(self, nodes): + ec2_instance_ids = [n.deploy_data.ec2.instance_id for n in nodes] + log.info("Terminating EC2 instances %s." % ", ".join(ec2_instance_ids)) + terminated = self.conn.terminate_instances(ec2_instance_ids) + log.info("Terminated EC2 instances %s." % ", ".join([i.id for i in terminated])) + + def wait_state(self, obj, state, interval = 2.0): + jitter = random.uniform(0.0, 0.5) + while True: + time.sleep(interval + jitter) + try: + newstate = obj.update() + except EC2ResponseError, ec2err: + if ec2err.error_code == "InvalidInstanceID.NotFound": + # If the instance was just created, this is a transient error. + # We just have to wait until the instance appears. + pass + else: + raise ec2err + + if newstate == state: + return True + # TODO: Check errors + + def get_wait_thread_class(self): + return self.NodeWaitThread + + def get_configure_thread_class(self): + return self.NodeConfigureThread + + class NodeWaitThread(WaitThread): + def __init__(self, multi, name, node, vm, deployer, state, depends = None): + WaitThread.__init__(self, multi, name, node, vm, deployer, state, depends) + self.ec2_instance = vm.ec2_instance + + def wait(self): + if self.state in (Node.STATE_RUNNING_UNCONFIGURED, Node.STATE_RESUMED_UNCONFIGURED): + self.deployer.wait_state(self.ec2_instance, "running") + log.info("Instance %s is running. Hostname: %s" % (self.ec2_instance.id, self.ec2_instance.public_dns_name)) + elif self.state == Node.STATE_STOPPED: + self.deployer.wait_state(self.ec2_instance, "stopped") + elif self.state == Node.STATE_TERMINATED: + self.deployer.wait_state(self.ec2_instance, "terminated") + + + class NodeConfigureThread(ConfigureThread): + def __init__(self, multi, name, node, vm, deployer, depends = None, basic = True, chef = True): + ConfigureThread.__init__(self, multi, name, node, vm, deployer, depends, basic, chef) + self.ec2_instance = self.vm.ec2_instance + + def connect(self): + keyfile = os.path.expanduser(self.config.get("ec2-keyfile")) + ssh = self.ssh_connect(self.config.get("ec2-username"), self.ec2_instance.public_dns_name, keyfile) + return ssh + + def pre_configure(self, ssh): + node = self.node + instance = self.ec2_instance + + log.info("Setting up instance %s. Hostname: %s" % (instance.id, instance.public_dns_name), node) + + try: + ssh.run("ls -l /chef") + except SSHCommandFailureException: + #The image is not properly setup, so do all pre-configuration for globus-provision + log.info("Image is not configured with Chef, so installing...") + + ssh.run("sudo chown -R %s /chef" % self.config.get("ec2-username")) + ssh.scp_dir("%s" % self.chef_dir, "/chef") + + + + ssh.run("addgroup admin", exception_on_error = False) + ssh.run("echo \"%s `hostname`\" | sudo tee -a /etc/hosts" % instance.private_ip_address) + + ssh.run("sudo apt-get install lsb-release wget") + ssh.run("echo \"deb http://apt.opscode.com/ `lsb_release -cs` main\" | sudo tee /etc/apt/sources.list.d/opscode.list") + ssh.run("wget -qO - http://apt.opscode.com/packages at opscode.com.gpg.key | sudo apt-key add -") + ssh.run("sudo apt-get update") + ssh.run("echo 'chef chef/chef_server_url string http://127.0.0.1:4000' | sudo debconf-set-selections") + ssh.run("sudo apt-get -q=2 install chef") + + ssh.run("echo -e \"cookbook_path \\\"/chef/cookbooks\\\"\\nrole_path \\\"/chef/roles\\\"\" > /tmp/chef.conf") + ssh.run("echo '{ \"run_list\": \"recipe[provision::ec2]\", \"scratch_dir\": \"%s\" }' > /tmp/chef.json" % self.scratch_dir) + + ssh.run("sudo chef-solo -c /tmp/chef.conf -j /tmp/chef.json") + + ssh.run("sudo update-rc.d -f nis remove") + ssh.run("sudo update-rc.d -f condor remove") + ssh.run("sudo update-rc.d -f chef-client remove") + + + log.debug("Removing private data...") + + ssh.run("sudo find /root/.*history /home/*/.*history -exec rm -f {} \;", exception_on_error = False) + + + + + def post_configure(self, ssh): + pass + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,211 @@ +# -------------------------------------------------------------------------- # +# Copyright 2010-2011, University of Chicago # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. You may obtain # +# a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# -------------------------------------------------------------------------- # +from boto.exception import EC2ResponseError + +""" +EC2 images utilities. + +Contains code to manage Globus Provision AMIs. +""" + +from globus.provision.common.utils import create_ec2_connection +from globus.provision.common.ssh import SSH +from globus.provision.common import log +import time + +class EC2AMICreator(object): + """ + Used to create a Globus Provision AMI. + """ + + def __init__(self, chef_dir, base_ami, ami_name, instance_type, config): + self.chef_dir = chef_dir + self.base_ami = base_ami + self.ami_name = ami_name + self.instance_type = instance_type + self.config = config + + self.keypair = config.get("ec2-keypair") + self.keyfile = config.get("ec2-keyfile") + self.hostname = config.get("ec2-server-hostname") + self.port = config.get("ec2-server-port") + self.path = config.get("ec2-server-path") + self.username = config.get("ec2-username") + self.scratch_dir = config.get("scratch-dir") + + def run(self): + log.init_logging(2) + + conn = create_ec2_connection(hostname=self.hostname, path=self.path, port=self.port) + + print "Creating instance" + reservation = conn.run_instances(self.base_ami, + min_count=1, max_count=1, + instance_type=self.instance_type, + key_name=self.keypair) + instance = reservation.instances[0] + print "Instance %s created. Waiting for it to start..." % instance.id + + while True: + try: + newstate = instance.update() + if newstate == "running": + break + time.sleep(2) + except EC2ResponseError, ec2err: + if ec2err.error_code == "InvalidInstanceID.NotFound": + # If the instance was just created, this is a transient error. + # We just have to wait until the instance appears. + pass + else: + raise ec2err + + print "Instance running" + print self.username, instance.public_dns_name, self.keyfile + ssh = SSH(self.username, instance.public_dns_name, self.keyfile, None, None) + try: + ssh.open() + except Exception, e: + print e.message + exit(1) + + print "Copying Chef files" + ssh.run("sudo mkdir /chef") + ssh.run("sudo chown -R %s /chef" % self.username) + ssh.scp_dir("%s" % self.chef_dir, "/chef") + + # Some VMs don't include their hostname + ssh.run("echo \"%s `hostname`\" | sudo tee -a /etc/hosts" % instance.private_ip_address) + + ssh.run("sudo apt-get install lsb-release wget") + ssh.run("echo \"deb http://apt.opscode.com/ `lsb_release -cs` main\" | sudo tee /etc/apt/sources.list.d/opscode.list") + ssh.run("wget -qO - http://apt.opscode.com/packages at opscode.com.gpg.key | sudo apt-key add -") + ssh.run("sudo apt-get update") + ssh.run("echo 'chef chef/chef_server_url string http://127.0.0.1:4000' | sudo debconf-set-selections") + ssh.run("sudo apt-get -q=2 install chef") + + ssh.run("echo -e \"cookbook_path \\\"/chef/cookbooks\\\"\\nrole_path \\\"/chef/roles\\\"\" > /tmp/chef.conf") + ssh.run("echo '{ \"run_list\": \"recipe[provision::ec2]\", \"scratch_dir\": \"%s\" }' > /tmp/chef.json" % self.scratch_dir) + + ssh.run("sudo chef-solo -c /tmp/chef.conf -j /tmp/chef.json") + + ssh.run("sudo update-rc.d -f nis remove") + ssh.run("sudo update-rc.d -f condor remove") + ssh.run("sudo update-rc.d -f chef-client remove") + + print "Removing private data and authorized keys" + ssh.run("sudo find /root/.*history /home/*/.*history -exec rm -f {} \;", exception_on_error = False) + ssh.run("sudo find / -name authorized_keys -exec rm -f {} \;", exception_on_error = False) + + # Apparently instance.stop() will terminate + # the instance (this is a known bug), so we + # use stop_instances instead. + print "Stopping instance" + conn.stop_instances([instance.id]) + while instance.update() != "stopped": + time.sleep(2) + print "Instance stopped" + + print "Creating AMI" + # Doesn't actually return AMI. Have to make it public manually. + ami = conn.create_image(instance.id, self.ami_name, description=self.ami_name) + + print "Cleaning up" + + + print "Terminating instance" + #conn.terminate_instances([instance.id]) + #while instance.update() != "terminated": + # time.sleep(2) + print "Instance terminated" + + + +class EC2AMIUpdater(object): + """ + Used to update a Globus Provision AMI. + """ + + def __init__(self, base_ami, ami_name, files, config): + self.base_ami = base_ami + self.ami_name = ami_name + self.files = files + + self.config = config + + self.keypair = config.get("ec2-keypair") + self.keyfile = config.get("ec2-keyfile") + self.hostname = config.get("ec2-server-hostname") + self.port = config.get("ec2-server-port") + self.path = config.get("ec2-server-path") + self.username = config.get("ec2-username") + + def run(self): + log.init_logging(2) + + conn = create_ec2_connection(hostname=self.hostname, path=self.path, port=self.port) + + print "Creating instance" + reservation = conn.run_instances(self.base_ami, + min_count=1, max_count=1, + instance_type='m1.small', + key_name=self.keypair) + instance = reservation.instances[0] + print "Instance %s created. Waiting for it to start..." % instance.id + + while instance.update() != "running": + time.sleep(2) + + print "Instance running." + + print "Opening SSH connection." + ssh = SSH(self.username, instance.public_dns_name, self.keyfile) + ssh.open() + + print "Copying files" + for src, dst in self.files: + ssh.scp(src, dst) + + print "Removing private data and authorized keys" + ssh.run("sudo find /root/.*history /home/*/.*history -exec rm -f {} \;", exception_on_error = False) + ssh.run("sudo find / -name authorized_keys -exec rm -f {} \;", exception_on_error = False) + + # Apparently instance.stop() will terminate + # the instance (this is a known bug), so we + # use stop_instances instead. + print "Stopping instance" + conn.stop_instances([instance.id]) + while instance.update() != "stopped": + time.sleep(2) + print "Instance stopped" + + print "Creating AMI" + + # Doesn't actually return AMI. Have to make it public manually. + ami = conn.create_image(instance.id, self.ami_name, description=self.ami_name) + + if ami != None: + print ami + print "Cleaning up" + + + print "Terminating instance" + conn.terminate_instances([instance.id]) + while instance.update() != "terminated": + time.sleep(2) + print "Instance terminated" + + Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/deploy/ec2/images.py ___________________________________________________________________ Added: svn:executable + * Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/__init__.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,34 @@ +from globus.provision.core.config import SimpleTopologyConfig +import tempfile +import shutil + +def load_config_file(f, dummy): + configf = open(f) + config_txt = configf.read() + if dummy: + config_txt = config_txt.replace("deploy: ec2", "deploy: dummy") + configf.close() + + topology_file = f + conf = SimpleTopologyConfig(topology_file) + topology = conf.to_topology() + topology_json = topology.to_json_string() + + return config_txt, topology_json + +def create_temp_config_file(f, tempf, dummy): + configf = open(f) + config_txt = configf.read() + if dummy: + config_txt = config_txt.replace("deploy: ec2", "deploy: dummy") + configf.close() + + configf = open(tempf, "w") + configf.write(config_txt) + configf.close() + +def create_instances_dir(): + return tempfile.mkdtemp(prefix="gptesttmp") + +def remove_instances_dir(d): + shutil.rmtree(d) \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/common.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py =================================================================== --- branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py (rev 0) +++ branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,138 @@ +from globus.provision.core.api import API +from globus.provision.tests.common import load_config_file, create_instances_dir,\ + remove_instances_dir, create_temp_config_file +from globus.provision.core.topology import Topology +import json +from globus.provision.cli.api import gp_instance_create, gp_instance_describe,\ + gp_instance_start, gp_instance_stop, gp_instance_list, gp_instance_update,\ + gp_instance_terminate +import os + +# TODO: Assumes we're running from the source root directory. Make this location independent. +SAMPLE_DIR = "./samples/" +SAMPLES = ("simple-dummy.conf", "simple-ec2.conf", "single-gridftp-ec2.conf") + + +def test_samples_api(): + for s in SAMPLES: + yield check_sample_api, SAMPLE_DIR + s + +def test_samples_cli(): + for s in SAMPLES: + yield check_sample_cli, SAMPLE_DIR + s + + +def check_sample_api(s): + instances_dir = create_instances_dir() + + config_txt, topology_json = load_config_file(s, dummy = True) + + api = API(instances_dir) + + (status_code, message, inst_id) = api.instance_create(topology_json, config_txt) + assert status_code == API.STATUS_SUCCESS + check_instance_state(api, inst_id, Topology.STATE_NEW) + + (status_code, message, topologies_json) = api.instance_list(None) + assert status_code == API.STATUS_SUCCESS + insts = json.loads(topologies_json) + assert len(insts) == 1 + assert insts[0]["id"] == inst_id + + (status_code, message, topologies_json) = api.instance_list([inst_id]) + assert status_code == API.STATUS_SUCCESS, message + insts = json.loads(topologies_json) + assert len(insts) == 1 + assert insts[0]["id"] == inst_id + + (status_code, message) = api.instance_start(inst_id, [], []) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_RUNNING) + + (status_code, message) = api.instance_stop(inst_id) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_STOPPED) + + (status_code, message) = api.instance_start(inst_id, [], []) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_RUNNING) + + (status_code, message) = api.instance_update(inst_id, None, [], []) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_RUNNING) + + (status_code, message) = api.instance_terminate(inst_id) + assert status_code == API.STATUS_SUCCESS, message + check_instance_state(api, inst_id, Topology.STATE_TERMINATED) + + remove_instances_dir(instances_dir) + +def check_sample_cli(s): + instances_dir = create_instances_dir() + temp_config_file = instances_dir + "/test.conf" + create_temp_config_file(s, temp_config_file, dummy = True) + + common_args = ["GPCOMMAND", "-i", instances_dir] + + args = ["-c", temp_config_file] + rc = gp_instance_create(common_args + args).run() + assert rc == 0 + + insts = [n for n in os.listdir(instances_dir) if n.startswith("gpi-")] + assert len(insts) == 1 + inst_id = insts[0] + print inst_id + args = [inst_id] + print common_args + args + rc = gp_instance_describe(common_args + args).run() + assert rc == 0 + + args = [inst_id, "-v"] + rc = gp_instance_describe(common_args + args).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_start(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + + args = ["-v"] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + + args = ["-v", inst_id] + rc = gp_instance_list(common_args + args).run() + assert rc == 0 + return + args = [inst_id] + rc = gp_instance_stop(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_start(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_update(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + args = [inst_id] + rc = gp_instance_terminate(common_args + args, disable_sigintwatch = True).run() + assert rc == 0 + + remove_instances_dir(instances_dir) + + +def check_instance_state(api, inst_id, state): + (status_code, message, topology_json) = api.instance(inst_id) + assert status_code == API.STATUS_SUCCESS, message + topology = Topology.from_json_string(topology_json) + assert topology.state == state + \ No newline at end of file Property changes on: branches/release-0.93/bin/vm/ec2/lib/python2.7/site-packages/globus_provision-0.3.2-py2.7.egg/globus/provision/tests/test_samples.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/futuregrid/plan/test-level1.conf =================================================================== --- branches/release-0.93/bin/vm/futuregrid/plan/test-level1.conf (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/plan/test-level1.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,12 @@ +[svc-sierra] + +replica_count: env.FUTUREGRID_SIERRA_NODES +iaas_key: env.FUTUREGRID_IAAS_ACCESS_KEY +iaas_secret: env.FUTUREGRID_IAAS_SECRET_KEY +sshkeyname: swiftkey +localsshkeypath: ~/.ssh/id_rsa.pub +iaas_url: https://s83r.idp.sdsc.futuregrid.org:8444 +image: debian-lenny.gz +iaas: nimbus +ssh_username: root + Added: branches/release-0.93/bin/vm/futuregrid/plan/top.conf =================================================================== --- branches/release-0.93/bin/vm/futuregrid/plan/top.conf (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/plan/top.conf 2011-12-02 16:38:40 UTC (rev 5330) @@ -0,0 +1,10 @@ +# This is a sample top level configuration file. Each entry under runlevels +# is a file with a single runlevel description. All of the services in that +# file are run at the same time but the next level is not begun until +# all of these services in the previous successfully complete. + +[defaults] + +[runlevels] +level1: test-level1.conf + Modified: branches/release-0.93/build.xml =================================================================== --- branches/release-0.93/build.xml 2011-12-02 16:03:54 UTC (rev 5329) +++ branches/release-0.93/build.xml 2011-12-02 16:38:40 UTC (rev 5330) @@ -112,6 +112,14 @@ + + + + + + + + From davidk at ci.uchicago.edu Fri Dec 2 11:03:52 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 2 Dec 2011 11:03:52 -0600 (CST) Subject: [Swift-commit] r5332 - in branches/release-0.93/bin/vm/futuregrid: . bin Message-ID: <20111202170352.94BD89CCA2@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-02 11:03:52 -0600 (Fri, 02 Dec 2011) New Revision: 5332 Added: branches/release-0.93/bin/vm/futuregrid/bin/ branches/release-0.93/bin/vm/futuregrid/bin/bootit.sh branches/release-0.93/bin/vm/futuregrid/bin/handleoutput.py branches/release-0.93/bin/vm/futuregrid/bin/nimbus-register-key.py branches/release-0.93/bin/vm/futuregrid/bin/register_key.py branches/release-0.93/bin/vm/futuregrid/bin/virtualenv.py branches/release-0.93/bin/vm/futuregrid/env.sh branches/release-0.93/bin/vm/futuregrid/hosts.txt branches/release-0.93/bin/vm/futuregrid/install.sh Log: Adding a few missing futuregrid files Added: branches/release-0.93/bin/vm/futuregrid/bin/bootit.sh =================================================================== --- branches/release-0.93/bin/vm/futuregrid/bin/bootit.sh (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/bin/bootit.sh 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,22 @@ +#!/bin/bash + +dir=`dirname $0` +cd $dir +cd .. + +source env.sh +source ve/bin/activate + +output="output.json" +cloudinitd -l debug -v -v -v boot plan/top.conf -o $output +if [ $? -ne 0 ]; then + echo "The boot failed. Check the logs" + exit 1 +fi + +echo "getting the hostnames..." +python bin/handleoutput.py $output +if [ $? -ne 0 ]; then + echo "The output parse failed" + exit 1 +fi Property changes on: branches/release-0.93/bin/vm/futuregrid/bin/bootit.sh ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/futuregrid/bin/handleoutput.py =================================================================== --- branches/release-0.93/bin/vm/futuregrid/bin/handleoutput.py (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/bin/handleoutput.py 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +import os +import sys +import simplejson as json + +x = json.load(open(sys.argv[1], "r")) + +levels = x['levels'] +lvl1 = levels[0] +services = lvl1['services'] + +for svc in services: + print svc['hostname'] + + Property changes on: branches/release-0.93/bin/vm/futuregrid/bin/handleoutput.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/futuregrid/bin/nimbus-register-key.py =================================================================== --- branches/release-0.93/bin/vm/futuregrid/bin/nimbus-register-key.py (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/bin/nimbus-register-key.py 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +import os +import sys +import base64 +import boto +from boto.ec2.regioninfo import RegionInfo +import urllib2 + + +def add_key(ec2conn, keyname, keytext): + pairs = ec2conn.get_all_key_pairs([keyname,]) + if not pairs: + print "Adding a new key pair named %s" % (keyname) + ec2conn.import_key_pair(keyname, keytext) + else: + print "Keyname %s already exists" % (keyname) + +try: + access_id = os.environ['FUTUREGRID_IAAS_ACCESS_KEY'] + access_secret = os.environ['FUTUREGRID_IAAS_SECRET_KEY'] + + iaas_url = os.environ['FUTUREGRID_IAAS_URL'] +except Exception, ex: + print "Make sure the envs CLOUDINITD_* are set %s" % (str(ex)) + sys.exit(1) + +url_parts = urllib2.urlparse.urlparse(iaas_url) +region = RegionInfo(name="nimbus", endpoint=url_parts.hostname) +ec2conn = boto.connect_ec2(access_id, access_secret, region=region, port=url_parts.port) + +keyname = sys.argv[1] +keylocation = sys.argv[2] +keytext = open(keylocation).read() +keytext = base64.b64encode(keytext) +add_key(ec2conn, keyname, keytext) + +sys.exit(0) + Added: branches/release-0.93/bin/vm/futuregrid/bin/register_key.py =================================================================== --- branches/release-0.93/bin/vm/futuregrid/bin/register_key.py (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/bin/register_key.py 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +import os +import sys +import base64 +import boto +from boto.ec2.regioninfo import RegionInfo + + +try: + access_id = os.environ['FUTUREGRID_IAAS_ACCESS_KEY'] + access_secret = os.environ['FUTUREGRID_IAAS_SECRET_KEY'] +except: + print "Make sure the envs FUTUREGRID_IAAS_ACCESS_KEY and FUTUREGRID_IAAS_SECRET_KEY are set" + sys.exit(1) + +hostfile = sys.argv[1] +keyname = "swiftkey" +if len(sys.argv) > 2: + keylocation = sys.argv[2] +else: + keylocation = os.path.expanduser("~/.ssh/id_rsa.pub") + +keytext = open(keylocation).read() + +f = open(hostfile, "r") +for line in f: + host = line.strip() + print "creating key %s on %s" % (keyname, host) + + region = RegionInfo(name="nimbus", endpoint=host) + ec2conn = boto.connect_ec2(access_id, access_secret, region=region, port=8444) + +# keytext = base64.b64encode(keytext) + ec2conn.import_key_pair(keyname, keytext) + +sys.exit(0) Property changes on: branches/release-0.93/bin/vm/futuregrid/bin/register_key.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/futuregrid/bin/virtualenv.py =================================================================== --- branches/release-0.93/bin/vm/futuregrid/bin/virtualenv.py (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/bin/virtualenv.py 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,1651 @@ +#!/usr/bin/env python +"""Create a "virtual" Python installation +""" + +virtualenv_version = "1.5.1" + +import sys +import os +import optparse +import re +import shutil +import logging +import tempfile +import distutils.sysconfig +try: + import subprocess +except ImportError, e: + if sys.version_info <= (2, 3): + print 'ERROR: %s' % e + print 'ERROR: this script requires Python 2.4 or greater; or at least the subprocess module.' + print 'If you copy subprocess.py from a newer version of Python this script will probably work' + sys.exit(101) + else: + raise +try: + set +except NameError: + from sets import Set as set + +join = os.path.join +py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) + +is_jython = sys.platform.startswith('java') +is_pypy = hasattr(sys, 'pypy_version_info') + +if is_pypy: + expected_exe = 'pypy-c' +elif is_jython: + expected_exe = 'jython' +else: + expected_exe = 'python' + + +REQUIRED_MODULES = ['os', 'posix', 'posixpath', 'nt', 'ntpath', 'genericpath', + 'fnmatch', 'locale', 'encodings', 'codecs', + 'stat', 'UserDict', 'readline', 'copy_reg', 'types', + 're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile', + 'zlib'] + +REQUIRED_FILES = ['lib-dynload', 'config'] + +if sys.version_info[:2] >= (2, 6): + REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc']) +if sys.version_info[:2] >= (2, 7): + REQUIRED_MODULES.extend(['_weakrefset']) +if sys.version_info[:2] <= (2, 3): + REQUIRED_MODULES.extend(['sets', '__future__']) +if is_pypy: + # these are needed to correctly display the exceptions that may happen + # during the bootstrap + REQUIRED_MODULES.extend(['traceback', 'linecache']) + +class Logger(object): + + """ + Logging object for use in command-line script. Allows ranges of + levels, to avoid some redundancy of displayed information. + """ + + DEBUG = logging.DEBUG + INFO = logging.INFO + NOTIFY = (logging.INFO+logging.WARN)/2 + WARN = WARNING = logging.WARN + ERROR = logging.ERROR + FATAL = logging.FATAL + + LEVELS = [DEBUG, INFO, NOTIFY, WARN, ERROR, FATAL] + + def __init__(self, consumers): + self.consumers = consumers + self.indent = 0 + self.in_progress = None + self.in_progress_hanging = False + + def debug(self, msg, *args, **kw): + self.log(self.DEBUG, msg, *args, **kw) + def info(self, msg, *args, **kw): + self.log(self.INFO, msg, *args, **kw) + def notify(self, msg, *args, **kw): + self.log(self.NOTIFY, msg, *args, **kw) + def warn(self, msg, *args, **kw): + self.log(self.WARN, msg, *args, **kw) + def error(self, msg, *args, **kw): + self.log(self.WARN, msg, *args, **kw) + def fatal(self, msg, *args, **kw): + self.log(self.FATAL, msg, *args, **kw) + def log(self, level, msg, *args, **kw): + if args: + if kw: + raise TypeError( + "You may give positional or keyword arguments, not both") + args = args or kw + rendered = None + for consumer_level, consumer in self.consumers: + if self.level_matches(level, consumer_level): + if (self.in_progress_hanging + and consumer in (sys.stdout, sys.stderr)): + self.in_progress_hanging = False + sys.stdout.write('\n') + sys.stdout.flush() + if rendered is None: + if args: + rendered = msg % args + else: + rendered = msg + rendered = ' '*self.indent + rendered + if hasattr(consumer, 'write'): + consumer.write(rendered+'\n') + else: + consumer(rendered) + + def start_progress(self, msg): + assert not self.in_progress, ( + "Tried to start_progress(%r) while in_progress %r" + % (msg, self.in_progress)) + if self.level_matches(self.NOTIFY, self._stdout_level()): + sys.stdout.write(msg) + sys.stdout.flush() + self.in_progress_hanging = True + else: + self.in_progress_hanging = False + self.in_progress = msg + + def end_progress(self, msg='done.'): + assert self.in_progress, ( + "Tried to end_progress without start_progress") + if self.stdout_level_matches(self.NOTIFY): + if not self.in_progress_hanging: + # Some message has been printed out since start_progress + sys.stdout.write('...' + self.in_progress + msg + '\n') + sys.stdout.flush() + else: + sys.stdout.write(msg + '\n') + sys.stdout.flush() + self.in_progress = None + self.in_progress_hanging = False + + def show_progress(self): + """If we are in a progress scope, and no log messages have been + shown, write out another '.'""" + if self.in_progress_hanging: + sys.stdout.write('.') + sys.stdout.flush() + + def stdout_level_matches(self, level): + """Returns true if a message at this level will go to stdout""" + return self.level_matches(level, self._stdout_level()) + + def _stdout_level(self): + """Returns the level that stdout runs at""" + for level, consumer in self.consumers: + if consumer is sys.stdout: + return level + return self.FATAL + + def level_matches(self, level, consumer_level): + """ + >>> l = Logger() + >>> l.level_matches(3, 4) + False + >>> l.level_matches(3, 2) + True + >>> l.level_matches(slice(None, 3), 3) + False + >>> l.level_matches(slice(None, 3), 2) + True + >>> l.level_matches(slice(1, 3), 1) + True + >>> l.level_matches(slice(2, 3), 1) + False + """ + if isinstance(level, slice): + start, stop = level.start, level.stop + if start is not None and start > consumer_level: + return False + if stop is not None or stop <= consumer_level: + return False + return True + else: + return level >= consumer_level + + #@classmethod + def level_for_integer(cls, level): + levels = cls.LEVELS + if level < 0: + return levels[0] + if level >= len(levels): + return levels[-1] + return levels[level] + + level_for_integer = classmethod(level_for_integer) + +def mkdir(path): + if not os.path.exists(path): + logger.info('Creating %s', path) + os.makedirs(path) + else: + logger.info('Directory %s already exists', path) + +def copyfile(src, dest, symlink=True): + if not os.path.exists(src): + # Some bad symlink in the src + logger.warn('Cannot find file %s (bad symlink)', src) + return + if os.path.exists(dest): + logger.debug('File %s already exists', dest) + return + if not os.path.exists(os.path.dirname(dest)): + logger.info('Creating parent directories for %s' % os.path.dirname(dest)) + os.makedirs(os.path.dirname(dest)) + if symlink and hasattr(os, 'symlink'): + logger.info('Symlinking %s', dest) + os.symlink(os.path.abspath(src), dest) + else: + logger.info('Copying to %s', dest) + if os.path.isdir(src): + shutil.copytree(src, dest, True) + else: + shutil.copy2(src, dest) + +def writefile(dest, content, overwrite=True): + if not os.path.exists(dest): + logger.info('Writing %s', dest) + f = open(dest, 'wb') + f.write(content) + f.close() + return + else: + f = open(dest, 'rb') + c = f.read() + f.close() + if c != content: + if not overwrite: + logger.notify('File %s exists with different content; not overwriting', dest) + return + logger.notify('Overwriting %s with new content', dest) + f = open(dest, 'wb') + f.write(content) + f.close() + else: + logger.info('Content %s already in place', dest) + +def rmtree(dir): + if os.path.exists(dir): + logger.notify('Deleting tree %s', dir) + shutil.rmtree(dir) + else: + logger.info('Do not need to delete %s; already gone', dir) + +def make_exe(fn): + if hasattr(os, 'chmod'): + oldmode = os.stat(fn).st_mode & 07777 + newmode = (oldmode | 0555) & 07777 + os.chmod(fn, newmode) + logger.info('Changed mode of %s to %s', fn, oct(newmode)) + +def _find_file(filename, dirs): + for dir in dirs: + if os.path.exists(join(dir, filename)): + return join(dir, filename) + return filename + +def _install_req(py_executable, unzip=False, distribute=False): + if not distribute: + setup_fn = 'setuptools-0.6c11-py%s.egg' % sys.version[:3] + project_name = 'setuptools' + bootstrap_script = EZ_SETUP_PY + source = None + else: + setup_fn = None + source = 'distribute-0.6.14.tar.gz' + project_name = 'distribute' + bootstrap_script = DISTRIBUTE_SETUP_PY + try: + # check if the global Python has distribute installed or plain + # setuptools + import pkg_resources + if not hasattr(pkg_resources, '_distribute'): + location = os.path.dirname(pkg_resources.__file__) + logger.notify("A globally installed setuptools was found (in %s)" % location) + logger.notify("Use the --no-site-packages option to use distribute in " + "the virtualenv.") + except ImportError: + pass + + search_dirs = file_search_dirs() + + if setup_fn is not None: + setup_fn = _find_file(setup_fn, search_dirs) + + if source is not None: + source = _find_file(source, search_dirs) + + if is_jython and os._name == 'nt': + # Jython's .bat sys.executable can't handle a command line + # argument with newlines + fd, ez_setup = tempfile.mkstemp('.py') + os.write(fd, bootstrap_script) + os.close(fd) + cmd = [py_executable, ez_setup] + else: + cmd = [py_executable, '-c', bootstrap_script] + if unzip: + cmd.append('--always-unzip') + env = {} + remove_from_env = [] + if logger.stdout_level_matches(logger.DEBUG): + cmd.append('-v') + + old_chdir = os.getcwd() + if setup_fn is not None and os.path.exists(setup_fn): + logger.info('Using existing %s egg: %s' % (project_name, setup_fn)) + cmd.append(setup_fn) + if os.environ.get('PYTHONPATH'): + env['PYTHONPATH'] = setup_fn + os.path.pathsep + os.environ['PYTHONPATH'] + else: + env['PYTHONPATH'] = setup_fn + else: + # the source is found, let's chdir + if source is not None and os.path.exists(source): + os.chdir(os.path.dirname(source)) + # in this case, we want to be sure that PYTHONPATH is unset (not + # just empty, really unset), else CPython tries to import the + # site.py that it's in virtualenv_support + remove_from_env.append('PYTHONPATH') + else: + logger.info('No %s egg found; downloading' % project_name) + cmd.extend(['--always-copy', '-U', project_name]) + logger.start_progress('Installing %s...' % project_name) + logger.indent += 2 + cwd = None + if project_name == 'distribute': + env['DONT_PATCH_SETUPTOOLS'] = 'true' + + def _filter_ez_setup(line): + return filter_ez_setup(line, project_name) + + if not os.access(os.getcwd(), os.W_OK): + cwd = tempfile.mkdtemp() + if source is not None and os.path.exists(source): + # the current working dir is hostile, let's copy the + # tarball to a temp dir + target = os.path.join(cwd, os.path.split(source)[-1]) + shutil.copy(source, target) + try: + call_subprocess(cmd, show_stdout=False, + filter_stdout=_filter_ez_setup, + extra_env=env, + remove_from_env=remove_from_env, + cwd=cwd) + finally: + logger.indent -= 2 + logger.end_progress() + if os.getcwd() != old_chdir: + os.chdir(old_chdir) + if is_jython and os._name == 'nt': + os.remove(ez_setup) + +def file_search_dirs(): + here = os.path.dirname(os.path.abspath(__file__)) + dirs = ['.', here, + join(here, 'virtualenv_support')] + if os.path.splitext(os.path.dirname(__file__))[0] != 'virtualenv': + # Probably some boot script; just in case virtualenv is installed... + try: + import virtualenv + except ImportError: + pass + else: + dirs.append(os.path.join(os.path.dirname(virtualenv.__file__), 'virtualenv_support')) + return [d for d in dirs if os.path.isdir(d)] + +def install_setuptools(py_executable, unzip=False): + _install_req(py_executable, unzip) + +def install_distribute(py_executable, unzip=False): + _install_req(py_executable, unzip, distribute=True) + +_pip_re = re.compile(r'^pip-.*(zip|tar.gz|tar.bz2|tgz|tbz)$', re.I) +def install_pip(py_executable): + filenames = [] + for dir in file_search_dirs(): + filenames.extend([join(dir, fn) for fn in os.listdir(dir) + if _pip_re.search(fn)]) + filenames = [(os.path.basename(filename).lower(), i, filename) for i, filename in enumerate(filenames)] + filenames.sort() + filenames = [filename for basename, i, filename in filenames] + if not filenames: + filename = 'pip' + else: + filename = filenames[-1] + easy_install_script = 'easy_install' + if sys.platform == 'win32': + easy_install_script = 'easy_install-script.py' + cmd = [py_executable, join(os.path.dirname(py_executable), easy_install_script), filename] + if filename == 'pip': + logger.info('Installing pip from network...') + else: + logger.info('Installing %s' % os.path.basename(filename)) + logger.indent += 2 + def _filter_setup(line): + return filter_ez_setup(line, 'pip') + try: + call_subprocess(cmd, show_stdout=False, + filter_stdout=_filter_setup) + finally: + logger.indent -= 2 + +def filter_ez_setup(line, project_name='setuptools'): + if not line.strip(): + return Logger.DEBUG + if project_name == 'distribute': + for prefix in ('Extracting', 'Now working', 'Installing', 'Before', + 'Scanning', 'Setuptools', 'Egg', 'Already', + 'running', 'writing', 'reading', 'installing', + 'creating', 'copying', 'byte-compiling', 'removing', + 'Processing'): + if line.startswith(prefix): + return Logger.DEBUG + return Logger.DEBUG + for prefix in ['Reading ', 'Best match', 'Processing setuptools', + 'Copying setuptools', 'Adding setuptools', + 'Installing ', 'Installed ']: + if line.startswith(prefix): + return Logger.DEBUG + return Logger.INFO + +def main(): + parser = optparse.OptionParser( + version=virtualenv_version, + usage="%prog [OPTIONS] DEST_DIR") + + parser.add_option( + '-v', '--verbose', + action='count', + dest='verbose', + default=0, + help="Increase verbosity") + + parser.add_option( + '-q', '--quiet', + action='count', + dest='quiet', + default=0, + help='Decrease verbosity') + + parser.add_option( + '-p', '--python', + dest='python', + metavar='PYTHON_EXE', + help='The Python interpreter to use, e.g., --python=python2.5 will use the python2.5 ' + 'interpreter to create the new environment. The default is the interpreter that ' + 'virtualenv was installed with (%s)' % sys.executable) + + parser.add_option( + '--clear', + dest='clear', + action='store_true', + help="Clear out the non-root install and start from scratch") + + parser.add_option( + '--no-site-packages', + dest='no_site_packages', + action='store_true', + help="Don't give access to the global site-packages dir to the " + "virtual environment") + + parser.add_option( + '--unzip-setuptools', + dest='unzip_setuptools', + action='store_true', + help="Unzip Setuptools or Distribute when installing it") + + parser.add_option( + '--relocatable', + dest='relocatable', + action='store_true', + help='Make an EXISTING virtualenv environment relocatable. ' + 'This fixes up scripts and makes all .pth files relative') + + parser.add_option( + '--distribute', + dest='use_distribute', + action='store_true', + help='Use Distribute instead of Setuptools. Set environ variable ' + 'VIRTUALENV_USE_DISTRIBUTE to make it the default ') + + parser.add_option( + '--prompt=', + dest='prompt', + help='Provides an alternative prompt prefix for this environment') + + if 'extend_parser' in globals(): + extend_parser(parser) + + options, args = parser.parse_args() + + global logger + + if 'adjust_options' in globals(): + adjust_options(options, args) + + verbosity = options.verbose - options.quiet + logger = Logger([(Logger.level_for_integer(2-verbosity), sys.stdout)]) + + if options.python and not os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'): + env = os.environ.copy() + interpreter = resolve_interpreter(options.python) + if interpreter == sys.executable: + logger.warn('Already using interpreter %s' % interpreter) + else: + logger.notify('Running virtualenv with interpreter %s' % interpreter) + env['VIRTUALENV_INTERPRETER_RUNNING'] = 'true' + file = __file__ + if file.endswith('.pyc'): + file = file[:-1] + popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env) + raise SystemExit(popen.wait()) + + if not args: + print 'You must provide a DEST_DIR' + parser.print_help() + sys.exit(2) + if len(args) > 1: + print 'There must be only one argument: DEST_DIR (you gave %s)' % ( + ' '.join(args)) + parser.print_help() + sys.exit(2) + + home_dir = args[0] + + if os.environ.get('WORKING_ENV'): + logger.fatal('ERROR: you cannot run virtualenv while in a workingenv') + logger.fatal('Please deactivate your workingenv, then re-run this script') + sys.exit(3) + + if 'PYTHONHOME' in os.environ: + logger.warn('PYTHONHOME is set. You *must* activate the virtualenv before using it') + del os.environ['PYTHONHOME'] + + if options.relocatable: + make_environment_relocatable(home_dir) + return + + create_environment(home_dir, site_packages=not options.no_site_packages, clear=options.clear, + unzip_setuptools=options.unzip_setuptools, + use_distribute=options.use_distribute, + prompt=options.prompt) + if 'after_install' in globals(): + after_install(options, home_dir) + +def call_subprocess(cmd, show_stdout=True, + filter_stdout=None, cwd=None, + raise_on_returncode=True, extra_env=None, + remove_from_env=None): + cmd_parts = [] + for part in cmd: + if len(part) > 40: + part = part[:30]+"..."+part[-5:] + if ' ' in part or '\n' in part or '"' in part or "'" in part: + part = '"%s"' % part.replace('"', '\\"') + cmd_parts.append(part) + cmd_desc = ' '.join(cmd_parts) + if show_stdout: + stdout = None + else: + stdout = subprocess.PIPE + logger.debug("Running command %s" % cmd_desc) + if extra_env or remove_from_env: + env = os.environ.copy() + if extra_env: + env.update(extra_env) + if remove_from_env: + for varname in remove_from_env: + env.pop(varname, None) + else: + env = None + try: + proc = subprocess.Popen( + cmd, stderr=subprocess.STDOUT, stdin=None, stdout=stdout, + cwd=cwd, env=env) + except Exception, e: + logger.fatal( + "Error %s while executing command %s" % (e, cmd_desc)) + raise + all_output = [] + if stdout is not None: + stdout = proc.stdout + while 1: + line = stdout.readline() + if not line: + break + line = line.rstrip() + all_output.append(line) + if filter_stdout: + level = filter_stdout(line) + if isinstance(level, tuple): + level, line = level + logger.log(level, line) + if not logger.stdout_level_matches(level): + logger.show_progress() + else: + logger.info(line) + else: + proc.communicate() + proc.wait() + if proc.returncode: + if raise_on_returncode: + if all_output: + logger.notify('Complete output from command %s:' % cmd_desc) + logger.notify('\n'.join(all_output) + '\n----------------------------------------') + raise OSError( + "Command %s failed with error code %s" + % (cmd_desc, proc.returncode)) + else: + logger.warn( + "Command %s had error code %s" + % (cmd_desc, proc.returncode)) + + +def create_environment(home_dir, site_packages=True, clear=False, + unzip_setuptools=False, use_distribute=False, + prompt=None): + """ + Creates a new environment in ``home_dir``. + + If ``site_packages`` is true (the default) then the global + ``site-packages/`` directory will be on the path. + + If ``clear`` is true (default False) then the environment will + first be cleared. + """ + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + + py_executable = os.path.abspath(install_python( + home_dir, lib_dir, inc_dir, bin_dir, + site_packages=site_packages, clear=clear)) + + install_distutils(home_dir) + + if use_distribute or os.environ.get('VIRTUALENV_USE_DISTRIBUTE'): + install_distribute(py_executable, unzip=unzip_setuptools) + else: + install_setuptools(py_executable, unzip=unzip_setuptools) + + install_pip(py_executable) + + install_activate(home_dir, bin_dir, prompt) + +def path_locations(home_dir): + """Return the path locations for the environment (where libraries are, + where scripts go, etc)""" + # XXX: We'd use distutils.sysconfig.get_python_inc/lib but its + # prefix arg is broken: http://bugs.python.org/issue3386 + if sys.platform == 'win32': + # Windows has lots of problems with executables with spaces in + # the name; this function will remove them (using the ~1 + # format): + mkdir(home_dir) + if ' ' in home_dir: + try: + import win32api + except ImportError: + print 'Error: the path "%s" has a space in it' % home_dir + print 'To handle these kinds of paths, the win32api module must be installed:' + print ' http://sourceforge.net/projects/pywin32/' + sys.exit(3) + home_dir = win32api.GetShortPathName(home_dir) + lib_dir = join(home_dir, 'Lib') + inc_dir = join(home_dir, 'Include') + bin_dir = join(home_dir, 'Scripts') + elif is_jython: + lib_dir = join(home_dir, 'Lib') + inc_dir = join(home_dir, 'Include') + bin_dir = join(home_dir, 'bin') + elif is_pypy: + lib_dir = home_dir + inc_dir = join(home_dir, 'include') + bin_dir = join(home_dir, 'bin') + else: + lib_dir = join(home_dir, 'lib', py_version) + inc_dir = join(home_dir, 'include', py_version) + bin_dir = join(home_dir, 'bin') + return home_dir, lib_dir, inc_dir, bin_dir + + +def change_prefix(filename, dst_prefix): + prefixes = [sys.prefix] + if hasattr(sys, 'real_prefix'): + prefixes.append(sys.real_prefix) + prefixes = map(os.path.abspath, prefixes) + filename = os.path.abspath(filename) + for src_prefix in prefixes: + if filename.startswith(src_prefix): + _, relpath = filename.split(src_prefix, 1) + assert relpath[0] == os.sep + relpath = relpath[1:] + return join(dst_prefix, relpath) + assert False, "Filename %s does not start with any of these prefixes: %s" % \ + (filename, prefixes) + +def copy_required_modules(dst_prefix): + import imp + for modname in REQUIRED_MODULES: + if modname in sys.builtin_module_names: + logger.info("Ignoring built-in bootstrap module: %s" % modname) + continue + try: + f, filename, _ = imp.find_module(modname) + except ImportError: + logger.info("Cannot import bootstrap module: %s" % modname) + else: + if f is not None: + f.close() + dst_filename = change_prefix(filename, dst_prefix) + copyfile(filename, dst_filename) + if filename.endswith('.pyc'): + pyfile = filename[:-1] + if os.path.exists(pyfile): + copyfile(pyfile, dst_filename[:-1]) + + +def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear): + """Install just the base environment, no distutils patches etc""" + if sys.executable.startswith(bin_dir): + print 'Please use the *system* python to run this script' + return + + if clear: + rmtree(lib_dir) + ## FIXME: why not delete it? + ## Maybe it should delete everything with #!/path/to/venv/python in it + logger.notify('Not deleting %s', bin_dir) + + if hasattr(sys, 'real_prefix'): + logger.notify('Using real prefix %r' % sys.real_prefix) + prefix = sys.real_prefix + else: + prefix = sys.prefix + mkdir(lib_dir) + fix_lib64(lib_dir) + stdlib_dirs = [os.path.dirname(os.__file__)] + if sys.platform == 'win32': + stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), 'DLLs')) + elif sys.platform == 'darwin': + stdlib_dirs.append(join(stdlib_dirs[0], 'site-packages')) + if hasattr(os, 'symlink'): + logger.info('Symlinking Python bootstrap modules') + else: + logger.info('Copying Python bootstrap modules') + logger.indent += 2 + try: + # copy required files... + for stdlib_dir in stdlib_dirs: + if not os.path.isdir(stdlib_dir): + continue + for fn in os.listdir(stdlib_dir): + if fn != 'site-packages' and os.path.splitext(fn)[0] in REQUIRED_FILES: + copyfile(join(stdlib_dir, fn), join(lib_dir, fn)) + # ...and modules + copy_required_modules(home_dir) + finally: + logger.indent -= 2 + mkdir(join(lib_dir, 'site-packages')) + import site + site_filename = site.__file__ + if site_filename.endswith('.pyc'): + site_filename = site_filename[:-1] + elif site_filename.endswith('$py.class'): + site_filename = site_filename.replace('$py.class', '.py') + site_filename_dst = change_prefix(site_filename, home_dir) + site_dir = os.path.dirname(site_filename_dst) + writefile(site_filename_dst, SITE_PY) + writefile(join(site_dir, 'orig-prefix.txt'), prefix) + site_packages_filename = join(site_dir, 'no-global-site-packages.txt') + if not site_packages: + writefile(site_packages_filename, '') + else: + if os.path.exists(site_packages_filename): + logger.info('Deleting %s' % site_packages_filename) + os.unlink(site_packages_filename) + + if is_pypy: + stdinc_dir = join(prefix, 'include') + else: + stdinc_dir = join(prefix, 'include', py_version) + if os.path.exists(stdinc_dir): + copyfile(stdinc_dir, inc_dir) + else: + logger.debug('No include dir %s' % stdinc_dir) + + if sys.exec_prefix != prefix: + if sys.platform == 'win32': + exec_dir = join(sys.exec_prefix, 'lib') + elif is_jython: + exec_dir = join(sys.exec_prefix, 'Lib') + else: + exec_dir = join(sys.exec_prefix, 'lib', py_version) + for fn in os.listdir(exec_dir): + copyfile(join(exec_dir, fn), join(lib_dir, fn)) + + if is_jython: + # Jython has either jython-dev.jar and javalib/ dir, or just + # jython.jar + for name in 'jython-dev.jar', 'javalib', 'jython.jar': + src = join(prefix, name) + if os.path.exists(src): + copyfile(src, join(home_dir, name)) + # XXX: registry should always exist after Jython 2.5rc1 + src = join(prefix, 'registry') + if os.path.exists(src): + copyfile(src, join(home_dir, 'registry'), symlink=False) + copyfile(join(prefix, 'cachedir'), join(home_dir, 'cachedir'), + symlink=False) + + mkdir(bin_dir) + py_executable = join(bin_dir, os.path.basename(sys.executable)) + if 'Python.framework' in prefix: + if re.search(r'/Python(?:-32|-64)*$', py_executable): + # The name of the python executable is not quite what + # we want, rename it. + py_executable = os.path.join( + os.path.dirname(py_executable), 'python') + + logger.notify('New %s executable in %s', expected_exe, py_executable) + if sys.executable != py_executable: + ## FIXME: could I just hard link? + executable = sys.executable + if sys.platform == 'cygwin' and os.path.exists(executable + '.exe'): + # Cygwin misreports sys.executable sometimes + executable += '.exe' + py_executable += '.exe' + logger.info('Executable actually exists in %s' % executable) + shutil.copyfile(executable, py_executable) + make_exe(py_executable) + if sys.platform == 'win32' or sys.platform == 'cygwin': + pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') + if os.path.exists(pythonw): + logger.info('Also created pythonw.exe') + shutil.copyfile(pythonw, os.path.join(os.path.dirname(py_executable), 'pythonw.exe')) + if is_pypy: + # make a symlink python --> pypy-c + python_executable = os.path.join(os.path.dirname(py_executable), 'python') + logger.info('Also created executable %s' % python_executable) + copyfile(py_executable, python_executable) + + if os.path.splitext(os.path.basename(py_executable))[0] != expected_exe: + secondary_exe = os.path.join(os.path.dirname(py_executable), + expected_exe) + py_executable_ext = os.path.splitext(py_executable)[1] + if py_executable_ext == '.exe': + # python2.4 gives an extension of '.4' :P + secondary_exe += py_executable_ext + if os.path.exists(secondary_exe): + logger.warn('Not overwriting existing %s script %s (you must use %s)' + % (expected_exe, secondary_exe, py_executable)) + else: + logger.notify('Also creating executable in %s' % secondary_exe) + shutil.copyfile(sys.executable, secondary_exe) + make_exe(secondary_exe) + + if 'Python.framework' in prefix: + logger.debug('MacOSX Python framework detected') + + # Make sure we use the the embedded interpreter inside + # the framework, even if sys.executable points to + # the stub executable in ${sys.prefix}/bin + # See http://groups.google.com/group/python-virtualenv/ + # browse_thread/thread/17cab2f85da75951 + original_python = os.path.join( + prefix, 'Resources/Python.app/Contents/MacOS/Python') + shutil.copy(original_python, py_executable) + + # Copy the framework's dylib into the virtual + # environment + virtual_lib = os.path.join(home_dir, '.Python') + + if os.path.exists(virtual_lib): + os.unlink(virtual_lib) + copyfile( + os.path.join(prefix, 'Python'), + virtual_lib) + + # And then change the install_name of the copied python executable + try: + call_subprocess( + ["install_name_tool", "-change", + os.path.join(prefix, 'Python'), + '@executable_path/../.Python', + py_executable]) + except: + logger.fatal( + "Could not call install_name_tool -- you must have Apple's development tools installed") + raise + + # Some tools depend on pythonX.Y being present + py_executable_version = '%s.%s' % ( + sys.version_info[0], sys.version_info[1]) + if not py_executable.endswith(py_executable_version): + # symlinking pythonX.Y > python + pth = py_executable + '%s.%s' % ( + sys.version_info[0], sys.version_info[1]) + if os.path.exists(pth): + os.unlink(pth) + os.symlink('python', pth) + else: + # reverse symlinking python -> pythonX.Y (with --python) + pth = join(bin_dir, 'python') + if os.path.exists(pth): + os.unlink(pth) + os.symlink(os.path.basename(py_executable), pth) + + if sys.platform == 'win32' and ' ' in py_executable: + # There's a bug with subprocess on Windows when using a first + # argument that has a space in it. Instead we have to quote + # the value: + py_executable = '"%s"' % py_executable + cmd = [py_executable, '-c', 'import sys; print sys.prefix'] + logger.info('Testing executable with %s %s "%s"' % tuple(cmd)) + proc = subprocess.Popen(cmd, + stdout=subprocess.PIPE) + proc_stdout, proc_stderr = proc.communicate() + proc_stdout = os.path.normcase(os.path.abspath(proc_stdout.strip())) + if proc_stdout != os.path.normcase(os.path.abspath(home_dir)): + logger.fatal( + 'ERROR: The executable %s is not functioning' % py_executable) + logger.fatal( + 'ERROR: It thinks sys.prefix is %r (should be %r)' + % (proc_stdout, os.path.normcase(os.path.abspath(home_dir)))) + logger.fatal( + 'ERROR: virtualenv is not compatible with this system or executable') + if sys.platform == 'win32': + logger.fatal( + 'Note: some Windows users have reported this error when they installed Python for "Only this user". The problem may be resolvable if you install Python "For all users". (See https://bugs.launchpad.net/virtualenv/+bug/352844)') + sys.exit(100) + else: + logger.info('Got sys.prefix result: %r' % proc_stdout) + + pydistutils = os.path.expanduser('~/.pydistutils.cfg') + if os.path.exists(pydistutils): + logger.notify('Please make sure you remove any previous custom paths from ' + 'your %s file.' % pydistutils) + ## FIXME: really this should be calculated earlier + return py_executable + +def install_activate(home_dir, bin_dir, prompt=None): + if sys.platform == 'win32' or is_jython and os._name == 'nt': + files = {'activate.bat': ACTIVATE_BAT, + 'deactivate.bat': DEACTIVATE_BAT} + if os.environ.get('OS') == 'Windows_NT' and os.environ.get('OSTYPE') == 'cygwin': + files['activate'] = ACTIVATE_SH + else: + files = {'activate': ACTIVATE_SH} + + # suppling activate.fish in addition to, not instead of, the + # bash script support. + files['activate.fish'] = ACTIVATE_FISH + + # same for csh/tcsh support... + files['activate.csh'] = ACTIVATE_CSH + + + + files['activate_this.py'] = ACTIVATE_THIS + vname = os.path.basename(os.path.abspath(home_dir)) + for name, content in files.items(): + content = content.replace('__VIRTUAL_PROMPT__', prompt or '') + content = content.replace('__VIRTUAL_WINPROMPT__', prompt or '(%s)' % vname) + content = content.replace('__VIRTUAL_ENV__', os.path.abspath(home_dir)) + content = content.replace('__VIRTUAL_NAME__', vname) + content = content.replace('__BIN_NAME__', os.path.basename(bin_dir)) + writefile(os.path.join(bin_dir, name), content) + +def install_distutils(home_dir): + distutils_path = change_prefix(distutils.__path__[0], home_dir) + mkdir(distutils_path) + ## FIXME: maybe this prefix setting should only be put in place if + ## there's a local distutils.cfg with a prefix setting? + home_dir = os.path.abspath(home_dir) + ## FIXME: this is breaking things, removing for now: + #distutils_cfg = DISTUTILS_CFG + "\n[install]\nprefix=%s\n" % home_dir + writefile(os.path.join(distutils_path, '__init__.py'), DISTUTILS_INIT) + writefile(os.path.join(distutils_path, 'distutils.cfg'), DISTUTILS_CFG, overwrite=False) + +def fix_lib64(lib_dir): + """ + Some platforms (particularly Gentoo on x64) put things in lib64/pythonX.Y + instead of lib/pythonX.Y. If this is such a platform we'll just create a + symlink so lib64 points to lib + """ + if [p for p in distutils.sysconfig.get_config_vars().values() + if isinstance(p, basestring) and 'lib64' in p]: + logger.debug('This system uses lib64; symlinking lib64 to lib') + assert os.path.basename(lib_dir) == 'python%s' % sys.version[:3], ( + "Unexpected python lib dir: %r" % lib_dir) + lib_parent = os.path.dirname(lib_dir) + assert os.path.basename(lib_parent) == 'lib', ( + "Unexpected parent dir: %r" % lib_parent) + copyfile(lib_parent, os.path.join(os.path.dirname(lib_parent), 'lib64')) + +def resolve_interpreter(exe): + """ + If the executable given isn't an absolute path, search $PATH for the interpreter + """ + if os.path.abspath(exe) != exe: + paths = os.environ.get('PATH', '').split(os.pathsep) + for path in paths: + if os.path.exists(os.path.join(path, exe)): + exe = os.path.join(path, exe) + break + if not os.path.exists(exe): + logger.fatal('The executable %s (from --python=%s) does not exist' % (exe, exe)) + sys.exit(3) + return exe + +############################################################ +## Relocating the environment: + +def make_environment_relocatable(home_dir): + """ + Makes the already-existing environment use relative paths, and takes out + the #!-based environment selection in scripts. + """ + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + activate_this = os.path.join(bin_dir, 'activate_this.py') + if not os.path.exists(activate_this): + logger.fatal( + 'The environment doesn\'t have a file %s -- please re-run virtualenv ' + 'on this environment to update it' % activate_this) + fixup_scripts(home_dir) + fixup_pth_and_egg_link(home_dir) + ## FIXME: need to fix up distutils.cfg + +OK_ABS_SCRIPTS = ['python', 'python%s' % sys.version[:3], + 'activate', 'activate.bat', 'activate_this.py'] + +def fixup_scripts(home_dir): + # This is what we expect at the top of scripts: + shebang = '#!%s/bin/python' % os.path.normcase(os.path.abspath(home_dir)) + # This is what we'll put: + new_shebang = '#!/usr/bin/env python%s' % sys.version[:3] + activate = "import os; activate_this=os.path.join(os.path.dirname(__file__), 'activate_this.py'); execfile(activate_this, dict(__file__=activate_this)); del os, activate_this" + if sys.platform == 'win32': + bin_suffix = 'Scripts' + else: + bin_suffix = 'bin' + bin_dir = os.path.join(home_dir, bin_suffix) + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + for filename in os.listdir(bin_dir): + filename = os.path.join(bin_dir, filename) + if not os.path.isfile(filename): + # ignore subdirs, e.g. .svn ones. + continue + f = open(filename, 'rb') + lines = f.readlines() + f.close() + if not lines: + logger.warn('Script %s is an empty file' % filename) + continue + if not lines[0].strip().startswith(shebang): + if os.path.basename(filename) in OK_ABS_SCRIPTS: + logger.debug('Cannot make script %s relative' % filename) + elif lines[0].strip() == new_shebang: + logger.info('Script %s has already been made relative' % filename) + else: + logger.warn('Script %s cannot be made relative (it\'s not a normal script that starts with %s)' + % (filename, shebang)) + continue + logger.notify('Making script %s relative' % filename) + lines = [new_shebang+'\n', activate+'\n'] + lines[1:] + f = open(filename, 'wb') + f.writelines(lines) + f.close() + +def fixup_pth_and_egg_link(home_dir, sys_path=None): + """Makes .pth and .egg-link files use relative paths""" + home_dir = os.path.normcase(os.path.abspath(home_dir)) + if sys_path is None: + sys_path = sys.path + for path in sys_path: + if not path: + path = '.' + if not os.path.isdir(path): + continue + path = os.path.normcase(os.path.abspath(path)) + if not path.startswith(home_dir): + logger.debug('Skipping system (non-environment) directory %s' % path) + continue + for filename in os.listdir(path): + filename = os.path.join(path, filename) + if filename.endswith('.pth'): + if not os.access(filename, os.W_OK): + logger.warn('Cannot write .pth file %s, skipping' % filename) + else: + fixup_pth_file(filename) + if filename.endswith('.egg-link'): + if not os.access(filename, os.W_OK): + logger.warn('Cannot write .egg-link file %s, skipping' % filename) + else: + fixup_egg_link(filename) + +def fixup_pth_file(filename): + lines = [] + prev_lines = [] + f = open(filename) + prev_lines = f.readlines() + f.close() + for line in prev_lines: + line = line.strip() + if (not line or line.startswith('#') or line.startswith('import ') + or os.path.abspath(line) != line): + lines.append(line) + else: + new_value = make_relative_path(filename, line) + if line != new_value: + logger.debug('Rewriting path %s as %s (in %s)' % (line, new_value, filename)) + lines.append(new_value) + if lines == prev_lines: + logger.info('No changes to .pth file %s' % filename) + return + logger.notify('Making paths in .pth file %s relative' % filename) + f = open(filename, 'w') + f.write('\n'.join(lines) + '\n') + f.close() + +def fixup_egg_link(filename): + f = open(filename) + link = f.read().strip() + f.close() + if os.path.abspath(link) != link: + logger.debug('Link in %s already relative' % filename) + return + new_link = make_relative_path(filename, link) + logger.notify('Rewriting link %s in %s as %s' % (link, filename, new_link)) + f = open(filename, 'w') + f.write(new_link) + f.close() + +def make_relative_path(source, dest, dest_is_directory=True): + """ + Make a filename relative, where the filename is dest, and it is + being referred to from the filename source. + + >>> make_relative_path('/usr/share/something/a-file.pth', + ... '/usr/share/another-place/src/Directory') + '../another-place/src/Directory' + >>> make_relative_path('/usr/share/something/a-file.pth', + ... '/home/user/src/Directory') + '../../../home/user/src/Directory' + >>> make_relative_path('/usr/share/a-file.pth', '/usr/share/') + './' + """ + source = os.path.dirname(source) + if not dest_is_directory: + dest_filename = os.path.basename(dest) + dest = os.path.dirname(dest) + dest = os.path.normpath(os.path.abspath(dest)) + source = os.path.normpath(os.path.abspath(source)) + dest_parts = dest.strip(os.path.sep).split(os.path.sep) + source_parts = source.strip(os.path.sep).split(os.path.sep) + while dest_parts and source_parts and dest_parts[0] == source_parts[0]: + dest_parts.pop(0) + source_parts.pop(0) + full_parts = ['..']*len(source_parts) + dest_parts + if not dest_is_directory: + full_parts.append(dest_filename) + if not full_parts: + # Special case for the current directory (otherwise it'd be '') + return './' + return os.path.sep.join(full_parts) + + + +############################################################ +## Bootstrap script creation: + +def create_bootstrap_script(extra_text, python_version=''): + """ + Creates a bootstrap script, which is like this script but with + extend_parser, adjust_options, and after_install hooks. + + This returns a string that (written to disk of course) can be used + as a bootstrap script with your own customizations. The script + will be the standard virtualenv.py script, with your extra text + added (your extra text should be Python code). + + If you include these functions, they will be called: + + ``extend_parser(optparse_parser)``: + You can add or remove options from the parser here. + + ``adjust_options(options, args)``: + You can change options here, or change the args (if you accept + different kinds of arguments, be sure you modify ``args`` so it is + only ``[DEST_DIR]``). + + ``after_install(options, home_dir)``: + + After everything is installed, this function is called. This + is probably the function you are most likely to use. An + example would be:: + + def after_install(options, home_dir): + subprocess.call([join(home_dir, 'bin', 'easy_install'), + 'MyPackage']) + subprocess.call([join(home_dir, 'bin', 'my-package-script'), + 'setup', home_dir]) + + This example immediately installs a package, and runs a setup + script from that package. + + If you provide something like ``python_version='2.4'`` then the + script will start with ``#!/usr/bin/env python2.4`` instead of + ``#!/usr/bin/env python``. You can use this when the script must + be run with a particular Python version. + """ + filename = __file__ + if filename.endswith('.pyc'): + filename = filename[:-1] + f = open(filename, 'rb') + content = f.read() + f.close() + py_exe = 'python%s' % python_version + content = (('#!/usr/bin/env %s\n' % py_exe) + + '## WARNING: This file is generated\n' + + content) + return content.replace('##EXT' 'END##', extra_text) + +##EXTEND## + +##file site.py +SITE_PY = """ +eJzVPP1z2zaWv/OvQOXJUEplOh/dzo5T98ZJnNZ7buJt0mluXY+WkiCJNUWyBGlZe3P3t9/7AECA +pGS77f5wmkwskcDDw8P7xgMGg8FpUchsLtb5vE6lUDIuZytRxNVKiUVeimqVlPPDIi6rLTyd3cRL +qUSVC7VVEbaKguDpH/wET8WnVaIMCvAtrqt8HVfJLE7TrUjWRV5Wci7mdZlkS5FkSZXEafIvaJFn +kXj6xzEIzjMBM08TWYpbWSqAq0S+EJfbapVnYlgXOOfn0V/il6OxULMyKSpoUGqcgSKruAoyKeeA +JrSsFZAyqeShKuQsWSQz23CT1+lcFGk8k+Kf/+SpUdMwDFS+lpuVLKXIABmAKQFWgXjA16QUs3wu +IyFey1mMA/DzhlgBQxvjmikkY5aLNM+WMKdMzqRScbkVw2ldESBCWcxzwCkBDKokTYNNXt6oESwp +rccGHomY2cOfDLMHzBPH73IO4PghC37KkrsxwwbuQXDVitmmlIvkTsQIFn7KOzmb6GfDZCHmyWIB +NMiqETYJGAEl0mR6VNByfKNX6NsjwspyZQxjSESZG/NL6hEF55WIUwVsWxdII0WYv5XTJM6AGtkt +DAcQgaRB3zjzRFV2HJqdyAFAietYgZSslRiu4yQDZv0hnhHaPyfZPN+oEVEAVkuJX2tVufMf9hAA +WjsEGAe4WGY16yxNbmS6HQECnwD7Uqo6rVAg5kkpZ1VeJlIRAEBtK+QdID0WcSk1CZkzjdyOif5E +kyTDhUUBQ4HHl0iSRbKsS5IwsUiAc4Er3n34Ubw9e31++l7zmAHGMrtcA84AhRbawQkGEEe1Ko/S +HAQ6Ci7wj4jncxSyJY4PeDUNju5d6WAIcy+idh9nwYHsenH1MDDHCpQJjRVQv/+GLmO1Avr8zz3r +HQSnu6hCE+dvm1UOMpnFaylWMfMXckbwjYbzbVRUq1fADQrhVEAqhYuDCCYID0ji0myYZ1IUwGJp +kslRABSaUlt/FYEV3ufZIa11ixMAQhlk8NJ5NqIRMwkT7cJ6hfrCNN7SzHSTwK7zOi9JcQD/ZzPS +RWmc3RCOihiKv03lMskyRAh5IQgPQhpY3STAifNIXFAr0gumkQhZe3FLFIkaeAmZDnhS3sXrIpVj +Fl/UrfvVCA0mK2HWOmWOg5YVqVdatWaqvbz3Ivrc4jpCs1qVEoDXU0/oFnk+FlPQ2YRNEa9ZvKpN +TpwT9MgTdUKeoJbQF78DRU+VqtfSvkReAc1CDBUs8jTNN0Cy4yAQ4gAbGaPsMye8hXfwP8DF/1NZ +zVZB4IxkAWtQiPwuUAgETILMNFdrJDxu06zcVjJJxpoiL+eypKEeRuwjRvyBjXGuwfu80kaNp4ur +nK+TClXSVJvMhC1eFlasH1/xvGEaYLkV0cw0bei0xumlxSqeSuOSTOUCJUEv0iu77DBm0DMm2eJK +rNnKwDsgi0zYgvQrFlQ6i0qSEwAwWPjiLCnqlBopZDARw0DrguCvYzTpuXaWgL3ZLAeokNh8z8D+ +AG7/AjHarBKgzwwggIZBLQXLN02qEh2ERh8FvtE3/Xl84NTzhbZNPOQiTlJt5eMsOKeHZ2VJ4juT +BfYaa2IomGFWoWu3zICOKOaDwSAIjDu0VeZrbr9NJtM6QXs3mQRVuT0G7hAo5AFDF+9hojQcv1mU ++RpfW/Q+gj4AvYw9ggNxSYpCso/rMdMrpICrlQvTFM2vw5ECVUlw+ePZu/PPZx/FibhqtNK4rZKu +YcyzLAbOJKUOfNEatlFH0BJ1V4LqS7wDC03rCiaJepMEyriqgf0A9U9lTa9hGjPvZXD2/vT1xdnk +p49nP04+nn86AwTBVMjggKaMFq4Gn09FwN/AWHMVaRMZdHrQg9enH+2DYJKoSbEttvAAbB1wYTmE ++Y5FiA8n2oxOkmyRhyNq/Cv70SesGbTTdHX81bU4ORHhr/FtHAbguDRNeRF/IB7+tC0kdK3gzzBX +oyCYywXw+41EqRg+JWd0xB2AiNAy18bx1zzJzHt67Q1BQjukHoDDZDJLY6Ww8WQSAmmpQ88HOkTs +0SKrD6FjsXW7jjQq+CklLEWGXcb4Xw+K8ZT6IRqMotvFNAIZWc9iJbkVTR/6TSaoKCaToR4QJIh4 +HLwclv1QmCaoKMoEnEniFVQcU5Wn+BPho+iRyGA8g6oJF0nHK9FtnNZSDZ1JARGHwxYZUbslijgI +/IIhmL9m6UajNjUNz0AzIF+ag+oqW5TDzwE4GaAjTOSE0RUHPEwzxPRv7N4TDuDnhahjlWpBYZUk +Ls8uxctnLw7Rh4BAb26p4zVHs5hktbQPF7BaS1k5CHOvcEzCMHLpskDlhk+P98NcR3Zluqyw0Etc +ynV+K+eALTKws8riR3oD4TDMYxbDKoIyJSPMSs84azEGfzx7kBY02EC9NUEx62+W/oAjcJkpUB0c +zRKpdajN9qco89sELfx0q1+CgQL1hmbKeBOBs3Aek6EdAg0BrmeGlNrIEBRYWbOXSHgjSFTx80YV +RgTuAnXrNX29yfJNNuHw8wTV5HBkWRcFSzMvNmiW4EC8A8MBSOYQTTVEYyjgZwuUrUNAHqYP0wXK +kkMPgMC6KoqRHFgmvqIpcqiGwyKM0StBwltKNNK3ZgiKbwwxHEj0NrIPjJZASDA5q+CsatBMhrJm +msHADkl8rruIOO7zAbSoGIGhG2po3MjQ7+oYlLO4cJWS0w9t6OfPn5lt1IqSGojYFCeNdntB5i0q +tmAKE9AJxg3iFAmxwQY8SgBTK82a4vCjyAt2gWA9L7Vsg+WGkKqqiuOjo81mE+mQPi+XR2px9Je/ +fv31X5+xTpzPiX9gOo606PxWdETv0I2MvjEW6Fuzci1+TDKfGwnWUJIrRP4f4vddncxzcXw4svoT +ubgxrPi/cT5AgUzMoExloO2gweiJOnwSvVQD8UQM3bbDEXsS2qRaK+ZbXehR5WC7wdOY5XVWhY4i +VeJLsG4QFs/ltF6GdnDPRpofMFWU06HlgcPn14iBzxmGr4wpnqCWILZAi++Q/kdmm5j8Ga0hkLxo +ojoh67Zfixnizh8u79Y7dITGzDBRyB0oEX6TBwugbdyVHPxoZxTtnuOMmo9nCIylDwzzaldwiIJD +uOBajF2pc7gafVSQpg2rZlAwrmoEBQ1u3ZSprcGRjQwRJHo3JsLmhdUtgE6tdJ0Jys0qQAt3nI61 +a7OC4wkhD5yI5/REglN73Hn3jJe2TlPKorR41KMKA/YWGu10Dnw5NADGYlD+NOCWelnOP7QWhdeg +B1jOiRdksEWHmfCN6wMODgY97NSx+rt6M437QOAiUfuHASeMT3iAUoEwFUOfcXdxuKUtJ5taCO82 +OMRTZpVIotUO2Wrrjl6Z2muXFkmGqtdZo2iW5uAUW6VIfNS8930FClzwcZ8t0wKoydCQw2l0Qs6e +J3+hbocpq2WNwb2b+0CM1oki44ZkWsF/4FVQToESQEBLgmbBPFTI/In9CSJn56u/7GAPS2hkCLfp +Li+kYzA0HPP+QCAZdQYEhCADEnZlkTxH1gYpcJizQJ5sw2u5U7gJRqRAzBwDQloGcKeXXnyDTyLc +dSABRch3lZKF+FIMYPnakvow1f2ncqnJGgydBuQp6HTDiZuKcNIQJ620hM/QfkKC9ieKHDh4Ch6P +m1x32dwwrc2SgK/u622LFChkSpwMRi6q14YwbgL3ixOnRUMsM4hhKG8gbxvFjDQK7HJr0LDgBoy3 +5u2x9GM3YYF9h2GuXsj1HYR/YZmoWa5CjG87qQv3o7miSxuL7UUyHcAfbwEGo2sPkkx1+gKTLL9j +kNCDHvZB9yaLWZF5XG6SLCQFpul34i9NBw9LSs/GHX2kaOoIJopZxqN3JQgIbTcegTihJoCgXIZK +e/1dsHunOLBwufvA85qvjl9ed4k73pXgsZ/+pTq7q8pY4WqlvGgsFLhaXfuNShcmF2dbvWGoN5Qx +SihzBUGk+PDxs0BCcC51E28fN/WG4RGbe+fkfQzqoNfuJVdrdsQugAhqRWSUo/DxHPlwZB87uT0T +ewSQRzHMnkUxkDSf/B44+xYKxjicbzNMo7VVBn7g9ddfTXoSoy6SX381uGeUFjH6xH7Y8gTtyLSR +L3qnbbqUMk7J13A6UVIxa3jHtilGrNAp/NNMdt3jdOLHvDcmo4Hfad6JG83ngOgBUXY+/RViVaXT +W7dxklJOHtA4PEQ9Z8Jszhz04+NB2o8ypqTAY3k27o2E1NUzWJiQ4/pRdzraLzo1qd+eeNR8ilh1 +UTnQW+jNDpC3Le7u/u2W/V5L/W/SWY8E5M1m0EPAB87B7E7+/58JKyuGppXVqKX1ldyv5w2wB6jD +HW7OHjekOzRvZi2MM8Fyp8RTFNCnYkNb0pTKw40JgDJnP6MHDi6j3th8U5clb0+SnBeyPMT9urHA +ahzjaVCRTxfM0XtZISa22YxSo07tRt6nOkOd7LQzCRs/tV9kV7lJkcjsNimhL2iVYfj9hx/Owi4D +6GGwUz84dx0NlzzcTiHcRzBtqIkTPqYPU+gxXX6/VLVdZZ+gZsvYJCA12bqE7eQdTdzavwb3ZCC8 +/UHeh8WIcLaSs5uJpL1lZFPs6uRg3+BrxMRuOfs1PipeUKESzGSW1kgrdvSwwmxRZzNKx1cS7Lku +B8XyENox5nTTIo2XYkid55jq0NxI2ZDbuNTeTlHmWIAo6mR+tEzmQv5WxymGkXKxAFxwr0S/inh4 +yniIt7zpzYVpSs7qMqm2QIJY5XqrifbHnYbTLU906CHJuwpMQNwxPxYfcdr4ngk3N+QywaifYMdJ +YpyHHcxeIHIXPYf3WT7BUSdUxzlmpLrbwPQ4aI+QA4ABAIX5D0Y6U+S/kfTK3c+iNXeJilrSI6Ub +2ebkcSCU4Qgja/5NP31GdHlrB5bL3Vgu92O5bGO57MVy6WO53I+lKxK4sDZJYiShL1HSzqL3FmS4 +OQ4e5iyerbgd1vdhHR9AFIUJ6IxMcZmrl0nh7SQCQmrb2d+kh02BRcKFg2XOKVcNErkf90x08GgK +lJ3OVK6hO/NUjM+2q8jE73sURVQONKXuLG/zuIojTy6WaT4FsbXojhsAY9GuN+HcXHY7mXI2sWWp +Bpf/9en7D++xOYIamN106oaLiIYFpzJ8GpdL1ZWmJtgogB2ppV/3Qd00wIMHZnJ4lAP+7y0VFCDj +iA1tiOeiAA+Ayn5sM7c4Jgxbz3UVjX7OTM57GydikFWDZlI7iHR6efn29NPpgFJMg/8duAJjaOtL +h4uPaWEbdP03t7mlOPYBoda5lMb4uXPyaN1wxP021oBtub3PrlsPXjzEYPeGpf4s/62UgiUBQkU6 +2fgYQj04+PlDYUKHPoYRO9Vh7k4OOyv2nSN7joviiH5fmrs9gL+3hjHGBAigXaihiQyaYKql9K15 +3UNRB+gDfb0/HIK1Q692JONT1E6ixwF0KGub7Xb/vH0BNnpKVq/Pvjt/f3H++vL00/eOC4iu3IeP +Ry/E2Q+fBZUjoAFjnyjGnfgKC1/AsLiHWcQ8h381pjfmdcVJSej19uJC7wys8TgD1reizYngOVfN +WGico+Gsp32oy10Qo1QHSM65EaoOoXMlGC+t+cyCynUNLB1HmaKzWuvQS58HMueGaBs1AumDxi4p +GARXNMErqlSuTFRY8o6TPkvTg5S20bYOIaUcVGd32tlvMdl8LzFHneFJ01kr+qvQxTW8jlSRJhDJ +vQqtLOluWI3RMI5+aDdUGa8+Deh0h5F1Q571TizQar0KeW66/6hhtN9qwLBhsLcw70xSNQLV6GIt +lQixEe8chPIOvtql12ugYMFwY6nCRTRMl8DsYwiuxSqBAAJ4cgXWF+MEgNBaCT8BfexkB2SOxQDh +m/X88O+hJojf+pdfeppXZXr4D1FAFCS4ciXsIabb+C0EPpGMxNmHd6OQkaNKUPH3GkvAwSGhLJ8j +7VQuwzu2k6GS6UKXM/j6AF9oP4Fet7qXsih1937XOEQJeKKG5DU8UYZ+IVYXWdhjnMqoBRqr2y1m +eErM3fY2nwPxcSXTVBdEn7+9OAPfEQvuUYJ4n+cMhuN8CW7Z6lovPsXWAoUbuvC6RDYu0YWlTf15 +5DXrzcyiyFFvrw7ArhNlP7u9OqnOMk6Ui/YQp82wnJLzCLkZlsOsLHN3txnS2W1GdEfJYcaYXJZU +NelzBnA0PY05MIKICYv6TbKZ9y6TrDJlcmkyA20KihfU6hhEBUmMJ9eI//KM0715qcyBF3hYbMtk +uaowpQ6dIyq2x+Y/nH6+OH9P1esvXja+dw+LjikeGHPpwgnWpWHOA764tWbIW5NJH+fqVwgDdRD8 +ab/imogTHqDTj9OL+Kf9ik8cnTjxIM8A1FRdtIUEwwCnW5/0NBLBuNpoGD9u3VmDmQ+GMpJ4wEGX +F7jz6/KjbdkyKJT9MS8fsVexKDQNh6azWwfV/ug5LgrcXJkP+xvB2z4JM58pdL3pvNlVceV+OrKI +hx8Bo25rfwxTk9RpqqfjMNsubqHgVlvaXzInY+q0m2UoykDEodt55DJZvyrWzZkDvdrdDjDxjUbX +SGKvQh/8kg20n+FhYondiVZMRzo7QaYA8xlSHxGpwZNCuwAKhEpOh47kjkdPX3hzdGzC/XPUugss +5PegCHUBKB0syEvgRPjyG7uP/IrQQlV6LELHX8lkltvqJPxsVuhbPvfn2CsDlMpEsSvjbCmHDGts +YH7pE3tHIpa0rccxV0mrWkJzN3iodzsYvCsW/bsnBrMWH3Ta3chtWxv51MEGvccPfAhlvAHtXtTV +kNdq52YBNtdbsMMQkyS/hTvodQ96Ghb6Xb/17OHgh4ll3Etrr1pHW0L7QvuVsxICpkrRZoljhY2H +6BrmxgaeNFZ4YJ/qihH7u+e8kFPl6sJlFFyo3gwHukEr1B/wyRU+uZdQZXRzsEK/m8tbmebgFkHE +hYXvv9rC91FkUx29NUF/BoKX28ttP3r0pkHu2BTno+OkCljIKJPVEWLUm5C5B7kGH1z2X3TQEGc3 +5Me++fl8LN68/xH+fy0/QOSD59fG4h+AiXiTlxAB8hlKOtyOpf0Vh3Z5rfCQG0GjzQS+BwBdqkuP +2rhxoc8c+IcNrBYTWGdZrvnyCUCR50jnihsbbirp4bc56tN1Fo0j17c0A/0SybD7AAQeGjjSLaNV +tU5RnTupjGZNrwYX52/O3n88i6o75Hbzc+CkOvwqHZyR3sgtcdNqLOyTWY1Prh2/9nuZFj1urY4M +zWEKjAxFCMFDYaNBvtsgthFAXGJ4L4rtPJ9F2BJ4n89vVRvwc0dOEHivHfaMIMIajvRWV+Ns42Og +hvilrZcG0JD66DlRT0IonuJBIn4cDfot5VhQ/hn+PL3ZzN30tT4RQhNsY9rMeuh3t6pxxXTW8Fxm +ItRO7EqYc4JpEqv1dOaeH/uQCX07BSg92o+Qi7hOKyEzEGEKxumaAND97pEvlhPmFrY4dA6K0inp +Jt4qpyImVmKAow7opDNunFBmD2LlH+IbthB4Fk3UfKgVoBOiFOHkTldVz1Ysxxy0EAF7CgQ2Sfby +RdghMg/KkeyscTVhnujYMUZLWen584Ph6Op5Y+wpezzzDnzOCrCDLqccgA4tnj59OhD/cb9/wqhE +aZ7fgOMEsPvCVnFBr3d4FnpydrW6vrd5EwFLzlbyCh5cU5bbPq8zSiHu6UoLIu1fAyPEtQktP5r2 +LUvNybWSN4S5BW8saRPyU5bQHTSYApKocvVVPpgeMgJFLAm6IYzVLElCTifAemzzGs9qYTpQ84u8 +A45PEMwY3+JOFgfDK/QBqbDSco9F50QMCPCACp14NDrsSqeVAM/J5VajOTnPkqo5Z/DM3eTUh7or +e7WM5isRb1AyzDxaxHCO/Xms2vjA+V4W9WKKfHblJgZbs+TX9+EOrA2Sli8WBlN4aBZplstyZowq +rlgySyoHjGmHcLgz3ahDBigKelAagIYnwzC3Em3ffmHXxcX0A+33HpqRdJlPZW8p4iROnLWq3aKo +GZ/SRZaQlm/NlxGM8p7Sz9of8MYSX+jkJxaZe5cpuMfd6kxfksB1Fs3NCQCHLuaxCtKyo6cjnNug +LHxmWh1uNHcqODXxGEQTbrdJWdVxOtEH+SfouU3sBrjG0x6T2nsA0Pos4Pbn4BAf6pJu8B1MNQzS +EysyTcn+iVjoJELkHj3yT+kUOfp6Lzw9jqnpZ3wRgKPBseWX5vDKQ1S+OULROX3gYjmm2qNw1K6o +7LTCfQ5TIm+d7HYc8KghW7B8h31WbPFOHpjWk3lE/0LfkaPLFHBj6tGDp8mUBgv7Co/v76srATH+ +W4OgLBI5P3yiEDvG+Y9C1VAMddxA4REzDOnuCQL5ZWsnzykv5NrfXds3HaBff7UPrKuCewufac/E +V8v6aJtbidxs2uDnwHrEK3C6UW/MzWFkrZb43CbqEDaI9qy5qVdpH5mB1w+f8p4JP2BHNMTBNHe4 +8rqPVha/faRqGgW/i0q6Vz+t0AnGUtFVzG9QmdXFsQ0V+TBfRmn2oVtAhJ/qpre0Psa7j4jRq5tw +3/S5/7656xaBnbnZP+vM3T9C49JA993NL300YAddE+JBVbkWo8mfI7pjvbXbn6LSn4W9hZEzVcSD +GrWxZsl1PHO/Y4HBIV/i6B6HClyQZtVbc+qcD2uzc5eTu9zMm6n43J6QpB3yuWYvNud0pc+Ea64m +crlUkxhvhJqQD0j1AR3jbryKd3QbkIzV1jgDeOcCgDCsoiu53GJNWHXwM/lmSt5edw7XCxqaitCc +qjaVzDm2154HgIs4pqf+JnPEZWmDVGI2RtVlUYKzNtD3F/K+b1+pXAPUxJfrWN0Y1E2Psb7ODofg +YgNzhIozCewAetQBQvDJCudmF67znEzsO+CXZ81R0WRsGUJm9VqWcdXckuDvLyXiW2cEOjiHC+xE +kI3YtTjFRSyx/OEghTGc/f6ldo4832/P+dCRVWkPZyvqoZMTjzl66ki54ebkzt6S5N7OMadrMSle +5Ns1hG3WcJ+9GQKWwlz5Q4pQh3T8Vl9DwvfTcc4Jq+ocPgK5d4+t+NWNVmexw2DRcJ65iqF77wSe +fCRD23edVIcLuhdH+czQjO/rDcssnd2EHY0tFU+4Ra/iaUYbNYEOFiLdE+j4xaaPDHQ8+A8MdPTl +X2BNND5aH/SWn94TEbGacG/SahgB+kyASLhh0rqHydjDoVvMCeFKcjewl1GyznROiBgzgRzZvWKF +QPCNWcqtfPNutDHj9kUivnTR4+8uPrw+vSBaTC5P3/zn6Xe0zY9ZvZbNenAkmOWHTO1Dr6zQjQr1 +1mzf4A22PVfTcW28htB539nW6oHQfw6ib0Hbisx9vatDp5682wkQ3z/tFtRdKrsXcsf50rXL7oZs +q/4v0E+5WMv8cvbWzCOTU2ZxaBLG5n2T49My2kmB7Fo4p2yqq060U6ovM9uRnhnZ4j1aAUztIX/Z +zJ6pxLb5I3ZU2leEU8UhnmIxNwGAFM6kcyEV3UXFoCr/LvISlF2MOxTsMI7tvZ7UjrOYyl5Yi7sU +MxkZgnjHSAbd+bnCPpfpDioEASs8fd0SI2L0n877272yJ0pcHdKBtUNUNtf2F66ZdnJ/TnBHrLL3 +liiz5Y27AdB4UafuLpft0+lAzh8lTfOFUyENmu8I6NyIpwL2Rp+JFeJ0K0KIEvVWDhZdER31nUMO +8mg3HewNrZ6Jw13HmdzjPEI8391w3joxpHu84B7qnh6qNodGHAuMdT+7zimJbwkyZ90FXVTiOR+4 +26Ovx4Svt1fPj23KFvkdX7vXYCDtB45hv2pOBuy9GsvpTbxSjqn+A4uNRm3w1wOHNRdid4DTqXPe +EQSZ7TiGNPDe99dGmB7enb2DNqKW745hQmL4RI1oUk5luMbdPhl1JtuorC4MLnK/H0ZH+wEohNLv +m+CHb2MB9fxMx4PTmu4TtA4nHg115IEKHXxe4B7G62uwa3eno2kP6k4l//agADdo855ebxBr9hq4 +lZfo2G0L2jNveGCH7edDfv39nz+gf7ckxnZ/sc+htq1e9h4sYScWi6hw87pFIfM4AusCCnNIahrr +b42E4+H9howONzVTQ65Ah4/qsvCuUAosyImdaMtvjUHwf71Zz9M= +""".decode("base64").decode("zlib") + +##file ez_setup.py +EZ_SETUP_PY = """ +eJzNWmuP28YV/a5fwShYSIJlLt8PGXKRJi5gIEiDPAoU9lY7zxVrilRJyhu1yH/vmeFDJLVU2iIf +ysDZXXJ45z7PuXekL784nqt9ns3m8/kf87wqq4IcjVJUp2OV52lpJFlZkTQlVYJFs/fSOOcn45lk +lVHlxqkUw7XqaWEcCftEnsSirB+ax/Pa+PuprLCApScujGqflDOZpEK9Uu0hhByEwZNCsCovzsZz +Uu2NpFobJOMG4Vy/oDZUa6v8aOSy3qmVv9nMZgYuWeQHQ/xzp+8byeGYF5XScnfRUq8b3lquriwr +xD9OUMcgRnkULJEJMz6LooQT1N6XV9fqd6zi+XOW5oTPDklR5MXayAvtHZIZJK1EkZFKdIsulq71 +pgyreG6UuUHPRnk6HtNzkj3NlLHkeCzyY5Go1/OjCoL2w+Pj2ILHR3M2+0m5SfuV6Y2VRGEUJ/xe +KlNYkRy1eU1UtZbHp4LwfhxNlQyzxnnluZx98+5PX/387U+7v7z74cf3f/7O2BpzywyYbc+7Rz// +8K3yq3q0r6rj5v7+eD4mZp1cZl483TdJUd7flff4r9vtfm7cqV3Mxr8fNu7DbHbg/o6TikDgv3TE +Fpc3XmNzar8+nh3TNcXT02JjLKLIcRiRsWU7vsUjL6JxHNBQOj4LRMDIYn1DitdKoWFMIuJZrvB8 +y5GURr4QrrRjzw5dn9EJKc5QFz/ww9CPeUQCHknmeVZokZhboRM6PI5vS+l08WAAibgdxNyhIghs +SVyHBMJ3hCcjZ8oid6gLpa7NLMlCN45J4PphHIc+IzyWPrECO7oppdPFjUjEcJcHgnHHcbxQ2mEs +Q06CIJaETUjxhroEjuX5xPEE94QtKAtDKSw3JsQTgQyFf1PKxS+MOsSOfOgRccKkpA63oY/lUpfa +zHtZChvlC3WlQ33fjXmAuIYy9AgPY9uBIBJb0YRFbJwvsIcLDk8GIXe4I6WwPcuK3cCTDvEmIs1s +a6gMgzscQn3uEsvxA88PEB9mu5FlkdCKrdtiOm38kONFxCimkRWGDvNj4rsk8lyX+JxPeqYW47di +uPACwiL4Mg5ZFPt+6AhfRD7SUdCIhbfFBJ02kUAlESGtAA5ymAg824M0B0bC4RPRBqgMfeNQIghq +2HY53kcZOZEIKfGpT6ARF7fFXCLFAzeWMbUgzGOe48Wh5XpcMEcwizmTkbKHvgk8FnvSpTIkIbLQ +FSxyhUUdhDv0YurcFtP5hkoSO7ZlUY4wcdQEJAnOXQQ+8KwomBAzwhlpWYFHZUCIQ0NuQS141kNi +W5EdMmcqUCOcCezAjh0hmOtLLxSImh0wHhDbgVQnnJIywhlpRwAogC+XSBXi+DGLIUXaPKRhJCfQ +io1wRliCh14QOSyOIyppCE9HFrLXQsxDeyrY7jBIhAppB5JzGOb7vu1Fns1C4BePozjwp6SM0Ipa +NLZdmzBCXceCM4BzofQ85gMoQlvelNJZhCSR2DPgnqTSRUVRGXsBs+AqoJ6YShhvaFGk0BrA7zqM +05iFDmXSA3w5gXQiIqfQyh9aJEQseWRBHRQkMla6ApjuhwAMHtnBVKT9oUVEAqu4BKvYoWULAeeG +ICefMhAeCaZQxh/FKOKuDAAIHmOERKHtIXG4G1LGuMt9PiElGFqEgonA8pFtB2CiKPJCByLAmL4X +o7SngDMYsRvzAyL9kMK/6B5QDYEFQzzPRYH5ZAobgqFF1JERCX0HZA/YpS5I2kKoufAlWgnfnZAS +juDOQoxkTDhzSWD7wrdtH2WIliICBE7mSzhiAhLJ2PfAAhxYbkkahEza0kEY8MiZqoBwaJEHjiXA +W4mWAQXouZ5t25KLyLXxL5zSJRp1Q5bqhZwYHok5+EOlIAA8ci3VWFm3pXQWMUrcCNiAnsOLXGap +nEW2wdkMzDJJA9HQIjt07BAgh0DHnNm+5ccW8SPqCtR57E9FOh5aBN2ZZ6GZsZWHqRcHwmOSCiuC +rcyainQ8QgYkGRo7cKsbRTwAOhEhrADgxQLXm+rvGimdRVIgtK7wiR1S22EIE/M9m4bgXjC/mGKS +eMhHjKBsbKlQkziCA5js2AWzhdSPHfQ4kPLrrDcRYLwpZ1Vx3tQD156U+zSh7byF3n0mfmECo8Z7 +feedGomatXjYXzfjQhq7zyRN0O2LHW4todMuwzy4NtQAsNpoAxJptPfVzNiOB/VDdfEEs0WFcUGJ +0C+ae/FLfRfzXbsMcpqVX2w7KR9a0Q8XeerC3IVp8O1bNZ2UFRcF5rrlYIW65sqkxoJmPrzDFEYw +hvEvDGP5fV6WCU174x9GOvx9+MNqfiXsrjNz8Gg1+EvpI35JqqVT3y8Q3CLT7qodOhoO9aJmvNqO +hrl1p9aOklJsewPdGpPiDqPqNi9NdirwW51M3QtcpOS8tf1ZEySMjV+dqvwAPzBMl2eMohm/78zu +nRSouf5APiGWGJ4/w1VEOQjOU6YdSbWvx/nHRulHo9znp5SraZbUvu5Layfz7HSgojCqPakMDMKd +YC1LTcCZ8q4hMfV2Sp0yrl8RxuPAEY+GGmmXz/uE7dvdBbRWRxO1PGNxv1iZULL20qPaUsnpHWPs +RTE4IHlOMHPTSyYIvkZG1gmuVc5y+CMtBOHni/rY473sqafdrrdrzia0mKrRUkujQqvSOESfWLA8 +42Xtm1aNI0GiKKfCI6qskipB6LKn3nlGHfHG/jwT+jyhPhvhtV5wap4qH754PqK0bA4bRCNMn+UU ++Qk7iVqVus6IcRBlSZ5EfcBxKbrHR50vBUlKYfx4LitxePeL8ldWByIzSIV79ckGoQpalPEqBZUx +9amH2Wao/vlMyl2NQrB/ayyOn552hSjzU8FEuVAIo7Y/5PyUilKdkvQAdPy4rglUHUceNG5bri5I +olJueymaXl02HhuVYFt261GhXTCgLRITnhVFtbTWapMeyDVA3e30pn+6Q9tjvl0TmJ0G5q2SUQcI +wD6WNXCQfvgCwncvtYDUd0jz6HqHgWizSa7l/KLx2+38VeOq1ZtGdl+FoYC/1Cu/zjOZJqyCazZ9 +9O9H/r9F+/lP+0v2T+T78u32rlx1tdzWsD7K/JgNAX/OSLaoVEl1JQLMUMd3ukaa4zpVLacsQyqb +xvepQIa0y6/kqRpSpQwAErCl1VAmRQlHnEpVDgtIOLehN17/3FN+YY7kfcw+ZsuvT0UBaYDzWsBd +MeKtFVjrksvCJMVT+cF6uM1ZOn5pKYYxQKIPw7nuV9qHUZ0+qFe+hLUayfNPA1Ev5eB01nyToCQS +elIM/l1e/SkHL9zO55ppXyrr35tuVfGjPAc8+80LpKrLmFxIwUhzVrckGj5rG5KqPiHWLcb/KcnW +EK0+A2hJ9rc4Vt1Tu14TbI37jxfOnODFvGbDlgwVqbDqRNKLEQ3JDImk/YihANdQB9m6RwqldZ61 +/erW6IHZ67sSvfddqVrveb9wRkfgda5Cbp87lM+MV8MWsSSfBbTfoiWvSeHveZItWwppl9biyoIp +cbpP/g5s3rbWCqra11GkZVUua7GrjSqwrz7niUqgoyCKL1t1yq4+BniuLp2KHIKUN8rWS2n+NFil +mnEVl+G76sJK85kU2VL5+fXvd9WfkDTA2iB5+VKW3+mUUJ+cLMVnkak/YM4Rys72Ij2qvu99nW29 +3qNLFTQnKv/VZztL5YoZKGFtAF1m6tYB5ZwJOBKvoA5V5wuEFs8KjwnG2bLUb/c5QCO4OWu2BHQ3 +Pc5lR6jM22w2Z7MlQExslIe1mANhe9Vu8VzUxLRHeKFE9ZwXn5pN18axZpecVqT5XE4hhUaJu3I2 +UygCDzDdtesFkHypxKZyCtGwVd8Ac/V7RhFJsb5KmR7oXjVUOsvWqpquXkNHoZO1StRk2TROqRDH +N/WP5aj3GmZnC8OaF8u53mLEe7rkGnww8TM/imx5texL4wc0/ffPRVIBfBBj+Fe328DwT2v10eCz +ip5qF1ihyhDQyPKiOOnkSMVImI57Pz1UF14Jvb7FxPZqPmabGsJhgKkGkuVqqHGNItqaGivW82c6 +hzvxwNR21GN49xKGQTUUbsYQgA02eheW5qVYrq4goqw2Wmj/ecNmLWhBwVT90sLW7D+5FH8fkOlL +NCyf11OMfeHc97c+NNUc+w6tVbOqJYiXmunRh9G3Oul6eOiw+kriZc3tAUNP6tZ1SzYcIwZThI6Z +Ko3e7MDywwGGmoMesj3OIc1A1l5NjLSLU3CB9vPqlTpteVjpNH0Wi0KntTAUjf9mqihLlZ9HXKXU +vuYQLDplmAA/LTuzhg1n0m/czd2u8dZuZ2wxElqmZdqL/3pE+CsAXoOrmotpmacCtToxGrdNP8ik +buyvGvpCHPLPGm91JOrvPOgJGMxRAXrT38DdUac+2ZI3RfWPYbPSm7z63c71MPgfDHT4eaP/Hk1t +m+ls/59T8laZdYJ/U8pVNr9Ud225PQxndu1sa4XEh1WK/RE4pjNFPXk5Q9Uuv5MDOvW15jemsDrN +5z9etUXzdYsoc4DgkyaiQh3/IgnRJF0Sev6CvMXyB7RT8/bbOebxPJw+5/X3bq6/mmKuFs2x5rHj +p3aEKS/w/LN+aqgSoackrV7X58QQ+aSGu7NC5H4WF838o3qt9ly5E3txiO65L921+lOtWF66ai2k +5UJNmouCLi7PumNm9e5Dc0QtW1J98ZhadmRXj4A1RX+Yqz/uig3+rYEVGB+aTrNuyNqNTJDvoVyu +HrqXzRIWd9R5VEPFfF5PCjVJ9x2DCGCErNqJQX+faNveNZ9EVRetur/sT+c73THsdk3Wdy5pZKwN +7ZY3TUvUOuDN2NgDqTANbqGnWQpSsP1y/jHrfx/oY7b88LdfH16tfp3r9mTVH2P02z0segGxQeT6 +G1mpIRQKfDG/LtIWEWtV8f8PGy3Y1K330l49YAzTjnyln9YPMbri0ebhZfMXz01OyKY96lTvOWAG +M1o/breL3U4V7G636D4FSZVEqKlr+K2j6bD9+4P9gHdev4az6lLp0VevdrrlzubhJV7UGHGRqRbV +178BYnMUkw== +""".decode("base64").decode("zlib") + +##file distribute_setup.py +DISTRIBUTE_SETUP_PY = """ +eJztG2tz2zbyu34FTh4PqYSi7TT3GM+pM2nj9DzNJZnYaT8kHhoiIYk1X+XDsvrrb3cBkCAJyc61 +dzM3c7qrIxGLxWLfuwCP/lTs6k2eTabT6Xd5Xld1yQsWxfBvvGxqweKsqnmS8DoGoMnliu3yhm15 +VrM6Z00lWCXqpqjzPKkAFkdLVvDwjq+FU8lBv9h57JemqgEgTJpIsHoTV5NVnCB6+AFIeCpg1VKE +dV7u2DauNyyuPcaziPEoogm4IMLWecHylVxJ4z8/n0wYfFZlnhrUBzTO4rTIyxqpDTpqCb7/yJ2N +dliKXxsgi3FWFSKMV3HI7kVZATOQhm6qh98BKsq3WZLzaJLGZZmXHstL4hLPGE9qUWYceKqBuh17 +tGgIUFHOqpwtd6xqiiLZxdl6gpvmRVHmRRnj9LxAYRA/bm+HO7i99SeTa2QX8TekhRGjYGUD3yvc +SljGBW1PSZeoLNYlj0x5+qgUE8W8vNLfql37tY5Tob+vspTX4aYdEmmBFLS/eUk/Wwk1dYwqI0eT +fD2Z1OXuvJNiFaP2yeFPVxcfg6vL64uJeAgFkH5Jzy+QxXJKC8EW7F2eCQObJrtZAgtDUVVSVSKx +YoFU/iBMI/cZL9fVTE7BD/4EZC5s1xcPImxqvkyEN2PPaaiFK4FfZWag90PgqEvY2GLBTid7iT4C +RQfmg2hAihFbgRQkQeyF/80fSuQR+7XJa1AmfNykIquB9StYPgNd7MDgEWIqwNyBmBTJdwDmmxdO +t6QmCxEK3OasP6bwOPA/MG4YHw8bbHOmx9XUYccIOIJTMMMhtenPHQXEOviiVqxuhtLJK78qOFid +C98+BD+/urz22IBp7Jkps9cXb159ensd/HTx8ery/TtYb3rq/8U/ezlthz59fIuPN3VdnJ+cFLsi +9qWo/LxcnygnWJ1U4KhCcRKddH7pZDq5urj+9OH6/fu3V8GbVz9evB4sFJ6dTScm0Icffwgu3715 +j+PT6ZfJP0XNI17z+U/SHZ2zM/908g786LlhwpN29LiaXDVpysEq2AN8Jv/IUzEvgEL6PXnVAOWl ++X0uUh4n8snbOBRZpUBfC+lACC8+AIJAgvt2NJlMSI2Vr3HBEyzh35m2AfEAMSck5ST3LodpsE4L +cJGwZe1N/PQuwu/gqXEc3Ia/5WXmOhcdEtCB48rx1GQJmCdRsI0AEYh/LepwGykMrZcgKLDdDcxx +zakExYkI6cL8vBBZu4sWJlD7UFvsTfbDJK8EhpfOINe5IhY33QaCFgD8idw6EFXweuP/AvCKMA8f +JqBNBq2fT29m441ILN1Ax7B3+ZZt8/LO5JiGNqhUQsMwNMZx2Q6y161uOzPTnWR53XNgjo7YsJyj +kDsDD9ItcAU6CqEf8G/BZbFtmcPXqCm1rpjJiW8sPMAiBEEL9LwsBRcNWs/4Mr8XetIqzgCPTRWk +5sy0Ei+bGB6I9dqF/zytrPAlD5B1/9fp/wGdJhlSLMwYSNGC6LsWwlBshO0EIeXdcWqfjs9/xb9L +9P2oNvRojr/gT2kgeqIayh3IqKa1qxRVk9R95YGlJLCyQc1x8QBLVzTcrVLyGFLUy/eUmrjO93mT +RDSLOCVtZ71GW1FWEAHRKod1VTrstVltsOSV0BszHkci4Tu1KrJyqAYK3unC5Py4mhe748iH/yPv +rIkEfI5ZRwUGdfUDIs4qBx2yPDy7mT2dPcosgOB2L0bGvWf/+2gdfPZwqdOrRxwOAVLOhuSDPxRl +7Z56rJO/yn77dY+R5C911acDdEDp94JMQ8p7UGOoHS8GKdKAAwsjTbJyQ+5ggSrelBYmLM7+7IFw +ghW/E4vrshGtd005mXjVQGG2peSZdJQvqzxBQ0VeTLolDE0DEPzXNbm35VUguSTQmzrF3ToAk6Ks +raIkFvmb5lGTiAorpS/tbpyOK0PAsSfu/TBE01uvDyCVc8MrXtel2wMEQwkiI+hak3CcrThoz8Jp +qF8BD0GUc+hqlxZiX1nTzpS59+/xFvuZ12OGr8p0d9qx5NvF9LlabWYha7iLPj6VNn+fZ6skDuv+ +0gK0RNYOIXkTdwb+ZCg4U6vGvMfpEOogI/G3JRS67ghiek2enbYVmT0Hozfjfrs4hoIFan0UNL+H +dJ0qmS/ZdIwPWykhz5wa601l6oB5u8E2AfVXVFsAvpVNhtHFZx8SAeKx4tOtA87SvERSQ0zRNKGr +uKxqD0wT0FinO4B4p10Om38y9uX4Fvgv2ZfM/b4pS1gl2UnE7LicAfKe/xc+VnGYOYxVWQotrt0X +/TGRVBb7AA1kA5Mz7PvzwE/c4BSMzNTYye/2FbNfYw1PiiH7LMaq1202A6u+y+s3eZNFv9toHyXT +RuIo1TnkroKwFLwWQ28V4ObIAtssCsPVgSj9e2MWfSyBS8Ur5YWhHn7dtfhac6W42jYSwfaSPKTS +hdqcivFxLTt3GVTyMim8VbTfsmpDmdkS25H3PIl72LXlZU26FCVYNCdTbr0C4cL2HyW91DFp+5Cg +BTRFsNseP24Z9jhc8BHhRq8uskiGTezRcuacODOf3Uqe3OKKvdwf/IsohU4h236XXkVEvtwjcbCd +rvZAHdYwzyLqdRYcA/1SrNDdYFszrBuedB1X2l+NlVTtazH8RxKGXiwioTYlVMFLikIC29yq31wm +WFZNDGu0xkoDxQvb3Hr9W4DqgK2fXnLsYxm2/g0doJK+bGqXvVwVBcmet1hk/sfvBbB0TwquQVV2 +WYaIDvalWquGtQ7yZol2do48f3Wfx6jVBVpu1JLTZTijkN4WL631kI+vph5uqe+yJVGKS+5o+Ih9 +FDw6odjKMMBAcgaksyWY3J2HHfYtKiFGQ+laQJPDvCzBXZD1DZDBbkmrtb3EeNZRC4LXKqw/2JTD +BKEMQR94NMioJBuJaMksj023y+kISKUFiKwbG/lMJQlYy5JiAAG6RB/AA35LuINFTfiuc0oShr0k +ZAlKxqoSBHddgfda5g/uqslC9GbKCdKwOU7tVY89e3a3nR3IimXzv6tP1HRtGK+1Z7mSzw8lzENY +zJmhkLYly0jtfZzLVtKozW5+Cl5Vo4HhSj6uA4IeP28XeQKOFhYw7Z9X4LELlS5YJD0hsekmvOEA +8OR8fjhvvwyV7miN6In+UW1Wy4zpPswgqwisSZ0d0lR6U2+VohNVAfoGF83AA3cBHiCru5D/M8U2 +Ht41BXmLlUysRSZ3BJFdByTyluDbAoVDewREPDO9BnBjDLvQS3ccOgIfh9N2mnmWntarPoTZLlW7 +7rShm/UBobEU8PUEyCYxNgTkDIhimc+ZmwBD2zq2YKncmuadPRNc2fwQ6fbEEAOsZ3oXY0T7JjxU +1myzCk27uCHvDR4rVKM9SwSZ2OrIjE8hyjr++7ev/eMKj7TwdNTHP6PO7kdEJ4MbBpJc9hQliRqn +avJibYs/Xduo2oB+2BKb5veQLINpBGaH3C0SHooNKLvQnepBGI8r7DWOwfrUf8ruIBD2mu+QeKk9 +GHP369cK646e/8F0VF8IMBrBdlKAanXa7Kt/XZzrmf2YZ9gxnGNxMHT3evGRt1yC9O9Mtqz65VHH +ga5DSim8eWhurjtgwGSkBSAn1AKRCHkkmzc1Jr3oPbZ819mcrnOGCZvBHo9J1VfkDySq5huc6Jy5 +shwgO+jBSlfViyCjSdIfqhkes5xXqs624ujIt3fcAFPgQxflsT41VmU6AsxblojaqRgqfut8h/xs +FU3xG3XNNVt43qD5p1r4eBMBvxrc0xgOyUPB9I7Dhn1mBTKodk1vM8Iyjuk2vQSnKhv3wFZNrOLE +nja6c9Vd5ImMNoEz2EnfH+/zNUPvvA9O+2q+gnS6PSLG9RVTjACGIO2NlbZt3dpIx3ssVwADnoqB +/09TICLIl7+43YGjr3vdBZSEUHfJyPZYl6Hn3CTdXzOl53JNckElLcXUY27YImzNHN1YGLsg4tTu +nngEJqcilfvkUxNZEXYbVZHYsCJ1aFN1fhAW+NLTOXffVQFP0vYVTm9Aysj/aV6OHaDV80jwA35n +6MO/R/nLSD6a1aVErYM8nBZZ3ScB7E+RJKvqNifazypDRj5McIZJyWAr9cbgaLcV9fixrfTIMDpl +Q3k9vr/HTGzoaR4Bn/Xy+TbodTndkQolEIHCO1SlGH/Z8uu9Cioz4IsffpijCDGEgDjl969Q0HiU +wh6Ms/tiwlPjquHbu9i6J9kH4tO7lm/9RwdZMXvEtB/l3H/FpgxW9MoOpS32ykMNav2Sfco2oo2i +2Xeyj7k3nFlO5hRmatYGRSlW8YOrPX0XXNogR6FBHUpC/X1vnPcbe8Pf6kKdBvysv0CUjMSDETaf +n53ftFkUDXr62p3ImlSUXF7IM3snCCpvrMp8az4vYa/yHoTcxDBBh00ADh/WLOsK28yoxAsMIxKP +pTFT54WSDM0skrh2HVxn4cw+zwencwYLNPvMxRSu4RGRpApLQ0mF9cA1Ac2Utwi/lfyx95B65Faf +CfK5hcqvpbSjEZjbVKJ06GihuxyrjgqxjWvt2NhWaWdbDENq5EhVh8p+FXI6UDTOHfX1SJvt7j0Y +P9ShOmJb4YBFhUCCJcgb2S0opHGrJ8qFZEolRIrnDObx6LhLQj+3aC79UkHdO0I2jDdkxCFMTGHy +tvIxa+uf6fsf5XkvJtvgFUtwRr3yxJ64D7SFYj5iWJAbVx5Xce56V4gR37BVaRwkvfpw+QcTPuuK +wCFCUMi+Mpq3ucx3C8ySRBbmdtEcsUjUQt2aw+CNJ/FtBERNjYY5bHsMtxiS5+uhoT6b7zwYRY9c +GrRbt0Msqyhe0KGC9IWokOQL4wcitijz+zgSkXz9IV4pePNFi8poPkTqwl3qdYcauuNoVhz9wGGj +zC4FhQ0Y6g0JBkTyLMR2D3SsrfJGONCygfpjf43SS8PAKqUcK/O6ntqSZRO+yCIVNOjO2J5NZXN5 +m68TXo8OtO/9fTSrVPVkRRrgsHlYS1PFuPC5n6R9GZOFlMMJlCLR3Zd/os71uxFfkYPuTUIPNJ8H +vOnPG7efTd1oj+7QrOl8Wbo/Ous1/H0mhqLtZ/+/V54Deum0MxNGwzzhTRZuuhSuezKMlB/VSG/P +GNrYhmNrC99IkhBU8Os3WiRUERcs5eUdnuXnjNMBLO8mLJvWeNpU7/ybG0wXPjvz0LyRTdkZXrFJ +xFy1AObigd5fgpx5nvIMYnfk3BghTmM8vWn7Adg0MxPMz/03Lm7Y83baROOg+znWl2la7hmXkiuR +rGTjfDH1px5LBV4cqBYYU7qTGXWRmg6CFYQ8ZqRLACVwW7IWf4byipG+R6z3111oQJ+M73rl2wyr +6jSP8K0w6f+x2U8AhSjTuKroNa3uyE4jiUEJqeEFMo8qn93iBpz2Ygi+ogVIV4IIGV2jBkIVB+Ar +TFY7ctATy9SUJ0REiq/c0WUR4CeRTA1AjQd77EqLQWOXO7YWtcLlzvo3KFRCFubFzvwNhRhk/OpG +oGSovE6uARTju2uDJgdAH27avECLZZQP6AGMzclq0lYfsBL5Q4goCqRXOath1f8e+KUjTViPHnWh +peIrgVIVg2P9DtLnBVSgkavW6LsyTdeCuOXjn4OAeJ8M+zYvX/6NcpcwTkF8VDQBfad/PT01krFk +5SvRa5xS+duc4qNAaxWsQu6bJJuGb/b02N+Z+8JjLw0OoY3hfFG6gOHMQzwvZtZyIUwLgvGxSSAB +/e50asg2ROpKzHaAUlLv2o4eRojuxG6hFdDH435QX6TZQQKcmccUNnl1WDMIMje66AG4WgturRZV +l8SBqdyQeQOlM8Z7RNI5oLWtoQXeZ9Do7JykHG6AuE7GCu9sDNjQ+eITAMMN7OwAoCoQTIv9N269 +ShXFyQlwP4Eq+GxcAdON4kF1bbunQMiCaLl2QQmnyrXgm2x44UnocJDymGrue4/tueTXBYLLQ6+7 +kgpc8GqnoLTzO3z9X8X44cttQFxM918weQqoIg8CJDUI1LuURHcbNc/Ob2aTfwH3muVf +""".decode("base64").decode("zlib") + +##file activate.sh +ACTIVATE_SH = """ +eJytVU1v4jAQPW9+xTT0ANVS1GsrDlRFAqmFqmG72m0rY5IJsRRslDiktNr/vuMQ8tFQpNU2B4I9 +H36eeW/SglkgYvBFiLBKYg0LhCRGD1KhA7BjlUQuwkLIHne12HCNNpz5kVrBgsfBmdWCrUrA5VIq +DVEiQWjwRISuDreW5eE+CtodeLeAnhZEGKMGFXqAciMiJVcoNWx4JPgixDjzEj48QVeCfcqmtzfs +cfww+zG4ZfeD2ciGF7gCHaDMPM1jtvuHXAsPfF2rSGeOxV4iDY5GUGb3xVEYv2aj6WQ0vRseAlMY +G5DKsAawwnQUXt2LQOYlzZoYByqhonqoqfxZf4BLD97i4DukgXADCPgGgdOLTK5arYxZB1xnrc9T +EQFcHoZEAa1gSQioo/TPV5FZrDlxJA+NzwF+Ek1UonOzFnKZp6k5mgLBqSkuuAGXS4whJb5xz/xs +wXCHjiVerAk5eh9Kfz1wqOldtVv9dkbscfjgjKeTA8XPrtaNauX5rInOxaHuOReNtpFjo1/OxdFG +5eY9hJ3L3jqcPJbATggXAemDLZX0MNZRYjSDH7C1wMHQh73DyYfTu8a0F9v+6D8W6XNnF1GEIXW/ +JrSKPOtnW1YFat9mrLJkzLbyIlTvYzV0RGXcaTBfVLx7jF2PJ2wyuBsydpm7VSVa4C4Zb6pFO2TR +huypCEPwuQjNftUrNl6GsYZzuFrrLdC9iJjQ3omAPBbcI2lsU77tUD43kw1NPZhTrnZWzuQKLomx +Rd4OXM1ByExVVkmoTwfBJ7Lt10Iq1Kgo23Bmd8Ib1KrGbsbO4Pp2yO4fpnf3s6MnZiwuiJuls1/L +Pu4yUCvhpA+vZaJvWWDTr0yFYYyVnHMqCEq+QniuYX225xmnzRENjbXACF3wkCYNVZ1mBwxoR9Iw +WAo3/36oSOTfgjwEEQKt15e9Xpqm52+oaXxszmnE9GLl65RH2OMmS6+u5acKxDmlPgj2eT5/gQOX +LLK0j1y0Uwbmn438VZkVpqlfNKa/YET/53j+99G8H8tUhr9ZSXs2 +""".decode("base64").decode("zlib") + +##file activate.fish +ACTIVATE_FISH = """ +eJydVm1v4jgQ/s6vmA1wBxUE7X2stJVYlVWR2lK13d6d9laRk0yIr8HmbIe0++tvnIQQB9pbXT5A +Ys/LM55nZtyHx5RrSHiGsMm1gRAh1xhDwU0Kng8hFzMWGb5jBv2E69SDs0TJDdj3MxilxmzPZzP7 +pVPMMl+q9bjXh1eZQ8SEkAZULoAbiLnCyGSvvV6SC7IoBcS4Nw0wjcFbvJDcjiuTswzFDpiIQaHJ +lQAjQUi1YRmUboC2uZJig8J4PaCnT5IaDcgsbm/CjinOwgx1KcUTMEhhTgV4g2B1fRk8Le8fv86v +g7v545UHpZB9rKnp+gXsMhxLunIIpwVQxP/l9c/Hq9Xt1epm4R27bva6AJqN92G4YhbMG2i+LB+u +grv71c3dY7B6WtzfLy9bePbp0taDTXSwJQJszUnnp0y57mvpPcrF7ZODyhswtd59+/jdgw+fwBNS +xLSscksUPIDqwwNmCez3PpxGeyBYg6HE0YdcWBxcKczYzuVJi5Wu915vn5oWePCCoPUZBN5B7IgV +MCi54ZDLG7TUZ0HweXkb3M5vFmSpFm/gthhBx0UrveoPpv9AJ9unIbQYdUoe21bKg2q48sPFGVwu +H+afrxd1qvclaNlRFyh1EQ2sSccEuNAGWQwysfVpz1tPajUqbqJUnEcIJkWo6OXDaodK8ZiLdbmM +L1wb+9H0D+pcyPSrX5u5kgWSygRYXCnJUi/KKcuU4cqsAyTKZBiissLc7NFwizvjxtieKBVCIdWz +fzilzPaYyljZN0cGN1v7NnaIPNCGmVy3GKuJaQ6iVjE1Qfm+36hglErwmnAD8hu0dDy4uICBA8ZV +pQr/q/+O0KFW2kjelu9Dgb9SDBsWV4F4x5CswgS0zBVlk5tDMP5bVtUGpslbm81Lu2sdKq7uNMGh +MVQ4fy9xhogC1lS5guhISa0DlBWv0O8odT6/LP+4WZzDV6FzIkEqC0uolGZSZoMnlpxplmD2euaT +O4hkTpPnbztDccey0bhjDaBIqaWQa0uwEtQEwtyU56i4fq54F9IE3ORR6mKriODM4XOYZwaVYLYz +7SPbKkz4i7VkB6/Ot1upDE3znNqYKpM8raa0Bx8vfvntJ32UENsM4aI6gJL+jJwhxhh3jVIDOcpi +m0r2hmEtS8XXXNBk71QCDXTBNhhPiHX2LtHkrVIlhoEshH/EZgdq53Eirqs5iFKMnkOmqZTtr3Xq +djvPTWZT4S3NT5aVLgurMPUWI07BRVYqkQrmtCKohNY8qu9EdACoT6ki0a66XxVF4f9AQ3W38yO5 +mWmZmIIpnDFrbXakvKWeZhLwhvrbUH8fahhqD0YUcBDJjEBMQwiznE4y5QbHrbhHBOnUAYzb2tVN +jJa65e+eE2Ya30E2GurxUP8ssA6e/wOnvo3V78d3vTcvMB3n7l3iX1JXWqk= +""".decode("base64").decode("zlib") + +##file activate.csh +ACTIVATE_CSH = """ +eJx9U11vmzAUffevOCVRu+UB9pws29Kl0iq1aVWllaZlcgxciiViItsQdb9+xiQp+dh4QOB7Pu49 +XHqY59IgkwVhVRmLmFAZSrGRNkdgykonhFiqSCRW1sJSmJg8wCDT5QrucRCyHn6WFRKhVGmhKwVp +kUpNiS3emup3TY6XIn7DVNQyJUwlrgthJD6n/iCNv72uhCzCpFx9CRkThRQGKe08cWXJ9db/yh/u +pvzl9mn+PLnjj5P5D1yM8QmXlzBkSdXwZ0H/BBc0mEo5FE5qI2jKhclHOOvy9HD/OO/6YO1mX9vx +sY0H/tPIV0dtqel0V7iZvWyNg8XFcBA0ToEqVeqOdNUEQFvN41SumAv32VtJrakQNSmLWmgp4oJM +yDoBHgoydtoEAs47r5wHHnUal5vbJ8oOI+9wI86vb2d8Nrm/4Xy4RZ8R85E4uTZPB5EZPnTaaAGu +E59J8BE2J8XgrkbLeXMlVoQxznEYFYY8uFFdxsKQRx90Giwx9vSueHP1YNaUSFG4vTaErNSYuBOF +lXiVyXa9Sy3JdClEyK1dD6Nos9mEf8iKlOpmqSNTZnYjNEWiUYn2pKNB3ttcLJ3HmYYXy6Un76f7 +r8rRsC1TpTJj7f19m5sUf/V3Ir+x/yjtLu8KjLX/CmN/AcVGUUo= +""".decode("base64").decode("zlib") + +##file activate.bat +ACTIVATE_BAT = """ +eJyFUkEKgzAQvAfyhz0YaL9QEWpRqlSjWGspFPZQTevFHOr/adQaU1GaUzI7Mzu7ZF89XhKkEJS8 +qxaKMMsvboQ+LxxE44VICSW1gEa2UFaibqoS0iyJ0xw2lIA6nX5AHCu1jpRsv5KRjknkac9VLVug +sX9mtzxIeJDE/mg4OGp47qoLo3NHX2jsMB3AiDht5hryAUOEifoTdCXbSh7V0My2NMq/Xbh5MEjU +ZT63gpgNT9lKOJ/CtHsvT99re3pX303kydn4HeyOeAg5cjf2EW1D6HOPkg9NGKhu +""".decode("base64").decode("zlib") + +##file deactivate.bat +DEACTIVATE_BAT = """ +eJxzSE3OyFfIT0vj4spMU0hJTcvMS01RiPf3cYkP8wwKCXX0iQ8I8vcNCFHQ4FIAguLUEgWIgK0q +FlWqXJpcICVYpGzx2BAZ4uHv5+Hv6wq1BWINXBTdKriEKkI1DhW2QAfhttcxxANiFZCBbglQSJUL +i2dASrm4rFz9XLgAwJNbyQ== +""".decode("base64").decode("zlib") + +##file distutils-init.py +DISTUTILS_INIT = """ +eJytV92L4zYQf9dfMU0ottuse/TeFkKh3MvC0Ydy0IdlMVpbTtR1JCMpm+T++s5Y/pBs53oPZ1hQ +pPnSb34zo5WnVhsH2jLpV/Y2Li/cKKkOFoYN3Za6ErAdFtKC0g44vEvjzrwR6h1Oujo3YgdWw0VA +yRWcLUo6cBpqqSpwRwHWVY18ZRB9W3jq3HDlfoIvqK7NG2gF7a297VANvZ3O1sGrQI/eDe5yB0ZY +WQkLUpHxhVX09NDe3FGr31BL1lJUD9f8ln+FShpROm1ujOFS8ZOAPUKRt9wd836Hjqw7O9nYgvYD +iX+1VOlMPPXQ5EVRy0YURbaDZDSQZEzWo7rS5kSLNHaQwX4RRLrQGe1nj92Fh1zltEhHDDZfEO0g +O6MraHn5xg8IpYOfLfC2FdxYShLC64EES4A0uuROYhq49Zs368RpMvTHJmOiscKHUXRXKIpcKiuM +Sz/sYHa7TkxcRYkkEhN8HZaxKCJXFFJJh+baW5JluRG8SjM20JHEA9qWWtXywBjbbvF2rjzC61k2 +VSGuDibTUGlhVeLgTekLHPEP73wQrrscUsUGrPCGjkTCC1JXXyw8EJWP3FSUZY8IiSCCRp97dnfO +RUUx5a0RtbxSzLX/3XBXYxIpyQka/fh74pGrjQ5QzUt9OnFV5dMV+otOG5gQjctxozNTNtzaSSiN +JHqu0FeJmsqRN/KrKHRLGbaQWtHUgRB9FDfu5giN4eZWIDqWCv8vrcTjrNZgRXQPzy+RmGjQpLRI +EKz0UqQLlR28ciusM8jn7PtcLPZy2zbSDeyyos0iO+ybBgPyRvSk/CEFm8IndQebz8iXTRbbjhDP +5xh7iJfBrKd/Nenjj6Jvgp2B+W7AnP102BXH5IZWPV3tI2MUOvXowpdS12IIXhLLP0lKyeuZrpEv +pFhPqHg3JFTd1cceVp0EsPgGU0wFO2u4iyYRoFYfEm9kG/RZcUUBm87t9mFtx9iCtC9kx4Rt4R8a +OdgzSt40vtyFecAZZ8BfCOhCrC8djMGPFaz2Vlt5TSZCk053+37wbLDLRXfZ+F45NtdVpVWdudSC +xgODI8EsiLoTl5aO0lhoigX7GHZDHAY4LxoMIu1gXPYPksmFquxF4uRKZhEnKzXu82HESb+LlNQz +Fh/RvFJVuhK+Ee5slBdj30FcRGdJ5rhKxtkyKxWcGoV/WOCYKqkNDYJ5fNQVx3g400tpJBS2FSU+ +Tco9ss8nZ08dtscGQfSby87b73fOw+4UgrEMNnY6uMzYvSDxPVPpsij6+l0/ZPfuH0Iz010giY34 +HpL0ZLyLJB4ukaQRU+GwptO7yIZCQE33B0K9iCqO6X+AR4n7wAeH68DPkJzpTsD3x+/cj9LIVHC2 +An1wmv7CzWHoqR02vb0VL73siP+3nkX0YbQ0l9f6WDyOm24cj3rxO2MMip6kpcu6VCefn/789PR3 +0v0fg21sFIp70rj9PCi8YDRDXFucym/43qN+iENh1Jy/dIIIqF3OIkDvBMsdx+huWv8Kz73vl8g5 +WQ3JOGqwu3lb4dfKKbvLigXDQsb8B/xt39Q= +""".decode("base64").decode("zlib") + +##file distutils.cfg +DISTUTILS_CFG = """ +eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH +xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg +9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q= +""".decode("base64").decode("zlib") + +##file activate_this.py +ACTIVATE_THIS = """ +eJyNUlGL2zAMfvevEBlHEujSsXsL9GGDvW1jD3sZpQQ3Ua7aJXawnbT595Ocpe0dO5ghseVP+vRJ +VpIkn2cYPZknwAvWLXWYhRP5Sk4baKgOWRWNqtpdgTyH2Y5wpq5Tug406YAgKEzkwqg7NBPwR86a +Hk0olPopaK0NHJHzYQPnE5rI0o8+yBUwiBfyQcT8mMPJGiAT0A0O+b8BY4MKJ7zPcSSzHaKrSpJE +qeDmUgGvVbPCS41DgO+6xy/OWbfAThMn/OQ9ukDWRCSLiKzk1yrLjWapq6NnvHUoHXQ4bYPdrsVX +4lQMc/q6ZW975nmSK+oH6wL42a9H65U6aha342Mh0UVDzrD87C1bH73s16R5zsStkBZDp0NrXQ+7 +HaRnMo8f06UBnljKoOtn/YT+LtdvSyaT/BtIv9KR60nF9f3qmuYKO4//T9ItJMsjPfgUHqKwCZ3n +xu/Lx8M/UvCLTxW7VULHxB1PRRbrYfvWNY5S8it008jOjcleaMqVBDnUXcWULV2YK9JEQ92OfC96 +1Tv4ZicZZZ7GpuEpZbbeQ7DxquVx5hdqoyFSSmXwfC90f1Dc7hjFs/tK99I0fpkI8zSLy4tSy+sI +3vMWehjQNJmE5VePlZbL61nzX3S93ZcfDqznnkb9AZ3GWJU= +""".decode("base64").decode("zlib") + +if __name__ == '__main__': + main() + +## TODO: +## Copy python.exe.manifest +## Monkeypatch distutils.sysconfig Property changes on: branches/release-0.93/bin/vm/futuregrid/bin/virtualenv.py ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/bin/vm/futuregrid/env.sh =================================================================== --- branches/release-0.93/bin/vm/futuregrid/env.sh (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/env.sh 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,9 @@ +export FUTUREGRID_IAAS_ACCESS_KEY=XXXX +export FUTUREGRID_IAAS_SECRET_KEY=XXXXXXXXX + +export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY +export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY + +export EC2_URL=https://s83r.idp.sdsc.futuregrid.org:8444 + +export FUTUREGRID_SIERRA_NODES=2 Added: branches/release-0.93/bin/vm/futuregrid/hosts.txt =================================================================== --- branches/release-0.93/bin/vm/futuregrid/hosts.txt (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/hosts.txt 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1 @@ +s83r.idp.sdsc.futuregrid.org Added: branches/release-0.93/bin/vm/futuregrid/install.sh =================================================================== --- branches/release-0.93/bin/vm/futuregrid/install.sh (rev 0) +++ branches/release-0.93/bin/vm/futuregrid/install.sh 2011-12-02 17:03:52 UTC (rev 5332) @@ -0,0 +1,28 @@ +#!/bin/bash + +cd `dirname $0` + +source env.sh +python bin/virtualenv.py ve +if [ $? -ne 0 ]; then + echo "Failed to created the needed python virtual environment" + exit 1 +fi + +source ve/bin/activate +easy_install cloudinitd +if [ $? -ne 0 ]; then + echo "Failed to install cloudinitd" + exit 1 +fi + +echo "Registering the key names in all the clouds" +python bin/register_key.py hosts.txt +if [ $? -ne 0 ]; then + echo "Failed to register the key names" + exit 1 +fi + +echo "Success!" +echo "" +echo 0 Property changes on: branches/release-0.93/bin/vm/futuregrid/install.sh ___________________________________________________________________ Added: svn:executable + * From ketan at ci.uchicago.edu Sat Dec 3 19:42:07 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sat, 3 Dec 2011 19:42:07 -0600 (CST) Subject: [Swift-commit] r5338 - trunk/bin/grid Message-ID: <20111204014207.738CB9CCA8@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-03 19:42:06 -0600 (Sat, 03 Dec 2011) New Revision: 5338 Added: trunk/bin/grid/run-gwms-workers Removed: trunk/bin/grid/gwms-swift-workers Log: added gwms workers run script Deleted: trunk/bin/grid/gwms-swift-workers =================================================================== --- trunk/bin/grid/gwms-swift-workers 2011-12-02 20:56:36 UTC (rev 5337) +++ trunk/bin/grid/gwms-swift-workers 2011-12-04 01:42:06 UTC (rev 5338) @@ -1,241 +0,0 @@ -#! /usr/bin/env ruby - -$stdout.sync = true - -$:[$:.length] = File.dirname($0) - -require 'mk_catalog' -require 'etc' - -class Site - attr_accessor :grid_resource, :gridftp, :data_dir, :app_dir, :name, :port - attr_reader :submit_file - - def gen_submit(count = 1) - - ov=$VERBOSE - $VERBOSE=nil - workerExecutable = `which worker.pl` - workerWrapper = `which run-worker.sh` - $VERBOSE=ov - workerContact = ARGV[2] - - job = %Q[ - universe = vanilla - stream_output = False - stream_error = False - - transfer_executable = true - should_transfer_files = YES - WhenToTransferOutput = ON_EXIT - - #periodic_remove = JobStatus == 5 - notification = NEVER - - executable = #{workerWrapper} - arguments = #{workerContact} <%= @name.gsub(/__.*/,"") %> /tmp - environment = WORKER_LOGGING_LEVEL=DEBUG - Input = #{workerExecutable} - Error = condor/$(Process).err - Output = condor/$(Process).out - log = condor.log - - queue #{count} - ] - - ERB.new(job.gsub(/^\s+/, ""), 0, "%<>", "@submit_file").result(binding) - end - def submit_job(count) - puts "submit_job: Submitting #{@name} #{count} jobs" - count = count.to_i - output = "" - submitfile = gen_submit(count) - IO.popen("condor_submit", "w+") do |submit| - submit.puts submitfile - submit.close_write - output = submit.read - end - output - end - - def queued - ov=$VERBOSE - $VERBOSE=nil - jobs = `condor_q #{$username} -const 'GridResource == \"#{@grid_resource}\" && JobStatus == 1' -format \"%s \" GlobalJobId` - $VERBOSE=ov - jobs.split(" ").size - end - - def running - ov=$VERBOSE - $VERBOSE=nil - jobs = `condor_q #{$username} -const 'GridResource == \"#{@grid_resource}\" && JobStatus == 2' -format \"%s \" GlobalJobId` - $VERBOSE=ov - jobs.split(" ").size - end - -end - -=begin -# For reference: -JobStatus in job ClassAds - -0 Unexpanded U -1 Idle I -2 Running R -3 Removed X -4 Completed C -5 Held H -6 Submission_err E -=end - -if __FILE__ == $0 - raise "No greenlist file" if !ARGV[0] - - start_port = 61100 # FIXME - ctr = 0 - threads = [] - ARGV[1] = "scec" if !ARGV[1] - greenlist = IO.readlines(ARGV[0]).map { |line| line.chomp! } - $username = Etc.getlogin - - puts "Username = #{$username}" - - minSiteJobs = 2 - paddedDemand = 0 - swiftDemand = 0 - totalCores = 0 - totalRunning = 0 - - ress_parse(ARGV[1]) do |name, value| - next if not greenlist.index(name) and not greenlist.empty? - totalCores += (value.throttle * 100 + 2).to_i - end - puts "totalCores for green sites = #{totalCores}" - - demandThread = Thread.new("monitor-demand") do |t| - puts "starting demand thread" - while true do - puts "in demand thread" - swiftDemand = IO.read("swiftDemand").to_i # Replace this with sensor of Swift demand - # swiftDemand = 15 - paddedDemand = (swiftDemand * 1.2).to_i - ov=$VERBOSE;$VERBOSE=nil - totalRunning = `condor_q #{$username} -const 'JobStatus == 2' -format \"%s \" GlobalJobId`.split(" ").size - $VERBOSE=ov - puts "*** demandThread: swiftDemand=#{swiftDemand} paddedDemand=#{paddedDemand} totalRunning=#{totalRunning}" - sleep 60 - end - end - - ress_parse(ARGV[1]) do |name, value| - next if not greenlist.index(name) and not greenlist.empty? - site = Site.new - site.name = name - site.grid_resource = "gt2 #{value.url}/jobmanager-#{value.jm}" - #site.grid_resource = "fork" - site.gridftp = "gsiftp://#{value.url}" - site.app_dir = value.app_dir - site.data_dir = value.data_dir - site.port = start_port + ctr - - # local per-site attributes: - - cores = (value.throttle * 100 + 2).to_i - siteFraction = cores.to_f / totalCores.to_f - siteTargetRunning = [ (swiftDemand.to_f * siteFraction), minSiteJobs ].max - siteTargetQueued = [ (swiftDemand.to_f * siteFraction), minSiteJobs ].max - - printf "site: %5d cores %2d%% %s\n", cores, siteFraction * 100, name - targetQueued = 3 - - site.gen_submit - - threads << Thread.new(name) do |job| - trip=0 - while true do - if ( (swiftDemand) > totalRunning ) then - # demands > running: enforce N-queued algorithm - queued = site.queued - running = site.running - printf "trip %d site %s running %d queued %d\n", trip, name,running,queued - if (running+queued) == 0 then - newJobs = [ (paddedDemand * siteFraction).to_i, minSiteJobs ].max - printf "trip %d site %s empty - submitting %d (%d%% of demand %d)\n", - trip, name, newJobs, siteFraction * 100, paddedDemand - site.submit_job(newJobs) - elsif queued == 0 then - toRun = [ running * 1.2, [(paddedDemand * siteFraction).to_i, minSiteJobs ].max ].max - printf "trip %d site %s queued %d target %d has drained queue - submitting %d\n", - trip, name, queued, targetQueued, toRun - site.submit_job(toRun) - elsif queued < targetQueued - printf "trip %d site %s queued %d below target %d - submitting %d\n", - trip, name, queued, targetQueued, targetQueued-queued - site.submit_job(targetQueued - queued) - end - trip += 1 - # puts "#{name}: #{total}" - end - sleep 60 - end - end - - ctr += 1 - end -end -threads.each { |job| job.join } -puts "All threads completed." - -# TODO: -# -# tag jobs for each run uniquely, and track them as a unique factory instance -# - -=begin - -"Keep N Queued" Algorithm - -Goal: -- monitor a running swift script to track its changing demand for cores -- increase the # of running workers to meet the demand -- let workers that are idle time out when supply is greater than demand - -Initially: -- set a constant demand -- determine #cores at each site - -initialPressure = 1.2 # increase demand -initialDemand = 50 # initial demand prior to first poll of Swift, to prime the worker pool ahead of Swift demand - -- set a constant target queued for each site based on ncores -- set a target #running - -THREAD 0: - demand = initialDemand - for each site - site.need = (site.cores/totalcores) * demand - sleep delay - - - while swiftScriptIsRunning - get demand - get #running - - - -THREAD for each site - while swiftScriptIsRunning - get site.running - get set.queued - need = demand - running - if need > 0 - if running+queued = 0 - -keep queued on each site: - max( expectation, 50% of observation ) - - toalc=1000 - sitec = 200 20% d=100 ex=20 q=20 - r=50 q=25 -=end Added: trunk/bin/grid/run-gwms-workers =================================================================== --- trunk/bin/grid/run-gwms-workers (rev 0) +++ trunk/bin/grid/run-gwms-workers 2011-12-04 01:42:06 UTC (rev 5338) @@ -0,0 +1,36 @@ +#!/bin/bash + +workerExecutable=`which worker.pl` +workerWrapper=`which run-worker.sh` +workerContact=$1 + +cat > myjob.condor < (60*60)) +notification = NEVER + +executable = $workerWrapper +arguments = $workerContact scec /tmp +environment = WORKER_LOGGING_LEVEL=DEBUG +Input = $workerExecutable +Error = condor/job.err +Output = condor/job.out +log = condor.log + +queue 50 +EOF + +condor_submit myjob.condor + From wozniak at ci.uchicago.edu Sun Dec 4 21:49:26 2011 From: wozniak at ci.uchicago.edu (wozniak at ci.uchicago.edu) Date: Sun, 4 Dec 2011 21:49:26 -0600 (CST) Subject: [Swift-commit] r5339 - branches/release-0.93/bin Message-ID: <20111205034926.1D3089CCAA@svn.ci.uchicago.edu> Author: wozniak Date: 2011-12-04 21:49:25 -0600 (Sun, 04 Dec 2011) New Revision: 5339 Modified: branches/release-0.93/bin/start-coaster-service Log: Fix typo Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-04 01:42:06 UTC (rev 5338) +++ branches/release-0.93/bin/start-coaster-service 2011-12-05 03:49:25 UTC (rev 5339) @@ -53,9 +53,9 @@ { PORT=$1 EXECUTION_URL=http://localhost:$PORT - + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then - crash "SWIFTVMBOT_DIR incorrectly defined in coaster-service.conf" + crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" fi SEDFILE=`mktemp` @@ -63,7 +63,7 @@ echo "s at _CLUSTER-NODES_@$EC2_NODES@" echo "s at _INSTANCE-TYPE_@$EC2_INSTANCE_TYPE@" echo "s at _KEYPAIR_@$EC2_KEYPAIR@" - echo "s at _KEYFILE_@$EC2_KEYFILE@" + echo "s at _KEYFILE_@$EC2_KEYFILE@" echo "s at _AMI_@$EC2_AMI@" } > $SEDFILE sed -f $SEDFILE < "$SWIFTVMBOOT_DIR/ec2.template.conf" > "$SWIFTVMBOOT_DIR/ec2.conf" @@ -74,9 +74,9 @@ SWIFTVM_INSTANCE=`awk '{print $4}' gpic.out` rm gpic.out echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instance - + echo Starting instance.. - "$SWIFTVMBOOT_DIR/bin/gp-instance-start" "$SWIFTVM_INSTANCE" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + "$SWIFTVMBOOT_DIR/bin/gp-instance-start" "$SWIFTVM_INSTANCE" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" WORKER_HOSTS=`$SWIFTVMBOOT_DIR/bin/gp-instance-describe $SWIFTVM_INSTANCE|sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"|awk '{print $3}'` # Start worker script From ketan at ci.uchicago.edu Mon Dec 5 11:15:59 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Mon, 5 Dec 2011 11:15:59 -0600 (CST) Subject: [Swift-commit] r5340 - trunk/bin/grid Message-ID: <20111205171559.D788D9CCA8@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-05 11:15:59 -0600 (Mon, 05 Dec 2011) New Revision: 5340 Modified: trunk/bin/grid/run-gwms-workers Log: added n as a parameter to gwms workers script Modified: trunk/bin/grid/run-gwms-workers =================================================================== --- trunk/bin/grid/run-gwms-workers 2011-12-05 03:49:25 UTC (rev 5339) +++ trunk/bin/grid/run-gwms-workers 2011-12-05 17:15:59 UTC (rev 5340) @@ -3,6 +3,7 @@ workerExecutable=`which worker.pl` workerWrapper=`which run-worker.sh` workerContact=$1 +n=$2 cat > myjob.condor < Author: davidk Date: 2011-12-05 11:19:33 -0600 (Mon, 05 Dec 2011) New Revision: 5341 Modified: usertools/swift-ec2-boot/install.sh Log: Link lib dir as well as bin Modified: usertools/swift-ec2-boot/install.sh =================================================================== --- usertools/swift-ec2-boot/install.sh 2011-12-05 17:15:59 UTC (rev 5340) +++ usertools/swift-ec2-boot/install.sh 2011-12-05 17:19:33 UTC (rev 5341) @@ -4,6 +4,5 @@ cd globus-provision-0.3.2 python setup.py install --user cd .. -mv ~/.local/bin . -mv ~/.local/lib . - +ln -s ~/.local/bin +ln -s ~/.local/lib From ketan at ci.uchicago.edu Mon Dec 5 11:24:46 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Mon, 5 Dec 2011 11:24:46 -0600 (CST) Subject: [Swift-commit] r5342 - trunk/bin/grid Message-ID: <20111205172446.91DDB9CCA8@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-05 11:24:46 -0600 (Mon, 05 Dec 2011) New Revision: 5342 Modified: trunk/bin/grid/run-gwms-workers Log: args validation in run-gwms-workers Modified: trunk/bin/grid/run-gwms-workers =================================================================== --- trunk/bin/grid/run-gwms-workers 2011-12-05 17:19:33 UTC (rev 5341) +++ trunk/bin/grid/run-gwms-workers 2011-12-05 17:24:46 UTC (rev 5342) @@ -1,10 +1,17 @@ #!/bin/bash +die () { + echo >&2 "$@" + exit 1 +} + workerExecutable=`which worker.pl` workerWrapper=`which run-worker.sh` workerContact=$1 n=$2 +[ "$#" -eq 2 ] || die "2 arguments required, $# provided" + cat > myjob.condor < Author: ketan Date: 2011-12-05 12:14:43 -0600 (Mon, 05 Dec 2011) New Revision: 5343 Modified: trunk/docs/siteguide/grid Log: documenting gwms based worker submission to grid Modified: trunk/docs/siteguide/grid =================================================================== --- trunk/docs/siteguide/grid 2011-12-05 17:24:46 UTC (rev 5342) +++ trunk/docs/siteguide/grid 2011-12-05 18:14:43 UTC (rev 5343) @@ -220,8 +220,8 @@ >& start-grid-service.out ----- -Starting workers on OSG sites -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Starting workers on OSG sites through GRAM +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Make sure that your "greensites" file is in the current working directory. @@ -248,6 +248,26 @@ >& swift-workers.out & ----- +Starting workers on OSG sites through GlideinWMS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As an alternative to the above gram based 'direct' worker submission, a GlideinWMS based worker submission can be made. The service start step would be same as above. + +GlideinWMS is a Glidein Based WMS (Workload Management System) that works on top of condor. + +As with the case of Gram based workers, the condor directory must be pre-created and will be used by Condor to +return stdout and stderr files from the Condor jobs, which will +execute the wrapper script "run-workers.sh". + +NOTE: this script is current built manually, and wraps around and +transports the worker.pl script. This needs to be automated. + +----- +run-gwms-workers http://communicado.ci.uchicago.edu:$(cat service-0.wport) 100 >& gwms-workers.out & +----- + +In the above commandline, one can change the number of workers by changing the second commandline argument, which is 100 in this example. + Adding workers from TeraGrid sites ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From ketan at ci.uchicago.edu Mon Dec 5 12:25:08 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Mon, 5 Dec 2011 12:25:08 -0600 (CST) Subject: [Swift-commit] r5344 - trunk/bin/grid Message-ID: <20111205182508.B10099CCA8@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-05 12:25:08 -0600 (Mon, 05 Dec 2011) New Revision: 5344 Modified: trunk/bin/grid/run-gwms-workers Log: Modified: trunk/bin/grid/run-gwms-workers =================================================================== --- trunk/bin/grid/run-gwms-workers 2011-12-05 18:14:43 UTC (rev 5343) +++ trunk/bin/grid/run-gwms-workers 2011-12-05 18:25:08 UTC (rev 5344) @@ -26,7 +26,6 @@ WhenToTransferOutput = ON_EXIT periodic_remove = JobStatus == 5 -PeriodicRelease = (NumGlobusSubmits < 5) && ((CurrentTime - EnteredCurrentStatus) > (60*60)) notification = NEVER executable = $workerWrapper From davidk at ci.uchicago.edu Tue Dec 6 11:31:43 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 6 Dec 2011 11:31:43 -0600 (CST) Subject: [Swift-commit] r5345 - wwwdev/docs Message-ID: <20111206173143.0891B9CCAA@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-06 11:31:42 -0600 (Tue, 06 Dec 2011) New Revision: 5345 Modified: wwwdev/docs/license.php Log: Apache license Modified: wwwdev/docs/license.php =================================================================== --- wwwdev/docs/license.php 2011-12-05 18:25:08 UTC (rev 5344) +++ wwwdev/docs/license.php 2011-12-06 17:31:42 UTC (rev 5345) @@ -1,7 +1,209 @@ - + + + + + + + + +

-License +
+ + +
+ + +
+

Apache License

Version 2.0, January 2004

+http://www.apache.org/licenses/

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+

"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document.

+

"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License.

+ +

"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity.

+

"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License.

+

"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files.

+

"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types.

+

"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below).

+

"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof.

+

"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution."

+

"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work.

+

2. Grant of Copyright License. Subject to the +terms and conditions of this License, each Contributor hereby grants to You +a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, publicly +display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form.

+ +

3. Grant of Patent License. Subject to the terms +and conditions of this License, each Contributor hereby grants to You a +perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, use, +offer to sell, sell, import, and otherwise transfer the Work, where such +license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by +combination of their Contribution(s) with the Work to which such +Contribution(s) was submitted. If You institute patent litigation against +any entity (including a cross-claim or counterclaim in a lawsuit) alleging +that the Work or a Contribution incorporated within the Work constitutes +direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of the +date such litigation is filed.

+

4. Redistribution. You may reproduce and +distribute copies of the Work or Derivative Works thereof in any medium, +with or without modifications, and in Source or Object form, provided that +You meet the following conditions:

+
    +
  1. +

    You must give any other recipients of the Work or Derivative Works a +copy of this License; and

    +
  2. +
  3. +

    You must cause any modified files to carry prominent notices stating +that You changed the files; and

    +
  4. +
  5. +

    You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and

    + +
  6. +
  7. +

    If the Work includes a "NOTICE" text file as part of its distribution, +then any Derivative Works that You distribute must include a readable copy +of the attribution notices contained within such NOTICE file, excluding +those notices that do not pertain to any part of the Derivative Works, in +at least one of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or documentation, +if provided along with the Derivative Works; or, within a display generated +by the Derivative Works, if and wherever such third-party notices normally +appear. The contents of the NOTICE file are for informational purposes only +and do not modify the License. You may add Your own attribution notices +within Derivative Works that You distribute, alongside or as an addendum to +the NOTICE text from the Work, provided that such additional attribution +notices cannot be construed as modifying the License. +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License.

    +
  8. +
+

5. Submission of Contributions. Unless You +explicitly state otherwise, any Contribution intentionally submitted for +inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the +terms of any separate license agreement you may have executed with Licensor +regarding such Contributions.

+

6. Trademarks. This License does not grant +permission to use the trade names, trademarks, service marks, or product +names of the Licensor, except as required for reasonable and customary use +in describing the origin of the Work and reproducing the content of the +NOTICE file.

+

7. Disclaimer of Warranty. Unless required by +applicable law or agreed to in writing, Licensor provides the Work (and +each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, +without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You +are solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise +of permissions under this License.

+

8. Limitation of Liability. In no event and +under no legal theory, whether in tort (including negligence), contract, or +otherwise, unless required by applicable law (such as deliberate and +grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a result +of this License or out of the use or inability to use the Work (including +but not limited to damages for loss of goodwill, work stoppage, computer +failure or malfunction, or any and all other commercial damages or losses), +even if such Contributor has been advised of the possibility of such +damages.

+ +

9. Accepting Warranty or Additional Liability. +While redistributing the Work or Derivative Works thereof, You may choose +to offer, and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this License. +However, in accepting such obligations, You may act only on Your own behalf +and on Your sole responsibility, not on behalf of any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor +harmless for any liability incurred by, or claims asserted against, such +Contributor by reason of your accepting any such warranty or additional +liability.

+

END OF TERMS AND CONDITIONS

+

APPENDIX: How to apply the Apache License to your work

+

To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives.

+
   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+ + +
From davidk at ci.uchicago.edu Tue Dec 6 12:00:38 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 6 Dec 2011 12:00:38 -0600 (CST) Subject: [Swift-commit] r5346 - in wwwdev: docs downloads Message-ID: <20111206180038.0D0959CCAA@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-06 12:00:37 -0600 (Tue, 06 Dec 2011) New Revision: 5346 Added: wwwdev/docs/usage_data.php Removed: wwwdev/docs/usage_data.php Modified: wwwdev/downloads/index.php Log: Links to license and usage policy Deleted: wwwdev/docs/usage_data.php =================================================================== --- wwwdev/docs/usage_data.php 2011-12-06 17:31:42 UTC (rev 5345) +++ wwwdev/docs/usage_data.php 2011-12-06 18:00:37 UTC (rev 5346) @@ -1,7 +0,0 @@ - - - - -Usage data - - Added: wwwdev/docs/usage_data.php =================================================================== --- wwwdev/docs/usage_data.php (rev 0) +++ wwwdev/docs/usage_data.php 2011-12-06 18:00:37 UTC (rev 5346) @@ -0,0 +1,7 @@ + + + + +Usage data + + Modified: wwwdev/downloads/index.php =================================================================== --- wwwdev/downloads/index.php 2011-12-06 17:31:42 UTC (rev 5345) +++ wwwdev/downloads/index.php 2011-12-06 18:00:37 UTC (rev 5346) @@ -23,6 +23,16 @@
+

License

+Swift is licensed under the +Apache License, Version 2.0.

+Swift will attempt to gather usage information in an effort to improve +reliability. This gives the Swift development team a better idea about +how widely Swift is being used. More information about this is available +in the +Swift Usage Tracking Policy.
+
+

Latest Release

Swift 0.93 RC5 - 2011/11/14

From davidk at ci.uchicago.edu Tue Dec 6 13:30:30 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 6 Dec 2011 13:30:30 -0600 (CST) Subject: [Swift-commit] r5347 - in wwwdev: docs downloads Message-ID: <20111206193030.0A20E9CCAA@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-06 13:30:29 -0600 (Tue, 06 Dec 2011) New Revision: 5347 Modified: wwwdev/docs/tracking_policy.php wwwdev/downloads/index.php Log: License updates Modified: wwwdev/docs/tracking_policy.php =================================================================== --- wwwdev/docs/tracking_policy.php 2011-12-06 18:00:37 UTC (rev 5346) +++ wwwdev/docs/tracking_policy.php 2011-12-06 19:30:29 UTC (rev 5347) @@ -19,7 +19,8 @@

Usage Statistics Collection by Swift


-Beginning with Swift 0.9.1, Swift has the capability to send usage statistics back to the Swift development team. +Swift sends usage statistics back to the Swift development team to +measure worldwide usage and and improve reliability and usability.

  • Why are we doing this?
  • Modified: wwwdev/downloads/index.php =================================================================== --- wwwdev/downloads/index.php 2011-12-06 18:00:37 UTC (rev 5346) +++ wwwdev/downloads/index.php 2011-12-06 19:30:29 UTC (rev 5347) @@ -26,10 +26,12 @@

    License

    Swift is licensed under the Apache License, Version 2.0.

    -Swift will attempt to gather usage information in an effort to improve -reliability. This gives the Swift development team a better idea about -how widely Swift is being used. More information about this is available -in the + + +

    Usage Tracking

    +Swift will attempt to gather usage information in an effort to measure +worldwide usage and improve reliability and usability. More information +about this is available in the Swift Usage Tracking Policy.

    From davidk at ci.uchicago.edu Tue Dec 6 15:37:20 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 6 Dec 2011 15:37:20 -0600 (CST) Subject: [Swift-commit] r5348 - in branches/release-0.93: bin libexec Message-ID: <20111206213720.9D5D89CCAA@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-06 15:37:20 -0600 (Tue, 06 Dec 2011) New Revision: 5348 Modified: branches/release-0.93/bin/start-coaster-service branches/release-0.93/bin/stop-coaster-service branches/release-0.93/libexec/_swiftwrap.staging Log: stop-coaster-service should terminate instances, not just stop them _swiftwrap.staging should allow for empty stdout/err files (bug #463) Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-06 19:30:29 UTC (rev 5347) +++ branches/release-0.93/bin/start-coaster-service 2011-12-06 21:37:20 UTC (rev 5348) @@ -82,6 +82,9 @@ # Start worker script for MACHINE in $WORKER_HOSTS do + # Create a list of machines for other applications, if needed + echo $MACHINE >> $HOME/.swift/.machines + # Enable ssh tunneling if needed if [ "$SSH_TUNNELING" == "yes" ]; then ssh -q -o StrictHostKeyChecking=no -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & @@ -192,9 +195,10 @@ else crash "Cannot find coaster-service.conf!" fi +cp $CONFIG_FILE $HOME/.swift/.config -echo "start-coaster-service..." -echo "configuration: $CONFIG_FILE" +echo "Start-coaster-service..." +echo "Configuration: $CONFIG_FILE" source $CONFIG_FILE Modified: branches/release-0.93/bin/stop-coaster-service =================================================================== --- branches/release-0.93/bin/stop-coaster-service 2011-12-06 19:30:29 UTC (rev 5347) +++ branches/release-0.93/bin/stop-coaster-service 2011-12-06 21:37:20 UTC (rev 5348) @@ -13,16 +13,7 @@ SWIFTVM_INSTANCES="$HOME/.swift/.swiftvm_instance" # Import settings -if [ -f "./coaster-service.conf" ]; then - CONFIG_FILE="./coaster-service.conf" -elif [ -f "$HOME/.swift/coaster-service.conf" ]; then - CONFIG_FILE="$HOME/.swift/coaster-service.conf" -elif [ -f "$(dirname $(readlink -f $0))/../etc/coaster-service.conf" ]; then - CONFIG_FILE="$(dirname $(readlink -f $0))/../etc/coaster-service.conf" -else - crash "Cannot find coaster-service.conf!" -fi - +CONFIG_FILE=$HOME/.swift/.config source "$CONFIG_FILE" echo Ending coaster processes.. @@ -52,9 +43,15 @@ for INSTANCE in `cat $SWIFTVM_INSTANCES` do echo Stopping ec2 instance $INSTANCE... - $SWIFTVMBOOT_DIR/bin/gp-instance-stop $INSTANCE | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + $SWIFTVMBOOT_DIR/bin/gp-instance-terminate $INSTANCE | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + done rm $SWIFTVM_INSTANCES > /dev/null 2>&1 fi +if [ -f "$HOME/.swift/.machines" ]; then + rm "$HOME/.swift/.machines" +fi + popd > /dev/null 2>&1 +echo Done Modified: branches/release-0.93/libexec/_swiftwrap.staging =================================================================== --- branches/release-0.93/libexec/_swiftwrap.staging 2011-12-06 19:30:29 UTC (rev 5347) +++ branches/release-0.93/libexec/_swiftwrap.staging 2011-12-06 21:37:20 UTC (rev 5348) @@ -302,15 +302,6 @@ fi checkError $? "Application $EXEC failed with an exit code of $?" <$STDERR -if [ ! -s "$STDOUT" ]; then - log "Removing empty stdout" - rm -f $STDOUT -fi -if [ ! -s "$STDERR" ]; then - log "Removing empty stderr" - rm -f $STDERR -fi - logstate "EXECUTE_DONE" log "Job ran successfully" From davidk at ci.uchicago.edu Tue Dec 6 15:40:38 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 6 Dec 2011 15:40:38 -0600 (CST) Subject: [Swift-commit] r5349 - in trunk: bin libexec Message-ID: <20111206214038.057C69CCAA@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-06 15:40:37 -0600 (Tue, 06 Dec 2011) New Revision: 5349 Modified: trunk/bin/start-coaster-service trunk/bin/stop-coaster-service trunk/libexec/_swiftwrap.staging Log: Updated start and stop-coaster-service _swiftwrap.staging should allow for empty stdout/err files (bug #463) Modified: trunk/bin/start-coaster-service =================================================================== --- trunk/bin/start-coaster-service 2011-12-06 21:37:20 UTC (rev 5348) +++ trunk/bin/start-coaster-service 2011-12-06 21:40:37 UTC (rev 5349) @@ -19,15 +19,15 @@ fi echo Starting virtual machines.. please wait - $SWIFTVMBOOT_DIR/bin/bootit.sh + $SWIFTVMBOOT_DIR/bin/bootit.sh | tee -a bootit.log SWIFTVMBOOT_OUTPUT=$SWIFTVMBOOT_DIR/output.json if [ ! -f "$SWIFTVMBOOT_OUTPUT" ]; then crash "Error: Swift VM output file $SWIFTVMBOOT_OUTPUT does not exist!" fi - SWIFTVM_INSTANCES=`grep instance_id $SWIFTVMBOOT_OUTPUT |awk '{print $2}'|sed 's/\"//g;s/,//g;s/null//g'` - echo $SWIFTVM_INSTANCES > .swiftvm_instances + SWIFTVM_INSTANCE=`grep "Starting up run" bootit.log |awk '{print $4}'` + echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instance WORKER_HOSTS=`grep hostname $SWIFTVMBOOT_OUTPUT |awk '{print $2}'|sed 's/\"//g;s/,//g;s/null//g'` @@ -41,16 +41,67 @@ fi # Copy and start worker script - scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_WORK > /dev/null 2>&1 + scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 echo "Starting worker on $MACHINE" - ssh $WORKER_USERNAME@$MACHINE "$WORKER_WORK/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & - echo $! >> $PID_FILE + ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE done } +# EC2 workers +start-workers-ec2() +{ + PORT=$1 + EXECUTION_URL=http://localhost:$PORT + + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/gp-instance-create" ]; then + crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" + fi + + SEDFILE=`mktemp` + { + echo "s at _CLUSTER-NODES_@$EC2_NODES@" + echo "s at _INSTANCE-TYPE_@$EC2_INSTANCE_TYPE@" + echo "s at _KEYPAIR_@$EC2_KEYPAIR@" + echo "s at _KEYFILE_@$EC2_KEYFILE@" + echo "s at _AMI_@$EC2_AMI@" + } > $SEDFILE + sed -f $SEDFILE < "$SWIFTVMBOOT_DIR/ec2.template.conf" > "$SWIFTVMBOOT_DIR/ec2.conf" + rm $SEDFILE + + echo Creating instance.. + "$SWIFTVMBOOT_DIR/bin/gp-instance-create" -c "$SWIFTVMBOOT_DIR/ec2.conf" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | tee -a gpic.out + SWIFTVM_INSTANCE=`awk '{print $4}' gpic.out` + rm gpic.out + echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instance + + echo Starting instance.. + "$SWIFTVMBOOT_DIR/bin/gp-instance-start" "$SWIFTVM_INSTANCE" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + WORKER_HOSTS=`$SWIFTVMBOOT_DIR/bin/gp-instance-describe $SWIFTVM_INSTANCE|sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"|awk '{print $3}'` + + # Start worker script + for MACHINE in $WORKER_HOSTS + do + # Create a list of machines for other applications, if needed + echo $MACHINE >> $HOME/.swift/.machines + + # Enable ssh tunneling if needed + if [ "$SSH_TUNNELING" == "yes" ]; then + ssh -q -o StrictHostKeyChecking=no -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & + echo $! >> $PID_FILE + fi + + # Copy and start worker script + scp -q -o StrictHostKeyChecking=no $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 + echo "Starting worker on $MACHINE" + ssh -q -o StrictHostKeyChecking=no $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE + done +} + # Start SSH workers start-workers-ssh() -{ +{ PORT=$1 EXECUTION_URL=http://$IPADDR:$PORT if [ -z "$PORT" ]; then @@ -71,16 +122,17 @@ # Use a relay host if [ -n "$WORKER_RELAY_HOST" ]; then - ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $MACHINE mkdir -p $WORKER_WORK > /dev/null 2>&1 - ssh $WORKER_USERNAME@$WORKER_RELAY_HOST "scp /tmp/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_WORK" > /dev/null 2>&1 + ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $MACHINE mkdir -p $WORKER_LOCATION > /dev/null 2>&1 + ssh $WORKER_USERNAME@$WORKER_RELAY_HOST "scp /tmp/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION" > /dev/null 2>&1 echo Starting worker on $MACHINE - ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $WORKER_USERNAME@$MACHINE "WORKER_LOGGING_LEVEL=$WORKER_LOGGING_LEVEL $WORKER_WORK/$WORKER $EXECUTION_URL $MACHINE $WORKER_LOG_DIR" & + ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $WORKER_USERNAME@$MACHINE "WORKER_LOGGING_LEVEL=$WORKER_LOGGING_LEVEL $WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $WORKER_LOG_DIR" & echo $! >> $PID_FILE # Connect directly - else - scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_WORK > /dev/null 2>&1 + else + ssh $WORKER_USERNAME@$MACHINE mkdir -p $WORKER_LOCATION > /dev/null 2>&1 + scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 echo Starting worker on $MACHINE - ssh $WORKER_USERNAME@$MACHINE "$WORKER_WORK/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & + ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & echo $! >> $PID_FILE fi done @@ -88,7 +140,7 @@ } # Start local workers -start-workers-local() +start-workers-local() { PORT=$1 EXECUTION_URL=http://$IPADDR:$PORT @@ -143,17 +195,24 @@ else crash "Cannot find coaster-service.conf!" fi +cp $CONFIG_FILE $HOME/.swift/.config +echo "Start-coaster-service..." +echo "Configuration: $CONFIG_FILE" + source $CONFIG_FILE -# Determine information needed about this machine +# Determine IP address to which workers should connect if [ -z "$IPADDR" ]; then - if [ -x "/sbin/ifconfig" ]; then + if [ "$SSH_TUNNELING" == "yes" ]; then + IPADDR=localhost + elif [ -x "/sbin/ifconfig" ]; then IPADDR=$( /sbin/ifconfig | grep 'inet addr' | grep -v 127.0.0.1 | cut -d ':' -f 2 | awk '{print $1}' |head -1) else crash "Unable to determine IP address of system. Please add to coaster-service.conf" fi fi +echo Service address: $IPADDR # Find swift if [ ! -x "$SWIFT" ]; then @@ -207,11 +266,11 @@ $SWIFT_BIN/coaster-service -nosec -portfile $SERVICE_PORT_FILE --localport $LOCAL_PORT -passive > $COASTER_LOG 2>&1 & elif [ -n "$SERVICE_PORT" ] && [ -n "$LOCAL_PORT" ]; then $SWIFT_BIN/coaster-service -nosec -port $SERVICE_PORT -localport $LOCAL_PORT -passive > $COASTER_LOG 2>&1 & -else +else crash "Unknown SERVICE_PORT type specified!" fi -echo $! > $PID_FILE +echo $! >> $PID_FILE sleep 5 # Determine SERVICE_PORT @@ -249,7 +308,10 @@ futuregrid) start-workers-futuregrid $LOCAL_PORT ;; - *) + ec2) + start-workers-ec2 $LOCAL_PORT + ;; + *) crash "Unknown WORKER_MODE. Please modify coaster-service.conf" ;; esac @@ -260,7 +322,7 @@ if [ -f "gensites.template" ]; then gensites `cat gensites.template` -p $CONFIG_FILE > $RUN_DIR/sites.xml else - gensites persistent-coasters -p $CONFIG_FILE > $RUN_DIR/sites.xml + gensites persistent-coasters -p $CONFIG_FILE > $RUN_DIR/sites.xml fi # Generate config file @@ -271,6 +333,11 @@ wrapperlog.always.transfer=false execution.retries=0 provider.staging.pin.swiftfiles=false +sitedir.keep=true EOF fi +# Local Variables: +# tab-width: 3 +# sh-basic-offset: 3 +# End: Modified: trunk/bin/stop-coaster-service =================================================================== --- trunk/bin/stop-coaster-service 2011-12-06 21:37:20 UTC (rev 5348) +++ trunk/bin/stop-coaster-service 2011-12-06 21:40:37 UTC (rev 5349) @@ -10,19 +10,10 @@ # Location of required files PID_FILE="$HOME/.swift/.coaster-service-pids" -SWIFTVM_INSTANCES="$HOME/.swift/.swiftvm_instances" +SWIFTVM_INSTANCES="$HOME/.swift/.swiftvm_instance" # Import settings -if [ -f "./coaster-service.conf" ]; then - CONFIG_FILE="./coaster-service.conf" -elif [ -f "$HOME/.swift/coaster-service.conf" ]; then - CONFIG_FILE="$HOME/.swift/coaster-service.conf" -elif [ -f "$(dirname $(readlink -f $0))/../etc/coaster-service.conf" ]; then - CONFIG_FILE="$(dirname $(readlink -f $0))/../etc/coaster-service.conf" -else - crash "Cannot find coaster-service.conf!" -fi - +CONFIG_FILE=$HOME/.swift/.config source "$CONFIG_FILE" echo Ending coaster processes.. @@ -39,9 +30,8 @@ done rm $PID_FILE > /dev/null 2>&1 fi -echo Done -if [ $WORKER_MODE == "futuregrid" ] && [ -f "$SWIFTVM_INSTANCES" ]; then +if [ "$WORKER_MODE" == "futuregrid" ] && [ -f "$SWIFTVM_INSTANCES" ]; then for INSTANCE in `cat $SWIFTVM_INSTANCES` do $SWIFTVMBOOT_DIR/ve/bin/cloudinitd terminate $INSTANCE @@ -49,5 +39,19 @@ rm $SWIFTVM_INSTANCES > /dev/null 2>&1 fi +if [ "$WORKER_MODE" == "ec2" ] && [ -f "$SWIFTVM_INSTANCES" ]; then + for INSTANCE in `cat $SWIFTVM_INSTANCES` + do + echo Stopping ec2 instance $INSTANCE... + $SWIFTVMBOOT_DIR/bin/gp-instance-terminate $INSTANCE | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" + done + rm $SWIFTVM_INSTANCES > /dev/null 2>&1 +fi + +if [ -f "$HOME/.swift/.machines" ]; then + rm "$HOME/.swift/.machines" +fi + popd > /dev/null 2>&1 +echo Done Modified: trunk/libexec/_swiftwrap.staging =================================================================== --- trunk/libexec/_swiftwrap.staging 2011-12-06 21:37:20 UTC (rev 5348) +++ trunk/libexec/_swiftwrap.staging 2011-12-06 21:40:37 UTC (rev 5349) @@ -310,15 +310,6 @@ fi checkError $? "Exit code $?" -if [ ! -s "$STDOUT" ]; then - log "Removing empty stdout" - rm -f $STDOUT -fi -if [ ! -s "$STDERR" ]; then - log "Removing empty stderr" - rm -f $STDERR -fi - logstate "EXECUTE_DONE" log "Job ran successfully" From davidk at ci.uchicago.edu Wed Dec 7 11:53:27 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 7 Dec 2011 11:53:27 -0600 (CST) Subject: [Swift-commit] r5350 - in wwwdev: case_studies case_studies/images inc main Message-ID: <20111207175327.CD74B9CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-07 11:53:27 -0600 (Wed, 07 Dec 2011) New Revision: 5350 Added: wwwdev/case_studies/Glass-Structure.php wwwdev/case_studies/Hydrology.php wwwdev/case_studies/Protein-RNA.php wwwdev/case_studies/Protein-Structure.php wwwdev/case_studies/images/climate.png wwwdev/case_studies/images/glass.png wwwdev/case_studies/images/protein1.png wwwdev/case_studies/images/protein2.png wwwdev/case_studies/images/protein3.png wwwdev/case_studies/images/rdcep1.png wwwdev/case_studies/images/rdcep2.png wwwdev/case_studies/images/rdcep3.png wwwdev/case_studies/images/rdcep4.png wwwdev/case_studies/images/rna.png Modified: wwwdev/case_studies/index.php wwwdev/inc/header2.php wwwdev/main/index.php Log: Updates to case studies Added: wwwdev/case_studies/Glass-Structure.php =================================================================== --- wwwdev/case_studies/Glass-Structure.php (rev 0) +++ wwwdev/case_studies/Glass-Structure.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -0,0 +1,63 @@ + + + + +Swift - Case Studies + + + + + + + + +
    + + + + +
    + + +
    +

    Glass Structure Modeling

    +

    +This project models of aspects of glass structure at a theoretical chemistry level, by Glen Hocky and David Reichmann, Columbia University Department of Chemistry. +

    + +

    Approach. +Recent studies of the glass transition in model systems have focused on calculating from theory or simulation what is known as the ?mosaic length?. This project evaluated a new ?cavity method? for measuring this length scale. Correlation functions are calculated at the interior of cavities of varying sizes and averaged over many independent simulations to determine a thermodynamic length. Using Swift on the Uchicago Beagle supercomputer and the Open Science Grid, Hocky investigated whether this thermodynamic length causes variations among seemingly identical systems. ~1M Beagle CPU hours were used, and many hundreds of thousand of hours of computing were performed using Swift on the Open Science Grid. +

    Results. +Three simple models of glassy behavior were studied. All appear the same (top, abc) but only two of which have particles relaxing at the same rate for the same temperature (top, d). This would imply that the glass structure does not dictate the dynamics. A new computational technique was used to extract a length scale on which the liquid is ordered in an otherwise?undetectable?way. Results (bottom) showed that using this length we can distinguish the two systems which have the same dynamics as separate from the third which has faster dynamics than the other two.? + +A manuscript is in preparation for Physical Review Letters. +

    +

     

    +
    + +
    + +

     

    +
    + + +
    + +
    + + + + + + + + Added: wwwdev/case_studies/Hydrology.php =================================================================== --- wwwdev/case_studies/Hydrology.php (rev 0) +++ wwwdev/case_studies/Hydrology.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -0,0 +1,64 @@ + + + + +Swift - Case Studies + + + + + + + + +
    + + + + +
    + + +
    +

    Modeling Climate Impact on Hydrology

    +

    +Modeling the hydrology of the Mississippi river basin to assess the impacts of climate change and crop changes driven by energy/economics factors. +

    + +

    Approach. +wift is used to perform large-scale modeling runs using SWAT, the Soil and Water Assesment Tool, to study of the impact of global temperature increase on on water and plant productivity in the Upper Mississippi River Basin. + +These studies use Swift to perform calibration, sensitivity studies, and optimzation using SCE optimization methods (structured complex evolution) methods. All of these computational modling procedures involve multiple runs of thousands of invocations of SWAT to model the timing and magnitude of changes in runoff, soil moisture, water quality, water availability, and crop yield in important +agricultural areas. +

    Results. +Results of this research demonstrate that plausible changes in temperature and precipitation caused by increases in atmospheric greenhouse gas concentrations could have major impacts on both +

    +

     

    +
    + +
    + +

     

    +
    + + +
    + +
    + + + + + + + + Added: wwwdev/case_studies/Protein-RNA.php =================================================================== --- wwwdev/case_studies/Protein-RNA.php (rev 0) +++ wwwdev/case_studies/Protein-RNA.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -0,0 +1,62 @@ + + + + +Swift - Case Studies + + + + + + + + +
    + + + + +
    + + +
    +

    Protein-RNA Interaction Modeling

    +

    +M. Parisien (with T. Sosnick, T. Pan, and K. Freed) used Beagle to develop a first-generation algorithm for the prediction of the RNA-protein interactome. +

    + +

    Approach. +Non-coding RNAs often function in cells through specific interactions with their protein partners. Experiments alone cannot provide a complete picture of the RNA-protein interactome. To complement experimental methods, computational approaches are highly desirable. No existing method, however, can provide genome-wide predictions of docked RNA-protein complexes. +the application of computational predictions, together with experimental methods, will provide a more complete understanding on cellular networks and function of RNPs. The approach makes use of a rigid-body docking algorithm and a scoring function custom- tailored for protein-tRNA interactions. Using Swift, Beagle screened about 300 proteins per day on 80 nodes of 24 cores (11% of the total XE6?s power). +

    Results. +The scoring function can identify the native docking conformation in large sets of decoys (100,000) for many known protein-tRNA complexes (4TRA shown here). (left) Scores for true positive complexes (?)(N=28) are compared to true negative ones of low (?)(N=40) and high (?) (N=40) isoelectric points. (right) Because the density curve of the true positives, which have pI < 7, has minimal overlap with the curve of the low pI true negatives (blue area), the scoring function has the specificity to identify tRNA-binding proteins. +

    +

     

    +
    + +
    + +

     

    +
    + + +
    + +
    + + + + + + + + Added: wwwdev/case_studies/Protein-Structure.php =================================================================== --- wwwdev/case_studies/Protein-Structure.php (rev 0) +++ wwwdev/case_studies/Protein-Structure.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -0,0 +1,66 @@ + + + + +Swift - Case Studies + + + + + + + + +
    + + + + +
    + + +
    +

    Protein Structure Prediction

    +

    The laboratories of Karl Freed and Tobin Sosnick use Swift to develop and validate methods to predict protein structure using homology-free approaches.

    + +

    Approach.A. Adhikari (under K. Freed and T. Sosnick) has developed new structure prediction + techniques based on Monte Carlo simulated annealing which employ novel, compact molecular + representations and innovative ?moves? of the protein backbone to achieve accurate prediction + with far less computation then previous methods. One of the applications of the method involves + rebuilding local regions in protein structures, called ?loop modeling?, a problem which the group + tackled with considerable success in the CASP protein folding tournament(shown in right). They are + now testing further algorithmic innovations using the computational power of Beagle. + +

    Results. + The group is now developing a new iterative algorithm for predicting protein structure and folding + pathway starting only from the amino acid sequence. In progress, no publications yet from Beagle studies. +

    +

     

    +
    + +
    + +

     

    +
    + + +
    + +
    + + + + + + + + Added: wwwdev/case_studies/images/climate.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/climate.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/glass.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/glass.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/protein1.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/protein1.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/protein2.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/protein2.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/protein3.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/protein3.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/rdcep1.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/rdcep1.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/rdcep2.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/rdcep2.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/rdcep3.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/rdcep3.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/rdcep4.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/rdcep4.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/rna.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/rna.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: wwwdev/case_studies/index.php =================================================================== --- wwwdev/case_studies/index.php 2011-12-06 21:40:37 UTC (rev 5349) +++ wwwdev/case_studies/index.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -30,25 +30,25 @@

    Protein Structure Prediction

    The laboratories of Karl Freed and Tobin Sosnick use Beagle to develop and validate methods to predict protein structure using homology-free approaches.

    - learn more + learn more

     

    Protein-RNA interaction modeling

    M. Parisien (with T. Sosnick, T. Pan, and K. Freed) used Beagle to develop a first-generation algorithm for the prediction of the RNA-protein interactome.

    - learn more + learn more

     

    Glass Structure Modeling

    This project models of aspects of glass structure at a theoretical chemistry level. (Hocky/Reichman)

    - learn more + learn more

     

    Modeling climate impact on hydrology

    Projecting biofuel production impact on hydrology (E. Yan)

    - learn more + learn more

     

    Modified: wwwdev/inc/header2.php =================================================================== --- wwwdev/inc/header2.php 2011-12-06 21:40:37 UTC (rev 5349) +++ wwwdev/inc/header2.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -13,9 +13,7 @@ Modified: wwwdev/main/index.php =================================================================== --- wwwdev/main/index.php 2011-12-06 21:40:37 UTC (rev 5349) +++ wwwdev/main/index.php 2011-12-07 17:53:27 UTC (rev 5350) @@ -3,7 +3,7 @@ -Swift - A system for rapid and reliable specification, execution, and management of large scale workflows +Swift - The Parallel Scripting Language From davidk at ci.uchicago.edu Wed Dec 7 13:54:12 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 7 Dec 2011 13:54:12 -0600 (CST) Subject: [Swift-commit] r5361 - wwwdev Message-ID: <20111207195412.6B08D9CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-07 13:54:12 -0600 (Wed, 07 Dec 2011) New Revision: 5361 Modified: wwwdev/push_to.sh Log: Permissions fix Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-07 19:32:46 UTC (rev 5360) +++ wwwdev/push_to.sh 2011-12-07 19:54:12 UTC (rev 5361) @@ -214,7 +214,6 @@ inc/side_content.php inc/header.php docs/tracking_policy.php -docs/index copy.php docs/license.php docs/usage_data.php docs/index.php @@ -233,11 +232,11 @@ do destination_dir=`dirname $FILE` mkdir -p $DESTINATION/$destination_dir - chgrp $GROUP $DESTIONATION/$destination_dir > /dev/null 2>&1 - chmod $CHMOD_DIRECTORY_MODE $DESTINATION > /dev/null 2>&1 - cp $FILE $DESTINATION/$destination_dir/ > /dev/null 2>&1 - chgrp $GROUP $FILE > /dev/null 2>&1 - chmod $CHMOD_FILE_MODE $FILE > /dev/null 2>&1 + chgrp $GROUP $DESTINATION/$destination_dir > /dev/null 2>&1 + chmod $CHMOD_DIRECTORY_MODE $DESTINATION/$destination_dir > /dev/null 2>&1 + cp -v $FILE $DESTINATION/$destination_dir + chgrp $GROUP $DESTINATION/$FILE > /dev/null 2>&1 + chmod $CHMOD_FILE_MODE $DESTINATION/$FILE > /dev/null 2>&1 done popd > /dev/null 2>&1 From davidk at ci.uchicago.edu Wed Dec 7 14:08:39 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 7 Dec 2011 14:08:39 -0600 (CST) Subject: [Swift-commit] r5362 - in wwwdev/case_studies: . images Message-ID: <20111207200839.75D3F9CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-07 14:08:39 -0600 (Wed, 07 Dec 2011) New Revision: 5362 Added: wwwdev/case_studies/images/protein2.jpg Modified: wwwdev/case_studies/Protein-Structure.php Log: Save the world from giant godzilla protein Modified: wwwdev/case_studies/Protein-Structure.php =================================================================== --- wwwdev/case_studies/Protein-Structure.php 2011-12-07 19:54:12 UTC (rev 5361) +++ wwwdev/case_studies/Protein-Structure.php 2011-12-07 20:08:39 UTC (rev 5362) @@ -24,7 +24,7 @@

    Protein Structure Prediction

    The laboratories of Karl Freed and Tobin Sosnick use Swift to develop and validate methods to predict protein structure using homology-free approaches.

    - +

    Approach.A. Adhikari (under K. Freed and T. Sosnick) has developed new structure prediction techniques based on Monte Carlo simulated annealing which employ novel, compact molecular representations and innovative ?moves? of the protein backbone to achieve accurate prediction Added: wwwdev/case_studies/images/protein2.jpg =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/protein2.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From davidk at ci.uchicago.edu Wed Dec 7 14:12:04 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 7 Dec 2011 14:12:04 -0600 (CST) Subject: [Swift-commit] r5363 - wwwdev Message-ID: <20111207201204.765E69CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-07 14:12:04 -0600 (Wed, 07 Dec 2011) New Revision: 5363 Modified: wwwdev/push_to.sh Log: Push new images Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-07 20:08:39 UTC (rev 5362) +++ wwwdev/push_to.sh 2011-12-07 20:12:04 UTC (rev 5363) @@ -78,6 +78,18 @@ main/template.php case_studies/images case_studies/images/CIM-Earth.jpg +case_studies/images/climate.png +case_studies/images/glass.png +case_studies/images/protein1.jpg +case_studies/images/protein1-old.png +case_studies/images/protein2.jpg +case_studies/images/protein2.png +case_studies/images/protein3.png +case_studies/images/rdcep1.png +case_studies/images/rdcep2.png +case_studies/images/rdcep3.png +case_studies/images/rdcep4.png +case_studies/images/rna.png case_studies/index.php case_studies/CIM-Earth.php style.css From davidk at ci.uchicago.edu Wed Dec 7 14:51:01 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 7 Dec 2011 14:51:01 -0600 (CST) Subject: [Swift-commit] r5364 - in wwwdev: . case_studies case_studies/images Message-ID: <20111207205101.7DAC19CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-07 14:51:01 -0600 (Wed, 07 Dec 2011) New Revision: 5364 Added: wwwdev/case_studies/images/glass2.jpg wwwdev/case_studies/images/hydrology.jpg Modified: wwwdev/case_studies/Glass-Structure.php wwwdev/case_studies/Hydrology.php wwwdev/push_to.sh Log: Updates to some graphics for case studies Modified: wwwdev/case_studies/Glass-Structure.php =================================================================== --- wwwdev/case_studies/Glass-Structure.php 2011-12-07 20:12:04 UTC (rev 5363) +++ wwwdev/case_studies/Glass-Structure.php 2011-12-07 20:51:01 UTC (rev 5364) @@ -26,7 +26,7 @@

    This project models of aspects of glass structure at a theoretical chemistry level, by Glen Hocky and David Reichmann, Columbia University Department of Chemistry.

    - +

    Approach. Recent studies of the glass transition in model systems have focused on calculating from theory or simulation what is known as the ?mosaic length?. This project evaluated a new ?cavity method? for measuring this length scale. Correlation functions are calculated at the interior of cavities of varying sizes and averaged over many independent simulations to determine a thermodynamic length. Using Swift on the Uchicago Beagle supercomputer and the Open Science Grid, Hocky investigated whether this thermodynamic length causes variations among seemingly identical systems. ~1M Beagle CPU hours were used, and many hundreds of thousand of hours of computing were performed using Swift on the Open Science Grid.

    Results. Modified: wwwdev/case_studies/Hydrology.php =================================================================== --- wwwdev/case_studies/Hydrology.php 2011-12-07 20:12:04 UTC (rev 5363) +++ wwwdev/case_studies/Hydrology.php 2011-12-07 20:51:01 UTC (rev 5364) @@ -26,7 +26,7 @@

    Modeling the hydrology of the Mississippi river basin to assess the impacts of climate change and crop changes driven by energy/economics factors.

    - +

    Approach. wift is used to perform large-scale modeling runs using SWAT, the Soil and Water Assesment Tool, to study of the impact of global temperature increase on on water and plant productivity in the Upper Mississippi River Basin. Added: wwwdev/case_studies/images/glass2.jpg =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/glass2.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/case_studies/images/hydrology.jpg =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/hydrology.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-07 20:12:04 UTC (rev 5363) +++ wwwdev/push_to.sh 2011-12-07 20:51:01 UTC (rev 5364) @@ -90,8 +90,17 @@ case_studies/images/rdcep3.png case_studies/images/rdcep4.png case_studies/images/rna.png +case_studies/images/hydrology.jpg +case_studies/images/glass2.jpg case_studies/index.php case_studies/CIM-Earth.php +case_studies/Hydrology.php +case_studies/Glass-Structure.php +case_studies/Protein-Structure.php +case_studies/Protein-RNA.php +case_studies/index.php +case_studies/CIM-Earth.php + style.css sitemap.xml apps/index.php From davidk at ci.uchicago.edu Wed Dec 7 16:23:16 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 7 Dec 2011 16:23:16 -0600 (CST) Subject: [Swift-commit] r5365 - in wwwdev: . case_studies case_studies/images inc Message-ID: <20111207222316.6B0AB9CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-07 16:23:16 -0600 (Wed, 07 Dec 2011) New Revision: 5365 Added: wwwdev/case_studies/CNARI.php wwwdev/case_studies/images/CNARI-fig2.png Modified: wwwdev/case_studies/index.php wwwdev/inc/case_study_sidebar.php wwwdev/inc/main_rotator.php wwwdev/push_to.sh Log: CNARI case study Added: wwwdev/case_studies/CNARI.php =================================================================== --- wwwdev/case_studies/CNARI.php (rev 0) +++ wwwdev/case_studies/CNARI.php 2011-12-07 22:23:16 UTC (rev 5365) @@ -0,0 +1,79 @@ + + + + +Swift - Case Studies + + + + + + + + +

    + + + + +
    + + +
    +

    Computational Neuroscience Application Research Infrastructure

    +

    +Functional magnetic resonance imaging (fMRI) has led to an enormous growth in the study of cognitive +neuroanatomy. Combined with advances in high-field electrophysiology, fMRI has led to +a fast-growing field of human neuroscience. +

    +Researchers led by Dr. Steven Small of UCalifornia Irvine developed a new computational framework that +facilitates fMRI experimentation and analysis, and which has led to some rethinking of the nature of +experimental design and analysis. +

    + +

    + Graphical depiction of permutations of original data. Brain activity data were collected from 24 participants that were exposed to two experimental conditions. A single +permutation consisted of (a) switching the condition labels of the experimental conditions, for 1 or more participants, (b) re-calculating the group-level effects, and (c) spatially +clustering the results to identify what is the largest cluster found for the current permutation. This procedure results in a sampling distribution for the largest cluster in each +permutation, which is then used to threshold the original data.

    +
    +

    Approach. +The Computational Neuroscience Applications Research Infrastructure (CNARI) incorporates novel methods for maintaining, serving, and analyzing massive amounts of fMRI data. CNARI uses Swift to describe, execute, and share parallel workflows, and relational database technology to provide new methods to organize and analyze experimental results. +

    +Swift runs CNARI workflows on a wide variety of resources, including TeraGrid/XSEDE systems and institutional computing clusters. By using CNARI, it is possible to perform naturalistic, network-based, statistically valid experiments in systems neuroscience on a very large scale, with ease of data manipulation and analysis, within reasonable +computational time scales. + + +

     

    +
    + +
    + +

     

    +
    + + +
    + +
    + + + + + + + + Added: wwwdev/case_studies/images/CNARI-fig2.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/CNARI-fig2.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: wwwdev/case_studies/index.php =================================================================== --- wwwdev/case_studies/index.php 2011-12-07 20:51:01 UTC (rev 5364) +++ wwwdev/case_studies/index.php 2011-12-07 22:23:16 UTC (rev 5365) @@ -35,7 +35,7 @@

     

    -

    Protein-RNA interaction modeling

    +

    Protein-RNA Interaction Modeling

    M. Parisien (with T. Sosnick, T. Pan, and K. Freed) used Beagle to develop a first-generation algorithm for the prediction of the RNA-protein interactome.

    learn more

     

    @@ -47,15 +47,17 @@

     

    -

    Modeling climate impact on hydrology

    +

    Modeling Climate Impact on Hydrology

    Projecting biofuel production impact on hydrology (E. Yan)

    learn more

     

    -

    Computational neuroscience application research infrastructure

    -

    needs text here

    - learn more +

    Computational Neuroscience Application Research Infrastructure

    +

    The Computational Neuroscience Applications Research Infrastructure +(CNARI) uses Swift for maintaining, serving, and +analyzing massive amounts of fMRI data.

    + learn more

     

    Modified: wwwdev/inc/case_study_sidebar.php =================================================================== --- wwwdev/inc/case_study_sidebar.php 2011-12-07 20:51:01 UTC (rev 5364) +++ wwwdev/inc/case_study_sidebar.php 2011-12-07 22:23:16 UTC (rev 5365) @@ -5,5 +5,5 @@
  • Protein-RNA interaction modeling
  • Glass Structure Modeling
  • Modeling climate impact on hydrology
  • -
  • Computational neuroscience application research infrastructure
  • -
\ No newline at end of file +
  • Computational neuroscience application research infrastructure
  • + Modified: wwwdev/inc/main_rotator.php =================================================================== --- wwwdev/inc/main_rotator.php 2011-12-07 20:51:01 UTC (rev 5364) +++ wwwdev/inc/main_rotator.php 2011-12-07 22:23:16 UTC (rev 5365) @@ -1,5 +1,5 @@ @@ -7,4 +7,4 @@ I'm A Caption: I can have links, style or anything that is valid markup :) - \ No newline at end of file + Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-07 20:51:01 UTC (rev 5364) +++ wwwdev/push_to.sh 2011-12-07 22:23:16 UTC (rev 5365) @@ -100,7 +100,8 @@ case_studies/Protein-RNA.php case_studies/index.php case_studies/CIM-Earth.php - +case_studies/CNARI.php +case_studies/images/CNARI-fig2.png style.css sitemap.xml apps/index.php From wilde at ci.uchicago.edu Wed Dec 7 17:20:18 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 17:20:18 -0600 (CST) Subject: [Swift-commit] r5367 - wwwdev Message-ID: <20111207232018.A9EEF9CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 17:20:18 -0600 (Wed, 07 Dec 2011) New Revision: 5367 Added: wwwdev/TODO Log: Add TODO list of work remaining, comments, and ideas. Added: wwwdev/TODO =================================================================== --- wwwdev/TODO (rev 0) +++ wwwdev/TODO 2011-12-07 23:20:18 UTC (rev 5367) @@ -0,0 +1,13 @@ +----- Forwarded Message ----- +From: "Ketan Maheshwari" +To: "Michael Wilde" +Sent: Wednesday, December 7, 2011 5:14:04 PM +Subject: Re: Please help review the new Swift web site + +Mike, + +The site looks excellent. I was wondering if we want to include a sitemap to make google tracking more effective. + +--- + + From wilde at ci.uchicago.edu Wed Dec 7 17:43:47 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 17:43:47 -0600 (CST) Subject: [Swift-commit] r5368 - wwwdev Message-ID: <20111207234347.7C0D89CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 17:43:47 -0600 (Wed, 07 Dec 2011) New Revision: 5368 Modified: wwwdev/TODO Log: more todos Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-07 23:20:18 UTC (rev 5367) +++ wwwdev/TODO 2011-12-07 23:43:47 UTC (rev 5368) @@ -1,3 +1,26 @@ +TO DO LIST at front; comments to sort through at end +--- + +Make the rotator graphics more uniform in labelling and image weight etc + +A minor change: lets make the main page tag line the same font as the +rest of the page. I think I'll play with the text of that a little, to +add "from multicore notebooks to clusters, grids, clouds and +supercomputers? May drop the initial "The". + +Move "support" to be the third item in the nav bar + +Improve the About page. + +Add support credits to the about page. State grants explicitly. + +Reword the support credit on the main page (add DOE; spell out NIH...) + + +REVIEWER AND USER COMMENTS - to sort and convert to To-Do items: + +--- + ----- Forwarded Message ----- From: "Ketan Maheshwari" To: "Michael Wilde" From wilde at ci.uchicago.edu Wed Dec 7 17:44:32 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 17:44:32 -0600 (CST) Subject: [Swift-commit] r5369 - wwwdev Message-ID: <20111207234432.64C619CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 17:44:32 -0600 (Wed, 07 Dec 2011) New Revision: 5369 Modified: wwwdev/TODO Log: more todos Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-07 23:43:47 UTC (rev 5368) +++ wwwdev/TODO 2011-12-07 23:44:32 UTC (rev 5369) @@ -16,6 +16,7 @@ Reword the support credit on the main page (add DOE; spell out NIH...) +tweak the interval between rotations on the home page - seems a touch fast right now REVIEWER AND USER COMMENTS - to sort and convert to To-Do items: From wilde at ci.uchicago.edu Wed Dec 7 17:48:08 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 17:48:08 -0600 (CST) Subject: [Swift-commit] r5370 - wwwdev Message-ID: <20111207234808.1825B9CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 17:48:07 -0600 (Wed, 07 Dec 2011) New Revision: 5370 Modified: wwwdev/TODO Log: more todos Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-07 23:44:32 UTC (rev 5369) +++ wwwdev/TODO 2011-12-07 23:48:07 UTC (rev 5370) @@ -18,6 +18,10 @@ tweak the interval between rotations on the home page - seems a touch fast right now +adjust title on main (all?) pages, from: +Swift - A system for rapid and reliable specification, execution, and management of large scale workflows + + REVIEWER AND USER COMMENTS - to sort and convert to To-Do items: --- From wilde at ci.uchicago.edu Wed Dec 7 21:35:14 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 21:35:14 -0600 (CST) Subject: [Swift-commit] r5371 - in wwwdev: . about inc Message-ID: <20111208033514.B1D449CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 21:35:14 -0600 (Wed, 07 Dec 2011) New Revision: 5371 Modified: wwwdev/TODO wwwdev/about/index.php wwwdev/inc/about_sidebar.php wwwdev/inc/docs_sidebar.php Log: Update team member list on About page. Remove TeraGrid note on Docs and About sidebar. Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-07 23:48:07 UTC (rev 5370) +++ wwwdev/TODO 2011-12-08 03:35:14 UTC (rev 5371) @@ -39,3 +39,19 @@ --- +Hey Mike, + Just some wording things that I found. Maybe they are meant to be like that and these probably do not block the site from launching on Friday. + +Home page +1) "The Swift parallel scripting language is an easy way to use almost any parallel computer system". Instead of parallel computer system I think should read High-Performance resource since technically we could retrieve all the data from some parallel file system and do work locally on a workstation. Swift does not limit to only use parallel computing systems. At the very least maybe it should read "parallel computing system". +2) Bottom left: replace "it" with "Swift". This is more of a pet-peeve of mine when reading a website. Sometimes the clarity of what "it" is, is not obvious. +3) Bottom left: case studies should be a link to the case studies section + +Documention: +1) The TeraGrid section on the right is in "" but the GlobusToolkit and the Java COG Kit are both not in "". +2) Swift tutorial: "... introducing you to THE Swift environment" +3) Swift userguide: Swift should be capitalized in the first sentence. Swift seems to be capitalized in every other instance. + +These are just writing things that I see wrong(imho) but you may think are fine. More of pet-peeves of mine really when I visit a website and nothing here is really a high-prio to fix or anything to keep the site from launching on Friday. + +--- Modified: wwwdev/about/index.php =================================================================== --- wwwdev/about/index.php 2011-12-07 23:48:07 UTC (rev 5370) +++ wwwdev/about/index.php 2011-12-08 03:35:14 UTC (rev 5371) @@ -22,7 +22,7 @@
    -

    Swift incorporates several existing toolkits and engines to achieve its results. What can Swift do for you?

    +

    Swift incorporates several existing toolkits.

    Globus Toolkit

    Swift uses the Globus Toolkit as middleware to talk to various resources.

    @@ -30,10 +30,12 @@

    Java CoG Kit

    The CoG Kit provides a high level uniform interface to different versions of the Globus Toolkit. It also contains the Karajan language and interpreter which is used as an underlying execution engine for Swift.

    +
    Modified: wwwdev/inc/about_sidebar.php =================================================================== --- wwwdev/inc/about_sidebar.php 2011-12-07 23:48:07 UTC (rev 5370) +++ wwwdev/inc/about_sidebar.php 2011-12-08 03:35:14 UTC (rev 5371) @@ -1,11 +1,25 @@ -

    Swift Development Team

    +

    Current Swift Project Team

    +
      -
    • Ian Foster
    • -
    • Mike Wilde
    • -
    • Mihail Hategan
    • -
    • Ben Clifford
    • -
    • Yong Zhao
    • -
    • Veronika Nefedova
    • +
    • Ian Foster
    • +
    • Mihail Hategan
    • +
    • Dan Katz
    • +
    • David Kelly
    • +
    • Ketan Maheshwari
    • +
    • Jon Monette
    • +
    • Mike Wilde
    • +
    • Justin Wozniak
    + +

    Swift Alumni

    + +
      +
    • Ben Clifford
    • +
    • Sarah Kenny
    • +
    • Veronika Nefedova
    • +
    • Tibi Stef-Praun
    • +
    • Yong Zhao
    • +
    + Modified: wwwdev/inc/docs_sidebar.php =================================================================== --- wwwdev/inc/docs_sidebar.php 2011-12-07 23:48:07 UTC (rev 5370) +++ wwwdev/inc/docs_sidebar.php 2011-12-08 03:35:14 UTC (rev 5371) @@ -13,11 +13,12 @@ Globus Toolkit. It also contains the Karajan language and interpreter which is used as an underlying execution engine for Swift.

    - +

     

    From wilde at ci.uchicago.edu Wed Dec 7 22:11:02 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 22:11:02 -0600 (CST) Subject: [Swift-commit] r5372 - wwwdev/about Message-ID: <20111208041102.658B79CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 22:11:02 -0600 (Wed, 07 Dec 2011) New Revision: 5372 Modified: wwwdev/about/index.php Log: Upate About text. Modified: wwwdev/about/index.php =================================================================== --- wwwdev/about/index.php 2011-12-08 03:35:14 UTC (rev 5371) +++ wwwdev/about/index.php 2011-12-08 04:11:02 UTC (rev 5372) @@ -22,7 +22,49 @@
    -

    Swift incorporates several existing toolkits.

    +

    +The Swift parallel scripting language enables scientists, engineers, +and data analysts to express and coordinate parallel invocations of +application programs on distributed and parallel computing platforms: +one of the dominant modes of performing computation in science and +engineering. +

    +

    +Swift has been fruitfully employed in many diverse domains, including +biochemistry, neuroscience, climate, earthquake +simulation, hydrology, energy, economics, social network analysis, +mass media analysis, materials science, and astronomy. It runs on a +variety of platforms, and enables users to move their application +scripts between them with relative ease. As personal computers become +increasingly parallel, Swift enables users to leverage this parallel +power with little or no experience in parallel programming. And Swift +opens up complex cyberinfrastructure like the Open Science Grid, +TeraGrid/XSEDE and FutureGrid to a wide range and scale of scientific +user communities, broadening participation in high performance +computing. +

    +

    +Swift comprises a programming model, scripting language, and runtime +engine. Its implicitly parallel programming model allows users with +minimal programming expertise to transparently utilize parallel and +distributed systems. The scripting language is minimal and standalone, +The Swift programming model has also been embedded into the highly +popular R language for data analysis (via the SwiftR package), and has +been experimentally embedded into Python via the PyDFlow package. +

    +

    +Swift has been actively engaged in training and education in parallel +computing. From its inception, Swift has been leveraged as a base to +broaden participation in scientific computing, and has created +opportunities for, and leveraged the skills and contributions of +numerous graduate and undergraduate students. +Swift provides the parallel computing base for the secondary education +project "I2U2: Interactions in Understanding the Universe," +(http://www.i2u2.org) which teaches the concepts of parallel and +distributed computing to our next generation of scientists at the high +school level. +

    +

    Swift incorporates several existing toolkits.

    Globus Toolkit

    Swift uses the Globus Toolkit as middleware to talk to various resources.

    From wilde at ci.uchicago.edu Wed Dec 7 22:15:54 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 22:15:54 -0600 (CST) Subject: [Swift-commit] r5373 - wwwdev Message-ID: <20111208041554.530499CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 22:15:54 -0600 (Wed, 07 Dec 2011) New Revision: 5373 Modified: wwwdev/TODO Log: more todos Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-08 04:11:02 UTC (rev 5372) +++ wwwdev/TODO 2011-12-08 04:15:54 UTC (rev 5373) @@ -21,6 +21,7 @@ adjust title on main (all?) pages, from: Swift - A system for rapid and reliable specification, execution, and management of large scale workflows +make swift-* list search box on support page list results newest first. REVIEWER AND USER COMMENTS - to sort and convert to To-Do items: From wilde at ci.uchicago.edu Wed Dec 7 22:24:57 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Wed, 7 Dec 2011 22:24:57 -0600 (CST) Subject: [Swift-commit] r5374 - wwwdev/inc Message-ID: <20111208042457.268DD9CCA8@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-07 22:24:57 -0600 (Wed, 07 Dec 2011) New Revision: 5374 Modified: wwwdev/inc/about_sidebar.php Log: Fix typos, add more names. Modified: wwwdev/inc/about_sidebar.php =================================================================== --- wwwdev/inc/about_sidebar.php 2011-12-08 04:15:54 UTC (rev 5373) +++ wwwdev/inc/about_sidebar.php 2011-12-08 04:24:57 UTC (rev 5374) @@ -1,20 +1,23 @@

    Current Swift Project Team

      +
    • Tim Armstrong
    • Ian Foster
    • -
    • Mihail Hategan
    • +
    • Mihael Hategan
    • Dan Katz
    • David Kelly
    • Ketan Maheshwari
    • Jon Monette
    • Mike Wilde
    • Justin Wozniak
    • +
    • Zhao Zhang

    Swift Alumni

    • Ben Clifford
    • +
    • Allan Espinosa
    • Sarah Kenny
    • Veronika Nefedova
    • Tibi Stef-Praun
    • From wilde at ci.uchicago.edu Thu Dec 8 08:32:26 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Thu, 8 Dec 2011 08:32:26 -0600 (CST) Subject: [Swift-commit] r5375 - wwwdev Message-ID: <20111208143226.CB4079CCAA@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-08 08:32:26 -0600 (Thu, 08 Dec 2011) New Revision: 5375 Modified: wwwdev/TODO Log: more todos Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-08 04:24:57 UTC (rev 5374) +++ wwwdev/TODO 2011-12-08 14:32:26 UTC (rev 5375) @@ -23,6 +23,50 @@ make swift-* list search box on support page list results newest first. +Add "parallel scripting language" on the blue top stripe, to the right of "Swift >>>" logo +Make text in top line same font as rest of page, and say: + An easy way to use any parallel system: from multicore notebooks to clusters, clouds and supercomputers + Makes parallel computing easier - from multicore notebooks to clusters, clouds and supercomputers +=> Fast easy parallel scripting - on multicores, clusters, clouds and supercomputers + +--- For Papers page: +- Change headers to: + +o Swift language and runtime technology +o Swift applications +o Research leading up to Swift +o Related research + +- make sure we dont use the word "swift script" + + +- Add papers: + +Swift applications: + +o NCAR paper from MTAGS11 (M Woitasek et al) +o STOMP paper from MTAGS11 (K Agarwal et al) +o LOOPS paper from Protein Science (Adhikari et al) +o SEM paper(s) from OpenMx project (1 primary; Boker et al) + +(for these, link to posted papers on MTAGS workshop site and online PS journal) + +Swift language etc: + +o several papers from Uram and Hereld on using Swift in portals (3-4 papers) + +Swift research: + +o Tim Armstrings thesis on PyDFlow +o maybe a pointer to an R site + +Can look under my page in Google Scholar for other missing papers. + +Also to do: reformat latest text from ParCo paper to open format that can be freely posted. + +--- + + REVIEWER AND USER COMMENTS - to sort and convert to To-Do items: --- From davidk at ci.uchicago.edu Thu Dec 8 18:24:45 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Thu, 8 Dec 2011 18:24:45 -0600 (CST) Subject: [Swift-commit] r5384 - in wwwdev: . css inc main Message-ID: <20111209002445.C93D89CCAA@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-08 18:24:45 -0600 (Thu, 08 Dec 2011) New Revision: 5384 Modified: wwwdev/TODO wwwdev/css/style3.css wwwdev/inc/header2.php wwwdev/main/index.php Log: Finish some items from the todo list Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-09 00:24:15 UTC (rev 5383) +++ wwwdev/TODO 2011-12-09 00:24:45 UTC (rev 5384) @@ -8,7 +8,7 @@ add "from multicore notebooks to clusters, grids, clouds and supercomputers? May drop the initial "The". -Move "support" to be the third item in the nav bar +DONE - Move "support" to be the third item in the nav bar Improve the About page. @@ -18,13 +18,18 @@ tweak the interval between rotations on the home page - seems a touch fast right now +DONE - title is now "Swift - The Parallel Scripting Language". adjust title on main (all?) pages, from: Swift - A system for rapid and reliable specification, execution, and management of large scale workflows +DONE - There is no way to do a true sorted search without a google hardware solution, but I made a change to the context xml +to boost the value of newly indexed pages. (Note that all pages from the start of the mailing list until about a month ago +were indexed at the same time. Posts newer than that should be given a boost, but it's not gauranteed) make swift-* list search box on support page list results newest first. Add "parallel scripting language" on the blue top stripe, to the right of "Swift >>>" logo -Make text in top line same font as rest of page, and say: + +DONE - Make text in top line same font as rest of page, and say: An easy way to use any parallel system: from multicore notebooks to clusters, clouds and supercomputers Makes parallel computing easier - from multicore notebooks to clusters, clouds and supercomputers => Fast easy parallel scripting - on multicores, clusters, clouds and supercomputers Modified: wwwdev/css/style3.css =================================================================== --- wwwdev/css/style3.css 2011-12-09 00:24:15 UTC (rev 5383) +++ wwwdev/css/style3.css 2011-12-09 00:24:45 UTC (rev 5384) @@ -95,14 +95,14 @@ } .tagline { - font-family: myriad-pro-1,myriad-pro-2, Arial, Helvetica, sans-serif; + font-family: myriad-pro-1,myriad-pro-2, Arial, Helvetica, sans-serif; font-weight: 300; font-style: normal; text-align:center; + font-size: 20px; text-shadow: 1px 1px 1px #ccc; padding: 30px 0px 30px 0px; color:#333; - font-size: 20px; } #content { Modified: wwwdev/inc/header2.php =================================================================== --- wwwdev/inc/header2.php 2011-12-09 00:24:15 UTC (rev 5383) +++ wwwdev/inc/header2.php 2011-12-09 00:24:45 UTC (rev 5384) @@ -13,7 +13,7 @@ Modified: wwwdev/main/index.php =================================================================== --- wwwdev/main/index.php 2011-12-09 00:24:15 UTC (rev 5383) +++ wwwdev/main/index.php 2011-12-09 00:24:45 UTC (rev 5384) @@ -50,7 +50,7 @@

      - The Swift parallel scripting language is an easy way to use almost any parallel computer system. + The Swift parallel scripting language. Fast easy parallel scripting - on multicores, clusters, clouds and supercomputers

      From wilde at ci.uchicago.edu Thu Dec 8 23:12:07 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Thu, 8 Dec 2011 23:12:07 -0600 (CST) Subject: [Swift-commit] r5388 - wwwdev/case_studies Message-ID: <20111209051207.91A969CCAA@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-08 23:12:07 -0600 (Thu, 08 Dec 2011) New Revision: 5388 Modified: wwwdev/case_studies/Glass-Structure.php Log: Edit Glass case study text; replace image; remove fig references Modified: wwwdev/case_studies/Glass-Structure.php =================================================================== --- wwwdev/case_studies/Glass-Structure.php 2011-12-09 01:36:03 UTC (rev 5387) +++ wwwdev/case_studies/Glass-Structure.php 2011-12-09 05:12:07 UTC (rev 5388) @@ -24,15 +24,20 @@

      Glass Structure Modeling

      -This project models of aspects of glass structure at a theoretical chemistry level, by Glen Hocky and David Reichmann, Columbia University Department of Chemistry. +This project models of aspects of glass structure at a theoretical chemistry level, by Glen Hocky and +David Reichmann, Columbia University Department of Chemistry.

      - + + + +

      Approach. -Recent studies of the glass transition in model systems have focused on calculating from theory or simulation what is known as the ?mosaic length?. This project evaluated a new ?cavity method? for measuring this length scale. Correlation functions are calculated at the interior of cavities of varying sizes and averaged over many independent simulations to determine a thermodynamic length. Using Swift on the Uchicago Beagle supercomputer and the Open Science Grid, Hocky investigated whether this thermodynamic length causes variations among seemingly identical systems. ~1M Beagle CPU hours were used, and many hundreds of thousand of hours of computing were performed using Swift on the Open Science Grid. +Recent studies of the glass transition in model systems have focused on calculating from theory or simulation what is known as the ?mosaic length?. This project evaluated a new ?cavity method? for measuring this length scale. Correlation functions are calculated at the interior of cavities of varying sizes and averaged over many independent simulations to determine a thermodynamic length. Using Swift on the UChicago Beagle supercomputer and the Open Science Grid, Hocky investigated whether this thermodynamic length causes variations among seemingly identical systems. Close to one million Beagle CPU hours were used, and many hundreds of thousand of hours of computing were performed on the Open Science Grid.

      Results. -Three simple models of glassy behavior were studied. All appear the same (top, abc) but only two of which have particles relaxing at the same rate for the same temperature (top, d). This would imply that the glass structure does not dictate the dynamics. A new computational technique was used to extract a length scale on which the liquid is ordered in an otherwise?undetectable?way. Results (bottom) showed that using this length we can distinguish the two systems which have the same dynamics as separate from the third which has faster dynamics than the other two.? -A manuscript is in preparation for Physical Review Letters. +Three simple models of glassy behavior were studied. All appeared the same, but only two of the models have particles relaxing at the same rate for the same temperature. This would imply that the glass structure does not dictate the dynamics. A new computational technique was used to extract a length scale on which the liquid is ordered in an otherwise?undetectable?way. Results showed that using this length we can distinguish the two systems which have the same dynamics as separate from the third which has faster dynamics than the other two.? + +A manuscript describing the study and findings is in preparation.

       

      From wilde at ci.uchicago.edu Thu Dec 8 23:18:25 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Thu, 8 Dec 2011 23:18:25 -0600 (CST) Subject: [Swift-commit] r5389 - wwwdev/main Message-ID: <20111209051825.83C1F9CCAA@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-08 23:18:25 -0600 (Thu, 08 Dec 2011) New Revision: 5389 Modified: wwwdev/main/index.php Log: Slight change to main page title. Modified: wwwdev/main/index.php =================================================================== --- wwwdev/main/index.php 2011-12-09 05:12:07 UTC (rev 5388) +++ wwwdev/main/index.php 2011-12-09 05:18:25 UTC (rev 5389) @@ -3,7 +3,7 @@ -Swift - The Parallel Scripting Language +The Swift Parallel Scripting Language From davidk at ci.uchicago.edu Fri Dec 9 09:27:21 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 09:27:21 -0600 (CST) Subject: [Swift-commit] r5391 - in wwwdev/case_studies: . images Message-ID: <20111209152721.F10A89D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 09:27:21 -0600 (Fri, 09 Dec 2011) New Revision: 5391 Added: wwwdev/case_studies/images/glass1.png Modified: wwwdev/case_studies/Glass-Structure.php Log: Resized glass graphic to fit on page Modified: wwwdev/case_studies/Glass-Structure.php =================================================================== --- wwwdev/case_studies/Glass-Structure.php 2011-12-09 14:44:19 UTC (rev 5390) +++ wwwdev/case_studies/Glass-Structure.php 2011-12-09 15:27:21 UTC (rev 5391) @@ -28,7 +28,7 @@ David Reichmann, Columbia University Department of Chemistry.

      - +

      Approach. Added: wwwdev/case_studies/images/glass1.png =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/glass1.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From davidk at ci.uchicago.edu Fri Dec 9 09:28:12 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 09:28:12 -0600 (CST) Subject: [Swift-commit] r5392 - wwwdev Message-ID: <20111209152812.05A619D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 09:28:11 -0600 (Fri, 09 Dec 2011) New Revision: 5392 Modified: wwwdev/push_to.sh Log: Updated push script for new image Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-09 15:27:21 UTC (rev 5391) +++ wwwdev/push_to.sh 2011-12-09 15:28:11 UTC (rev 5392) @@ -102,6 +102,7 @@ case_studies/CIM-Earth.php case_studies/CNARI.php case_studies/images/CNARI-fig2.png +case_studies/images/glass1.png style.css sitemap.xml apps/index.php From ketan at ci.uchicago.edu Fri Dec 9 09:58:44 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Fri, 9 Dec 2011 09:58:44 -0600 (CST) Subject: [Swift-commit] r5393 - trunk/docs/siteguide Message-ID: <20111209155844.7A8469D025@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-09 09:58:44 -0600 (Fri, 09 Dec 2011) New Revision: 5393 Modified: trunk/docs/siteguide/grid Log: Modified: trunk/docs/siteguide/grid =================================================================== --- trunk/docs/siteguide/grid 2011-12-09 15:28:11 UTC (rev 5392) +++ trunk/docs/siteguide/grid 2011-12-09 15:58:44 UTC (rev 5393) @@ -259,13 +259,13 @@ return stdout and stderr files from the Condor jobs, which will execute the wrapper script "run-workers.sh". -NOTE: this script is current built manually, and wraps around and -transports the worker.pl script. This needs to be automated. - ----- -run-gwms-workers http://communicado.ci.uchicago.edu:$(cat service-0.wport) 100 >& gwms-workers.out & +run-gwms-workers http://communicado.ci.uchicago.edu:$(cat service-0.wport) \ +100 >& gwms-workers.out & ----- +NOTE: The run-gwms-workers is available from the bin/grid directory of swift trunk code. You will need to include it in your PATH. + In the above commandline, one can change the number of workers by changing the second commandline argument, which is 100 in this example. Adding workers from TeraGrid sites From wilde at ci.uchicago.edu Fri Dec 9 12:42:48 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Fri, 9 Dec 2011 12:42:48 -0600 (CST) Subject: [Swift-commit] r5395 - wwwdev Message-ID: <20111209184248.F13C39D025@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-09 12:42:48 -0600 (Fri, 09 Dec 2011) New Revision: 5395 Modified: wwwdev/TODO Log: more todos Modified: wwwdev/TODO =================================================================== --- wwwdev/TODO 2011-12-09 17:32:47 UTC (rev 5394) +++ wwwdev/TODO 2011-12-09 18:42:48 UTC (rev 5395) @@ -34,6 +34,9 @@ Makes parallel computing easier - from multicore notebooks to clusters, clouds and supercomputers => Fast easy parallel scripting - on multicores, clusters, clouds and supercomputers +Add last-modified date to buttom of each page per Marc Snir via Gail. + + --- For Papers page: - Change headers to: From wilde at ci.uchicago.edu Fri Dec 9 12:43:31 2011 From: wilde at ci.uchicago.edu (wilde at ci.uchicago.edu) Date: Fri, 9 Dec 2011 12:43:31 -0600 (CST) Subject: [Swift-commit] r5396 - wwwdev Message-ID: <20111209184331.793249D025@svn.ci.uchicago.edu> Author: wilde Date: 2011-12-09 12:43:31 -0600 (Fri, 09 Dec 2011) New Revision: 5396 Modified: wwwdev/push_to.sh Log: Add new rotator images to push script. Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-09 18:42:48 UTC (rev 5395) +++ wwwdev/push_to.sh 2011-12-09 18:43:31 UTC (rev 5396) @@ -53,6 +53,8 @@ images/orbit/rotator-black.png images/rotator/bg_rotator1.png images/rotator/2011_08_neuroscience.jpg +images/rotator/bg_rotator-hydrology.jpg +images/rotator/bg_rotator-glass.jpg images/rotator/bg_rotator3.jpg images/rotator/bg_rotator2.jpg images/rotator/bg_rotator1.jpg From davidk at ci.uchicago.edu Fri Dec 9 13:27:56 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 13:27:56 -0600 (CST) Subject: [Swift-commit] r5397 - in wwwdev: inc papers Message-ID: <20111209192756.CD3959D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 13:27:56 -0600 (Fri, 09 Dec 2011) New Revision: 5397 Added: wwwdev/papers/sciencegateway.pdf Modified: wwwdev/inc/papers_sidebar.php wwwdev/papers/index.php Log: Sort papers by date, update paper sidebar highlights Modified: wwwdev/inc/papers_sidebar.php =================================================================== --- wwwdev/inc/papers_sidebar.php 2011-12-09 18:43:31 UTC (rev 5396) +++ wwwdev/inc/papers_sidebar.php 2011-12-09 19:27:56 UTC (rev 5397) @@ -1,16 +1,17 @@

      Highlights

      +

      Technology

      +

      Swift: A language for distributed parallel scripting (2011) [pdf]


      Parallel Scripting for Applications at the Petascale and Beyond (2009) [pdf]


      -

      A Notation and System for Expressing and Executing Cleanly Typed Workflows on Messy Scientific Data (2005) [pdf]


      -

      XDTM: XML Data Type and Mapping for Specifying Datasets (2005) [pdf]


      -

      The Virtual Data Grid: A New Model and Architecture for Data-Intensive Collaboration (2003) [pdf]


      -

      Falkon: a Fast and Light-weight tasK executiON framework (2007) [pdf]


      -

      Swift: Fast, Reliable, Loosely Coupled Parallel Computation (2007) [pdf]


      +

      Coasters: uniform resource provisioning and access for clouds and grids (2011) [pdf]


      +

      A solution looking for lots of problems: Generic Portals for Science Infrastructure (2011) [pdf]


      +

      Accelerating Science Gateway Development with Web 2.0 and Swift (2010) [pdf]


      +

      Integrating Task Parallelism into the Python Programming Language (2011) [pdf]


      Applications

      -

      Accelerating Medical Research using the Swift Workflow System (2007) [pdf]


      -

      -The QuarkNet/Grid Collaborative Learning e-Lab (2006) [pdf]


      -

      Using Multiple Grid Resources for Bioinformatics Applications in GADU (2006) [pdf]

      +

      Design and Implementation of ?Many Parallel Task? Hybrid Subsurface Model (2011) [pdf]


      +

      OpenMx: An Open Source Extended Structural Equation Modeling Framework (2011) [pdf]


      +

      Modeling large regions in proteins: Applications to loops, termini, and folding (2011) [pdf]


      +

      Parallel High-resolution Climate Data Analysis using Swift (2011) [pdf]


      Modified: wwwdev/papers/index.php =================================================================== --- wwwdev/papers/index.php 2011-12-09 18:43:31 UTC (rev 5396) +++ wwwdev/papers/index.php 2011-12-09 19:27:56 UTC (rev 5397) @@ -29,7 +29,7 @@ Mihael Hategan, Justin Wozniak, Ketan Maheshwari Coasters: uniform resource provisioning and access for clouds and grids 4th IEEE/ACM International Conference on Utility and Cloud Computing - 2011 + 2011. [ pdf ]
    @@ -37,76 +37,26 @@ Michael Wilde, Mihael Hategan, Justin M. Wozniak, Ben Clifford, Daniel S. Katz, Ian Foster Swift: A language for distributed parallel scripting Parallel Computing - 2011 + 2011. [ pdf ]
    - Joe DeBartolo, Glen Hocky, Michael Wilde, Jinbo Xu, Karl F. Freed, and Tobin R. Sosnick - Protein Structure Prediction Enhanced with Evolutionary Diversity: SPEED - Protein Science Journal - Jan 2010 -
    - -
    Michael Wilde, Ian Foster, Kamil Iskra, Pete Beckman, Zhao Zhang, Allan Espinosa, Mihael Hategan, Ben Clifford, Ioan Raicu Parallel Scripting for Applications at the Petascale and Beyond Computer, Vol. 42, No. 11 - 2009 + 2009. [ pdf ]
    - Andriy Fedorov, Benjamin Clifford, Simon K. Warfield, Ron Kikinis, Nikos Chrisochoides - - Non-Rigid Registration for Image-Guided Neurosurgery on the TeraGrid: A Case Study - - College of William and Mary Technical Report - 2009 - [ pdf ] -
    - -
    - Stef-Praun, T., Madeira, G., Foster, I., and Townsend, R. - Accelerating solution of a moral hazard problem with Swift - e-Social Science - 2007 - [ pdf ] -
    - -
    - Stef-Praun, T., Clifford, B., Foster, I., Hasson, U., Hategan, M., Small, S., Wilde, M and Zhao,Y. - Accelerating Medical Research using the Swift Workflow System - Health Grid - 2007 - [ pdf ] -
    - -
    Zhao Y., Hategan, M., Clifford, B., Foster, I., vonLaszewski, G., Raicu, I., Stef-Praun, T. and Wilde, M Swift: Fast, Reliable, Loosely Coupled Parallel Computation IEEE International Workshop on Scientific Workflows - 2007 + 2007. [ pdf ]
    -
    - Raicu, I., Zhao Y., Dumitrescu, C., Foster, I. and Wilde, M - Falkon: a Fast and Light-weight tasK executiON framework - Supercomputing Conference - 2007 - [ pdf ] -
    - - -
    - Zhao, Y.,Dobson, J., Moreau, L., Foster, I. and Wilde, M - A Notation and System for Expressing and Executing Cleanly Typed Workflows on Messy Scientific Data - SIGMOD - 2005 - [ pdf ] -
    -

     

    Research Leading up to Swift

    @@ -114,44 +64,11 @@ Zhao, Y., Wilde, M. and Foster, I. Virtual Data Language: A Typed Workflow Notation for Diversely Structured Scientific Data. Taylor, I.J., Deelman, E., Gannon, D.B. and Shields, M. eds. Workflows for eScience, Springer, - 2007, + 2007. 258-278.
    - Zhao, Y., Dobson, J., Foster, I., Moreau, L. and Wilde, M. - A Notation and System for Expressing and Executing Cleanly Typed Workflows on Messy Scientific Data. - SIGMOD Record 34 (3), - 37-43 - [ pdf ] -
    - -
    - Moreau, L., Zhao, Y., Foster, I., Voeckler, J. and Wilde, M., - XDTM: XML Data Type and Mapping for Specifying Datasets. - European Grid Conference, - 2005. - [ pdf ] -
    - -
    - Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., - The Virtual Data Grid: A New Model and Architecture for Data-Intensive Collaboration. - Conference on Innovative Data Systems Research, - 2003. - [ pdf ] -
    - -
    - von Laszewski, G., Hategan, M. and Kodeboyina, D. - Java CoG Kit Workflow. - Taylor, I.J., Deelman, E., Gannon, D.B. and Shields, M. eds. Workflows for Science, - 2007, - 340-356. - [ pdf ] -
    - -
    Zhao, Y., Wilde, M. and Foster, I., Applying the Virtual Data Provenance Model. International Provenance and Annotation Workshop, Chicago, Illinois, @@ -168,6 +85,23 @@
    + Zhao, Y., Dobson, J., Foster, I., Moreau, L. and Wilde, M. + A Notation and System for Expressing and Executing Cleanly Typed Workflows on Messy Scientific Data. + SIGMOD Record 34 (3) + 37-43 + 2005. + [ pdf ] +
    + +
    + Moreau, L., Zhao, Y., Foster, I., Voeckler, J. and Wilde, M., + XDTM: XML Data Type and Mapping for Specifying Datasets. + European Grid Conference, + 2005. + [ pdf ] +
    + +
    Zhao, Y., Wilde, M., Foster, I., Voeckler, J., Jordan, T., Quigg, E. and Dobson, J., Grid Middleware Services for Virtual Data Discovery, Composition, and Integration. 2nd International Workshop on Middleware for Grid Computing, @@ -175,7 +109,15 @@ [ pdf ]
    +
    + Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., + The Virtual Data Grid: A New Model and Architecture for Data-Intensive Collaboration. + Conference on Innovative Data Systems Research, + 2003. + [ pdf ] +
    +
    Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., Chimera: A Virtual Data System for Representing, Querying, and Automating Data Derivation. @@ -196,157 +138,207 @@ Virtual Data Grid Middleware Services for Data-intensive Science. Concurrency and Computation: Practice and Experience, 18 (6), 595-608. + 2000. [ pdf ]
    +

     

    +

    Swift Applications

    - Nefedova, V., Jacob, R., Foster, I., Liu, Y., Liu, Z., Deelman, E., Mehta, G. and Vahi, K., - Automating Climate Science: Large Ensemble Simulations on the TeraGrid with the GriPhyN Virtual Data System. - 2nd IEEE International Conference on eScience and Grid Computing, - 2006. - [ pdf ] + Agarwal, K., Chase, J., Schuchardt, K., Scheibe, T., Palmer, B., Elsethagen, T. + Design and Implementation of ?Many Parallel Task? Hybrid Subsurface Model + 4th Workshop on Many-Task Computing on Grids and Supercomputers + 2011. + [ pdf ]
    - Horn, J.V., Dobson, J., Woodward, J., Wilde, M., Zhao, Y., Voeckler, J. and Foster, I. - Grid-Based Computing and the Future of Neuroscience Computation. - Methods in Mind, MIT Press, - 2006. + Armstrong, T. + Integrating Task Parallelism into the Python Programming Language + University of Chicago, Department of Computer Science + May 2011 + [ pdf ]
    - Sulakhe, D., Rodriguez, A., Wilde, M., Foster, I. and Maltsev, N., - Using Multiple Grid Resources for Bioinformatics Applications in GADU. - IEEE/ACM International Symposium on Cluster Computing and Grid, - 2006. - [ pdf ] + Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. + Modeling large regions in proteins: Applications to loops, termini, and folding + Protein Science + 2011. + [ pdf ]
    - Sulakhe, D., Rodriguez, A., D'Souza, M., Wilde, M., Nefedova, V., Foster, I. and Maltsev, N. - GNARE: An Environment for Grid-Based High-Throughput Genome Analysis. - Journal of Clinical Monitoring and Computing. - [ pdf ] + Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. + Modeling large regions in proteins: Applications to loops, termini, and folding + Protein Science + 2011. + [ pdf ]
    - Arbree, A., Avery, P., Bourilkov, D., Cavanaugh, R., Katageri, S., Graham, G., Rodriguez, J., Voeckler, J. and Wilde, M., - Virtual Data in CMS Production. - Computing in High Energy and Nuclear Physics, - 2003. - [ pdf ] + Boker, S., Neale, M., Maes, H., Wilde, M., Spiegel, M., Brick, T., Spies, J., Estabrook, R., Kenny, S., Bates, T., et al. + OpenMx: An Open Source Extended Structural Equation Modeling Framework + Psychometrika - Vol. 76, No.2, 306-317 + April 2011 + [ pdf ]
    - Arbree, A., Avery, P., Bourilkov, D., Cavanaugh, R., Rodriguez, J., Graham, G., Wilde, M. and Zhao, Y., - Virtual Data in CMS Analysis. - Computing in High Energy and Nuclear Physics, - 2003. - [ pdf ] + Woitaszek, M., Dennis, J., Sines, T. + Parallel High-resolution Climate Data Analysis using Swift. + 4th Workshop on Many-Task Computing on Grids and Supercomputers + 2011. + [ pdf ]
    - Annis, J., Zhao, Y., Voeckler, J., Wilde, M., Kent, S. and Foster, I., - Applying Chimera Virtual Data Concepts to Cluster Finding in the Sloan Sky Survey. - SC2002, Baltimore, MD, - 2002. - [ pdf ] + Joe DeBartolo, Glen Hocky, Michael Wilde, Jinbo Xu, Karl F. Freed, and Tobin R. Sosnick + Protein Structure Prediction Enhanced with Evolutionary Diversity: SPEED + Protein Science Journal + Jan 2010
    - Bardeen, M., Gilbert, E., Jordan, T., Nepywoda, P., Quigg, E., Wilde, M. and Zhao, Y. - The QuarkNet/Grid Collaborative Learning e-Lab. - Future Generation Computer Systems, 22 (6), - 700-708. - [ pdf ] + Uram, T., Papka, M., Herald, M., Wilde, M. + A solution looking for lots of problems: Generic Portals for Science Infrastructure + Proceedings of the 2011 TeraGrid Conference: Extreme Digital Discovery + 2011. + [ pdf ]
    - Zhao, Y. - Virtual Galaxy Clusters: An Application of the GriPhyN Virtual Data Toolkit to Sloan Digital Sky Survey Data. - MS thesis, University of Chicago, GriPhyN-2002-06, - 2002. + Wu, W., Uram, T., Wilde, M., Herald, M., Papka, M. + Accelerating Science Gateway Development with Web 2.0 and Swift + TG 10 - Proceedings of the 2010 TeraGrid Conference + 2010. + [ pdf ]
    -

     

    -

    Swift Applications

    - Woitaszek, M., Dennis, J., Sines, T. - Parallel High-resolution Climate Data Analysis using Swift. - 4th Workshop on Many-Task Computing on Grids and Supercomputers - 2011 - [ pdf ] + Andriy Fedorov, Benjamin Clifford, Simon K. Warfield, Ron Kikinis, Nikos Chrisochoides + Non-Rigid Registration for Image-Guided Neurosurgery on the TeraGrid: A Case Study + College of William and Mary Technical Report + 2009. + [ pdf ]
    - Agarwal, K., Chase, J., Schuchardt, K., Scheibe, T., Palmer, B., Elsethagen, T. - Design and Implementation of ?Many Parallel Task? Hybrid Subsurface Model - 4th Workshop on Many-Task Computing on Grids and Supercomputers - 2011 - [ pdf ] + Stef-Praun, T., Clifford, B., Foster, I., Hasson, U., Hategan, M., Small, S., Wilde, M and Zhao,Y. + Accelerating Medical Research using the Swift Workflow System + Health Grid + 2007. + [ pdf ]
    - Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. - Modeling large regions in proteins: Applications to loops, termini, and folding - Protein Science - 2011 - [ pdf ] + Stef-Praun, T., Madeira, G., Foster, I., and Townsend, R. + Accelerating solution of a moral hazard problem with Swift + e-Social Science + 2007. + [ pdf ]
    - Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. - Modeling large regions in proteins: Applications to loops, termini, and folding - Protein Science - 2011 - [ pdf ] + Nefedova, V., Jacob, R., Foster, I., Liu, Y., Liu, Z., Deelman, E., Mehta, G. and Vahi, K., + Automating Climate Science: Large Ensemble Simulations on the TeraGrid with the GriPhyN Virtual Data System. + 2nd IEEE International Conference on eScience and Grid Computing, + 2006. + [ pdf ]
    - Boker, S., Neale, M., Maes, H., Wilde, M., Spiegel, M., Brick, T., Spies, J., Estabrook, R., Kenny, S., Bates, T., et al. - OpenMx: An Open Source Extended Structural Equation Modeling Framework - Psychometrika - Vol. 76, No.2, 306-317 - April 2011 - [ pdf ] + Horn, J.V., Dobson, J., Woodward, J., Wilde, M., Zhao, Y., Voeckler, J. and Foster, I. + Grid-Based Computing and the Future of Neuroscience Computation. + Methods in Mind, MIT Press, + 2006.
    - Uram, T., Papka, M., Herald, M., Wilde, M. - A solution looking for lots of problems: Generic Portals for Science Infrastructure - Proceedings of the 2011 TeraGrid Conference: Extreme Digital Discovery - 2011 - [ pdf ] + Sulakhe, D., Rodriguez, A., Wilde, M., Foster, I. and Maltsev, N., + Using Multiple Grid Resources for Bioinformatics Applications in GADU. + IEEE/ACM International Symposium on Cluster Computing and Grid, + 2006. + [ pdf ]
    - Wu, W., Uram, T., Wilde, M., Herald, M., Papka, M. - Accelerating Science Gateway Development with Web 2.0 and Swift - TG 10 - Proceedings of the 2010 TeraGrid Conference - 2010 - [ pdf ] + Sulakhe, D., Rodriguez, A., D'Souza, M., Wilde, M., Nefedova, V., Foster, I. and Maltsev, N. + GNARE: An Environment for Grid-Based High-Throughput Genome Analysis. + Journal of Clinical Monitoring and Computing. + 2005. + [ pdf ]
    - Armstrong, T. - Integrating Task Parallelism into the Python Programming Language - University of Chicago, Department of Computer Science - May, 2011 - [ pdf ] + Bardeen, M., Gilbert, E., Jordan, T., Nepywoda, P., Quigg, E., Wilde, M. and Zhao, Y. + The QuarkNet/Grid Collaborative Learning e-Lab. + Future Generation Computer Systems, 22 (6), + 700-708. + 2005. + [ pdf ]
    +
    + Arbree, A., Avery, P., Bourilkov, D., Cavanaugh, R., Rodriguez, J., Graham, G., Wilde, M. and Zhao, Y., + Virtual Data in CMS Analysis. + Computing in High Energy and Nuclear Physics, + 2003. + [ pdf ] +
    + +
    + Arbree, A., Avery, P., Bourilkov, D., Cavanaugh, R., Katageri, S., Graham, G., Rodriguez, J., Voeckler, J. and Wilde, M., + Virtual Data in CMS Production. + Computing in High Energy and Nuclear Physics, + 2003. + [ pdf ] +
    + +
    + Annis, J., Zhao, Y., Voeckler, J., Wilde, M., Kent, S. and Foster, I., + Applying Chimera Virtual Data Concepts to Cluster Finding in the Sloan Sky Survey. + SC2002, Baltimore, MD, + 2002. + [ pdf ] +
    + +
    + Zhao, Y. + Virtual Galaxy Clusters: An Application of the GriPhyN Virtual Data Toolkit to Sloan Digital Sky Survey Data. + MS thesis, University of Chicago, GriPhyN-2002-06, + 2002. +

     

    Related Research

    - Malewicz, G., Foster, I., Rosenberg, A. and Wilde, M., - A Tool for Prioritizing DAGMan Jobs and Its Evaluation. - IEEE International Symposium on High Performance Distributed Computing, - 2006. - [ pdf ] + Moreau, L. and others, + The First Provenance Challenge, + Concurrency and Computation: Practice and Experience. + 2008. + [ pdf ]
    + Raicu, I., Zhao Y., Dumitrescu, C., Foster, I. and Wilde, M + Falkon: a Fast and Light-weight tasK executiON framework + Supercomputing Conference + 2007. + [ pdf ] +
    + +
    + von Laszewski, G., Hategan, M. and Kodeboyina, D. + Java CoG Kit Workflow. + Taylor, I.J., Deelman, E., Gannon, D.B. and Shields, M. eds. Workflows for Science, + 2007. + 340-356. + [ pdf ] +
    + +
    Meyer, L., Scheftner, D., Voeckler, J., Mattoso, M., Wilde, M. and Foster, I., An Opportunistic Algorithm for Scheduling Workflows on Grids. VECPAR'06, Rio De Janiero, @@ -355,11 +347,13 @@
    - Moreau, L. and others, - The First Provenance Challenge, - Concurrency and Computation: Practice and Experience. - [ pdf ] + Malewicz, G., Foster, I., Rosenberg, A. and Wilde, M., + A Tool for Prioritizing DAGMan Jobs and Its Evaluation. + IEEE International Symposium on High Performance Distributed Computing, + 2006. + [ pdf ]
    +

     

    Added: wwwdev/papers/sciencegateway.pdf =================================================================== (Binary files differ) Property changes on: wwwdev/papers/sciencegateway.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From davidk at ci.uchicago.edu Fri Dec 9 13:30:35 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 13:30:35 -0600 (CST) Subject: [Swift-commit] r5398 - wwwdev Message-ID: <20111209193035.C1AE29D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 13:30:35 -0600 (Fri, 09 Dec 2011) New Revision: 5398 Modified: wwwdev/push_to.sh Log: Updated push for new files Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-09 19:27:56 UTC (rev 5397) +++ wwwdev/push_to.sh 2011-12-09 19:30:35 UTC (rev 5398) @@ -78,7 +78,6 @@ push_to.sh main/index.php main/template.php -case_studies/images case_studies/images/CIM-Earth.jpg case_studies/images/climate.png case_studies/images/glass.png @@ -121,35 +120,42 @@ tests/tests.pl dhtml.js updatenodocs.sh +papers/jogc_03.pdf +papers/Swift-SWF07.pdf +papers/armstrong-masters.pdf +papers/767_fta.pdf papers/p37-special-sw-section-6.pdf +papers/tg2011_portal.pdf +papers/openmx.pdf +papers/egc05.pdf +papers/AutomatingClimateScience.pdf +papers/ModelAndArchForDataCollab2003.pdf +papers/Chimera2002.pdf papers/XDTM_egc05.pdf +papers/sciencegateway.pdf +papers/Falkon_SC07_v24.pdf +papers/OpportunisticAlgoritmForSchedulingWokflows.pdf +papers/BioGrid2005.pdf +papers/highresclimatedata.pdf papers/cpe2000.pdf -papers/AutomatingClimateScience.pdf -papers/vonLaszewski-workflow-book.pdf -papers/UCC-coasters.pdf +papers/p57-zhao.pdf papers/SwiftLanguageForDistributedParallelScripting.pdf papers/clag_paper.pdf -papers/HealthGrid-2007-VDL2Bric.submitted-revised.pdf -papers/SDSS-SC02.pdf +papers/challenge-editorial.pdf papers/VirtualDataProvenance.pdf -papers/jogc_03.pdf -papers/index.php -papers/Falkon_SC07_v24.pdf +papers/subsurface.pdf +papers/SwiftParallelScripting.pdf +papers/UCC-coasters.pdf papers/sigmod-swf-vdl.pdf papers/SwiftForSocialSciences-2007.pdf -papers/Swift-SWF07.pdf -papers/VirtualDataInCMS.pdf +papers/index.php +papers/SDSS-SC02.pdf +papers/HealthGrid-2007-VDL2Bric.submitted-revised.pdf +papers/vonLaszewski-workflow-book.pdf papers/GridResourcesForGADU.pdf papers/Kickstarting2006.pdf papers/VDS-CMS.pdf -papers/ModelAndArchForDataCollab2003.pdf -papers/SwiftParallelScripting.pdf -papers/OpportunisticAlgoritmForSchedulingWokflows.pdf -papers/Chimera2002.pdf -papers/challenge-editorial.pdf -papers/p57-zhao.pdf -papers/egc05.pdf -papers/BioGrid2005.pdf +papers/VirtualDataInCMS.pdf template_info/template.php usage/charts.swf usage/usage.php From davidk at ci.uchicago.edu Fri Dec 9 13:41:10 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 13:41:10 -0600 (CST) Subject: [Swift-commit] r5399 - wwwdev/papers Message-ID: <20111209194110.907C59D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 13:41:10 -0600 (Fri, 09 Dec 2011) New Revision: 5399 Modified: wwwdev/papers/index.php Log: paper rearrangement Modified: wwwdev/papers/index.php =================================================================== --- wwwdev/papers/index.php 2011-12-09 19:30:35 UTC (rev 5398) +++ wwwdev/papers/index.php 2011-12-09 19:41:10 UTC (rev 5399) @@ -58,91 +58,6 @@

     

    -

    Research Leading up to Swift

    - -
    - Zhao, Y., Wilde, M. and Foster, I. - Virtual Data Language: A Typed Workflow Notation for Diversely Structured Scientific Data. - Taylor, I.J., Deelman, E., Gannon, D.B. and Shields, M. eds. Workflows for eScience, Springer, - 2007. - 258-278. -
    - -
    - Zhao, Y., Wilde, M. and Foster, I., - Applying the Virtual Data Provenance Model. - International Provenance and Annotation Workshop, Chicago, Illinois, - 2006. - [ pdf ] -
    - -
    - Vöckler, J.-S., Mehta, G., Zhao, Y., Deelman, E. and Wilde, M., - Kickstarting Remote Applications. - 2nd International Workshop on Grid Computing Environments, - 2006. - [ pdf ] -
    - -
    - Zhao, Y., Dobson, J., Foster, I., Moreau, L. and Wilde, M. - A Notation and System for Expressing and Executing Cleanly Typed Workflows on Messy Scientific Data. - SIGMOD Record 34 (3) - 37-43 - 2005. - [ pdf ] -
    - -
    - Moreau, L., Zhao, Y., Foster, I., Voeckler, J. and Wilde, M., - XDTM: XML Data Type and Mapping for Specifying Datasets. - European Grid Conference, - 2005. - [ pdf ] -
    - -
    - Zhao, Y., Wilde, M., Foster, I., Voeckler, J., Jordan, T., Quigg, E. and Dobson, J., - Grid Middleware Services for Virtual Data Discovery, Composition, and Integration. - 2nd International Workshop on Middleware for Grid Computing, - 2004. - [ pdf ] -
    - -
    - Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., - The Virtual Data Grid: A New Model and Architecture for Data-Intensive Collaboration. - Conference on Innovative Data Systems Research, - 2003. - [ pdf ] -
    - - -
    - Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., - Chimera: A Virtual Data System for Representing, Querying, and Automating Data Derivation. - 14th Intl. Conf. on Scientific and Statistical Database Management, Edinburgh, Scotland, - 2002. - [ pdf ] -
    - -
    - Vöckler, J.-S., Wilde, M. and Foster, I. - The GriPhyN Virtual Data System. - Technical Report GriPhyN-2002-02, - 2002. -
    - -
    - Zhao, Y., Wilde, M., Foster, I., Voeckler, J., Dobson, J., Gilbert, E., Jordan, T. and Quigg, E. - Virtual Data Grid Middleware Services for Data-intensive Science. - Concurrency and Computation: Practice and Experience, 18 (6), - 595-608. - 2000. - [ pdf ] -
    - -

     

    Swift Applications

    @@ -310,7 +225,93 @@ MS thesis, University of Chicago, GriPhyN-2002-06, 2002.
    +

     

    +

    Research Leading up to Swift

    + +
    + Zhao, Y., Wilde, M. and Foster, I. + Virtual Data Language: A Typed Workflow Notation for Diversely Structured Scientific Data. + Taylor, I.J., Deelman, E., Gannon, D.B. and Shields, M. eds. Workflows for eScience, Springer, + 2007. + 258-278. +
    + +
    + Zhao, Y., Wilde, M. and Foster, I., + Applying the Virtual Data Provenance Model. + International Provenance and Annotation Workshop, Chicago, Illinois, + 2006. + [ pdf ] +
    + +
    + Vöckler, J.-S., Mehta, G., Zhao, Y., Deelman, E. and Wilde, M., + Kickstarting Remote Applications. + 2nd International Workshop on Grid Computing Environments, + 2006. + [ pdf ] +
    + +
    + Zhao, Y., Dobson, J., Foster, I., Moreau, L. and Wilde, M. + A Notation and System for Expressing and Executing Cleanly Typed Workflows on Messy Scientific Data. + SIGMOD Record 34 (3) + 37-43 + 2005. + [ pdf ] +
    + +
    + Moreau, L., Zhao, Y., Foster, I., Voeckler, J. and Wilde, M., + XDTM: XML Data Type and Mapping for Specifying Datasets. + European Grid Conference, + 2005. + [ pdf ] +
    + +
    + Zhao, Y., Wilde, M., Foster, I., Voeckler, J., Jordan, T., Quigg, E. and Dobson, J., + Grid Middleware Services for Virtual Data Discovery, Composition, and Integration. + 2nd International Workshop on Middleware for Grid Computing, + 2004. + [ pdf ] +
    + +
    + Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., + The Virtual Data Grid: A New Model and Architecture for Data-Intensive Collaboration. + Conference on Innovative Data Systems Research, + 2003. + [ pdf ] +
    + + +
    + Foster, I., Voeckler, J., Wilde, M. and Zhao, Y., + Chimera: A Virtual Data System for Representing, Querying, and Automating Data Derivation. + 14th Intl. Conf. on Scientific and Statistical Database Management, Edinburgh, Scotland, + 2002. + [ pdf ] +
    + +
    + Vöckler, J.-S., Wilde, M. and Foster, I. + The GriPhyN Virtual Data System. + Technical Report GriPhyN-2002-02, + 2002. +
    + +
    + Zhao, Y., Wilde, M., Foster, I., Voeckler, J., Dobson, J., Gilbert, E., Jordan, T. and Quigg, E. + Virtual Data Grid Middleware Services for Data-intensive Science. + Concurrency and Computation: Practice and Experience, 18 (6), + 595-608. + 2000. + [ pdf ] +
    + +

     

    Related Research

    From davidk at ci.uchicago.edu Fri Dec 9 13:47:47 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 13:47:47 -0600 (CST) Subject: [Swift-commit] r5400 - wwwdev/papers Message-ID: <20111209194747.8C7A09D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 13:47:47 -0600 (Fri, 09 Dec 2011) New Revision: 5400 Modified: wwwdev/papers/index.php Log: Remove dupe Modified: wwwdev/papers/index.php =================================================================== --- wwwdev/papers/index.php 2011-12-09 19:41:10 UTC (rev 5399) +++ wwwdev/papers/index.php 2011-12-09 19:47:47 UTC (rev 5400) @@ -85,14 +85,6 @@
    - Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. - Modeling large regions in proteins: Applications to loops, termini, and folding - Protein Science - 2011. - [ pdf ] -
    - -
    Boker, S., Neale, M., Maes, H., Wilde, M., Spiegel, M., Brick, T., Spies, J., Estabrook, R., Kenny, S., Bates, T., et al. OpenMx: An Open Source Extended Structural Equation Modeling Framework Psychometrika - Vol. 76, No.2, 306-317 @@ -108,12 +100,6 @@ [ pdf ]
    -
    - Joe DeBartolo, Glen Hocky, Michael Wilde, Jinbo Xu, Karl F. Freed, and Tobin R. Sosnick - Protein Structure Prediction Enhanced with Evolutionary Diversity: SPEED - Protein Science Journal - Jan 2010 -
    Uram, T., Papka, M., Herald, M., Wilde, M. @@ -132,6 +118,13 @@
    + Joe DeBartolo, Glen Hocky, Michael Wilde, Jinbo Xu, Karl F. Freed, and Tobin R. Sosnick + Protein Structure Prediction Enhanced with Evolutionary Diversity: SPEED + Protein Science Journal + Jan 2010. +
    + +
    Andriy Fedorov, Benjamin Clifford, Simon K. Warfield, Ron Kikinis, Nikos Chrisochoides Non-Rigid Registration for Image-Guided Neurosurgery on the TeraGrid: A Case Study College of William and Mary Technical Report From davidk at ci.uchicago.edu Fri Dec 9 13:50:54 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 13:50:54 -0600 (CST) Subject: [Swift-commit] r5401 - wwwdev Message-ID: <20111209195054.7D81C9D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 13:50:54 -0600 (Fri, 09 Dec 2011) New Revision: 5401 Modified: wwwdev/push_to.sh Log: Modified: wwwdev/push_to.sh =================================================================== --- wwwdev/push_to.sh 2011-12-09 19:47:47 UTC (rev 5400) +++ wwwdev/push_to.sh 2011-12-09 19:50:54 UTC (rev 5401) @@ -75,7 +75,6 @@ shCoreu.js js/jquery-1.5.1.min.js js/jquery.orbit-1.2.3.min.js -push_to.sh main/index.php main/template.php case_studies/images/CIM-Earth.jpg From davidk at ci.uchicago.edu Fri Dec 9 14:41:55 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 14:41:55 -0600 (CST) Subject: [Swift-commit] r5402 - in wwwdev: inc papers Message-ID: <20111209204155.59B2E9D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 14:41:55 -0600 (Fri, 09 Dec 2011) New Revision: 5402 Modified: wwwdev/inc/papers_sidebar.php wwwdev/papers/index.php Log: Paper updates Modified: wwwdev/inc/papers_sidebar.php =================================================================== --- wwwdev/inc/papers_sidebar.php 2011-12-09 19:50:54 UTC (rev 5401) +++ wwwdev/inc/papers_sidebar.php 2011-12-09 20:41:55 UTC (rev 5402) @@ -4,9 +4,6 @@

    Swift: A language for distributed parallel scripting (2011) [pdf]


    Parallel Scripting for Applications at the Petascale and Beyond (2009) [pdf]


    Coasters: uniform resource provisioning and access for clouds and grids (2011) [pdf]


    -

    A solution looking for lots of problems: Generic Portals for Science Infrastructure (2011) [pdf]


    -

    Accelerating Science Gateway Development with Web 2.0 and Swift (2010) [pdf]


    -

    Integrating Task Parallelism into the Python Programming Language (2011) [pdf]


    Applications

    Modified: wwwdev/papers/index.php =================================================================== --- wwwdev/papers/index.php 2011-12-09 19:50:54 UTC (rev 5401) +++ wwwdev/papers/index.php 2011-12-09 20:41:55 UTC (rev 5402) @@ -26,6 +26,14 @@

    Swift Language and Runtime Technology

    + Michael Wilde, Mihael Hategan, Justin M. Wozniak, Ben Clifford, Daniel S. Katz, Ian Foster + Swift: A language for distributed parallel scripting + Parallel Computing + 2011. + [ pdf ] +
    + +
    Mihael Hategan, Justin Wozniak, Ketan Maheshwari Coasters: uniform resource provisioning and access for clouds and grids 4th IEEE/ACM International Conference on Utility and Cloud Computing @@ -34,14 +42,6 @@
    - Michael Wilde, Mihael Hategan, Justin M. Wozniak, Ben Clifford, Daniel S. Katz, Ian Foster - Swift: A language for distributed parallel scripting - Parallel Computing - 2011. - [ pdf ] -
    - -
    Michael Wilde, Ian Foster, Kamil Iskra, Pete Beckman, Zhao Zhang, Allan Espinosa, Mihael Hategan, Ben Clifford, Ioan Raicu Parallel Scripting for Applications at the Petascale and Beyond Computer, Vol. 42, No. 11 @@ -68,13 +68,6 @@ [ pdf ]
    -
    - Armstrong, T. - Integrating Task Parallelism into the Python Programming Language - University of Chicago, Department of Computer Science - May 2011 - [ pdf ] -
    Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. @@ -148,6 +141,7 @@ [ pdf ]
    +

    Virtual Data Language Applications

    Nefedova, V., Jacob, R., Foster, I., Liu, Y., Liu, Z., Deelman, E., Mehta, G. and Vahi, K., Automating Climate Science: Large Ensemble Simulations on the TeraGrid with the GriPhyN Virtual Data System. @@ -308,6 +302,14 @@

    Related Research

    + Armstrong, T. + Integrating Task Parallelism into the Python Programming Language + University of Chicago, Department of Computer Science + May 2011 + [ pdf ] +
    + +
    Moreau, L. and others, The First Provenance Challenge, Concurrency and Computation: Practice and Experience. From davidk at ci.uchicago.edu Fri Dec 9 15:37:26 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 9 Dec 2011 15:37:26 -0600 (CST) Subject: [Swift-commit] r5403 - in wwwdev: docs inc Message-ID: <20111209213726.18DA49D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 15:37:25 -0600 (Fri, 09 Dec 2011) New Revision: 5403 Modified: wwwdev/docs/index.php wwwdev/inc/footer2.php Log: Navigation footer had wrong link Adjust docs a bit Modified: wwwdev/docs/index.php =================================================================== --- wwwdev/docs/index.php 2011-12-09 20:41:55 UTC (rev 5402) +++ wwwdev/docs/index.php 2011-12-09 21:37:25 UTC (rev 5403) @@ -56,22 +56,13 @@

     

    -

    Swift Siteguide

    - This document will guide new users to run Swift in a variety of different environments. -

    - -

     

    -

    Swift User Guide

    - The User Guide provides more detailed reference documentation and background - information on swift. It is assumed that the reader is already familiar with - the material in the Quickstart and Tutorial documents. -

    + The User Guide provides more detailed reference documentation and background + information on swift. It is assumed that the reader is already familiar with + the material in the Quickstart and Tutorial documents. +

      -
    • Latest (0.93) +
    • Latest (0.93) [html] [pdf]
    • @@ -79,11 +70,22 @@ [html] [pdf] -
    • Trunk +
    • Trunk [html] [pdf]

     

    + + +

    Swift Siteguide

    + This document will guide new users to run Swift in a variety of different environments. +

    + +

     

    + - - - - - Deleted: SwiftApps/modis/coasters.xml =================================================================== --- SwiftApps/modis/coasters.xml 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/coasters.xml 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,189 +0,0 @@ - - - - - - 8 - 3500 - 1 - 1 - 1 - - - .07 - 10000 - /home/wilde/swiftwork/crush - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/thwomp - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/stomp - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/crush - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/crank - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/steamroller - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/grind - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/churn - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/trounce - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/thrash - - - - - 8 - 3500 - 1 - 1 - 1 - - .31 - 10000 - /home/wilde/swiftwork/vanquish - - - - - Deleted: SwiftApps/modis/demo3 =================================================================== --- SwiftApps/modis/demo3 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/demo3 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,7 +0,0 @@ -swift -tc.file tc.local \ - -sites.file sites.xml \ - modis3.swift -landtype=$1 -nfiles=$2 -nselect=$3 - -exit - -swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Deleted: SwiftApps/modis/demo4 =================================================================== --- SwiftApps/modis/demo4 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/demo4 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,18 +0,0 @@ -# demo4 forest 50 5 pbs - -landtype=${1:-urban} -nfiles=${2:-50} -nselect=${3:-10} -site=${4:-local} - -runid=modis-$(date +%Y.%m%d.%H%M)-$landtype-$nfiles-$nselect - -echo runid=$runid - -swift -tc.file tc.$site \ - -sites.file sites.xml \ - modis4.swift -landtype=$landtype -nfiles=$nfiles -nselect=$nselect -runid=$runid \ - -MODISdir=/home/wilde/bigdata/data/modis/2002 -webdir=/home/wilde/public_html/geo -exit - -swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Deleted: SwiftApps/modis/demo5 =================================================================== --- SwiftApps/modis/demo5 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/demo5 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,18 +0,0 @@ -# demo4 forest 50 5 pbs - -landtype=${1:-urban} -nfiles=${2:-50} -nselect=${3:-10} -site=${4:-local} - -runid=modis-$(date +%Y.%m%d.%H%M)-$landtype-$nfiles-$nselect - -echo runid=$runid - -swift -tc.file tc.$site \ - -sites.file sites.xml \ - modis5.swift -landtype=$landtype -nfiles=$nfiles -nselect=$nselect -runid=$runid \ - -MODISdir=/home/wilde/bigdata/data/modis/2002 -webdir=/home/wilde/public_html/geo -exit - -swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Deleted: SwiftApps/modis/g.gif =================================================================== (Binary files differ) Deleted: SwiftApps/modis/geos.mapper.sh =================================================================== --- SwiftApps/modis/geos.mapper.sh 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/geos.mapper.sh 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,20 +0,0 @@ -#!/bin/bash - -# Usage: $0 -location dir -suffix .tif -site gsiftp://gridftp.pads.ci.uchicago.edu/ -n=999 - -while [ $# -gt 0 ]; do - case $1 in - -location) location=$2;; - -suffix) suffix=$2;; - -site) site=$2;; - -n) n=$2;; - *) echo "$0: bad mapper args" 1>&2 - exit 1;; - esac - shift 2 -done - -find $location -name '*'${suffix} -print | head -$n | -awk '{printf "[%d] '$site'/%s\n", NR, $1}' - - Deleted: SwiftApps/modis/gridmap.gif =================================================================== (Binary files differ) Deleted: SwiftApps/modis/markedGrid.gif =================================================================== (Binary files differ) Deleted: SwiftApps/modis/modis.mapper =================================================================== --- SwiftApps/modis/modis.mapper 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modis.mapper 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,20 +0,0 @@ -#!/bin/bash - -# Usage: $0 -location dir -suffix .tif -site gsiftp://gridftp.pads.ci.uchicago.edu/ -n=999 - -while [ $# -gt 0 ]; do - case $1 in - -location) location=$2;; - -suffix) suffix=$2;; - -site) site=$2;; - -n) n=$2;; - *) echo "$0: bad mapper args" 1>&2 - exit 1;; - esac - shift 2 -done - -find $location -type f -name 'h??v??'${suffix} -print | head -$n | -awk '{printf "[%d] %s\n", NR-1, $1}' - - Deleted: SwiftApps/modis/modis.swift =================================================================== --- SwiftApps/modis/modis.swift 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modis.swift 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,71 +0,0 @@ -# Declare dataset types - -type file; -type imagefile; -type landuse; - -# Define application program interfaces - -app (landuse output) getLandUse (imagefile input, int sortfield) -{ - getlanduse @input sortfield stdout=@output ; -} - -app (file output, file tilelist) analyzeLandUse (landuse input[], int usetype, int maxnum) -{ - analyzelanduse @output @tilelist usetype maxnum @filenames(input); -} - -app (imagefile output) colormodis (imagefile input) -{ - colormodis @input @output; -} - -app (imagefile output) assemble (imagefile input[]) -{ - assemble @output @filenames(input); -} - -# Declare datasets - -imagefile geos[]; -landuse land[]; - -# Find the land use of each MODIS tile - -foreach g,i in geos { - land[i] = getLandUse(g,1); -} - -# Find the top N most urban tiles (by area) - -int N = 12; -int UsageTypeURBAN=13; -file bigurban<"topurban.txt">; -file urbantiles<"urbantiles.txt">; -(bigurban, urbantiles) = analyzeLandUse(land, UsageTypeURBAN, N); - -# Map the files for the top urban tiles to an array - -string urbanfilenames[] = readData(urbantiles); -imagefile urbanfiles[] ; - -# Create a set of recolored images for just the urban tiles - -string odir = "/home/wilde/public_html/geo/"; - -imagefile recoloredImage[] ; - -foreach uf, i in urbanfiles { - #imagefile recoloredImage ; - recoloredImage[i] = colormodis(uf); -} - -# Assemble a montage of the top urban areas - -imagefile urbanMontage ; - -urbanMontage = assemble(recoloredImage); Deleted: SwiftApps/modis/modis2.swift =================================================================== --- SwiftApps/modis/modis2.swift 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modis2.swift 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,78 +0,0 @@ -# Declare dataset types - -type file; -type imagefile; -type landuse; - -# Define application program interfaces - -app (landuse output) getLandUse (imagefile input, int sortfield) -{ - getlanduse @input sortfield stdout=@output ; -} - -app (file output, file tilelist) analyzeLandUse (landuse input[], string usetype, int maxnum) -{ - analyzelanduse @output @tilelist usetype maxnum @filenames(input); -} - -app (imagefile output) colormodis (imagefile input) -{ - colormodis @input @output; -} - -app (imagefile output) assemble (imagefile input[]) -{ - assemble @output @filenames(input); -} - -# Declare datasets - -# imagefile geos[]; - -string location="/home/wilde/bigdata/data/modis/2002"; -string suffix=".tif"; - -int nfiles = @toint(@arg("nfiles","1000")); -int N = @toint(@arg("nselect","12")); -string UsageType=@arg("landtype","urban"); - -imagefile geos[]; # site=site -landuse land[]; - -# Find the land use of each MODIS tile - -foreach g,i in geos { - land[i] = getLandUse(g,1); -} - -# Find the top N tiles (by total area of selected landuse types) - -file topselected<"topselected.txt">; -file selectedtiles<"selectedtiles.txt">; -(topselected, selectedtiles) = analyzeLandUse(land, UsageType, N); - -# Map the files for the top selected tiles to an array - -string selectedfilenames[] = readData(selectedtiles); -imagefile selectedfiles[] ; - -# Create a set of recolored images for just the selected tiles - -string odir = "/home/wilde/public_html/geo/"; - -imagefile recoloredImage[] ; - -foreach sf, i in selectedfiles { - #imagefile recoloredImage ; - recoloredImage[i] = colormodis(sf); -} - -# Assemble a montage of the top selcted areas - -imagefile selectedMontage ; - -selectedMontage = assemble(recoloredImage); Deleted: SwiftApps/modis/modis3.swift =================================================================== --- SwiftApps/modis/modis3.swift 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modis3.swift 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,71 +0,0 @@ -# Declare dataset types - -type file; -type imagefile; -type landuse; - -# Define application program interfaces - -app (landuse output) getLandUse (imagefile input, int sortfield) -{ - getlanduse @input sortfield stdout=@output ; -} - -app (file output, file tilelist) analyzeLandUse (landuse input[], string usetype, int maxnum) -{ - analyzelanduse @output @tilelist usetype maxnum @filenames(input); -} - -app (imagefile output) colorMODIS (imagefile input) -{ - colormodis @input @output; -} - -app (imagefile output) assemble (file selected, imagefile image[]) -{ - assemble @output @selected @filenames(image); -} - -# Declare datasets - -# imagefile geos[]; - -string location="/home/wilde/bigdata/data/modis/2002"; -string suffix=".tif"; - -int nfiles = @toint(@arg("nfiles","1000")); -int N = @toint(@arg("nselect","12")); -string UsageType=@arg("landtype","urban"); - -imagefile geos[]; # site=site -landuse land[]; - -# Find the land use of each MODIS tile - -foreach g,i in geos { - land[i] = getLandUse(g,1); -} - -# Find the top N tiles (by total area of selected landuse types) - -file topSelected<"topselected.txt">; -file selectedTiles<"selectedtiles.txt">; -(topSelected, selectedTiles) = analyzeLandUse(land, UsageType, N); - -# Create multi-color images for all tiles - -string odir = "/home/wilde/public_html/geo/"; - -imagefile colorImage[] ; - -foreach g, i in geos { - colorImage[i] = colorMODIS(g); -} - -# Assemble a montage of the top selcted areas - -imagefile montage ; # @arg - -montage = assemble(selectedTiles,colorImage); Deleted: SwiftApps/modis/modis4.swift =================================================================== --- SwiftApps/modis/modis4.swift 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modis4.swift 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,83 +0,0 @@ -# Declare dataset types - -type file; -type imagefile; -type landuse; - -# Define application program interfaces - -app (landuse output) getLandUse (imagefile input, int sortfield) -{ - getlanduse @input sortfield stdout=@output ; -} - -app (file output, file tilelist) analyzeLandUse (landuse input[], string usetype, int maxnum) -{ - analyzelanduse @output @tilelist usetype maxnum @filenames(input); -} - -app (imagefile output) colorMODIS (imagefile input) -{ - colormodis @input @output; -} - -app (imagefile output) assemble (file selected, imagefile image[], string webdir) -{ - assemble @output @selected @filename(image[0]) webdir; -} - -# Constants and command line arguments - -int nFiles = @toint(@arg("nfiles","1000")); -int nSelect = @toint(@arg("nselect","12")); -string landType = @arg("landtype","urban"); -string runID = @arg("runid","modis-run"); -string MODISdir= @arg("modisdir","/home/wilde/bigdata/data/modis/2002"); -string webDir = @arg("webdir","/home/wilde/public_html/geo/"); - -string suffix=".tif"; - -# Datasets - -imagefile geos[]; # site=site - -# Find the land use of each MODIS tile - -landuse land[]; - -foreach g,i in geos { - land[i] = getLandUse(g,1); -} - -# Find the top N tiles (by total area of selected landuse types) - -file topSelected<"topselected.txt">; -file selectedTiles<"selectedtiles.txt">; -(topSelected, selectedTiles) = analyzeLandUse(land, landType, nSelect); - -# Create multi-color images for all tiles - -imagefile colorImage[] ; - -foreach g, i in geos { - colorImage[i] = colorMODIS(g); -} - -# Assemble a montage of the top selcted areas - -imagefile montage ; # @arg - -montage = assemble(selectedTiles,colorImage,webDir); - -# future args: - -int selectHiThreshold; -int selectLowThreshold; -string upperLeftTile; -string lowerRightTile; -float imageSizes[]; -string displayOptions; - -# imagefile geos[]; Deleted: SwiftApps/modis/modis5.swift =================================================================== --- SwiftApps/modis/modis5.swift 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modis5.swift 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,93 +0,0 @@ -type file; -type imagefile; -type landuse; - -# Define application program interfaces - -app (landuse output) getLandUse (imagefile input, int sortfield) -{ - getlanduse @input sortfield stdout=@output ; -} - -app (file output, file tilelist) analyzeLandUse - (landuse input[], string usetype, int maxnum) -{ - analyzelanduse @output @tilelist usetype maxnum @filenames(input); -} - -app (imagefile output) colorMODIS (imagefile input) -{ - colormodis @input @output; -} - -app (imagefile output) assemble - (file selected, imagefile image[], string webdir) -{ - assemble @output @selected @filename(image[0]) webdir; -} - -app (imagefile grid) markMap (file tilelist) -{ - markmap @tilelist @grid; -} - -# Constants and command line arguments - -int nFiles = @toint(@arg("nfiles","1000")); -int nSelect = @toint(@arg("nselect","12")); -string landType = @arg("landtype","urban"); -string runID = @arg("runid","modis-run"); -string MODISdir= @arg("modisdir","/home/wilde/bigdata/data/modis/2002"); -string webDir = @arg("webdir","/home/wilde/public_html/geo/"); - -string suffix=".tif"; - -# Input Dataset - -imagefile geos[] ; # site=site - -# Compute the land use summary of each MODIS tile - -landuse land[] ; - -foreach g,i in geos { - land[i] = getLandUse(g,1); -} - -# Find the top N tiles (by total area of selected landuse types) - -file topSelected<"topselected.txt">; -file selectedTiles<"selectedtiles.txt">; -(topSelected, selectedTiles) = analyzeLandUse(land, landType, nSelect); - -# Mark the top N tiles on a sinusoidal gridded map - -imagefile gridMap<"markedGrid.gif">; -gridMap = markMap(topSelected); - -# Create multi-color images for all tiles - -imagefile colorImage[] ; - -foreach g, i in geos { - colorImage[i] = colorMODIS(g); -} - -# Assemble a montage of the top selected areas - -imagefile montage ; # @arg -montage = assemble(selectedTiles,colorImage,webDir); - -# future args: - -int selectHiThreshold; -int selectLowThreshold; -string upperLeftTile; -string lowerRightTile; -float imageSizes[]; -string displayOptions; - Deleted: SwiftApps/modis/modisp1.swift =================================================================== --- SwiftApps/modis/modisp1.swift 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/modisp1.swift 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,73 +0,0 @@ -# Declare dataset types - -type file; -type imagefile; -type landuse; - -# Define application program interfaces - -app (landuse output) getLandUse (imagefile input, int sortfield) -{ - getlanduse @input sortfield stdout=@output ; -} - -app (file output, file tilelist) analyzeLandUse (landuse input[], int usetype, int maxnum) -{ - analyzelanduse @output @tilelist usetype maxnum @filenames(input); -} - -app (imagefile output) colormodis (imagefile input) -{ - colormodis @input @output; -} - -app (imagefile output) assemble (imagefile input[]) -{ - assemble @output @filenames(input); -} - -# Declare datasets - -imagefile geos[]; -landuse land[]; - -int nfiles = @toint(@arg("nfiles","1000")); -int N = @toint(@arg("nselect","12")); -string UsageType=@arg("landtype","13"); - -# Find the land use of each MODIS tile - -foreach g,i in geos { - land[i] = getLandUse(g,1); -} - -# Find the top N most urban tiles (by area) - -file bigurban<"topurban.txt">; -file urbantiles<"urbantiles.txt">; -(bigurban, urbantiles) = analyzeLandUse(land, UsageType, N); - -# Map the files for the top urban tiles to an array - -string urbanfilenames[] = readData(urbantiles); -imagefile urbanfiles[] ; - -# Create a set of recolored images for just the urban tiles - -string odir = "/home/wilde/public_html/geo/"; - -imagefile recoloredImage[] ; - -foreach uf, i in urbanfiles { - #imagefile recoloredImage ; - recoloredImage[i] = colormodis(uf); -} - -# Assemble a montage of the top urban areas - -imagefile urbanMontage ; - -urbanMontage = assemble(recoloredImage); Deleted: SwiftApps/modis/mon.png =================================================================== (Binary files differ) Deleted: SwiftApps/modis/rundemo.sh =================================================================== --- SwiftApps/modis/rundemo.sh 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/rundemo.sh 2011-12-16 19:41:07 UTC (rev 5427) @@ -1 +0,0 @@ -swift -tc.file tc -sites.file sites.xml modis.swift Deleted: SwiftApps/modis/rundemo2.pbs.sh =================================================================== --- SwiftApps/modis/rundemo2.pbs.sh 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/rundemo2.pbs.sh 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,7 +0,0 @@ -swift -tc.file tc.pbs \ - -sites.file sites.xml \ - modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 - -exit - -swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Deleted: SwiftApps/modis/rundemo2.sh =================================================================== --- SwiftApps/modis/rundemo2.sh 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/rundemo2.sh 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,7 +0,0 @@ -swift -tc.file tc.local \ - -sites.file sites.xml \ - modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 - -exit - -swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Deleted: SwiftApps/modis/rundemop1.sh =================================================================== --- SwiftApps/modis/rundemop1.sh 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/rundemop1.sh 2011-12-16 19:41:07 UTC (rev 5427) @@ -1 +0,0 @@ -swift -tc.file tc -sites.file sites.xml modisp1.swift -nselect=9 -nfiles=100 -landtype=13 Deleted: SwiftApps/modis/sico.xml =================================================================== --- SwiftApps/modis/sico.xml 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/sico.xml 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,17 +0,0 @@ - - - - - - passive - - 6 - .07 - 10000 - - - /home/wilde/swiftwork - - - - Deleted: SwiftApps/modis/sites.local.xml =================================================================== --- SwiftApps/modis/sites.local.xml 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/sites.local.xml 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,11 +0,0 @@ - - - - - .31 - 10000 - - /home/wilde/swift/lab/go/work - - - Deleted: SwiftApps/modis/sites.xml =================================================================== --- SwiftApps/modis/sites.xml 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/sites.xml 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,38 +0,0 @@ - - - - - .31 - 10000 - - /home/wilde/swift/lab/go/work - - - - - - /home/wilde/swiftwork - - - - - - 1 - 3600 - 00:02:00 - 64 - 1 - 1 - fast - - .63 - 10000 - - - /home/wilde/swift/lab/go/work - /scratch/local/wilde - - - - - Deleted: SwiftApps/modis/sites.xml.pas.coasters =================================================================== --- SwiftApps/modis/sites.xml.pas.coasters 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/sites.xml.pas.coasters 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,28 +0,0 @@ - - - - - - /home/wilde/swiftwork - - - - - - 1 - 3600 - 00:02:00 - 64 - 1 - 1 - fast - - .63 - 10000 - - - /home/wilde/swiftwork - /scratch/local/wilde - - - Deleted: SwiftApps/modis/tc =================================================================== --- SwiftApps/modis/tc 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/tc 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,34 +0,0 @@ -#This is the transformation catalog. -# -#It comes pre-configured with a number of simple transformations with -#paths that are likely to work on a linux box. However, on some systems, -#the paths to these executables will be different (for example, sometimes -#some of these programs are found in /usr/bin rather than in /bin) -# -#NOTE WELL: fields in this file must be separated by tabs, not spaces; and -#there must be no trailing whitespace at the end of each line. -# -# site transformation path obsolete fields for compatibility - -localhost echo /bin/echo null null null -localhost cat /bin/cat null null null -localhost ls /bin/ls null null null -localhost grep /bin/grep null null null -localhost sort /bin/sort null null null -localhost paste /bin/paste null null null -localhost pwd /bin/pwd null null null - -# For cluster usage - -pbs convert /usr/bin/convert null null null -pbs getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null -pbs analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelandusep1.sh null null null -pbs colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null -pbs assemble /home/wilde/swift/demo/modis/bin/assemble.sh null null null - -# For localhost testing - -#localhost convert /usr/bin/convert null null null -#localhost getlanduse /home/wilde/bigdata/bin/getlanduse.sh null null null -#localhost analyzelanduse /home/wilde/bigdata/bin/analyzelanduse.sh null null null -#localhost colormodis /home/wilde/bigdata/bin/colormodis.sh null null null Deleted: SwiftApps/modis/tc.local =================================================================== --- SwiftApps/modis/tc.local 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/tc.local 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,34 +0,0 @@ -#This is the transformation catalog. -# -#It comes pre-configured with a number of simple transformations with -#paths that are likely to work on a linux box. However, on some systems, -#the paths to these executables will be different (for example, sometimes -#some of these programs are found in /usr/bin rather than in /bin) -# -#NOTE WELL: fields in this file must be separated by tabs, not spaces; and -#there must be no trailing whitespace at the end of each line. -# -# site transformation path obsolete fields for compatibility - -localhost echo /bin/echo null null null -localhost cat /bin/cat null null null -localhost ls /bin/ls null null null -localhost grep /bin/grep null null null -localhost sort /bin/sort null null null -localhost paste /bin/paste null null null -localhost pwd /bin/pwd null null null - -# For cluster usage - -#pbs getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null -#pbs analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelanduse.sh null null null -#pbs colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null -#pbs assemble /home/wilde/swift/demo/modis/bin/assemble.sh null null null - -# For localhost testing - -localhost getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null -localhost analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelanduse2.sh null null null -localhost colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null -localhost assemble /home/wilde/swift/demo/modis/bin/assemble2.sh null null null -localhost markmap /home/wilde/swift/demo/modis/bin/markmap.sh null null null Deleted: SwiftApps/modis/tc.pbs =================================================================== --- SwiftApps/modis/tc.pbs 2011-12-16 18:39:25 UTC (rev 5426) +++ SwiftApps/modis/tc.pbs 2011-12-16 19:41:07 UTC (rev 5427) @@ -1,35 +0,0 @@ -#This is the transformation catalog. -# -#It comes pre-configured with a number of simple transformations with -#paths that are likely to work on a linux box. However, on some systems, -#the paths to these executables will be different (for example, sometimes -#some of these programs are found in /usr/bin rather than in /bin) -# -#NOTE WELL: fields in this file must be separated by tabs, not spaces; and -#there must be no trailing whitespace at the end of each line. -# -# site transformation path obsolete fields for compatibility - -localhost echo /bin/echo null null null -localhost cat /bin/cat null null null -localhost ls /bin/ls null null null -localhost grep /bin/grep null null null -localhost sort /bin/sort null null null -localhost paste /bin/paste null null null -localhost pwd /bin/pwd null null null - -# For cluster usage - -pbs convert /usr/bin/convert null null null -pbs getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null -pbs analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelanduse2.sh null null null -pbs colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null -pbs assemble /home/wilde/swift/demo/modis/bin/assemble2.sh null null null -pbs markmap /home/wilde/swift/demo/modis/bin/markmap.sh null null null - -# For localhost testing - -#localhost convert /usr/bin/convert null null null -#localhost getlanduse /home/wilde/bigdata/bin/getlanduse.sh null null null -#localhost analyzelanduse /home/wilde/bigdata/bin/analyzelanduse.sh null null null -#localhost colormodis /home/wilde/bigdata/bin/colormodis.sh null null null Deleted: SwiftApps/modis/white.png =================================================================== (Binary files differ) From davidk at ci.uchicago.edu Fri Dec 16 15:21:14 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 16 Dec 2011 15:21:14 -0600 (CST) Subject: [Swift-commit] r5429 - in branches/release-0.93: bin docs/siteguide Message-ID: <20111216212114.7089D9CCA5@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-16 15:21:14 -0600 (Fri, 16 Dec 2011) New Revision: 5429 Modified: branches/release-0.93/bin/start-coaster-service branches/release-0.93/bin/stop-coaster-service branches/release-0.93/docs/siteguide/siteguide.txt Log: Make futuregrid easier to use by only having to edit one file Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-16 19:51:37 UTC (rev 5428) +++ branches/release-0.93/bin/start-coaster-service 2011-12-16 21:21:14 UTC (rev 5429) @@ -1,4 +1,4 @@ -#!/bin/bash -x +#!/bin/bash # crash: Report a problem and exit crash() @@ -11,36 +11,64 @@ # Start futuregrid workers start-workers-futuregrid() { + # Setup environment PORT=$1 EXECUTION_URL=http://localhost:$PORT + export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY + export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY + export FUTUREGRID_SIERRA_NODES=$FUTUREGRID_NODES - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/bootit.sh" ]; then + # Check that SWIFTVMBOOT_DIR looks ok + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/futuregrid/bin/bootit.sh" ]; then crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" fi + # Install ve + if [ ! -d "$SWIFTVMBOOT_DIR/futuregrid/ve" ]; then + echo Setting up environment + python $SWIFTVMBOOT_DIR/futuregrid/bin/virtualenv.py $SWIFTVMBOOT_DIR/futuregrid/ve + if [ $? -ne 0 ]; then + echo "Failed to created the needed python virtual environment" + exit 1 + fi + fi + + # Install cloudinitd + source $SWIFTVMBOOT_DIR/futuregrid/ve/bin/activate + easy_install cloudinitd + if [ $? -ne 0 ]; then + echo "Failed to install cloudinitd" + exit 1 + fi + + # Register key + echo "Registering the key names in all the clouds" + python $SWIFTVMBOOT_DIR/futuregrid/bin/register_key.py $SWIFTVMBOOT_DIR/futuregrid/hosts.txt + if [ $? -ne 0 ]; then + echo "Failed to register the key names" + exit 1 + fi + + # Start virtual machines echo Starting virtual machines.. please wait - $SWIFTVMBOOT_DIR/bin/bootit.sh | tee -a bootit.log - SWIFTVMBOOT_OUTPUT=$SWIFTVMBOOT_DIR/output.json - + $SWIFTVMBOOT_DIR/futuregrid/bin/bootit.sh | tee -a bootit.log + SWIFTVMBOOT_OUTPUT=$SWIFTVMBOOT_DIR/futuregrid/output.json if [ ! -f "$SWIFTVMBOOT_OUTPUT" ]; then crash "Error: Swift VM output file $SWIFTVMBOOT_OUTPUT does not exist!" fi SWIFTVM_INSTANCE=`grep "Starting up run" bootit.log |awk '{print $4}'` - echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instance - + echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instances WORKER_HOSTS=`grep hostname $SWIFTVMBOOT_OUTPUT |awk '{print $2}'|sed 's/\"//g;s/,//g;s/null//g'` # Start worker script for MACHINE in $WORKER_HOSTS do - # Enable ssh tunneling if needed if [ "$SSH_TUNNELING" == "yes" ]; then ssh -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & echo $! >> $PID_FILE fi - - # Copy and start worker script + scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 echo "Starting worker on $MACHINE" ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & Modified: branches/release-0.93/bin/stop-coaster-service =================================================================== --- branches/release-0.93/bin/stop-coaster-service 2011-12-16 19:51:37 UTC (rev 5428) +++ branches/release-0.93/bin/stop-coaster-service 2011-12-16 21:21:14 UTC (rev 5429) @@ -34,7 +34,7 @@ if [ "$WORKER_MODE" == "futuregrid" ] && [ -f "$SWIFTVM_INSTANCES" ]; then for INSTANCE in `cat $SWIFTVM_INSTANCES` do - $SWIFTVMBOOT_DIR/ve/bin/cloudinitd terminate $INSTANCE + $SWIFTVMBOOT_DIR/futuregrid/ve/bin/cloudinitd terminate $INSTANCE done rm $SWIFTVM_INSTANCES > /dev/null 2>&1 fi Modified: branches/release-0.93/docs/siteguide/siteguide.txt =================================================================== --- branches/release-0.93/docs/siteguide/siteguide.txt 2011-12-16 19:51:37 UTC (rev 5428) +++ branches/release-0.93/docs/siteguide/siteguide.txt 2011-12-16 21:21:14 UTC (rev 5429) @@ -16,4 +16,6 @@ include::futuregrid[] +include::mcs[] + include::intrepid[] From davidk at ci.uchicago.edu Fri Dec 16 15:22:51 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 16 Dec 2011 15:22:51 -0600 (CST) Subject: [Swift-commit] r5430 - in usertools/swift-vm-boot/futuregrid: . bin Message-ID: <20111216212251.47BA39CCA5@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-16 15:22:51 -0600 (Fri, 16 Dec 2011) New Revision: 5430 Removed: usertools/swift-vm-boot/futuregrid/env.sh usertools/swift-vm-boot/futuregrid/install.sh Modified: usertools/swift-vm-boot/futuregrid/bin/bootit.sh Log: Remove some of the customization files and move options to coaster-service.conf Modified: usertools/swift-vm-boot/futuregrid/bin/bootit.sh =================================================================== --- usertools/swift-vm-boot/futuregrid/bin/bootit.sh 2011-12-16 21:21:14 UTC (rev 5429) +++ usertools/swift-vm-boot/futuregrid/bin/bootit.sh 2011-12-16 21:22:51 UTC (rev 5430) @@ -4,7 +4,6 @@ cd $dir cd .. -source env.sh source ve/bin/activate output="output.json" Deleted: usertools/swift-vm-boot/futuregrid/env.sh =================================================================== --- usertools/swift-vm-boot/futuregrid/env.sh 2011-12-16 21:21:14 UTC (rev 5429) +++ usertools/swift-vm-boot/futuregrid/env.sh 2011-12-16 21:22:51 UTC (rev 5430) @@ -1,9 +0,0 @@ -export FUTUREGRID_IAAS_ACCESS_KEY=XXXX -export FUTUREGRID_IAAS_SECRET_KEY=XXXXXXXXX - -export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY -export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY - -export EC2_URL=https://s83r.idp.sdsc.futuregrid.org:8444 - -export FUTUREGRID_SIERRA_NODES=2 Deleted: usertools/swift-vm-boot/futuregrid/install.sh =================================================================== --- usertools/swift-vm-boot/futuregrid/install.sh 2011-12-16 21:21:14 UTC (rev 5429) +++ usertools/swift-vm-boot/futuregrid/install.sh 2011-12-16 21:22:51 UTC (rev 5430) @@ -1,28 +0,0 @@ -#!/bin/bash - -cd `dirname $0` - -source env.sh -python bin/virtualenv.py ve -if [ $? -ne 0 ]; then - echo "Failed to created the needed python virtual environment" - exit 1 -fi - -source ve/bin/activate -easy_install cloudinitd -if [ $? -ne 0 ]; then - echo "Failed to install cloudinitd" - exit 1 -fi - -echo "Registering the key names in all the clouds" -python bin/register_key.py hosts.txt -if [ $? -ne 0 ]; then - echo "Failed to register the key names" - exit 1 -fi - -echo "Success!" -echo "" -echo 0 From ketan at ci.uchicago.edu Sat Dec 17 19:52:26 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sat, 17 Dec 2011 19:52:26 -0600 (CST) Subject: [Swift-commit] r5431 - branches/release-0.93/docs/siteguide Message-ID: <20111218015226.A38B69CD19@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-17 19:52:26 -0600 (Sat, 17 Dec 2011) New Revision: 5431 Modified: branches/release-0.93/docs/siteguide/beagle Log: added troubleshooting section and some points for troubleshooting in beagle section Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-16 21:22:51 UTC (rev 5430) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 01:52:26 UTC (rev 5431) @@ -149,3 +149,25 @@ ----- +Troubleshooting +~~~~~~~~~~~~~~~ + +In this section we will discuss some of the common issues and remedies while using Swift on Beagle. The origin of these issues can be Swift or the Beagle's configuration, state and user configuration among other factors. We try to identify maximum known issues and address them here: + +* Command not found: Swift is installed on Beagle as a module. If you see the following error message: + +----- +If 'swift' is not a typo you can run the following command to lookup the package that contains the binary: + command-not-found swift +-bash: swift: command not found +----- + +The most likely cause is the module is not loaded. Do the following to load the Swift module: + +----- +$ module load swift +Swift version swift-0.93RC5 loaded +----- + +* Failed to transfer wrapperlog for job cat-nmobtbkk and/or Job failed with an exit code of 254. Check the element on the sites.xml file. It is likely that it is set to a path where the compute nodes can not write, e.g. your /home directory. The remedy for this error is to set your workdirectory to the /lustre path where swift could write from compute nodes. + From ketan at ci.uchicago.edu Sat Dec 17 20:19:12 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sat, 17 Dec 2011 20:19:12 -0600 (CST) Subject: [Swift-commit] r5432 - branches/release-0.93/docs/siteguide Message-ID: <20111218021912.6A0F39CD19@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-17 20:19:12 -0600 (Sat, 17 Dec 2011) New Revision: 5432 Modified: branches/release-0.93/docs/siteguide/beagle Log: minor addition to siteguide beagle Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 01:52:26 UTC (rev 5431) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 02:19:12 UTC (rev 5432) @@ -169,5 +169,14 @@ Swift version swift-0.93RC5 loaded ----- -* Failed to transfer wrapperlog for job cat-nmobtbkk and/or Job failed with an exit code of 254. Check the element on the sites.xml file. It is likely that it is set to a path where the compute nodes can not write, e.g. your /home directory. The remedy for this error is to set your workdirectory to the /lustre path where swift could write from compute nodes. +* Failed to transfer wrapperlog for job cat-nmobtbkk and/or Job failed with an exit code of 254. Check the element on the sites.xml file. + +----- +/home/ketan/swift.workdir +----- +It is likely that it is set to a path where the compute nodes can not write, e.g. your /home directory. The remedy for this error is to set your workdirectory to the /lustre path where swift could write from compute nodes. + +---- +/lustre/beagle/ketan/swift.workdir +---- From davidk at ci.uchicago.edu Sat Dec 17 20:38:22 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 17 Dec 2011 20:38:22 -0600 (CST) Subject: [Swift-commit] r5433 - branches/release-0.93/bin Message-ID: <20111218023822.604719CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-17 20:38:22 -0600 (Sat, 17 Dec 2011) New Revision: 5433 Modified: branches/release-0.93/bin/gensites branches/release-0.93/bin/start-coaster-service branches/release-0.93/bin/stop-coaster-service Log: Various minor updates Modified: branches/release-0.93/bin/gensites =================================================================== --- branches/release-0.93/bin/gensites 2011-12-18 02:19:12 UTC (rev 5432) +++ branches/release-0.93/bin/gensites 2011-12-18 02:38:22 UTC (rev 5433) @@ -226,7 +226,7 @@ # Test for HOST/GLOBUS_HOSTNAME - the only values which don't match if [ "$TOKEN" == "HOST" ]; then if [ -z "$GLOBUS_HOSTNAME" ]; then - crash "Not specified: GLOBUS_HOSTNAME" + GLOBUS_HOSTNAME=$( hostname -f ) fi elif grep _${TOKEN}_ $TEMPLATE_PATH > /dev/null; then if [ -z "${!TOKEN}" ]; then Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-18 02:19:12 UTC (rev 5432) +++ branches/release-0.93/bin/start-coaster-service 2011-12-18 02:38:22 UTC (rev 5433) @@ -64,6 +64,7 @@ # Start worker script for MACHINE in $WORKER_HOSTS do + echo $MACHINE >> $HOME/.swift/machines if [ "$SSH_TUNNELING" == "yes" ]; then ssh -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & echo $! >> $PID_FILE @@ -108,13 +109,13 @@ WORKER_HOSTS=`$SWIFTVMBOOT_DIR/bin/gp-instance-describe $SWIFTVM_INSTANCE|sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"|awk '{print $3}'` # Start worker script - if [ -f "$HOME/.swift/.machines" ]; then - rm $HOME/.swift/.machines + if [ -f "$HOME/.swift/machines" ]; then + rm $HOME/.swift/machines fi for MACHINE in $WORKER_HOSTS do # Create a list of machines for other applications, if needed - echo $MACHINE >> $HOME/.swift/.machines + echo $MACHINE >> $HOME/.swift/machines # Enable ssh tunneling if needed if [ "$SSH_TUNNELING" == "yes" ]; then @@ -166,8 +167,8 @@ WORKER_HOSTS=$( $SWIFTVMBOOT_DIR/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $4}' ) - if [ -f "$HOME/.swift/.machines" ]; then - rm $HOME/.swift/.machines + if [ -f "$HOME/.swift/machines" ]; then + rm $HOME/.swift/machines fi # Start worker script @@ -176,7 +177,7 @@ do # Create a list of machines for other applications, if needed - echo $MACHINE >> $HOME/.swift/.machines + echo $MACHINE >> $HOME/.swift/machines # Enable ssh tunneling if needed if [ "$SSH_TUNNELING" == "yes" ]; then @@ -433,7 +434,7 @@ wrapperlog.always.transfer=false execution.retries=0 provider.staging.pin.swiftfiles=false -sitedir.keep=true +sitedir.keep=false EOF fi Modified: branches/release-0.93/bin/stop-coaster-service =================================================================== --- branches/release-0.93/bin/stop-coaster-service 2011-12-18 02:19:12 UTC (rev 5432) +++ branches/release-0.93/bin/stop-coaster-service 2011-12-18 02:38:22 UTC (rev 5433) @@ -60,8 +60,8 @@ fi fi -if [ -f "$HOME/.swift/.machines" ]; then - rm "$HOME/.swift/.machines" +if [ -f "$HOME/.swift/machines" ]; then + rm "$HOME/.swift/machines" fi popd > /dev/null 2>&1 From ketan at ci.uchicago.edu Sat Dec 17 21:01:08 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sat, 17 Dec 2011 21:01:08 -0600 (CST) Subject: [Swift-commit] r5434 - branches/release-0.93/docs/siteguide Message-ID: <20111218030108.4F7699CD19@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-17 21:01:08 -0600 (Sat, 17 Dec 2011) New Revision: 5434 Modified: branches/release-0.93/docs/siteguide/beagle Log: Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 02:38:22 UTC (rev 5433) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 03:01:08 UTC (rev 5434) @@ -96,12 +96,25 @@ More about config and tc file options can be found in the swift userguide here: http://www.ci.uchicago.edu/swift/wwwdev/guides/release-0.93/userguide/userguide.html#_swift_configuration_properties. *step 6.* Run the example using following commandline (also found in run.sh): -+swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=1+ + +----- +swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=1 +----- + . You can further change the value of +-n+ to any arbitrary number to run that many number of concurrent +cat+ *step 7.* Swift will show a status message as "done" after the job has completed its run in the queue. Check the output in the generated +outdir+ directory (+ls outdir+) +---- +Swift 0.93RC5 swift-r5285 cog-r3322 + +RunID: 20111218-0246-6ai8g7f0 +Progress: time: Sun, 18 Dec 2011 02:46:33 +0000 +Progress: time: Sun, 18 Dec 2011 02:46:42 +0000 Active:1 +Final status: time: Sun, 18 Dec 2011 02:46:43 +0000 Finished successfully:1 +---- + Note: Running from sandbox node or requesting 30 minutes walltime for upto 3 nodes will get fast prioritized execution. Good for small tests. From ketan at ci.uchicago.edu Sat Dec 17 21:06:30 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sat, 17 Dec 2011 21:06:30 -0600 (CST) Subject: [Swift-commit] r5435 - branches/release-0.93/docs/siteguide Message-ID: <20111218030630.851349CD19@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-17 21:06:30 -0600 (Sat, 17 Dec 2011) New Revision: 5435 Modified: branches/release-0.93/docs/siteguide/beagle Log: sanity Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 03:01:08 UTC (rev 5434) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 03:06:30 UTC (rev 5435) @@ -95,13 +95,13 @@ More about config and tc file options can be found in the swift userguide here: http://www.ci.uchicago.edu/swift/wwwdev/guides/release-0.93/userguide/userguide.html#_swift_configuration_properties. -*step 6.* Run the example using following commandline (also found in run.sh): +*step 6.* Run the example using following commandline: ----- swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=1 ----- -. You can further change the value of +-n+ to any arbitrary number to run that +You can further change the value of +-n+ to any arbitrary number to run that many number of concurrent +cat+ *step 7.* Swift will show a status message as "done" after the job has completed its run in the queue. Check the output in the generated +outdir+ directory (+ls outdir+) @@ -116,7 +116,7 @@ ---- Note: Running from sandbox node or requesting 30 minutes walltime for upto 3 nodes -will get fast prioritized execution. Good for small tests. +will get fast prioritized execution. Suitable for small tests. Larger Runs on Beagle ~~~~~~~~~~~~~~~~~~~~~ @@ -124,7 +124,7 @@ The following sites.xml parameters must be set to scale that is intended for a large run: * *maxTime* : The expected walltime for completion of your run. This parameter is accepted in seconds. - * *slots* : This parameter specifies the maximum number of jobs/blocks that the coaster scheduler will have running at any given time. On Beagle, this number will determine how many qsubs swift will submit for your run. Typical values range between 40 and 60 for large runs. + * *slots* : This parameter specifies the maximum number of pbs jobs/blocks that the coaster scheduler will have running at any given time. On Beagle, this number will determine how many qsubs swift will submit for your run. Typical values range between 40 and 60 for large runs. * *nodeGranularity* : Determines the number of nodes per job. It restricts the number of nodes in a job to a multiple of this value. The total number of workers will then be a multiple of jobsPerNode * nodeGranularity. For Beagle, jobsPerNode value is 24 corresponding to its 24 cores per node. * *maxNodes* : Determines the maximum number of nodes a job must pack into its qsub. This parameter determines the largest single job that your run will submit. * *jobThrottle* : A factor that determines the number of tasks dispatched simultaneously. The intended number of simultaneous tasks must match the number of cores targeted. The number of tasks is calculated from the jobThrottle factor is as follows: From ketan at ci.uchicago.edu Sat Dec 17 22:00:34 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sat, 17 Dec 2011 22:00:34 -0600 (CST) Subject: [Swift-commit] r5436 - trunk/docs/siteguide Message-ID: <20111218040034.D0CC29CD19@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-17 22:00:34 -0600 (Sat, 17 Dec 2011) New Revision: 5436 Modified: trunk/docs/siteguide/beagle Log: beagle siteguide update Modified: trunk/docs/siteguide/beagle =================================================================== --- trunk/docs/siteguide/beagle 2011-12-18 03:06:30 UTC (rev 5435) +++ trunk/docs/siteguide/beagle 2011-12-18 04:00:34 UTC (rev 5436) @@ -26,24 +26,170 @@ stay. (say, +mkdir swift-lab+, followed by, +cd swift-lab+) *step 3.* To get started with a simple example running +/bin/cat+ to read an -input file +data.txt+ and write to an output file +f.nnn.out+, copy the folder -at +/home/ketan/catsn+ to the above directory. (+cp -r /home/ketan/catsn -.+ followed by +cd catsn+). +input file +data.txt+ and write to an output file +f.nnn.out+, start with writing a simple swift source script as follows: -*step 4.* In the sites file: +beagle-coaster.xml+, make the following two -changes: *1)* change the path of +workdirectory+ to your preferred location -(say to +/lustre/beagle/$USER/swift-lab/swift.workdir+) and *2)* Change the -project name to your project (+CI-CCR000013+) . The workdirectory will contain -execution data related to each run, e.g. wrapper scripts, system information, -inputs and outputs. +----- +type file; -*step 5.* Run the example using following commandline (also found in run.sh): -+swift -config cf -tc.file tc -sites.file beagle-coaster.xml catsn.swift -n=1+ -. You can further change the value of +-n+ to any arbitrary number to run that +/* App definitio */ +app (file o) cat (file i) +{ + cat @i stdout=@o; +} + +file out[]; +file data<"data.txt">; + +/* App invocation: n times */ +foreach j in [1:@toint(@arg("n","1"))] { + out[j] = cat(data); +} +----- + +*step 4.* The next step is to create a sites file. An example sites file (sites.xml) is shown as follows: + +----- + + + + + CI-CCR000013 + + + pbs.aprun;pbs.mpp;depth=24 + + 24 + 1000 + 1 + 1 + 1 + + .63 + 10000 + + + + /lustre/beagle/ketan/swift.workdir + + +----- + +*step 5.* In this step, we will see the config and tc files. The config file (cf) is as follows: + +----- +wrapperlog.always.transfer=true +sitedir.keep=true +execution.retries=1 +lazy.errors=true +use.provider.staging=true +provider.staging.pin.swiftfiles=false +foreach.max.threads=100 +provenance.log=false +----- + +The tc file (tc) is as follows: + +----- +pbs cat /bin/cat null null null +----- + +More about config and tc file options can be found in the swift userguide here: http://www.ci.uchicago.edu/swift/wwwdev/guides/release-0.93/userguide/userguide.html#_swift_configuration_properties. + +*step 6.* Run the example using following commandline: + +----- +swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=1 +----- + +You can further change the value of +-n+ to any arbitrary number to run that many number of concurrent +cat+ -*step 6.* Check the output in the generated +outdir+ directory (+ls outdir+) +*step 7.* Swift will show a status message as "done" after the job has completed its run in the queue. Check the output in the generated +outdir+ directory (+ls outdir+) -Note: Running from sandbox node or requesting 1 hour walltime for upto 3 nodes -will get fast prioritized execution. Good for small tests. +---- +Swift 0.93RC5 swift-r5285 cog-r3322 +RunID: 20111218-0246-6ai8g7f0 +Progress: time: Sun, 18 Dec 2011 02:46:33 +0000 +Progress: time: Sun, 18 Dec 2011 02:46:42 +0000 Active:1 +Final status: time: Sun, 18 Dec 2011 02:46:43 +0000 Finished successfully:1 +---- + +Note: Running from sandbox node or requesting 30 minutes walltime for upto 3 nodes +will get fast prioritized execution. Suitable for small tests. + +Larger Runs on Beagle +~~~~~~~~~~~~~~~~~~~~~ +A key factor in scaling up Swift runs on Beagle is to setup the sites.xml parameters. +The following sites.xml parameters must be set to scale that is intended for a large run: + + * *maxTime* : The expected walltime for completion of your run. This parameter is accepted in seconds. + * *slots* : This parameter specifies the maximum number of pbs jobs/blocks that the coaster scheduler will have running at any given time. On Beagle, this number will determine how many qsubs swift will submit for your run. Typical values range between 40 and 60 for large runs. + * *nodeGranularity* : Determines the number of nodes per job. It restricts the number of nodes in a job to a multiple of this value. The total number of workers will then be a multiple of jobsPerNode * nodeGranularity. For Beagle, jobsPerNode value is 24 corresponding to its 24 cores per node. + * *maxNodes* : Determines the maximum number of nodes a job must pack into its qsub. This parameter determines the largest single job that your run will submit. + * *jobThrottle* : A factor that determines the number of tasks dispatched simultaneously. The intended number of simultaneous tasks must match the number of cores targeted. The number of tasks is calculated from the jobThrottle factor is as follows: + +---- +Number of Tasks = (JobThrottle x 100) + 1 +---- + +Following is an example sites.xml for a 50 slots run with each slot occupying 4 nodes (thus, a 200 node run): + +----- + + + + CI-CCR000013 + + 24:cray:pack + + + + 24 + 50000 + 50 + 4 + 4 + + 48.00 + 10000 + + + /lustre/beagle/ketan/swift.workdir + + +----- + +Troubleshooting +~~~~~~~~~~~~~~~ + +In this section we will discuss some of the common issues and remedies while using Swift on Beagle. The origin of these issues can be Swift or the Beagle's configuration, state and user configuration among other factors. We try to identify maximum known issues and address them here: + +* Command not found: Swift is installed on Beagle as a module. If you see the following error message: + +----- +If 'swift' is not a typo you can run the following command to lookup the package that contains the binary: + command-not-found swift +-bash: swift: command not found +----- + +The most likely cause is the module is not loaded. Do the following to load the Swift module: + +----- +$ module load swift +Swift version swift-0.93RC5 loaded +----- + +* Failed to transfer wrapperlog for job cat-nmobtbkk and/or Job failed with an exit code of 254. Check the element on the sites.xml file. + +----- +/home/ketan/swift.workdir +----- + +It is likely that it is set to a path where the compute nodes can not write, e.g. your /home directory. The remedy for this error is to set your workdirectory to the /lustre path where swift could write from compute nodes. + +---- +/lustre/beagle/ketan/swift.workdir +---- From ketan at ci.uchicago.edu Sun Dec 18 10:20:37 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 18 Dec 2011 10:20:37 -0600 (CST) Subject: [Swift-commit] r5437 - branches/release-0.93/docs/siteguide Message-ID: <20111218162038.045729CC9A@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-18 10:20:37 -0600 (Sun, 18 Dec 2011) New Revision: 5437 Modified: branches/release-0.93/docs/siteguide/beagle Log: updating troubleshooting section Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 04:00:34 UTC (rev 5436) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 16:20:37 UTC (rev 5437) @@ -193,3 +193,5 @@ ---- /lustre/beagle/ketan/swift.workdir ---- + +* Application invocation fails. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. From ketan at ci.uchicago.edu Sun Dec 18 10:33:15 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 18 Dec 2011 10:33:15 -0600 (CST) Subject: [Swift-commit] r5438 - branches/release-0.93/docs/siteguide Message-ID: <20111218163315.8B0D89CC9A@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-18 10:33:15 -0600 (Sun, 18 Dec 2011) New Revision: 5438 Modified: branches/release-0.93/docs/siteguide/beagle Log: updating troubleshooting section Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 16:20:37 UTC (rev 5437) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 16:33:15 UTC (rev 5438) @@ -194,4 +194,8 @@ /lustre/beagle/ketan/swift.workdir ---- +* If the error message does not give much clue, one can go about the following approaches to find more help: + - Search for the particular error message on the swift mailing list archive from here: http://www.ci.uchicago.edu/swift/wwwdev/support/index.php + - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user + * Application invocation fails. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. From ketan at ci.uchicago.edu Sun Dec 18 14:55:45 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 18 Dec 2011 14:55:45 -0600 (CST) Subject: [Swift-commit] r5439 - branches/release-0.93/docs/siteguide Message-ID: <20111218205545.CF5EA9CC9A@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-18 14:55:45 -0600 (Sun, 18 Dec 2011) New Revision: 5439 Modified: branches/release-0.93/docs/siteguide/beagle Log: added beagle siteguide contents Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 16:33:15 UTC (rev 5438) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 20:55:45 UTC (rev 5439) @@ -162,6 +162,14 @@ ----- +Resuming Big Runs +~~~~~~~~~~~~~~~~~ +Oftentimes, the application runs with a large number of tasks needed to be resumed after they have run to a certain point. The reasons for resume could be among others, application error, trainsient errors such as Beagle's availability or accidental shutdowns of the runs. In such cases, the *resume* feature of Swift is very handy. Resume starts the run from the point it left of. One can resume a stopped run using the same swift commandline plus adding the option -resume followed by a resume log (.rlog) that is created by Swift. An example of such a resume follows: + +----- +$ swift -resume catsn-ht0adgi315l61.0.rlog catsn.swift +----- + Troubleshooting ~~~~~~~~~~~~~~~ @@ -199,3 +207,33 @@ - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user * Application invocation fails. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. + - Handling exitcodes in wrapperscript. The following code snippet from an application, handles the erroneous exitcode so that the erroneous runs could be logged and dealt with later: + +---- +call_to_app $1 $2 +if [ "$exit_status" -ne 0 ]; then + echo $2 | awk '{ print $1 }' >> /lustre/beagle/ketan/App_FailedList.txt +fi +---- + +- Advanced Handling of Out of Memory (OOM) Conditions. The following code snippet handles a case of OOM error conditions by monitoring the available memory at each invocation: + +---- +# if mem is low, wait for it to recover before starting +for i in $(seq 0 $maxtries); do + freeMB=$(free -m | grep cache: | awk '{print $4}') + if [ $freeMB -lt $lowmem ]; then + if [ $i = $maxtries ]; then + echo "$host $(date) freeMB = $freeMB below yellow mark $lowmem after $maxtries $startsleep sec pauses. Exiting." >>$oomlog + exit 7 + else + echo "$host $(date) freeMB = $freeMB below yellow mark $lowmem on try $i. Sleeping $startsleep sec." >>$oomlog + sleep $startsleep + fi + else + break + fi +done + +app_invocation $args +---- From ketan at ci.uchicago.edu Sun Dec 18 17:26:30 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 18 Dec 2011 17:26:30 -0600 (CST) Subject: [Swift-commit] r5440 - branches/release-0.93/docs/siteguide Message-ID: <20111218232630.8855D9CC9A@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-18 17:26:30 -0600 (Sun, 18 Dec 2011) New Revision: 5440 Modified: branches/release-0.93/docs/siteguide/beagle Log: Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 20:55:45 UTC (rev 5439) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-18 23:26:30 UTC (rev 5440) @@ -178,12 +178,13 @@ * Command not found: Swift is installed on Beagle as a module. If you see the following error message: ----- -If 'swift' is not a typo you can run the following command to lookup the package that contains the binary: +If 'swift' is not a typo you can run the following command to lookup the +package that contains the binary: command-not-found swift -bash: swift: command not found ----- -The most likely cause is the module is not loaded. Do the following to load the Swift module: +The most likely cause is the Swift module is not loaded. Do the following to load the Swift module: ----- $ module load swift @@ -198,10 +199,22 @@ It is likely that it is set to a path where the compute nodes can not write, e.g. your /home directory. The remedy for this error is to set your workdirectory to the /lustre path where swift could write from compute nodes. ----- +----- /lustre/beagle/ketan/swift.workdir ----- +----- +* Out of heap space error is a typical error that you get when running large number of tasks in parallel from a submit host such as Beagle login nodes. + +----- +java.lang.OutOfMemoryError: Java heap space +----- + +A simple solution to this problem is to increase the java heap space. This can be solved by increasing the heap space Swift gets by the following environment variable: + +----- +WIFT_HEAP_MAX=5000M swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=10000 +----- + * If the error message does not give much clue, one can go about the following approaches to find more help: - Search for the particular error message on the swift mailing list archive from here: http://www.ci.uchicago.edu/swift/wwwdev/support/index.php - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user @@ -224,10 +237,12 @@ freeMB=$(free -m | grep cache: | awk '{print $4}') if [ $freeMB -lt $lowmem ]; then if [ $i = $maxtries ]; then - echo "$host $(date) freeMB = $freeMB below yellow mark $lowmem after $maxtries $startsleep sec pauses. Exiting." >>$oomlog + echo "$host $(date) freeMB = $freeMB below yellow mark $lowmem after $maxtries \ + $startsleep sec pauses. Exiting." >>$oomlog exit 7 else - echo "$host $(date) freeMB = $freeMB below yellow mark $lowmem on try $i. Sleeping $startsleep sec." >>$oomlog + echo "$host $(date) freeMB = $freeMB below yellow mark $lowmem on try $i. Sleeping \ + $startsleep sec." >>$oomlog sleep $startsleep fi else From ketan at ci.uchicago.edu Sun Dec 18 20:21:11 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 18 Dec 2011 20:21:11 -0600 (CST) Subject: [Swift-commit] r5441 - branches/release-0.93/docs/siteguide Message-ID: <20111219022111.0C67C9CC9A@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-18 20:21:10 -0600 (Sun, 18 Dec 2011) New Revision: 5441 Modified: branches/release-0.93/docs/siteguide/beagle Log: some format updates Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-18 23:26:30 UTC (rev 5440) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-19 02:21:10 UTC (rev 5441) @@ -162,8 +162,8 @@ ----- -Resuming Big Runs -~~~~~~~~~~~~~~~~~ +Resuming Large Runs +~~~~~~~~~~~~~~~~~~~ Oftentimes, the application runs with a large number of tasks needed to be resumed after they have run to a certain point. The reasons for resume could be among others, application error, trainsient errors such as Beagle's availability or accidental shutdowns of the runs. In such cases, the *resume* feature of Swift is very handy. Resume starts the run from the point it left of. One can resume a stopped run using the same swift commandline plus adding the option -resume followed by a resume log (.rlog) that is created by Swift. An example of such a resume follows: ----- From ketan at ci.uchicago.edu Sun Dec 18 20:27:33 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 18 Dec 2011 20:27:33 -0600 (CST) Subject: [Swift-commit] r5442 - branches/release-0.93/docs/siteguide Message-ID: <20111219022733.D3F099CC9A@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-18 20:27:33 -0600 (Sun, 18 Dec 2011) New Revision: 5442 Modified: branches/release-0.93/docs/siteguide/beagle Log: minor Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-19 02:21:10 UTC (rev 5441) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-19 02:27:33 UTC (rev 5442) @@ -164,7 +164,7 @@ Resuming Large Runs ~~~~~~~~~~~~~~~~~~~ -Oftentimes, the application runs with a large number of tasks needed to be resumed after they have run to a certain point. The reasons for resume could be among others, application error, trainsient errors such as Beagle's availability or accidental shutdowns of the runs. In such cases, the *resume* feature of Swift is very handy. Resume starts the run from the point it left of. One can resume a stopped run using the same swift commandline plus adding the option -resume followed by a resume log (.rlog) that is created by Swift. An example of such a resume follows: +Oftentimes, the application runs with a large number of tasks needed to be resumed after they have run to a certain point. The reasons for resume could be among others, application error, trainsient errors such as Beagle's availability or accidental shutdowns of the runs. In such cases, the *resume* feature of Swift is very handy. Resume starts the run from the point it left of. One can resume a stopped run using the same swift commandline plus adding the option -resume followed by a resume log (extension .rlog) that is created by Swift in your run directory. An example of such a resume follows: ----- $ swift -resume catsn-ht0adgi315l61.0.rlog catsn.swift From ketan at ci.uchicago.edu Mon Dec 19 09:48:36 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Mon, 19 Dec 2011 09:48:36 -0600 (CST) Subject: [Swift-commit] r5443 - branches/release-0.93/docs/siteguide Message-ID: <20111219154837.08F259CD07@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-19 09:48:35 -0600 (Mon, 19 Dec 2011) New Revision: 5443 Modified: branches/release-0.93/docs/siteguide/beagle Log: adding an intro section to Swift Beagle documentation Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-19 02:27:33 UTC (rev 5442) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-19 15:48:35 UTC (rev 5443) @@ -1,6 +1,8 @@ Beagle ------ - +Introduction +~~~~~~~~~~~~ +Beagle is a Cray XE6 supercomputer at UChicago. It employs a batch-oriented computational model where-in a PBS schedular accepts user's jobs and queues them in the queueing system for execution. The computational model requires a user to prepare the submit files, track job submissions, chackpointing, managing input/output data and handling exceptional conditions manually. Running Swift under Beagle can accomplish the above tasks with least manual user intervention and maximal oppurtunistic computation time on Beagle queues. In the following sections, we discuss more about specifics of running Swift on Beagle. A more detailed information about Swift and its workings can be found on Swift documentation page here: http://www.ci.uchicago.edu/swift/wwwdev/docs/index.php . Requesting Access ~~~~~~~~~~~~~~~~~ If you do not already have a Computation Institute account, you can request From ketan at ci.uchicago.edu Mon Dec 19 10:35:17 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Mon, 19 Dec 2011 10:35:17 -0600 (CST) Subject: [Swift-commit] r5444 - branches/release-0.93/docs/siteguide Message-ID: <20111219163517.8E8729CD07@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-19 10:35:17 -0600 (Mon, 19 Dec 2011) New Revision: 5444 Modified: branches/release-0.93/docs/siteguide/beagle Log: minor Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-19 15:48:35 UTC (rev 5443) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-19 16:35:17 UTC (rev 5444) @@ -1,8 +1,10 @@ Beagle ------ + Introduction ~~~~~~~~~~~~ Beagle is a Cray XE6 supercomputer at UChicago. It employs a batch-oriented computational model where-in a PBS schedular accepts user's jobs and queues them in the queueing system for execution. The computational model requires a user to prepare the submit files, track job submissions, chackpointing, managing input/output data and handling exceptional conditions manually. Running Swift under Beagle can accomplish the above tasks with least manual user intervention and maximal oppurtunistic computation time on Beagle queues. In the following sections, we discuss more about specifics of running Swift on Beagle. A more detailed information about Swift and its workings can be found on Swift documentation page here: http://www.ci.uchicago.edu/swift/wwwdev/docs/index.php . + Requesting Access ~~~~~~~~~~~~~~~~~ If you do not already have a Computation Institute account, you can request From davidk at ci.uchicago.edu Mon Dec 19 11:26:40 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Mon, 19 Dec 2011 11:26:40 -0600 (CST) Subject: [Swift-commit] r5445 - branches/release-0.93/docs/siteguide Message-ID: <20111219172640.3DA2A9CD07@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-19 11:26:40 -0600 (Mon, 19 Dec 2011) New Revision: 5445 Added: branches/release-0.93/docs/siteguide/mcs Log: Updated mcs siteguide entry Added: branches/release-0.93/docs/siteguide/mcs =================================================================== --- branches/release-0.93/docs/siteguide/mcs (rev 0) +++ branches/release-0.93/docs/siteguide/mcs 2011-12-19 17:26:40 UTC (rev 5445) @@ -0,0 +1,53 @@ +MCS Workstations +---------------- + +Create a coaster-service.conf +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +To begin, copy the text below and paste it into your Swift distribution's etc +directory. Name the file coaster-service.conf. + +----- +include::../../tests/providers/mcs/coaster-service.conf[] +----- + +Starting the Coaster Service +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Change directories to the location you would like to run a +Swift script and start the coaster service with this +command: + +----- +start-coaster-service +----- + +This will create a configuration file that Swift needs +called sites.xml. + +WARNING: Any existing sites.xml files in this directory +will be overwritten. Be sure to make a copy of any +custom configuration files you may have. + +Run Swift +~~~~~~~~~ + +Next, run Swift. If you do not have a particular script +in mind, you can test Swift by using a Swift script in +the examples/ directory. + +Run the following command to run the script: +----- +swift -sites.file sites.xml -tc.file tc.data yourscript.swift +----- + +Stopping the Coaster Service +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The coaster service will run indefinitely. The stop-coaster-service +script will terminate the coaster service. + +----- +$ stop-coaster-service +----- + +This will kill the coaster service and kill the worker scripts on remote systems. + From davidk at ci.uchicago.edu Mon Dec 19 13:15:32 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Mon, 19 Dec 2011 13:15:32 -0600 (CST) Subject: [Swift-commit] r5446 - branches/release-0.93/docs/siteguide Message-ID: <20111219191532.AB94C9CD07@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-19 13:15:32 -0600 (Mon, 19 Dec 2011) New Revision: 5446 Modified: branches/release-0.93/docs/siteguide/futuregrid branches/release-0.93/docs/siteguide/intrepid Log: Reflect recent futuregrid changes to siteguide, fix missing link in intrepid guide Modified: branches/release-0.93/docs/siteguide/futuregrid =================================================================== --- branches/release-0.93/docs/siteguide/futuregrid 2011-12-19 17:26:40 UTC (rev 5445) +++ branches/release-0.93/docs/siteguide/futuregrid 2011-12-19 19:15:32 UTC (rev 5446) @@ -1,26 +1,6 @@ Futuregrid Quickstart Guide --------------------------- -Downloading and Building Swift -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The most recent versions of Swift can be found at -http://www.ci.uchicago.edu/swift/downloads/index.php. To run on futuregrid, -you will need to use Swift 0.93 or later. - -Adding Swift to your PATH -~~~~~~~~~~~~~~~~~~~~~~~~~ -Once you have installed Swift, add the Swift binary to your PATH so you can -easily run it from any directory. - -In your home directory, edit the file ".bashrc". - -If you have installed Swift via a source repository, add the following line -at the bottom of .bashrc. - ------ -export PATH=$PATH:$HOME/cog/modules/swift/dist/swift-svn/bin ------ - Requesting Futuregrid Access ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you do not already have a futuregrid account, you can follow the @@ -51,45 +31,57 @@ called vws.repository.s3id and vws.repository.s3key. Copy these values for the next step. -Configuring Swift VM Tools -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Change directories into the swift-vm-boot directory. Edit the file -called env.sh. There are two settings here that you will need to -modify: FUTUREGRID_IAAS_ACCESS_KEY and FUTUREGRID_IAAS_SECRET_KEY. -Paste your access key (s3id) and secret key (s3key) here and save -the file. By default, env.sh requests 2 nodes on hotel and 2 nodes -on sierra. Change these values as needed. Run install.sh from the -swift-vm-boot directory to complete the installation of Swift VM -Tools. The Swift VM Tools may require a fairly recent version of -Python. If you run into problems while running the install.sh -script, please try a more recent version of Python and associated -libraries. - Configuring coaster-service.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Within your swift distribution's etc directory is a file called -coaster-service.conf. There are many options here you can modify -as needed, but these are the settings that will be required -to run on futuregrid: +To run on futuregrid, you will need a file called coaster-service.conf. +This file contains many options to control how things run. Here is +an example of a working coaster-service.conf on futuregrid. ----- -export WORKER_WORK=/tmp +# Where to copy worker.pl on the remote machine for sites.xml +export WORKER_LOCATION=/tmp + +# How to launch workers: local, ssh, cobalt, or futuregrid export WORKER_MODE=futuregrid + +# Do all the worker nodes you're using have a shared filesystem? (yes/no) export SHARED_FILESYSTEM=no + +# Username to use on worker nodes export WORKER_USERNAME=root + +# Enable SSH tunneling? (yes/no) export SSH_TUNNELING=yes + +# Directory to keep log files, relative to working directory when launching start-coaster-service +export LOG_DIR=logs + +# Location of the swift-vm-boot scripts export SWIFTVMBOOT_DIR=$HOME/swift-vm-boot + +# Futuregrid settings +export FUTUREGRID_IAAS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXX +export FUTUREGRID_IAAS_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +export FUTUREGRID_HOTEL_NODES=0 +export FUTUREGRID_SIERRA_NODES=2 +export FUTUREGRID_CPUS_PER_NODE=1 + +# Swift information for creating sites.xml export WORK=/tmp +export JOBS_PER_NODE=$FUTUREGRID_CPUS_PER_NODE +export JOB_THROTTLE=$( echo "scale=5; ($JOBS_PER_NODE * $(($FUTUREGRID_HOTEL_NODES + $FUTUREGRID_SIERRA_NODES)))/100 - 0.00001"|bc ) + +# Application locations for tc.data +#app convert=/usr/bin/convert ----- -These is a brief description of these settings in the coaster-service.conf file. -Tunneling should be used when you are restricted by a firewall. If your local -machine has multiple network interfaces, you should also manually set the IP -address of your machine with export IPADDR=your.ip.address.here. +Paste your credentials from the hotel.conf file into the FUTUREGRID_IAAS_ACCESS_KEY and FUTUREGRID_IAAS_SECRET_KEY fields. +Adjust the number of nodes you would like to allocate here by changing the values of FUTUREGRID_HOTEL_NODES and FUTUREGRID_SIERRA_NODES. +Add a list of any applications you want to run in the format "#app myapp=/path/to/app". Starting the Coaster Service Script ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Now that everything is configured, change to a temporary directory +Now that everything is configured, change to the location of the coaster-service.conf file and run this command to start the coaster service: ----- Modified: branches/release-0.93/docs/siteguide/intrepid =================================================================== --- branches/release-0.93/docs/siteguide/intrepid 2011-12-19 17:26:40 UTC (rev 5445) +++ branches/release-0.93/docs/siteguide/intrepid 2011-12-19 19:15:32 UTC (rev 5446) @@ -125,7 +125,7 @@ TODO: Update the rest below here ----- -include::../../tests/providers/local-cobalt/intrepid/sites.template.xml[] +include::../../tests/providers/intrepid/sites.template.xml[] ----- The values to note here are the ones that are listed between underscores. In the example above, they are \_QUEUE_, and \_WORK_. Queue is the PADS queue to use and WORK is the swift work directory. These are placeholder values you will need to modify to fit your needs. Copy and paste this template, replace the values, and call it sites.xml. @@ -135,7 +135,7 @@ Below is the tc.data file used by Swift's test suite for running on PADS. ----- -include::../../tests/providers/local-cobalt/intrepid/tc.template.data[] +include::../../tests/providers/intrepid/tc.template.data[] ------ Copy these commands and save it as tc.data. From ketan at ci.uchicago.edu Mon Dec 19 17:15:56 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Mon, 19 Dec 2011 17:15:56 -0600 (CST) Subject: [Swift-commit] r5447 - branches/release-0.93/docs/siteguide Message-ID: <20111219231556.463459CD07@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-19 17:15:56 -0600 (Mon, 19 Dec 2011) New Revision: 5447 Modified: branches/release-0.93/docs/siteguide/beagle Log: minor Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-19 19:15:32 UTC (rev 5446) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-19 23:15:56 UTC (rev 5447) @@ -3,7 +3,7 @@ Introduction ~~~~~~~~~~~~ -Beagle is a Cray XE6 supercomputer at UChicago. It employs a batch-oriented computational model where-in a PBS schedular accepts user's jobs and queues them in the queueing system for execution. The computational model requires a user to prepare the submit files, track job submissions, chackpointing, managing input/output data and handling exceptional conditions manually. Running Swift under Beagle can accomplish the above tasks with least manual user intervention and maximal oppurtunistic computation time on Beagle queues. In the following sections, we discuss more about specifics of running Swift on Beagle. A more detailed information about Swift and its workings can be found on Swift documentation page here: http://www.ci.uchicago.edu/swift/wwwdev/docs/index.php . +Beagle is a Cray XE6 supercomputer at UChicago. It employs a batch-oriented computational model where-in a PBS schedular accepts user's jobs and queues them in the queueing system for execution. The computational model requires a user to prepare the submit files, track job submissions, chackpointing, managing input/output data and handling exceptional conditions manually. Running Swift under Beagle can accomplish the above tasks with least manual user intervention and maximal oppurtunistic computation time on Beagle queues. In the following sections, we discuss more about specifics of running Swift on Beagle. A more detailed information about Swift and its workings can be found on Swift documentation page here: http://www.ci.uchicago.edu/swift/wwwdev/docs/index.php . More information on Beagle can be found on UChicago Beagle website here: http://beagle.ci.uchicago.edu . Requesting Access ~~~~~~~~~~~~~~~~~ @@ -19,9 +19,15 @@ node with the following command: ----- -ssh yourusername at login.beagle.ci.uchicago.edu +ssh -l username login.beagle.ci.uchicago.edu -A ----- +or to log on to the sandbox: + +----- +ssh -l username sandbox.beagle.ci.uchicago.edu -A +----- + Follow the steps outlined below to get started with Swift on Beagle: *step 1.* Load the Swift module on Beagle as follows: +module load swift+ From ketan at ci.uchicago.edu Tue Dec 20 00:33:51 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Tue, 20 Dec 2011 00:33:51 -0600 (CST) Subject: [Swift-commit] r5448 - branches/release-0.93/docs/siteguide Message-ID: <20111220063351.B80A99CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-20 00:33:49 -0600 (Tue, 20 Dec 2011) New Revision: 5448 Modified: branches/release-0.93/docs/siteguide/beagle Log: small additions Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-19 23:15:56 UTC (rev 5447) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-20 06:33:49 UTC (rev 5448) @@ -112,7 +112,7 @@ ----- You can further change the value of +-n+ to any arbitrary number to run that -many number of concurrent +cat+ +many number of concurrent +cat+ tasks. *step 7.* Swift will show a status message as "done" after the job has completed its run in the queue. Check the output in the generated +outdir+ directory (+ls outdir+) @@ -140,7 +140,7 @@ * *jobThrottle* : A factor that determines the number of tasks dispatched simultaneously. The intended number of simultaneous tasks must match the number of cores targeted. The number of tasks is calculated from the jobThrottle factor is as follows: ---- -Number of Tasks = (JobThrottle x 100) + 1 +Number of parallel Tasks = (JobThrottle x 100) + 1 ---- Following is an example sites.xml for a 50 slots run with each slot occupying 4 nodes (thus, a 200 node run): @@ -201,7 +201,7 @@ Swift version swift-0.93RC5 loaded ----- -* Failed to transfer wrapperlog for job cat-nmobtbkk and/or Job failed with an exit code of 254. Check the element on the sites.xml file. +* Failed to transfer *wrapperlog* for job cat-nmobtbkk and/or Job failed with an exit code of 254. This is a most likely symptom of compute node trying to write to a non-writable filesystem. Check the element on the sites.xml file. ----- /home/ketan/swift.workdir From davidk at ci.uchicago.edu Tue Dec 20 13:33:29 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 20 Dec 2011 13:33:29 -0600 (CST) Subject: [Swift-commit] r5449 - branches/release-0.93/bin Message-ID: <20111220193329.551749CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-20 13:33:29 -0600 (Tue, 20 Dec 2011) New Revision: 5449 Modified: branches/release-0.93/bin/start-coaster-service branches/release-0.93/bin/stop-coaster-service Log: Fixes for tunneling Modified: branches/release-0.93/bin/start-coaster-service =================================================================== --- branches/release-0.93/bin/start-coaster-service 2011-12-20 06:33:49 UTC (rev 5448) +++ branches/release-0.93/bin/start-coaster-service 2011-12-20 19:33:29 UTC (rev 5449) @@ -16,7 +16,6 @@ EXECUTION_URL=http://localhost:$PORT export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY - export FUTUREGRID_SIERRA_NODES=$FUTUREGRID_NODES # Check that SWIFTVMBOOT_DIR looks ok if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/futuregrid/bin/bootit.sh" ]; then @@ -65,15 +64,19 @@ for MACHINE in $WORKER_HOSTS do echo $MACHINE >> $HOME/.swift/machines + scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 if [ "$SSH_TUNNELING" == "yes" ]; then ssh -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & echo $! >> $PID_FILE + echo "Starting worker on $MACHINE" + ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER http://localhost:$PORT $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE + else + echo "Starting worker on $MACHINE" + ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE fi - scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 - echo "Starting worker on $MACHINE" - ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & - echo $! >> $PID_FILE done } @@ -136,18 +139,17 @@ { PORT=$1 EXECUTION_URL=http://localhost:$PORT - - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/ec2-run-instances" ]; then + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/ec2/bin/ec2-run-instances" ]; then crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" fi - export EC2_HOME="$SWIFTVMBOOT_DIR" + export EC2_HOME="$SWIFTVMBOOT_DIR/ec2" export EC2_PRIVATE_KEY="$EC2_KEYFILE" export EC2_CERT="$EC2_CERTFILE" echo Creating instance.. - $SWIFTVMBOOT_DIR/bin/ec2-run-instances "$EC2_AMI" -t "$EC2_INSTANCE_TYPE" -n "$EC2_NODES" -K "$EC2_KEYFILE" -C "$EC2_CERT" - SWIFTVM_INSTANCES=$( $SWIFTVMBOOT_DIR/bin/ec2-describe-instances | grep INSTANCE | grep -v terminated |awk '{print $2}' ) + $SWIFTVMBOOT_DIR/ec2/bin/ec2-run-instances "$EC2_AMI" -t "$EC2_INSTANCE_TYPE" -n "$EC2_NODES" -K "$EC2_KEYFILE" -C "$EC2_CERT" + SWIFTVM_INSTANCES=$( $SWIFTVMBOOT_DIR/ec2/bin/ec2-describe-instances | grep INSTANCE | grep -v terminated |awk '{print $2}' ) echo $SWIFTVM_INSTANCES >> $HOME/.swift/.swiftvm_instances echo Waiting for nodes to boot.. @@ -155,7 +157,7 @@ while /bin/true do SWIFTVM_INSTANCES_AS_STRING=$( echo $SWIFTVM_INSTANCES | tr "\\n" " ") - STATUS_LIST=$( $SWIFTVMBOOT_DIR/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $6}' |sort -u ) + STATUS_LIST=$( $SWIFTVMBOOT_DIR/ec2/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $6}' |sort -u ) if [ "$STATUS_LIST" == "running" ]; then break fi @@ -165,7 +167,7 @@ # There is some delay between when the machines are 'running', and when system utilities like sshd are started sleep 30 - WORKER_HOSTS=$( $SWIFTVMBOOT_DIR/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $4}' ) + WORKER_HOSTS=$( $SWIFTVMBOOT_DIR/ec2/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $4}' ) if [ -f "$HOME/.swift/machines" ]; then rm $HOME/.swift/machines @@ -179,18 +181,22 @@ # Create a list of machines for other applications, if needed echo $MACHINE >> $HOME/.swift/machines + # Copy and start worker script + scp $SSH_OPTS $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 + echo $! >> $PID_FILE + # Enable ssh tunneling if needed if [ "$SSH_TUNNELING" == "yes" ]; then ssh $SSH_OPTS -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 > /dev/null 2>&1 & + sleep 10 + ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER http://localhost:$PORT $MACHINE $LOG_DIR" 2>&1 & echo $! >> $PID_FILE + else + echo "Starting worker on $MACHINE" + ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" > /dev/null 2>&1 & + echo $! >> $PID_FILE fi - # Copy and start worker script - scp $SSH_OPTS $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 - echo "Starting worker on $MACHINE" - ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" > /dev/null 2>&1 & - echo $! >> $PID_FILE - # Copy SSH key for easier access cat $HOME/.ssh/*.pub | ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE 'umask 077; cat >> $HOME/.ssh/authorized_keys' > /dev/null 2>&1 done @@ -223,7 +229,7 @@ ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $MACHINE mkdir -p $WORKER_LOCATION > /dev/null 2>&1 ssh $WORKER_USERNAME@$WORKER_RELAY_HOST "scp /tmp/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION" > /dev/null 2>&1 echo Starting worker on $MACHINE - ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $WORKER_USERNAME@$MACHINE "WORKER_LOGGING_LEVEL=$WORKER_LOGGING_LEVEL $WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $WORKER_LOG_DIR" & + ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $WORKER_USERNAME@$MACHINE "WORKER_LOGGING_LEVEL=$WORKER_LOGGING_LEVEL $WORKER_LOCATION/$WORKER http://localhost:$PORT $MACHINE $WORKER_LOG_DIR" & echo $! >> $PID_FILE # Connect directly else Modified: branches/release-0.93/bin/stop-coaster-service =================================================================== --- branches/release-0.93/bin/stop-coaster-service 2011-12-20 06:33:49 UTC (rev 5448) +++ branches/release-0.93/bin/stop-coaster-service 2011-12-20 19:33:29 UTC (rev 5449) @@ -23,7 +23,7 @@ #echo "$pid" for i in `ps -ef| awk '$3 == '$pid' { print $2 }'` do - #echo "$i" + echo "Killing process $i" kill $i > /dev/null 2>&1 done kill $pid > /dev/null 2>&1 @@ -50,11 +50,11 @@ fi if [ "$WORKER_MODE" == "ec2" ] && [ -f "$SWIFTVM_INSTANCES" ]; then - export EC2_HOME="$SWIFTVMBOOT_DIR" + export EC2_HOME="$SWIFTVMBOOT_DIR/ec2" export EC2_PRIVATE_KEY="$EC2_KEYFILE" export EC2_CERT="$EC2_CERTFILE" INSTANCES_AS_STRING=$( cat $SWIFTVM_INSTANCES | tr "\\n" " ") - $SWIFTVMBOOT_DIR/bin/ec2-terminate-instances $INSTANCES_AS_STRING + $SWIFTVMBOOT_DIR/ec2/bin/ec2-terminate-instances $INSTANCES_AS_STRING if [ -f "$HOME/.swift/.swiftvm_instances" ]; then rm $HOME/.swift/.swiftvm_instances fi From hategan at ci.uchicago.edu Tue Dec 20 15:17:20 2011 From: hategan at ci.uchicago.edu (hategan at ci.uchicago.edu) Date: Tue, 20 Dec 2011 15:17:20 -0600 (CST) Subject: [Swift-commit] r5450 - branches/release-0.93/src/org/griphyn/vdl/karajan Message-ID: <20111220211720.BB0E19CC8F@svn.ci.uchicago.edu> Author: hategan Date: 2011-12-20 15:17:20 -0600 (Tue, 20 Dec 2011) New Revision: 5450 Modified: branches/release-0.93/src/org/griphyn/vdl/karajan/FutureTracker.java branches/release-0.93/src/org/griphyn/vdl/karajan/Monitor.java Log: avoid concurrent modification exceptions when dumping open variables Modified: branches/release-0.93/src/org/griphyn/vdl/karajan/FutureTracker.java =================================================================== --- branches/release-0.93/src/org/griphyn/vdl/karajan/FutureTracker.java 2011-12-20 19:33:29 UTC (rev 5449) +++ branches/release-0.93/src/org/griphyn/vdl/karajan/FutureTracker.java 2011-12-20 21:17:20 UTC (rev 5450) @@ -46,4 +46,8 @@ public Map getMap() { return futures; } + + public synchronized Map getMapSafe() { + return new HashMap(futures); + } } Modified: branches/release-0.93/src/org/griphyn/vdl/karajan/Monitor.java =================================================================== --- branches/release-0.93/src/org/griphyn/vdl/karajan/Monitor.java 2011-12-20 19:33:29 UTC (rev 5449) +++ branches/release-0.93/src/org/griphyn/vdl/karajan/Monitor.java 2011-12-20 21:17:20 UTC (rev 5450) @@ -200,7 +200,7 @@ public static void dumpVariables(PrintStream ps) { ps.println("\nRegistered futures:"); - Map map = FutureTracker.get().getMap(); + Map map = FutureTracker.get().getMapSafe(); synchronized (map) { for (Map.Entry en : map.entrySet()) { Future f = en.getValue(); From ketan at ci.uchicago.edu Tue Dec 20 15:50:18 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Tue, 20 Dec 2011 15:50:18 -0600 (CST) Subject: [Swift-commit] r5451 - branches/release-0.93/docs/siteguide Message-ID: <20111220215018.214FB9CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-20 15:50:18 -0600 (Tue, 20 Dec 2011) New Revision: 5451 Modified: branches/release-0.93/docs/siteguide/beagle Log: Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-20 21:17:20 UTC (rev 5450) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-20 21:50:18 UTC (rev 5451) @@ -225,10 +225,6 @@ WIFT_HEAP_MAX=5000M swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=10000 ----- -* If the error message does not give much clue, one can go about the following approaches to find more help: - - Search for the particular error message on the swift mailing list archive from here: http://www.ci.uchicago.edu/swift/wwwdev/support/index.php - - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user - * Application invocation fails. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. - Handling exitcodes in wrapperscript. The following code snippet from an application, handles the erroneous exitcode so that the erroneous runs could be logged and dealt with later: @@ -262,3 +258,11 @@ app_invocation $args ---- + +More Help +~~~~~~~~ + +If the error messages you get does not give much clue, you can go about one of the following approaches to find more help: + - Search for the particular error message on the swift mailing list archive from here: http://www.ci.uchicago.edu/swift/wwwdev/support/index.php. It is likely someone has encountered the issue before and there is a ready remedy posted by one of the Swift team members. + - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user. Please attach the Swift generated log file and the sites file with your question. + From davidk at ci.uchicago.edu Tue Dec 20 16:06:23 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Tue, 20 Dec 2011 16:06:23 -0600 (CST) Subject: [Swift-commit] r5452 - branches/release-0.93/etc/sites Message-ID: <20111220220623.7A4AC9CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-20 16:06:23 -0600 (Tue, 20 Dec 2011) New Revision: 5452 Modified: branches/release-0.93/etc/sites/mcs Log: Updated mcs template Modified: branches/release-0.93/etc/sites/mcs =================================================================== --- branches/release-0.93/etc/sites/mcs 2011-12-20 21:50:18 UTC (rev 5451) +++ branches/release-0.93/etc/sites/mcs 2011-12-20 22:06:23 UTC (rev 5452) @@ -4,8 +4,8 @@ url="_EXECUTION_URL_" jobmanager="local:local"/> passive - 8 - .79 + _JOBS_PER_NODE + _JOB_THROTTLE_ 10000 _WORK_ From ketan at ci.uchicago.edu Tue Dec 20 16:33:01 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Tue, 20 Dec 2011 16:33:01 -0600 (CST) Subject: [Swift-commit] r5453 - branches/release-0.93/docs Message-ID: <20111220223301.5899B9CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-20 16:33:01 -0600 (Tue, 20 Dec 2011) New Revision: 5453 Modified: branches/release-0.93/docs/build_docs.sh Log: implemented a simple caching scheme that skips the processing of files that are not changed Modified: branches/release-0.93/docs/build_docs.sh =================================================================== --- branches/release-0.93/docs/build_docs.sh 2011-12-20 22:06:23 UTC (rev 5452) +++ branches/release-0.93/docs/build_docs.sh 2011-12-20 22:33:01 UTC (rev 5453) @@ -42,10 +42,16 @@ FILES=`ls -1 *.txt 2>/dev/null` for file in $FILES do - echo Converting $directory"$file" to HTML - asciidoc -a toc -a max-width=750px -a stylesheet=$(pwd)/../stylesheets/asciidoc.css $file - echo Converting $directory"$file" to PDF - a2x --format=pdf --no-xmllint $file + diff $file .cache/$file >/dev/null 2>/dev/null + if [ $? -ne 0 ] + then + echo "updating cache" + cp $file .cache + echo Converting $directory"$file" to HTML + asciidoc -a toc -a max-width=750px -a stylesheet=$(pwd)/../stylesheets/asciidoc.css $file + echo Converting $directory"$file" to PDF + a2x --format=pdf --no-xmllint $file + fi done if [ ! -d "$INSTALLATION_DIRECTORY/$VERSION" ]; then From ketan at ci.uchicago.edu Tue Dec 20 16:34:40 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Tue, 20 Dec 2011 16:34:40 -0600 (CST) Subject: [Swift-commit] r5454 - in branches/release-0.93/docs: cookbook cookbook/.cache documentation documentation/.cache quickstart quickstart/.cache siteguide siteguide/.cache tutorial tutorial/.cache userguide userguide/.cache utils utils/.cache Message-ID: <20111220223440.70EF89CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-20 16:34:40 -0600 (Tue, 20 Dec 2011) New Revision: 5454 Added: branches/release-0.93/docs/cookbook/.cache/ branches/release-0.93/docs/cookbook/.cache/cookbook.txt branches/release-0.93/docs/documentation/.cache/ branches/release-0.93/docs/documentation/.cache/documentation.txt branches/release-0.93/docs/quickstart/.cache/ branches/release-0.93/docs/quickstart/.cache/quickstart.txt branches/release-0.93/docs/siteguide/.cache/ branches/release-0.93/docs/siteguide/.cache/siteguide.txt branches/release-0.93/docs/tutorial/.cache/ branches/release-0.93/docs/tutorial/.cache/tutorial.txt branches/release-0.93/docs/userguide/.cache/ branches/release-0.93/docs/userguide/.cache/userguide.txt branches/release-0.93/docs/utils/.cache/ branches/release-0.93/docs/utils/.cache/gensites.txt Log: commiting cache dirs Added: branches/release-0.93/docs/cookbook/.cache/cookbook.txt =================================================================== --- branches/release-0.93/docs/cookbook/.cache/cookbook.txt (rev 0) +++ branches/release-0.93/docs/cookbook/.cache/cookbook.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,16 @@ +Swift Cookbook +============== +Swift team +v0.92, March 2011 + +include::overview[] + +include::swift_basics[] + +include::coasters[] + +include::diverse_infrastructures[] + +include::debugging_swift[] + +include::log_processing[] Added: branches/release-0.93/docs/documentation/.cache/documentation.txt =================================================================== --- branches/release-0.93/docs/documentation/.cache/documentation.txt (rev 0) +++ branches/release-0.93/docs/documentation/.cache/documentation.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,11 @@ +Swift Document Generation +========================= + +include::overview[] + +include::structure[] + +include::building[] + +include::automation[] + Added: branches/release-0.93/docs/quickstart/.cache/quickstart.txt =================================================================== --- branches/release-0.93/docs/quickstart/.cache/quickstart.txt (rev 0) +++ branches/release-0.93/docs/quickstart/.cache/quickstart.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,101 @@ +Swift Quickstart +================ + +[abstract] +Abstract +-------- +This guide describes the steps needed to download, install, configure, +and run the basic examples for Swift. If you are using a pre-installed +version of Swift, you can skip directly to the configuration section. + +Stable Releases vs. Development Releases +---------------------------------------- +Stable releases of Swift have undergone more extensive testing than development releases. +In general, they are more stable, have fewer bugs, and have been tested on a variety of +systems. + +The development version of Swift is aimed at developers and testers. The development +code has the highest chance of containing buggy and untested code. If you need stability +please use the latest stable release. + +Downloading a Swift Distribution +-------------------------------- +There are two main ways of getting the Swift implementation: binary +releases and the source repository. + +Binary Releases +~~~~~~~~~~~~~~~ +For the majority of users, downloading and installing binary releases is recommended. +Since Swift is written in Java, the binary packages will run on all supported platforms with +Java Runtime Environment 1.5 or greater. Binary releases can be obtained from the +http://www.ci.uchicago.edu/swift/downloads/index.php[Swift downloads page]. + +Once downloaded, simply unpack the downloaded package (swift-.tar.gz) into a +directory of your choice: + +----- +tar -xzvf swift-.tar.gz +----- + +This will create a swift- directory containing the build. + +Source Repository +~~~~~~~~~~~~~~~~~ +The source code for Swift is available to developers who have an interest in contributing +new features. To build Swift from source code, you will need http://ant.apache.org/[Apache Ant] +and http://www.oracle.com/technetwork/java/javase/downloads/index.html[Java JDK]. Once +built, the dist/swift-svn directory will contain your build. + +To download and build Swift 0.93, follow these instructions: +----- +$ mkdir swift-0.93 +$ cd swift-0.93 +$ svn co https://cogkit.svn.sourceforge.net/svnroot/cogkit/branches/4.1.9/src/cog +$ cd cog/modules +$ svn co https://svn.ci.uchicago.edu/svn/vdl2/branches/release-0.93 swift +$ cd swift +$ ant redist +----- + +Setting your PATH +----------------- +Once Swift is installed, it is useful to add the swift binary to your PATH +environment variable. To do this, first determine where the Swift bin +directory is located. If you installed Swift from a binary release, it will +be in the swift-0.93/bin directory where you installed it. If you followed +the instructions above for installing Swift from a source repository, it +will be located in swift-0.93/cog/modules/swift/dist/swift-svn/bin. + +Add the following line to the bottom of ~/.bashrc: + +----- +export PATH=$PATH:/full/path/to/swift +----- + +When you login, test this out by typing the command +----- +$ which swift +----- + +This should point you to the path of the Swift binary. + +Running Swift Examples +---------------------- +The Swift examples can be found in the examples directory in the Swift +distribution. The examples are written in the SwiftScript language, and +have .swift as a file extension. + +Execution of a Swift workflow is done using the swift command, which +takes the Swift workflow file name as an argument: + +----- +cd examples/tutorial +swift hello.swift +----- + +When you run this application, it should create a file called hello.txt. +If this file gets created, you have successfully ran your first +Swift script! + +More documentation on how to run Swift can be found at +http://www.ci.uchicago.edu/swift/docs/index.php, Added: branches/release-0.93/docs/siteguide/.cache/siteguide.txt =================================================================== --- branches/release-0.93/docs/siteguide/.cache/siteguide.txt (rev 0) +++ branches/release-0.93/docs/siteguide/.cache/siteguide.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,21 @@ +Site Configuration Guide +======================== + +:toc: +:icons: +:website: http://www.ci.uchicago.edu/swift/guides/siteguide.php +:numbered: + +include::prereqs[] + +include::pads[] + +include::fusion[] + +include::beagle[] + +include::futuregrid[] + +include::mcs[] + +include::intrepid[] Added: branches/release-0.93/docs/tutorial/.cache/tutorial.txt =================================================================== --- branches/release-0.93/docs/tutorial/.cache/tutorial.txt (rev 0) +++ branches/release-0.93/docs/tutorial/.cache/tutorial.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,17 @@ +A Swift Tutorial +================ + +:toc: +:icons: +:website: http://www.ci.uchicago.edu/swift/guides/tutorial.php +:numbered: + +include::introduction[] + +include::hello_world[] + +include::language_features[] + +include::runtime_features[] + +include::bits[] Added: branches/release-0.93/docs/userguide/.cache/userguide.txt =================================================================== --- branches/release-0.93/docs/userguide/.cache/userguide.txt (rev 0) +++ branches/release-0.93/docs/userguide/.cache/userguide.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,41 @@ +Swift User Guide +================ + +:toc: +:icons: +:website: http://www.ci.uchicago.edu/swift/guides/userguide.php +:numbered: + +include::overview[] + +include::language[] + +include::mappers[] + +include::commands[] + +include::app_procedures[] + +include::configuration_properties[] + +include::profiles[] + +include::site_catalog[] + +include::transformation_catalog[] + +include::build_options[] + +include::kickstart[] + +include::reliability_mechanisms[] + +include::clustering[] + +include::coasters[] + +include::howto_tips[] + +include::cdm[] + +include::log-processing[] Added: branches/release-0.93/docs/utils/.cache/gensites.txt =================================================================== --- branches/release-0.93/docs/utils/.cache/gensites.txt (rev 0) +++ branches/release-0.93/docs/utils/.cache/gensites.txt 2011-12-20 22:34:40 UTC (rev 5454) @@ -0,0 +1,235 @@ +Gensites +========== +:toc: +:icons: +:website: http://www.ci.uchicago.edu/swift +:numbered: + +Overview +-------- +To simplify this configuration process, versions of Swift starting with +0.92 include a utility called gensites. The gensites command is used +to generate a sites.xml file for running a swift workflow on a given +site. It accomplishes this by using a series of templates. The templates +used by gensites are the same templates used for internal testing, so +they are likely up to date and known to work on a given site. + + +Viewing All Available Site Templates +------------------------------------ +To view a list of all available templates, run the following command: + +----- +$ gensites -T +----- + +You should see output similar to this: +----- +intrepid +local +local-pbs-coasters +pads +queenbee +sge-local +ssh +ssh-pbs-coasters +surveyor +----- + +You will notice that the templates can be specific to a particular set +of machines like Intrepid and Queenbee, or they may be more general and +aim to work across a variety of machines, as in the case of +local-pbs-coasters. Gensites will look in three directories for available +templates: your current directory, $SWIFT_HOME/etc/sites and $HOME/.swift/sites. + +Listing the Template +-------------------- +To view the contents of a template, type: + +----- +$ gensites -l templatename +----- + +Running this command will print some information about the template and give +you an idea of what settings you will need to specify. You should see +something like this: + +----- +Description: Template for Intrepid. More information about this system can be found at http://www.alcf.anl.gov/support/gettingstarted/index.php +Required Tokens: host work project queue +----- + +The required tokens are required to properly use the templates. These are placeholder +values you will need to specify in the +following steps. + +Providing Site Specific Values +------------------------------ + +The gensites script needs to know how to replace the placeholder values +in the template. This is done by configuring the swift.properties file. +Gensites will first look for a swift.properties file in the current +directory. If it does not exist, it will next look in $HOME/.swift. + +To add site specific values to swift.properties, add a line in the +follow format: + +----- +#site templatename setting=value +----- + +Continuing the previous example, here is what you could add to +swift.properties to replace the values of project, queue and work for +the surveyor template: + +----- +#site surveyor project=MyProject +#site surveyor queue=MyQueue +#site surveyor work=/path/to/workdir +----- + +Now, running the command 'gensites surveyor' will produce the following +valid configuration file: + +----- + + + + + MyProject + MyQueue + zeptoos + true + 21 + 10000 + 1 + DEBUG + 1 + 900 + 64 + 64 + /path/to/workdir + + +----- + +Generating Application Configurations with Gensites +--------------------------------------------------- +Gensites can also be used to create a valid application catalog, commonly +called tc.data. Here are some examples of how to specify applications within +your swift.properties file: + +----- +#app intrepid echo=/usr/bin/echo +----- + +This first example shows a site specific application. The #app definition +tells gensites this is related to an application rather than a #site +definition. In the second part, echo=/usr/bin/echo, the left hand side +is the name of the application that will be called from within swift. The +right hand site is the path name which points to the binary. + +----- +#app intrepid echo=$HOME/bin/echo +----- + +Environment variables will be interpreted and converted to full path names +for Swift. + +----- +#app intrepid echo=bin/echo +----- + +Gensites can take relative paths (relative to your current directory) and +translate them to full path names for Swift. + +WARNING: Running gensites with #app definitions will replace any file +called tc.data in your current directory. If a file called tc.data exists, +it will be renamed to tc.data.old. If you run gensites twice, the original +contents of your tc.data will be lost. Please either rename your tc file +or copy to a different location. + +Running Swift With the New Configuration +---------------------------------------- + +Now that the gensites is configured and producing a valid configuration +file, Swift needs to know to use it. The first step is to create a +unique config file based on the preferences you specified. + +----- +$ gensites surveyor > myconfig.xml +----- + +This will send the output of gensites to myconfig.xml. This example will +use a swift.properties location in the default directories (your current +directory, ~/.swift/swift.properties). To specify a different location +to the swift.properties, use: + +----- +$ gensites surveyor -p myswift.properties > myconfig.xml +----- + +Next, provide the configuration filename to swift: +----- +$ swift -sites.file myconfig.xml myscript.swift +----- + +Alternatively, if you have specified applications, be sure to load that into +Swift +----- +$ swift -sites.file myconfig.xml -tc.file tc.data mycript.swift +----- + +Providing Default Values for All Templates +------------------------------------------ +It is also possible to specify a default value for a setting, regardless +of template you use. If you want to set your queue to default to "fast" +across all templates, you can do this by omitting the template name. +Consider the following swift.properties: + +----- +#site queue=fast +#site surveyor project=MyProject +#site surveyor work=/path/to/workdir +----- +By omitting the template name, the default value for queue on surveyor +(and any other template you use) will be set to "fast". One thing to +keep in mind when setting default values is that order matters. Be sure +to set your default values first before setting template specific values. + +Just like the #site definitions, when a site name is not specified, an app +will be created for every site that is defined in your template. +----- +#app echo=/bin/echo +----- + +More Help +--------- +The gensites script provides additional options not discussed here, such +as using templates and swift.properties in non-standard directories. For +more information, run gensites -h. Here is a full list of all options +available. + +----- +$ gensites -help + + usage: gensites template [-p properties.file] [-L template_directory] [-h] [-T] [-l] + + template Name of template to use + -p properties.file Specify a swift.properties to use + -L template_directory Specify a non-standard template directory + -T List all templates available + -h Help / usage information + -l List the contents of a specific template + + Examples: + + Create a site configuration file for sites.xml using default properties.file in current directory + $ gensites pads > sites.xml + + Use a specific properties file for a site + $ gensites -p sites.properties pads > sites.xml + + Specify a non-standard directory where templates are located + $ gensites -L template.dir pads > sites.xml +----- From ketan at ci.uchicago.edu Tue Dec 20 17:00:46 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Tue, 20 Dec 2011 17:00:46 -0600 (CST) Subject: [Swift-commit] r5455 - in branches/release-0.93/docs: . siteguide Message-ID: <20111220230046.E600D9CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-20 17:00:46 -0600 (Tue, 20 Dec 2011) New Revision: 5455 Modified: branches/release-0.93/docs/build_docs.sh branches/release-0.93/docs/siteguide/beagle Log: revert temp to noncache version Modified: branches/release-0.93/docs/build_docs.sh =================================================================== --- branches/release-0.93/docs/build_docs.sh 2011-12-20 22:34:40 UTC (rev 5454) +++ branches/release-0.93/docs/build_docs.sh 2011-12-20 23:00:46 UTC (rev 5455) @@ -42,16 +42,16 @@ FILES=`ls -1 *.txt 2>/dev/null` for file in $FILES do - diff $file .cache/$file >/dev/null 2>/dev/null - if [ $? -ne 0 ] - then - echo "updating cache" - cp $file .cache + #diff $file .cache/$file >/dev/null 2>/dev/null + #if [ $? -ne 0 ] + #then + # echo "updating cache" + # cp $file .cache echo Converting $directory"$file" to HTML asciidoc -a toc -a max-width=750px -a stylesheet=$(pwd)/../stylesheets/asciidoc.css $file echo Converting $directory"$file" to PDF a2x --format=pdf --no-xmllint $file - fi + #fi done if [ ! -d "$INSTALLATION_DIRECTORY/$VERSION" ]; then Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-20 22:34:40 UTC (rev 5454) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-20 23:00:46 UTC (rev 5455) @@ -264,5 +264,5 @@ If the error messages you get does not give much clue, you can go about one of the following approaches to find more help: - Search for the particular error message on the swift mailing list archive from here: http://www.ci.uchicago.edu/swift/wwwdev/support/index.php. It is likely someone has encountered the issue before and there is a ready remedy posted by one of the Swift team members. - - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user. Please attach the Swift generated log file and the sites file with your question. + - Subscribe to the swift-user lists and post your questions here: https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user. Please attach the Swift-generated log file and the sites file with your question. From ketan at ci.uchicago.edu Wed Dec 21 09:49:36 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Wed, 21 Dec 2011 09:49:36 -0600 (CST) Subject: [Swift-commit] r5456 - branches/release-0.93/docs/siteguide Message-ID: <20111221154936.5A5B39D022@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-21 09:49:36 -0600 (Wed, 21 Dec 2011) New Revision: 5456 Modified: branches/release-0.93/docs/siteguide/beagle Log: typo Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-20 23:00:46 UTC (rev 5455) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-21 15:49:36 UTC (rev 5456) @@ -222,7 +222,7 @@ A simple solution to this problem is to increase the java heap space. This can be solved by increasing the heap space Swift gets by the following environment variable: ----- -WIFT_HEAP_MAX=5000M swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=10000 +SWIFT_HEAP_MAX=5000M swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=10000 ----- * Application invocation fails. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. From davidk at ci.uchicago.edu Wed Dec 21 10:52:08 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Wed, 21 Dec 2011 10:52:08 -0600 (CST) Subject: [Swift-commit] r5457 - in SwiftApps/modis: . bin Message-ID: <20111221165208.B1C199D022@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-21 10:52:08 -0600 (Wed, 21 Dec 2011) New Revision: 5457 Added: SwiftApps/modis/bin/ SwiftApps/modis/bin/analyzelanduse.sh SwiftApps/modis/bin/analyzelanduse.sh.orig SwiftApps/modis/bin/analyzelanduse2.sh SwiftApps/modis/bin/analyzelandusep1.sh SwiftApps/modis/bin/assemble.sh SwiftApps/modis/bin/assemble.sh.orig SwiftApps/modis/bin/assemble.sh.v2 SwiftApps/modis/bin/assemble2.sh SwiftApps/modis/bin/colormodis.sh SwiftApps/modis/bin/erasewater.sh SwiftApps/modis/bin/getlanduse.sh SwiftApps/modis/bin/gray.png SwiftApps/modis/bin/grid.gif SwiftApps/modis/bin/imagehist.sh SwiftApps/modis/bin/markmap.sh SwiftApps/modis/bin/setborder.sh SwiftApps/modis/bin/setglobushost.sh Log: Missing bin directory Added: SwiftApps/modis/bin/analyzelanduse.sh =================================================================== --- SwiftApps/modis/bin/analyzelanduse.sh (rev 0) +++ SwiftApps/modis/bin/analyzelanduse.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,45 @@ +# +# Return (simple) stats and filenames for the tiles with the $num highest values of $field +# + +stats=$1 +tilelist=$2 +field=$3 +num=$4 +shift 4 + +grep " $field" $* | +sed -e 's/:/ /' | +sort -n -k +2 | +tail -${num} >$stats + +( awk '{print $1}' | + sed -e 's/landuse.//' -e 's/\..*/.tif/' -e 's,^,/home/wilde/bigdata/data/modis/2002/,' \ +) <$stats >$tilelist + +exit + +login1$ cat topurban.txt +landuse/h20v04.landuse.byfreq 67312 13 0d +landuse/h28v06.landuse.byfreq 82267 13 0d +landuse/h08v05.landuse.byfreq 92674 13 0d +landuse/h11v04.landuse.byfreq 93702 13 0d +landuse/h13v11.landuse.byfreq 104302 13 0d +landuse/h12v04.landuse.byfreq 110772 13 0d +landuse/h19v04.landuse.byfreq 120908 13 0d +landuse/h27v05.landuse.byfreq 128794 13 0d +landuse/h18v03.landuse.byfreq 142756 13 0d +landuse/h18v04.landuse.byfreq 146486 13 0d + +login1$ cat urbantiles.txt +/home/wilde/bigdata/data/modis/2002landuse/h20v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h28v06.tif +/home/wilde/bigdata/data/modis/2002landuse/h08v05.tif +/home/wilde/bigdata/data/modis/2002landuse/h11v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h13v11.tif +/home/wilde/bigdata/data/modis/2002landuse/h12v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h19v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h27v05.tif +/home/wilde/bigdata/data/modis/2002landuse/h18v03.tif +/home/wilde/bigdata/data/modis/2002landuse/h18v04.tif +login1$ fg Property changes on: SwiftApps/modis/bin/analyzelanduse.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/analyzelanduse.sh.orig =================================================================== --- SwiftApps/modis/bin/analyzelanduse.sh.orig (rev 0) +++ SwiftApps/modis/bin/analyzelanduse.sh.orig 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,17 @@ +# +# Return (simple) stats and filenames for the tiles with the $num highest values of $field +# + +stats=$1 +tilelist=$2 +field=$3 +num=$4 +shift 4 + +grep " $field" $* | +sed -e 's/:/ /' | +sort -n -k +2 | +tail -${num} >$stats + +awk '{print $1}' | +sed -e 's/\..*/.tif/' -e 's,^,/home/wilde/bigdata/data/modis/,' <$stats >$tilelist Property changes on: SwiftApps/modis/bin/analyzelanduse.sh.orig ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/analyzelanduse2.sh =================================================================== --- SwiftApps/modis/bin/analyzelanduse2.sh (rev 0) +++ SwiftApps/modis/bin/analyzelanduse2.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,173 @@ +# +# Return (simple) stats and filenames for the tiles with the $num highest values of $wanteduses +# + +stats=$1 +tilelist=$2 +wanteduses=$3 +num=$4 +shift 4 + +awk -v wanteduses="$wanteduses" ' + BEGIN { + sum = 0; + filename = ""; + + use["water"]=0 + use["evergreen needleleaf forest"]=1 + use["evergreen broadleaf forest"]=2 + use["deciduous needleleaf forest"]=3 + use["deciduous broadleaf forest"]=4 + use["mixed forests"]=5 + use["closed shrubland"]=6 + use["open shrublands"]=7 + use["woody savannas"]=8 + use["savannas"]=9 + use["grasslands"]=10 + use["permanent wetlands"]=11 + use["croplands"]=12 + use["urban and built-up"]=13 + use["cropland/natural vegetation mosaic"]=14 + use["snow and ice"]=15 + use["barren or sparsely vegetated"]=16 + use["unclassified"]=254 + + split(wanteduses,wants,"[ ,]+") + for (w in wants) { + for (u in use) { + if (index(u, wants[w])) { + wantuse[use[u]] = 1 + } + } + } + } + { + if (FNR==1) { + if(filename != "") { print filename, sum} + filename = FILENAME + sum = 0 + } + } + + wantuse[$2] { + sum += $1 + } + END { print filename, sum} ' $* | +sort -n -k +2 | +tail -${num} >$stats + +( awk '{print $1}' | + sed -e 's,^.*/,/,' -e 's/\..*/.tif/' -e 's,^,/home/wilde/bigdata/data/modis/2002/,' \ +# FIXME: dont hardcode dir path above +# sed -e 's/landuse.//' -e 's/\..*/.tif/' -e 's,^,/home/wilde/bigdata/data/modis/2002/,' \ +) <$stats >$tilelist + +exit + +login1$ cat topselected.txt +modis-2011.0102.1636-urban-50-9/h09v07.landuse.byfreq 5312 +modis-2011.0102.1636-urban-50-9/h08v07.landuse.byfreq 12555 +modis-2011.0102.1636-urban-50-9/h08v06.landuse.byfreq 14824 +modis-2011.0102.1636-urban-50-9/h10v04.landuse.byfreq 14852 +modis-2011.0102.1636-urban-50-9/h09v06.landuse.byfreq 21432 +modis-2011.0102.1636-urban-50-9/h09v04.landuse.byfreq 32954 +modis-2011.0102.1636-urban-50-9/h09v05.landuse.byfreq 38591 +modis-2011.0102.1636-urban-50-9/h10v05.landuse.byfreq 66613 +modis-2011.0102.1636-urban-50-9/h08v05.landuse.byfreq 92674 + +login1$ cat selectedtiles.txt +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +/home/wilde/bigdata/data/modis/2002/modis-2011.tif +login1$ + +--- + +login1$ cat topurban.txt +landuse/h20v04.landuse.byfreq 67312 13 0d +landuse/h28v06.landuse.byfreq 82267 13 0d +landuse/h08v05.landuse.byfreq 92674 13 0d +landuse/h11v04.landuse.byfreq 93702 13 0d +landuse/h13v11.landuse.byfreq 104302 13 0d +landuse/h12v04.landuse.byfreq 110772 13 0d +landuse/h19v04.landuse.byfreq 120908 13 0d +landuse/h27v05.landuse.byfreq 128794 13 0d +landuse/h18v03.landuse.byfreq 142756 13 0d +landuse/h18v04.landuse.byfreq 146486 13 0d + +login1$ cat urbantiles.txt +/home/wilde/bigdata/data/modis/2002landuse/h20v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h28v06.tif +/home/wilde/bigdata/data/modis/2002landuse/h08v05.tif +/home/wilde/bigdata/data/modis/2002landuse/h11v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h13v11.tif +/home/wilde/bigdata/data/modis/2002landuse/h12v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h19v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h27v05.tif +/home/wilde/bigdata/data/modis/2002landuse/h18v03.tif +/home/wilde/bigdata/data/modis/2002landuse/h18v04.tif +login1$ + + 0 water + 1 evergreen needleleaf forest + 2 evergreen broadleaf forest + 3 deciduous needleleaf forest + 4 deciduous broadleaf forest + 5 mixed forests + 6 closed shrubland + 7 open shrublands + 8 woody savannas + 9 savannas + 10 grasslands + 11 permanent wetlands + 12 croplands + 13 urban and built-up + 14 cropland/natural vegetation mosaic + 15 snow and ice + 16 barren or sparsely vegetated + 254 unclassified + + use["water"]=0 + use["evergreen needleleaf forest"]=1 + use["evergreen broadleaf forest"]=2 + use["deciduous needleleaf forest"]=3 + use["deciduous broadleaf forest"]=4 + use["mixed forests"]=5 + use["closed shrubland"]=6 + use["open shrublands"]=7 + use["woody savannas"]=8 + use["savannas"]=9 + use["grasslands"]=10 + use["permanent wetlands"]=11 + use["croplands"]=12 + use["urban and built-up"]=13 + use["cropland/natural vegetation mosaic"]=14 + use["snow and ice"]=15 + use["barren or sparsely vegetated"]=16 + use["unclassified"]=254 + + +use["water"]=0 +use["evergreenneedle"]=1 +use["evergreenleaf"]=2 +use["deciduousneedle"]=3 +use["deciduousleaf"]=4 +use["mixedforest"]=5 +use["closedshrub"]=6 +use["openshrub"]=7 +use["woody"]=8 +use["savanna"]=9 +use["grassland"]=10 +use["wetland"]=11 +use["cropland"]=12 +use["urban"]=13 +use["vegetation"]=14 +use["ice"]=15 +use["barren"]=16 +use["unclassified"]=17 Property changes on: SwiftApps/modis/bin/analyzelanduse2.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/analyzelandusep1.sh =================================================================== --- SwiftApps/modis/bin/analyzelandusep1.sh (rev 0) +++ SwiftApps/modis/bin/analyzelandusep1.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,146 @@ +# +# Return (simple) stats and filenames for the tiles with the $num highest values of $wanteduses +# + +stats=$1 +tilelist=$2 +wanteduses=$3 +num=$4 +shift 4 + +awk -v wanteduses="$wanteduses" ' + BEGIN { + sum = 0; + filename = ""; + + use["water"]=0 + use["evergreen needleleaf forest"]=1 + use["evergreen broadleaf forest"]=2 + use["deciduous needleleaf forest"]=3 + use["deciduous broadleaf forest"]=4 + use["mixed forests"]=5 + use["closed shrubland"]=6 + use["open shrublands"]=7 + use["woody savannas"]=8 + use["savannas"]=9 + use["grasslands"]=10 + use["permanent wetlands"]=11 + use["croplands"]=12 + use["urban and built-up"]=13 + use["cropland/natural vegetation mosaic"]=14 + use["snow and ice"]=15 + use["barren or sparsely vegetated"]=16 + use["unclassified"]=254 + + split(wanteduses,wants,"[ ,]+") + for (w in wants) { + for (u in use) { + if (index(u, wants[w])) { + wantuse[use[u]] = 1 + } + } + } + } + { + if (FNR==1) { + if(filename != "") { print filename, sum} + filename = FILENAME + sum = 0 + } + } + + wantuse[$2] { + sum += $1 + } + END { print filename, sum} ' $* | +sort -n -k +2 | +tail -${num} >$stats + +( awk '{print $1}' | + sed -e 's/landuse.//' -e 's/\..*/.tif/' -e 's,^,/home/wilde/bigdata/data/modis/2002/,' \ +) <$stats >$tilelist + +exit + +login1$ cat topurban.txt +landuse/h20v04.landuse.byfreq 67312 13 0d +landuse/h28v06.landuse.byfreq 82267 13 0d +landuse/h08v05.landuse.byfreq 92674 13 0d +landuse/h11v04.landuse.byfreq 93702 13 0d +landuse/h13v11.landuse.byfreq 104302 13 0d +landuse/h12v04.landuse.byfreq 110772 13 0d +landuse/h19v04.landuse.byfreq 120908 13 0d +landuse/h27v05.landuse.byfreq 128794 13 0d +landuse/h18v03.landuse.byfreq 142756 13 0d +landuse/h18v04.landuse.byfreq 146486 13 0d + +login1$ cat urbantiles.txt +/home/wilde/bigdata/data/modis/2002landuse/h20v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h28v06.tif +/home/wilde/bigdata/data/modis/2002landuse/h08v05.tif +/home/wilde/bigdata/data/modis/2002landuse/h11v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h13v11.tif +/home/wilde/bigdata/data/modis/2002landuse/h12v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h19v04.tif +/home/wilde/bigdata/data/modis/2002landuse/h27v05.tif +/home/wilde/bigdata/data/modis/2002landuse/h18v03.tif +/home/wilde/bigdata/data/modis/2002landuse/h18v04.tif +login1$ + + 0 water + 1 evergreen needleleaf forest + 2 evergreen broadleaf forest + 3 deciduous needleleaf forest + 4 deciduous broadleaf forest + 5 mixed forests + 6 closed shrubland + 7 open shrublands + 8 woody savannas + 9 savannas + 10 grasslands + 11 permanent wetlands + 12 croplands + 13 urban and built-up + 14 cropland/natural vegetation mosaic + 15 snow and ice + 16 barren or sparsely vegetated + 254 unclassified + + use["water"]=0 + use["evergreen needleleaf forest"]=1 + use["evergreen broadleaf forest"]=2 + use["deciduous needleleaf forest"]=3 + use["deciduous broadleaf forest"]=4 + use["mixed forests"]=5 + use["closed shrubland"]=6 + use["open shrublands"]=7 + use["woody savannas"]=8 + use["savannas"]=9 + use["grasslands"]=10 + use["permanent wetlands"]=11 + use["croplands"]=12 + use["urban and built-up"]=13 + use["cropland/natural vegetation mosaic"]=14 + use["snow and ice"]=15 + use["barren or sparsely vegetated"]=16 + use["unclassified"]=254 + + +use["water"]=0 +use["evergreenneedle"]=1 +use["evergreenleaf"]=2 +use["deciduousneedle"]=3 +use["deciduousleaf"]=4 +use["mixedforest"]=5 +use["closedshrub"]=6 +use["openshrub"]=7 +use["woody"]=8 +use["savanna"]=9 +use["grassland"]=10 +use["wetland"]=11 +use["cropland"]=12 +use["urban"]=13 +use["vegetation"]=14 +use["ice"]=15 +use["barren"]=16 +use["unclassified"]=17 Property changes on: SwiftApps/modis/bin/analyzelandusep1.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/assemble.sh =================================================================== --- SwiftApps/modis/bin/assemble.sh (rev 0) +++ SwiftApps/modis/bin/assemble.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,13 @@ +output=$1 +shift +inputs=$(ls -1 $*) +labels="" +for f in $inputs; do + labels="$labels -label $(echo $f | sed -e 's/^.*\(h..v..\).*/\1/') $f" +done + +echo doing: +echo montage $labels -font Courier-Regular $inputs $output + +montage $labels -font Courier-Regular $output + Property changes on: SwiftApps/modis/bin/assemble.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/assemble.sh.orig =================================================================== --- SwiftApps/modis/bin/assemble.sh.orig (rev 0) +++ SwiftApps/modis/bin/assemble.sh.orig 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,4 @@ +output=$1 +shift +inputs=$(ls -1 $*) +montage -label '%f' -font Courier-Regular $inputs $output \ No newline at end of file Property changes on: SwiftApps/modis/bin/assemble.sh.orig ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/assemble.sh.v2 =================================================================== --- SwiftApps/modis/bin/assemble.sh.v2 (rev 0) +++ SwiftApps/modis/bin/assemble.sh.v2 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,10 @@ +output=$1 +shift +inputs=$(ls -1 $*) +labels="" +for f in $inputs; do + labels="$labels -label $(echo $f | sed -e 's/^.*\(h..v..\).*/\1/') $f" +done + +montage $label -font Courier-Regular $inputs $output + Property changes on: SwiftApps/modis/bin/assemble.sh.v2 ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/assemble2.sh =================================================================== --- SwiftApps/modis/bin/assemble2.sh (rev 0) +++ SwiftApps/modis/bin/assemble2.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,54 @@ +#! /bin/bash + +output=$(cd $(dirname $1); echo $(pwd)/$(basename $1)) # get full pathname of output file +selected=$(cd $(dirname $2); echo $(pwd)/$(basename $2)) # get full pathname of input file "selected" +indir=$(cd $(dirname $3); pwd) # get full pathname of input dir "geos" +webdir=$4 + +tmp=$(mktemp -d /tmp/modis.assemble.XXXX) +bindir=$(cd $(dirname $0); pwd) +graytile=$bindir/gray.png + +# input files are expected to start with hNNvNN. +# we reverse this to form the final image + +cd $indir +for h in `seq -w 00 35`; do + for v in `seq -w 00 17`; do + hv=h${h}v${v} + vh=v${v}h${h} + if [ ! -f $hv*png ]; then + cp $graytile $tmp/$vh.png + elif grep $hv $selected >&/dev/null; then +echo "adding border to $hv" + # add red border + convert $hv*png -resize 290x290 $tmp/t.png + convert $tmp/t.png -bordercolor red -border 5x5 $tmp/$vh.png + else + cp $hv*png $tmp/$vh.png + fi + done +done + +montage -tile 36x18 -geometry +0+0 $tmp/v*png $tmp/bigmap.png +convert $tmp/bigmap.png -resize 20% $tmp/map.png +cp $tmp/map.png $output +cp $tmp/bigmap.png $output + +if [ -d "$webdir" ]; then + cp $tmp/map.png $webdir +fi + + +########### + +exit 0 + +inputs=$(ls -1 $*) +labels="" +for f in $inputs; do + labels="$labels -label $(echo $f | sed -e 's/^.*\(h..v..\).*/\1/') $f" +done + +montage $labels -font Courier-Regular $output + Property changes on: SwiftApps/modis/bin/assemble2.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/colormodis.sh =================================================================== --- SwiftApps/modis/bin/colormodis.sh (rev 0) +++ SwiftApps/modis/bin/colormodis.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,53 @@ +# +# Return a new modis files with the 0-16 pixel values changed to +# colors that reflect the land use of that region. (See legend) +# +# usage: colormodis.sh modis.tif recolored.tif +# + +infile=$1 +outfile=$2 +tmp=`mktemp /tmp/modis.$USER.XXXXXX` +mv $tmp $tmp.tif +tmp=$tmp.tif +map=`mktemp /tmp/colormap.$USER.XXXXXX` + +# Create color set + +( + cat | + sed -e 's/ c.=/ /g' -e 's/[^0-9 ]//g' | + awk '{printf("#%02x%02x%02x #%02x%02x%02x\n",NR-1,NR-1,NR-1,$1,$2,$3)}') >$map < + + + + + + + + + + + + + + + + +EOF + +cp $infile $tmp + +# output logged to stdout/error is ignored by swift for this app() + +while read mval color ; do + echo color $mval is $color + echo convert $tmp "-fill" "$color" "-opaque" "$mval" $tmp + convert $tmp "-fill" "$color" "-opaque" "$mval" $tmp +done <$map + +#cp $tmp $outfile +convert -thumbnail 300x300 $tmp $outfile + +rm $tmp $map Property changes on: SwiftApps/modis/bin/colormodis.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/erasewater.sh =================================================================== --- SwiftApps/modis/bin/erasewater.sh (rev 0) +++ SwiftApps/modis/bin/erasewater.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,78 @@ +# +# Return a new modis files with the 0-16 pixel values changed to +# colors that reflect the land use of that region. (See legend) +# +# usage: colormodis.sh modis.tif recolored.tif +# + +infile=$1 +outfile=$2 +tmp=`mktemp /tmp/modis.$USER.XXXXXX` +mv $tmp $tmp.tif +tmp=$tmp.tif +tmp=$2 +map=`mktemp /tmp/colormap.$USER.XXXXXX` + +# Create color set + +( + cat | + sed -e 's/ c.=/ /g' -e 's/[^0-9 ]//g' | + awk '{printf("#%02x%02x%02x #%02x%02x%02x\n",$1,$2,$3,255,255,255)}') >$map < +EOF + +cp $infile $tmp + +# output logged to stdout/error is ignored by swift for this app() + +while read mval color ; do + echo color $mval is $color + echo convert $tmp "-fill" "$color" "-opaque" "$mval" $tmp + convert $tmp "-fill" "$color" "-opaque" "$mval" $tmp +done <$map + +exit + +#cp $tmp $outfile +convert -thumbnail 300x300 $tmp $outfile + +# rm $tmp $map # Keep these for debugging, for now. + +cat >/dev/null < +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +EOF \ No newline at end of file Property changes on: SwiftApps/modis/bin/erasewater.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/getlanduse.sh =================================================================== --- SwiftApps/modis/bin/getlanduse.sh (rev 0) +++ SwiftApps/modis/bin/getlanduse.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,14 @@ +# +# Read a MODIS .tif file and return a histogram of pixel values. +# The pixel values signify land use for that region (see legend in notes) +# +# Usage: getlanduse.sh modisFile histogramFile +# + +#sleep 1 +convert $1 -format %c histogram:info:- 2>/dev/null | + grep '[0-9]' | + sort -nr | + sed -e 's/[^0-9 ]//g' | + awk '{print $1, $3, sprintf("%02x",$3)}' | + sort -n -k $2 Property changes on: SwiftApps/modis/bin/getlanduse.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/gray.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/bin/gray.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/bin/grid.gif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/bin/grid.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/bin/imagehist.sh =================================================================== --- SwiftApps/modis/bin/imagehist.sh (rev 0) +++ SwiftApps/modis/bin/imagehist.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1 @@ +convert $1 -format %c histogram:info:- 2>/dev/null | grep : | sort -nr Property changes on: SwiftApps/modis/bin/imagehist.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/markmap.sh =================================================================== --- SwiftApps/modis/bin/markmap.sh (rev 0) +++ SwiftApps/modis/bin/markmap.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,25 @@ +# markmap selectedTileFile outputMap + +bin=$(cd $(dirname $0); pwd) + +tilefile=$1 +outmap=$2 + +cp $bin/grid.gif $outmap +cat $tilefile | while read f ; do + hv=$(echo $f | sed -e 's,^.*/,,' -e 's/\..*//') + h=$(echo $hv | sed -e 's/h//' -e 's/v..//' -e 's/^0//') + v=$(echo $hv | sed -e 's/h..//' -e 's/v//' -e 's/^0//') + echo hv=$hv h=$h v=$v + convert $outmap -stroke red -linewidth 2 -fill transparent \ + -draw "rectangle $((34+$h*16)),$((51+$v*16)) $((34+14+$h*16)),$((51+14+$v*16))" $outmap +done + +exit + +# example: + +h=18 +v=8 +cp grid.gif g.gif +convert g.gif -stroke red -linewidth 2 -fill transparent -draw "rectangle $((34+$h*16)),$((51+$v*16)) $((34+14+$h*16)),$((51+14+$v*16))" g.gif Property changes on: SwiftApps/modis/bin/markmap.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/setborder.sh =================================================================== --- SwiftApps/modis/bin/setborder.sh (rev 0) +++ SwiftApps/modis/bin/setborder.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1 @@ +convert $1 -bordercolor red -border 20 $2 Property changes on: SwiftApps/modis/bin/setborder.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/bin/setglobushost.sh =================================================================== --- SwiftApps/modis/bin/setglobushost.sh (rev 0) +++ SwiftApps/modis/bin/setglobushost.sh 2011-12-21 16:52:08 UTC (rev 5457) @@ -0,0 +1,2 @@ +ipaddr=`/sbin/ifconfig | grep inet | head -1 | cut -d ':' -f 2 |awk '{print $1}'` +export GLOBUS_HOSTNAME=$ipaddr Property changes on: SwiftApps/modis/bin/setglobushost.sh ___________________________________________________________________ Added: svn:executable + * From ketan at ci.uchicago.edu Wed Dec 21 17:05:40 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Wed, 21 Dec 2011 17:05:40 -0600 (CST) Subject: [Swift-commit] r5458 - in branches/release-0.93/docs: . siteguide Message-ID: <20111221230540.EC9B69D022@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-21 17:05:40 -0600 (Wed, 21 Dec 2011) New Revision: 5458 Modified: branches/release-0.93/docs/build_docs.sh branches/release-0.93/docs/siteguide/beagle Log: build doc caching Modified: branches/release-0.93/docs/build_docs.sh =================================================================== --- branches/release-0.93/docs/build_docs.sh 2011-12-21 16:52:08 UTC (rev 5457) +++ branches/release-0.93/docs/build_docs.sh 2011-12-21 23:05:40 UTC (rev 5458) @@ -40,17 +40,36 @@ do pushd $directory > /dev/null 2>&1 FILES=`ls -1 *.txt 2>/dev/null` + CONTENTFILES=`/bin/ls -l | grep ^- | awk '{print $9}' | grep -v "\."` + for file in $FILES do + doflag=0 + for contentfile in $CONTENTFILES + do + diff $contentfile .cache/$contentfile >/dev/null 2>/dev/null + if [ $? -ne 0 ] + then + doflag=1 + fi + done #diff $file .cache/$file >/dev/null 2>/dev/null #if [ $? -ne 0 ] #then # echo "updating cache" # cp $file .cache - echo Converting $directory"$file" to HTML - asciidoc -a toc -a max-width=750px -a stylesheet=$(pwd)/../stylesheets/asciidoc.css $file - echo Converting $directory"$file" to PDF - a2x --format=pdf --no-xmllint $file + if [ $doflag -eq 1 ] + then + echo "updating cache" + for newcontent in $CONTENTFILES + do + cp $newcontent .cache/ + done + echo Converting $directory"$file" to HTML + asciidoc -a toc -a max-width=750px -a stylesheet=$(pwd)/../stylesheets/asciidoc.css $file + echo Converting $directory"$file" to PDF + a2x --format=pdf --no-xmllint $file + fi #fi done Modified: branches/release-0.93/docs/siteguide/beagle =================================================================== --- branches/release-0.93/docs/siteguide/beagle 2011-12-21 16:52:08 UTC (rev 5457) +++ branches/release-0.93/docs/siteguide/beagle 2011-12-21 23:05:40 UTC (rev 5458) @@ -225,7 +225,7 @@ SWIFT_HEAP_MAX=5000M swift -config cf -tc.file tc -sites.file sites.xml catsn.swift -n=10000 ----- -* Application invocation fails. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. +* Application invocation fails or application returns a non-zero exit status. An application invocation might fail for a variety of reasons. Some of the common reasons include a faulty command line, out-of-memory, non-availability of data, library dependencies unmet, among others. In another set of failures, the application invocation might fail for a partial number of datasets. In these conditions, one might want to to continue for the rest of application invocations. In most cases, these conditions could be handled by catching various exitcodes and logging the erroneous invocations for later inspection. In the rest of this section, we provide some such examples. - Handling exitcodes in wrapperscript. The following code snippet from an application, handles the erroneous exitcode so that the erroneous runs could be logged and dealt with later: ---- From ketan at ci.uchicago.edu Thu Dec 22 11:38:22 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Thu, 22 Dec 2011 11:38:22 -0600 (CST) Subject: [Swift-commit] r5459 - branches/release-0.93/docs/userguide Message-ID: <20111222173822.C62529CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-22 11:38:22 -0600 (Thu, 22 Dec 2011) New Revision: 5459 Added: branches/release-0.93/docs/userguide/troubleshooting Log: added troubleshooting section to userguide Added: branches/release-0.93/docs/userguide/troubleshooting =================================================================== --- branches/release-0.93/docs/userguide/troubleshooting (rev 0) +++ branches/release-0.93/docs/userguide/troubleshooting 2011-12-22 17:38:22 UTC (rev 5459) @@ -0,0 +1,28 @@ +Troubleshooting +--------------- + +In this section we will discuss some of the common issues and remedies while using Swift. The origin of these issues can be Swift or the configuration of the target site, state and us +er configuration among other factors. We try to identify known issues and address them here: + +* Command not found: Swift is installed but not in path. If you see the following error message: + +----- +If 'swift' is not a typo you can run the following command to lookup the +package that contains the binary: + command-not-found swift +-bash: swift: command not found +----- + +The most likely cause is the Swift is not part of the environment. Do the following to load the Swift module: + +----- +$ export PATH=/bin:$PATH +----- + +Note: If you are running Swift on a system where it is installed as a module, do module load swift. For instance: + +---- +$ module load swift +Swift version swift-0.93RC5 loaded +---- + From davidk at ci.uchicago.edu Fri Dec 23 11:11:14 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 11:11:14 -0600 (CST) Subject: [Swift-commit] r5460 - in branches/release-0.93/tests: . providers Message-ID: <20111223171114.1F9B59CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 11:11:14 -0600 (Fri, 23 Dec 2011) New Revision: 5460 Added: branches/release-0.93/tests/providers/ibicluster/ branches/release-0.93/tests/sites.old/ Removed: branches/release-0.93/tests/sites/ Log: Rename existing (unused, afaik) sites directory to sites.old From davidk at ci.uchicago.edu Fri Dec 23 11:13:47 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 11:13:47 -0600 (CST) Subject: [Swift-commit] r5461 - branches/release-0.93/tests Message-ID: <20111223171347.E2AD09CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 11:13:47 -0600 (Fri, 23 Dec 2011) New Revision: 5461 Added: branches/release-0.93/tests/sites/ Removed: branches/release-0.93/tests/providers/ Log: Rename providers to sites From davidk at ci.uchicago.edu Fri Dec 23 11:51:41 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 11:51:41 -0600 (CST) Subject: [Swift-commit] r5462 - branches/release-0.93/tests/sites/ibicluster Message-ID: <20111223175141.88C2E9CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 11:51:41 -0600 (Fri, 23 Dec 2011) New Revision: 5462 Added: branches/release-0.93/tests/sites/ibicluster/catsn.0001.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0002.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0003.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0004.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0005.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0006.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0007.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0008.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0009.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.0010.out.expected branches/release-0.93/tests/sites/ibicluster/catsn.check.sh branches/release-0.93/tests/sites/ibicluster/catsn.setup.sh branches/release-0.93/tests/sites/ibicluster/catsn.swift branches/release-0.93/tests/sites/ibicluster/catsn.timeout branches/release-0.93/tests/sites/ibicluster/data.txt branches/release-0.93/tests/sites/ibicluster/sites.template.xml branches/release-0.93/tests/sites/ibicluster/tc.template.data branches/release-0.93/tests/sites/ibicluster/title.txt Log: Site test for ibicluster Added: branches/release-0.93/tests/sites/ibicluster/catsn.0001.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0001.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0001.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0002.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0002.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0002.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0003.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0003.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0003.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0004.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0004.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0004.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0005.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0005.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0005.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0006.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0006.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0006.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0007.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0007.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0007.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0008.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0008.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0008.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0009.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0009.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0009.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.0010.out.expected =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.0010.out.expected (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.0010.out.expected 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/catsn.check.sh =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.check.sh (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.check.sh 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1,12 @@ +#!/bin/bash + +set -x + +for count in `seq --format "%04.f" 1 1 10` +do + [ -f catsn.$count.out ] || exit 1 + CONTENTS1=$( cat catsn.$count.out.expected ) + CONTENTS2=$( cat catsn.$count.out ) + [[ $CONTENTS1 == $CONTENTS2 ]] || exit 1 +done +exit 0 Property changes on: branches/release-0.93/tests/sites/ibicluster/catsn.check.sh ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/tests/sites/ibicluster/catsn.setup.sh =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.setup.sh (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.setup.sh 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1,7 @@ +#!/bin/bash + +cp -v $GROUP/data.txt . || exit 1 +cp -v $GROUP/*expected . || exit 1 + +export QUEUE=normal + Property changes on: branches/release-0.93/tests/sites/ibicluster/catsn.setup.sh ___________________________________________________________________ Added: svn:executable + * Added: branches/release-0.93/tests/sites/ibicluster/catsn.swift =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.swift (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.swift 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1,12 @@ +type file; + +app (file o) cat (file i) +{ + cat @i stdout=@o; +} + +file out[]; +foreach j in [1:@toint(@arg("n","10"))] { + file data<"data.txt">; + out[j] = cat(data); +} Added: branches/release-0.93/tests/sites/ibicluster/catsn.timeout =================================================================== --- branches/release-0.93/tests/sites/ibicluster/catsn.timeout (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/catsn.timeout 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +1800 Added: branches/release-0.93/tests/sites/ibicluster/data.txt =================================================================== --- branches/release-0.93/tests/sites/ibicluster/data.txt (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/data.txt 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +blah blah Added: branches/release-0.93/tests/sites/ibicluster/sites.template.xml =================================================================== --- branches/release-0.93/tests/sites/ibicluster/sites.template.xml (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/sites.template.xml 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1,14 @@ + + + + threaded + all.q + 8 + 1 + 2 + 0.159 + 10000 + + _WORK_ + + Added: branches/release-0.93/tests/sites/ibicluster/tc.template.data =================================================================== --- branches/release-0.93/tests/sites/ibicluster/tc.template.data (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/tc.template.data 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1,8 @@ +ibicluster echo /bin/echo INSTALLED INTEL32::LINUX +ibicluster cat /bin/cat INSTALLED INTEL32::LINUX +ibicluster ls /bin/ls INSTALLED INTEL32::LINUX +ibicluster grep /bin/grep INSTALLED INTEL32::LINUX +ibicluster sort /bin/sort INSTALLED INTEL32::LINUX +ibicluster paste /bin/paste INSTALLED INTEL32::LINUX +ibicluster wc /usr/bin/wc INSTALLED INTEL32::LINUX + Added: branches/release-0.93/tests/sites/ibicluster/title.txt =================================================================== --- branches/release-0.93/tests/sites/ibicluster/title.txt (rev 0) +++ branches/release-0.93/tests/sites/ibicluster/title.txt 2011-12-23 17:51:41 UTC (rev 5462) @@ -0,0 +1 @@ +IBICluster SGE Test From davidk at ci.uchicago.edu Fri Dec 23 21:32:13 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 21:32:13 -0600 (CST) Subject: [Swift-commit] r5463 - branches/release-0.93/docs/siteguide Message-ID: <20111224033213.852DA9CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 21:32:13 -0600 (Fri, 23 Dec 2011) New Revision: 5463 Modified: branches/release-0.93/docs/siteguide/pads Log: Reorganized pads documentation and give a better description of what pads is Modified: branches/release-0.93/docs/siteguide/pads =================================================================== --- branches/release-0.93/docs/siteguide/pads 2011-12-23 17:51:41 UTC (rev 5462) +++ branches/release-0.93/docs/siteguide/pads 2011-12-24 03:32:13 UTC (rev 5463) @@ -1,17 +1,41 @@ PADS ---- +PADS is a petabyte-scale, data intense computing resource located +at the joint Argonne National Laboratory/University of Chicago +Computation Institute. More information about PADS can be found +at http://pads.ci.uchicago.edu. -PADS Quickstart -~~~~~~~~~~~~~~~ -This section will walk you through running a simple Swift script -on PADS. It will explain how to setup software packages, how -to create the required Swift configuration files, and finally -how to run Swift. +Requesting Access +~~~~~~~~~~~~~~~~~ +If you do not already have a Computation Institute account, you can request +access at https://www.ci.uchicago.edu/accounts. This page will give you a list +of resources you can request access to. Be sure that PADS is selected. If +you already have an existing CI account, but do not have access to PADS, +send an email to support at ci.uchicago.edu to request access. +SSH Keys +~~~~~~~~ +Before accessing PADS, be sure to have your SSH keys configured correctly. +There is some basic information about SSH and how to generate your key at +http://www.ci.uchicago.edu/wiki/bin/view/Resources/SshKeys. Once you have +followed those instructions, you can add your key at +https://www.ci.uchicago.edu/support/sshkeys/. + +Connecting to a login node +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Once your keys are configured, you should be able to access a PADS login +node with the following command: + +----- +ssh yourusername at login.pads.ci.uchicago.edu +----- + Adding Software Packages -^^^^^^^^^^^^^^^^^^^^^^^^ -In your home directory, edit a file called .soft and add these -lines (in this order): +~~~~~~~~~~~~~~~~~~~~~~~~ +Softenv is a system used for managing applications. In order to run Swift, +the softenv environment will have to be modified slightly. Softenv is +configured by a file in your home directory called .soft. Edit this file +to look like this: ----- +java-sun +maui @@ -21,6 +45,37 @@ Log out of PADS, and log back in for these changes to take effect. +Which project(s) are you a member of? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +PADS requires that you are a member of a project. You can determine this by +running the following command: + +----- +$ projects --available + +The following projects are available for your use + +Project PI Title +CI-CCR000013 Michael Wilde The Swift Parallel Scripting System +----- + +If you are not a member of a project, you must first request access +to a project at http://www.ci.uchicago.edu/hpc/projects. + +You should make sure that you have a project set as default. Run +the projects command with no arguments to determine if you have a default. + +------ +$ projects +You have no default project set. +----- + +To set your default project, use projects --set +------ +$ projects --set CI-CCR000013 --all +Your default project for all CI clusters has been set to CI-CCR000013. +----- + Creating sites.xml ^^^^^^^^^^^^^^^^^^ Swift relies on various configuration files to determine how to @@ -57,7 +112,6 @@ Copy a Swift Script ^^^^^^^^^^^^^^^^^^^ - Within the Swift directory is an examples directory which contains several introductory Swift scripts. The example we will use in this section is called catsn.swift. Copy this script to the same directory @@ -69,6 +123,7 @@ ----- TIP: The location of your swift directory may vary depending on how you installed it. Change this to the examples/misc directory of your installation as needed. + Run Swift ^^^^^^^^^ @@ -77,99 +132,21 @@ $ swift -sites.file sites.xml -tc.file tc.data catsn.swift ----- -You should see 10 new text files get created, named catsn*.out. If -you see these files, then you have succesfully run Swift on PADS! +You should see several new files being created, called catsn.0001.out, catsn.0002.out, etc. Each of these +files should contain the contents of what you placed into data.txt. If this happens, your job has run +successfully on PADS! TIP: Make sure your default project is defined. Read on for more information. Read on for more detailed information about running Swift on PADS. -Requesting Access -~~~~~~~~~~~~~~~~~ -If you do not already have a Computation Institute account, you can request -one at https://www.ci.uchicago.edu/accounts. This page will give you a list -of resources you can request access to. Be sure that PADS is selected. If -you already have an existing CI account, but do not have access to PADS, -send an email to support at ci.uchicago.edu to request access. -SSH Keys -~~~~~~~~ -Before accessing PADS, be sure to have your SSH keys configured correctly. -There is some basic information about SSH and how to generate your key at -http://www.ci.uchicago.edu/wiki/bin/view/Resources/SshKeys. Once you have -followed those instructions, you can add your key at -https://www.ci.uchicago.edu/support/sshkeys/. +Queues +^^^^^^ -Connecting to a login node -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Once your keys are configured, you should be able to access a PADS login -node with the following command: +As you run more application in the future, you will likely need +to change queues. ------ -ssh yourusername at login.pads.ci.uchicago.edu ------ - -Configuring softenv -~~~~~~~~~~~~~~~~~~~ -Softenv is a system used for managing applications. In order to run Swift, -the softenv environment will have to be modified slightly. Softenv is -configured by a file in your home directory called .soft. Edit this file -to look like this: ------ -+java-sun -+maui -+torque - at default ------ - -Swift Work Directory -^^^^^^^^^^^^^^^^^^^^ -The Swift work directory is a directory which Swift uses for processing work. -This directory needs to be writable and available to all worker nodes on -a shared filesystem. - -.Examples ------ -/home/username/swiftwork -/home/username/work -/autonfs/gpfs-pads/projects/CI-CCR000013/myusername ------ - -Which project(s) are you a member of? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -PADS requires that you are a member of a project. You can determine this by -running the following command: - ------ -$ projects --available - -The following projects are available for your use - -Project PI Title - -CI-CCR000013 Michael Wilde The Swift Parallel Scripting System ------ - -If you are not a member of a project, you must first request access -to a project at http://www.ci.uchicago.edu/hpc/projects. - -You should make sure that you have a project set as default. Run -the projects command with no arguments to determine if you have a default. - ------- -$ projects -You have no default project set. ------ - -To set your default project, use projects --set ------- -$ projects --set CI-CCR000013 --all -Your default project for all CI clusters has been set to CI-CCR000013. ------ - -Determine your Queue -^^^^^^^^^^^^^^^^^^^^ - PADS has several different queues you can submit jobs to depending on the type of work you will be doing. The command "qstat -q" will print the most up to date list of this information. @@ -185,59 +162,13 @@ |long |-- |-- |24:00:00|-- |232|130|-- | E R |========================================================= -Generating Configuration Files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Now that you know what queue to use, your project, and your work directory, it is time to -set up Swift. Swift uses a configuration file called sites.xml to determine how it should run. -There are two methods you can use for creating this file. You can manually edit -the configuration file, or generate it with a utility called gensites. +When you determine your computing requirements, modify this line in your +sites.xml: -Manually Editing sites.xml -^^^^^^^^^^^^^^^^^^^^^^^^^^ -Below is the template that is used by Swift's test suite for running on PADS. - ----- -include::../../tests/providers/PADS/coasters/sites.template.xml[] +fast ----- -Before you can use this configuration file, you will need to modify \_WORK_ to a directory writable by you, -and have your default project defined. Copy this template, replace \_WORK_, and then save as sites.xml. - -If you wanted to use a different queue, replace "fast" with the desired queue name. - -Manually Editing tc.data -~~~~~~~~~~~~~~~~~~~~~~~~ -Below is the tc.data file used by Swift's test suite for running on PADS. - ------ -include::../../tests/providers/PADS/coasters/tc.template.data[] ------- - -Copy these commands and save it as tc.data. - -Catsn.swift -~~~~~~~~~~~ -The swift script we will run is called catsn.swift. It simply cats a file and saves the result. This is -a nice simple test to ensure jobs are running correctly. Create a file called data.txt which contains -some simple input - a "hello world" will do the trick. - ------ -include::../../examples/misc/catsn.swift[] ------ - - -Running Swift -~~~~~~~~~~~~~ -Now that everything is in place, run Swift with the following command: - ------ -swift -sites.file sites.xml -tc.file tc.data catsn.swift -n=10 ------ - -You should see several new files being created, called catsn.0001.out, catsn.0002.out, etc. Each of these -files should contain the contents of what you placed into data.txt. If this happens, your job has run -successfully on PADS! - More Help ~~~~~~~~~ The best place for additional help is the Swift user mailing list. You can subscribe to this list at From davidk at ci.uchicago.edu Fri Dec 23 22:12:50 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 22:12:50 -0600 (CST) Subject: [Swift-commit] r5464 - branches/release-0.93/docs/siteguide Message-ID: <20111224041250.82DDB9CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 22:12:50 -0600 (Fri, 23 Dec 2011) New Revision: 5464 Modified: branches/release-0.93/docs/siteguide/fusion Log: Reorganize fusion siteguide and give a more general description Modified: branches/release-0.93/docs/siteguide/fusion =================================================================== --- branches/release-0.93/docs/siteguide/fusion 2011-12-24 03:32:13 UTC (rev 5463) +++ branches/release-0.93/docs/siteguide/fusion 2011-12-24 04:12:50 UTC (rev 5464) @@ -1,13 +1,49 @@ Fusion ----- +------ +Fusion is a 320-node computing cluster for the Argonne +National Laboratory community. The primary goal of the LCRC is to +facilitate mid-range computing in all of the scientific programs of +Argonne and the University of Chicago. -Fusion Quickstart -~~~~~~~~~~~~~~~ This section will walk you through running a simple Swift script on Fusion. +Requesting Access +~~~~~~~~~~~~~~~~~ +If you do not already have a Fusion account, you can request one at +https://accounts.lcrc.anl.gov/request.php. Email support at lcrc.anl.gov +for additional help. + +Projects +~~~~~~~~ +In order to run a job on a Fusion compute node, you must first be associated +with a project. + +Each project has one or more Primary Investigators, or PIs. These PIs are +responsible for adding and removing users to a project. Contact the PI of +your project to be added. + +More information on this process can be found at +http://www.lcrc.anl.gov/info/Projects. + +SSH Keys +~~~~~~~~ +Before accessing Fusion, be sure to have your SSH keys configured correctly. +SSH keys are required to access fusion. You should see information about +this when you request your account. Email support at lcrc.anl.gov for +additional help. + +Connecting to a login node +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Once your keys are configured, you should be able to access a Fusion login +node with the following command: + +----- +ssh yourusername at fusion.lcrc.anl.gov +----- + Creating sites.xml -^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~ Swift relies on various configuration files to determine how to run. This section will provide a working configuration file which you can copy and paste to get running quickly. The sites.xml file @@ -29,7 +65,7 @@ ----- Creating tc.data -^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~ The tc.data configuration file gives information about the applications that will be called by Swift. More information about the format of tc.data can be found in the Swift User's guide. @@ -41,8 +77,7 @@ ----- Copy a Swift Script -^^^^^^^^^^^^^^^^^^^ - +~~~~~~~~~~~~~~~~~~~~ Within the Swift directory is an examples directory which contains several introductory Swift scripts. The example we will use in this section is called catsn.swift. Copy this script to the same directory @@ -55,8 +90,7 @@ TIP: The location of your swift directory may vary depending on how you installed it. Change this to the examples/misc directory of your installation as needed. Run Swift -^^^^^^^^^ - +~~~~~~~~~ Finally, run the script ----- $ swift -sites.file sites.xml -tc.file tc.data catsn.swift @@ -65,40 +99,6 @@ You should see 10 new text files get created, named catsn*.out. If you see these files, then you have succesfully run Swift on Fusion! -Requesting Access -~~~~~~~~~~~~~~~~~ -If you do not already have a Fusion account, you can request one at -https://accounts.lcrc.anl.gov/request.php. Email support at lcrc.anl.gov -for additional help. - -SSH Keys -~~~~~~~~ -Before accessing Fusion, be sure to have your SSH keys configured correctly. -SSH keys are required to access fusion. You should see information about -this when you request your account. Email support at lcrc.anl.gov for -additional help. - -Connecting to a login node -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Once your keys are configured, you should be able to access a Fusion login -node with the following command: - ------ -ssh yourusername at fusion.lcrc.anl.gov ------ - -Projects -~~~~~~~~ -In order to run a job on a Fusion compute node, you must first be associated -with a project. - -Each project has one or more Primary Investigators, or PIs. These PIs are -responsible for adding and removing users to a project. Contact the PI of -your project to be added. - -More information on this process can be found at -http://www.lcrc.anl.gov/info/Projects. - Queues ~~~~~~ Fusion has two queues: shared and batch. The shared queue has a maximum 1 From davidk at ci.uchicago.edu Fri Dec 23 22:25:51 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 22:25:51 -0600 (CST) Subject: [Swift-commit] r5465 - branches/release-0.93/docs/siteguide Message-ID: <20111224042551.228169CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 22:25:51 -0600 (Fri, 23 Dec 2011) New Revision: 5465 Modified: branches/release-0.93/docs/siteguide/futuregrid Log: Summary of futuregrid Modified: branches/release-0.93/docs/siteguide/futuregrid =================================================================== --- branches/release-0.93/docs/siteguide/futuregrid 2011-12-24 04:12:50 UTC (rev 5464) +++ branches/release-0.93/docs/siteguide/futuregrid 2011-12-24 04:25:51 UTC (rev 5465) @@ -1,6 +1,11 @@ Futuregrid Quickstart Guide --------------------------- +FutureGrid is a distributed, high-performance test-bed that allows +scientists to collaboratively develop and test innovative approaches +to parallel, grid, and cloud computing. +More information on futuregrid can be found at https://portal.futuregrid.org/. + Requesting Futuregrid Access ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you do not already have a futuregrid account, you can follow the From davidk at ci.uchicago.edu Fri Dec 23 22:27:59 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 22:27:59 -0600 (CST) Subject: [Swift-commit] r5466 - branches/release-0.93/docs/siteguide Message-ID: <20111224042759.C1B069CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 22:27:59 -0600 (Fri, 23 Dec 2011) New Revision: 5466 Modified: branches/release-0.93/docs/siteguide/mcs Log: Description for MCS systems Modified: branches/release-0.93/docs/siteguide/mcs =================================================================== --- branches/release-0.93/docs/siteguide/mcs 2011-12-24 04:25:51 UTC (rev 5465) +++ branches/release-0.93/docs/siteguide/mcs 2011-12-24 04:27:59 UTC (rev 5466) @@ -1,5 +1,7 @@ MCS Workstations ---------------- +This sections describes how to use the general use compute servers for +the MCS division of Argonne National Laboratory. Create a coaster-service.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From davidk at ci.uchicago.edu Fri Dec 23 22:32:25 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 22:32:25 -0600 (CST) Subject: [Swift-commit] r5467 - branches/release-0.93/docs/siteguide Message-ID: <20111224043225.B0A679CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 22:32:25 -0600 (Fri, 23 Dec 2011) New Revision: 5467 Modified: branches/release-0.93/docs/siteguide/intrepid Log: Updated summary of Intrepid Modified: branches/release-0.93/docs/siteguide/intrepid =================================================================== --- branches/release-0.93/docs/siteguide/intrepid 2011-12-24 04:27:59 UTC (rev 5466) +++ branches/release-0.93/docs/siteguide/intrepid 2011-12-24 04:32:25 UTC (rev 5467) @@ -1,5 +1,8 @@ Intrepid -------- +Intrepid is an IBM Blue Gene/P supercomputer located at the Argonne Leadership +Computing Facility. More information on Intrepid can be found at +http://www.alcf.anl.gov/. Requesting Access ~~~~~~~~~~~~~~~~~ From davidk at ci.uchicago.edu Fri Dec 23 22:52:58 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 23 Dec 2011 22:52:58 -0600 (CST) Subject: [Swift-commit] r5468 - trunk/docs/siteguide Message-ID: <20111224045258.9268F9CD19@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-23 22:52:58 -0600 (Fri, 23 Dec 2011) New Revision: 5468 Modified: trunk/docs/siteguide/fusion trunk/docs/siteguide/intrepid trunk/docs/siteguide/mcs trunk/docs/siteguide/pads Log: Commit siteguide changes from 0.93 to trunk Modified: trunk/docs/siteguide/fusion =================================================================== --- trunk/docs/siteguide/fusion 2011-12-24 04:32:25 UTC (rev 5467) +++ trunk/docs/siteguide/fusion 2011-12-24 04:52:58 UTC (rev 5468) @@ -1,13 +1,49 @@ Fusion ----- +------ +Fusion is a 320-node computing cluster for the Argonne +National Laboratory community. The primary goal of the LCRC is to +facilitate mid-range computing in all of the scientific programs of +Argonne and the University of Chicago. -Fusion Quickstart -~~~~~~~~~~~~~~~ This section will walk you through running a simple Swift script on Fusion. +Requesting Access +~~~~~~~~~~~~~~~~~ +If you do not already have a Fusion account, you can request one at +https://accounts.lcrc.anl.gov/request.php. Email support at lcrc.anl.gov +for additional help. + +Projects +~~~~~~~~ +In order to run a job on a Fusion compute node, you must first be associated +with a project. + +Each project has one or more Primary Investigators, or PIs. These PIs are +responsible for adding and removing users to a project. Contact the PI of +your project to be added. + +More information on this process can be found at +http://www.lcrc.anl.gov/info/Projects. + +SSH Keys +~~~~~~~~ +Before accessing Fusion, be sure to have your SSH keys configured correctly. +SSH keys are required to access fusion. You should see information about +this when you request your account. Email support at lcrc.anl.gov for +additional help. + +Connecting to a login node +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Once your keys are configured, you should be able to access a Fusion login +node with the following command: + +----- +ssh yourusername at fusion.lcrc.anl.gov +----- + Creating sites.xml -^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~ Swift relies on various configuration files to determine how to run. This section will provide a working configuration file which you can copy and paste to get running quickly. The sites.xml file @@ -29,7 +65,7 @@ ----- Creating tc.data -^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~ The tc.data configuration file gives information about the applications that will be called by Swift. More information about the format of tc.data can be found in the Swift User's guide. @@ -41,8 +77,7 @@ ----- Copy a Swift Script -^^^^^^^^^^^^^^^^^^^ - +~~~~~~~~~~~~~~~~~~~~ Within the Swift directory is an examples directory which contains several introductory Swift scripts. The example we will use in this section is called catsn.swift. Copy this script to the same directory @@ -55,8 +90,7 @@ TIP: The location of your swift directory may vary depending on how you installed it. Change this to the examples/misc directory of your installation as needed. Run Swift -^^^^^^^^^ - +~~~~~~~~~ Finally, run the script ----- $ swift -sites.file sites.xml -tc.file tc.data catsn.swift @@ -65,40 +99,6 @@ You should see 10 new text files get created, named catsn*.out. If you see these files, then you have succesfully run Swift on Fusion! -Requesting Access -~~~~~~~~~~~~~~~~~ -If you do not already have a Fusion account, you can request one at -https://accounts.lcrc.anl.gov/request.php. Email support at lcrc.anl.gov -for additional help. - -SSH Keys -~~~~~~~~ -Before accessing Fusion, be sure to have your SSH keys configured correctly. -SSH keys are required to access fusion. You should see information about -this when you request your account. Email support at lcrc.anl.gov for -additional help. - -Connecting to a login node -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Once your keys are configured, you should be able to access a Fusion login -node with the following command: - ------ -ssh yourusername at fusion.lcrc.anl.gov ------ - -Projects -~~~~~~~~ -In order to run a job on a Fusion compute node, you must first be associated -with a project. - -Each project has one or more Primary Investigators, or PIs. These PIs are -responsible for adding and removing users to a project. Contact the PI of -your project to be added. - -More information on this process can be found at -http://www.lcrc.anl.gov/info/Projects. - Queues ~~~~~~ Fusion has two queues: shared and batch. The shared queue has a maximum 1 Modified: trunk/docs/siteguide/intrepid =================================================================== --- trunk/docs/siteguide/intrepid 2011-12-24 04:32:25 UTC (rev 5467) +++ trunk/docs/siteguide/intrepid 2011-12-24 04:52:58 UTC (rev 5468) @@ -1,5 +1,8 @@ Intrepid -------- +Intrepid is an IBM Blue Gene/P supercomputer located at the Argonne Leadership +Computing Facility. More information on Intrepid can be found at +http://www.alcf.anl.gov/. Requesting Access ~~~~~~~~~~~~~~~~~ Modified: trunk/docs/siteguide/mcs =================================================================== --- trunk/docs/siteguide/mcs 2011-12-24 04:32:25 UTC (rev 5467) +++ trunk/docs/siteguide/mcs 2011-12-24 04:52:58 UTC (rev 5468) @@ -1,5 +1,7 @@ MCS Workstations ---------------- +This sections describes how to use the general use compute servers for +the MCS division of Argonne National Laboratory. Create a coaster-service.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -10,79 +12,6 @@ include::../../tests/providers/mcs/coaster-service.conf[] ----- -SSH Configuration -~~~~~~~~~~~~~~~~~ -For this configuration to work, you must be able to log into each of the MCS workstations -using your SSH keys. Copy your id_rsa and id_rsa.pub files into the .ssh/ directory -on login.mcs.anl.gov. Run the following commands to make sure your keys are private: - ------ -chmod 600 id_rsa -chmod 644 id_rsa.pub ------ - -Once your SSH keys are in place, create a file in .ssh/ called auth.defaults. Paste the -following text into the file: - ------ -crush.mcs.anl.gov.type=key -crush.mcs.anl.gov.username=yourusername -crush.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -crush.mcs.anl.gov.passphrase=your passphrase here - -thwomp.mcs.anl.gov.type=key -thwomp.mcs.anl.gov.username=yourusername -thwomp.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -thwomp.mcs.anl.gov.passphrase=your passphrase here - -stomp.mcs.anl.gov.type=key -stomp.mcs.anl.gov.username=yourusername -stomp.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -stomp.mcs.anl.gov.passphrase=your passphrase here - -crank.mcs.anl.gov.type=key -crank.mcs.anl.gov.username=yourusername -crank.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -crank.mcs.anl.gov.passphrase=your passphrase here - -steamroller.mcs.anl.gov.type=key -steamroller.mcs.anl.gov.username=yourusername -steamroller.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -steamroller.mcs.anl.gov.passphrase=your passphrase here - -grind.mcs.anl.gov.type=key -grind.mcs.anl.gov.username=yourusername -grind.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -grind.mcs.anl.gov.passphrase=your passphrase here - -churn.mcs.anl.gov.type=key -churn.mcs.anl.gov.username=yourusername -churn.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -churn.mcs.anl.gov.passphrase=your passphrase here - -trounce.mcs.anl.gov.type=key -trounce.mcs.anl.gov.username=yourusername -trounce.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -trounce.mcs.anl.gov.passphrase=your passphrase here - -thrash.mcs.anl.gov.type=key -thrash.mcs.anl.gov.username=yourusername -thrash.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -thrash.mcs.anl.gov.passphrase=your passphrase here - -vanquish.mcs.anl.gov.type=key -vanquish.mcs.anl.gov.username=yourusername -vanquish.mcs.anl.gov.key=/home/yourusername/.ssh/id_rsa -vanquish.mcs.anl.gov.passphrase=your passphrase here ------ - -Replace the username, key path, and passphrase with your values. -Change the permissions on the file to keep it private. - ------ -chmod 600 auth.default ------ - Starting the Coaster Service ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Modified: trunk/docs/siteguide/pads =================================================================== --- trunk/docs/siteguide/pads 2011-12-24 04:32:25 UTC (rev 5467) +++ trunk/docs/siteguide/pads 2011-12-24 04:52:58 UTC (rev 5468) @@ -1,17 +1,41 @@ PADS ---- +PADS is a petabyte-scale, data intense computing resource located +at the joint Argonne National Laboratory/University of Chicago +Computation Institute. More information about PADS can be found +at http://pads.ci.uchicago.edu. -PADS Quickstart -~~~~~~~~~~~~~~~ -This section will walk you through running a simple Swift script -on PADS. It will explain how to setup software packages, how -to create the required Swift configuration files, and finally -how to run Swift. +Requesting Access +~~~~~~~~~~~~~~~~~ +If you do not already have a Computation Institute account, you can request +access at https://www.ci.uchicago.edu/accounts. This page will give you a list +of resources you can request access to. Be sure that PADS is selected. If +you already have an existing CI account, but do not have access to PADS, +send an email to support at ci.uchicago.edu to request access. +SSH Keys +~~~~~~~~ +Before accessing PADS, be sure to have your SSH keys configured correctly. +There is some basic information about SSH and how to generate your key at +http://www.ci.uchicago.edu/wiki/bin/view/Resources/SshKeys. Once you have +followed those instructions, you can add your key at +https://www.ci.uchicago.edu/support/sshkeys/. + +Connecting to a login node +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Once your keys are configured, you should be able to access a PADS login +node with the following command: + +----- +ssh yourusername at login.pads.ci.uchicago.edu +----- + Adding Software Packages -^^^^^^^^^^^^^^^^^^^^^^^^ -In your home directory, edit a file called .soft and add these -lines (in this order): +~~~~~~~~~~~~~~~~~~~~~~~~ +Softenv is a system used for managing applications. In order to run Swift, +the softenv environment will have to be modified slightly. Softenv is +configured by a file in your home directory called .soft. Edit this file +to look like this: ----- +java-sun +maui @@ -21,6 +45,37 @@ Log out of PADS, and log back in for these changes to take effect. +Which project(s) are you a member of? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +PADS requires that you are a member of a project. You can determine this by +running the following command: + +----- +$ projects --available + +The following projects are available for your use + +Project PI Title +CI-CCR000013 Michael Wilde The Swift Parallel Scripting System +----- + +If you are not a member of a project, you must first request access +to a project at http://www.ci.uchicago.edu/hpc/projects. + +You should make sure that you have a project set as default. Run +the projects command with no arguments to determine if you have a default. + +------ +$ projects +You have no default project set. +----- + +To set your default project, use projects --set +------ +$ projects --set CI-CCR000013 --all +Your default project for all CI clusters has been set to CI-CCR000013. +----- + Creating sites.xml ^^^^^^^^^^^^^^^^^^ Swift relies on various configuration files to determine how to @@ -33,7 +88,7 @@ The first step is to paste the text below into a file named sites.xml. ----- -include::../../tests/providers/pads/coasters/sites.template.xml[] +include::../../tests/providers/PADS/coasters/sites.template.xml[] ----- This file will require just a few customizations. First, create a @@ -52,12 +107,11 @@ Paste the following example into a file named tc.data ----- -include::../../tests/providers/pads/coasters/tc.template.data[] +include::../../tests/providers/PADS/coasters/tc.template.data[] ----- Copy a Swift Script ^^^^^^^^^^^^^^^^^^^ - Within the Swift directory is an examples directory which contains several introductory Swift scripts. The example we will use in this section is called catsn.swift. Copy this script to the same directory @@ -69,6 +123,7 @@ ----- TIP: The location of your swift directory may vary depending on how you installed it. Change this to the examples/misc directory of your installation as needed. + Run Swift ^^^^^^^^^ @@ -77,99 +132,21 @@ $ swift -sites.file sites.xml -tc.file tc.data catsn.swift ----- -You should see 10 new text files get created, named catsn*.out. If -you see these files, then you have succesfully run Swift on PADS! +You should see several new files being created, called catsn.0001.out, catsn.0002.out, etc. Each of these +files should contain the contents of what you placed into data.txt. If this happens, your job has run +successfully on PADS! TIP: Make sure your default project is defined. Read on for more information. Read on for more detailed information about running Swift on PADS. -Requesting Access -~~~~~~~~~~~~~~~~~ -If you do not already have a Computation Institute account, you can request -one at https://www.ci.uchicago.edu/accounts. This page will give you a list -of resources you can request access to. Be sure that PADS is selected. If -you already have an existing CI account, but do not have access to PADS, -send an email to support at ci.uchicago.edu to request access. -SSH Keys -~~~~~~~~ -Before accessing PADS, be sure to have your SSH keys configured correctly. -There is some basic information about SSH and how to generate your key at -http://www.ci.uchicago.edu/wiki/bin/view/Resources/SshKeys. Once you have -followed those instructions, you can add your key at -https://www.ci.uchicago.edu/support/sshkeys/. +Queues +^^^^^^ -Connecting to a login node -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Once your keys are configured, you should be able to access a PADS login -node with the following command: +As you run more application in the future, you will likely need +to change queues. ------ -ssh yourusername at login.pads.ci.uchicago.edu ------ - -Configuring softenv -~~~~~~~~~~~~~~~~~~~ -Softenv is a system used for managing applications. In order to run Swift, -the softenv environment will have to be modified slightly. Softenv is -configured by a file in your home directory called .soft. Edit this file -to look like this: ------ -+java-sun -+maui -+torque - at default ------ - -Swift Work Directory -^^^^^^^^^^^^^^^^^^^^ -The Swift work directory is a directory which Swift uses for processing work. -This directory needs to be writable and available to all worker nodes on -a shared filesystem. - -.Examples ------ -/home/username/swiftwork -/home/username/work -/autonfs/gpfs-pads/projects/CI-CCR000013/myusername ------ - -Which project(s) are you a member of? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -PADS requires that you are a member of a project. You can determine this by -running the following command: - ------ -$ projects --available - -The following projects are available for your use - -Project PI Title - -CI-CCR000013 Michael Wilde The Swift Parallel Scripting System ------ - -If you are not a member of a project, you must first request access -to a project at http://www.ci.uchicago.edu/hpc/projects. - -You should make sure that you have a project set as default. Run -the projects command with no arguments to determine if you have a default. - ------- -$ projects -You have no default project set. ------ - -To set your default project, use projects --set ------- -$ projects --set CI-CCR000013 --all -Your default project for all CI clusters has been set to CI-CCR000013. ------ - -Determine your Queue -^^^^^^^^^^^^^^^^^^^^ - PADS has several different queues you can submit jobs to depending on the type of work you will be doing. The command "qstat -q" will print the most up to date list of this information. @@ -185,59 +162,13 @@ |long |-- |-- |24:00:00|-- |232|130|-- | E R |========================================================= -Generating Configuration Files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Now that you know what queue to use, your project, and your work directory, it is time to -set up Swift. Swift uses a configuration file called sites.xml to determine how it should run. -There are two methods you can use for creating this file. You can manually edit -the configuration file, or generate it with a utility called gensites. +When you determine your computing requirements, modify this line in your +sites.xml: -Manually Editing sites.xml -^^^^^^^^^^^^^^^^^^^^^^^^^^ -Below is the template that is used by Swift's test suite for running on PADS. - ----- -include::../../tests/providers/pads/coasters/sites.template.xml[] +fast ----- -Before you can use this configuration file, you will need to modify \_WORK_ to a directory writable by you, -and have your default project defined. Copy this template, replace \_WORK_, and then save as sites.xml. - -If you wanted to use a different queue, replace "fast" with the desired queue name. - -Manually Editing tc.data -~~~~~~~~~~~~~~~~~~~~~~~~ -Below is the tc.data file used by Swift's test suite for running on PADS. - ------ -include::../../tests/providers/pads/coasters/tc.template.data[] ------- - -Copy these commands and save it as tc.data. - -Catsn.swift -~~~~~~~~~~~ -The swift script we will run is called catsn.swift. It simply cats a file and saves the result. This is -a nice simple test to ensure jobs are running correctly. Create a file called data.txt which contains -some simple input - a "hello world" will do the trick. - ------ -include::../../examples/misc/catsn.swift[] ------ - - -Running Swift -~~~~~~~~~~~~~ -Now that everything is in place, run Swift with the following command: - ------ -swift -sites.file sites.xml -tc.file tc.data catsn.swift -n=10 ------ - -You should see several new files being created, called catsn.0001.out, catsn.0002.out, etc. Each of these -files should contain the contents of what you placed into data.txt. If this happens, your job has run -successfully on PADS! - More Help ~~~~~~~~~ The best place for additional help is the Swift user mailing list. You can subscribe to this list at From davidk at ci.uchicago.edu Sat Dec 24 10:31:51 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 24 Dec 2011 10:31:51 -0600 (CST) Subject: [Swift-commit] r5469 - trunk/docs/siteguide Message-ID: <20111224163151.880549CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-24 10:31:50 -0600 (Sat, 24 Dec 2011) New Revision: 5469 Modified: trunk/docs/siteguide/fusion trunk/docs/siteguide/pads Log: Update paths Modified: trunk/docs/siteguide/fusion =================================================================== --- trunk/docs/siteguide/fusion 2011-12-24 04:52:58 UTC (rev 5468) +++ trunk/docs/siteguide/fusion 2011-12-24 16:31:50 UTC (rev 5469) @@ -54,7 +54,7 @@ The first step is to paste the text below into a file named sites.xml. ----- -include::../../tests/providers/fusion/sites.template.xml[] +include::../../tests/providers/fusion/coasters/sites.template.xml[] ----- This file will require one customization. Create a @@ -73,7 +73,7 @@ Paste the following example into a file named tc.data ----- -include::../../tests/providers/fusion/tc.template.data[] +include::../../tests/providers/fusion/coasters/tc.template.data[] ----- Copy a Swift Script @@ -84,8 +84,8 @@ that your sites.xml and tc.data files are located. ----- -$ cp ~/swift-0.93/examples/misc/catsn.swift . -$ cp ~/swift-0.93/examples/misc/data.txt . +$ cp ~/swift/examples/misc/catsn.swift . +$ cp ~/swift/examples/misc/data.txt . ----- TIP: The location of your swift directory may vary depending on how you installed it. Change this to the examples/misc directory of your installation as needed. Modified: trunk/docs/siteguide/pads =================================================================== --- trunk/docs/siteguide/pads 2011-12-24 04:52:58 UTC (rev 5468) +++ trunk/docs/siteguide/pads 2011-12-24 16:31:50 UTC (rev 5469) @@ -88,7 +88,7 @@ The first step is to paste the text below into a file named sites.xml. ----- -include::../../tests/providers/PADS/coasters/sites.template.xml[] +include::../../tests/providers/pads/coasters/sites.template.xml[] ----- This file will require just a few customizations. First, create a @@ -107,7 +107,7 @@ Paste the following example into a file named tc.data ----- -include::../../tests/providers/PADS/coasters/tc.template.data[] +include::../../tests/providers/pads/coasters/tc.template.data[] ----- Copy a Swift Script From davidk at ci.uchicago.edu Sat Dec 24 11:01:44 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 24 Dec 2011 11:01:44 -0600 (CST) Subject: [Swift-commit] r5470 - in trunk: docs/siteguide tests Message-ID: <20111224170144.1C52B9CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-24 11:01:43 -0600 (Sat, 24 Dec 2011) New Revision: 5470 Removed: trunk/tests/sites/ Modified: trunk/docs/siteguide/beagle trunk/docs/siteguide/futuregrid Log: Modified: trunk/docs/siteguide/beagle =================================================================== --- trunk/docs/siteguide/beagle 2011-12-24 16:31:50 UTC (rev 5469) +++ trunk/docs/siteguide/beagle 2011-12-24 17:01:43 UTC (rev 5470) @@ -1,5 +1,18 @@ Beagle ------ +Beagle is a Cray XE6 supercomputer at UChicago. It employs a batch-oriented +computational model where-in a PBS schedular accepts user's jobs and queues +them in the queueing system for execution. The computational model requires +a user to prepare the submit files, track job submissions, chackpointing, +managing input/output data and handling exceptional conditions manually. +Running Swift under Beagle can accomplish the above tasks with least manual +user intervention and maximal oppurtunistic computation time on Beagle +queues. In the following sections, we discuss more about specifics of +running Swift on Beagle. A more detailed information about Swift and its +workings can be found on Swift documentation page here: +http://www.ci.uchicago.edu/swift/wwwdev/docs/index.php +More information on Beagle can be found on UChicago Beagle website here: +http://beagle.ci.uchicago.edu Requesting Access ~~~~~~~~~~~~~~~~~ Modified: trunk/docs/siteguide/futuregrid =================================================================== --- trunk/docs/siteguide/futuregrid 2011-12-24 16:31:50 UTC (rev 5469) +++ trunk/docs/siteguide/futuregrid 2011-12-24 17:01:43 UTC (rev 5470) @@ -1,6 +1,11 @@ Futuregrid Quickstart Guide --------------------------- +FutureGrid is a distributed, high-performance test-bed that allows +scientists to collaboratively develop and test innovative approaches +to parallel, grid, and cloud computing. +More information on futuregrid can be found at https://portal.futuregrid.org/. + Requesting Futuregrid Access ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you do not already have a futuregrid account, you can follow the @@ -15,13 +20,14 @@ following command: ----- -$ svn co https://svn.ci.uchicago.edu/svn/vdl2/usertools/swift-vm-boot +$ svn co https://svn.ci.uchicago.edu/svn/vdl2/usertools/swift-vm-boot swift-vm-boot ----- Download your Credentials ~~~~~~~~~~~~~~~~~~~~~~~~~ Run the following commands to retrieve your credentials: ----- +$ cd swift-vm-boot $ scp yourusername at hotel.futuregrid.org:nimbus_creds.tar.gz . $ tar xvfz nimbus_creds.tar.gz ----- @@ -30,45 +36,57 @@ called vws.repository.s3id and vws.repository.s3key. Copy these values for the next step. -Configuring Swift VM Tools -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Change directories into the swift-vm-boot directory. Edit the file -called env.sh. There are two settings here that you will need to -modify: FUTUREGRID_IAAS_ACCESS_KEY and FUTUREGRID_IAAS_SECRET_KEY. -Paste your access key (s3id) and secret key (s3key) here and save -the file. By default, env.sh requests 2 nodes on hotel and 2 nodes -on sierra. Change these values as needed. Run install.sh from the -swift-vm-boot directory to complete the installation of Swift VM -Tools. The Swift VM Tools may require a fairly recent version of -Python. If you run into problems while running the install.sh -script, please try a more recent version of Python and associated -libraries. - Configuring coaster-service.conf ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Within your swift distribution's etc directory is a file called -coaster-service.conf. There are many options here you can modify -as needed, but these are the settings that will be required -to run on futuregrid: +To run on futuregrid, you will need a file called coaster-service.conf. +This file contains many options to control how things run. Here is +an example of a working coaster-service.conf on futuregrid. ----- -export WORKER_WORK=/tmp +# Where to copy worker.pl on the remote machine for sites.xml +export WORKER_LOCATION=/tmp + +# How to launch workers: local, ssh, cobalt, or futuregrid export WORKER_MODE=futuregrid + +# Do all the worker nodes you're using have a shared filesystem? (yes/no) export SHARED_FILESYSTEM=no + +# Username to use on worker nodes export WORKER_USERNAME=root + +# Enable SSH tunneling? (yes/no) export SSH_TUNNELING=yes + +# Directory to keep log files, relative to working directory when launching start-coaster-service +export LOG_DIR=logs + +# Location of the swift-vm-boot scripts export SWIFTVMBOOT_DIR=$HOME/swift-vm-boot + +# Futuregrid settings +export FUTUREGRID_IAAS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXX +export FUTUREGRID_IAAS_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +export FUTUREGRID_HOTEL_NODES=0 +export FUTUREGRID_SIERRA_NODES=2 +export FUTUREGRID_CPUS_PER_NODE=1 + +# Swift information for creating sites.xml export WORK=/tmp +export JOBS_PER_NODE=$FUTUREGRID_CPUS_PER_NODE +export JOB_THROTTLE=$( echo "scale=5; ($JOBS_PER_NODE * $(($FUTUREGRID_HOTEL_NODES + $FUTUREGRID_SIERRA_NODES)))/100 - 0.00001"|bc ) + +# Application locations for tc.data +#app convert=/usr/bin/convert ----- -These is a brief description of these settings in the coaster-service.conf file. -Tunneling should be used when you are restricted by a firewall. If your local -machine has multiple network interfaces, you should also manually set the IP -address of your machine with export IPADDR=your.ip.address.here. +Paste your credentials from the hotel.conf file into the FUTUREGRID_IAAS_ACCESS_KEY and FUTUREGRID_IAAS_SECRET_KEY fields. +Adjust the number of nodes you would like to allocate here by changing the values of FUTUREGRID_HOTEL_NODES and FUTUREGRID_SIERRA_NODES. +Add a list of any applications you want to run in the format "#app myapp=/path/to/app". Starting the Coaster Service Script ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Now that everything is configured, change to a temporary directory +Now that everything is configured, change to the location of the coaster-service.conf file and run this command to start the coaster service: ----- From davidk at ci.uchicago.edu Sat Dec 24 11:03:09 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 24 Dec 2011 11:03:09 -0600 (CST) Subject: [Swift-commit] r5471 - trunk/tests Message-ID: <20111224170309.D8C019CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-24 11:03:09 -0600 (Sat, 24 Dec 2011) New Revision: 5471 Added: trunk/tests/sites/ Removed: trunk/tests/providers/ Log: Rename providers->sites From davidk at ci.uchicago.edu Sat Dec 24 11:12:38 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 24 Dec 2011 11:12:38 -0600 (CST) Subject: [Swift-commit] r5472 - in trunk: bin tests Message-ID: <20111224171238.713689CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-24 11:12:38 -0600 (Sat, 24 Dec 2011) New Revision: 5472 Added: trunk/tests/providers Modified: trunk/bin/gensites trunk/bin/start-coaster-service trunk/bin/stop-coaster-service Log: Links providers->sites Updated gensites and coaster-service scripts from 0.93 Modified: trunk/bin/gensites =================================================================== --- trunk/bin/gensites 2011-12-24 17:03:09 UTC (rev 5471) +++ trunk/bin/gensites 2011-12-24 17:12:38 UTC (rev 5472) @@ -187,6 +187,12 @@ "#site $TEMPLATE internalhostname="*|'#site internalhostname='*) INTERNALHOSTNAME=`get_value $line` ;; + "#site $TEMPLATE jobs_per_node="*|'#site jobs_per_node='*) + JOBS_PER_NODE=`get_value $line` + ;; + "#site $TEMPLATE job_throttle="*|'#site job_throttle='*) + JOB_THROTTLE=`get_value $line` + ;; '#app'*) if [ `echo $line | wc -w` == 2 ]; then for HOST in $HOSTS @@ -215,12 +221,12 @@ fi # Verify that the variables by the template are defined -for TOKEN in NODES HOST WORK PROJECT QUEUE N_GRAN N_MAX SLOTS INTERNALHOSTNAME MAXTIME EXECUTION_URL +for TOKEN in NODES HOST WORK PROJECT QUEUE N_GRAN N_MAX SLOTS INTERNALHOSTNAME MAXTIME EXECUTION_URL JOBS_PER_NODE JOB_THROTTLE do # Test for HOST/GLOBUS_HOSTNAME - the only values which don't match if [ "$TOKEN" == "HOST" ]; then if [ -z "$GLOBUS_HOSTNAME" ]; then - crash "Not specified: GLOBUS_HOSTNAME" + GLOBUS_HOSTNAME=$( hostname -f ) fi elif grep _${TOKEN}_ $TEMPLATE_PATH > /dev/null; then if [ -z "${!TOKEN}" ]; then @@ -245,6 +251,8 @@ echo "s at _EXECUTION_URL_@${EXECUTION_URL}@" echo "s at _SERVICE_COASTERS_@${SERVICE_COASTERS:-NO_URL_GIVEN}@" echo "s at _SERVICE_PORT_@${SERVICE_PORT:-NO_PORT_GIVEN}@" + echo "s at _JOBS_PER_NODE_@${JOBS_PER_NODE}@" + echo "s at _JOB_THROTTLE_@${JOB_THROTTLE}@" } > $SEDFILE Modified: trunk/bin/start-coaster-service =================================================================== --- trunk/bin/start-coaster-service 2011-12-24 17:03:09 UTC (rev 5471) +++ trunk/bin/start-coaster-service 2011-12-24 17:12:38 UTC (rev 5472) @@ -11,45 +11,77 @@ # Start futuregrid workers start-workers-futuregrid() { + # Setup environment PORT=$1 EXECUTION_URL=http://localhost:$PORT + export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY + export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY - if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/bin/bootit.sh" ]; then + # Check that SWIFTVMBOOT_DIR looks ok + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/futuregrid/bin/bootit.sh" ]; then crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" fi + # Install ve + if [ ! -d "$SWIFTVMBOOT_DIR/futuregrid/ve" ]; then + echo Setting up environment + python $SWIFTVMBOOT_DIR/futuregrid/bin/virtualenv.py $SWIFTVMBOOT_DIR/futuregrid/ve + if [ $? -ne 0 ]; then + echo "Failed to created the needed python virtual environment" + exit 1 + fi + fi + + # Install cloudinitd + source $SWIFTVMBOOT_DIR/futuregrid/ve/bin/activate + easy_install cloudinitd + if [ $? -ne 0 ]; then + echo "Failed to install cloudinitd" + exit 1 + fi + + # Register key + echo "Registering the key names in all the clouds" + python $SWIFTVMBOOT_DIR/futuregrid/bin/register_key.py $SWIFTVMBOOT_DIR/futuregrid/hosts.txt + if [ $? -ne 0 ]; then + echo "Failed to register the key names" + exit 1 + fi + + # Start virtual machines echo Starting virtual machines.. please wait - $SWIFTVMBOOT_DIR/bin/bootit.sh | tee -a bootit.log - SWIFTVMBOOT_OUTPUT=$SWIFTVMBOOT_DIR/output.json - + $SWIFTVMBOOT_DIR/futuregrid/bin/bootit.sh | tee -a bootit.log + SWIFTVMBOOT_OUTPUT=$SWIFTVMBOOT_DIR/futuregrid/output.json if [ ! -f "$SWIFTVMBOOT_OUTPUT" ]; then crash "Error: Swift VM output file $SWIFTVMBOOT_OUTPUT does not exist!" fi SWIFTVM_INSTANCE=`grep "Starting up run" bootit.log |awk '{print $4}'` - echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instance - + echo $SWIFTVM_INSTANCE >> $HOME/.swift/.swiftvm_instances WORKER_HOSTS=`grep hostname $SWIFTVMBOOT_OUTPUT |awk '{print $2}'|sed 's/\"//g;s/,//g;s/null//g'` # Start worker script for MACHINE in $WORKER_HOSTS do - # Enable ssh tunneling if needed + echo $MACHINE >> $HOME/.swift/machines + scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 if [ "$SSH_TUNNELING" == "yes" ]; then ssh -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 & echo $! >> $PID_FILE + echo "Starting worker on $MACHINE" + ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER http://localhost:$PORT $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE + else + echo "Starting worker on $MACHINE" + ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & + echo $! >> $PID_FILE fi - - # Copy and start worker script - scp $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 - echo "Starting worker on $MACHINE" - ssh $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" & - echo $! >> $PID_FILE + done } -# EC2 workers -start-workers-ec2() +# Globus Provision workers +start-workers-gp() { PORT=$1 EXECUTION_URL=http://localhost:$PORT @@ -80,10 +112,13 @@ WORKER_HOSTS=`$SWIFTVMBOOT_DIR/bin/gp-instance-describe $SWIFTVM_INSTANCE|sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"|awk '{print $3}'` # Start worker script + if [ -f "$HOME/.swift/machines" ]; then + rm $HOME/.swift/machines + fi for MACHINE in $WORKER_HOSTS do # Create a list of machines for other applications, if needed - echo $MACHINE >> $HOME/.swift/.machines + echo $MACHINE >> $HOME/.swift/machines # Enable ssh tunneling if needed if [ "$SSH_TUNNELING" == "yes" ]; then @@ -99,6 +134,75 @@ done } +# EC2 workers +start-workers-ec2() +{ + PORT=$1 + EXECUTION_URL=http://localhost:$PORT + if [ ! -d "$SWIFTVMBOOT_DIR" ] || [ ! -x "$SWIFTVMBOOT_DIR/ec2/bin/ec2-run-instances" ]; then + crash "SWIFTVMBOOT_DIR incorrectly defined in coaster-service.conf" + fi + + export EC2_HOME="$SWIFTVMBOOT_DIR/ec2" + export EC2_PRIVATE_KEY="$EC2_KEYFILE" + export EC2_CERT="$EC2_CERTFILE" + + echo Creating instance.. + $SWIFTVMBOOT_DIR/ec2/bin/ec2-run-instances "$EC2_AMI" -t "$EC2_INSTANCE_TYPE" -n "$EC2_NODES" -K "$EC2_KEYFILE" -C "$EC2_CERT" + SWIFTVM_INSTANCES=$( $SWIFTVMBOOT_DIR/ec2/bin/ec2-describe-instances | grep INSTANCE | grep -v terminated |awk '{print $2}' ) + echo $SWIFTVM_INSTANCES >> $HOME/.swift/.swiftvm_instances + echo Waiting for nodes to boot.. + + # Wait until all instances are listed as running + while /bin/true + do + SWIFTVM_INSTANCES_AS_STRING=$( echo $SWIFTVM_INSTANCES | tr "\\n" " ") + STATUS_LIST=$( $SWIFTVMBOOT_DIR/ec2/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $6}' |sort -u ) + if [ "$STATUS_LIST" == "running" ]; then + break + fi + sleep 5 + done + + # There is some delay between when the machines are 'running', and when system utilities like sshd are started + sleep 30 + + WORKER_HOSTS=$( $SWIFTVMBOOT_DIR/ec2/bin/ec2-describe-instances $SWIFTVM_INSTANCES_AS_STRING | grep INSTANCE | grep -v terminated | awk '{print $4}' ) + + if [ -f "$HOME/.swift/machines" ]; then + rm $HOME/.swift/machines + fi + + # Start worker script + SSH_OPTS="-i $EC2_KEYFILE -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + for MACHINE in $WORKER_HOSTS + do + + # Create a list of machines for other applications, if needed + echo $MACHINE >> $HOME/.swift/machines + + # Copy and start worker script + scp $SSH_OPTS $SWIFT_BIN/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION > /dev/null 2>&1 + echo $! >> $PID_FILE + + # Enable ssh tunneling if needed + if [ "$SSH_TUNNELING" == "yes" ]; then + ssh $SSH_OPTS -R *:$PORT:localhost:$PORT $WORKER_USERNAME@$MACHINE sleep 999 > /dev/null 2>&1 & + sleep 10 + ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER http://localhost:$PORT $MACHINE $LOG_DIR" 2>&1 & + echo $! >> $PID_FILE + else + echo "Starting worker on $MACHINE" + ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE "$WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $LOG_DIR" > /dev/null 2>&1 & + echo $! >> $PID_FILE + fi + + # Copy SSH key for easier access + cat $HOME/.ssh/*.pub | ssh $SSH_OPTS $WORKER_USERNAME@$MACHINE 'umask 077; cat >> $HOME/.ssh/authorized_keys' > /dev/null 2>&1 + done +} + + # Start SSH workers start-workers-ssh() { @@ -125,7 +229,7 @@ ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $MACHINE mkdir -p $WORKER_LOCATION > /dev/null 2>&1 ssh $WORKER_USERNAME@$WORKER_RELAY_HOST "scp /tmp/$WORKER $WORKER_USERNAME@$MACHINE:$WORKER_LOCATION" > /dev/null 2>&1 echo Starting worker on $MACHINE - ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $WORKER_USERNAME@$MACHINE "WORKER_LOGGING_LEVEL=$WORKER_LOGGING_LEVEL $WORKER_LOCATION/$WORKER $EXECUTION_URL $MACHINE $WORKER_LOG_DIR" & + ssh $WORKER_USERNAME@$WORKER_RELAY_HOST ssh $WORKER_USERNAME@$MACHINE "WORKER_LOGGING_LEVEL=$WORKER_LOGGING_LEVEL $WORKER_LOCATION/$WORKER http://localhost:$PORT $MACHINE $WORKER_LOG_DIR" & echo $! >> $PID_FILE # Connect directly else @@ -308,6 +412,9 @@ futuregrid) start-workers-futuregrid $LOCAL_PORT ;; + gp) + start-workers-gp $LOCAL_PORT + ;; ec2) start-workers-ec2 $LOCAL_PORT ;; @@ -333,7 +440,7 @@ wrapperlog.always.transfer=false execution.retries=0 provider.staging.pin.swiftfiles=false -sitedir.keep=true +sitedir.keep=false EOF fi Modified: trunk/bin/stop-coaster-service =================================================================== --- trunk/bin/stop-coaster-service 2011-12-24 17:03:09 UTC (rev 5471) +++ trunk/bin/stop-coaster-service 2011-12-24 17:12:38 UTC (rev 5472) @@ -10,7 +10,7 @@ # Location of required files PID_FILE="$HOME/.swift/.coaster-service-pids" -SWIFTVM_INSTANCES="$HOME/.swift/.swiftvm_instance" +SWIFTVM_INSTANCES="$HOME/.swift/.swiftvm_instances" # Import settings CONFIG_FILE=$HOME/.swift/.config @@ -23,7 +23,7 @@ #echo "$pid" for i in `ps -ef| awk '$3 == '$pid' { print $2 }'` do - #echo "$i" + echo "Killing process $i" kill $i > /dev/null 2>&1 done kill $pid > /dev/null 2>&1 @@ -34,12 +34,12 @@ if [ "$WORKER_MODE" == "futuregrid" ] && [ -f "$SWIFTVM_INSTANCES" ]; then for INSTANCE in `cat $SWIFTVM_INSTANCES` do - $SWIFTVMBOOT_DIR/ve/bin/cloudinitd terminate $INSTANCE + $SWIFTVMBOOT_DIR/futuregrid/ve/bin/cloudinitd terminate $INSTANCE done rm $SWIFTVM_INSTANCES > /dev/null 2>&1 fi -if [ "$WORKER_MODE" == "ec2" ] && [ -f "$SWIFTVM_INSTANCES" ]; then +if [ "$WORKER_MODE" == "gp" ] && [ -f "$SWIFTVM_INSTANCES" ]; then for INSTANCE in `cat $SWIFTVM_INSTANCES` do echo Stopping ec2 instance $INSTANCE... @@ -49,9 +49,20 @@ rm $SWIFTVM_INSTANCES > /dev/null 2>&1 fi -if [ -f "$HOME/.swift/.machines" ]; then - rm "$HOME/.swift/.machines" +if [ "$WORKER_MODE" == "ec2" ] && [ -f "$SWIFTVM_INSTANCES" ]; then + export EC2_HOME="$SWIFTVMBOOT_DIR/ec2" + export EC2_PRIVATE_KEY="$EC2_KEYFILE" + export EC2_CERT="$EC2_CERTFILE" + INSTANCES_AS_STRING=$( cat $SWIFTVM_INSTANCES | tr "\\n" " ") + $SWIFTVMBOOT_DIR/ec2/bin/ec2-terminate-instances $INSTANCES_AS_STRING + if [ -f "$HOME/.swift/.swiftvm_instances" ]; then + rm $HOME/.swift/.swiftvm_instances + fi fi +if [ -f "$HOME/.swift/machines" ]; then + rm "$HOME/.swift/machines" +fi + popd > /dev/null 2>&1 echo Done Added: trunk/tests/providers =================================================================== --- trunk/tests/providers (rev 0) +++ trunk/tests/providers 2011-12-24 17:12:38 UTC (rev 5472) @@ -0,0 +1 @@ +link sites \ No newline at end of file Property changes on: trunk/tests/providers ___________________________________________________________________ Added: svn:special + * From davidk at ci.uchicago.edu Sat Dec 24 18:21:16 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 24 Dec 2011 18:21:16 -0600 (CST) Subject: [Swift-commit] r5473 - in branches/release-0.93: etc/sites examples/misc tests tests/sites/local Message-ID: <20111225002116.6E9359CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-24 18:21:16 -0600 (Sat, 24 Dec 2011) New Revision: 5473 Added: branches/release-0.93/examples/misc/data.txt branches/release-0.93/tests/providers Removed: branches/release-0.93/etc/sites/OLD/ Modified: branches/release-0.93/etc/sites/intrepid branches/release-0.93/tests/sites/local/sites.template.xml branches/release-0.93/tests/sites/local/tc.template.data branches/release-0.93/tests/suite.sh Log: Various fixes for test suite Modified: branches/release-0.93/etc/sites/intrepid =================================================================== --- branches/release-0.93/etc/sites/intrepid 2011-12-24 17:12:38 UTC (rev 5472) +++ branches/release-0.93/etc/sites/intrepid 2011-12-25 00:21:16 UTC (rev 5473) @@ -1,3 +1,5 @@ + + @@ -4,7 +6,6 @@ _WORK_ - 0.04 file @@ -12,7 +13,6 @@ - _HOST_ _PROJECT_ _QUEUE_ @@ -23,7 +23,7 @@ 1 DEBUG 1 - 900 + 900 64 64 _WORK_ Added: branches/release-0.93/examples/misc/data.txt =================================================================== --- branches/release-0.93/examples/misc/data.txt (rev 0) +++ branches/release-0.93/examples/misc/data.txt 2011-12-25 00:21:16 UTC (rev 5473) @@ -0,0 +1 @@ +hello Added: branches/release-0.93/tests/providers =================================================================== --- branches/release-0.93/tests/providers (rev 0) +++ branches/release-0.93/tests/providers 2011-12-25 00:21:16 UTC (rev 5473) @@ -0,0 +1 @@ +link sites \ No newline at end of file Property changes on: branches/release-0.93/tests/providers ___________________________________________________________________ Added: svn:special + * Modified: branches/release-0.93/tests/sites/local/sites.template.xml =================================================================== --- branches/release-0.93/tests/sites/local/sites.template.xml 2011-12-24 17:12:38 UTC (rev 5472) +++ branches/release-0.93/tests/sites/local/sites.template.xml 2011-12-25 00:21:16 UTC (rev 5473) @@ -1,5 +1,5 @@ - + 10000 Modified: branches/release-0.93/tests/sites/local/tc.template.data =================================================================== --- branches/release-0.93/tests/sites/local/tc.template.data 2011-12-24 17:12:38 UTC (rev 5472) +++ branches/release-0.93/tests/sites/local/tc.template.data 2011-12-25 00:21:16 UTC (rev 5473) @@ -1,8 +1,8 @@ -local echo /bin/echo INSTALLED INTEL32::LINUX -local cat /bin/cat INSTALLED INTEL32::LINUX -local ls /bin/ls INSTALLED INTEL32::LINUX -local grep /bin/grep INSTALLED INTEL32::LINUX -local sort /bin/sort INSTALLED INTEL32::LINUX -local paste /bin/paste INSTALLED INTEL32::LINUX -local wc /usr/bin/wc INSTALLED INTEL32::LINUX +localhost echo /bin/echo INSTALLED INTEL32::LINUX +localhost cat /bin/cat INSTALLED INTEL32::LINUX +localhost ls /bin/ls INSTALLED INTEL32::LINUX +localhost grep /bin/grep INSTALLED INTEL32::LINUX +localhost sort /bin/sort INSTALLED INTEL32::LINUX +localhost paste /bin/paste INSTALLED INTEL32::LINUX +localhost wc /usr/bin/wc INSTALLED INTEL32::LINUX Modified: branches/release-0.93/tests/suite.sh =================================================================== --- branches/release-0.93/tests/suite.sh 2011-12-24 17:12:38 UTC (rev 5472) +++ branches/release-0.93/tests/suite.sh 2011-12-25 00:21:16 UTC (rev 5473) @@ -962,7 +962,7 @@ elif [ -f "$GROUP/gensites.template" ]; then TEMPLATE=`$GROUP/gensites.template` else - TEMPLATE="$TESTDIR/sites/localhost.xml" + TEMPLATE="$TESTDIR/sites/local/sites.template.xml" fi # Give default to _WORK_ if undefined in swift.properties From davidk at ci.uchicago.edu Sat Dec 24 20:45:31 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sat, 24 Dec 2011 20:45:31 -0600 (CST) Subject: [Swift-commit] r5474 - trunk/tests Message-ID: <20111225024531.68CC19CC8F@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-24 20:45:31 -0600 (Sat, 24 Dec 2011) New Revision: 5474 Modified: trunk/tests/suite.sh Log: Fix gensite template issue for suite Modified: trunk/tests/suite.sh =================================================================== --- trunk/tests/suite.sh 2011-12-25 00:21:16 UTC (rev 5473) +++ trunk/tests/suite.sh 2011-12-25 02:45:31 UTC (rev 5474) @@ -977,9 +977,9 @@ if [ -f "$GROUP/sites.template.xml" ]; then TEMPLATE="$GROUP/sites.template.xml" elif [ -f "$GROUP/gensites.template" ]; then - TEMPLATE=`$GROUP/gensites.template` + TEMPLATE=$( cat $GROUP/gensites.template ) else - TEMPLATE="$TESTDIR/sites/localhost.xml" + TEMPLATE="$TESTDIR/sites/local/sites.template.xml" fi # Give default to _WORK_ if undefined in swift.properties From ketan at ci.uchicago.edu Sun Dec 25 00:09:25 2011 From: ketan at ci.uchicago.edu (ketan at ci.uchicago.edu) Date: Sun, 25 Dec 2011 00:09:25 -0600 (CST) Subject: [Swift-commit] r5475 - branches/release-0.93/docs/userguide Message-ID: <20111225060925.4FDE49CC8F@svn.ci.uchicago.edu> Author: ketan Date: 2011-12-25 00:09:25 -0600 (Sun, 25 Dec 2011) New Revision: 5475 Modified: branches/release-0.93/docs/userguide/troubleshooting branches/release-0.93/docs/userguide/userguide.txt Log: troubleshooting Modified: branches/release-0.93/docs/userguide/troubleshooting =================================================================== --- branches/release-0.93/docs/userguide/troubleshooting 2011-12-25 02:45:31 UTC (rev 5474) +++ branches/release-0.93/docs/userguide/troubleshooting 2011-12-25 06:09:25 UTC (rev 5475) @@ -19,7 +19,7 @@ $ export PATH=/bin:$PATH ----- -Note: If you are running Swift on a system where it is installed as a module, do module load swift. For instance: +Note: If you are running Swift on a system where it is installed as a module, do module load swift. For instance, on the Beagle supercomputer, Swift is loaded as follows: ---- $ module load swift Modified: branches/release-0.93/docs/userguide/userguide.txt =================================================================== --- branches/release-0.93/docs/userguide/userguide.txt 2011-12-25 02:45:31 UTC (rev 5474) +++ branches/release-0.93/docs/userguide/userguide.txt 2011-12-25 06:09:25 UTC (rev 5475) @@ -39,3 +39,5 @@ include::cdm[] include::log-processing[] + +include::troubleshooting[] From davidk at ci.uchicago.edu Sun Dec 25 16:59:47 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Sun, 25 Dec 2011 16:59:47 -0600 (CST) Subject: [Swift-commit] r5476 - trunk/tests/sites/local Message-ID: <20111225225947.775BB9CC82@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-25 16:59:46 -0600 (Sun, 25 Dec 2011) New Revision: 5476 Modified: trunk/tests/sites/local/sites.template.xml trunk/tests/sites/local/tc.template.data Log: Fix for trunk tests Modified: trunk/tests/sites/local/sites.template.xml =================================================================== --- trunk/tests/sites/local/sites.template.xml 2011-12-25 06:09:25 UTC (rev 5475) +++ trunk/tests/sites/local/sites.template.xml 2011-12-25 22:59:46 UTC (rev 5476) @@ -1,5 +1,5 @@ - + 10000 Modified: trunk/tests/sites/local/tc.template.data =================================================================== --- trunk/tests/sites/local/tc.template.data 2011-12-25 06:09:25 UTC (rev 5475) +++ trunk/tests/sites/local/tc.template.data 2011-12-25 22:59:46 UTC (rev 5476) @@ -1,8 +1,8 @@ -local echo /bin/echo INSTALLED INTEL32::LINUX -local cat /bin/cat INSTALLED INTEL32::LINUX -local ls /bin/ls INSTALLED INTEL32::LINUX -local grep /bin/grep INSTALLED INTEL32::LINUX -local sort /bin/sort INSTALLED INTEL32::LINUX -local paste /bin/paste INSTALLED INTEL32::LINUX -local wc /usr/bin/wc INSTALLED INTEL32::LINUX +localhost echo /bin/echo INSTALLED INTEL32::LINUX +localhost cat /bin/cat INSTALLED INTEL32::LINUX +localhost ls /bin/ls INSTALLED INTEL32::LINUX +localhost grep /bin/grep INSTALLED INTEL32::LINUX +localhost sort /bin/sort INSTALLED INTEL32::LINUX +localhost paste /bin/paste INSTALLED INTEL32::LINUX +localhost wc /usr/bin/wc INSTALLED INTEL32::LINUX From lgadelha at ci.uchicago.edu Mon Dec 26 05:46:39 2011 From: lgadelha at ci.uchicago.edu (lgadelha at ci.uchicago.edu) Date: Mon, 26 Dec 2011 05:46:39 -0600 (CST) Subject: [Swift-commit] r5477 - provenancedb Message-ID: <20111226114639.4A1859CC8F@svn.ci.uchicago.edu> Author: lgadelha Date: 2011-12-26 05:46:38 -0600 (Mon, 26 Dec 2011) New Revision: 5477 Removed: provenancedb/compare_run.py Modified: provenancedb/ProvSQL.g provenancedb/pql_functions.sql provenancedb/prov-init.sql Log: Minor updates Modified: provenancedb/ProvSQL.g =================================================================== --- provenancedb/ProvSQL.g 2011-12-25 22:59:46 UTC (rev 5476) +++ provenancedb/ProvSQL.g 2011-12-26 11:46:38 UTC (rev 5477) @@ -443,7 +443,7 @@ | LIKE { - whereClause += " BETWEEN "; + whereClause += " LIKE "; } h=STRING { @@ -715,7 +715,7 @@ ; STRING - : '\'' ( 'a'..'z' | 'A'..'Z' | '_' | '-' | '0'..'9' | '.')* '\'' + : '\'' ( 'a'..'z' | 'A'..'Z' | '_' | '-' | '0'..'9' | '.' | '%')* '\'' ; NEWLINE : '\r' ? '\n'; Deleted: provenancedb/compare_run.py =================================================================== --- provenancedb/compare_run.py 2011-12-25 22:59:46 UTC (rev 5476) +++ provenancedb/compare_run.py 2011-12-26 11:46:38 UTC (rev 5477) @@ -1,27 +0,0 @@ -#!/usr/bin/env python - -import sys -selectClause = 'SELECT run_id' -fromClause = 'FROM' -nId = 0 -for arg in sys.argv: - argTokens = arg.partition('=') - - if argTokens[0] == 'annot_num' or argTokens[0] == 'annot_txt' or argTokens[0] == 'param': - key = argTokens[2] - nId+=1 - sId = 'j%s' % nId - selectClause += ', ' + sId + '.value as ' + key - if nId>1: - fromClause += ' INNER JOIN' - fromClause += ' compare_run_by_' + argTokens[0] + '(\'' + key + '\') as ' + sId - if nId>1: - fromClause += ' USING (run_id)' - -query = selectClause + ' ' + fromClause + ';' - -print query - - - - Modified: provenancedb/pql_functions.sql =================================================================== --- provenancedb/pql_functions.sql 2011-12-25 22:59:46 UTC (rev 5476) +++ provenancedb/pql_functions.sql 2011-12-26 11:46:38 UTC (rev 5477) @@ -165,6 +165,32 @@ WHERE run.id=a_run_n.run_id and a_run_n.name=$1 $$ LANGUAGE SQL; +DROP TYPE compare_run_by_key_numeric_type; +CREATE TYPE compare_run_by_key_numeric_type as (run_id VARCHAR, name VARCHAR, value NUMERIC); + +CREATE OR REPLACE FUNCTION compare_run_by_key_numeric(name VARCHAR) +RETURNS SETOF compare_run_by_key_numeric_type +AS $$ + SELECT proc.run_id, a_ds_n.name, a_ds_n.value + FROM a_ds_n,ds_use,ds_cont,proc + WHERE a_ds_n.ds_id=ds_cont.in_id AND ds_cont.out_id=ds_use.ds_id AND + ds_use.proc_id=proc.id AND a_ds_n.name=$1 + UNION + SELECT proc.run_id, a_ds_n.name, a_ds_n.value + FROM proc, ds_use, a_ds_n + WHERE proc.id=ds_use.proc_id and ds_use.ds_id=a_ds_n.ds_id and + a_ds_n.name=$1 + UNION + SELECT proc.run_id, a_proc_n.name, a_proc_n.value + FROM proc, a_proc_n + WHERE proc.id=a_proc_n.proc_id and a_proc_n.name=$1 + UNION + SELECT run.id as run_id, a_run_n.name, a_run_n.value + FROM run, a_run_n + WHERE run.id=a_run_n.run_id and a_run_n.name=$1 +$$ LANGUAGE SQL; + + DROP TYPE compare_run_by_annot_txt_type; CREATE TYPE compare_run_by_annot_txt_type as (run_id VARCHAR, name VARCHAR, value VARCHAR); @@ -190,7 +216,31 @@ WHERE run.id=a_run_t.run_id and a_run_t.name=$1 $$ LANGUAGE SQL; +DROP TYPE compare_run_by_key_text_type; +CREATE TYPE compare_run_by_key_text_type as (run_id VARCHAR, name VARCHAR, value VARCHAR); +CREATE OR REPLACE FUNCTION compare_run_by_key_text(name VARCHAR) +RETURNS SETOF compare_run_by_key_text_type +AS $$ + SELECT proc.run_id, a_ds_t.name, a_ds_t.value + FROM a_ds_t,ds_use,ds_cont,proc + WHERE a_ds_t.ds_id=ds_cont.in_id AND ds_cont.out_id=ds_use.ds_id AND + ds_use.proc_id=proc.id AND a_ds_t.name=$1 + UNION + SELECT proc.run_id, a_ds_t.name, a_ds_t.value + FROM proc, ds_use, a_ds_t + WHERE proc.id=ds_use.proc_id and ds_use.ds_id=a_ds_t.ds_id and + a_ds_t.name=$1 + UNION + SELECT proc.run_id, a_proc_t.name, a_proc_t.value + FROM proc, a_proc_t + WHERE proc.id=a_proc_t.proc_id and a_proc_t.name=$1 + UNION + SELECT run.id as run_id, a_run_t.name, a_run_t.value + FROM run, a_run_t + WHERE run.id=a_run_t.run_id and a_run_t.name=$1 +$$ LANGUAGE SQL; + -- CREATE OR REPLACE FUNCTION compare_run_by_annot_num(name VARCHAR) -- RETURNS TABLE ( -- workflow_id VARCHAR, Modified: provenancedb/prov-init.sql =================================================================== --- provenancedb/prov-init.sql 2011-12-25 22:59:46 UTC (rev 5476) +++ provenancedb/prov-init.sql 2011-12-26 11:46:38 UTC (rev 5477) @@ -32,7 +32,10 @@ cog_version varchar(16), final_state varchar(16), start_time numeric, - duration numeric + duration numeric, + script_source text, + tc_file text, + sites_file text ); -- process gives information about each process (in the OPM sense) @@ -42,7 +45,7 @@ -- has an entry for this process. -- process types: internal, rootthread, execute, function, compound, scope, operator create table proc - (id varchar(256) primary key, + (id varchar(256) primary key, type varchar(16), name varchar(256), -- in the case of an execute this refers to the transformation name in tc.data run_id varchar(256) references run (id) on delete cascade -- normalize: workflow_id of sub-procedure determined From lgadelha at ci.uchicago.edu Fri Dec 30 09:21:10 2011 From: lgadelha at ci.uchicago.edu (lgadelha at ci.uchicago.edu) Date: Fri, 30 Dec 2011 09:21:10 -0600 (CST) Subject: [Swift-commit] r5478 - provenancedb Message-ID: <20111230152110.881589CC8F@svn.ci.uchicago.edu> Author: lgadelha Date: 2011-12-30 09:21:09 -0600 (Fri, 30 Dec 2011) New Revision: 5478 Modified: provenancedb/pql_functions.sql Log: Minor changes. Modified: provenancedb/pql_functions.sql =================================================================== --- provenancedb/pql_functions.sql 2011-12-26 11:46:38 UTC (rev 5477) +++ provenancedb/pql_functions.sql 2011-12-30 15:21:09 UTC (rev 5478) @@ -84,9 +84,9 @@ drop view ds_use cascade; create view ds_use as - select * from ds_in + select *,'I' as direction from ds_in union all - select * from ds_out; + select *,'O' as direction from ds_out; From vytas at ci.uchicago.edu Wed Dec 7 12:38:33 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 18:38:33 -0000 Subject: [Swift-commit] r5351 - wwwdev/images/rotator Message-ID: <20111207183705.198889CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 12:37:04 -0600 (Wed, 07 Dec 2011) New Revision: 5351 Added: wwwdev/images/rotator/bg_rotator2a.jpg Log: new image for rotator Added: wwwdev/images/rotator/bg_rotator2a.jpg =================================================================== (Binary files differ) Property changes on: wwwdev/images/rotator/bg_rotator2a.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From vytas at ci.uchicago.edu Wed Dec 7 12:45:10 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 18:45:10 -0000 Subject: [Swift-commit] r5352 - wwwdev/inc Message-ID: <20111207184342.47DF79CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 12:43:42 -0600 (Wed, 07 Dec 2011) New Revision: 5352 Modified: wwwdev/inc/main_rotator.php Log: added new image to frame 2 Modified: wwwdev/inc/main_rotator.php =================================================================== --- wwwdev/inc/main_rotator.php 2011-12-07 18:37:04 UTC (rev 5351) +++ wwwdev/inc/main_rotator.php 2011-12-07 18:43:42 UTC (rev 5352) @@ -1,6 +1,6 @@ From vytas at ci.uchicago.edu Wed Dec 7 12:46:20 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 18:46:20 -0000 Subject: [Swift-commit] r5353 - wwwdev/inc Message-ID: <20111207184452.8ED979CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 12:44:52 -0600 (Wed, 07 Dec 2011) New Revision: 5353 Modified: wwwdev/inc/main_rotator.php Log: corrected link path Modified: wwwdev/inc/main_rotator.php =================================================================== --- wwwdev/inc/main_rotator.php 2011-12-07 18:43:42 UTC (rev 5352) +++ wwwdev/inc/main_rotator.php 2011-12-07 18:44:52 UTC (rev 5353) @@ -1,6 +1,6 @@ From vytas at ci.uchicago.edu Wed Dec 7 12:47:31 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 18:47:31 -0000 Subject: [Swift-commit] r5354 - wwwdev/inc Message-ID: <20111207184603.720E09CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 12:46:03 -0600 (Wed, 07 Dec 2011) New Revision: 5354 Modified: wwwdev/inc/main_rotator.php Log: corrected link path Modified: wwwdev/inc/main_rotator.php =================================================================== --- wwwdev/inc/main_rotator.php 2011-12-07 18:44:52 UTC (rev 5353) +++ wwwdev/inc/main_rotator.php 2011-12-07 18:46:03 UTC (rev 5354) @@ -1,6 +1,6 @@ From vytas at ci.uchicago.edu Wed Dec 7 13:00:08 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 19:00:08 -0000 Subject: [Swift-commit] r5355 - in wwwdev: images/rotator inc Message-ID: <20111207185839.CF2C39CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 12:58:39 -0600 (Wed, 07 Dec 2011) New Revision: 5355 Added: wwwdev/images/rotator/bg_rotator3a.jpg Modified: wwwdev/inc/main_rotator.php Log: new image for frame three of the rotator - updated rotator to use new image Added: wwwdev/images/rotator/bg_rotator3a.jpg =================================================================== (Binary files differ) Property changes on: wwwdev/images/rotator/bg_rotator3a.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: wwwdev/inc/main_rotator.php =================================================================== --- wwwdev/inc/main_rotator.php 2011-12-07 18:46:03 UTC (rev 5354) +++ wwwdev/inc/main_rotator.php 2011-12-07 18:58:39 UTC (rev 5355) @@ -1,7 +1,7 @@ I'm A Caption: I can have links, style or anything that is valid markup :) From vytas at ci.uchicago.edu Wed Dec 7 13:05:31 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 19:05:31 -0000 Subject: [Swift-commit] r5356 - wwwdev/inc Message-ID: <20111207190403.0F3F09CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 13:04:02 -0600 (Wed, 07 Dec 2011) New Revision: 5356 Modified: wwwdev/inc/case_study_sidebar.php Log: added case study titles and links - last link still needs to be added Modified: wwwdev/inc/case_study_sidebar.php =================================================================== --- wwwdev/inc/case_study_sidebar.php 2011-12-07 18:58:39 UTC (rev 5355) +++ wwwdev/inc/case_study_sidebar.php 2011-12-07 19:04:02 UTC (rev 5356) @@ -1,9 +1,9 @@

    More Case Studies

    \ No newline at end of file From vytas at ci.uchicago.edu Wed Dec 7 13:10:32 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 19:10:32 -0000 Subject: [Swift-commit] r5357 - wwwdev/case_studies Message-ID: <20111207190904.0455F9CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 13:09:03 -0600 (Wed, 07 Dec 2011) New Revision: 5357 Modified: wwwdev/case_studies/index.php Log: added image call to first listing (placeholder) Modified: wwwdev/case_studies/index.php =================================================================== --- wwwdev/case_studies/index.php 2011-12-07 19:04:02 UTC (rev 5356) +++ wwwdev/case_studies/index.php 2011-12-07 19:09:03 UTC (rev 5357) @@ -23,6 +23,7 @@

    Energy/Climate/Economics Modelling

    + Energy/Climate/Economics Modelling

    The CIM-EARTH project develops a large-scale integrated modeling framework for decision makers in climate and energy policy. (Foster, Elliott)

    learn more

     

    From davidk at ci.uchicago.edu Fri Dec 9 11:35:59 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 09 Dec 2011 17:35:59 -0000 Subject: [Swift-commit] r5394 - wwwdev/papers Message-ID: <20111209173248.2EA3A9D025@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-09 11:32:47 -0600 (Fri, 09 Dec 2011) New Revision: 5394 Added: wwwdev/papers/767_fta.pdf wwwdev/papers/armstrong-masters.pdf wwwdev/papers/highresclimatedata.pdf wwwdev/papers/openmx.pdf wwwdev/papers/subsurface.pdf wwwdev/papers/tg2011_portal.pdf Modified: wwwdev/papers/index.php Log: Added more papers and reorganized a bit Added: wwwdev/papers/767_fta.pdf =================================================================== --- wwwdev/papers/767_fta.pdf (rev 0) +++ wwwdev/papers/767_fta.pdf 2011-12-09 17:32:47 UTC (rev 5394) @@ -0,0 +1,8111 @@ +%PDF-1.5 +%???? +106 0 obj +<< +/Linearized 1.0 +/O 108 +/H [ 1741 759 ] +/L 923104 +/E 50163 +/N 15 +/T 920939 +>> +endobj + xref +106 66 +0000000015 00000 n +0000001653 00000 n +0000002500 00000 n +0000002715 00000 n +0000002973 00000 n +0000003011 00000 n +0000005684 00000 n +0000006241 00000 n +0000006685 00000 n +0000009919 00000 n +0000010424 00000 n +0000010883 00000 n +0000014210 00000 n +0000014915 00000 n +0000015060 00000 n +0000015382 00000 n +0000015661 00000 n +0000016513 00000 n +0000016693 00000 n +0000016761 00000 n +0000017048 00000 n +0000017279 00000 n +0000017476 00000 n +0000017642 00000 n +0000017859 00000 n +0000018126 00000 n +0000018769 00000 n +0000018958 00000 n +0000019475 00000 n +0000027889 00000 n +0000028297 00000 n +0000028553 00000 n +0000029734 00000 n +0000030217 00000 n +0000030616 00000 n +0000033606 00000 n +0000034091 00000 n +0000034307 00000 n +0000034700 00000 n +0000035004 00000 n +0000038125 00000 n +0000038302 00000 n +0000038360 00000 n +0000038646 00000 n +0000038863 00000 n +0000039095 00000 n +0000039620 00000 n +0000039784 00000 n +0000040152 00000 n +0000040429 00000 n +0000041954 00000 n +0000042170 00000 n +0000042285 00000 n +0000042573 00000 n +0000042843 00000 n +0000044292 00000 n +0000044362 00000 n +0000045025 00000 n +0000045638 00000 n +0000046407 00000 n +0000047242 00000 n +0000047981 00000 n +0000048867 00000 n +0000049703 00000 n +0000001741 00000 n +0000002479 00000 n +trailer +<< +/Size 172 +/Root 107 0 R +/ID[<94311FF7D8631E93A171AF7BE35DDFCE><08DB152E6F17DF37C45382BA17662C55>] +/Info 102 0 R +/Prev 920929 +>> +startxref +0 +%%EOF +107 0 obj +<> +endobj +170 0 obj +<> +stream +x?c```f``;???? j? ??B at 1v?7?, L< ? ? ??!??'V??????a???Vs????'?c?q(h?????p?????O??6???lVkb??q??i??6??? ??&j????\?&7Ec?/?? +????#??~?,f?e????????a??#?)?b??????*?mx??+?23??/ ??O?xf5? ,Lf??1(d +????;\???d?^Gf???G?H?? +?t????Y??3sK#?H?'?s?????:?\V]????,?s???K?c????bNn^~!?C?aas??F????3?2?T2?VGl-??Q&?J???. ?FUt@?????bb??D?????? ?[ ??W??W?a????O%???]@?\m?[??B???A?3??A?#\>{?L<?J??W(???3?a?????????H?q X? +?? ]?*????W??????!????? ??? +2qpX?gJ???k,a.p??0[OCF@?1????e1????/?D??^d???????????C??%???i?j`??a???a2?q?^??F]N????:??~+???*??w???q??2p)F?L"??? A ?d?Z?U0Ep???}? ?he?4?3?1+@?08?? +endstream +endobj +171 0 obj +644 +endobj +108 0 obj +<< +/Type/Page +/Resources 109 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents [162 0 R +163 0 R +164 0 R +165 0 R +166 0 R +167 0 R +168 0 R +169 0 R +] +/Parent 100 0 R +/Thumb 82 0 R +>> +endobj +109 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +110 0 obj +[/ICCBased +111 0 R +] +endobj +111 0 obj +<>stream +H???yTSw?o??????c +[???5la?QIBH?ADED???2?mtFOE?.?c??}???0??8????8G?Ng?????9?w?????????'????0 ????J??b?  + 2y?.-;!???K?Z? ???^?i?"L??0???-?? +@8(??r?;q??7?L??y??&?Q??q?4?j???|?9?? +?V??)g?B?0?i?W??8#?8w????8_?????Q????Q?j@?&?A)/??g?>'K???t?;\?? +??$??F?ZUn????(4T?%)????0C&?????Z??i????8??bx??E???B?;?????P????????A? om??W= +?x??????-?????[???0?????}??y)7ta?????>j???T?7???@????t???`q?2??????&???6??Z?L?????_??yxg)??z?????L?U???*?u?Sk?Se?O4????c????.??? ??R? +????-??2?5?????? ??S?>??V????d?`r??n~??Y?&?+`??;?A4?? ????A9?=?-?t??l?`;??~p???? ?Gp| ??[`L??`<? "A ? YA?+??Cb(??R?,?*?T?2B-? +??????n???Q?t?}MA????0?al??????S?x ??k?&?^???>?0|>_?'???,?G!"F$H:R??!z??F?Qd?r 9?\A&?G? ??rQ ??h??????E??]?a?4z?Bg?????E#H ?*B=??0H?I??p?p?0MxJ$?D1??D, V?????????K???Y?dE?"E??I2???E?B?G??t?4MzN?????r!YK? ????%_&?#???(??0J:EAi??Q?(?()??WT6U@???P+???!?~??m???D ?e?????!??h???h/??']B/??????????a0n?hF!??X???8??????k?c&5S?????6?l??Ia?2c?K?M?A?!?E?#?????d?V??(?k??e???l +????}?}?C??q?9 +N'??)?].?u?J?r? +?? w?G? xR^???[?o??ch?g?`>b???$?????*~? ?:????E???b??~???,m,?-????,?Y??????*?6X?[??F?=?3????Y??~d?? ???t???i ?z?f?6?~`{?v???.?Ng?????#{?}?}????????j??????c1X6???fm???;'_9 ?r?:?8?q?:?????O:??8??????u??Jq???nv=???M?????m????R 4 ? +n?3???k?G??z=??[=???=?TB(?/?S??,]6*?-???W:#??7?*???e??^YDY?}U?j??AyT?`?#?D=???"?b{?????+???:?!kJ4G?m??t?}uC?%???K7YV??fF???Y ?.?=b???S?????????????y??? +?? ???k?5%4??m?7?lqlio?Z?lG+?Z?z?????mzy??]??????u?u?w|?"??N????wW&???e?????*|????j???5k??y???????g???^y?kEk?????l?D_p????????7Dm????o???1m??l?{??M??? +n?L?l?<9??O?[????$?????h???B????????d???@????????i???G???&????v???V???8????????n???R???7???????u???\???D???-???????u???`???K???8???%???????y???h???Y???J???;???.???!?????? +?????z???p???g???_???X???Q???K???F???A???=???:???8???6???5???5???6???7???9???> +endobj +113 0 obj +<> +endobj +114 0 obj +<>stream +H?tUmPSg?!?o>??7j?7E?A0!?D[%| +?%ZE4?(Q? +Vh????????*~u?V?V???RE?%???u?V?~?L?\Y????}?h ??U8 ??????? ??? +C???'1C? ????`??;\???c???}6D?`2?Jr??????????@?k?f8???~???y???C????????6?s?l*? *V??n?q?)\c?X'??????G??? +p? *?$?jZ?U?qx?axFx~ +p +=????????????m?_5?Z +??[?c???M??p.?Q??s???FTO???"L[q??h??&T????j??M??B?a? aU?%?j1`)xS???P???????TO?j?&P??!>D(0M??e?????gb FD.??P ?Z?Zl??.?????? }??,Q-q??? .S?e0?s??EF?0 at 74c7?s)??? ??????on???*?A?k ??? ?\???pJ???XH???B~?U?#?*???????M??O?B#?? 6` m??hd?X? ??c??Zq/?p?? ??&??*???\?????B??R??*eG? +r?????E=Q?? n??K?&?{??t4MT?Q x0?GI??+??~?????QxU???`"???*)@?,&????w*r??R?O??????bn?????1t?e?%?U?{??=?j/? l?????!?p??# +0s~?????C?/lL??mL?a ??s????:?ZX???0fa??eu??G?o?jn|{??~???}D?|=???[?[?p?JW??j?X?b?1? +??+X??,?9?#/z?????@???QC<#?=?f!??CT?6?Kq?4??le1?@>cU?Vl??I????#|?\?&? +(??,????|H-?U???,????? + ??`?[????j?MS??tt?@???+?'7?A??9zw0& +9???8???????)???o?'OF??fJ?????[???????D?????_ ???pMT??y????????r45[4?????/??E?4? ??Q??j?,?P +S?jP?@7 c??f?-?c?j???????)?Oj?hA???XyP????????T?&&???aZ?]:?*w?no?=?mS?i?"v0??|??#?57?>?e[~/G?[G??bXF???9c????????pu?[?yS6?k??????{??ci?????S?ox??? +D?;??tr?????^?? ? ???Kb???s}>=?*Z?z???2??B???Hr?;h*??????? ???????.[?h?kpr5??Yx?????7??9? ?Ii???"~?? ?E?\??H???? +l ?O3"c +{\??m ??4??e?q?C(???(s^`?????????9?F`????O???7X???hB0Td9\aH,?d0????=%???????nk?WXf??4?`73 p+???`??????V}?? ?? + +endstream +endobj +115 0 obj +<> +endobj +116 0 obj +<> +endobj +117 0 obj +<>stream +H?tUkPW?a???6?l?8?3?A@2? ??BD?"? ???%&D?D??I???c7??#???&U> +??A?AqP1? >b0??3[?~el??{O????w?w??2?????do/2%??'??+???6??6???42?[??`,zs?q???=???}?|?D?E&;r?\V??Z???J1wza?A ??? ?{T?? FE?????1sKE?em??p]a????ZPi) +???R1c,D??a??X7Ro??t?????@,? ?JkA?em?u?X?JL)YWV???HA?b\?X??hf?U,?*6??()*)??X*?~? #c8?q?1??d|?/c]?09?0?2&?aL +&??1?j0??6????d?#s?y??dkdg\?\?\6??v?g?O?/??\???]?]{]??.l??V?5??l?L????? 7?[???r??"G?_q???-???[??cww?=?}??Y?7??_z?{HJ?2U?]??????o?f?tai???I??????n7?? ? '???S7?????????????b ??????????????sL??? m??????^| +?aI_???g?? ???FK?Y???cM?,^????r???{??? +? F +???`m?E?wq??|}~B?1t+? ???j0????L?b?W8 +c?h\????W??????9y?9??/?\?^????/@??6l&?0??????u??M??ck"|3?0? ???!?!? +V??U?C?C??h-$?/??b??;?`"???'??Z???????9l??&R??x?*?t???0F!?:rx??????????`?? ???E?F???GB??#??5o???????????????{?50?=?3P?~TW????\? +5L +????cD?n?yP???D??R?Rd??co??:^????q?Qp g?`?O?38?R???????V; ??,t??|?6???x???]b ????6??????????O +D=?`????eY??Ku5u +???F?C?4A???m???s???.?J`????6t?`^:.??h?'f?*H??W0i?s??M+K*??X?}?w????? +???I?????????C???m?Sa'?? +8S?G?? +r??m-mm?cc???a)??I?/$7?_?????%E??wtx??_?`??????+?MWn????q&??'??vh??????? ???????????R?T*Dd?C?w??????~q?,-:?E@~?@xh`??4t +? +?]??Sf?m?????p??????????S5 ???t??T?K?R ???7?????R??a????v??iG?C.? u???????O5?GA?V?,?a??_g0??c,B??$??D?J?is??^??99?$?????Oe??????m?J?????&)?-6T? ??4 +??S??{??{??? D??[????H??/?Tx???????V????*?#/?? ?E???^???.??hiV?Z??w?OG?jH?rT8??~zH?l?sx???*??#?Aa?M?z?B;?????dq??8???R??????????D ?Y?A"n??????v?{hn&0????Qo?? M&??k??c???Q???/????>:l/y*???r?????S?G???? +KL?[??o??`?+???x8}??u +U?????????}?:wvn?yHQ?=:???H +$??Z|L?U???? ? ???A +?t?Nn5??~@?????pd?]?6?? 4?t??p +@D???^?\=???'???g?????|?? +?Pms?GC?x?z?+?Kp??xT?DsL?J???a?" ?_=?D:??????*????j????????u)???13Vjy,?l???Eq?uE??( +??H??K?5?[Q+ZwyX??????Z?*?i?@? [? + +?E?z??g?w??o??{?s?w?s???? +/Q(???3?a?t_t?q?!MME???V3?bS?qn?iVt??L??y'??c???1??v???Q??nL????-}~&?i2?`H?????? ???+??G??#? +?T???k?~?_?q??E??|???U?t?????R_???(_??o?????I\?Z???t`?r??^????E_?)+s??5???Nq? +#? ?????k??E3???!???V$T?|@?9????!???fYs+?ul?j?H?????x`?|>?.N]??{Kr%|N?W}[?l??y ]0?y????a??`%?????e2???S?F???c???{??d???t?g$K?? ????s??5?^???I?h?K???*5?N;?X\????Yvt????&???n?=??98*`?}?&0??? QG&4?5???C ???????A?h??? ??n?hyv???>???_B????????? ?ZxWmt?sN?:?4???e?n6???PwB?????????fxr{?dO^o?uJJ??UkU??tV5???)bb?7 + +endstream +endobj +118 0 obj +<> +endobj +119 0 obj +<> +endobj +120 0 obj +<>stream +H?TP=o? ?????Q??.R?~??v'`R?? B???I???????.??????Y?9!?\??]7?P???/?FQ??????9??W F}?@v%c?!Bc??K?????w?M|?wT??>{[1?$tQ>5?r??!?fn~?B?Z?We/??m?~?y?|??Nt~X + +endstream +endobj +121 0 obj +<> +endobj +122 0 obj +<>stream +H?L?]HQ????h???6A?8cA???JED?Z?Y??}QTD?n??????]/???63?????/!ADDEQ?I?P?'T???n?(q8????????a????m?[w??|????z?????K???%??=??t?[p???2]?S?8?)?8]K?k? +??zoC?:o??1?I0I??kh]F94??3-d???bq?H??F?uT???a??ietf??a???X?.:y???2U?q??fjx0h??:?:??fDC??"C??c?a??`?R"????A???????3????d?u???????a{K???Of&??~???#?:?!|}7 ??????o?e?3M?d??U*Dp_<,5??%?&5xh(18????g5?h@???1?i?!???JG%??&hyr1?Ebr??"~_?h2_(y +W?O|?K$-t.=?}?@y?I?E??Q}???????4D=0pjD:???z?????iw/???ydl???i?Zq?N?w?C???m??i55$?n7 %???^pH???????8? ?????{????#??.?UR(L? 1????7O???tXJ?D?Z +??q???$(?1??$???@P??t?, ~?de?+.H?> +endobj +124 0 obj +<> +endobj +125 0 obj +<>stream +H?TP?n?0 ??St?m?bx???6????D;jJ????qd?@??A????????hF???G +?AU??V??????G?I????G(?>_????+???C(?X?????K????}3???J???M?t?3??c???9B2????x??W*q`??i + +endstream +endobj +126 0 obj +<> +endobj +127 0 obj +<>stream +MBJPGK+AdvPS_SSYB? ?Y??o?q???? AdvPS_SSYB_3??????geqc'?_?M?F?!?kTlg?\????? d?m?????????? + +endstream +endobj +128 0 obj +<> +endobj +129 0 obj +<> +endobj +130 0 obj +<>stream +MBJPGL+AdvPSMP11? ????q??????[ +AdvPSMP11C}?????d??x??R?p?f?????,?^u? s at Z{\????????????th???(b?:d???????? +{??t????? ??g?)???????O??0JgPuy]?FZ + +endstream +endobj +131 0 obj +<> +endobj +132 0 obj +<> +endobj +133 0 obj +<> +endobj +134 0 obj +<>stream +H?\?iTSI?%?4??SxO??K?(????:.??EY$,?l`0!@?K ?@?/ dA? ??"???6m????q????t?)<3????????V?????:?&?i??dN??{??????}k???????Sg!??;s??u??? ??y???????s &??``??\??f#?`? 9??d0?9?N???.??L?y?y????iR?????'?t?t?gm`?]?Zv?????a?) ??;/v>???E?2>ux??i? ?I?l?G??gl?a??=S???z?nB7?[??~?q??Y=?=f??yL?8?1J??>?n??9??`.=??%?L??9?????K???e?z??????????Q?]1Iq???8?(?-??a?B}*??PlXqD???80????!???JQ ???y +????5Re%j?8??d]`?W?%????????f????????a?(?K9|?0%5~??q???:?????z??w???",?$?z?E??i b2o??????[rM??J?#?a?C??2??????????2?!???X?9??xR?=??{??3???$$' ?D&??P?E??xZ5?C;?$? +Mc_????|ul?%e?j?}?V?U????3$tH?a?#2?? ?]x????}?}M=?? ????u?J??????? ??Ck??d?????4+ +????-?_?????D??W????????=??????Rl??D ?g?f??\??^???55???S?yv?P$?H????? ?z?C?? +??J,&??d?b???y?????$g +?a?????m??'??tP???^>&??V??\?9?? +???"7? +?OE????%?U?Z??Z?!??8?j?;e%??9}?EK6k(ZB'K?`e??+$???N???????R???Z?f??QQ\?????I??P??MJ,?%?Faf5? ??o?v??[?????Q\k?~?? }*=???%?^MW??????r?e?????{???@?G) +e?????I$5KL? ??/}?[?n +??7???!??h=??s^? ?Cl???9?@B ?y???-[??[*lQ?g?????????+v????c,?*`????2?>?R?{???l?]R?V?"??Z??9?????d?????:???}????6??\F?????S?=??I1?z???"bh??#p +??]???[????????1{?0{?,j??u?2P??pLwD?3=8??0%D%M??s;?xS5??O?jU+? ^??N? 7J??o?o?S?7Y???W?#,???W?n0py?N??F????1?.?? ?a? O?1???^?[????????? ??R???8??1??{\$g>"W? +?E3kk=T??lk?????&???H?!?T???O??x???E$+??O?n]???,:g?*6?9.?7[d ]o?5+??4K? ?A???w?? +?????w??e\???G!?M??n=?:iCo?`???e?sZ2O.? ?A?`j??x5??! +v??J?`|? ??2????$???W??*8?#A??n??1,????9???'?????3+ ??&N????W^c7o?,]B??{??&?w)???{???o??????]???}??}?q??@???V?9??#??Ze???x +\5Edu?QW!?a???R??????P??{??p?{h????;<9+?"L??????8?b/?OH(!?{????5?{????v?Yk??P?)"??b*3?f??g$??E????p?(???P "??(?} $? ????????? +??^(?????7i%??n^???J He?DH????:5R????p?O???w4??@?????&??^?b=???nfc&k8??????Qz?[?a^??f?????H?Uji??????k?C???????K;R5?=\u?# UU?UQi)?F????? S???e?w?'??sn|{{?????????(????G{???y}??RJ*E?o? 8?????????+?A?J???T?F??a?`e??#???\??????E?y????????N?kF??[???N)??L?[,?&QX? 1????R?O?i??w?D*%?=lR I+ ZeW+? +.?%????Zx?k1?fl9?'????&?E?'?????i?R?9"2?b?\?Yg?I?{x??*?%?~???`5Y}`?X at WU?>3[T??T?Gt?a??>??? +??J?V?I99{?x/J?w1?gU??T?Q! ???t???6?J?d???? +?#67???],I????????2^?G:?O2ZHS;?4?e`]??=;??fFt????>??0??T\???n"J????????U????????IiT?4???;;H? 0z???DfW?F3????;??q??F?3??V]Cf??D????6?cqY??i)???%?;??.???o???? ?4?????8??Za?Wp?I???B?i ,??q?oC%???"Z???{h+,?v8Z?r{??N??b?l?zwLN'(??8=,???E??V???z>8=5L??$?]??Z0??^?$\?2;????????[r??l'!?fi? ??d?C??S%"?? +h????N???=?%??;^??B 6W"?dR?3=??? ?e??? ???$?)?c+?W?'??#???W???i?A???O1??YL/[[?g?+??Rh'\????t??????>z????????Xo/?????????\?? +;?XI???ye?????O?????y?M?OO????#???6???`?VL??????O??2y; +?(H?H?k*<?W{R?_>y??????"Nl?d?1t??`???N?#?????;7QW??????:?Mr??6u?q??^?;?Z??]r?z?@c??I?????V?F)!dI '??!~?qb??3????c?q?? ??$?;!??????P?]a]??CS[????i'LG???????~???'?l??m??2/g? ??rq.???s?m???v??3??????X??>)? ??.?l?.B?u????????\????7????N?_Q???.A=???????Bs#t???}?4Q#????}??P?|=&??^2??7L}?E??"s}???o$??_;???I??Q1??#.?F?????R??>,?S??????Sb?t??u??l???n'=???8?? '-h????????Zv3?e?????????>? +????#??O??BU9mMB?yz?????(? I?&X?y??V=i????3?f? ???Q??????9` +?j??P8ssp??<)?G??e???al?????H?p?????xl?D>??iE2g?4???cp,?j?Kk??m?????Z????>A?o????9^?o?a??k???6??=???EUH??ULmk]}%)?????G???????m]?n"?????!?T??0????Z?C?\?|???`??hS??OG???????k??mc?P?!?fQqs]?! +??|??GI?????&5g1pcl3?4d}?9}><2?j8??R?qA??o?u??? +?D??,s/2r??&!?E?g?_?8???h???/???3?????d~??X]6uAy??x12???|???O???<6????u?K???qX?n??B??:?A?????I???sQ?????Lq???g1????!ym??J;??!w?????B???Id??l?2a?lNwj '?(?? +a???? G?ni?????=?Hb????:rQ![l?BR?.?6V??????E:?????4????VW=???e?]"?v? Sr?t^??]??=qG???x?g???f??????,Q?I???F???}?pW? ?b~[?\4?M +m?+]:5=?oT)??? ?I!?f5[??z?E?Q??M`????`???T6?? + +^??q6????R?????9?+?+?K ?r??9j????#???w?r??.???D?iu}?n1?O???QI???? +??N?T????2???????????e7Qjc??juY??^??DH???e?{ +????]?p)}??+{T???'?X???? v?EL6(J???27P?F?W????F???T?h??7G?kr?< ???Zc???p+?s' +r??Z??t"?)R?RZ?R???Pp\ ??B????? +????21V?Y???.=??|G;?5??y?p?B?sfzrb?)[????f?3?O?K(-?h ?m??????Z???L??#??I?[T|,?*?N???yn????:?~??????S?^P??pN??(??F)??-r????????0=^:x;N? >?? ,??Ss?Bz.?D???5$Xy@?o??i?/w _zp!|??^????:????k?????1??d)k??.t??@???Q.??#?&?N???,0????ezy??aE???J?N??y??y?|~???????8R +?*?B6A??~? ??0;???3?A?t? +??o??????7X???M????n|?r??BC ?Xc???^z?|?)???nm??? +??????=j??!??}9????-????SS??o>??r???UB????\8??[?.p??9?V???0?,`????g?V+??%???????;?1????_?F}~~?+???j???6Tkh?i'????&??a?-????????;???gDU@???**!??!}^??*U4???b8G??????c?????????M???>??X^????/????-)E" +??;K?)pJt?:?`v]~l????7wo?w???Y6a??c>????x(3L??)?!?_s?tP??m\????@?15u????W??X>MQp?_`Y?N|???/??in?s????N??&?] uP?^????????} ?? +???!zHEN}????Ho??E?p??Ke??9?? ?S?}??"?+??I5ve)?4*????,???R?????B?[?C?;??)???%??t??{?^???u? +;d???|%{?????NM at qg*.HJ????B?K?.?A"!l??p??+;%????8???^?P2H??????J????'????? +swG??Q??a? +,????Q?+????%? +~?????qG=?K'??N_?/hy?? +j?=???h=?q$!=?????????????????-(???v1??~??g??:A?%Y$?E????b??ZyP?+T???m???v?z??????C?)|7?wS+????NE?8?>> +endobj +136 0 obj +<> +endobj +137 0 obj +<>stream +H?L?{PTe???????v??Yp????RIqY?DY?`?ea? ??lBs?H??Ihi?R?X$/?e???R???`?N?"??x?^???????|???rz??(6'd? +9??C?2?`d.??????1????Z??T?U??i??>*T??????????!p? ?H??????'???A3&?|?7kK? ??'??u?.x???8})-}??( ???????`7c%??Mp??L??^?>??~ov?????l??+????+l?z???y\ +?4? +??{???.? +42?????)??R^????* +?p?"????W5??,>?????[k%????????l????:?A???@??@xG?@???R???1???????!UqRX???qg7?i?p1???????>??????0n? A??+?~t?/??!6???W? ??I?%;9?w?x$lV wx1c??d_?rn}{|?`iy???q\k?u???\?"?.?\D??F*?1?????????$?A?zz????M?bk?3??!?8??X?J4)?%??E?I{?2S??o????O?Gj?????h@?@?D`/?1!?}??a??g ??X? 1;-?A:?? ??h ? + +endstream +endobj +138 0 obj +<> +endobj +139 0 obj +<> +endobj +140 0 obj +<>stream +H?|?TW?'!?~??N?f??A?h(E??,"T~?[?u?Zeu??+HPl??????U?????@k?,*?nU???a??mw??=g??????????????(????d?Sc??? +??[?<=>id?s?G?z??????????????|=n?w~r??#%??)?SNy?S:/j? ??ij???IQ?RxJA????4j?%u???,U?\vV?_>V?W?p?t u?u?RD)?)?*Z]t ?Ag?%??,???$?,'??q??f?????z??q]???????n!n?????rC?d??????_??,?!B +|`i??&???&>?#??P9??~??O??c??G3?????WZ? g.Z??R^,?[g??^*,?z(fmX?"????K?N??_:??0 =?)???? x?????Q`V??p4?L????? ?`????3?B9 S??zGr&Y?l???U??????Iy'x_???_{? \5?q3J?z??|?(?w3 ?????\???0?sUB6a??,??yn?@-??h???v?VesEu]?????}M?8?X +???C? mGCN???? ??^C6??7??"=?:?l????B ?? ?E?a??[????,? ??U?&L?fqpiw???Y?????i??????PHC? +??8|M?#5??_?>o? +?Cjx??? +<???}u)<0$.\?L???g?o???|?`?)???~Z\Q?;?qOs0D??|?????Qf???7?_*???????s??? +>???h??'\???/? +??????lb?????????n??2????? ?df0y?# +e?uL?#D(b!djn?V??P??13@??`D??4&???$?W?q?S"! `h?L????(??3???`!?@???F\???aF??p?&????7X??U(=`?&K?I?Z(?????0?&???[6q +a?4??????4?????A?hx??)?????Pt????|??????0|??M ??S=?:??{?????>%i???G???cn??QPGqp??9Aa9?>??PW?ufN???? +?!\ ???!???)???P?m??pZT?#xO0A#|O?q?8?Jn??????I{? ?,qZ/?????k%?Q??[???^3?B???L%8??m???$?? T?d\???]??J??&?? ??I?UA??p??dv4K???f???_???2+88a??7??:}??V?????Lo]\?^????,?*y??T??/????*T?????a????7?6??gS??I?J?8??y?~P??? +?)9?s??Rs???>??5?I???=FV2?`zS????+D???f??G?.??hV??????XP???ys?eW.??p??aVK?;j???a?G??? +??{??????&?X?Z\Vc#5V? :,???????l?Ku-??? Qz???????G?{C?n?f?%h???? ??k????0 ?FM????}Z?!??_d??7??????c\?q????D??[pY?? ?? J?;:?X???y?Z-kj???}???#???xV?Q????H>?AZysB?h??f??t???????#?D?B=??3? ?\}D???m?W??wB?K?????k7??Zty??=?K?=`H????J}G??6?Oml??}?Z????f??=??????/????K????p#d??a?(?E???Gy???v????y??O? u??W?> +endobj +142 0 obj +<> +endobj +143 0 obj +<>stream +H?T?Oo?0 ??| +;???8????Gk?;ML?4B???~v?u?x?%?y??f???a??-Lf? ????? ?O??\??r]??;)???y?q?? ?&I?is^?VO?}v?k?w??!??$??{??#?2h[??'????/??????.A?u~?x?8??`?? ?Q????[@g??%?8????B??3:?e?!]??HW???k?u?P??3?~ I]?Sa??i? ?????:m?!??`c????????????$? ?j? + +endstream +endobj +144 0 obj +<> +endobj +145 0 obj +<>stream +H?TT{PSw?Arsu???^?u??l?uE????.? +* +"??? ?@^!???! ?H????TD?7?j8V?u?????????K????????9?|s???????EF@,k??]?R?Rc bm?b???????8+???(f%cY9?o? +????`|e???bVA,V?qw?L??xG??????o???????x?? +Uq?D?KN???? ??~?S?B?PQ!??b?H ,??e*?R?)yy 3c!>?+?????3F?^\(3????08??5?A??????A?m??>??8??H?????%??U??j???A |???m???m?6????^?-'????8s??B???%?"???R=?e^????z?A?k>?3I` d??N??~rN?v@???`F??''?lDl??'?im??u?*Z??D?????8?H??F?I5?????^?A??ISK?????9l???o??x??GsrP?~U?,}?pT?M?w?UV??zcCS=?????/9????v?]???eD? ??y?as???=??^???? K6??^mn? +?e6U????g??FG??{3x}?C?[??q??z?????u7>??/4???,?/K???mzRn?u??#'?M??X/??{???o?????.???3?F??#?q? +?|??? m???-1J?0Y?;?????9????u????n?m????v???i g??"?2?U?gij??;???RL????N&???????????x +?(??pP????RC!??m{??1?G??n?? +T????J9Tl???B???q?{ +y8??DO +??=?n???.???3?e?^???R?Eb&OK??_???u??? ?RB?; ????9G ?}x?K????e?V??????????Ov?e?Q1???}X?T??E^$ *?@?"e?????Jy??][?B_[??k7??-???? J4?l?1????.OM???|8'?$?s~?3h????????.?h?q???(GxBm??K?3O(A[???Q??a5??>G??R3???_?8o??? ,????[???????lh??????Z???G?#??????#???&???(;(?????'??*\????????a>??0?~??? ?? o??v???Zh l?m???R?x????? 66?+?4??i?????_[V-??Kz?]?>??????4?jp??????Og?=????W?N???( ??????8? P????? +??? F?????W!e)V?Q?^%t\??e? +s???\n? $c#??UQ??z??y?Q??????@{]R_??J??^???????/?`???%3i??8?o???a??%?E????T???????TJq?f?a??g??)??=??[?w?-?/VIq^&C!w7?hF?????g?s*?^?t?;G/?"??w?{lE??t??B\?R+?9k?Ad~????3r=?-???????e?o=s?q?>=H??Lz*?<8????f????uL??????jR5?jX????M?????o????F,5???[??????]wfh??> +endobj +147 0 obj +<> +endobj +148 0 obj +<>stream +H?TP1n?0 ?? +?)2H?L??<$-???"????hy??+)n?$?#w?> +endobj +150 0 obj +<>stream +H?bd`ad`dd?u? +?t?vL) ?0054 ??????????g?Y? ?????@\e@`?????????s??g??????v?^?n?]?/?????w??v?],?]?{?w???????????h 4?m?; +??|???0?c?. + +endstream +endobj +151 0 obj +<> +endobj +152 0 obj +<> +endobj +153 0 obj +<>stream +H?T?Mo? ????9n???? 1il?x?G?n?,???"A=????????af^^hU??zX???I5?@7???8???nq?G?=#=? ?*r?8? ?D???$N??5??%???K)?????U?,???r??X???b??w?j?Z?uN?? ~y???4????A~TG?? + +endstream +endobj +154 0 obj +<> +endobj +155 0 obj +<>stream +H?TSkLSg>E???L??i?9zN??f? +?o? ?M?Da?H??V?-????\?RZz?????R?n?/??fK?b??d??m????}mJ??,??_??~???}??e ?????h????9?dK?l?6/??A?2N?pFl?nO????a??????????|?Ic0??r??zJVY???v?????????????????R?*?B?rw?? +???Z%??R?T??Z?DZ???G)??Z9OV?+???r???????g?c)?WIkyY?L?J????Y??Gpd+?? +?@v ?H?Gv#?"{??H:?? ?w????@??????g????Z?`??????????`x?i?i???j]??jr???????.?iF?e????!4?3????$6???(???P???(f}G?I???I???p?1i?:??tu???K ??7????,]B?????s???Q?`?&??R5?nhl??????&?]??F/??8?Oa?7?1/|2JxC![7>?5??I????hc{??!&????????-???/?h?(IU?MZ?-??R??E?=?????#3W?dW???`????xM8?Bh?&N??????8 8?%>I?(?3????#??h?i +4.R_?????? >???? ?(l???(M7?M??uX??/?i3??[?7v?"????4? +???Ba.?????T ?%*g????Ka_JX????e2?q???p?a?M???_?E +/????{?????p???????L? nEc?c}P4E??????1[?J??n?[?li (w??UDE?A?|er?O?/a?~??R&U???& +^@]?7?mA??U,?x,w???Nw?'???.?B???i`?T???Xj??b2?)?e?T:N\?,???????|??5?h?v???MLa??6g?JE??J? +??> +endobj +157 0 obj +<> +endobj +158 0 obj +<>stream +H?T??o? ?w?u?S$?K?H?D?????B?t???}???:p????{???_-???Nw`?dg??F??h ? +????r??? "??s????A]??9? +?CY}?-?dK#l??z??n??'?? ??+T?????????|?vg?4?????M,????I????~ZK?E$?^??N? za???9I?` _??O#?)~?Ej? + +endstream +endobj +159 0 obj +<> +endobj +160 0 obj +<>stream +H?T?klSu????o?B8 ?C?? j@?eKX?$D6?7"rcc??n?%????????????????? ?f` +???  3@?o&?A????c?oO????}?G,ZY$??k?k?}?????r???????k_??&^Z?z??? ???7,?O??[???V?????FWmw?Q?lm?J?Wn??VTW??????U?Kkjm[?J.????"??RI_5j?j?F??+?????+?L????? +M?T??6I??&???I?!?n?o?!c?B#?Sv*????????5?j?xE??q??"?k??Do??M??M?gE??++w?LJ??7?(???!/??????????????Kxn??l'??A?JGa???Kb?????D??zhS?M?C?5??NH???a +Z???oB?Rp??|$ +?Cr??_<&LR???`? {???n+???hmk!p??H???? E????u??????h??$??$;@4?F??9J???}?M? +?26??Z[Cb*K2???16??O?6c??`????????\?z-q}???|?)/C?[? e@???Z\?dy???%%|?RIq)?? +?`?q'?K?? ?Ac"?8_???"??n ?G|! $???? @?u?,???Rf'????R)???g?a:??=FI\???Y??)6?? |? l>?3??,??,???}!??????*??:???S?H??Y??r3???? ?&?At2>????4s-?????2 ??????????B?-f?yf?:????LQ??4N????w??n?>???]a??S??%-&?NMu??U@???P????ag??x8???J?wDE?,HV??9T???????$? ????)3??\???&??,j?????????A?/0? `"OLa??-?s.????[?;?? d??+g????X?????;u?A? +;@#{|? F? ??H?BQ< E|~??h??BFV+??2_ +???k?Y???#:?-,g??? zv?????&)??m?6LN9j at B?`??A??Cq? F?),???]???????+?)X??_???T?w? + +endstream +endobj +161 0 obj +<> +endobj +162 0 obj +<>stream +H??T]o?0}?????2????ME +!?!k??,??$???w7?Z"??k??s?????r?X2?P??q?(????Pf2?.?C?~???4Zu?&L?;? +u?f?x{????QT???{? +????C??_???u?n}???m?M???H????6?>4??????.a?rT^???P?U????1}?1?"?Y??v?P??U?N?$ ob?NI%|???g?=??v- +??????n?]?D?$Y??\??C?U? ? x&? qJ??N"? ???Y??????s??UT??????R9????$??(?N??$???K??)?mX?*_':X?_B??S|?P"?=?SS|?8??:?? ?????9E%??????=?1?L9???Wm?{??r?!%/[??S?L"? ?e?;X?)nf???3?Wyw?q7r0?x?????]???z?*:q???$ U????3????/?>stream +H??TMo? ??W??????NY?I????T??R???&?I$???OMm??/`x_?/\,PUn~.6??y?fD?B? +???b?.??f??%?$???n?V? +}????JK?n?!?x??*}Q?U?:t???8-a??sIt?????\?????i|??{)$?d?|??.D??'?"Qh? ???a??L??7Ua&???jC??Y ?qv??&l?-5???L???M[9l?cZ"0?B?bI+>?)? ':????(???.?d?c?>?++?tO?!?~?njR??:?5????~ }C?^?S?+]?Ot?~?}?H???l?????'?^?}???u%??F??J?Y???g???I>stream +H?\S?n?0D?? +?E??zPRo?????A?$Y^?j%??h???????b???"?1?3?U??*^EF'Y?????{??y?YEi??L?M'???ie2?Aa ?HE?GJ?uX???S?n?&Mtn???s?? +????8?QQ?&???@??0??4?????f0? +S??? ?F??0wOc???? ?????????w??\??Q?b[:????NE?.???3g6t}?B?\??-?u?o$???=?< ???? ?????-U?xV???? ]<(???V????8 +A8CG2??dD??H?Z2?????z?6?=?^??0?R{)??T??^??T?J?????????,??-Hb????:q?}&7??m ??SE*?&^$ -?h]-Y)eM8?E?w??F?U"F_???????J??? q?>"???????=???~ +???Sh^???[?mfY?~+??E? ??? ??V? +endstream +endobj +165 0 obj +<>stream +H?dTMs?0??Wp\:? >??f?=???29?XNhb$?4????wW .iO???}??{??_w?we$??i?gi??Q????w?????R????{??8??,?A +?'MZ??W"- at u?????_??H??'M???0'"??Y'?5U?,m`?GmB oO???Uh@?I.??i?(i.+??&ggMH????'???91? +???Z8h>5?~???? t7?LK???????????Q?a??2F??:P?D?Y??aa?835j?rrZ?( C????X???J|??? +I8?(N? +?@?j???>???t7)iM?6????v?0??????8?E?b#??v??m?(????e????_7?+p?????9??????I?G{??????A ??h? +???W?T?Nv?r?i}e????5 j???8??+???+??G????"??rY??c?Qz?-?????6Ks?2??R??_??b??8??:j?Z???^?wI$x_??}?~&???s????h`???8???sIp??????????????E2-?\FB?9???!????? ?+???E??U??EE??`?%(?? 8?w???SDY_?? +>0?r??f??0G&?Jx????=;6???Nu\I!???X????:;L??C? +??j??@?J??O????575???;!??_o.e?????-??n?*?`?r7???????S?.?~?Yo?????kB?9G0cp?-M??iI)???'oJ?@?0?y?? +endstream +endobj +166 0 obj +<>stream +H?tTM??0 ??+??04?|8I???3??????M??????z$+?f???????|w????n??y?????/?C??K6Ya@?lr???=?)O??X?%?{????.U?? ??=?3??Lx#??G#????x????????&??E?e???3Y????dS???(?=????A?lk(go'K???9R?d?k?]?@`?_??v8?K??Y*?s?sd?????0??<??? +F+???j-???AO??bn@?Cg????Pj?????T????????ct????IQ?~Dq???Qa?5??v?YFk??ThU?\h?vCk?? +?dSS^ ??|????}Y??;=???B?n{??ts????xq???\??L????K?{}NE?iux Nh"??p[?2?XPn??????p??I??9???k??*7??????fp?G6?7"?5??"?(z_??^?N`???42??????AB??-%%,c??o?????D?Y,??B?(w:?????*?a?l?g??D~@?^Q?y\?gsY????k?t????? O?d} +endstream +endobj +167 0 obj +<>stream +H?DTM?? ????????@ zZW-?J??,LB&h??????n??? ??u?{????80?k?????O?e??????? +??_?????y}q1?~????2?]r{??.?e????O??%kU?9dY?????O??r8????CU)*?l???L!?\?75`????????,1@?5???PI4??`D3????v?^?7????9?5)#?(?7?xz?5???v?Y?a???"??4???7??6FE?D?ugp? ?t8??V ?Z4?-7;%?0i??????e?:Z??????i??Y?v9*??j?$??g???;?????0??n?n??????e%s?v?? ?m7??O?`C?_ +endstream +endobj +168 0 obj +<>stream +H?|TMs?@ ??+8?3??/???? ???I;??:98d7???Mg??+???u?????????~@?1Kt???b2?Nn]Q?Q,R?h??l?Xw??JR?8???oo}??IF?}?l\?u"??????&????yg??\z I?-???????? ?e???%v??e"?xS.???#??Wnm????<mi?b0?T<[W??u?S??K-??1/)?D??&_?]???<(????? '?+\1 +q? tx?? qS???????d?Wb??&?S????D????@???J?8?^????H14??????,? +,????,9?c???4?R?D????? ????j?R??y +/?Ck?? ?&0?$?? &?XTQ?sT$????I??????T?p??t?Cf7??T?G?S/q 4??[{????YH??i???tW8N?B??>?5 +Z???@?6u?|E?"??2X??H????.?rc??i]6???~ ?)y?[??o??1(?0 ???v??:?fu????5!@??u?????k???? ??kD?tuQ?K??y?1??????m????(W?*E???????|?D??'??$???11?/??)???9??-F?fS%t?Q?7qU?? 4Q??5^?{?3E?$???aq??Kn#??aR?OP? B>?0?)z??N{t????V +??H???~v#?0???#?/*??'R??>??????p?SP?M??.???a?;????#???z-%???????Q[)???+9?a???/v??? +endstream +endobj +169 0 obj +<>stream +H?lRMo?0 ??W?(???????z?bK?YhA?Pg?? +????G9??u???D??? ??@?H??h????xzNi}u(I???[-??eZ?9???? >V~?=??H$@??!????a?w/??.+?J,?9?????O???_?~?)Y????? C8??9? !9-?? ??6H> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 4 0 R +/Parent 100 0 R +/Thumb 83 0 R +>> +endobj +2 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;????"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???\:g???2?/U>?z??j-$??t?W3??^:?)??u??????w?\?????5^??????????J????%???m??Gyx??'??O??.?I?6?S?r?????T!?w10e_?]:wT?k??#\o?t????p?g?^x???0??foKmN-??????? ???O????Y?@????X!?C???@D??8?Mz???????HSux96T?>?ccm$??O??????t?L+?????? ??x:??,??y?:~o?\|l?v[M???p??y+?d?OD? ?c?{0?????????h@?!??U????'{???;?7?????d?6?s?F??? +=o?e????,?????Y??K??uX_Q??E?Y.???O??YU?T?S?W???'U??c??????????K7\??f#???N??j???????G??_C??'??:?O??5???u???????.7?????9?j???6e???Y?`:m:v]W??????e????eV??vSZ?8??hob???[??;??K?5]^M?e?kY:8??Di2;?i?XW??cW????n???#p"R{?X?$c?c?????G??c?+s?.-??L=z(t??V\???????~?GF}???h0?R??z?GD??3>???[?????x?y??.??/z???]?'? +?????F?#C??5?+?.w??k2[u?Qx???&?COpu???@?p???v??y??'????3#2?2?rpq????G???o????}o??V???$:??1??V???????b?N?????M?? ?5?Z?? ?????[???tn??K?:mzNp?? + J'???W?^???uz/??????:C?fF???? 3 +???[1??wR???;????q>'???px?X)???3znv=S???Z6????7O?????Y>?????fNu??U[gy$???]??????]O`c~Dj???N??3;??[???{??]av????]-?,`ec?????<{`c?r? ?g?/?=w? ?????}#??s +??H??t??????p +g???Y`x:5?J]~????J?}e?j????_?g???ll?????????#?#o'r?????_X:??8?]????ewG???.?bT???Uq^?c+?6-???8?['?????J1u???t?w?B?m?n??2zgK?wN?????U??q????V?/???o???????i6??k???;?\D??}F??[?b????l?)??\?&??k?e?}l??foJ????[I??j???M?E?l}??uz?mH?M??5?]?uU?????{???h?8????p dA^"?????q?fWS??? p=:?X??4???k??????'c?|?W~? +????????????S?3????45?X*cG +n+?????Q????GUgV?7;?[n?6???Ho???^??J|???_\33???C?ccga??4R?#??h[}[??lz?v?#???t}??I%??t?=^?M???F:>?&??-???[Z4b????S?????&??o\???????????~????z?H????00N????????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I&:??w?_??????X?xk I2 {2???f?8k??qLF??[?$?????n???P?????w???????6n??+???c?L??????]5?8????? g?G$??k=^?%?????x}??1};????l??? +??????+??MbZ@4??H??hW??????????"?4?l?;???`?????|??L~??????????p(`}l?J???0??e?*-?O????????n??1?A???????%??z???????S???8?cH[???7] + ??# ?i?G?RK???Z2j?'?t?O?e0M?t#E,N????????|?*6?3??v??{??}/?fo??????D??)?J??????%??k?????????Z??? xr?????e?-C< c!)?C?N$???Gm%???????????2X?K????? +??]??O??????c?5??[H?????t~???"4?????e?R\????0ocz?N8?[?????+W??>??U??A??As?'A??G(???u?}5Y.G4g??{??>8????????g???=F?(??}Mxe?i>??????U???,?9??[?q?h??-hx#/%?Xa???3B1???5????????????2?n>Ev6ui????Xo??Z?~E???DtH????U?G4??F' ???D +kr?).o?c?zn]?P+??n?1?L?DwZWz??????5??Klcu??"q&????[????2??B??H??=?D?1??????u?4`?h????q;Z5?T??}e??*??????%?zo? +7?]?2???lF5Z?q??.??OZ????K????L??K????2??[??dd[?GLe????`?[?]R9b +?$b?3e??L(o?? ?5?g?I`?n???z]B?f?)???? +'??0?vF%7???????$ o?? ?N +p?J?z?t?,;z????_F0?c7$??C??^\O??2?\?.'H?l~ ?$MWRc?n??????Ir??Zz?:??3??3%??5;??????*?n^f_Ne? +s?a?}??!?GS? ????8$?{?< ???m7zT?E???].??I?h?????????&?????V?c?%????8?"??8???r???u?! ?H?????????:??OK?? ????;??G?h??S?pkm????Wa>?F???(???O?y?cx?????~??b??.=?[???R?~?#??0???d+?s?A????? m??t7|?#??^?(???MuQ? w0%?e???2?????Is?s?e???zHe/p?N?=?F?}k?M????+hq?????',@???????????B??c_m??).G??h???=;i??~3??ZL>?Oe?}ioO?n'/=?V8l?0???????_?A??)?$F`???o????zo\??f?GR?????????????u????gJ}LmX??? ?`?????C???e???G????rF37[?q% ^YS?5-i1? ??????.????u5??i?JY#F???????JP?? ??~m?{D?OE????pl??@?>?~? ?????W:?????Mu??|???Z??+U??y?Np??????c?S??RX???^??????2?W??y??????Y>????????\??????????t???!#Q$??8?"?w]^?%??????~?i??}????H?~ +g?????3?R??????&?"rDX?x~?a??????N@??????K?}c???q?W?z???K&'??%P????1?j??x?cm? +??:k2??.?^??r????? ?b8??w1????XX?X.??WK}le?/??#??='?gW????K?f??C?s??{j??U?W_DO0?F?BI??/??w?Xtu????oF50U[ ??????H???? ,?g??LWc1??-?Ir?}m??y6??z????]c????Z????t[3??+?o??????L??D?C]???g??L?? ?x???B?z?E?X?_?l +k%?????U????_?v??~=lp?QX& A?r'$E???>K'???? ???Y??).??????[~?Im??V??[??r?????? +?s??@?K??????'PqK?r9?(??)????bR?6u\?Y?????WG??}???g??+?c?&F??CH?#{l???x%???Q?????'z ???g\"?4tz?\?^???zT?????%?4?N?|#9??OSL80O?'???;????????3?s7z?wLO?r:o?44^yL?r????Yp?Hp???Hy?h??$???!+?}j?L?????(ycZ?}?}?r??A?v_E??|? g?(???{h?I.n??=T???F5u??q??{???*-???????????q???G?&?????Fh?;???{??e? +???[N??{I?{?P?c????/???O?>?}??Ia???????%u1??ps??&4???$ +?CE?<3?a9NPL|??$????Y2:M?c?R???{???????N???.???f4?9??D??????$I??vC?e?(f y M?}?t?X?W~?????????8?"??0;??b}e??@u ?1?v>?E??a???#?4 +??-;??8?H?#??H??u?zd?7D??OQ?O?? +_??? F??????^?:s??qj?wK?L?%??;??.?????pP??l??;???XX?Y>??v??[?R?l?L?*?? ?^????z?ff??`m?JY`7=?vD9bR?\g? ???%?????????????-??\L5???????????:?+??U6??:O $s@]?????g?P?p?F?'??i,.????t?n??????5?8??K??d?????5? +?-???i?t)K,cw~??[?????DqDq?F?M?]^?%?t?X????Nkp?:?4? +???_Y??_?>?^-M?# ????@?D}???m?y?4pzNI^?? V?z;?,????k??e??Y%??????u????et?T????m????Q?????,??^,??prk?wI$?$?I)I$?JRI$???I$??r?Q?uo???^???????9?_u??U??????;??z?bBq?? ??????b??b?D8I???+;:\?;??o?PQ????T?u?+?t?T[?o)?'????!?s?;@?#r?g?\?V?|??m????? q?l???D~h???.??{??? ????x@??^`6???s?>??4???[?????=???M???>??k????L??*?T???z|V????>?n?mX????D?i?8?#f?u??_c`???1+??> ???H?p?P?KG??g?????YN??A G???:??=;??a?oO?5??8??G??F?z]"???????????I +?Y??_T???};1??wm??6?'?G?G?K?T5V>?? cB'.c????|??g?e73?t?p YsZ?c?}A??n?]??Y?__???A8?c]#?[V?Y?????v^?:xhw????g?h??????????>??G'n??;?F9 qU??????????F(a??3??"x?>"F?u.?_???Rt????????????c#"????q????? +;??T???"??nEu?u.?)????8t???ke82???!<0?01??d?j?????v????|??????`?a??C??P?G?>?[M?I65??i#?}U??2??>?n+ov??#w?8#?O??t??f?s??_ ?? ??????u?`?2?>??????????K?`??3,}_?g ??????{???V??????l?$I?????:"}a????????}???lwn?!l;?????4???Kst DHB?/?X?Lb;?s?g`?????o??a?{?????S[??f??,{vW??h??3?o ?8B????g?~Ts??}?8???F$K??@?}\ n????l???l????@:w?,???????????lJ?U???6?'?l???y????p-?????>?~??K ?;7fu??y?????@c?b4*$??j??\???>?g???*?n*??????Sss?}O???A????C?=3;?zVf?n3??l9?:et???Mr???`??????t???t>?zNFm????????n?\c??@c?=X?~w\?G4D1e?A">???????z?O???n?d?????Sa F\Uvd?&?f??`??G?3?1?%G\??D?5???>?e???z>O?????L?8M?~?uC???????[ccX?X??\????f]?????e????$n>???>???/ve?;/5? +?????L #???????9rG?}V??? + + +??B?sYc~?t?tq????x[???e?`?]F??+?5F????G??[gT???????c,??G!:p????D??/] +?r??-??x?_p{?4??Db8L@r????]?;&?(-?"vG?V?Z??r????67?^?E?X??k?[?5?0@?????q???v6??? 7D???????d?7?????sb?g?@~?3? +z?????@g?c?*??????R2w???N>K?? ?~??#o?????o>RUN??W????mv&kb.f?#MP?%X?`5a?s8O3??H?3???[?????}e??????.??d8?????] ??S????[??T.??????,?}??#_2K?C????oR???E???2C??? ?9 ???s???~P??d?8?{r?1?13????g????o????[????"?\ 2??[kd?8?E?t~??????g?3?n??m??EO??D=?sw??Xl??lOnJq?? u??????//?|d????3???]??;OG????S?!?2????????-???? +?Dnk?????????????x-sOW,????????0???????5. ?8D|t]??|?,???a?? ???1?p???Gg??|~??ql~????a??s?????m}??7????c??P?_?U?????:??Wa??]????x????M?0u.?n] 3?DI??%?\bc#^?->??\??8y3?.)^9?$?????????^??O??xs7v&"Q>?YU]o:???+??=?9? Z?k??:?1+???? +?????????du?|?{?&^<~?7t???????_?o7 ?5??Z8????6pe?]?}j????????f_@??????????KG??]???~6ma????p:Q?Sz?f?:????ed +=??[??tZ]???6??\P? lc +?$??????<O$s???s?3 ?7?=tx??????i?F +?}?o???????2??y5V6?????Bs?|??C?z?l?v?m???????G???????o???? Db?k?. ?_???}r}#??X?n??????(?UOY????Z???5??????L?9??V???p??(pH??6 H?7t????j????~???rN8?n?8?q1?? c???4d=?N,??)`$$`r d?3?cQ?????\????;?^p\?eI??yZ??Vz?6eY?{o??nuDp?>??f?_9]s?z?>???????>bS???g^?????r???X????_???"AX?j~?3)??]U??}??w}?eY???????]?????q??hh??"4?[?S?? +??W???3?Yr??L2?8!???w;???n??y?'??kr?InY???wi??o?>?u G?rz??l??V?`~w?)?o?zqzFGK????9?.??'????8Nr????{?tY?^g+??^)?7?xh???6???Qg?{??A????[?? ?+?g?:]q??wO??M=#?Y???o?N,??d?v?Sg?\?[1?:???o45?D q?22$G???????p?b?3??\&Q?????k0?}Z??z?????It??m?+?kUEy +=I?z??fO"av=G??9=.???o?q?x{?????d+}Z???u?????? ?nM8?D +?""?5???>#? ????&or??01???]?K?o?Y?????o???8J?9??? ??iB????c??z^e????)??????Ui?????]??8?0ih#?3??'??$?o????l?N??WXS6"}s?9Dw?q>???#????.?a}a????}??q??0Cw?F???W??m??Z????0d'??8?^?D?M?e?????x?xa `c#d??N@??.??9?]F?]5?q??????k?k'3???????O?I??I????C???f?c???d{rR???V\=S?MNn?c????l1???Mu???k?c75??l1????q?_!8??V/]??v.GL????m????h??H?]F??t??N?l?|\~?U:????-????~????v?A?G??O???S5???v?3????/?J??t???,???????????7 ?1??i,?%??+K??8=??k[??S?[=K????}O????A????3???????????[???n??c?!3?"3??t?y??fS???h??('???FzF~ FR?}>?1????3?e????&O????]g? +?????????"$r?O?_M?1?'p??????????E\n5???H??JR??8??:??P????{????G?%???g?P???F???^[/?=?????Gp???K??????OO{C}H???) s??"??Z-??`?.R`??9=????D???j??T??;???~+????9?\l?>?^> +L? ???]_K????2? f?R??dD?&c???_?,,O]??3????????5*L??0?jo?,??r?Yfd}?8??DNZ?z +???????`R???mw?????o???(Z-??Mr???`?c;???YUs~??]????E???? f?xN??#01?o??o???? ?y???D?c)GX???[^?x?z???}z????M???????-???%??+??K????J??k?9/??g?L????y?_??\z'?G???????l???) +E??Tt5?????5????n??p?2K?o?e-6m>??Z?#?t???3zu????#B?????56Q?F?K????S?2??fS?}f??^?G#p?]N??O??+?? +?x?????l??I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR?????????????N???zM??e?????b]?1??z?????W;?31?.?C????@v??'?ej?!?S??n9#??Q8????????y??<;s~??z:?K????????x???.????$q??:k??l???*?r_?gM???sj????B?? ???T?n?????P??Fm}F?u?m@?A0????zGM??????c?????6?z|??O?/?{??1?S?2?????Uu?l9???}}??:????3>?e?gs?????????$???k????~?et?????k??% ??6?d??-?J????X?|????r?????????????5???@??]$>?_K?n6H??????c??????y?\W???????vEu?nQ????]3???????u???P??0??x9W1?X???i?K??U???r??Ws?^mn?ax/?8???1=?A?Q???#??????o?-oP??yf?????"N??1 ????i?5?}?N??n????Y ??8?\?X??????????/w?}M5?'???R?z????} ?=?&???,?_:{?v???xxTw???r??????~oB?7??? ??????v??????}k??_?*?F???sC>?t?,?2?????Oe??????;qcd3?????R??t.??f?D?~.> +??????MJ ?G???Q?N???z4?I)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IL^?=?^???A???????G?#$????? +???K????k?4r2I)?1????h?????????G?#$????? +???K????k?4r2I)?1????h?????????G?#$????? +???K????k?4r2I)?1????h ?????????G?#$????? +???K????k?4r2I)?1????h??:??????O;@?M$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???L<??I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???~?g_??vn9?z\?????X?]??)?????S??^???~?t?:?? ??/s?a??1??u_U???? ????]???Z???3?t??c?/?f?gu?D??D??f?{GM{??? ~T???????p%q????N?Xy]j?nfN&;?6???n?D,?_?G????????s??7~?M8B:??[?vQ??_GvN;Ik?`#?\N??????q?W???O??/?u?]???????{????QzUx?3????X-,/?n28?????@?U-6??{??[?Z?9?H %?_P???????@v???!????Gr;`??c?^?????R$'???Y?????z?_?{?_Fuu?`???7 ????Qn{L?? q??P?A?au?u ?P?}/?n?2?X%?KL?D?eu????????o?>I??|?Y?%??'?a???M???? o|???o?/???}6????4?'?]b^?????y'??t}R?X?{???N^????????"?????+?gK??l??*{??R?R;yH@?T7?2G???(>?v????.??'??3??.W???n??????????A-k ??cHJG?? ?G_??\2q??k < +???98?$X??_????K?=*???v@??? +c???#HB???G??f???Fu?3????????2?k??t?>???5?pi?(????Q?d????W??\???T~?d}Z??vgO??u?h????s^?C?x ?^U?????u??Y??4?\5?n?????????????????u??Ip?! ??x???=\?_?{?????=?E?oi`????? ?>??_??=xvu[?1?Yw?t>+'?????GRt??$??2????=i????-O?V/?j????????c[:?p?}[???7?c?un??|????????iw=c?C?x?;"?????o?^u +????U?*?2\H????F???G???W???????f;t?=?? +{$Mv?Z???????3?@v?c?6? ???n????g?????uN?M"???{???>?????s????????X???<?s??????j? ?H?e}?W??O???s???{?[?L?_?C??????q?u??f?ZN?p????????????[???^>Kf??R? ?*?]Z?Q?/??>?\?????g?(??l1]?y??"??????NB???h??S_?-?d?[ ??-?V????:????u?????>K?G?{4(???&?b/A????el!?piw??O?Iy???.Y??A"m????? +c~$}?:??`?k?M?k?q?????? +???#?????6?e????z??????"???%??-_?q????E?30?~)~-?']????$???wI:;?????=??????!0???L=??????y????~?g????,'??+???F???-?FU?'?WS?fuGR>???) +up???A?}?????HG+??\?G ?z???y?:G?+In $??V) ?$?7?Ds???8??rN?+Qn +?!7'?5?????*o{+n??5?.0??Tv??$6dc??Yk??J{.????O??+W ??l?P????M?|s???>?+1e?a?s???Z??Q??(2??[??;????#???X?x?Tn??D?=jvz??}1??G??J???f?I$?$?I)I$?JR?????N??????/?O?JuO?.???????????[??C?wF???z??7??h?>????.t???Z?+??U??n[??)?.~;??%??O????B?W?.f?n????????=?????????W??U???a???????s????????q1q?k???c??X??~!???H??8?????(?????????????>??A??k?F>+?\z`?vN????????V???.??e}c +?M-s] +xn??dD??\??h?WEm???@? z_M????(??}'?????!/????k??U??ev|~???,??#?c????dYe??;?8??<4[X??OL?_W_??e7[?????; 4???u??? +? +@???????N?v?E?????y?"5FF????????????_c????Y????]????M???k???.??h}T???:m??iml????+g??????i???gf4?9?h????\gI?Lp{0?k?e?0|?#?????Dt?V?3???oF???/??=?3+??Z?[?$??]???W?0???????????_??? ??cUs???????t??M??q)????V??|GK???d?@????9?4????g?PW????O???V???}f???kw,xi???]L???4CZ????_? ??:???I???????\???M?k/??????t?????;??S?]:???Yi/n??? ?J?v~??1?????1???@?6a?V???+c??q?cAw???u?iG?? ~??%??_)??^???_????,m????.|?????0z??, ?8????8mt?G ?ct?????m3?"?p0 +-??Tia??X?????$u??c?5CO??x???+??~6_V?Y=N?5?W?i??@????e_W1????`v.? +?!??????2?!?48O?????????mQ????K?{Y;?/Xc??1??h?? ?;????~???M.e9??YE?h:??q? +[m\'??N??v>?????VW\???~??]F +????Av?H??}n???????Q??j??{#H/:??????_q??o[??>??6?SD????.??,?#?` ~?t}W? ?F?3?m??o??K2h}???9 +?I?\????????u'9?Z?M??P%y????]?un?nc? +?????d9?'??????d?3&?\?d6??? +??$F8#P}&?P>_D??y?C?X?1:??????h}8?{nk??B??/???]???L?o?????!?4?>c??'?2 +5??!?????Q? +?m??Yk~?????< ?t??[?????????[?????????m??p?????}??]???????????H?? 'C??????c??)e[??cCd???+qqn???MvY_?{??? %8?(?wT????????V???????n]Ou???m??O???}C??s0??}`?}S????y{+???D.??\Z?}?R???????9?? j?00E??c?.t??cw?]???P??Th?????????? ??j??K?l}r?F??????X:w_????9?u?d??L??????????????(??m?? +??1? ??B????? ????@?7?W?{??W?l?c??!??.??yT>???4?J?????&?Kj?Z??????c?8Pf#)8??????PcC ??!k??LP???8:???>3?o??*z>=}k?u??<1?u?P??w?K?+-?q_D??f?j??n??pq????U???0V??? +??mb????'??????????}m??? ????P?D5??P[?????\l`[?S)2?[CA>'h +98YD;'???lc^@?? +R? +?????o???????oG????;????{?6??}?K?}?>?`u?[????!???????_K????1?^ ???k?y?d?????]3&??]p??;k?I???H?$@5?!?g???%???:?6?8??Q???Cw?2?-???-??9??y.1f?u?]IJ?X?V>k>9JP?(?z????V???gN=9??_???mk#??F????u??89??G?B?I#??F??g4 q?$? ]? +????#?c l???????2>??O??????m6Z7?p?? i$?#??Z?Ty???qG$?9]?5????V?wX??e??n??n?"g???.???^E?z?????I!????y???rK??z8?S??K??G/$?, 7????+}'?bt?s??^X?n;??%^I!?HJ????1?Y$q??$????????f]??[i?m|??O????`????q?{??[I!? j?3?p?9?????: +????.?\]??&??b???1#??s=3??b9FI!?@???Y????%> +cgg???'D??X?_??8M?H??m?aS??f??Z6?i?EXI!?@????g?(?y%)CX?v?y?O?=&???q??7s?H??hu????*eYe???s}7m2tZ %???hQ??s|????#8|??C??~???????Si{???v?r?X????][????o??????K?<<5?d}?9??{???w?????`twX?Ca6??;w.+?h?n??t????{?h1???;t?}/???Z???n??v%6X?????8?I p?h???I???????????u>??????/???!???0W?~????V?????[?e??????7R?????????1???\Y[ZH?0????af=L??2Z???O?Bq??lHB +?????x,??x?Y??P???j ???_#X?+3??~??~?c??v[??O??Z???w???t???????t? +???????}2??*????^???4L? U???=xI????O?#??,???q?u?? m????;I#?X[z????8??????a?(4?k?( +????k?X??-"Aj?}/?T?eX?V?????>??]???R???[?|??z?=?R??{?K^d????|????r:X?f8???Kn-Ac.??cc??YmL???[??KO?I?6F&.H&?? +????A?? +GR????W?@????_[zH????s?c_?[??????=???k??????o?Z/??{]?? kh^f4?{5?x? mw?]?g?k???%?????f??7}/M?d?v?????r?Ezx|)?????V]?Y??y}? 0?4? ????7??P?f=???N???4??%??aa?rh?????1????P???]n?^ p?????? +x???;??c?] ?]:?Z??X???E?????&>?N??????z?D??????VF{M???f??????4c????????gmm +?jgbb????k7?F?Z7???R??[??/????x?8??X???[????'??d???S]?SSC+???h?4J?\\???Yia?oht?h???W?*:?{ +y????&?/?????C?I??k??q????7w???}?O???h? ??'5? ??IH@?A;Wg???'D??Z?_??f?>Ko;??K0???Z6?i?a$?"hw +??g?(?y%)CX?v?p0??t|Ka$?"@???q??%? ?W??t\>?K??/-????????K??J?yn??6?^;M8???F 4*??j??mok?p? ?T?????????fA%??????W??g??8?T?gJ???`??7??Y???%???*??o?o??o?{sp??U????2??????'??|~?t:???{????u??X????w%?t?????C4y???>0????f????,{??z??w%???0??? ?????tc? f9??????@????O???O?d?, [??'"?m??5??9?? ???9????????~j?d???GC^??m?Y:=?????]???c?h ?)????rm?? {lt?cI1?+??S???t??;? ??5~??m??:np{??j?ia???~0?W[??Wu??Sex????i ???/???n????xq-?x? a?????o????M]K?}_??????pt???4??Q?V??p???7??????_?g??n????????\???Z?58: ????Z??t??????\}??????????K??V?7???oL??e?:?q3?????b???~?U%????V??u?? +?/????`???Q?z9????? ?Q??2???:_?????6V6UM??]S???C?~a7????Z???q???-xi1?+?z???3??WF?????hu???v?K??B???x\Fw^???.?ns+????s?!??j?7?Z?m`?t+????????dc??ip????>!Pw???m%??x??z??|??-??_^:??z?u?9?/??3?@??af???}??^?^?????2?w o????m:?5~???w?p??O????dW?[ 9??8? +????^q??1??? +f??????>????C??}V???xsX?\???g????Y??#???n'S?6?qpq?p#?????:W??W@{??=S?bY]YY5R????piw?g?{????u?????q??J???????5?s?l???:?'q5???K???????[)3Wmt?;???"iV?\?n?X??_???;?tVb?1?? k???ap?(-???m? +oS?$??o'??0>?????t????????dIlX????????O?uN??+????yn8?F?c??uz?{k??//???z?On[p?Mc-?s(?7???l???1?Y???UY6??K???de??????C?h??zkm?GO=+???f~^?m???v????Oi*X?x????-e????Yi?0?_???[???>?4????c?D? ???a????\?~??4??0?u??x???i_K? g???]?*?q??+??4??87??k??.??`??S????5??G2??X?Y?{?}g??sr,u8????s?]???????s?H???m???[?n??Hk.? ??z$?xz?W???a? ?Pa?W???zn?| #????????\??w+??????g??v?w?E???????3????j?^4??u}Z??<_?u??????q>?/??F?_p?;?^'?I????(??mq??????t^??????.rGI?qI??g??F^???}???kv??_???????[???GV?????deUV=??????N?????o??c??????g3??????6`???Hn(?!k=!??{4?^???F7?U +O??????W???U?q?c???X?I=???_R??um????\v?,piq?l?????Ofn1Z???3????>zr?????@?????#??????[??&o?_/??????I??ba@??cH?A?=? ??????3K?%?????C??=+?NFUu??X?Aq +?.??K?ocu$,l?|????6????24U???"?U?u2?sK?# 7!CBLD$d7m???????u/V?-{u*n???-veA?0F?H? +? +?,?$F???k??I ?46?????wz????*?}{?Z??^eN{?5???R?uaQ??@??D +?M???2h????cj????U??]'"??FUvX????IJ???P?9(?F#r?ku$??\:?\?[K ???????f]??6Mv?D?i?+V-C?x?db?J??[?*?}O??83+!???Z`??????q.e??8??%b????? ?z??[ *y=_?b[????U?;`?F???????kn`0\?"R +8?#?c!?Di??IR??t?{]M?U?c>??!X?+&?}6????dh??;??qF;4)RY??D>?T?}%u?????p????s) ? +?'Q??.???????.?i}W?????q?GQ{?7n=?op??]? &22?E=?'\???s13h??i{?[??;?(??G6?]??]?0????89??}U???z??u\J=?}n{^??c:!??????6???3?? +h??I??c??[????.??h?z[?.?^?D????????????zN??[G?2Z?;??N&????zG??????"gO???]??;??;n?k66wxD?;???>?u?=_?b??sp\i????}???~??uv-x=?^??m?????????K?????:{??O?fun??X32??6?7?<7w?T?s??(9W?M"??5????^_?2?Uy7}^?xoe????'t??;???O?Y????????3&?{?y??k?? ?*?]&?1??_?}K+?t\75?Y?R??=??5????'??i??????L????b???tjz?~7??V ?? +?G ??S?????nf~7?}Yk?? +?8(??Q???]-?H#??:};#?t?[*?'&?l?1K? ??A?Y^o?2??f???4??5zBX???>?? +x??s??N??k??k?k?0???#?Q?????um?X71?2=? ?>???????Z?~???_?$q?Z????;#???u???m???????A?Q?t?hG?|??????W?????q?????u?%Y??8A??"??4??S??>??????????@%???#w3??^??!?U?g?g??F+??gt??iGX?? ???i";z4? :?F???????sK?+M??uim?4m??O?o??$?/?,??(Hqm`??J??o_??pcs*.q??%\??q?u?C?{??o^????afc2??K^ w8 +F?2??????.??w?Z???Q???0??Z?F???r?(?2??H B????k?n?"???Z????/??;?\??;?=?q@?#?O?????????N??~??kj??Z???95?????Pz??n???{?????# A ???H?&??F???TG?A?2??u???H?????m?z??sO?.q? i?p???D?????w_?????????w4}-a?E???????V.v[??%?L????;A?+?'?n +?G ?_?#-???W??(????3?[I1-tq?????'?u*:{:f]????h????%???,??G_:?yo??]?}N?em/q? +h$?!?(???_??cK?`??c?wNi{?\????????z^_O=6?????Y??mm$?WN??}{????X9Ue??6??v????????U?=???; ??/?q??5q +?Io??\.??#??J?fni??C,q???????9?=???`jO?????G?$ ?W????????V?Y?8{x?W??i???{?;#''?W??ki?|B??8J?N&?????????m???]?}b??????c*-??b????????++?}a??Ve?~??m?>??[???Bt2??_??Vq?????m???e +K^8Co?j?? ??#]??????????_????q??????C???9??.o???????M????X??9?7? F??>?}V???3???z??q?????K?????~??:g???^?N?}???k????#????@F?|_??????Z??}h??W??J?l??,Z?L6?$i2W??K??:'S?W_???oR?ua??!?'?#?{)????????I?W????Y?oP??????#6?i-?5??S????????U?????s?`d?$7w??W?@?(?CJ???f? +??????Y???o??g?e~?8??*???,?l??'???X>?????[????[vML;N?=? +A ????t????>?j??????t??M??{?VMn??s??s?F???i+??????]j????nsLX???B??%f5Hh+? ?M????????}lU??u?????NAsMm ?G?? _?,???c?.?[q??k?=???]&???$E???? +A??o??????>?? +?w?????ti??t_\??_?????^??????p<B??:S?6?H????|k??????:6>??2?j???i?&ysen??>??_?????????U@?-i??\??t???7?"???l;??X '???????~7?????_?z?W??,???cV???c#8??e/?BD?V????x??????k? [???fY?~?X?=?f.y%??????`???????Y??K?C???o?e???bj?4?g?)C$?e???|?????3???s?[???V???????S(??U?f?Yk?a??Z_?z?W??,???????~7?????&1&??Q?????D?a~ls2:v;???1???????>Tq:o?????}1?n +??? ?-i????????_??l??"???????????)?_u?L=??^??q?????O?_?????i??|?t?}^???0????w?Zu???C???o?e???`???????Y??HF ???,?1??0D????????T32???{.?????s??K?0??????0?kOY?I?????5?????J??{>?? O??mi?etL?w?dd??l?[??9???????????)~???_??l??"??@ Gp???3O$?c??H???????????:?a??\k??I?fV?N?q1??/??5?}???xcUB?#????{????#???zwE??0???)6 at y???+???Z?????n??\?22f??!zbh p?a??)H?r3??)/ ???]}K????,?-??!??!?-n? ??Uo??Sro?c???O??Z??Y?^?p?8D?I??5??`?????:?L????????M??x?dVXAq??n??_F?????k?t???wRz,yi ?>????f?Pd???Z?y(h?I????[??W?_?+???9?F???:???;?????Z:_??G???]??N?m??9??sD????x$u:????CM???'???>???L?9???m?\? +'?T??7?u?e`1????]{?@???x????yH?G???????#?ur?k???[w????????? +V??!?????/0?A?x??4?7???xW?h?????6??Y???ci??c9?=??? +sL-N??3?:?mx??e??O??h? ???j@G?{??q?9?K?I?0?\?Y?s? ?????x?c??????????B?????1??`? ?xJ) +*??G[????o??'/???????Mf??}/????aa?Vj?????%??4O?h ?F#?@????'??'????fFF+78????'?}????3?M????=?U???? }n???P?????]??z~7??Y??T?????$???y'!?JD???_F??[?c>????w?ZYY]/??4YM??ku''????????g?E/?=?+?????Q?(?S????????g?E/?=?+?????R??U +??g?) ?$?(??2$?"????Tpr???z?g?p????z??Vz????q?5?a6??pV`???????Y??K?C???o?e??8#UB?$???C?|`P???6?N???L/86??l??h3???W?\/????mO???????~/?????_?z?W???,????*????????????/?O???2?W?v=,y??-i??qU?p>?g?;')??\?y? ?????=?+?????R????????g?E#????|?g ?19o!#?~?fc}YoNNm??bq???&C????Id?N??????R?:U???+?5?k%??a$?Ga?};+???r7??????[???_???e??p??m?[? +?????au/???:????vIp-"????%?p??:??,???gP???????I8@?(?????l???????????{?\???JQ????b??O?????;????????r????????? +??????c[??mms(?M????& +?-??{??-?C??W?'????w??o>?0g????????wNG??_??(ul??f??$??k??k?'E???mCW????????v?G?[]m???oc?"]R??O?=*??}3??????d???? ?S????????x???~??S??w???????S? ?????"?o??V???:?I??dQ?x??Gl???????-????????,/?]?,?b????????J??????C?bt?K3slc?&??0>H+????????x???< ?L?Y???K?/???}G????u8Y6N^??iq? `???x +????}?4?=K?!?U?v#??_?l?X??_?????:??f?;kA?H?Q???}[??}W?=??????????D? ?J?>??H????>?b?????W{tysc?;??t??5]|T??z??z?????t3Sz?Sq????9??ATq?????q????pem??.< +Z????a?????]W???????h?@d???,??I??VWI?/#?r)?>??h.l + ??@???BU~?G]>?u?:?I??x?y???3?vN?1?-?????V????^???7?i?GC^??M_Z? +?Y??????Zh?#?1????GT???xnu??U0d??b;/?y??W\?X."??{o-?]]?J:??????h ?#q?w?s~E(z?;??$~J????o???M???mV:??????l#C????????9=C-?b???f? +?"%p??G???;zC?q*??D\X?7???/@??]?j0????=z????8$5?=n??4$C?????/?W?X?????V?J??????t??}X???6?? ??????b?y?8??uU???5?5????t???:Vkz~5x???^+hl???? ??^qUz?|??H?}3?c??p?????=???yp??{?w?????u???p?????H?c?`|??C?_???K???T???????}? ??$?????c?a?;?Y?c????:?4?o?u%????Vz?k0pr?\?'c6?Ly?????+?c?'????c?4?2~I7P??X]S???????.???rs \`8iO????^??G????????H?|B?????+?e]???Nn(?KZI-???C?F?????G?[??u??_M???z??o??D????`?z?dh}?????R???~?~Kz?Kv??-s? ??x?????^???~N~X??(6?V? ?B??????? +o???????W.????k???V??k??+[?u<???? E??N???O?~??2??????????c@$9????Q?'?u???}?!??4??????????uU?k??????t\????NK]?? ?Y?."{????dwu*?@???g??????W??W?????1#??XMz?s??l?)T?]c??K????i?e?`???3v???t?$??w??rU??k?`}G?}e??6?j?2[Y???`???sA +?^f6-??O????,<?????/7?n7P?D:??Yv3?g?\?r????????NevGW??"u??????U? ???H?7?~??}?]>???j??f?^?]V?????l?l??S???E?? ??????7??L??at??j??X;lhp#?W +?-?/I??u?X?\?|?)h;{?j48?z +~????_Bw?.???_Gv@?0Y]0d??br???\N?WI? ??e +k??x???????R???2k???79??I$5?> s?\t_? ~?? OQ?E????O????????u??k???0>?ae[????_C?,f??p?h?>?????S?? 9??[???~??O????=?Vs??????s\o +??eh}H?]? ?ua???E???F?=?(? +????T?W[?g?H?9?8y??3?F? rDr?G???????FH?#9? +k\C>??!y?????u?????Yv?(??X^?\?v??'?O?l^??C\FFNs}\???^'l?j??"_???????9R???[?c??+B???W??6u?e???v?????D???D??\?.>UQ{??[Z_????????zw?l?0hf=R?l?@??????#?H?#??M]O +??:?v?a???? l?U\??'?Y?????}K?? +??D?????5?B~??k????w1?9??!b?_??V?>Y??9??!?8???C??i???;?&????~??.???s?r0??)?>.sAp???&????/?Lu?CO????}?????Yc?X6?Rt??E?????tl??Ue???vKn~???]?:k??N??:oJ5?6?L?;1?Fu?~J? ?? "dN??????z???????????k?u???\??[???A??????Y:Fo??/{?d???????v_,9beB@?qH???*X=c?? m??e??A?w?+????????V??????????f???&c!'???m?5??[???S??rZ????? I?LB???V5???j?ns??????P??R?????????$}?s????????8????k?q?I? i|?F?o??0???X<r??_W'?X?5????????????n9??D +???????????=@Rrv?p??L?JY$$" G???0r?'?ye??o?c? *?Z=??<?;8\?c4K?i??g?????,???X?P??~`???+? c???0UO?}7a???Q??;`??BY'? ??pY1r!?t????q??v????#X???:GL????1???M??h?P%s?T??I??'??;?`???w??bx??0B$q??????????O????????O?rVm\??????&s\? ?e??+??;?q7m???????>??s???[X?enc?? H???f5@??it?nS ??9?,?#??? m???,????ps%?A ??F???-vD???9?B?????????\?5??8????^_S??v@s??I0??BY? $?v???w???i????s[????D?7*x??????#?s?,3????????^}???&- }??A ??+????U:?XQU7???? +%?]k?1?n?h ??FB????;?pFq?c- Hq???(?7??????z??(?7????k???????o?m???|?Y4??9???"g#????,>?????H?8]C1?d4??x?-*?L??7??? +?P?????1???????K?:?)??4:????#????=?o??????R[?X-??<, ?????3??~?]??ql?X\O? +z?W????&%???i?LKy,?? +?A??V:N5}?W@?>C=??s7n??:`??_?^?GO ?S??S?W@??g???? +?: ???-?????0[?3ob?n?`?w??y???????V?zs???a??????????Pr:.q??eWK??? +)t=???t4??1??V?'????_?=.????mO??????X?ZtUg????????-.q +???eN????zYYxu_{0?c? ?W????] ?gt;??????????H #^??:?.?~??????z????r1??2V???i??!???????o?`h?????o??b?????u??}?2??\?????&H????_U?????]??F?TZ?O??"W???????S??N???????I?????7???]'[zu???w?8?? 1=??>WI:??^d[?????:?/??m?"?????;`???b??}R????-???um;c?? ?????????Lj??`?*?? +6?????????] ?????S>?C?????Ru?_?? ??[????o????????!j??????"???}f??t?????$?? ?~?????????Q?????&,??????*?v?Y??}???p??h`?X????U???C?????1??O?l???q?[?h{?k5?$?: ?3!??n?O?1??'?R???????v:?]??8??d???a??O????V??N#?l?s]??|\???!?8???]?|D,??s???b?%??=?s ?o??:NS?~]??|????|????c??`?*?u???????????F????k?fca??+!???K???>?t?,??v@???oc?:r ,????>? +??/?~??t???o?f=]?|y] +??K/?????0??????????_J???guC?.-?????eO?????J??m?????!/ +???^8d"0???)??q?F?W???A??W?z)%???e??????JV??????gE?=K%????#$:?????}??_7?7???6D??0???????m??U??u??e/???p-2?k|[[?>??xj?????X>?}A?????~Mb??X?h{^??~?T??Zzo?????????????w2Z??}g???A?7%?C;?,au??kA`???? ???%:??zJj???P???4?????\d????y\GD????g??k1? +???????4@&"????O?Et???????K??R?W???Q???X???Fd??p??2?}K?$???????C?_???K???mm????'???^??]???*A????>[?w?_Q?Qs:VuO??9??? ???PV????m????_??Tq???O????^??2??HG?? ++?$??m??>?u?????????>?_]$?!???W'?W???8???WN??[^m?$????x??k????.p??R=S2???`??A??H?&??F??P1??}?[??B???#???1???]\?\t?D?`}@????Cz]? +?NU???psvhO???????+???fH?I?????J?F?D?{?oJ?6??????+ ???t~???m?n/sk?$q+C??p?????????n=?,?qt0x?????t??~?|4???~??\????????fh??!????o???>??>????\????~?V?H??^??Q??????R?qX?>G??7?o_??`????{????o?????u?????wS??????????G:???Hh+?_uM?*x?+?e}x?Y???[?Dz?5?????Wk???:~K ?????$??#???????W???'?.?????O????????=B?{D/E??7????:??_t??;F?? Y$???G??G????ko????mfX???A? +?xx???2?e??S]?i?"?? +s?zD??db`?E???W[Z?>`+??>?Vv=y5??e????$??8]?`Zn????6?????????????o????at?z??c at i?e?????P{_???w??/?S?????u]C???V?6?L8?????5:gQ?8=9??d?????????????A?:???in5Mp??G? ???}\?????*???e??^???[dH? q????"???????_?G?v/V???G?c?'3??R??[#?r=w?}n??????????h'g???/RI#?$?f?4???>???L?9?????#?????????_?o???????????????i?F???????????????/?OY??#??gNS???}l?h???+???f?m?=C; }_??????q>??}$???vQ?W?????F???X??a??=???X[5?k??O???\??????V5?W???X??Iwwz*I ++???&?u????g?b?e?}S??????????K?8??X??}[??d1?]]-??>k?????A?u???'?,??????b?Vqw?s??~????h}G??????z??? ?[???'R???wut? +??]-nM?or?z~}^?eM??dv)? 1"?\F@????(?<$be???,?=x:?#??}V?X?3??Y9n-??s7:??*?Zl?????????h?u_H????t?a????????R???@??kp??$}?#?|?*?[s?????Bg$?2*Q&?e?^v??>?[??????vH?o???VoF?nw????=F??d?!u???8????? ?x??Y??O???????????Q??.????&3?1????*?C???k??d?????\0???1???_V?z??F????!?e???????/????-?G?? ?\Lw??q?3???v2=bT?????{2????g# ??go?Q??`?Y??u?????/??}???d??K;?t??3im???n?JG?.E?]s9????????!F??p??Q?????/??????V?&?5?????*??+??d[??Kk???^&]??J??,y??1 +????+??[??7??_nX,??.?"F??????????F??!??????$??-l????_??Kng`????T?V?X-? +????? +`??b$Q7?????\??L???c?`D+?|;]????2?^?~]?,9Z???Z ??}I??????n???sOpw?@?????a??a????? {?F*???w?Y>???"|??c??x ??^???????v=?m??8w??]?X??;????????H??????H??D???????]?S???9X?"?YK@ +a4???L?#j?????c???"FYL(q ??\?q?WLug5??):?@??N?2GJ?s??M?'???8?V?&%??1?"c?Zh?24/?va???d??8?1?.?????i???e?9TWv???????????G???#?=??)??J217A?4A???????];??????????4?Pv+???m7??s??+?I (?:_?)R???I?N?F?e +?C)?>?$?|??/??G?ff^;?:?9/??]? +#???RB??yQ?U??o?????~??o???3?`^??Eb??0???o??Y?/??|??S?w?YM??Df[ f]??Y$N???U?4????OF??????S?t????,x????w?5?p?:?X?????)?V +/???"?Hg???B??:?ui?????|???}_?_?O??'?/.???K\??>V??S???a?G???}Y? ???a??????? @?O??N#?\??????;?dS???k??X6???$o?)~?????~????3????>wN??7?ns???"AG?????Z??k?+????:w??;`???I??~?M??>S???}`???u???????{?D?Z?2d?j??O??\?????.??????8??tn?]ezRI +*??(?w?????????r:;??_??o?K?kd}/%?0C"  +I$4?O???? +y???3?7?g?7?~???`??p?V?_?3???,?????????!j??????"???R?q*?Y???? |2xn???V?]m/!?}??t7c?x +??Z?=????~??????m???0??H??????s???????a1????n???o?G?+?Yz7?.?U?7??Z??????????mm?4?C??T??8????}????l-?l7g???xd8 ?Ou??X??????eO???A?d7???~/?*???9??Ea(c"Fr"??4G1??X#?????2??????Cj9???e??????Iu?Yt?e??????i$?JRI$???I$?,_???????]?ib?t???T???IM?k?????G???ht??=3?d?ca ???Q?D??O??????????[?????~????T???_?'?Q?o????S?t???^?Cn~?.?4 +????=+????b}#?n??*??^?=O?ID??????????????vv#??1??X??d?y:,L????O!?1?????M{?O?$/?fe????.?\Y????XG??$.??????W?w??'?]H?&????\??????}H????Ok???V?????=?Z???> +????}b????z?Xc?g??cW?'X?9Y??_?feS?^>P}? i,.?]Q#???M??.??????M??Z_??C`y?R@???????>?????0?~X????????????V??????????????FHk???????~???~??v???k???E?{???F?????N???????cn?K?????p?E??g?_X?G??>?t?6u\{[??y`????-???\?'[?????]?-ue??u?7???????eKM??^??J???:?T??x???`????c?gU{??~??~~N?N;K?%?<???????'???????????43n????[\@??? l/Q???k?9?Y?^Bz?????{Mb\C?JU???zWI???"???Z* l??$H???+6???o??s????k???:?`???????O?/????H?62?RP??w?????T???lhsg?"W7???B?A??5???????T??^?s? ???W?]??w??b??`7?;???q./???????????_?????7u?4y?s???UX??????????(???hb???q???mM?>?I????lz?L5T?????? ??7?#?????]dMo??????W??????c?} ???? ??????]????E??!??dj?:n?0?ic[?G?ak@??????A???c}a?9.?Y}??y[??? ?<_f??yW???b?s??=C??{L?W??SCLt?????M??C???m^??????????S+?}I?w??y?f?c?c??"P:o???Q?6~?]???`{? ?\3S?<)}j? +???:??'?3?v=|5??????qC??????????ieci +$??H????W??5????????????'I????, +???.?o?u?????Y????`???????Y]??/c??????U???3????H?!??????5?????|?|n??t???<_f?U????e?,N?[/nNuB?C?a?7??\??*????????? ?KC??}?"??i???}~??: +???????8|????K?=:???e?>???y,?}=xDQ?l.????u5?Yz??_Y:o??&?? +???+kk?I????z?_??????x?K??????>?u?,?E?$?0??,??f.OI????nGX?????7;??2"?Tk?{ +???????????F??c??X??i?es_?fc????????M^??#%??>???A>#?R??W?1??V)???n.????????w2????G@???h??2???|%?Q?7?Z*?#. ???????T???>???-?cc???????=???N?=?FzF?_??Mw??????U????????4??I1??vcQ+?????}T??T?<\?qh'?]/Z????MC%?????LO:?3 +Mx????&Yc????F?:??%????v???2ms????H`'??tO?x}i???0?w???U_??q??71?wUs??$???D???t;3O?9!?G$E??/?????w??o?A/???~??b?????z?W e??6?!??'7??K?????/???-h??rDI???s?r? fS???m???????????????-??-??V~y?5???????a]????k?u7???9?3=#}\????~??b???_??????????J???&?YSi??4????n?????fe???????O?!8?d?ud?s??c???iz??????????????oE?????? +??~???V-u\s?Z\?|uZ=k???jk?%?{lv?+g?????:?\?1??,r????=O?}b?g X??/6?????????J?z7?????|z?c??????^???????????-?????\q???;????Q??>????\?]????t?????48?l?5??E?????kq?c +@z?9??y??n?oM?????'6???4I2???w cGI_?d???r,???^$?`?,?2sO???v??oB???>?v?~@>??????????UY ????????fU?7????k?Mmq?u^?=?*????????f`?43?`???A????gQ??????cl?;?Z&@0ws?D????HG??????_Z??O?????~ ? +}#q;??)t???/?tgu?W8???s????[+?qm?????\]F>s@????+??_#3?\?}??`??7;?ad??@?:?q???????????/??V??qs??sK?_?6;??c??g??'?3?d??? +cq;??????????`XHfM??H?.W3????M????O?:F[?????D??????4??_=k?}???N???????9????k?p??"}?UB????Z???fQ/!??B$???tcc??i???=?C??O?~$.c?P?c??!?T??e> ? ?#^?????]?'????????D???^6so/??kML?6?!V???3??X???F? ???d ??+W?^=????????\Z v%a??(?Tq?5??,?,?7}#??#?????je???}???????}Ym?>?9??SC????+?c ?t?ulb]?ef?#?Ix?:?~???,?[??a??WW???>?z????I?:X??? ???????}b?~_O +?y???v?2??>?????s:v ???1v??y?i?W?}D????/N??_?X???uD????-?W?f_?>??eF??u.???????xp??E?@{?W?W???????{ki{?F?I0A?*??ta[A}??[??E[+??K?????]S?CDH??l????????D???#??0d??u?ld?3?3?b&j7???????????????oE?????? +??_zM?2??xu? +?r~kw?:? ;3-uu +? +R?@?7VNW>9F?c,?D??????w??o?A/???~??b?????????eU?]W???.h???j?n?GJ?9w????6$??h??U>W<'s?c9??;???????w??o?A/???~??b???L???z?c0????????4??k?EuM?e?6?[??x??/r<???@?}J???M??\_??4? ??????i?????W???t?V??J?^6?YX?\:??????*??[ +?????JT??????bt?V?pkk?4x??????H????????>u?s?m?S2?Yg????V???{]?????h?t?zh?;a???w?Di.y?PI#??????W?$}uy?? +??\???lu?.s?uv???60 ?????T?&?? +???????QMgs+kO?@?DI?????Xz?U?}C???!?$??pp ??g????oS?????V ???a??????t????G_??/???2???@?t??`Z???s??V??U????~???O?#]%??????qp???x?*?u?????_?/?>??zF +V??a?Z??l?#?e?W+?^Ew??x?c=?z?2;??o$??? +Q??????j?????????)???~??m?Ov? ?S????I?Tw?>???????????S???99M???h2}??%u?]??u.?????U?xu????|~ ?I!???????'??k?_?/?/P?9X?K??,?#??f??h?'Uc?w????~?t???@?3?m?p??u+?I +???XK?z???????5+v=t?aC61??!??O?v]_?????Sw]uc1.sH?u$e? ???GG??=??O?? ???????d;C??0?W???}_?d?? +l?:?<:?4?'i??E$??qxR???o?C?oS???}b??{o???????)????z?]6?Y?d?,????U?$?o??}5P?????3??*???????~?CJ?????:??~???.???[?}S????[??i{d??1=??~????[ps? ?'??n?????H^??CN???G[?????a????gIg?7?;(?5?C.?wo??7T??z"???2???uc?V?HW??????7???????????????z?k=:r?@??C???R?B??????6????aO#E???S?'?F??F?z?? ?;^???E???_?}\?~?Nk?????qqqNC{??? ??a????~??l???:????_^??? ?on{"??????L???R.????ipn?y??$+H????M?O?~??g????NON?n(sk?4'??.??????r????????I????z???????????z/??au??c?Y!???t?c??"T?D?6T4??X???????u????|H +I ?=?kZ? +????d????4?U??@<??Q????M$?em?"xvQT ?4?SI%YX?8C?#????i????SI%YY?k?8<??]m2??|@I$?e???}&?|D??1?E?? +I$?,]]n2??|H;Z??hx +????5V?.cI? )???????j????JGo?$?,=???????"G?N?J??UP2?Gpw1???;?%I$?g??[L????BNc?????J???c~?Cg?B??????@?b?????m?9??????????uwC?[???? {?sZC?]?K|W???o?a_a??????p?????z?,??X???>?g??!f???????W?????? ?NN?^?`???E$N???U~4??t????????/???}0}?6?[m?$7s?X??#?s????~?`??X????5?p6?{w.?$???A? +W?#??????/? ??,??????{}?s??Q??????z?=O??,u? +?f??->?j?-$???L?? +4??s??x?-?-?8???l??X_???u>?????Uz6??=???i]Z?W???i?????!???t?~C??#"????????p????a??uQ????t?????i?H.?x?GI!????^?to?]gR?V?7????s?+????]bQzG?~??{?6W?????????m?n??n?????!$???k??^']o????? ??N??????m}?{Z?=?A???{?t???o;6?^>c???p?<?$????? ??w????????|???`G?d?$?,=???????"G?N?J??UP2?Gp???pxS??,???-kA?$?1?I???%I$?g????- +? :??e?>bT?IVX??n???BF??e????IVX?f??F??%$?E?$?I)I$?JRI$???~??S??w???????S? ?%4???Rzi?C????}Z??G? ???V3?=>?M?s??jD???_?[?#?Q??nX_???Y?????S?1?'? +?-????{???zNGS??s1????:?%g}T??????_?EN????(s??H2#?? +?F?t??g????????r???c?  ?mr? +???\d??Ev?=???J?s3?????=9?V?u98??e=?m??{H?D?g`8G???(???/?J??}p??|u???|^ ,l<?????s????d?U???Hub?J?k??k?;\E??v>???????6?b??x{??4N??D?????M?L??~8?#W8;p&$@ ??????]3#?????? +??????e??^X-l???=?u?;:???Nk?v;??y??I??JQ}t5??????}R??P??????? ?'?.??????]???e???g?[??1???W?EV?=]????Q??a??2??{?]s?kA?}?tXz????6?K3???W?3????YP?????:???????????2?I????????????t,:?q?-?.{????t?????-?g??o\?v%?#???/????;j?????????j:FGPk???T??F???}vP??7z????????,???7?[q?m??F??"a??~??`???????????l?????-??????U??_V?y?yo/??_?A?? +B/A_?$j +jo??????VgA??????p7???~???<??m?????????L???*???I?_?\?????6?/I???????-??I?+??(?7@~? ??????g????|g???d???w}e??J?21?+??????]??????=Hq??g?[z???y??+pk???|??_N??????Wa3#?U??O?k?C???X??'?_?m???Sh0]??\?? +???_3?T&??fS??D<.{?u???? ?????62???*;R ???BB#?I??????zZ??f;??l?????????X?7m?????????I???0????4?\\b+??W???K +?Qtb???????????~????H??3?dd?h???G]#???? +(??x????~?????zC?l?????????@ $g?u?????w???6? ??? +e^;???????0+wI?Y?????p?? ??X?+?#??????K????L>gi?DQ???]?????M~V[?Y??N?y????oQ??z?5?]L|????s????????SC?w????`}c??????Z>?X?.?~?? ???B +??O???O??????uj?`?a?v?j>?#??}lKO-5?.?D??????R????O?s? \v??g?9L??????-???f-?5?v????s?z?'Q???&?M?zy???WS?????W??G????^M?fU:??s?9????q?YRhK????P??????ER??????A-#?H\??V+???mx6;??V_???%?}?h????y?????s????z ?w?_?SwI=??R_m???????{d~b>^??%Dj?????1:?y=?lT???M??#t1<,????7??G?1??W??h.?o??????3??1????? b??w????'???$?K???????.?j#???h?????m??-??fY[???d?b????????p???VY???1????t:B?~?u????W?i?]??&??\?e?u??????/????????{\???uo??????????_??z???dd??????d??xT?7]?vdbS??i? ?e?? ????S???B??????'?I?j?????t????F??GD?5Z??Y?h?Hoe???(??#_?u??o??????B?+3=I?\?c?K!?7?|?a?????V???]??Y?^????4??({??2??e???H??G?Q????Ibt_?9=O%?[???k[?Yd?????u?????86fz??k?lx?J>?xx?DS0?0??p??(?wN?????E[+??q?m??`??6???{+]?duWZ.????6O?|$?e??b???????????????Bb???O?_h??."Em. w?+??_]?:?D??6??<|79? ;D?Dr???? ???????]?'!?#?fM '????RH?a?B?1??xin??o???~?}???g??m????n?`????!??~?M?t\??D?H-??"V??11???Q?????R?v???F?|??}?VSZ?]????" ??M?? hT6??????Q???_?O\? }??/u????%???M?/???????-?]O?X?P:/????o? +TY??et???U?????\?W?l???x???n??V???,?~??e?????T]?.???@?G???G?d????w??L?};/%????5?????n???????#:?Q?'?e`???m???>? +??O??G?`t~??.m]C??l???mi??????u?????O??)}?kj?h????5o??z???@)m?A??$??7???t.???,?}??.????j???????~??\????5z2???H}??5x???????U???1??nN?+????2 +??z?}S??z?.?>?`???syd?+??3?u???????UX};???? +?]?~*???? +m}G??5? +?>?4?,q? +Q?'?Q>_??hG`De?W??K?O?n'?lK???c[??]??\???!?/?4???????^q?Ik?K??8?????t???P?????~?V????B@?Wy?+??}?S??6?nS???]~ GQ????? ??s`?U?Is[?q?m??"?[?C?????-???L??6?_??s???SH?H;jtg??f?#)???}Q;??K????u?2??????:I??-????<+2?K?ubEM?G?r?? ??n???lr?'%?H??"?IsX?[3r???I??????L7??B???B?????????@?????) ?12???f?H??@??Q???M????????????v3_3k?|Z???2:S?m86fz??k?lx?J?xx?M?I???? ????8????????}o#??E?Va?q??O??!u??9=3%?U???k????`yh???"t(?c???\Q?????oD??uJm???,v??9>z???o??}?5?????Z???????#8? :?S4???????????$?????,????Yb?e??=?s?Iq?????????9??????????I9?I$?JRI$???~??S??w???????S? ?%4???Rzp?C?????_?__?WP?????????lp>?D??????_?i?????W???S??h?fu????y???9t448???<%Z??+?}Y;??m?Uz?K?9T?gd?E????h?hR???gP??G@??????V?Z,o?0W^?G[????(? ?wx?????}U??i??l??I;L{\$ +B?R????gLp,cm?[???>???$u$???J;G???-???}????g???ktk?????g_??O???????????{???????????du??W?????a??X Y?tx????^??= +?Um[??>??Wg?/??.????qp5?????`u?L??4+???????]TTknAy"X?????_?*~?; ???Y?k-e??????D?:???????????L???zO???~??????I??????????t??ugf?]??????H.>?i?G??v?$4??ux???'+?u????]???5??I??n????X??V??q +?_?-s?CI>?h???$??]#??Q??????o???Zu.????? ?? ,??U??Ii?h?????z???Z????+~?2??4G??t !^???WW?ec?TgG{?r[?i.?q,N??3?a?G???k?9y?8??&l?'^+?1G?@?D?65??U??wJ???cU?T?dg???????\???z~#.????m?:CK?`???]?Iw? +?(i???'O??B??q?????[?,`K#?x.??????2?* Y}NcK???[Tz?V??t???{ex???27?)E???hl9Q>???^?M???c?9?Y$C?0?%?}T?????d]??U?>? ?N? ???M?P??I)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)p?Y??}h???:?D?????????H?????ew?G??????????2ql??c"?h??B??????}V??]\??eZ?*}rv??P5X???7 ??N?gJ??r*-i, +?wGr|?_[?????x??H???????6???U~????o?????s6a\??E?q??1????#?????Zh?a???_H3?v?~???$u$?n???????? ??gM?????;)?X2???????????2??'??j?/???o??W?$?????`??'???}_oN??e???q????w8????^e}b???5?U{[? Y#p?t??$?oe?*??G??] ???+:Qf3??e?f???=?A?O????'V????[:?2+?pu4R4$?A?AI.??R???_G????K?u?????m??0e??N??[???mY????q??l???:?????Hh+???:?D???"????/:??f??????HG??P?:???]%???Y^?(s?^$v??Wp?CB+J?u????y???Uz?? ?m?O?? +?R?a"D? .???3????M???F.m?r+65?? v???F??u???????S???k??k +x????)??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J?]????3???????????}$???H??c?V??t??E9???+{f .??????d??}j~oP?8y-?m????Hv???\????u?>?e?6?,??kv=?A???SP????&??5???????O?I???f?%????'??r_??to????5??????w~??????????;?S??_?m?Y???to????5????2]?,r?g?$?O?????/??????????????g??g?2]?,r?g?%???F????Y??)???w??K????????;?%?????????F????Y???%????'??rJt?????????h?z_???O?I???f?%????'??r_??to????5??????w~??????????;?S??_?m?Y???to????5????2]?,r?g?$?O?????/??????????????g??g?2]?,r?g?%???F????Y??)???w??K????????;?%?????????F????Y???%????'??rJt?????????h?z_???N?I???f?%????'??r_??to????5??????w~??????????;?S??_?m?Y???to????5????2]?,r?g?$?O?????/??????????????g??g?2]?,r?g?%???F????Y??)???w??K????????;?%?????????F????Y???_?]7?tl????}??T??5?K{IOOw????PaY?L2?c?????;?%???????S>?U?????n????????6????.???9???? ?S??????????g????w?w?K?????3?.???9???????K???O????????????%??????????????l?z???K???O??????????c??k??%:???O?I???/?w~??????????????c??k??/?d?7?X?????IN??;?S??_?m?K?????/???????d?7?X?????K?.???9?????S??????????G????w??K?????3?.???9???????K???O????????????%??????????????h?z???K???O??????????c??k??%:???O?I???/?w~???????????????c??k??/?d?7?X?????IN??;?S??_?m??K?????/???????d?7?X?????K?.???9?????S??????????g????w??K?????3?.???9???????K???O??????????;?%??????????????l?z???K???O??????????c??k??%:???N?I???b?q?W:???????]?????3h??YG??K???O??????????c??k??%9??G??R??n?T??^??~?}Z??V?x???wYk????V?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?????.???u????`????}"?????oQ[???y???????n?X????d2???-v??qx?_?a??^>=?F?jhmlk +h?jJ~?Ix?????r:????????e????c??))????~??_?#?????_???W???_???"??Ix?????r:???????????????????6t=???????????7u??????M!???{D)???_?#?????J}? %????W???_???"??????r:?????????^??e????c??)~??_?#?????Jv?U?^??sV>??q+?~?R?>?t???? +????k??[~??z?e97?ik}?sCX<\?8 ????}?????;??>?????p???:>??????????K?8?~???????d??????????K?.??????z_y???+???????$???.??????zw?.?L??Z<'????~?b??|?h??"K?????????????Y?GG??/???????{C?g??^s??Y?GG??/?p???:>???}?????;??>?????p???:>??????????K?8?~???????d??????????K?.??????z_y???+???????$???.??????z_??u??t}???????_?>w???}%????u??t}????? ?????????q????A????3?????.?oOv#?k? W?3?y????&?9k???n??=?F?5'???? G?Xg)?????r??a?9 /&?????$???RI$???I$?/?t1?o?=?PC???i?W?/)??v?t???E???????S?????z???=I$??RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J?Q????l??*??????????JJ|??I?5???k??^????I?5???k??^????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I!??E%??Yq??pl?)N??k??=?{??I??J?xOc?5V???my??Z??j?9?$? +?I???bL|?4?c????G????K??I??t?m??q@?Slmn{E???$I?? {?.S???1k~??????m????~??p???????Ip??W?????1i???????m????~??p???????Ip??W?????1i???????m????~??p???????????>NH??)?????{ D???.b@????Dhx????????/??'????m???????`????????c????G????K??I??t?m??d[Q???P ,??=??????d_?z??iwx??=??6u0s ?,????D????=?~??p??????~??????m???_}8????+??/y???X?t7#????^? +??uB??s7?n??_kA????:????r_??O?????o?+?]U:??+??\?$DF? e?M ????[??I??t?m???c????G????M??zgP????6??ns[:'Uu "E? +gJ?I"l?R27"I??I$?HRI$???I$?/8???.?w?B?u????E?????IOm?s??7? +??P?????????Z??RR?I$???I%)s?]?.OR???Fz?c??%??t?&?"Q1=Yy|???9a\P=v/?????R?]4?V??[??O??\?s3?w??QIC?a??????????????p????????~?~?_???^??_v?U????'??>]????????r??.?N????s??'?^????X?????????t?L'??$??r?9s??,??D?;?F+?????7??yc?`????~?~?_???]????}}*??o?Z;?F??!?D?????s?? 8?#?|???\?s/?w??????????????a????7??O??|???\?s/?w????~?d46?|?Z ??p???T?????????c |??S?s6???????/?Ms?=????????????}??,?~??????UW?)$?R4??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR?????????J?????'?&?????8??u???#???0??u???#????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jy/???????;_k?|?B???NwS?????WYN@??Xh??????-?????W?Vf???1rN&^8-k?????HG,I?"??????9??N???#N?N?.??s?6.5??????$?????? ?P:G??????c????q?wR????XK ?c?o5?[????hl??`??]???s3?R??9?mie???4??w???vuy????R jw?4?ruN??5.-???r???#$!??c??e?rX? +-???6?Lf?????u?? `?V_@????C#??%?@V_NSXY??hu_?????2?.,k?rXL(?????uGu+??E?W???4O??tH?C????K1???+(??Yxe^?x?Mxv??}LlN????U3>??????k???????C?u???v/LnC)????s ??6yW3?M?L?.??p??????<8???G???????WQ?ho?6???SD&"@??????)?y|?0?)????b1???k???7??N??FgI??y?$?V???????Z????z!w?Z??????{=?Y_j?????6??vk{??Q?W????????DKR!?Ws?y?2????5#H?M??T? 0^?[?Uu?????<0??????C???Wk*s?????:?O????s>?S?[k}0????!R?????????gz??Vk??? ???Q???A?4 +?kc??F3?8??3??7??@???r?m}c??au????{?????Ln.?(?^,?N??_????}M??q G#????bt??m?)i?v?-?x?g?t??9?^????v???|?!(L?q?~^w??k??|9`rO??U????S#?t??~fv6=u?HuC?p?HY?u????-?z??v;?{??p???]?NF?????zo?"!a7??K?f?E?t??#`  +/?g????k??????&R?!f ??e????7?=-?#?? Z ??>"QTk??V??!??))??U???RI$??I$?$?I)I$?JRI$???I$?/8???.?w?B?u????E?????IOm?s??7? +??P?????????Z??RR?I$???I%)$?IJI$?R?I$??????????Al?o????????? ?>It??????!??????z????U??{?/?'????] +?H???????I?jI$???I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??_??????6??aW???~O?M??%%>q?$???????G?O^a?$???????G?OIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??????N?JRI$???I$? f?u??WC?;?? +???4(?$SD???N??_?s?7Q{????M?2tw???J:?e]'?t???k??.w?????_?7?{:?-??????;???D???k?????=?y?S???{ +???,?r?r??"S?=??9?xj?uz?V??j?????????TT?Wh?$????I$)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)y?????p???????8???.?w?BJ{o???????V??????s??7? +??P?????I$?$?I)I$?JRI$???I$?,o????????? ec}o???g?G?PM??K?????t??i??????????s?Q?=W?c?*?P??G?/???y??O?RI$??RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*?G?O??????? +?Q????l??))???'??W????=zz??'??W????=zzJRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?9???????`???&?F1????mc@ +? =????????8???u???]9G???X?Zo?N???? + +kVHFS0??????: +?l?,0?r@2kb?38?G ??/B?.^6]"?kmn??2?? ?E?*I$?B?I$???I%)$?IJI$?R?I$??????E?????^????v????a?? )???????Z??Vw???O???+O?CV?JRI$???I$?$?I)I$?JRI$???????w3????-?????????A7'?/??~O??????6??_?OU?????}D???_?????C? ???u??i??I$?{UI$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????'?&????*?G?O?????????????]_?6??????????]_?6?????)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??'?ju?0?#0?qm??-q????K?^?L??3???rjm?C-??}?v5??4????_X?wO??=?|q?^??P???n????|&??,??:???????0?'?t&6???l?{Yp????????~@??Y?eu??k????1s[??`??;.ea?F??M???5??P?5?????psUg(??.?x???z????uN??9?n??????Y??????D?????????^??e?-?>?|'b8? {??^Z????}C'/+!?????f?>$?o?&66?X???^???sG1?l??????4K?t.????GO??{?~M?,c?n$????????y??O.8???"c=4;?????nV?????vX?t??O?zr???=6???K??????????Hr??ok?????c???z????$?S? +I$?R?I$???I%)$?IJI$?R?????? ;??z:?????"????$??????????i??j?Y?W???????? +Z))I$?JRI$???I$?$?I)I$?JR????????????V7???N?T???$??Y???N?????Q?=W?c?*?W=???????? _$|????????5$?I?U$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR?????????J?????'?&?????8??u???#???0??u???#????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)???4?? +h??UgX?oqkr?%??????df?n???z?N%??@?I0???]?X:?H?????8?I?M5m?8!????H??B ?>???sz???????8 ??V?\ +ezgL?X?W??7?????x?5???I?u?9}B??i?W?<'???pqz~%Xx????hml?}X2?_??7???t?I7?z?c?}w??i]?3%????zk\????\7??? +??????P???#?]???????.v?5???}??E +2J=?M?c??? ?q?a??}e??s???????J???O??[?!Y|0???+?ecbt??2???0??'p?1?g??K????zspm??tkMr?'$,?"??~l??.g??3????O?O????}>?FB?? rO?*?I)?@?JR?2?2'ru*I$?B?I$???I%)$?IJI$?R?I$??????E?????^????v????a?? )???????Z??Vw???O???+O?CV?JRI$???I$?$?I)I$?JRI$???????w3????-?????????A7'?/??~O??????6??_?OU?????}E???_???? ?C? ???u??i??I$?{UI$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????'?&????*?G?O?????????????]_?6??????????]_?6?????)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$????????g?#}f?a??????a??? +b??Z$|?W??R????z;:?7T????YS?\GfV????,z?tfUkZt-??08?A3?c?o??F^_??Q??[????N7^??n?n??'G|??:/T??t???:?E??p?y?W???"?(??d??????F?b?????????m??????{?N??^???? `???;?A?2"??e??8!. $g)x??O?G?7???7n????{??H???k??'??gc????ui#,q?#P?\?|X????O?P??RI$??RI$???I$?$?I)I$?JRI$???I$?/8???.?w?B?u????E?????IOm?s??7? +??P?????????Z??RR?I$???I%)$?IJI$?R?I$??????????Al?o????????? ?>It??????!?????z????U??{?/?'????] +?H???????I?jI$???I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??_??????6??aW???~O?M??%%>q?$???????G?O^a?$???????G?OIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)B?k???kC????i???SI%>gE_P??6_?3L???????&?mm?????#?:?/?,??s?40????3??d??? ???da?{L?+k???????.?>???k,?)?*??6?w@???u??5????r??%?q?0>R??IH?RI$???I$?w?V=/??USK???RV?8S??????r??????":???????%?I?y5?n?|v?%?@w??????y?q2??q???x?????ox?.?????wN?????M??????????????u??????? +?}?????e????!b?F???jh?Z?_GIy._???t?;?^???????=?????1?V?????:U-??????,7?????=c??v??d?+??.f9?????o??>_??lO?$????=???6????]?????{??'???U??\c??pl??(?????8??4wX?Rz?T?]G??;3r?C*???hfUe?j???x? +:U??????X7f??U?~^8???C??iyoF???w?.?????U????)??????vW??}b????}_?+/?E?U??6:4?x?zG???e?W?????? ;??j?@?_.??,??????p???5?????Y_???E?????D??E???????????Z??Vw???O???+O?CV? +RI$???I$?$?I)I$?JRI$???????w3????-?????????A7'?/??~O??????6??_?OU?????}E???_?????C? ???u??i??I$?{UI$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????'?&????*?G?O?????????????]_?6??????????]_?6?????)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)???f~?jo9/mg??H?Do?8????C??yu??????????h????V??$??g??????????{Bg?????u???=?????fN5N ??1?????(??$j +{]t????U???}\??????8?kf ???????yX???j?&v.o?????":???f5?K???o?u??:FV~???2xj??s????5???m??Y/ +>#????t?????X?UP???????U??????????n??{?? =?r?L?A??????? ??????wo????l???(;??xud?????2?4?2l/-a?4p????c??????zU???H??XF?5??D?B;?????????????]i8?bW$j?fK??U??h??n>7???????1?N????Xq???4????I0%.??%????+???}L??wde???????Y????kOf??1????f??u??r?6??Po +????t8?Y:fg?qs??*H???t????c?+??^?}N???bd;+#7 ?+???l ???????o?4_}?, ??;yq??u??????ux-k?}G????????];*????g????n??? ??$?_????[3?~?KcP??V?It????gD?l?XU??ZA???????x\_????p???????8???.?w?BJ{o???????V??????s??7? +??P?????I$?$?I)I$?JRI$???I$?,o????????? ec}o???g?G?PM??K?????t??i??????????s?Q?=W?c?*?P??G?/???y??O?RI$??RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*?G?O??????? +?Q????l??))???'??W????=zz??'??W????=zzJx????#??????76???????V?? +?Xs??WN??k?^/??@??k?b??;???????????7YV&??H@'^?m$Y?q~?v?????U??]??9????;/??e?at?p?1+??oN??6_P??y?S??c??SsZ????a=??nT?????z?????m~????}&??Du?u5???????????Z? ??l;Xw?|??N??c????????.?x?:?V?Ll|??]?????(?ay????Lx?? ??O???p?.???M?????`?'?!?W]??(?w???}Q??}.??[? +sHswG?\7?_?8Z?zG[??5??*l?`??????_H???z'M????W?av???;??_ZH??????H|??I??_????c??k???V?????8???:3p?[?}v? !? |???-??&?:??s.? +???>?G?'?\>;:'????????? +???????????u?wn????5?&????? xY=&??e?K??????Q??????????? >?Xq ??Y?4e???g?Du??h>?u?????Y[K?x+??_?o????????lj?G???n?-i?% ?????O?????T?D??f??C?\?LoP??????i???0?ga??t@????;??@#???????F;??YH:K? ??*??? *{lc?sH ????f/?/??[?^?G???\6??@cpV??4????_?a^???@?8? t?(GZ?? ??L?????_FI$?R?I$???I%)$?.??*u??AIOQ???3?t\???l7??a?V???????LJ??????)h???]?0??1? ???DuN???=???? < ?u%(?a??t????Jr????}dgL?X??4??`??D?? +?|?????4????X#_5?_?7????? ?&???????k ????_ *??:r?!???{H??%$???;'I$?B?I$???I%)$?IO????t???2o??[f%6YC? ??y??????H???V??????R}k??? "A0?~?t???0????*?????>?~?s\"???R???z&!??????W^?vW^?4????~??????G?^j??]?z.wZ????t?^??a/?5? + +????u????@gt?Z?>^#????>?????????d??S????fu?=???;v?i??????~????N7??h;f#t%!?#}#_g?@????????I~_L?Uu,???V>+?nun!?x??w?M?Y??????E??? }?k?_D?h>?????_f????[??m&??$?s??????6??????? +?O???3?N??k????[[?_?C?????3;????dV?=? V?q???????Z?????[tP???I$?????E?????^????v????a?? )???????Z??Vw???O???+O?CV?JRI$???I$?$?I)I$?JRI$???????w3????-?????????A7'?/??~O??????6??O?OU?????}E???_?????C? ???u??i??I$?{UI$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????'?&????!e???n??J???>.$?????]_?6??????z7?????q?5??p?^?y?8;l??Zi?????mi)?N??)?].??{?]Y +???7 +gIS?]6???h????V;a?????????????/???o?M?6?????????*:N]?8?-??}4????D?C????"?-????D?????W????????????7?&??ZCJ??G]??E????????rn ?-???%?i'k|?\?S??OZ??t?n???k?mZ8?`????s?o?????????7~????HhG`6?P?M?~?[/k?>?t???v>?vKKo?y?3???]?'zK?,wQ?/8?H??????????????7?&??Z]m])??~?t?????r.?? ??(???L?K?U?LL?\????+?S?{?o??x`???s?o??????????????}n???^??Z>?t?????4??????Y?4????S0?>V3r-??0E??;?D@\o??7?&??Z_i?????miw??]?6v-?] ?9?e?c??n?3?? ???? ?Jm441??0?srs2).cXj?????W1????????????7?&??ZT?z???Q0?2?N]? ?.?I??h?HF??R?p~?d}_?????u?7???????????????7?&??ZG[???????o???'??7K?C?Sc?KX?z?????>)}[????w????c??=??dL??????o?M?6????9??7????I?wW@;l?X???F???? +????E??c~??????S??[?u8-.??7_a????_???o?M?6????9??7???hu??4??}??s?o??????????????Q?????iyh$4rH. ????????1_??k?Z?Ih???#?????9??7???3???\Cm??M t????i?3RS???d????m?K?1NI??????-?k$?;??{$????\:>-%?? #*??^?Ed??U?]7?a[???R??????0???????M8?7?4T????.??:?J??"~?S??#O?q???}P?_?o?]??\gM???4?z??????>??????Y??_?Z?:??E??}C?9?_C??0?=?`???T?????t7?N???w ??????zo?z??????????I?????IN?[???>??NCq3t5???n???^K??????j?H?? +?q???G???????c??? ?.?F?+(fV?jeOq?!?]RS??????Gp?2????/??P??8x?gp5@?2c?:-???Tm?????NCq???cK?\I?1?Jz??????????t?????o??M~??????'?????:&[??????i???????D??????a?????{??g?n_N??p?u7msF?] +J~???r*m????tz?Q]o?75??\IJI$?R?I$???I%)$?IJI$?R?7???N?T???????w3????&??%??????p?????????????WB????????1??t(b?#???????'??$?Oj?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%1?=???;^A +w?? +???Q????????;??K-?????,f??????-{???X????9??N?????????p???v?2??Tz?K??O?g???????yo@??}]?????????N?? ????-?????71??c?M??r???|???c????x7d?S?7Y??I??????j.??\K:?X?x????ys?U??#?\???{,c^??Z?? ?\O?_?xYx?S?8af1?}???v? v????IO??mcet?R>???W?998?????1??d?yXyl!??h????N??^FM4?W??v?C?%???<S???k??L ?f9=?d??/5??gN????????2??W?Ax?5t????}~????a?es??]?Us??????-?-{F? O???t????,??rC?l7???^??E?_?/\??????wS?f??X?8??=? ngP??????[?a ?8?????7E?z?E?X^??))????D??^I????S1A?????p?????S???1~??~?=??n47sKq????1sCK??I'?Y??Y?nc?qs??)? +Mp?+?/=n?s0??f??>?Us?k?h??g????????X]??q??e??? ?7??|? )?e??>?tn??i?X??Oe?K?W +U???s:v6Q????2B?????????W~??+??2zL?n;?s????~k?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?7???N?T???????w3????&??%??????p?????????????WB????????1??t(b?#???????'??$?Oj?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$? IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??g???Y??k??YV5me-<???|W??84w_F?e??????+??m??o%?X??q?????S? ?????"?->????IOvm????Ee?????I??z????+????Rsh???^l????U??t??c???#0?vM?]?????r?Z??t????eXY??w??SK?Q?o?#w??????? +?S?}&?e?}m?G?c??X???IO?f^?|[o??{?ip??9?? ^1?????l?'QS??\,m?$??/m^?3?C:_???&??( ???4??!????K????{?U?? ?a????^?d??V??p???v?neu>???1??O/s???=?#??@z?V???????o?IOV?5?,xk?-"A ??Un????c??d????I)??? +q?eU +60>????W?.?GV????.?}]?vEm 6?n2<'U? $??O?x8????[Y? +?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?,o????????? ec}o???g?G?PM??K?????t??i??????????s?Q?=W?c?*?P??G?/???y??O?RI$??RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jk? ??`?????A???.v?0??X??w^??u ?w????1?????\g??a?????G?n??V=?>.bJ|O???e?2? +_~C???Wu???X?"??sp?v?????????????R?????'6??c`??|???? \??u?lm???c??d|?S??[:fI??=;?[F9 ??wG??5???????V???.0D.2?r2???n??????%??N??/9??6??????>????.G????\&???4?fA????????_??????1??????????*?????G?:???? ????g1????~ZY?N???P;=_??w????? +i??h??obq??$?s?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJX?[??;??Q?T?????????????????K?'??????_?/?'????] +????z????U??????_??????????I=???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?????y=#?? +????X?"?=??]????W?,??}.?`A??qsLoi?y????k??v????? G??? ze??`bj?L????F??7????7??Lj }?9?V:?M??}m?????????>????\? ??I^??3?Ut????????????L5?GP??????Y?m]7ut??.-s?-1????????1??=?J?]?2??]?9??SR??h?JI$?R?@?s?????mO-#?CJ?:\?G??????k?vF%?>?????QD~???????69???F$?]G??$??o?O???7{??3=:??8???*?L????????Waf5??[?ps|A ?q??S??DN\7kb???!???I%?????, >?C??0??k?????S??L?F,8??$q??dk?h~.?K??U?W????GUCi?s????"u@?\??3?t??i??&&7l?%?"???3}???%?j??Vv????J???Z~???1??_H?k???L??'??Z~??(v#?m???{?;?y??^?.?_???s?? ???/?]y]???? ?o???T?C??@JS?F???8Hd???.?~?W?I`f}g???wK??~VEmn????!?-Y=)?C??????q??h????? +?O8?fa??k?/???}]?@??u??7'??,???9?>??}=???tk???\???;?oO?~vMm??ph`?$??G(1?:^?K.o???1?>???J?1?????mc}o???g?G?PG??n??]?[????/????????????????Dj J?_????1?(????k?D???_?????\??_?OU?????|?? +???y??O?RI$??RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$????N????)??43"?~k??B??Jy??o???7?; +???!u8???t7??K6?$T?SO?t?+???????????|J????V7@??8 r????2u1????i?????vm?YT????\?>??]????a?????E?%z#????rFU?f#2??]"??????yYW???e???*]???z}X4j?????8?'????<1???3???? +:?b??????d??J???+(??`h??w???V??|??N??q-4?T?? ??XW~???????2c^?5?K???'?bd}??w???a?\?e ??[=??h????L????????]u?[j???` +kGK?a? ?'S???[O?G#?g????>r??H??e?????|u???3?????j??~ #????=_??????`?????????????N??>?5???s]??:OL?]F????????????U???uDW?????w+??2??A^?@e?#??9???;?`???5?????~?u>?a??l?X?6H??>??_?W?o?X???K?j?m?????????????1??s??2??" l?>????sq?k?:{6[???u?p?t???????]F???u?UP?n??$,??????,?G??5~????????~??????|??F@?|?????.!?#?p?u?+3?fF%d??O?O?????,?G??5~???????NR'??j??? Fq?q\H??????+??????1?m??5??ch???G?|?v;z[2?q +?7????s???5~????????????????l?0?#N??K ?9???}??lJ?,?????:???0??v??tN???N}8[^???_M?A???????[???zG???? ???= +6O?.???[?????~??&B)???'M?g?\??+??u +c ??H??U?ngO?-?l??m?{5Zx:,??????,?G??5~?????? ???N/???[??2?5G???,???w? +?5?????,{}???^??V?????k ?0?3??3???????????Pz? =??????B????i???ovc?6G??% ?z??????_??y|??X?kr,?-???z ?-?[????.?????k??????? V+`??=?1?\??@??d??h?????N~?b*????I'?T?I$?$?I)I$?JRH-??s?6???????? FIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R????_V???~K?Ee?guF6??f?x????????6??PR?e?k???????Zt?C??N?@l}L???s?????d????8??[Pq?pV2??I?"??????S??1???xY?C????7tl-gE?*#IsA??VH????W?K~???Z???????zX?h ??;i? teR#?+??Y?[???? ??? ?W?]i~-?? +h????????????Y>??7 +?!E???<9??: ???:7?????C??%?ec??c??????????d???n????<{?}???9????!??G?u]?????????Y~?t?????n~i?EK??U???Y?_???C_M???{4{7^{????/?????Y??4n?7 +??????~???WoV????U?a??1??[.v????1?v$?x.?????????O???2zf'O6???;?v??p^??{??}?Y?]?:?~????,?Y?????????0(??? ??f??e??`~?????4????:fW?m?5?l>F?T???'?_??cV?F??? ??[zSzvg???}????g!?Il????3???zv'???P??????C??????e?D????3???????u,?????Gr?????:?_??E?}#?8??? ??J?H?????_??7?u?n????X&?^4?????a3??\??b?/S?t???????y?|Pn???w???o???7??9on?;Q??dE~???h??5~????????h??[>???v?\?? +?Z?%??gu +sZ2sZ??-?h]/??????????=O?1???}????FC???????_???????s????+_????? ????u??e;?fbuG0?????95?[?U~?tl??????I?a??G?n?|x\^g???w??N??[?TPk|????6Q???O??_???????>????6??z??????zx?? }?? ?a_wY??Y?2???X?6Z??????Y??>???K?c????-$?#?_t?{?u/?m?S?;+?9?? 4?{r}??M????7?&?b??????S?D?9 3p??+????l:?[?1>?f3!?+??Q???Z??????kH????]+????????/??w???U_?+.??eXyM???v?9*?7??????????V??W{v???4D?H?????=Q? +~{52???I?"??`???T????{4?????0??=C ??=???????tO??;??W???n??????c??.]????Y?/?????m?u????????Qsi-??d? +??7???8?)???.??cK????[Mf|?'TN?l??d?'??????]$?F????7???;??T1???F????b^???????9?4/0????????#>?W???w?72??;???o??????z(??1 ??s?h?^f?C_lx???M~??t}??7I??;?S???r:{?N?_p??s?_~??~????c?b?+??h?3???+???M?=[??NvR???:????$Kk- ?????:OP??|,?R?0N???;? ??G????@~??v??\k???.????s?4}?????6?EY/m8Y9U?c???G?'??c}g??\z?R??????9??n?\4?6???X=1??u???????kp>N??m?#?Cn????]W??F??????q?@?3k???@Y?W??Z?-????86X???p??5#??:?7????3?S?????_C???pr????:??Y?pz>fOU?E?l??Kc???@dx??:????_?????I?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?\???&?????7?E?????s ??IO????/?'?????????B}?_=~7F?D?lv?????-$??????M??7J??;}??r?&???c6?tm??G:7'?????S??=??X?#d??????5*??~??q?G??????}?^?C??n??w?,;??5O??????ty??J?~;Z?%$???M?_??ct}???lt????Ww????K???n?? +^?J}?????????P???bK=|n?3?=?????j?t?S????e?;??^??l?#?? +.????>7I??zv?o??I%>?m??#?w???????c????1??[O?q?F??zV:'?kW?$??uu?_????'??c?????m??a??f7H?v?;v??f????}???o????????;?????F7J?????o?sax2I)?V???m{1?6??X????o*7]???>?7E?;?????exbI)?Zn?????7F???c??? +A?????n??n?x?I)?/?,??g^?u??.????6????zf??(}y?v???n?J?&????I????????2??$???????R?/?/??????F??#???????w????7G???1??o?^?J}?]?0w21?>????;???=W?OL?8?'??v???a??$???=?_=O???7??v;te????a?????=x????~?^?J}??????G?z??M?;t?*??w????X?t{}[1?????IO??????zx?/d{v???(j???3?7L??,???I%>?e??'?w????8?n??r?,k????.7G????w????RIO?>?????1?7?#?X?????????????????+??IO????7??t??r???????L???+?????o?Z?$???5????\n???J?~;Z?m?^?_?ct_[O?a???exZI)????1=V???>??c?Gx?????`?[?l??????xZI)?,??d?]???wLXc?qm??#????????w????????.?,~????$??>?[????}????L?t9??O?#???????f??Gl???? $??w??M?q?7????????[w?????ct?O??????-^ +?J}??????q????+??j??}{?O??}]>??w?-??i$??n??czG???^?}??o??P???`{???????X??h^?J~??9G?????? +?,?v????UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%??? + +endstream +endobj +3 0 obj +<>stream +H????n?8???????????I????T??D??:????? ?@?i_m/?????IZB??j??3??J??66>?w?.??^????M????_?F???+w?L???K?>?b???2~??yb??'?u?^KQG?z???`?7?$?|?f?4TH}?7?a|?L?a^ +?vQ'v?gP??}???eL???q;?o`P'p??????W&???h?e???yW?E`?????[q?m?w ?S=fu??d?/?Nv??D?iQ??????|U?M??h\P??_HY?U3?????u??o?????V\?I}"?????M?Cd??c?o&l?????????E?b!????)??????c???go??{???????o?3??E)? +?$D????????v[??Y-J?#??!?f????s??l?????v?f +r2?t-?n????1/?,*?y6OoW?>??????????J?????FR?}4????????A???k???7?eng}?I|??VT??zv}h ???-?Sh`c?r? +?w?3ba?Y?AA ?\ ?`?A?? +b}???4B ?????7?.8$y C??g3???V??????pZ??????Y????????l???m?????9?o????m???TM?H???????/~Do?^???v? ^TE?A?????w??y????PP|?7??e?,.??PKf?J?*,T)X(s?X?? +?O??IeJ?T?(EJ?R??*u??\(u?QJ?n,?R&?c?*???>fJ?T(?q?*???J?R????H)VJ?R?*W?l??kAQ????? ?s{? + +endstream +endobj +4 0 obj +<>stream +H?|W??????W??vts?c}Z????8??????h ;?!?~??;?R?Y?FG4!PYUYY~?????R!???g.?S?v???????>???????{??l'v???l?ov?????????_ij?a???J???j?S?L??R?n??=????????2OL????????2i?~2??Yr4?V?t2S?????????['?p????p?G?????!?=?????????tZ???[|?t_???M bI ???p8O?Q?E??c] N????9?7??{?>?0W$??{?`?8?x??Fx?L?_????q?s?29 +??{??6)????k?e?_^/vt????h ??Z ??!?B??[P?PE?4???m??h.?7r?4Yv???*?-?U)"'?2?? P?{zr???UY?2+??d8G??????m??c,?`?k ? +???????:??(???:KA?e?O?S???!)=d]?6??W??!L*?Q?\?0?j?Z??N?????5?i??????{+]V??l3?DO????w?/K?-??'7??W???N??L.lL???'2?;?lz??*??)q?9:???}3s??m?N??m? d ?:??l?;?U?DV?R?j?p??!S????H?w??~???C??t?Y s?5???u???^@?|???????????5????1??(4?=J4L????"??i??o???????`??\??????f?i1?,?|? ??eh>??????*E *?C?CQ???????[?????\2v?:??%t7Xr??i +Y?-?Uo?8$#/e?Jc`???lD2????T.??r?e??N?2????v?pq]??Hn????"K??e'??"??Fa^S?s??I>?????v?eN??????o5T?$????"??\J?(q??????[@??~z??? ?3$? ?????z?e8%????3??>=?M??UJ?V???^kF??6?a?d?Re??tx.?n?Z??t+~e?H?????e?5D|4*?P?]?=?f?:???EN?X>??~?t h?H??9q?H???I???q8?`?s?=?9qV ^???????N|???S?$?!????:?t??????L??%~B?HH{???\?to?U?{~????7?Q?,???H??%t??????e,?4??????? ? +>??:p?nRt?? +?mW?i-T hM]?#?\?UEiU?KU?@??vH???D?DQTp??8???8z???`m???p????*???Bdv???????]?er-'??Gn?B??=??h{;~*?????"?Z?z???(TN??*?, +?????-?>5????8? +??y???pa??$/?kcd?A? a?4?Y +C?jj?1?m?*?w?"?7_\?#??t?a?.????J&??s?:i??)Y???%?J?P??DUEZh?O??i??1P:????Y?Y??X?E?? +????GJ$???6?5QR?|j?+??r?e2:I???a??F>h? ???CP@?????$??94???' +?B?????????? *!+??2'?4???S?=w-$???p??>W?F,Vp???kP?????Y??p???)?bV??5?B?h??"?,?&?(?~?^??dE??*w?6???????[>O??+i?????~4X??????N??}???&)????k&??K???B?)Bs;Q???p?r$?'e????????mu(?bW??=?z???uMe^VH?$ ??????????D?L?????9# ?SLN???c%b???e5K???????????i?Ah?-?R?????$b#i?r~?qF7b??{??"?????Gk????Lgc???r????1???P?fE????:?1HA?V???6)=?qS?&k???h????\??? Rx?GO?? ?['?qm??Bk#Y?????9P?5???y??.????????l?p3???u'???'???#?E{v4r???H?3?7????T?1te_E??z?$?-I3] ^??? +?o?8?5An??@E??S?0?0;u??????M>??? ?*K?X@?'??' +Lh??????????????`???? +endstream +endobj +5 0 obj +<< +/Type/Page +/Resources <> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 8 0 R +/Parent 100 0 R +/Thumb 84 0 R +>> +endobj +6 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;??j_"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IH)??S cI#R at S?(?F??%G?,?D?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~???G?6??$?????~??u56?Z?????Y????%%I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????Y??t2??DIJI$?R?I$???I%)$?IJI$?S????GN??;??????t???V??????P??v ????eb??}Fv???c?}a??S?31?2??????[??k??T?? m???u\??_?8?}Xt?? +????Z????]??O??K??+?Z%???????)M??I5JI$?R?I$??,????~P????????RT?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI0 ??%)$?IJI$?R?I$????Y??t2??DIJI$?R?I$???\??O???Ym??4}?8??& ?4?]?? L?|?M=BK???????M?X???S ? F?n?|x]? ???JP?w????H6?I$??,\???W:?Q???k?q?6?0-L??mu????^_???_?????a???:{?skAhm???o?zS???zU??nc+??b\?? +?A???W?-} +???Y??W`?\???????x? ?w??A???????S????^Mc???????-?????????[%?8=??-%?4??#i??Z?0?wZ??????j^Z????d?v?%Q???#!??S??\}???|6????|?????G??7=?vE????eUQu->o?r]?o??cn!?Cf~??????u?t??wS?u +,???PKC?c?@?u$???????????m;)???w???????????{?+??????r/???????l???? +???dwR6? ?I4?"?]g????W??????m7?k?? +T???kuh????}l??2?>?????k,#?a??]??R?????Z???q?eY$Soa??_d?j???F???4??????}??%?????????'?}|????mweV?n??7????J}=$?IH??e???G?,?D???I%)$?IH?nc?{???y??????[?s:?]???zU??h???9?1Z?\a??s?x??{?}U?8]? ??????Ycs?:??u??d?G?:??????D?;l?6?O?? ?sr???{?O?O?5??,?6`??p?N??A?c???:??q?5????u???????[??W>???\OV?]o??~6???K=?k?I=?i???%Q????A!????]?12z?Qk???????????_D????7?K}??1?9???\?[???8????U?y????'Q?]??0???.c9z??(j?????_~?t??_?T????Z?]?????? w}4?y??\??d6Z??t?_???o? +?W??????.%?????8~y>+???/?Xh????4????k?{??M????,fQvc??=???d??>???T??9vt?s???l??v? u$???<[q?%????n?Ih,???????/??O?x?6??i?> ????[i$?????k??_??:?v???H?/-??? ?????_???"??????x?cF?{ ????u>?? +? "????N?[????rJm$?I)?????e?????K??????7? ++[??4;?_??$???f???%????????3???w??t??~?Z}/?oE? ??)??]?4????C'1?;????>??=bc?H?` +I+?:w_?????>?-?GK?q?????t%?O0??Xq???????s2??6????????_???J?r?????^?K?:?'????3D +???EC????8kj?mL???????qK?ot?? H??'??u??_?8??=:;c?-g???k????????? ?fKu????Oc??Y8????1?????????t|4V?d???.?????g??1[??5 ?^_>%vX>?u?_?~??l0?'?ZuO?3??N??VOP????k?T??m??y#]%X?? Fq6?a4^'???2??l??8=??.??]?7????nk?o;m????u?W?:U?3??3???mN?;G?z????????Y?{?}u???~w??> (1??????ig???Q??i????)?????lG]I???_~L??eokCM??c??<+?V??_???,???}???[??????W?_Xn??=,J?_???o?[??%??'?a???p????'?8???????C?????e??1?4'?2????B*G?G??(T??I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???S?bt??P?v?|v???~x??;?buj1+?} +?z??r??6?oL.??8?M????\?k#?]!S??9g?c????-?c???8g??"x?c?v????O?????6??]??w?+?????X??v$?O?}z????:k??uM?????sU??N?C??????Y??????C???????Q??Q?C?bu|???*??m?????7????>??;?????>?n5y??e?????5?v??????S'?a??0??7??????d??q??s?^??=k?}a?.??g??kl???t??wV?/?c?????[xffUB_]q?????]????}]????u?b?P???n?E??vK????\m'???????)??u??S?{?7:?-'q-???I$?????>??Y??)K;?K??t|?>?????????"?)???e????l????v??? uO???Zo???w7P?[??n???e?????%??n?P~]??P??2?8?J$???i'w ?}K?]/%?UV??!?^?f???t??o??zl?????^???E?}h??2??x?????vSh?\??mxy?;??)??????? ????vV????D:;?+;??o??.?\?=?Z????c?$B????????????k,??????se?c????????O??Q?]J?@?X?Z???C?kD? +l?)~??i??????OZ?.$????bt????s??W??EL????/c at o?h?Lw^?2?K??e?Q?Y?`s????p=?e???Ufb??I??cla?p????F"??a??L???Y???????{???j?????o?3????????'9?????x??k~?V_???ua?^?4????7?i?FI?'?C??N??>k?????X?cX?K?&?Z???C??]/J?yuX???C"?mB?oC??\????1q?9E????v??C??????R??S??B5?Z??3cp????&?t/?afcgb????e??x?G?K#????,???-????Y?v?d????????l???BC0?*I$??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR????????;???z*I)??c?.hqn?$L|s?????D??RI%0????U?~?F? }???4?XRI%,???-pi?APm45??? +2??f??e??}s?\^3sZ_L6Yywo???S???h??5??^?7??7?n?c???J`?is??cM??/ >;X??Z? ??I?RY?{?L???3z????;t%??AN?)k?fU????5 ???8?kG????f??x?????-??q??? +???d??Z!\???sr?UVd???]?T???Yd???sx???U?p?7T?????9?teUe????C??|>??;??r@?9 n??Vk?k\I???;???+???Z???????F???#&?f?????0h Zv???2??Kls??yi&7;Rc?O???n??Ke*V??? ;??T?.?&??? ??Cbu8? ???.??Uzi|?@?}???????c??{O+????,??V.3}'`?R???.NSs8?1?F?RV?|D????C???,h??}o??)T????????y?u??O?0??o???t_\K??u~?8????????fF>e???????q???0 at e?(v6??6??~7P?? )???Ycf%??,F}I?????q?m?n??\7???0?s??N????l???.%?F?w+??????Ym??????c5??`M?k??A?2?x? >c??WG??????=.??W[??Y?."4v?c?$?4r???????-?GN??3h5z??{??!%3??Z???C??z?X??Y?5? ????j7???V????]k?????m???u????KX? >J???O?}W????~FEwR_[?? ?5W?'K??3?OM??????k???8??6?KO?RS??:?????]C*?9????s6?C?Lw?vU?69??| Q?Zz?????s:[???k???s?`??????q???L???m?????wT????b74???? )???????wW??f????MO??V!??v???g????W_??{qi???9????s??hkV?????j????????\??E??a?/k?????????L?9?9x?S?a?,??w0??????o???>???x4??`?3u????Y??`?E?\??X??d[?/qz?4Ro?ua?\?m`?????%?:7Ug???????????b!??y????:???? ???k????~0??d??Jw??S???????L~ + ?e?G 8???`on?,????s?]?Xz?=f??t?? ?Do~?? ??]?~??c?n?WN???t ?M????=???=???????}U???gH?????yhm?`#cb"Jkd?m???~????pz?S?????m?????y?Hc?????G??4????7?Q\2????6?D?q??zc at kC@?S????N?kz?E?Vf??knop???*??M??????{ e?p?p???????~X;vl? w????>??,??W?????ul??a???u?.????=?H??\ ??a??????K?u\???"??3.p????h?I:?J??]'??uG}??]?mf?E??,? +$??W^k`h?>@?????z^V=???2Z?5?????W+??Z[??xsH#? ?@??H:S?9?[e/?????? +??:?GG?-??2F?V~??yiJ????m?=???3???*s??e??X??L???Y???????7m????C??Z?????????>?}{??[?7 ???,o?+?F?7?}?0????:???N(/p7??Z????? +?Z????:}Y=f???????5??@?O??D?????}^???2?c?N??w&;? ??,^???H?z????OH????t?\???I-\??????n???e???????:?^????;(|>???O?k???????d?c?$x????o(D???YcOpQ?AO=?;?u~????????Z~?f?.??????N?????? +RG?G??(EB??h?G? ?J?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????e????O??v?????????LS_??Vv7????A??w?to??wY?6?w??}mq??????v?4![N?K????YNM?haq???\??v????u????Y~O?&???h? ?????????;"??Cov??2??R??G?0?c?fYa8?8?????{?qk]:?c??INs??u???}???S??o????G???~G'?????????Q?h5??v???#p????081??????????fF???n???^??r?/???r??c??G???vU>?ed2??????&?P'?GZ???U?e9?]?,`??????;??s\~Z!????????UU?0?V???4?6s???wp?}?y?!??1????0?8Ar_C/.?];????[??o???????G???!?c?a?#-?7;s???>????R?9???G?b6????z???O???8???1?????1???@???8??hQ:????????)e5?eM h?h???J??$?I)I$?JRG?G??(EB??h?G? )*I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?t2??DC???|"Jq??}_??[m?????~???O}??y??s?????????.?z?; "? +????w?#?j?Q?2$w?W???W??t??`?????F\???!???f>+?II,?=0?x?P#]IY?kZ?@???$?)RI$???I$?$?I)HY???? #????$??$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I!??s??H??}?~???????????w?R?g?????)?Jl????-?~???????????w?R?g?????)?Jl????-?~???????????w?R?g?????)?Hg{As??F?}???^????????I)????Ww????4??g????zw?Xc?????$??J??^????????J/??;??1w?????????$?7????wP????????????a??n3?$??? Q}y-/???????????M?~???????????w?R?g?????)?Jl????-?~???????????w?R?g?????)6??? ???S?????m??>??????w?RR??_??????m??>??????w?RR??_??????m??>??????w?RR??_?????????? ???m2?|D???_???????JG????/^???$?~?_???????JG????/^???$?~?_???????JG????/^???$?~?_???????JG????B?kue?t?D?GI%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%0???T~E5 +??g?G?SIJY?\g?t?????????9????? ??a?????_??????!??Dk???? +Mg?z??y???>?74??K ? ?I;???o?y????????`k??9?F?#xn<???}k~?s??k???lzCt7???]2I{??W?y?]????E???-?KK???o?F"^?????Uv?=&? +?h??????t?%??P??????6b????o? 6????N?TYg?2?)??J?K???X??2`?w+?\?Z????u?`?k??Tv??????p??q?T+????_??? ????????km??u?j>7Wf.1~4??????V???}?7I???s???W???Gw7?a?$x]ou??}<????K???\>%??????6?k?l? +?e?A??/n????? ?"?4`:???7:7???????_?s???o??%??P??3??g??H????j??_Nt?????YMb?R???+????7????????????7???????????I.???px?????S?:?)???Z+??{?v???%?)??kn?]eR?q[?????y??z??p???=>???@%?/??p,?????????W???_?4S?G????q?p????}i%????m&??n?????a#????e??K?s?\??`???-????WX?dt???k??????G?^K??b???J,p{??mu?D?ln?'n?WH?\~\>%?r???]c+{i??u??????????vY???????h??k???s^?M?GF?i] +Iq?T+????M??????o69?????v?8i W_?@?????{?myhsZ=??u?????K??+????k??q?+u?s????4???4?????E???L%??i/??KXCY$YP???????W?r:[z?r?3K??X?5??G9?0???Z?$?M???L_??)W?? ??;?R??7?K$?I%)$?IJI$?R?I$???I%1{??b|?????n???=?D|G?P?q???LyBJe?????K??7~???,?:f??/??T +`??Ln??0;??>??+???7QkC?????))/???n???/Q????zoD??????????R?????????G??w?????????O?G???IK???F????????????????/D??????????n???/Q????zoD?????G??L.?Cm???>? +???u?????9))??????K??7~??M;C?????*FE?? +?n?F??????]?%?%?r???c?hK???1?4$?~??]?%?%?r???s?hK???1?4$?~??]?%?%?r???s?hK???9?4$?~??]?%?%?r??k?X? ?!???;?4? )^??]?%?%?r?I)????}?z??w???Ja?%?r^??]?)???z??w???Z?t?MB????IJ???T~E5 +??g?G?SIJI$?R?I$???Y=w?OE?5?u ??]??;=???5?T??,?????G {????^8?-q? }???>??kP?V?C??;??cO??d????K?t??N???;?o??????S??;????wT?????E?g&??Yg?????]?? +?G?c6??vsc???u+I$???I%)$?IJI$?R?I$???k\ \B??I%?}[???1??{??v?????????cq?k .1k?p??Jw=|k?3??z6???g?U|.?]??????=?X?'?:?Y? +???.???bu???uOh.q?4 $?@?"??a??u7c?v???N?5? 4??????f?1?t?a?h6????2y??zh??QC]U??1??SO??cu,???M?IisY??a?p&Aj??o???`u?ln????xf?{?I?.??[U?4}???p??{??Y??=r??6s\9l?IN??o???/F????jo?_??????5???c6Y?T??H????#????????wm??aG?3>??????????a?Fg?????S???,???????????g??i????}w??5????3;?????t? ?0`?C??e>?[p?Am?m$ \ {?VWU?????\????L???x???l??o?;?A%=2b@L?z[?;d;"?k6?js?'B?????-T??OT??{s?????M?????K\Xt?"???F?$??????T?E]??j???P?[?O?O?U?????? )??z? +V??????i/??-s[???p???3??_??????=3??U?-???/mu?K??=??t??/?j???RR?hsK\%?G?X??? ??5????+?cc?&$?ux=C?c?'?dR?[????mt?[?????sy??L??}?]?????gC?:???.>??IOX????J????\`?????C?7N?V)?????n?e\?????~?$?I$????s???? :ns1???h?p?????%=2???????O?4??\? y??????'??.IOq????O?????????3?"??????????}.,??,s9 +$??Ic}O??????r??7d]C]e?????????I%0??????6?9W???*V???+[S?? A??j???wt?X?9??, ???p???p???????g??????????????kmU?kx?~%G"?dTjPG ?Q??????????????IN?V??X????cD??gT.??z?Z????}*?w???2Eu??)a?Q???:b???=Gs? 0?#~???Jv12N5w??x???(?????o?\?X??Wl??}a???s?x?[???k/?Ic??]&_???????M????????u??[,}??Ee?n? D????J?M???????zE?B???M?? +?[%?l??'B???g???N?iB??j|???I???????:?E?\>??-k76 ?Uf???W_??L6g?( +?? ??8[_Z???????????%?3e^?s?\?cO?juJ5???MiO)???I????? +Y????N??n???~W??M?Z?????????+?????r?cw???_???????wC??;?GP???X+?N????6]'???g?.??fWuF??kv??`???u +?[????J??Zw?>i??' +??X] _???b]{??????}?????????gMe????z??Lw??!ng????j7~???}6??]???Y??Y?g?????w??> F??m5??~???K??_?n?6?#???n???N7?-??ST???Q?????~??????u?h?Dw??????:??~_?Y???q?????R?q???5??~p???+?X???@3?O? 4?w?>o??'??Y?%??q?)??????c?t?????S??????u +???im?????m?{-? +???uX??`??}"?????m^??????68L?J5F??5?????>]?j?u??H?/??7x?d??Cf9W??????lO??????9?b?????????9+?_???,8?gJ?????Q???e??K??? +Y??????{?????p????v??E?-??2??P?????3?[.?B??b???????v???};+}#?_D???????T??????#???V??r2"'?[????*v`???V??????i2??:k???T??N??\?????r??:.??????E?????????? +??2\??O?\}Y???.?rY??q?g???P???y???#?o???(G??^????t??X??k?????],GL????????????X???~/?M?!W??? ??-o?AIM/???????]??o,???????]??o$?$?I)??D|G?P?[H"D????;~?????o???]?RRS/J??o? ??P?}S??R????dafQ^???E?l?e?z?V???V7?z/????? ?a????sz;$?Z?q?q`f?$?????E??????c`?g}?X??YEl-i}p?kwV????r????S21+yan???Z????\?>?i ?7??F????????e??_u????Y ????????t?l? +???mn?)??}m?!?+???~?X.a???dV??R`?i?P??~5?.?4????????S?? +-?\????]$ +K??C?r?L????? ????????i??Ju?*?q?p at 98"?L?????????????W?i???}?????|X?u$?{?u??Zi?%=pc?Z?!??Fg???:???????@q?C?;>????$?JRg9?is?5?I? ??*?????Q?????c?????Wn8f85?_h?D?i1?[8???K.???H?G?\??W?8?bYm?4???+0C???7Y.??:.???????z?k0I????????S?k????[??Y????T?E +X?1kk?sK[ ?S7?M???5????????R????\?a/?c?jJK#??1?/u5??k??Xw;???Jo?c?j_d??FRY H?B?&7?0??1???%%;N? +Y???o?R?&7?0?f&7??m?C?Jqz/??OE???????09??? ???En??????1????????>?a?[c??s??+3k???k4s??OE?V1?w??F????M?~??q?Jp?"??i??~?????V??;???c?sli ???tn???Ce?G?p=f ?Ua????T??????1???V??i??N?Isk{?\J$??@????????z?#]?"?z???[??}v?? ??4?FP??cKZ\f?t???U????wE???k?`a.?4?W;w[???ac? ?=?^?o???????bQ?g?_??9^?GF?k= +??1??I???!j??_???S??bDQ??m;??t ??1\?Y???W?~?Y?N???y^???s??Uz=y72???k???d??Km?g??????U?r??wG?W????Vwzo???!V?!t???v?}?y':??f;Yo?????@t???????}?C??7?_?b?P???o?g?????WR????S,ks?????????????i????????1Z??^??W=???Gg?n????v?n>0??cC\Z ???O?????? l??'????G???????;??O?????B[.?K?D$?_??h?? ???D?????!??M?????B[.?K?D$??!l??/??????? )*H[.?I?D%?????BJJ?????? l??'????Y??? +;.?I?D$j??????R?l .?D??e???E$??m???&????????JG??K? ??SI%#?g????k{D5??IL6????????p$pv?EI%#5?A????? ?^/^?'?ftF????Uv??\,??$?Qr?X????i??????????a??????d??$??^w?:?,?5?|r?E????B???_??$?????~/?M?!V??H?????c[?PU???'?????R_?????_?V??????Q?T:L?f-????='? 3?-????_C??u??z5:???????s?8Ge????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I?? ??u ?????`}o???oN?=?U??x?e%>???????h??y???[???-sL?~>M?K?????I?a--c,? b}l??W~??l?q?oO?p????????{??S???????!????zvV.k?b????|??u??????\?z?:> +?W?=????!????????$???RO?6V6]~?-??????8H?!r?/??z?z? znN%???2]n???4????=?X????at????C9??=69??}?????:K?o?? +2??G???yn +?>?????\??A]?\?4=??H#? +Jcu?Q[????? s?@hd?U?_[m?????k?Ay?????l>??:?H?x?f??l??`?*!?????????3???????????1s???:$???I10 ?ILm??ku??W[??0?$???r*m?=???Z????B????c}e?????(~9?e?=? ??B??~?Q?g?]t???~Ev;??Y??y?~ )??*?Y[,o?{C???\?g??????????????M???D???!??IOZHO +5]M??K?c&70? as= ??N????1-??'???;?a?????{?W@???E?K?`e}???n???5????;x???X_X????.?OTun?nS??z? 9???"|?~???????^%??S1???)??~y????%?to?x?C?[?s0o??R?:????4n?8F?????0:????_????a??a +??@%??????I$???I%)r???]?????\?G??????2Jz???a??????d??.?r?X?{?o???? )??????? ? +??y???????????)??w????_?HU~??w??[? +?????_????B?????K? +??PRS[???$zO?g?[????$zO?g?[?)????????????????????????u?)I$?JRI$???K????????u^???l???m??c\"??$??JK????????_???Y?????3?n?5????????j????>?S?K???F]?????>?H????RS?$???S???? ?L?'?cRZ2??`bG??]?????g?^?W?Y\??\?????BJ{?????????v6V????ad????? +p?????%o?_X??_Zz/J?=A?:???,.kC?.?? ???CIs?W?'???e?S?????mmO?????R@????????_Y:?&'\~}>?*?V?67?? +XZ????????poY??6U?@ +?+t<?%>????????n??6o????e????KZ}?&?????:????7>??v]S?8V??4????R\o???:??~?s????`?????u ????m???]?zc???????/???1?a%:?,?????u?{/???????p-{???jnG?????????nk??6????a??Y?Jzt?>???z`???,v??y0???-??,|_???K+1???????_[?S??6?IOL???Yz/I???d?{r?k.n????p|???Ws:E?f???w?????????S3?Jw\??/??????=?5???????o [?}b?=S73??8??Yii???????p??t??????m/????7iO??+I%)$?IJI$?R?I$???}b??????? ?EyXN}G{??o?'?k=?v??t???`?'??>?????$????W???g???? W?4?D???????????/???h}mu$m5? H?????0_K(~=N??5?X?????? )??????~e???Y?Z???g???W??"??V??>?d2???7?? ????? +nE,?0?`????n ???????F_??~-?m`c??k??#F9??IH~?~????.????:?c_~u?i???p?v?jW?????6s1k6???U?n?cC7? ?????7 ??}`??Snvc}1F3K)c O?H?WQF665~?=L?????5?|? )??????&6?R?????+?m%?4m + ? ?F4t?????>?n?U??m???Pf.?mo?J?gS??RS??? ??t?????V.??.{???b?D +???5?S?}F??U:`9]V?A??4?P~?wo??K??C??t??F?Q???2??h;{?A#???????= +?Ts+i?Scq..??RS??Q??I?Uma??/0???7?????Rq??????%?t???p B?E?t????[??X?4??????????k?~jJy??67??r????w??w?? ??????%/??%?g?^un?D??????????x^?F.65^?=L???lhku? Q????O?R?gmm +{?a%>=?k+#?GR????i??????u5????[?W2????I?W?n?/??$?`v??H?!z8XTX?h???,?oc?;?? +T?qqr????e????? ?:RS?.?????2?~gE>?'L?rs????c??o[???c???-?0?? ??l3??R?~????K?nV.}vc?.?i?hy!iu???:?3qz?>?,x????p??H?IO%??/??U??X???C6????[fn ???x8????aeG????????:OT=,?????/??x???X????&?U??9????y|??? +J???W?OM????????v???;???:jV?J|4?[??????H???]u0>????????????;??Y??.gMu$???S6??kWqo?/???????4??<].?M?bQ:??????Sz?0?? 5sH???#?%8????;??Y???X?? A;?7? ??wS??W(b????q?1????m??+????zf6=8???c?WM- ?????g???? ?~??m??FY?^?s`?Jy???o??}c?=k;?????m??? z???????ON?eNk\??`??`?t????`??????L?9?T?xqp?;??Yl?? S?2O?3{?O?wBJy???5Y????XnE{YU??_h?# K?h??b?:???????05????? ???>?????N??@~V?g?u?????F?][??P????nf??k[O?%9???}c?????{?~-}%? ??^?I?>??}f?o????u??`?Z???=V?? +*??U3??U??t???6??h?#0????k?-??????\??????????T?6??s))o?W??oG??Y"r???????s??S????uD????m??/??"RS??.??????}#????z?k?t??B?u???n??N???g?r?g????H?????J{$??>?u???????jj?P?q,??J??????X?????c7??2???lnUl?K??L??%=zK???`u o??u???[?s?5`c2Z?a????V}n???spG?J????6 +????????|o????tO?(?X??7?IO^????????L????.G??/>??S'??%=r?????!`???????/;??????9%=?N????k?? +??o?N?/?+o?AV?w????_?HU~??w??[? +Jk}G???I?????qa?G???I?????q%?fu?`]??:?a???????:?????$???S?????k??????j},V^6??go??{?7D????:?G?x?????)????????? +fW???????,???;?S???/a8???1????k3???S7/?????$???????|o????r?X?{?o???? ?\???^?[??O?BJz?????B???_??/D^u?:??x?? +J{???'?????R_?????_?V??????????!T????????m??))???='? 3?-????='? 3?-??????????L??^??u??Y???G? ?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ\?D?????? ?~E??C??D??????"Jz????~??\o?YN?????u??(_W??r??RS??:?_?7N??_???y??????w?????????????R/?o???|1m??*??,????G?W?&?????????RD}R?#???????>??K???Z??V?Jy?u??Y???G? ?\????c????#??????S???????Z_^5n??o$4L Xx_[??ch?????????V?????1??[??/??????%d?Z??Y?e??b????-?G?Y?6??f??XIO\?k?:????.??????w?????^^F?O??c??N?4K????<"????L??^??o????'??.?%4:? +?G?f?PZ?ri}l.? ?@??>??fJ????Y?K*yo???%\I%????vo at 8???7???e????=?`t?xg?}_??????Kk??u&???U]l???S?]I)?p~???2???X2 ?c/?\?? {?{?V?B??Q????=?fT6>??!??5?p????JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$????I?Jd??????x??????????i(o?3???K{????zJf??????x??????????i(o?3???K{????zJf??????x??????????#?gT?}#?????n@?{_?S?q?9?;??W????a?8????0????m??6?u???>??p-sIA???}^???[rz?????;?uD?C??????$??/??=@??l??v?}/[l???\#???g????g0?gbc???Ty???l?????F~?????????S?v7T??:}???j {#???;??w??????[#?da?s???a?C?#???:??????[)???C??? +rj?5?? ?v?y????6?cD????;?f}WB?'??;???[G?e???>2S??^=_???V0q???R????6????oC?_? ?\???z??"Me?G?P?;7q>?}Y?!?j8???g????:?T????;????? \^?????/?a????,??W6b~??0??????O?????w?}L?wS??s?:w7c;??7?M????^??N??>#"n?c?U????? ?=??,?O?o?,????|?????? ???O??6???`?w>?G?]???????/?X[ug?fC?? -??RK&8?hKQ???h???!d?cbR???m53?=?Y?}j?Uu?2???v????-?H^y????}h?9?K?7Mi??vS Iyq??????xI?O?:??$?,j?K?c?RK:u.?#?+??|?????4????^???C???:????'?Qn +G????2o????4p\J?????OL?,q?s7n>;?Z?ylg????X8??????>?????K?[??~ua?????????1hS?+??1?,??q?O?J??????XzK +???q???_?M??a??o"??c?????? +Q?\1?@??I??]oQ?I?VXro???i?7????B?????el=C?[c?/m- o??+?e??urF?x08[?/??Z????e??V!??????7/.MdGJ??]????_???8?'?W??????{?:???&??NvV+-????M??D??Q?]%?O?u??gZ?7????f% +??E???4x????????????I???????t m~j??)??????^^;?.???p?B?,K???M?z????` +?????cK?k???Q>k???3???:???c[?<?v??\?%??@?????????????Y??U?i??g?"??zo??????x?VT?b?:??\$?LxN??????3????T"$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J?u?O?*j?u?O?))?I$???I$?$?????N???i? +?N?\????5?H? +??;????|????px?U???}_?}\??G-??w)?? # H???]???O%?BQD??? ?????????????z??k[s??? +?p?B???0?)7?\?+???????y??????]?P?[?????? 3????q?c i?? +xC ?????&&?????&#J??!^c?????\:??S???@?f????.???2???y?m??????qr?m5??+q?? ???1??cK4-p ??_??4??r?aE?dQ??]?/???>??`g??;??????xs?mm???|?????m??+??F?~?J??????}??????)?[5o???\?1?l?????>????;E?????XP???l;?5r?gO??89X???@o???? v?%????9?o??????2+-??%??%$lR????????o?????s?.s?tG?^mkp???????Z???-?\}????m?`?x?X??p??????????????????2???S???? +???+???$?^??`?q??uqq??/??J?????ky?e{M>???PE?F?5?F?#????:&#C??5??????|????2H4???P??Rc?t??]{ ??P???????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???:?'?5?:?'???$?IJI$?R??3?GU?tePN???h?????!v?/clc??-p-p=?BB? +?n'X????????J[????x}[???????????A-]?:65?W?9?,????k?>J?P???w??????bd?q?3?d??BG??2? ?????d??R$n5rzW?N???F-u>!?:?hd?ct+????b??]?>???d??? i???+???X+?c?d??H{A????]K????rF?????$?|U?_?3?????b??j +?i?A<?}c.?.???X??K?h>-i!\?-I???^??u? ??????????0?????r?l~mG??y?r?\ns??%?q?:?Ac??k,~??z?D?oru????$$deZ???r?:m??W???8??????fFee??d???/???}????????}??z?L???Vaf7uVG?j?????Z?:=??f??L7???y??Eo????cRmd????????u'??rw;??O??????2???h.=?? ????u?V?_s?c??9???=???$9?Z8?I??*???.?c?t??U{ ??P???????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI $?R?I$???:?'?5?:?'???$?IJIy???????oR???T?W?????fu??`?????N=???FMf?:??$?Q?C#?-@??? /'X??X??~[?24??d???i???????:?C?)y??unt?'ht%a\Q??O?a??W??]??79? +0N?????T>?d???z?U???????L.>"B???]?j?:?,??????Y??OrG?b,x 4]???U?L????N??????[????A???"@?6L?&???W0???N@s???????,c???w;???u??s??@??=??;?/?I???x-d?????g?B?I$?<???=V??>??]~Ql??H????>??I\?_P>?Y;??.6Z??{?R???E??[???d?????rk?]??8??,????l??U?e??/>??2m?? + ???4/@??5?+????y????????????????u?'??af??e??|Bf;h6???s?1????2?w???X???????L????m??????Sc????d???d?d??TZ3??j=?q?????%w?d??S?q????k?|??????@?p=G???WnNGI??? +??f;X}??????I?? +?W?????0R?2?????;)s?u~???7L?n +???d????W??M???1?????P????j??r?0;???S$}?%[??????t7T?????U??EdRI$??;??G?????t?nv z?h?eCI?????K????}381???,p??W?;??)??vEkk??I?Rc?t??????T"!??0???D???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)A?N????MA?N????%3I$?R??????sr?U????Y??????x??)q?Y:Q9????????????}?v????H#???h?x' \\B?)????w???]?/?&????? +6#??ibaa??u????ln?Q?0?S2??=\???????x]O??F?Y?Em???9???dm???s??w?}c??n????:? WO]?????,xi?HK/?Fc?????C?g?z?H??=N???ud???????|V????_H??????:,-??n????}w??J????}!?h>??KOv?xm?yg?????\?6?$?;h?????`GJ>Kem????????y?l??T??????p???????????????^?h????=?^????OH????_vU? ?V??=??+????:?????z????'???PG<1q{w"z?&7???a`???Q[k???D? $?.RI$???I$?$?I)I? ?S ??P???????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???:?'?5?:?'???$?IJU??i??4?KH;?cL9?9?YI$??/??7?>?i???l?M?{.#?L>?|?j?????8?????0?(" i'pj??O?'p ??p??}??_4?R??u???????8?A- c4z?z_??????-??????|Ec????$IWC???N?????????T???5? +?"I&?RI$???I$???H?=c???????{??7????esg??Y???T?b?SC=????k??+?????!??????{C??T?????w????? ? ??Q??~?{????.3?P?_??R/?}`??6?]}X??9?w??v?c??:v'?r?MlkI?????GQ?<?????mI$??*I$?R?I$???I%)$?IJLxN????c?0???D<??P??? ?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?(=??Zv??'?M$??e?????Ke?????DI%#??A?o?R??A?o?QIH?_??????_?????D?R=??????-??????$??e?????Ke?????DI%#??A?o?R??A?o?QIH?_??????_?????D?R=??????-??????$??e?????Ke?????DI%#??A?o?R??A?o?QIH?_??????_?????D?R=??????-??????$??e?????Ke?????DI%#??A?o?R??A?o?QIH?_??????/?H???j*I)???g;DJ?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR??$?J???U?????z???iK????J"NV6%F??YE@?_c?['?JJ_????J^?????V{??t?ss?MD?76A????8z?Xc???????????????q???O?p?/?????Y???????????%7=a???4?ohZ?$???= +4?????@?????v>WR?s?c?c?k?H?_???u?\??on??G?w?????????V3q?k?p`2 J???/??'O??2?????V?p{?$??i??J????3)?"?B??Xz?yN?????`?Sw3.?n-??????8?F\e_?????*s?6nWN?:?ky-{A??u?]}?cT??,mU7?=?5?t????$??A??%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJTz?Q????;#??????kG???????l???g???S??h~??DJ@???I +o??f????9???v6c????/7?/?XU ???!?i}?Ye????Dr +????N???? +??i?2??*c?ou?1??9?$?C??N?M?8v?G?;??m???z?/?0???{m??d??????H?????3??;?? ??_???&#y ????o??g??@???G?065?i?!?H?????3???H?????3????x??K~'????~????>??????????>?????m??,??????%??l??=?2K???ZQ1&2GF?d$?l?K???W? ??????x?>?K?U?~??p?xu}R????H???\?H%???_?z????????Z???????F????w}k?????????n5??A??\??2?O?C?????oD?y}? ;???t?????A????z??Z[y??@?.#?g??zv/M?Xw?]xL7?????n?#??<{???U????o??BJH?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?,???*?????m2???c???v?????U???%????;?????6?j??*Hm??%????sK?"u????u?To{ 2?5?G???$K???U?s+???gCq????? }Z??????? ?k>???wR?D?.V???1?J?n7???Uz~u#'?g?~??]??Y?[o?????g???{?;Za??Z??R26Y"(R???B~??????? S?O?J?????_????? ??????j????s0\[?O??W~?????????%8_\?#??s??ld???????sW[???7?8????f?<~ ??bz??L?B???1/??&??????5?O?????$??$I??????J? +? 1:?u2??7?G??????.??m.k`?4&u?#!d}?]??%%I0 ??t???8???SPo???~D??$?IO???r?L?*?????#????W?@^%?5?i??J??????#`??z?????$?JRI$???K;??????????m7f?WC$???N?????v?n_S????>???????|c?u?o??????s??^???F?3??z???_?????R?}?e>?nv???*?&G???6?<$yy????E?k??-<%??o;?? +????k???W? ?c?u?`T???Qu???W???|?tV?:?? +=]?RI$??????W?1~?Wc?+????{?407t???.AzO????2?3??K?[Y?k\%?6kg????}n??_??[???[???????mjak???L.????S??X?U?fe?????L???R??xS:=N??0??, ??!??????]??p\??????2?3??c\~?????^>??a"???1'????:;????Z???>??B?;=?O +?m??v????5???'J?????p:?Ok??@???|???g?[X\_??v???>i)?I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)Hv9W????D;????!IO?????uffS]??=?????????q }i??Y?;???M?{MNp???h?@??=?u +??????AcLv?HW????????mur????????)D?bZ?U?f> W?M?Wg???[???L*?????H??I??M????~???n????r??'???????/E??_?r??A???%????~???)'???????/E??_?r??A???%????~???)???[??K???3C+??bz???+u ?????Ev?K??? ???$~????z???_?????_?O?????}?u6?\????"x?????_?iPk?????? "5D?E???Pn)??? ?u?G$??$?A??=????H?? +f?\[??@ ??JU +k]hh??????,-???{?N5o0 ?5?i??J??????#`??z???G?j???3??????F?????5%7RI$???I%4??{?oL??m/?v=e???\??.7?W??????<>???C'???`??_???????]???vc?E????s??7???yB?]R????z?????_IE?3?Js??}s?V1??l??M8??7y??eyOZ?Y:???N&-???,qn|?E?u~???:??G5??^?L?????*i)?0~??P??4???1?V?K???3?????[??a?\??Tp ????????t?{??N????\??k??7c?O????7???7???jl?D?????y???^??[??|?fE? ?????? ?00:g@?L?? +???a%?1j???'??=Kr??????? ) ??o???????_[z?6k,?=;?????\?vC???>?{? )???}z?????l[_H??UX$z???? ?I)JU?eV6??k??s????J}??Y?w??#?wPt?,F????_??;???t????#????E??--??0~j????B?????^?@}????=?~+?l????nAi??Y?rv?????????c??/JN?]??c???A ???????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J?nMX?}????C???U?????????H??m?@??1?t??p??????[????qc???????j?F??7+??5.?8o?6?6?k???P??u??qo???Z????=???Z#?nR?HO??U? +,???FO?3????7@ ??'????J2y?q?????????,o?G??R??9???.q?!??(0?`F?IM??8???SPo???~D??$?IO??_?ZfR??????????^???????????_?{wD?????_? +IM??I%)$?IO??6???[????f??* +??????????????????tx?Wzf7[???1??-??^\v??F???P?????_U?1)?`R<]Y?1!%?<$?:?I%)$?IN??k???wJ}f ??>a?????Y~??^?????{l???????h??q?????[?>?S???8?|i???o?????????P?68?????x????$?'??D?/;?}b??????Q?{??Y????u?c?~?????~7????????Vo?^????O???6?j?k??d?S?w? ?????B????}???.s? `7 ?kh????0CZ??:5%9?U~???Z?l??????.?J????u?????=x?J?mu[???it???u???/P??9??]9????@?|?WM?3,????P??(a{h????????-?????kg???%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??;?????J"??\ZA??#?hIH:??q?)?nV???=??i??C??mB[?]>????^=??[?g?????m????????u??????!Om??>??????w?RS +????B[??C??=?????????|}??IL7[??? n?????????j[l????%8?\K?Ev??Q??=?#???? >?t]?0?? ?A????\?C??0??Y??/??????y???????;??C???[??? +{m????-?~?????7n???j??? +??I? ???E?g?????m???????????+?????u?-? vS?o?????m????????A??????o????????I2O?$?I$?J|?j~???fT??^??A~?W?CW??/?Z?|*??m^?????/?/W?CRSm$?IJI$?R?I$???d???~?c?OQk??]M????'?????o~????-?T>?W??"G????S?c}V??????????k?????2[?[???D?? ?IHqq1p?bT?*l?]m +l?t?$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I?CZ\xJJG~N637?Z?Xt???~.?? b?5???Z?s?`?-??V?c~?????z????K8??SO5?[?W??J???{??? +????C?????['sA?e%=n~P?f^????k ?????;???N??@?.????n?{?3?t?[>????E???? ?M????m???:????%?u??9??_?tl??,?FC?? +?k??y*??????????gL~&c??????c@"?=??????%?}J????????Xvc??b GQ???????????_gC?>?? ?s?~??J{??(?x?e?.k7K o?VG???} ??_??k?"?e?h`???o?_?:ON?]R?NNTx?p???t??w?????;??U?_X:??2?j-y?e?F?-???2N#?H?z-0?6@'??c?Q?C21?m??7Wc ???"??]1>??P?}CW????q??}&{??I??3??/T??Xm???=/??3!??&??????b??Ir?o?gQ?????pP? ?_y????????G??????s????`???g?????bu?T??I$?JRI$???D?? ??k???O???W?}L???zo?C?e[v.M????g????'???*sz?w??/??????bYf?,???n?vW?N5/????j?X? +h?T0???1)??`??v +?`?!f?r???U???~D??a??gc?+?dQd????4!C?t???^My?v??[????????Q??????k??z??[??u9??8???u ?????t? /?}|fX l|8 +xIO?$??/?b????d??nU +s,?}\??T?????~???]?]?w????? ?A??4???]W????n-Y??O????I??h4?h?"?????????T]^[,?'??<9??xsWK?????/?6}]?xL????Y$E??9?kZ???%???=g??~?^n-???^jf-n?ptn$??%T???????L????ps?+m???n????????.+??t?X?[?{???5?c???v?{???Ll/??\:?????g?&5T??6?m???Ry$????XzWY?&??w??'?w???]??5?i/????????????u?\???/??[\?li.we?}]??3>????i?2:C?2???8}??'D??K;?u?????#????k?lpit??Uq??o???I??OO?oJkM??q????P?}r???'?u\v?????U2Z??3? )??=??????V}?X:=Z??nK[?on????5>?qy?]~??7???~?M=-???k?]X???1?5?ZS??????0???q??{s\???????$???.#?o?n???:_?L\wU?N????a??k@? ???u\????R0????????k????%#????{'??}G??S?hp??]???????Z??????V?~?t\???????u?9?:?z???+?;?^???:oB????????8?N??X??$??o??????m??w??????{|?????]{?UL???????Z????j??????????>I??o??????<.??~??oMk?1?????\??? @IOM????u+????(???N????W2?10q???s1????a +h?5%p?T:?????x? ???1?????!?? +p??x ???1?wU???$??p?*;SY?2??? ? ?c????A$ +psdr$+ ???????????V???a???ya?>--+?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?84??D?$??zP??}k???|[??y????u7x???0u[?C?UX??u??adW?N)??s6 yk???sZ???[Z?xvIO?gt????C?(??~=??? +;?7?G?C???????Z????Y.??~????X?????;?^?O??hh?4IO?}vw? /???2?z?40?g?1??>?s$??P?'?'S??R???r,s,n ??????z#???&?G%I%>o?:?X??_?o?GR???c,ak7h?????zE?Tk???????Fu`????]?????|????D???vN????? +???ih??D???T??[??????O??x~?????IO?,?sqs???*?(m?SY????l???+'??[????f??]??]??????9???M$???/?^???S?l~?????N?4?w??"????uN???t?iu??,Ys+???N?vJ?d?S??Z3z???|?5tl?L?Z??m??M?6??;???.???+????c?1q?n?4? +?{}??z +I)?.?R??????+?d?au;=l{?Zl???: +?zP????:?7ce=?{0?>?D?k??Z $??>??e??t?zM?V2?U???a??2???????^??j???~??V:??C?l`.eL??c?$i?~K??IO?u??cs?%??????c?Z???????@G?_Y??N??????9o?s????kYX????F??I%>Z?k??}q??K??{?^>?????T_w??#c?\?_Z???N??n_I??|+k??p???????1$??oW???>?}f?=s???????u?e??F om?z?)?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R7?????q???w?1?w????T??}??????K}??????DI%#?w?1?w??w?1?w?IH??????????????D?R=????-????$??}??????K}??????DI%#?w?1?w??w?1?w?$????o???;??o???;??`?$p?%#?w?1?w??w?1?w?IH??????????????D?R=????-????$??}??????K}??????DI%#?w?1?w???s?\??y?T??????????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????DB????(?)I$?JRI$???I$?$?I)I$?JR??p??nN ?Z?????$H?Q?????y???F????r??`=??O3Q??%?.C>???b???C??_Ppv~=b_]??+?{?o????c}Z??????-i???????? ?j?????_G?Ir9}K??E?oR?m??????N3^???sK?v??cg?eS]???6???H?"xL0 ^??Ka$????RO&c?c??=??4?#???I$?JRI$???????V?D6?>??? ????$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JE?j???QP??G???*JRJ/{+a{???s?`?W3??B?y?~u??D +??w@??2sK?????"d|?$???????7T$j?5??]J?????? +??@?K?k??]?????'+????Gz??I$??T?????}????? +???4?$n???????20z?Y??5??"a??????-R{9*????^H?f?d?4?$?IJL?"@L???=S?bc?'#&??f?yp?|4???-L??[??~+???Vg_?^#????D?nFuo????25a?g????????e????<?????U????T??J??*?q?[??X O?{?B????x? ?i?:?????c?[?V]???:?Ua?6?m1????O?????1:s??\?v +?<???&ay?k???8??K?}!a???w??C?]c6?U?0???XkG??a??0??q +OO?^O????g???????8~ .???`?}\~?o??R???T???w?}c?????i?Wt1??Ac?:???He[C?????Y???!??????6??R??P?RK???????Y.??!????????N&21????6?>?????!????U??5)I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????c??[mt??mpeu???????Q????????-????????X??????{/?9???FcZ????G?????????x??????W?+:?????? ?????_??[?g~??9Y????o??o??N???????MQ?'???~\???6????w1???#?.i?k??!???????g?I?@?_??7????^???s7??Mv???c????>??L??Xh?c???2?5???>?P????}Q???&???ot??Z?9{???O?S????]????d???)?eD?!???K???K?q?h????Shc?? ???_U?~?b"??d?d??=????pW???}S?7t>??Z???????????r??4lTr???~^(?'??}aa}g????jc6???j?`@????s?k?b?FE?????SF??z????R????~??gX?'?V??5Z???C??????\yC +?}?????M???X???z?s??w?5?k;+h?_?]6?8??=*?????+??}?u r??.?? +\%?????h]?P???{?????????w? +???x????G??;??/???S??V.>MO?????n?w?|?z?GDm??t?w?:??g?Sv?????N??/??????;*?????PQ?9q?,???2iu7l??4???4?{s?8??C?t?^????OI??2?*??l lx?%???e?z?y? ???\I? b?1?p??6? :???)_m?I?}??Om?O?]?g???`?/>?l&6:??? ^%?Q??8?Q?eU?}K?[?C?Dk??}1??d????????????O????????s\???Z? ?* +?}??o?X?R??????tM????l7???U??S?xdbD??lZD?I5*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IH??G???????n??~cl??????"???G????????l?\?&????8?????rl??????2??_6?#c:?n +???Y??w.-ov?.U??v;?M???a-p??????;???@???2Z?H??????Y1f??=-???????#?9?lj? ??~?Y=???9?/?}X)??^E?:?)& \A?$tV?>??V??H?52?w?d?????[?????[?[S?*soI'????~K???F_0?6&5??9DH?5s~??Gt|?>???Y[?hy:Kg???w7_M:????`?=?????kO??R??????/??< Z ???W??t?V??? ??>?O???c?^?p??"|7?i??P?kz~??1(????_??>?`????.333+???????m?CG +?R?' +? ?:b#Ud?I?????x??????##???A?\??a?k??2?\?rW@????z?]??y!??\O?G?????'E?i?o?@?Y@;?{?gX? +.c-J0???_?s??[??W?F.+??m?9?????>???%\??${??V??j +?????t~????G4????O?%W?w?v}a??[???q?<{??|~i^E^C?d?X???G?s?k???5??[u?p???????8~*????????@?W???e?2\??? +kH?????????R?eV +?{L? +"?%???7C(?Z??9???d????????Fv????v?F??????d[?????????4???O.??r??T?#q???~?f? ?R????|c???/V??????3??749???/?!??C?x]?????????3M/k????Sr?/?w???le?b??Lw??I$????n???R3%???\???????~54??s}??p???????>?u{?~?gd9?\???:6?`??>????s??W?r?3??K?Y)?????,?;???????0??????7??OI????U??[??kL????????D?(x-?????????????????*??4Y??">k?\???u????0???\M? ?????v +?cr??????l?,?FF=?8?mc?H?p?T?i|7??????n=y7?Z??.??????5?];?`t\?????a????v?K????????=.???cl?r????^z??6????qk?y????????(??*???m?8>??k?d?Bf?>?????????????q=`??Z??G?=??7???U??S??????VH??$?Q?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????0z/G???WU?~Umsh?x? ? ?^Y?:?'D??Y?l??????.cc?S??_????????\M? ???X???>kiy??\L????;?U??t?I???o?mqhg??n*??+~??i78u?b????&7Yi.???Ohn?%>???N???????3?du???????G?.?I?A?T?\?[_]???=Z??[???p??X&?RS?fd \K?Kw ++u?x???????0w?F?cgN?????e???cq1??s?2???k??O?_?$>?ZY???h549?o??>????g???WO?????4X?~?)?|?iv???]8~???|???@w*x???_:?]??a???4S ????`?,??;?^=??`mc???/b?_W?WI???Lv +????5.w:?6????4yV?? c?0??i???????,8^??Jx_?Sz??????+oX??W_???~?$|V?A?[?_?g???iua?c???;???k?-??S?}K?_[??e??/???Yq??$8h?3?}_???+??XzoT-??Z??[?????.?$???]?cS???W?q?3C:??C????c?Y??P3?wO?=#e?b??n{??8?????????c????????g?????????[?{n??????+?????????)$???????o????X??O!????v;??????%B????UkE??m{${?(? +(?$ ??4/?t?*?`t??????? |??????????@???%??>?u?c??L98.%?gn?T???I????????J???c???bq?2???)d?? ?u???/?????H#? 1???{)?u?????q +~+??]a?nfc??\#????|<P??W???,rF??????T??c??[?d? ?p?[RC?T +?{?J???TU?????[=:=M?oo???^E??;[ +??????~??????,??????A??YZ???=????.?e?sG????g=??7?????IR^???????t?:??[A??? i$A ?:j?????V????2?????}?5?0D????g'?}h??x???71?f0??O0""u]v^+??????? +??????(?m?}??o?LJD?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%"????(?_????%)$?IJI$?R?oW?3?T[?K}X?d4cO?r?I$? +"??_7c??????Zw?KC??????B?~???=A???$1?:n??????????C3???w??|???hv5?4??}?v?k????e??HLk +???1?/?O???????M^]???w??????V:?z'S?-?6T?m?ln-p?:)?(d???,Y?????^G??2??a=??????^}?b?+?i?/? ?1?WG????K???=;?????kv???q>? +???Y???u?5`cQ?x?Q????nxf2i??? "????I* ??I$?$?I)Hm?}??o?DCo?????JH?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?_???? ??c????$?I)I$?JRI$??????????/????!?{HWJ?"B?v-&t^?^??:??M?#?%]I$I'r???k??0>???/?w??;?$??.???q????-h{O?????x=K?}^????>?6?a??\??}4\???N??????U??mniyk?h??????Y1?et?h?&??a??[??2??v?K??c?G5????/????????m?_?8 ???(??9??K?,??????q?F?R??S??'?uZ?3?/u4????{??:~A>xD??X??????I?V?k?q??^?"???;?h??t? h:J????mr?I$??I%)$?IJCo?????"??[?RRD?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%#????(??????O???????Jm$??????)????o??o???J????????I*???_??Jm$??????)??u>??:?Cz?-y?\?(???_??1????)??~???i????????"?c???_?}/?})q_???M??_?}/?}6?U???????IU??????Si%W??K??IM?6?>??????}N????O??):I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?J?? + +endstream +endobj +7 0 obj +<>stream +H????n?F??????*1????D??H?n??*?K?? +x???z?G?+??@??mTe?y?????f?a?m?(~`?r???l???????&#????Y????S??O??????M?3?d????b??H???Y?mGj???????????F??;?o?K%?K?|#j)?5 ?e?)???t??>ms???1/?,*?<[?w?r?w??????U?r-|????c?m]????ro~????????????O0??,L?X9?????@s5b??4?9?fR +?w?;T#??Q?5?h?fh?? +??4???o???A???C'? u??????%Q?iF???^?$??D?.??D$???l?v???W#??E^???O?????Z ??{?x^??;f?>?7;??????|c?3???V????? ?,?E +????|?\C}rX?D?u~???7?;??:???q??~?@?V??l??dZ?+?(??bW????Z?1S???????,f??^??7&????? ?? '?K?x>stream +H?|W????}???#&5C$???f??TR??N*?T +"!????????9? +R?D?]?@\???i|???xW??8??-K?Mt??v??????=|?#???O/^????????K??o?o?2?tL????a?M???&?uQ?]???%v??>|U??t??g?ZU??o??M?>Su\??n??B???F????????4??t?m????/?%?:J???^~???????l??????c?i???3~??L?U??&I?t??H???_GZ?/V?k7'%??T?????????sg???o.??q?~?????$ >t??Py?xh???^#W???????y?w???1+??u?????#u?rfn??y?????A????x???Qy???????y/?{P???1z|???9??8??bl????D4???L4?m??@4s?F9??)?J????? @?"????????0??_`/?i,?2x?}f?????b??S_S,?B?su?I.?|??YL? d???A}?? ?r??$*??????b??W??(?Y??%??[]???Bm??????O?{Df#dT?????k???????ld?EA?ap?iA????M???Wv???W????0p??f???l??axP?o??.??R#V???S????????????:_U?a+?|b???.?????H?Rf:D'??:?Rh?%z??V??(KrL?7:??`?"??bj??5r?????\?*/?i????F?P????cG?????W??p????WA2!a\L?Ib???bK?O???D???U?GJ?????$???1?N9?J??S?)Qq?i?\u{5????D??j?c?s? +?M?.?? ?[Y ??b?\ 9??l&???S????P???u?5C?KB??f?v?k?"!???Js?1?Z[?????????7G?? ;???????k?I?h& `@?????H^?J???(?o`???w?`??R?eZ??5?Q$?#?n?SPb,??????{???4??Yk??*P????>I|??w??IL/n?N+?Dh?????A<|????????????/Vj? ?.??lQZB????????b?x ?w?uk5???Q????????????>?hL8??+??HZ?{dM????T? ???~??'j?x?'??HAu?k&?rc)v?oVy???&m?F?W??{?FR??????Z?IjByk??0D?R'? +????4IY????C????!JH?\?g?7O?Q JCY?D?Q ?;14?S??T??l????y??mJ-???%?t???M?P?aT7?{?j????n???"???????1??T?H]???R?[\?$w?^?dj??iY??}H +?{.?S?(?????;E(53<?=???????? ??e???`?t????[?ns?J???+???~????F??{ g??S??C??L?? ?ptl?)???g?,?KM ????o?dj?c?z???T,?D??E|?????P???Q?g?J? C??T8?I?D????+?Y?jv??x3?????m??w? +e??w????? ?H???C?LKJ$1- ??}3??(G?? +?????yo?? +?p?-????r??=?p???+vN at v??\?K????/?g|?M?V???K??O???)|??7? ?*??Y? cK????~??FU +??L? [? ?&? +??????M?????r??(?w??? +??]??Y???0h"???????u?eO?T?B??~Q??-????M?dCJ??7???i??eo at e?}???28?f?\????*???? ??r?-@???R???V?KE>M??.???}j?????v???????9???K?????[????,??????2?Z^?7??;`????(?/??]6$)?+? L?y??t?uF\?C?????vt%?V????nP????U????w?????"??<{8?W[-????|}[?4???m???? F???m?s???I{?=??*?!5??o;%}??H??^????H???^?????)-/???H????3?????j?J?v??y%?s???;??[??t??[??}>?m?Z,g??%lZ????}?(?M?'R???%h4g t????Oc??~ ?)??; +???????H????U&\????6/??>??0QV@??r[p?????Q`H_=6??F?h??):???y??`S?p?5S? ?*?(???? ?@?1??e?)Am???jX !??;d?Xu?H?w?dQ?????r? + ??????????!????z?(T)?-??J?A$????? ???]Vk?zG???T6???V ???P?j?)??DWRsTV?|?u3??3????????W6t"s?8xp_;_??????????$V??q)`dh????Ui_1 at a??*?d?S????#?????f?&????V?L?4?e ????????s???@?wF??F??g?? +?m?N??0???8??S??D?Az +??3?????!I?9! +?D?:??=??]B"x???\&?B?//?n?&/?A?????Q?D? ??"?h?f?%u?x?B?V???EG +?t?=??B?t?8?B? ?P??C??6?>???PT'?I?= \??V|>]/??bsM??w?O7P~?(?.Orr?f9??l?E??t???e?/????W????kt\?????????5N??K?/??Z???K +?N)pX???bt???Z???{?6???|?=e?S~???9?R???6?L>????<.W_?-I?9g?????????????X??*??????On?? :?o????????????^7??*?A??o???+???;????s??q???V|????b?bV??n?t???b3??$G???~??? W??????_???+??'??T +N?^?????????????!??=h?S,???_X? +?AD??*?c???+?mi|?L??G?-????\#T??)??!???Uj??v??_????W??:?? +endstream +endobj +9 0 obj +<< +/Type/Page +/Resources <> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 12 0 R +/Parent 100 0 R +/Thumb 85 0 R +>> +endobj +10 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;??H?"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S????dt?????n??? ???2????h???*????J???~E?????O?????-???S?C??????_Y?1)o???=?|?w?H????k???????S)???2?????U?qMV:?mZK"????zw?n??+_?~@???x?????H?^?w?E????@?&?~?????t?^????|?????????,?O??H{?G?v??;?M???]?[?u?^Z??c??'A#???? +LG?/?{????>?[?????3K}O???d???W?u?~?a??????n?????? +0???w}g??g?_k/??ZMf7??B_$??D????1??????????Z1.??e?_?ipt??e at t??????_j?f}???S????x?V??ro??? +???c?_r?/??s_??NG?q??'?`???M??O?@G?????H9?@A?/1???z??/???????\&?? ??B?????_?????H?Y-xe????u??`:FGH????y??????? ra"??H ???u{???au??e??v?F?%M?T3z??a??????e?cEmkxrR:q??3 R?-C^7?,}?????????@??b???n?#R???OZ??]?smv+?1????????? ???K(1?? +??#?7?N????gu??`???H?????????;;???fI?)>?^s?';??= +?tl {???X?q=???u?z????Y??Fi??[Y???)??f@?t;????A;??=?????Pey????Zz+?wS???????h???? ??fQk.e???????????3??u???j?1:?$???+?3??-}2?W}???7%?q??~?}X??UzR??/??6???????@A??/?=G?DjO???/h???-??????8x{??u~?????1????8 +????S~??????,???o???;Lw?D?%?3?Q?????o??T?4?O????m??W?;2???hs??N?????????:?]???c?[S\?[?3?#^?????0??Ve?{??WY?????h???????M8?wz????lhV??????8????B?????$???O?????/?8y??Y|^?^#?(?|u??P????qh~+?9?-???g?,p?????~??.?u? ?W??f??l?P??Jq??W?=c @??7?t*+?}T????k?s?x??????????V?49???''}!??9G?U?gT?=?3?c;???I????>???????.???U +2D?>e??n?(j?Gb%???????W????+???[Mm9?? 4A,1&J???????? +?-5?m`k?H?*???????8????_????X??????u?7P????????_/???t\????o??o?v?J ????T??Y???&???????7?l??????"???????8???? ??#??#?JA%? ?9?ZzWU?????Z0?????76?.?D_??[??^F?G?}/#??????x????7?l???????_????X?????)?h"u?M??l?i"(?????v?|N????>????.3?@??]77?jun}?????Y?????X?????)~????c??h???!q??Sd???4?3?lW????O?d?????T?I?@???>+g?e????O*?+u????I??,????g?,p????g??????7?1G'????5P????????????_N?????\??k? ?? ?G?? ??q.?qc?)???c?Y?????X?????)~????c??h????X?;?U?T}&$t7J?x???_S?q?F??????????_???e?X??_sHi?2?f???????4?R???6??????D???? +?R+?c?a;?6??}'7????????t????n;??.??}`??u +j?V?1??_?SY??,?j??o??????G?E/???g?,p???#??????Z?F?[?_\q2??]>????7l??%?_{?????{:??=??,=?\???????8??????????????,??G?n?h?0???U???7???=?3?"???W?/Q???i???}I??r?c?\y?B?/?Z?z?l???oO??:??? +>3??:_?O???pO?????@i???%??H??????????????????g??%?#?+?????W??????nE??@d{v??????3\z?^=?~?1????M??=v?l?T??o???:I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI,????oA??gQyeS???'???????????GQ??7p???????og??"+B?oP?$????:JRI$???b@??m??????I$?JRK3?}a??W??? ?.v?cK?????????^m?-n????:??????????+o????Vy?vC????Q?&??????e?m?!?p??pAK??Q??VI$?JRI([c*???v?????R??????????{:s???v??ikg??Z?&'_?n???.?I$?$?I)I&?1:?'IJI%?????????6K??????????P:?????wi%W?u<.?????ETV$???k??~???3>??s??-m?,???545????$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?Y?X:&?/:?.o5??>Ib}`? ?? +13i???c ??!????I$?R?I$???I%)$?IJI$?R?I$???oZ????UU??sY{?L?????Z???$|???????]$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?C?'??,eL?s?'???????2??q?????!Y??Pc???h??>?*JRI$???I$?$??N???q~??h?????'S? +?V???mgs,?> ????f?Ff.4}??S???pl??u.?s?t??c? +k?I???)$?JRI$???g9?? ?'? +o??z?X?Y???????$?IJI$?R?Y?s???????,??????powk???????Y???M?i??Hk~?U??f?I$???I$?$?I)I$?JRI$???I$?$?I)K????E???tV?????9???Ay????)???????& v3I??D????/??u??_?????D????}M??/K?33?.???Wa???? ???%:??I????????7?# +e?????%?q???N3??]??r???gt|?X~?4?L??z?6???k ???7?W??Kk?#?????$??????&?i?8??M????8J$?d?xdbq??????J????7?y +W??O??V?NW?3?YU??t|v? ?B?4???*s??Q?????????V?hx??????W=?)z??~?[?y??g????]??????????l???A?y?????oX?qklv???3?QK,j???)????i????lN??U??bV??'&???????]?#p???i.????!q?LZ????)? s??'?k?0g??????Hm?l2?|Q)?Rx????e??x?????a ??????s???~U4???8???`???}e?^22????J?pv2????`???????ed??N?^%?y???y?????????R?????)O??? ??c?_yD????I,??Y?o??????????m?Td??T?)????????z?H??;??#?+?D?M??2??????X???????+??/??|???~E?o{+a{???s?????/?*_????%???? T??????M?????.????l???Fs?Ihl ? ?nm???c??rl??t?H?U?LOPA????=O??&wU 8?q6?hsx??t??>??n??b?}??t???vz??M???v??P?z~E?P?????????M?u???n??f??[It0?h?!?D???r? +?kb?????RI$??I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S???=7?c?W?GR??Y?F??.??????????o??5?s?V??????C?`?XG?P??t????-??????fN>??7?Z9p??????0z? 3?_????A? +?z'????Pp??/?X?????8???@???y5e?U????4}u???zR +????3??7???????u?Vb:????j`?e?Z?W??????7_??=;??????G5?????????I?9Y??k?*????g????h?G;.???? +8k??#???*??nP? ??^?dk??U???B2???6?????5v???q???-???.??[???Q???????????v???????c?S]??C0V6??8?`????????T>??????????#? +??:??G??>??>)???gC???E?,i???T}U?M??n?????P?G????&{C??O?s?m_V?1?]}R?m??[^???v?-???????Z)?!???X??y\?????ctj??Y???|??}i??yW2?Hn0?v??p??eP2??J?E?@\???l??Y:E??"????QUCs?]??U??]zOC??? ?p??u?? ???k?>?????av5'?K-?6tv??R??Z?~?ukz7???[?e\?2{"F?~????????O????R????W??t^??q*cd??r???W>?}i?_Wq?ns?{??? {??g?????c;??&???C?!?-?4??S??3??9???F?v???IU????=t???[ ?@#?????}q?????@v-"?|?Z??on?8?j?n??%?????.O?i?????Uh?? +???u??t??/?%??!? ???r?o??????v?S?bd?n??x ;??[>?t>?????!?`?b????&u?:???{rz?C????e????????,??W??C?3??]?:Cl?o%??t$k?l~P/????.??N*???K?_W??????????C???5%`??^?VC?????a??W\?|H> +_?$??gO;q? +????m;,????2?K??1?F???o?#???L?j?MW??@????O{???R?n~%???w?G3?\?g?????}?WNFS*0o??Y?u@???:?F???????O????d????????[=&?+_????2????@wy?-?]#????#a}dc}???z??????g????{?MU9???h-?CHi???t?O??+7?3(:?6???N?y(???8???7K???N?7?????+?U?????e??G?? ?h#Q?t9?S?6oX??d ???w{%>TO?e??#?e???c????wn?,/?t|LO?U5?? +?I%#d???;)$?A*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S???^?>?_??^?>??f?Dw???It??(?o?????U???z?os??MD[?}???`????j?????@?@?@(&???????K@??pf???L????K?u??]9? ts^?-??c??>+A$N???t +#?? ????????s3I????{r?zB??x#??]?X?.s?.???@?JE??F^=?? UkK^?????W?lx??k/?s1?>????wI!Z??W?9??7D?~%V>?.?_}?\??\??c??W?????x??i.D??m*}_2?????W?m,/?Lj?z??W?+?x???W?????g?]??jz06??*??o?8}{"???,???Cri?[|;*?P>?Y?? ???d?? [???u?V?~?? ?I???????v?S?z?FNuV???q??3i:.??????? ?)$??].?]T?I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)????n??XT????i???-?;{-?k??es;??Hh+??????)????j???6??G?.n??vP???c#?[?M?B???????L?G?] +I ++?\U_???y???T????v?3???0???;*=o?&FvM}S?????????kk?jv??$????????????}j??Vg[?V???T%?8?]???k????e9??.??X????Xat?$u?b??i~"????,??Q??+u?s3kp4X?}6?F??????bS?N?S??LFI??]??????W??u????H??z?al??A?????.???o??k????{u$??MO??6Q?y???\??\=?\3i ?< +?a?k<,????[???X???i? +%????W~?'Re???????o??=1?V??gWaR{?]{?3???? \wI??wN?{>??? An9 +?????????0??????$??????lu???????.??C['?}8|???;??}F??[??u.???3j??????>k{?????zI???2w=?. +?!??ja`??P?|:?E,?Ea8?? F^4?_?dkx\??w??s-???X????K?? ???-_?SY????gd??uK??%? +?J?M?W?']?????X???x?X????Y?n??r/???????V+.?m???;{-?????????R{??)?L??c&v?6~M$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)E?m?s%?8y$?S??????2-?????qkG + +??O?{?????\????8???2??|Z?}V??? 8F??????Ju?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???}t?4}]?? ???c??P?E??w*?????V?ip!??1????|?????? ? ??~???l??o?e??????J}+%?x????Rm`????$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?INg?>????r??Y '???????-????v?????????Yk?O??GT?m??p{?4?? )??*????k2????uSIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)e?b?????Y????"?????W3??zv%??o?SK????????2???????~A??.rJK?_???]u???? +??a??tc|?u????????`?z~/N????ihkZ??}_????7??m????????~7????~u??|?ty?$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)????8_]~??/"?p???????t?Y21:??????rk??Q;jxq?^?9?????Q??7/??????O?k?}O????1?,n?????B?'J????*???xKW?'?n??71?????Q?[U? !??GB??r+???????x??v????xJ???????R?v^V 7??8??`-~??:wH?n'O??R????Ot??q??]?!EeTL??|???C??v???Q??f8[E?{Z[????>????6H???/3"? +?~??-]g[???z?mgS?m? ??E??CT??7??C????F?k???^G??a4???V?xv?\N?#??~?(?????S??K?????;??U???????e????F??7?9Y??B?o??-??[??75?.????/~??{3??o?v????ph?????Jr?@V?0????-?c?}?W?u?,nM????v?au?5?]Lmu?1???$?:x??lE??n?I$?J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO??< :O? ?x?is???????zwK?????|???????????????k*??u?V??7???Pu???.?w:n?t??:??AI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?Is_]???}Z???????????? )???]?dc???????F?[?cN?yP??R?e??c??Q???`:??e???=O0?i???????|???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????????j????????i~ ??9?7?U???]N?K:??q??_?w@??U??^@c??F??}D?]x???????@~??IP?=k??}?7p?{Y?e????U??}e?q6T????$???S?$????????[??71?? +?:????????%???[??? +>??t4w??????e?????')??*??pXy???????[E?X??B?:?]??w?GP??y}F?!?> '?????????\?m??{(n??;?!?W????j?5?+?S?i*]'??u?&f?X,??x>x???^z@???v:???T?{?<\;$t4t*??%??_???~?X?p?s/o???????[??Yz_F???=?????????=?:U??C[????.??v??6?<T??\\?mi??t V?*??I$?R?I$???I%)$?IJI$?R?hsKN???+???????P?f&c???m????{?o?????Ln?@?f+??????$??9?'X?S??z???L???X;?o?U???I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)T???;"?l?????*????mx??|????9m??????9rJ}??_??6???@h????????}|????`??;?????7?? +???????h??gW;F????N^???p10*???~?P???c?$??u???]m +c5?@RI$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%0?????k?u??9?N???ak?j +????Xv/H??R???_??4??????,??V?????????w;?????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???'IJI$?R?I$???I%)$?IJI$?R?I$???I%)$??m?????????(??>g????g???????????me<6????S?Zs??:w\G????????^??w?T~???1onE??????m?< +U??=???2:u?4??c??]???D+?a???e??I_?K????????1+??V?m???K?w?W3??S???OB?.?dR???N????tUa????"?\?}-??n?J at p?^)i?8Qo?? +?x???O?,?TK?O?+? +??e??O???ke?69???8????_????:HwN??????@?v?`;??.??q???~??{??M?.?$?\??Q??%P?i?9????????~??Q?Ki?k{? .???????????k(??5?4? +?$?R?I$???I%)$?IJI$?R?I$????~??{? ??!?n,s??#H'?????\3?????]?~??4;??))?>??c???N??2????}D?x;4]????y?????{]i??"9^7?Q?6?u?em?? ?????a}R????ION?i HIK??$??I$???I$?$?I)I$?JRI$???J.??is?kF??J\?H??f?=?Xq??????a?????_????5?????$ 1?JJ}?T??{??}k????x??N??????sO?????:????9??0????????NJ????????v??p?y??#?%; ????_???g??:? ?? ?4?e?Y?=?TpzI???????^K?d?O??S??7?|?F??????w???>!????O??W???0~???N?=?'?m$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$????????.^s??J?l??"????z??????VO?????y}??z?Z???D?????u??!???????w????????I%)$?IJI$?R?I$???I%)$?IJI11??q?[???N?-?{ss????7??????}???????uO???[??3?i|???kx???Z:?_?7?\?????C?c???M?????5Sk??A?8>??=???^"?J~???Z ???A8????-'i??????U??psX?dcU?}X?}W????@}??nq? ?>?)???G?};???'????8?sg? +??%.?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$???>?u???????|t?8????))?t?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%??? ???}??,h?C +??~???t??????u????JJuI$???I%)$?IJI$?R?I$???Qs???;F?$???}o??O???fk??]??????/??323r???y??\\??{?93?.?F0??A?7??????p>?`c?????\???????3??????!z?=~??4??????$?I)I$?JRI$??decb?m?????9?4~+??_?C?? sy????????,???rm?tg??zt;m??????o?m?{??S?U???e??_???p`???w?????}f??2??{??-?~|.?y'??????????CM c????'?????[u?:????????}+]?G?IOV?I$?&$4K??*?oS??o????????????{*????h????????y?~???a?Y?????????s????at?`??+k?F?T??S7??@m?U^??1????@??hu???WOp?au?5?I\?fC??}:?T? +?,?0 ?\???z(??????]??w> 3??????MO???0?????Z??????c?f%???/????'??w:??NR????*7z??7A???p?K>?????n??^5x?mb>'?f}P???Z?$o??;???u?1?S???%t"???HJJ??/]$?EJI$?R?I$????:?3????v?C ??V? ???_}m???a?R??????Y???~? ??/2??H??,??IJI$?R?I$???I%)$?IJI$?R?R??Q?e?QF??2??O??H??b?W?Q?eNi? )??%??_?????s?}????JRI$???I$?$?I)I$?JRI$???I$?$?I)???}?}_????e.-{t ?!x???/?Y?s?U????.p??z????M????E???O?????9?H????|dC??????l??>???iis?M?1??s??^??{??u??WP???s-wp??UT??O/???2xp????????`???feO???????tIO?`}k???v??O$wimZ?z????;? +=/#??&???i???$?$?I)I$?JRI$???I$?$?I)I$?JRI*?F????y1???O???N????e??0?H??Z/^^S?((9?[?uk?`??J?d???I%)$?IJI$?SC?t???I???????????+???gS???d??Y'koqd??0??*????]???K??o??v?x???????gu????n?[^?ddCk?d?c?g??????2?oaeyv???p?A(='?T?????e?ve?I?L??q]?OV?????m?X????9??iWN???C ?pkGr?????V-???O?f}??q3?????@ +??o????j|?~?m??d???V?'L?? ???TWP??E,1??>?T,?????,????-^?g??pFs???$??[?F?}??#??????pF??2J???k?G?N???V??-?TX`L?????~?@?^??[?+6?l{ qk????qX>H???.?D???PV?"#f????XG+???q?, ?8!zO??3???????+?J???@??R ?L_????k?i?I$?e?I$???I%)$?$?2?_u?B??????????u????F?????n?z??????_W?M/ ?,?h?K:????R?$?JRI$???I$?$?I)I$?JRI$???I$????]dt;??T?~ ?T_5?[??t????S?mx??u?_G?^??z???e?y???$?IJI$?R?I$???I%)$?IJI$?R?IW??????;@9@?5&????? ???#_???/????????e?o?7?Z?????k?Z?? +A?????????m???JG?? 4bco?u???X??9?;????2??h?{?^?? ???0~???Y???i?.??llpE2?y hl????=;'?????a?????L?D`@???#???#?q'^xGG???????^7?[???i??}?E???? ??nks?(?h?{?????/[n_??E6??\+c? +0??U?= ???MMk?)??'Tb'P>???5????????I?I$?R?I$???I%)$?IJ^[?7?????@???p{???hm????Y\r?e,?????g??>+??????????????w7?????B???}#?F??????W??????Qcmh0Kp??"JRI$???I$?$?I)I$?JRI&))????i??'.?-,? + s???Knu?>??u?.$???7?r??????'g?2 ?????)I$?JRI$???I$?$?I)I$?JRI$???I$???y?+?i??N`???;??NW???c_^E.?eNi?!}? o?Q??.6u.????? ??Q$???)I$?JRI$???I$?$?I)I$?JR???&??????,{C?%????????n;??? +1??^?OQ???????zJv????? ?~E?'?8]????fI?}7"????6+{?s?F??JRI$???I$?$????SK?pkGr?????C +?k???9++;?????.;i?5E>I?VW%?3????n~^)???P!???%??{?u?h???V;?9???g?????/J??Ur??ft?`??? 7MWC?S??K???*?h?!????8????G??g???h??vM?>?e??5t??'IJI$?R?I$???I%)$?IJQy??????K'?WPgM???????VG??v?)?o??o?????d?[<,U7????2\fO:?$?$?I)I$?JRI$???I$?$?I)I$?JRI$?????L?S?d????xt?>K??k?*z?p??2??#-????IO??U?3?????????????n??c????5?t?%; !?}7?,???? i?%)$?L?????9?6????1))????????k??|km{] +&H?U???6~?u ??lm????F?|S???M??[m????V??A +i)I$???>?I?6??Wg8?Jr~??v??Yx?/???~;??/????aS????{kg????j??h}Q?I?/e??>=?<~+?z?^????nKq??1??s????%:?T:U???????W???hgc????/\????F&=x???P +c??JJ]%???>)h4IL?U??q???G?{????2? ??k??????0???H??K?????e??-???X??????v?h??????|I[???5?{s??SQ???J????.??p??N=uhD??P??I)$?IK.w??e[?Z???Gr?u???????????*}'????x??? ?/j;???tm????? +V? &c;))? +J?#???>?l?.p???~kY??@$/)?Y?ff?}?s?>x+??G?h??* +?????=1??M?}? ??}O???l?&D?w?y +H6:?Z?w?{1?B:?"?? +I$?R?I$???I%)s?????_)??U?N?9.=?L???t?G +??c???e???G?IO??{?yQNS$?$?I)I$?JRI$???I$?$?I)I$?JRI$???~?u???X??a????\;?? M?:k?J}??W???]??????67a?|J??:???s????n????W?Iq?:??????V????J{??}w????]??????p?W0???_S?L??W?}i??=s';~???)<{;h??9?_~??>???2?L?m0?/M??Z0rj??????M?Z?????d???;???|'[[=?????| +???_P???????.????m?0O???c???????????r]>?`?Y +??9?S0<\?????(????n???/??K'?? ???6[k??|;???'?j}h?{\]SZ?Hhn??W?????b?:??M???>??$??????r1?qk???l???X^U??>WD???M?h?f??????N??q?????????>??*:?z??*??,;X?K??????????,??\)?x???c?6k?N?\F at J`?? ?kL?]C?d]{?!?i?G'??W[??N???L????Li +KW?(?FQ????a???&????W>??.??g???*?p|??ZcB???}om?%?i?G+??????z?n=?{Z??_?-??7?*:I?u?x\O???y?i~?:?????+?????9??H ?\M??k????????}????,??Z1?@!????~S'?S$?$?I)I$?JRI$???I$?$?I)I$?JRI$???t???vu9??-??4??vT??BJu:??>???_??i?m@?Z;\??$??????7?u?????s?nc???? ?q?*??????OC%??K^???v??s?l?????%>???V6=??????4I_??u??????>?? ???-?????F?;??????8?=P}?{?^}??)??????uyX????c?cP?????????~?}g??Ge?~?H ?Ow????8?{x????O?$tSf?=L~w????e????/??}??O??y?n?to???U??>8???+?c?ul??????????G???X*??o+ +X???p?w?T?iK???u???6?W???g?q.q?[8})??+??T?????*??? 4????????CD)$??*I$?R?I$??O?g? +??lv?o??}??S???Z-m?un?4???t???}Bio??'x?x?f?????X,??}G????+???D-K ????}9??45?!??8VW??;??3??V:l?????vH??@?lD?]$?LJ?I$???I%1$???????FO??'q?????????OI_9?t??3?.m?k6'?r??D?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)%???S?????M?? ??`??;?7?W??$???I:???]y??c??K??Js????a???zy???????^???G?3? ?z????c??\??...??]??|??Jx?????F?J?z?N?w?F??z?N????ae0?mN ??v_N.3???????F^3??Pn???????J??J????? ? w????T?)??m??ncus??Jo??o??ulrz?g?? GLIv_???c??[xXx?8????WMM +cG`?]?n z] ??_oL?G?l}???f? +?????_???fu??x?az?=?:?6fZ????31??=???w??g?N?????s~???)9|???[8^??$?????r,?????????^?{?"_?%h?X?????&???c??Wf?????o????u<+??uj????A;?a?Wi????T?8s{?x*??5?bn3?`D??&'P/RI$???I$?$?I)c??????[??4Z????????F??v?_3u?m??f>????\L?RSI$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IK????????'??>??@???[?|????????????wJ?c?R?+?v?Lx?rR????g?l???????i?M???]k??@????? \Z? ?E???????????0?4I+??Y??c????s?d???(???a?/????@??0S???/??t,;3s????ov3?wBI?S k???U?9??i???7???????_??IwM??^?N??????k???;??HIO?KK?tn??r????:??b?_?Ua??,?ox???*?n'?Ur"RS????e???8? %AT?l???$??????J?U????0KH0~Ji)I$?JRb@??:???Oh?%???Go$??"d~?%?S?g?; QO?M?yZ=+T??N?????j????32/$?y~???WI$??RI$????IK????q??n;?v??'?Z??j<????????e????7?Z?kx????????s?v/Un[?l:O?e??\????2?['?r??#?0?:?X??LK}$?)*????I)I$?Jk??^6????u???`??Q?????????6y?W??[???>?g_?>??Y??]? ?$??I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????????~-???W?8????f_???l?0~??Y|??jl ??@?? )I?I%)$?IJI$?R?I$???I%)$?IMN????n'V??yo3i.n?$??????>?b??[??=S?U?28a?{6~6F +Y?????`q0 ?IM????q?jc??kwi??+&?Z]m??x? Y???V?-????k?h?+?a??w?f????=n??m?? ???m5?5P@??%?G??]R?Sj`hDI%a*I$?R?I$???I%)$?IO7???????K?3??A????????I??Dik?c?????????''??Z????????????I*???I$???I$????>?f?g??????????? ++?*???]???I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???????????????H?? ?b?T????????????U???c\c??III$???I%)$?IJI$?R?I$????IMzs,??:?^????????.g??????2?"[7z~#/?`#????n;` tO?m?-.??>A#e$?I?RI$???I$?$?I)I$?JRI$???I$????D?5$?S???????X V?1?9w??X?C???O????(???mV?A???F-??s?c7?9??Kt??|?????I$?R?I$???K.?>?_U????Ec??????o??4??%%,?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?o?nM8?Y?}??el?nr?5?8 +A?/?zg?????????????????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)??w????Dk?+?2?]??I??B?z_?????qi??y????N??Ho?5{I)??????K?w>?^??x=??g??:?W?_?M0?V??R/w??3??~E.????*?',???G?=??i??0[K!i&:???$?I)I$?JRI$???I$?&K?h.q??I???o?????4?]w? Y?P1?>????? ;??UwV?f&0?UGme???v=????j?????'??/????4??N?D??IU???I$???I$????????"?????s??8????/))d?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%&???O???W??_????g?H_1?I???????/?t????$??$?JRI$???I$?$?I)I$?JRI$???????[?]2?~??Io?A??3/?%?????7???mu4????????K??Cg?a????He|[?S?xq??G?]d???nn?^???!??S\???????J??~???bl}H??I ?$ ?I)I$?JRI$???I$?$?I)I??H?K?u,n????t@;[??$?2 ?D???????????7X???.??c??c?g?c??:.W]??Y??T?'???????g??8???/68k#&I$?????I%)$?IO???_??4??%{???????.????%??$??I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?????/?c*?j??+??"?????8??????????????)"I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???z?R?zu???A?(z>???ax???????A?????x?IK$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)6'??????????G?[??B???M??o?_NaC??-??!%'I$?R?I$???I%)$?IJI$?R?I$???}a??????sX?7???7??????F????????????????? ???1?rr???S?S???!???`??Q??/??+?O??i???wd???x???????? ???}e??e/&O?i????Zz?'L??????=+ Z??k???yjG???y??@?y???^?}???????w?^??????]FY??Ys?N?????A???c???'??_B?I$?T?I$?$?I)I?$?JRJ?T?????`f?y??,??=O?Z?N?Yk?????I? ???i??Z??????????X?|?5FY??????????!it?????C?Y??d|?????k????@?? +S?-1???g?-R??????????{??U???:?I&??d?RI$???I$?$?I)????????0'?:?+???/?????????I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?So???8???????????????^??(???7?????b????$??$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J6X??^? +h?T?;????,?%????G? ?ort?A4????????n? s?a6??#UW??????j?@C3e-g-O?P ??JT?$?IJI$?)I??G???.?Y~C?tKX>??#dj"??v?w?,>?????5???~@???2???????G??{]M.????[?}M??>?y?C4??a?^Sg??"t???W????m!??a???z_?z?u7??I?|??k???1?5??4hr?eU <7P?:?E????X?????h ?,?J?RI$???I$?$?I)I$?J|??s??8????/+??? +??V?uQ??????E?G?IK$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)6/??????????G?[??B????[??q??????????c?W?Un?LcZ~ BJJ?I$?$?I)I$?JRI$???I$?$?I)K????)??[o?????t???> ????UV??Q? ????????W?_O???6?]??w.???JL?`?4$*1?| ?Bu??????-wO?8????mM???Aw '? ???k??A_/?'?}y??9???`?`?S!??????? ??t??J?????l??$?H%I$?JRd?$w???0??????v}? r8{?4????????g???s?-?C???_?#???u??2?knS????????u?$???:????-}R?2???H?/?t??????Pgb??y?v???3J~???cH?%????JRI$???I$?$?I)?????!?? ????d?????uu???S???4???????9?$??I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??????1??o?_MQ???o?_<}Fev}j?????6?i?/?????I$???I$?$?I)I$?JRI$???I$?$?I)I$?u?aP^uy???BR?SS??????z??^5>Q?==?w???U?(?7 ?n??]6= +??T?rK????????????$?V??I%)$?IJQ?<)(X??]??~????????h?{?x?_??[?t???Y?;9?c????KSc????X????????K{.??j???SCX? +hV?"#?$,??c?l?? +?N5b?~?`I:?I&???L?$???I%)$?IJI$?R?I$???I%???o;?C}2?o2?p_8???I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????????????????????l???@?m???/?RR?$?JRI$???bJt???I%)$?IJLx)?IO)?)s2??M???l??d}&?i+???b??U??????B????c????d??????]t??????:.???+?b?=?uT?+`hSr???l?:$?uH?I?Z\?I$???I????J;??RS$;k\??D???????p ?????5??}i?? +?1??{G?]?\Aw???????e?i?????? +?5?G?xE,????$???]z?$?JRI$???I$?$?I)I$?Jy???????S6?v?x?y7R?{? ???E?#2?F?,??c|I ?{?}6??>??x`?? $?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jz_?w??????n?E???M??"?_?9??g?+r???????]????J]$?IJI%???l{?X?.q????????W*-????_5w ??????????} ?BJm??I)I$????%.???6???$?p? + ?G?IK??h??X4EC??f??????xa??m??Y???????^????????S +&J???]61??|?%Q?Q??9%????V]??`b6????j??CE?2???0?WU??m??????V?????? +???)1 r????g?V_???qP?G??????@??JB????/??????_YzwSqc?X ?B~ ???"?M-?5n???[c??m_L???xVT\??8???\u?????????cO?#????ApX?@???[????G?\y]?gX??M&??;P????@?bQ??,??GJo?X???? ? +?m?????????Y?`??????'LH\=[ &N??$?I)I$?JRI$???I$?$?I)?????+????ks\G0B???P?l??vYU?cI?_O?????D?_9}r???&n=D? ?????T?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%=??????7????/4:?E>??^?G????t??????????J~???????????wa#J?/?_\/????]?;?u? ?:??????Yul??5???>E%$X?X>?????z????A5?>??Z?\?i??????!+?/?=r????3l????4? +J{????i??????j???????e?:?9???K?p?5?i?D??I??NM,???*?K^? ?E???w? +????n? +??S??8?? )K'?}g??W?\?%? +\??V??R??????i{(iqh???:?[??}N???9???????? )??y:????????? ?????????%?29?_???|?"!.?L??q?k??????%?P??#???^??puc???Y?????~??~???5sy+q??w.i????N&'b??S???*5W_cX??hI?(??????????[)??5??/x=?????@h#B??}z???^-F???|?Z~???i???????80?;???:?? *??????3?a?:=lgLh???>!]W??.?oM?m??1??x???Kn?????g??/M?Ya;??r?X~? K???? +i??lu??V?S}n??;F?????X?w9??2??`&Sl +2N?E?Y:??\r]-2>*?L????q?i95??II[8?E???H?_[???3???$R;?\o??????"???C????????]?????pY?qL?Y ???y?8Vau??3H???>g???z?+7???w??9?n??Y]?0d???o HG?|?1??5??G?~?]?@???l?O?5???l??nv????.8qai?7P|??|?9 +??-????YW?.??T?~????Y?? ?{h???:I ?$?I)I$?JRI$??????O?[?:?e9 +?`???t&B?\??/???FF/???\ \C?|D$??I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S??????????co????}h??WQ?4;t"VI)????1?????np????????X_/`????VE6?[????u^?O??????????v?cT??NsZ??kD???}}???z?R???^i???^???\???4~?Y??j????c X?2|??8?8??I???=?V?oT?3 d?^?.????*?I)??'??????}?}?????????????^M?UY{/`kX?A??v???t????IO??mT??mpel???/???0??X???ct???5?W??D?????jt???/????Sm????/4IM???Ix??q???c?]G?????z&]T????????gh'?W?J~????'??p}V49?DC??c??O????^?_O???MU?[k?{h??6????~OBQ???)OSV???G??k#?6h?????lu?q???9cu??]K?? ??E/ + +??|Q?p?????d??:?Ye?/???=??KH ?Gb???????? ??? +~?V???????H#w?????????,??????????z?l?????????w?????U9????o??Hd???u?`???g??????+*????\?????a??^?~?????????+??I????'q????h??c??K\?A)???,??Y???zs\?6????;???WO??g????]?.???}?^v??g??8?J ^??Fz ????cfg}?CA? ???nv?\^?$???????g?????6?+?V?x??D????f??UB???Z?????)'???B?L? +??Ab?n??=????Ve???"???Q?J???o?W?D?H?m +?]$?AJI$?R?I$???I%)$?IK$/ ??4b}h??3sC?'?^????tt??R??h????'????\&R???\?kq???6???6? W?[]?????? ??`x????^g?>???X-??_}-???HIO?%???? +nhF??????:?P???u??L?e%7~??}f?.?}^??????E?}??m???x]??????J?C???^?;????S??_ ?f??^??l8????ppa}KmU?[?????C?u?^~????nfF??q/????i )??R?n?F??J????;?}`????uX?6?8C@T???S?????????3F5?v9?Gj???????Z???z?.??q?^ +XX? ????'?Z))???k????????????7Mum??????*?T???,Gc\ 8hGb???!?????t???vM??f?+t?L??}[?_??Xgk?&B????????d?O?lG?Eo?^\D?bTo???????????H??w??T>?}Y???^T}??k;4.??Nc????r!?nC??}H?b??7?@; &%p?T??uO?#??x??k?}R?9???>?AY?????}?T????|+`}R???G??t??Y?Z~?}???r?sc?????g??=J???H?b???????E???q[x??bc????? +??????dLI?f?j?]c?v]????jL??q????^p?>??u???Yk??t{?u'??M???????x??j????? |?H????X ??tz*??%???T?h?Y???H!?G????%?5S??=????/???U???Z]?W???r^c??6?-p????k?t??:?+m?'??X>?>v#???????????Z??h?N??k?}C?=C?????V5??????u????-??ae???Q?k????d???~?7ve{2@???????%?;+8Xw??????e?84'?????????*?????????}]>?+ +?DA?????JM?[??7D??`X??c}?{?>?? [?X?+?4#????c??A_??s?[~???O?1)o?P?5?j???H??L?BAX??@kICH?H)?^???g?e???@?^k?:nWN???0?:????B???-?}m??????????p?|?V??????????1k3c???????_???B??????hkGh??,??V Z??u??6???4CG? +}?ISe]$?IJI$?R?I$???I%)$?IJ\????m??U?F?Ye????p]Jn8?????-$s?IO??@??o?????dc ??sAv??Q%)$?IJI$?R?I$???I%)$?IJI$?R?I$????G????? ?u?????YX????Mul??H?; xIO???>??C??^@?{K??????U?t?$k?V?N???MTV+?????5?"I$?(?>I$???Xg_B???o?)W??S?USOv??"????I$?(??p-pi??h??JA?/??_????6U]m?[??4?D?R??I%)$?IJM:I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?,??8????c=F?Y?x??Z)????????U???l_[?\???????t?????P???????g?`$?$?I)I$?JRI$???I$?$?I)I$?JRI$?????G?__v]??????k???????:%??8?!???%>???$?%)$?IJM ?IJM??$???I%)4'I%)4'I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????t?S?_?S?_????nFh?[??v?-{????n?W??S7??w??~????IK$?I)I$?JRI$???I$?$?I)I$?JRI$?????U?k?o??n@ +?1??i??????Y?z?6m??a?9?(~.7W??:??\?? ??? ?o?=.???2p?g??0???!|???f.E??4??8???RR?I%)$?IJI$?R?I$???I%)$?IJI$?R|K32???????????G??t????SCMmG?+??/C?i?????A-q?y?{ZJRI$???I$ ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)M ????B??:<????n?gF?y]=?M????v?}$???q? ??U4G?t +g?%%>X?x)?R?I$???I%)$?IJI$?R?I$????Jq???SX??????RS???k??Y\??Y?*????^??~??????5??@?q?[I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??^!?6z9??????f?t?48i ?? ????q?w??[Z>?? +???9 )??%71?s??i ???JRI$???I$?$?I)I$?JRI$???LN?$9]7?/????z??????o=?J}g?\???_U???}[?J?F??%??1?c????)??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??*?W?tu^?~?YsH??^I%?1?^?K?9 +"?[??T?????l?????\?? +? +?\??^A%,?I$?$?I)I$?JRI$???I$??+???????=U?W!???_??????????????is?pn?`?_E}_??? ?????&?;??IN?'I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJLx????S???;???WTwS?h?c?????ep??_??t?z~P??K9?z?=7?g???Y?????????????%)$?IJI$?R?I$???N????U[????%?;ZrW??????{?4\???.#??????N??g?T???C??@ ??%?@k))?I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRd?$?vT?kuv?<??+?`?N?W:??s???s }?D?yTz?I???>? ??2?? ??=?IO??2????c?}[?8?m?S??p???RR?$?JRI$???I$???h%????R???????_]?u???q?x?????????[zF#z?V??L?#?4????H??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?#?0>??????&?n~+I???]??I%?-?M?X??i??{]?!??????????[??Lh???K?4?W?????\i?????Z?% I9 ?R?I$???O))q????}S??'U<9?u{?? +??)???K?_X??1???u?6?%{?E?????3 ???=????RSg ?Z?????Z??t???$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Js:?B??w?9??5????a? ???}A??W,?????sN^??uu??]?1??HIO?e2???????u[NOM?`?~?"k?%??_?g?????G?k.-k??|?IO$?????Z?????/?????+???S??M6??],6X?Z$????????????l???q??????S:'??1??9???))?>????????;@??<m???????h?8 ?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$? R?I$???I%)$?IJI$?R?I$???I%,[&V????%@e?????w?G??[?????'?_?u?:-???????]X??j?,??8???9?? ????ue?????nV??A?O?a%?5?????????WW??zC?_?PgW????S?x]+???n=???D??U???3+?????Y???/O????hf5,???h#BJE????C1??UX +k @??$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$??:I$?$?I)d?????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I/?????_???????)-mU5?[$ ?H??!??"?=JK????x????p??r?? (?"?-" bG?{^???>???N"?>c?Z??%?_Z>??g???????(??;???b~2?'?R??V?????y$??#???i??ze???zD?HM??????F??r7m?????????c??b@L?Yv}k??[?[??;^?i?H!%:?*8=o?u +x9?d??\??@?+?)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$????????g3+?M?h?cy?BF??"???????o? gd???c?c??????5n??]????? NMp/}??G??'V?M^????k??)*8?k????uV??b=???0?E??]???m???&??.????DH????v?J??} f}??????Cp????????^;^v????>R???z6????G?73{????yM????q??m??6??%?a?~a ;?t???fvEx?q?lpl??GM??i%??;????7???WUum????-{L??Jf????????F`t??(a??k??????]???uFd???i?/?\??[?(z?#??????z????,O?=p?>???????????N?????z?????d?8V??-.???\#??U-#???>??`}???w????Z???8????? ??Q$:/?"??C?mO???!C3;?~e????}?4k?H????&s??. ?Ms\%?8x?W?0??O????gN?e???T???G?Ns???\???;Rd??J:??????Zp?Z??IS??/?????????????`?N??X????????[???K}??s??????0????z]#?d???{?W???,c:n????N?Go%?C???TzS3 z?:v?0??????5?????K???6~5?uv??????????/???? +ow?ps|c????????????wV?;?????O?|???????a??X?w ;???????????&M,cI??Tr?d?~?xo???W??<^}S?G?/????oT?????O??Ds??W?i?l?????w +?U[?=G???????!???????@???7W???]#e?l???N???G?_???H??????_Vj?N?oYc??j?6 ?|N????N????.??y??;moq?o???z???n=m??w??? l??b\??ZznFFO??[??4???$?8o????kN????????6??'g?c?*???6?'g?cY>_?6L7??O ??]????????V;s?!???????????i???3??w?J?? +????v +???ly? ?1:P??7?????h???H:?$?3?/??????&? ??f?G???}??\[?-???8???????I????/]?hk??Q?x?a}Hn- at 5??`?R?Q???n??????P???p?1?H<]l??M?w?????{???[.?I??D???tY????B?X?]/)??Hsd??!??R????#?&v_O???:???F??;???????????1?n#??Q +?H?$??#|~??????{?;????#?&E?U1N3?Vu%????,o?????t*??????sK?[?G??[??/??E?U?F+M?????$@!b}^?m?????`?~}m5??V????o????qz{??+Z?{p???????????~5??P{\?;???1??WV??W@f??????????B???w?l??3??????{%?3z??Y?.?9=>? +?Li?I#/?[V??T???;??~?>?}M????X???\]?S??X?O?n?Wi?z?GV?Wdd???C???LW +???-???????4??w????e +????Q????????P??YoQZxC??u????_???C???7????R??????#?X???)???hu/???*O???e??????q??^????????e C?L??Y???kd?Y~?+?5}??]????}G??W?\|????e?9????8?!?e??Eo??~????v?kU????5?1???s?O?????}C?a??e??[/?8Td;r???I?o????1????/?g?? ???qW?}???nq??A`??? ?x????Z???K????????????y????Z???????K#?????Yv??9#???9?>p??w???????P????j6P??"@3????G?????Y?s????[?(????????y???? x??9?2?????y}5 +???,??p??????=?? ????CF|?V?? ????????????}o?????R??6?]??4?O^?}x???N?@??OP3?]??W???gA{????Z+??a?!{M???`??I&???`x?$????????????????? +u?w??{W?K/?????1? ?U??|{}u?'M4??????(x_?*l?S?????!???? ?????)}#?L/?_?o????rzJ?????v????xq??i?)/???????y?;?e????:w??G?is]n?=?r????V?N??P?R????V?GN????z?i6????{?x??&???? y??T??<1?,?g?~ ??C??????_???/????7???4?Y}#?P??t??3r?? ?6?h$i3?Z?k??u????Y??M?v?fOH??="??gu?:7A?Xmo?m?q ?I?S?\X?v???:???d??Z'????9???????/????n??[??E?0+???{?"??#?ct???J????l?6O???9~N? ???#?!\7?/??}i????>? c???????w??]??Q?????+?&???7?)H6k????O?y?,;???? +p1.s?s??O?c?{????0-nO?\|N?m?t?h??1?(Z???C??~UW?a[???d???????lbLG?5?2&???u?? ??????o6??^??U?_???G]??UQ??<?????F??t|| + ??4_??J?_??Z?WB?Y_W+?h?\????^??1??Y???M????CMl? ??!zP???RI$??$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????].?~VZ?^?5??2)?????????]?2???????d?????R????Nm??f7?o???>$/??IO?}3?? ,j??????????t? ???????E??????H??x?S?UT???hel?4@? ft???????dl?>?C??+???>??????J??? ?r??k`l??#d??e?h???T?X?????H??*?x?X?Uz8????vV???????-p?B/??H????\?Y??N????:?????h?]u0W[C? +kD??%??]|_??r??s*4????:?X??W?i$?'?LlLlJ?8?2???@?&???????Z?Q???????Iu??U????+2?N],???,??)????j?V?jo?ch ?ZI!??????O?t??????Z???@??a?????,z???p???????I????R@"?y +?= ??x????p???:Oy??"I +??]?*??:??e??S2_??k at y?#_E9:???j~?c? ???e$?x+[?~?g???[???????k?m?~?~????U????$? ???;k???n?????n^&-T2??[C?0?J??.s??j?s??????a|??Z???S?????r??q*?T???o??r?????W??K2+??cC?? +?q$????????z??+?????]n5"??h\????????Y??????????;v????F?8????{?U?xW?Zy[??????T??du^??C?D2???wn+???)'?? +?c?[??_7?????&?~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?C??r*u7????c??^fV???_???i:???$?^???O??i:p?????T????0??????f????C?8?]3?=?v?Emaw???'?????????|c??}>O??????????Z???????R?u?S?????s$?_,?????N???E????Y????L?????% ?WL?!?W??fC>??`.??`I.??Et=??T?";,??[?/??3?????j?5o????JY/????|?j????[? [???K???S???n7?,??? +#?o +8};?f=x?q? +? ????Ikg?U?O[?:]?#.?J????s? ?q??^???_V??????venq??\????0??$???z?v??????y?>??>?}c???zN?J?a??N???D/T?????/O???????N?????\??????d??7?z_??_*????????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??? + +endstream +endobj +11 0 obj +<>stream +H????n?8?????????m??I??h*mf?IG?^RpR?X ?????H? +{?|??t?Zu???????????^??(~??v??i?????o]K??~???q????s?????????K????????b??H[/Y??{z??w????l?? ?z??ph??-?K??t[??l???K?eh?????)???yV???d???Wq?u +h?;??WuO??????????U9?N?/M?1Q?2?}?????ZFs~?&?}??]?m=????????L?Z????&??F?b?????)N?????c??kn??{??z????o?????UK?mF??????u??L????%??X?`w?_?h???Ly????M[;~31?I????ls???1/?,*????e"??>??v????? ???5K?? +n??Y?`?? ?? +r?????yv??? + +l?6bAC????s +b!? ?3 ?`?A????T?v?????b????Gd@??b?F.????????#?? f?`???:*N??8>.????$?= +???B?\|?k????????X?Vd????Q???y?6g????}^h??h7i??????f??~?[???l???$??7????K????(V?BV?$6??/???`5??j$????eT?8zM^T???b}??5:?c???}?w?!??K??o?????????W^k??x? ?/???A +c?5c??????/~D??L?}=U??)????ms?v???N\???my?% + +Ex?XZ6J???M?m?,*???bK??K*??H?BE ?1?L?'?YR?T,?H??:Re.?:??jK?X?T&??Re???R??zB?x??c?TW*??????1?????T?+F?k@?5?(?A +fx?? ? +D dPp!Q?3?????P???;P??.C ???? +I?????>?}??? + +C??xH????r?????b???????KADADADADADADADADADADADADADADADADADADADADADADA??!g??u???x???G?"?W??%| + +endstream +endobj +12 0 obj +<>stream +H??W???F}???#g?????|?:?n b8 ^,(?%u,?J79????TWS?8L??}??S?N?~?c?j?*_??5??"???*??]?r??????}????????_?*V??]???+?{???&???~?.??&??W?Z?EU+U??TR?6??_???k?J??x?h?<;????l?????#}?????v????v?-P??[?6?n??????z(?Rj??|????(??Be?;?????)d?i:?Mo?)??/?F???=??/ ??????????^??G??=a?8??"??q?&??x-???x]????5}?s?`EH p???????????xc?tv??a?}?t??=7???j??*????-?#6? ???q?+s}F?k??C???V????6E?a?????mx?v&?d??|?CC(0@6?{?.mL2?1??1p2M?????\H]??X????#???`77=?"??6?h????O??o|??????`O???)\M??????_M(?~t??n???Bv????y.?T??v?? +?u??????9????? 7NL5???q??s?A?G?j?o?????s?i???*?Z??5?6G?eN?? +??]???6?L???O??>\??VP%?????p??F??.???2??hT*s?g???"?O?#j? a`??%?E[?u??oZ?1aQ+???`???mF +v +?z???h5Y'C(??6?\??s?Z?A?5?@????~??'"??i+?????#g??|@?E?? bw>?????9E?????,s?Z@?o~??8??,2I????-a?V=?"?bxI$?7f +ASJc????????cZ2?Mt???68 +???????!E?5???u\Q?????e?ES?R?@#C?r??K???Z"@??lK?*u6??cY"R?7?D??)lV-LbB????@??n?EC????Yx?K?Pg?'"?x6??O??x?~?;^M??c?,?????s?K?4B??w?7???'n??t"??|?r??w??d????????s8??3?x??g?R?a1+D?7?|x???'xMg8?R`??@6??'?uJzP z??????mK?????'?Yz????)???dt?{???:?????JqJ??%?|????u???~~id??rOt?????-X$?D)?????? ?D???% ??;SFb??kN-?????u1?P?ti~{@& +??'?????????/(???? :9Sw?????6Y???1??R{???W?? +F????/?????e`?/FM&??`?m?~????;>????N??1P??zT?rNY%???]?? 2 Az? -?W??2?hO???\??g????h?????!??\?Hs?????h???,|eZC +??(Y? +??s???p?z?|?????g +??z??s?*??@??8}??99???? ?M]???sQT?J??~<8?q??a???b???????X@???O??%?d(M??cpR?k??Xc? ]?i~]%??????*?nJ4?K4??|?K??:?T?m?P>???6????{??Gb{????R?Dg??R?,@}?b?2?D?U ?R????B +5???n'?B????oz???????oX???s'?d? +?V?q???[?B?yH*y?C???I+I? +?8?H +9?wdE???l?,* l P?(??D??m?u??b5????K?"J??*OZ]?@??'??8???faT8?e??x??EV!^M!?\vhH????%a?_?N?^M5kr? mtx44+???m??o??f?????O??r%L }*??(?B???VJ?4K???;NPR/ ?'?!??lC!* ???K?C???? +?{??B&??Oc??l#H???"???@V???*?m??w}?C?j?:??Y??" p9?19??H???}^?2??????aUu-???T???o??0W?????"#??? c??-o.?b???????WX????U???%?fA?+??p#?@0??=K;????Uk:^????F?pK??T1?h??x4??z?????h? ??? ?$???9?hF!%k?{?? (Sp?D??????N2???/??6?\Z??????_???R%????az;~0%????=]:????????':^???-U??$cG +S:DY???} ??A?'??s?Hh?? ?+J?W??~'?Aa?U?F?l?S F?W~?p????ezzS???????s????? ??? ?54H??t??dP?4??p;? ?D?*e?Kt???Wp? +K?T???=a#Vw??x??????????>H0L?b????[&)a???)? |\?J?Z0??{?/Y??rx?g????Q?8!???[?? ???b.g\Q???or>2?????K????? ?8Da$?Z??v?k????h/????q?"?S?? ?$????(0???o?3??Bl?_^[?????k??o??"%?'@0?T]?{??"dg??A?f?c?W??V??7???C~?????z?/????G?p????g? ??Ix?1?Pm??'???"hU?c?[}q6??????? +?8???O4?g8h*??*t1?p"&??c'???????~????g???pi?>"?:??T)2?7F>?G ?tn??_A??????P???? |?????F?????????6?_?%??CA?!8zL?pi??? ?8?3?DDD?,~\' +{i0L????s FSQnfQ???A??5)?Ml??;A7r??r??v]?8??l??????f?H'??qz??Q??V= +?P?;??8?v ??B?[?ZX3??+?Di??H[l!L?n7??8?f?X}\?%???8?]???s<*<???4?^?=???b/7?8?m?D????????k2????]?D'(? +??N?%p??v??j?LfG??J [?gRy??Gf????????D?->) :?0?? ???Q?t +%T@???t.??a&?H??H????Z?Y??%G?i??&? ??#??t:??B??????<4-?]?b??KCY?A=??????&???R"?Rb?g?[P???$?6?fVK?1+?f?LZ????7????  ??lb??K?,?o?:E?m?6??{0:????u????0?7???%? ??s!B[????T????!lw??P?M\q?F????W???/>~?????????9?t?[7?????T?k?.> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 16 0 R +/Parent 100 0 R +/Thumb 86 0 R +>> +endobj +14 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;??L"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?S??t???????/G?_?staw?`:P???/??????C?m?ua?????;,.?`??8???mkENw???z?pIx??K?'???|?=?W???nk?wO?=?????v?E?????????&??????????????*?;?-?X???:F?pB??/?U= ?a??{?????????V???n9>?>]G?B?v?z?u8??n ??\'P{?7qv????tv0??:W??;???i??7%???????{B@??:qqk?M?F?^{?????8]+???Q}/s??9???!V????? +_h??u'?.???w??2??w???????E {?????XH?? ?^6.? z?>;P????5????H?????UX?~??{,???Wp26gP???Mnp?*??K?#?m?n n?|?6???w??N??K??]??p???^?f^M??#??!m????F?][ ?5??4V???i?HBW????????G???X???W?K??hu5?Ip=??^u?-~??wt?>?h}??\??lhj?T? +???o^?I$?J?I$???I%)$?=???????c?vVvN??????>R?4?-?R\U?X??b????Q?qo??l.?5? ??[??X?????E6`?1????L??r?k?G??? ???[?$??????vuK{?? +??:??I(?????{?????????u??+???_#?g?mu?T?tq??7???????}?????c?.????]?@???};#?_t??GZ??d??P?(??8??????.???K+#%??Ys????]n#+{?K??>+?>???q??1????0?=_?7?????U??????Y???CwC?!????5????Ww????7?Z?????????*w?7y/M???????r_`???????K?=H????t??????x?7[??????o;??Mo-??j???odtA?2??n???????j???????c?/?`??z??o?%ZWM???o???_???????z.6}?? ????$???wh ??P#PC????I???I ?$?I)I$?JR???????????X?zA?LH????}u????]??Zpz?"?=F?#P????J2?????(????^g?????K???=9[????>?t???h??\?[h?'?E?Xy\?z?:???Xc]h?H??=x?A/??~I????3??????v?FLq?????60????-??"}a???????W??{v???n?v?U??????_??s}?? +!??X??????88??T??Z??_?G?CG???????_??v??????a=??????.w????l?s????1ms?p=????f?\h1F0???O???/??gM????y???Q?5????l??}O???.?GM??x??????in??)u?W?????s?#?C?p??Y????????????????]???t???`auL:?5?m????????uo??/?culd?????F?4M????????R???@`?=?????l\7?? ??'?????n?????b3???c???k????D.???@?}=?3?d??k?s?9??s??????xP[?o??=????I$?J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R???N????E8???shm?]???l*]W????~?q,-!????????O????Y>?????5??;?A??^(????Fr_q?H?!Y???]????!???????n???X?U}G?y?????5??????????????_???Z???a?/?*4?b???????[z~.;.yk??gQ?*?????.??FdS[\?7??v???T???M?w??[@?????h??d?????]?5?R????n6???N???+S?u\???????56???.:???/?W??H?i???[+???k???? +p???Kv?JJyk??????????h????k?????]??s???? ??0???+ ?H?~*?????YM??86?_F?1???yT????nC?????? +C??\ +Js????n}x????????X??wW)?y??? ????k?S??4O%&}N?,????\?q??CZ{???z?[?u?F?pX??ph O?%9[???'7 +??}pX ???D=???z???c7?Vky?vE????x?Pw???>?3r???Y??cC#Y??V??o????r +?????9?ILq??Q??B??/L?V?n??q??E?n???Z????n??p??{{??a??v???,???[?'?&?W?u?B??|?Zv?1?;???)?vT??NUy?zwM?]??&\;?}k??.??4??????H?o?-?)?????????6U?!Q??????#-??bn?%F??5=??Jl?_?9?b??Y?1??"?].$?s??X~?6??v???e2?^??????:?MoK?? ?6 +??y2ee?}T??????c?X???&????U?f~;?????f~-# ?????C?[Y??V%?6???f9c??;>8*?_??l??r/qs.??3??2????[????5??6?????)???+???t???}<\?????k???M???[????UFS1?{?;C? W'?2????K?v+\???z?~?P???o??u'o:}8#?????[???%????c(????X??+=?z???=??'7?;{w?U??????_M??[mO??S?????+??]??Cu??????G?%4?R???eV[????1????G???\;??4?2.u??c??r? +Jj?????m4???_e?_?C9?x'?????}&?;?4?`x6n???l_? +?v-??.m?o? k?g?lvR???0?????/?p?$?? ??????p?q?u@?K??ct~????F???n???O?????^??>?n6Ik??? KA??b +?C?M?F?]i???X@??4??p??T?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???%?2~???>??`;????T?;???W?}G??fToW?9?m??/???s???4??z?~*:Wr ?'?Ix?[??????/??f??p??????????-Z???u???[?J5??[2?E?????!?Ik??W??^K?;?u???L\???N=?p?????L{?`x+?Pm??=g??n]???????E?? ;??x?q???>?\??B?????vf#,m?'m??L??U??o???3??S??Y5 %?? K????????W?oA??u??o5?4?-??n'?U???_7??E????????b?Z?l.c?s +%+????GA?D]=??????????????E??g?????]En??Z +?F?y??~????[?u?}???o???<??u^????>????g2?dZ?!?9? ??????? +?????_~?u/????Y?U??=F??? +B??q}Lq??????W2:?)???/ ? +?????D?8?+c?b?u:r?mw?&??X?f???H???u??H??^z?????????_gK???;6??d???5'?u??R?mI$? RI$???2~?}S?????uV]s??y?.???]???????????????????s?????WO????y?7?*???ti$??????o?U???z_??}M????]I)????????t?????7?S??????F?Jy??o>???]???????????????????s?????WO????I???z5???a????d?l?-T?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$? R?I$???I%)$?/?????]]?d??@? +????8?????|=2??rbh???? ??t?+~??????]???6???S????r?????t?G????C??m???.???l??]%??9p????e/?????#??))?Ib??_N??c+???????O??????C??m???????.???l??9p????e%:?,??????#??)?\??9??IN?K??}:??????H$Vy +???G??RS???????r????????C??m???????.???l?w?|&?????$?e%; !cd???^E'uv?9???\???*?[m?I????H?7Lc)?2=??}%????w?%??k??p??K-?x?8??KZ??0??Y",?@?%?I%?}t?$?N???+??_`v?s?c~(?z??.????hp?w?Kf??d?S+?????N?}? +?=H????g??%=K?el/???n??? )?Z?m??[g??????1??????????x+????3???????X??%?g?????????m/m???4?SU?)???d????x`??????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?????{?I????[?Lw??7X????}?2??N9kl?m?}?c7l?]]?????]U?N?Z?YYk????????w????g????Hi~&???@????????_?}a??}V???????\?@'Rf|V?C???m??????c?Y^;?D??|???]?;????n???????w???????6??C?(?o???j}B??= +????v;[?i};-k?????????;lw????w????g????K???????u???sz?q????x+????@?????y}G+ ????a?kCCA?f?u>K???}f????n???}B??2^????????5?S??-?????/?k???[????z]+????)?? ???+73?g?????S?sK&t??u????_V?Nuy?T=?N??$A???"N???????I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???gb?.?I???"??w?????z>?S??etd?????]? ???:+]+?c???mNu?\??]a?=?%^I%4?????????G?????????^W?[?"]?K???o?IM??I%)$?INg?*???9?4???0?`8-}>I$???I%)$?INWZ??2:y????????T?IJI$?R?I$??uZ?R??cK?? y??I$?$?I)I$?Jq?p??VX????F????;.?????@{ ??W???8u?$~???Wq?/?>??48????G?Q?????zLG? jc?_????L?&?w???Q?c??F????[??????????????Z_?z??W???fe????n?N??\??n4Xr?f^3?j???r?<l?N? ??:?M'??o???Q??L=???V??????u???9v??? ??R??VpYfEj??m??$??????:D???? ?68???%&??Tt??oZ?sHc?lq????I%*T?I$?$?I)??U?????????0????j??JRI$????I%9_Wj??;kK ???????I)I$?JRw?;?????3??_???????F??? ?>?dl???[?q?????????ax?????f?C?G?\k???s?w??]zL~?k+w?-????V?1?r?]'?? qw????(??? +6??? ?????S? ;?t??)???]h??@???RV?=???Et[e5c?jml0??>j?G??????f^??????;?{?????JYp7?a??M?e_?h????Q?oi?B?2c?{*?c? +|L????O{r??8?Z??er?I??IO_?????c????5?y??????>?j????T???;??????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI???$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?i))t?H<'IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?$??L?%4?????????G?????????^W?[?"]?K???o?IM??I%)%??>?t???.?t????????#?4??{p?G??a@c?lp5)Q}%???GN?????????w? a????l)$?I*I$?R?I$???I%)$?IJI$?R?I$???I%>;?:??|???TWw?-????S?P>???>?e??fc?? ,??N?:??>??Vt>?GLe??? X????JF@???S?Q#????LZ??:I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRw?+?????3??_???????F??? ???3w?^??O?^???F??? ??????Q???%6[0s&???8^?????6?k????G?????o}CkG??h ??lN?l',__I%????dt?R?6??7?w?k?9?GA?I?_?M?C???#??+'?u.?????:?????i5L?1???.%???3*?j???`????Vl?o??3/???K??*i??q???k?u???+??A???y?%=_G???^3)qub??????????hf>???c +q?>%YIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I %)$??2q??l??????RT?=?Z?# ??T?>?? +?vO?=?w\q?Y?hK?R?$?O?>?*7}?????? .?? +???.i?7Y????L???)H{s?:j)??/???}g?8`?~???7p?:?u?n?]??????E???????\?3Q?(p?S?????*X?O:>?}p?????P??Y]r?? +?)}]?9??[???Sl??U{?~F??w]]??*p{? ?>??z?\?j??G?B???x?J?H?????b??GG?A ??!:??????`??\j?EVB?GcK????_Z?OG&??6_???]??X????/Qw?'?O?? ?.??? ?]T{??A?=?K?w???=0??~???h???]OF?X=g?8??4{?i?(O ?8????? [?$??*I$?R?I$???I%)$?IK/=?????fg??_]??\???7{A???????4????? ?C??D8?z???? +??e??*iu???h??CJ??C??????^????????Z?~?3?W?kj????!t ??????? ??5w?)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$?????=??f? ?eUj?K?X?2?WQs?k????\??%/???????~E?????7???i??[D??x-N??%????%????_???D??i????J????=/???n?.:4+?w???Y??6??-p??????y}w0??}???? ???k~s ??ZY???w??q3,??6???2??????0T?????Fws??sY?Q?(??/???c[??;O?{?G{???a.{?as?$????U?????r?m,l??>W?t???7 ???2X?>?.p4N???V$@????_?K???g????oe??ph??v?? O???N??e??????????b#?#?x?[?????{???????????!.?4~??rQ??c?W>???b???a?????,V????$?????d? +?A?,??????I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??0%bg}a??5??7?k?>??!n gC??-??%5~????g??????Sw^?/{??u+???????u*?u?????)??Z??#????Yg?Z ??Z?R????N)ce??@????vm?????9z?S???b/???????M?He???e99U??g? +]"J????cu*p??u5U??}???o???????#?????k+??????.?$????>?????j??[r?V^?Y????uK?gZ???Z???Y????????Z`???S??q???????V?????J?MM6??? ?T?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%0??U[????`.s?????9?w?C? v? +?K??? ??S????H6?H?q???????&4U????F:[?????K?PZ?u?????P????t????9??MB????"*cc????L?`V!??%??????????X?WT7G%>'_?4;7???k?\7o9????e????h?q3???u?G?gO?????7 ;???:W?????C?;???c????iLz/?s???VR?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??_#?`???7?Q:?????v7M???????9????[??W?f????a?????v??$?q???)?\1?? :?&?n?]c??Z?X?df???? ????????????????K\/Og??????8????????W???????s??6c6"xxu?_:?????.??.???Ym v? ?G????.?}+? ???M?Q>??G???6????$ +?????????G???? k?]?w?!j?????????i??!?C? ?????Ss????????)?????????==???$}?FX?I?????-?5:?Bt??/i???&H?WW?:t???? ???xY???`?xp?/ vE????Gg ??zG_??`u??Y?.a????f??Y?????7q?|?????2I;????????Zme:W??ih?O+k??v??UGT ?t?%????}|?4?d?1?????X5i?D??r??0?? ????M ?~??:??4c??m???~%-??x??I??h?? ??U??z?s F9????C?????\:?M????~??cG?? +?????)????]?a2?L??C?t?????}lW?k:=??|/???? 0m???n??ul??oob????]?3?3?,?V?N?q???W?????[?p?k?>!^?e??$??~??0????*:kz?C?70?bw???]???????U??si?v??%b??{?S??k???w??aP?????????#v?{??4h7w??&P2d?9??%??Z4????7????_?? {?3??r????&??);????>EM?k??8K\#???&2?M????????? +?&_?Mg?9 ?\??;?}b?=?$?T??+?Rs!#iz??lv??I$??r?I$???I%)$?IJI$?R???"g??{? +??u???? ??PRS?????L???]???????L???]??????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI%???????f????z~???q???j +?^??7H??{71???^??o???1:}???\? ??sA??WM?c-??+???+};[Q?9?????%????%????_???D?????????zOT?;???[??n????????H?'?t???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%);???n???????3~?{f?[??v?xs?Jl?_???????????????]KM?????}_??p?~?h?J?9y???9C?|?V`\?cZ?B?5??(O?K??]O?e?????+[?6:?O???(1\|???Y#???????????????h??d??$??w%v +???F?b ? +?4=??]I$??????K)????]1?:%97a??Emk???cfO?W???????o%?sI?S?}?????O????2kd,x?\??\:?????U???`??CZ???g??????=c?F???? .s??J??}K????W??}???????W?,??X???w-h~r????!?Xq?H?P?]+??k?7\???hnf????)e????F{??????????,n??/:? +'??P???<|;,???o?l????e?9??`? ????^W(z??_??[??0~?}Z??????????????????????8;?.>?????K+???p???-?+???N'??y??????????0h?????| ?_??r_?]???cu??V?X???????H? +?gA???La?&?R?a???*N??????=?1???F?)B8?????;?q??_??+9??:E?:???4????*??x? c<$??]?????C????7B???u?6zY +x9????Z?S????q??????7_??y?uL???Vr??`?k.???s}?B??'J?;???t???>?a1??{???N????IB\ ?????GCc????J???j?&??7?v=k?U?ze?V?v +Z~??_?7;#?u???t^C????;??G??Ew7??????? G???@p?8?5????%??X?_?????;??b?_????^????Ev87 ??? ????+?????hsO?L???l??K?c?????ZA??[?z?t???-;]??pu ???'#? ?~???????????tL[?\??7D?z??????4??uI%?$?I)I$?Jx???_?????C1?2_??? ????????-M? + +??0w9^q?;????????e?????~T??dOC?U=%:?^?$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???}s????a}??b???:?H}?????^?????k??vWf5Uo~5???:????So??m??+ ???fu? }?i[???{C????_?=V??sl-uuWheU8??n?kq%9???7??0?[?6??;N???#?????i4?3c\w?u??T;????1???Mm1???@/?.???mf6'Uvv?w??HlpIj?????M?~?M???By +?F7????n:3pm??-??d???v???v8???t~HGA?YFCAW???L??OW????????????0???k??? pA^Oi4c]?{????Iv&@kw??????gM??_]g~?r?As~}?y? +?N?@?AT??? ??a??????.????????????????^?E?6???t?i??Y?RzV3??L?.???@?CTb??/??~o5?N??k??K??????kw{1?A?g -?W>??]q????q??y? +??????h??? +?Yw?Us? +$??:Yg?F??z??x???1h}?c?t?$/ ??0u ??????T?en?4?!g????+?Tk??9????=?..?>??D??K?wF{???o?~i?C?O?????)?*?x??????????,?? +????S????g?bl???sv???s?xT~?u?????ddb?<;`,?I??? +?????/?t +2l6S???c ????p?' e?c{?A&???F?Q??m??o??/Q?j????}??ou??????W?'?Przy?c!?sK?BO??K?cz????X?? ??$?????n?Nv#?.xm??M"?????M>??L??*???x??_/o??eacWq??Sr?? +???`?????_????s16?????4???????M?????4????G???S.v?%?E?J5???*???Pu?c???????z?W???X???Et?Q???: +M&_?MN? +B?F??_Yz){?-i?"???j?/?]@?????LSe???????^????C??Q???I???L????????;???+???N?J????F??|&>Ev+?????^????)????v???Tx}q?#?^??x?B???}O???#???s~??????[?N_K?????~{]????mm??X???u\#??_???Fv????d?T2c??qT? ?>??I$? ??I$?$?I)?O???}?G???}?T?-i=??e?-+???m?????|?P@??T??????m?V????!????b?cb>?????R?L???@t?J]%R???????>??s\?A?5 )????????~D?????????W??????????^/?S"Jn$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRw?+?????3??_???????F??? ???????F3m??????!u?F??? ??_????Y?O??? ???p??~?V??*???w\??&???|??aj?U^??=7???? _<|?F:??XZ?]v??W]??X?????V????znu???E?$???\eit{??k?{]??YQ??? +???V?a?t|6a???[???z??]??|?m? ?V?EM????????t?K??E!????u??R?X???V?????????f????????v?????A???J?z????Y??5??}~~??p=7???=;?.K??.????IO??????U??c+??U?:=E??zP6m?;B"JRI$???I$?$?I)I$?JRI$???I$?$?I)K????z?OT???Gy????? ?8jWl?L&????;????`Sr?\?E?D?y?????Z???B?_?m9??O??????tz?99'+H??}?? ??YX?\ph????]?=6????)1sY8??x?=?`)????[??m?V8 ?Z?=??wk?????????= ??Q???s ?????B??#?q)9??'`??x??g2#?:?Aq]???v???????c)?`???@?_?? +?~mS%???]??>??????v7A???3?KC?08??????????>??9?????s???Ld,??:D????Wmn?????? ?????N?h??????|?V??(?&?(?|??????'???dae?\b~???0????X?W?F3??hm????.{?b?V?c????V?*?0??__?D????Z;K??s?e??????|?B%???Xj??8? ??>Y???uq!?K?noO??i?k?????.C?\?[???a?&+????h]z?,82J=?????$?LJ?I$???I%)$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???}i?? ?Q?????6l??W?l'G??.?q?Y.??M???&?f6?.??ih3???$?w?ddX??2?M?<87d ,???U?5?,?hnK????>?#?F??q?9F????P r????|????nae??D?RS?t????? ?/???6? $n,?-q[?U??'?aV?qq??@&CA?%y?W?S?+????*;? +0???+8;?Q?b?c's???{??IL:????????:WU?oO?h????m?7?????????~D??????????m$?H?G ?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$????_?o?}be9?cTii?[?D??D??=?????:?U?T??:3?????eD? ?u ????????M??x?`?????t?*??]-|Or~+???????{0n??q8?l??]??1?Q:Cu[u??)r?]~???t?? +?K7???R??I????????.?fm?n?53??x ??'??,N?U?4]??a;v ++?G;!#???I??/?^?????n;??????G??l??p-pA?.W????9???bZt?x?~!t??X?,?1?e?????N3#)?g??lw?}B?L????s9??'?MY???[????vN;j?n?y;????s?Y??t,,[1r?3mx#?????T??)~??????y?O??????zr?}?????5?L?q0???lv?,??" +?;kl?o??{Z??????C???xi??z??\????+gLh??G?4???V??gxc?F?G??c?????????Xn?q??????z?+1??[qC[F???h???U?}?`? D?]??;?????u???????a?v?1?q?^'??*???+??x?#?^ ????k?WU???? ????x??.????_T?/???i?>E^??*???r0^5??a=?5i??+?75?tL?????+??? ??B'?e?XH?'z??????;????>?Dy;?????~?N????c?}??]-???YY=?*??,>!s??'?????oi?ihw??YRqd??nH??????8??a?'dc7?y???X2???Xh? ????'_?^cd + WA$?P.RI$???I$?$?I)J?_??3?????_T:?????????))?????&n??.??]??????&n??.??]?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???^?????lk?i}??>??2]e??????X_X +b?K??? ??|A<$?V?r?^F&[k?<4???a?7@Ki`?S??????y???l?#??????I$??W??????????^/?S"]_?K???w?K???x??M??)??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?/???g?CW?/8?????c?-??} +?T?E?-t??Ji?????:K?~?????|?U?V???{??U????T??g?j?N?fV????u?O?s?+?}X?-?A?8d?zN.??@O????ah$reK???W?OD?>? +s?m??qq??E,g????#??d???{?????F0????????"?z/????so?O?m????`?9?5c7??D?Y??.???????????w??+?v ??<{??!??????8c?'???????\???????????X?4?_?%??????[?Z?????f????x?????????@?e?e/v??n???!?1??????????????Xqz? ????iu=??J????????3???hLk?????U??Q?_V?k?i?v(??;G????>?`g?a????k?f?q?I<(?h??u????'????????????????!???}?e}he?V??U?hi8?????p???*????m/g?n?}?!k_p??y9?[?^?c??+??X??^???yB?>?u??>?c???Y?Ev?????zw???a?^???HTC~.?y??{????V?ONF???pd3?/p?\???I4??V??7?d??V?[??!r???)? + +?M|???V????G?*?lp97??W_r?6?????w?m?????!?n?O%?????Lp???#?7M??vz??IV\??I%)$?IJI$?R???"g??{? +??u???? ??PRS?????L???]???????L???]??????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%,x\?'A??B??dd????Zx:??X???.??u????N5?/4?????????Y?????H?\??9?&?Ej[MWV??`??s\$???,?>U????Zu??~??P??q????y?x??????[M??????W+??e?of? }Y?=4?x=D_Wiy??C???c????cR>????|T?????>5? ??=u??Y??A????4$?|?J?.??}x?????:f9???y?.=? ??vX9Y?[?V????I??IG????(?;?}??4????Oy=?*a??C???)? V?:t?{?gM??u?_U????????s{]???:/J?#??vZc???QC0??8?~R>`?v +>Y???:? +?Wk-f8??6?bt?dS??Z?rXAec??i?? ??F,m???????]?o??K???3??[????N????5%:???X8?}B???^F???????r'??r????~NK?T?7=????gt????????[?a_?H??h=?S?`?c?I???X=(???X?+??xh??}|"JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???mU?S??2?Z??????J|??~??e~??+4???? ??g??_I`x???? +?\?8o?????k??I??.i???=????p6????,y@???0*Z_??F?????j?=?L????q?{???[??WJd?1????+8_???c???1?v???O?-?:_N?hm8?0!? ????4+????\>?ukM]+????\?O?Tj>??n?h?????}? ?.?v ???t??????????/L???a??????\U?????M?m??C?? ?4?D?l?Ou??????a???s??o????>M????^?E?a??C?r??4>dr??>??:wS??????#?>?0?$8r?>?0?+xkm?&x?C0N-?????O??$??W!??.??N??n#?????????LU??]??h?d|???FZ??uU??}??i?????w?t?/?j?A??E?}P?8?A?W????_&?8y?????_W?:9????m??N+Mg? c?b8h??{ +??????=??e????3?}|?CgS? +??}&??> +]?H{??!???????C???m???.w'?x??J)H??H?)?X?DA?,????Jr?]xU6?g~??1??I!"6$_e)$?AJI$?R?I$???I%)$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?|??<&?e\?C?n??? ?7??>? +?l??z???Sn????}4?))????????~D?????????W??????????^/?S"Jn$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I/1???0????? H????{7#]eZ?????GI??/?aMyu??n?@y????8?_ +k^????E?D?3??5?X?'???~?[?. G??????2:?L?????=/N????M????B=J?????>?????w???????n?&W"?? +?RI$?T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$? gB??-??;???n??)???F??? ???m????9t}?F??? ?m?s3????'?O?&#R?:??Vn??;??????jxo??pJ??l?4Z??\?^7X??&?8??=??????????7P???????qW ?~*?w?E???}?%??S??:?G,?f??`??h??????[?T???? r(50 $H?N??E?? +??k??Z???"/Y?)???#?`|??Vu????nQ?U?=???O?U~??Y???????L???? +??_?}y?X?o??v????@???I????V2:K?'?Th??w???Z???dL?c???G?N????,????m?;FV? '?8\????]MB??&?? 3??4K????G?,??n??X?? ?5? dL?LMD)t?I)$?IJIs?X???o?y5?u&?kw??f?????z?W??=>???I??-? ???t??????????????va?? ?V??Oi??a?W??VUa????? i;???n??)??~b??>???d[?????w.????????ufXz?P-???X?[???as??H4?????f??8#?z?.y?g??|r?>?5??.!u??C?tc,k??L???????y'?w_S??kk@?i.w?S?o??w7+??MgH?T?x???8????E???U.??k????5??ca??T?9c?c????^^F;?,o??4=???b???l +2)??qoP???e??`??%=??qy7????]?;?f%E???g?.???C? ?????????q??+????3???J{.?C1?n=,?\?0`???[T:?t?QA.??K?W?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%8_\:??:C?Q??O??9?????+?S?Xu?5??o?z?.#??L6G?0??t ?oSB??e???q?????2?!??KG?????)??[i??tS??9?????b? ?@?????.?o?J??????Q>?????6??u?????? bx??5"???_,r~P???&?A??????hg?ma??????4p5??%??2?V????4??+C?u?w??}?2C??g(? ;#.\y???z?????,????????e???E??6?????4A +p*yX?????a?nr?-{~???'@@? ?2?/[??Aey5?E????r???:gOhn5t?v?O??????OS??^j?w0??????X?k??|???8????[??4r?]??]tG5??b??fGP???m??w?~????7?????e<|d???u?=M=????Km?k?9m~??*??_??_`a??O{`#t??]? ?/?????o/??C???vPtkC\>'GT????G???E??T??{l??E?2 +"??A??????+?6`fC???~??t]?n\|Q??\O?A?$?J4?$?IJI$?R?I$???I%)$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?SO???y_?n??t?/?)??.??%????%????_???D??I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??;???_]?9?A?D;????M?X?D????m???j??b1?~??N???w?????????????5???????T_????!????~???4?????????@??B??,8$?q?????3??E?~5??XM??;/H??`C????T?????sN??*?3?7L??krA? ?K6??lv[?xx?X???`??p??g???l??$??JI$?S??~??K???????;???? ????^h???:?E?=s?????ec???n5?k???DB??8??T?}G???>?????&??f?~$???I#?D?????[????????????y??????{??41??Ay????f?L??s}??N?v???1HG c?j???)w4??I5*I$?R?I$???I%)$?IJ@????[?":w?+????S[????ay?Vtu?????????#a?????i??:??yVy1???????E?j?St?e????,M?_?q??????V???O??????RI%????I%,?,?L\??m?=???c??D +?????????????????%?< OP???yx}r?f???b?????IOo?]ua?]u?X???-V???? +-~?????|?????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?&S?}el}f?????V???<????_[m?e???;O?o????73?7?|_If?L?W??p@?j7?u\?h??uU5?? ??Q???M?L??p?K????xX??Z?$I??b?CI?q?'??H????w?V???8"???????????>?NV?;ZHq?J?????q??{???a]C???'?!fa??x??c???zM +??c?????O?~???:?????}???????????d?O?~???:?????}???????????]S8?b??P?5?x?F????XN??y??????5??C??|????>?F??!????$?~???????n?K??X????????$?~???????n??K??X?????????@??????i?VL?=???g???2?g???f?Y??;p?????????????d?O?~???:?????}???????????d?O?~???:?????}???????????9?@?e?c?n?S?K?? +???)???????\v?????dG????????p?rJu?Y?i???p????%??????t?rJu?Y?i???p????%??????p?rJl???V???:?f??1 +???O?7uF????????=?? +??~???:?????)?Id????????????~???:?????)?Id????????????~???:?????)s???????{1?v??7nY?{??Mx??.?$?}??*??}u?Y'[?????;H^iM??X??????:??V9\Q?#??e?$ +? ?g???e??0?MG?>Eo???_? ??????mh2? ???????[???c? +HJ?>???g?c?c???d ?I~?????'3??G ???????a??P?lJ?E ?5?@?'??X??????????????n??T??p??N^^9f????;?D??????6VVG?q???G?t? +??~???:?????)?Id????????????~???:?????)?L?????????n??K??X?????????}@???K6m{??D???????c??????????8?????????p?rJu?Y?i???p????%??????p?rJu?3??_????}??????????}?X?????@????q?IM????6?X^W? u???W???[1:v>5?*`k?x?%?u??{'??ec??U??s?0|tV9I? ???K2cA??-???~??U??X????'???????????k???s??O?S\c?&~J?l???`J?1???Urz?O???d?2????? V??? +?v?[???9?d~o?Y?????????v?[??????rs??gE?????ky???????? ?yY???uLN??i????Y[@??x?d??97c?C??sYH???r??|?|?/??O?6?Kk????Gn????W??[??K???H????h??? ?9U?E?? +?????"!p=2???X]?r\]?????x?a??? +????1 +?7.?PKq{9?X??un?????V??~?uX?}?g?????|?s?????u??=R?????kedS?????U?]???G??(?"???Yi d?_?fA??o?l???i??xg?deZo???O??????e?;!??`?2?tv???~?t~????o]]?q?????o7,? ]C??F???R3???e?????J?m??Um????>?i?MoL?????waq^??>?t^?E??diugk???ULo???????8-??l ?U???:???}E???uL???`????6?xL?3??N?TOx? ?}?>i>???????? +?eO +? +??WY????T?Re?4;?{?,?Jsq-??n????|W!?+.???r??fuo.?'??????1[??N??_?????-<??o??=/?7R?????.?T?????ki?_Z?Vf??a?-;!K?x?~:y?B???/t?f?9??2?|?u?$?I)I$?JRI$???I$?$?I)J?_??3?????_T:?????????))?????&n??.??]??????&n??.??]?JRI$???I$?$?I)I$?JRI$???K'?'??????kk{??;]>? ??SO?????{???v~c?8????8??X????S?????g?ef?.{?t????U?^{k?Z??_F?h?r????G??D?wOkrz?_????'n?$???\c?c?C??-p?T??t???pk??T??:?+Z:?C?4???3p?$?IJUs?fPk[?Ko???|B??Jh???1??;}??y??Y?????S?[j?~kD(???F+????4{j???T:GY??]!??fK?}?t??1?S?????Y +?;33?Q?G`????????K?}a~]7e??????o????5?7?Jw\??{?????g??v-???_x?!G?U?[E???vU??27K?L??%=J?Q????}??????mD?????z?WP???U????>????b7$?]%?3?]??r??????,4???7??h??a??*?????V???P???????? +?Y???U?q??mt}???????N???v]???e?6b8;v?;;??JwY?{?f??e?c ?\???m???u\??k?Xx???`??]?I?%:?,????????? +??=?1D??O?????????5??)?s?0?????I`W??? ?u\?_?P?1????N???o?????????!????| +Jv?X?Xz?oHmV????w86?7m??????_???/fb? ??7].???)?Igegg :r0?e???;?xcZ?J?o??S?k?'2??5tO??rC?w?%= +K???~?5?#????q??????w???z??y7??Q?l?`?9??ik?p))?Ib?.?????q??)?????tO?K?u???~>?Av%?mo?|??IN?K/???lg???m?????9?x??;?;?? ?7???Y???? +ktv??IN?K???~?68??6g????3?????? +?F?????YY?'???&a???$?E%???31:?6????;c2wk ~?]c?f???Z?'???cjvF?!??JJt3:fv??Km,?$??r????@???????:|ZV?????EV??21???m??n??]O?dc????????+79?v????????,r??A?/ ??/:?????c6}?8?? u???t^?UM???U????wqU??W?F+pq???e?8? ,?{??:7UO??7R?U?v??i?s?% P?Db??K?f??;??bz,,u??;????Y?3)??t??6??z9;????Q.v?\?_????%????,e_?'??? +Y?Ynm???????Z?vM??a??o??????/??e??????????f?m +a??e????}G??;?,i!?????%7X}+?FNNv>~0?vt;t??(X?Zm??{2q} ????I#???RS????>?]ifK?vt?m?+????;w?Jk??[]?]^)N??QvF?v??Z????%?e?h???????L?j?t??x[l?b??q??}c??!%&Ia???7???? o??????ZAt?x_Y???o?b?1??}??????????Jz?7??????????s????`s{???I?Z?;!????]?wd??n????e%=K????uWd>?Cv ?2???????U???Z?,xi?:??j?_H??? r?m???\I%5?????????????-??F??8T???So +???9?4M??NtGQc[Z? +h?????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???K;??z?7I??X7zM?7????@$?7*o??o?pl??\???????^L???????} ?L?????b???:????]K`v:??z?>> +? ???4v??;??V?a?????j:yZ???????;?+??4?&??'??J??????w?'??;t??V??????vc?~??-???j}???z????^?'t???m9t?.!?=?i/\{?[ ???4K?t.g?}c???????????K??#????@? +n????y???:?B??[??T?Z?< y +??????p?>???????????B?=?O_????2?u}X????Z?x?b}l?}??5{[?2?7n?????[?G[hmzY??G|?V?ET?QV?Z?pc???Ic?7B??_?c?q??V?s[??|B?%*18?????=??s?9V?>?`b?7???????Xz????????C??W?:q?:? ?:#O?q?s??o??N????U?/v?L??W??dW?? +?r???|????Y?=s???f?]????'????wF??t^???????????>?}WO? 6?v8??F??22?r??C?K?$?E??????Ew?e?49???\????n????"?W?G??????????????g????y?ur??q*????5?????/S?h???????g??pi?????c??z??8?i?.??_??`?p?C?F]?;?e?\?0??]L????u???????F?9?x????6Hx?_4??????<[?????j?\_???ul??V} )Y?}??FgI?,u??6;??????????;?uo??|?{??5?k?=??_Tr?????????w?T?v???/DIJI$?R?I$???H"b{?I%9?????u?????kq??o?c???nEYx??X?X???3t?$?????K;?t??7b?=??????1?1?J????{?A?*?????\D +e?$??K?ul?t???????E?? ??C??u??i?q?]I)??wUw???O????? +??s;??.?????xY??-?????!??K?I%??????S???s##?3???j?x5hg??uR??=a?e?z???????????9???`ur?q?{}?{4c???????????70t_??5\mYG???y??e?????0?M???U??1?!I ?? ????$????u5??t???W??.???????tWSg?{?Sf?Lr?`Mp?;K??A&?|?????[????X?????t??~U?}C??B???ha?[-??k??!q]3?]?????r???ky? 9o???t????zx????7{?rA???c????fx?.???t>??4(??5???)u??c0?4Uo}%??z/?????z_R%???F?^??W??Uh?R?????VE??ys??? )???:g??=2p??(??h>?R????c??j?`?--???W???h#?os{??????Yum?????p? +???S_S??]{P???,??+???????L???'??(???r~?=?*&?c?P????oL?X?D:?^x?3??v8yUfb??Q??`{O?*?k???:fF +??XCO??4?k?\u+]????Ldt???y?O?*#???{????l|???"????>^??(]???6????+???k????.??f7;?c??????1?9}X??????????m$?P.RI$???I$???????????????:O?????????????????:O??????????????/?????L???]????$?????e$????}O??C??????^??????D?????????&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?sZ??kD??JE?????fVK?TR??????GK?L?3??i?s???????s? +???H?v????IH?z????y?zOX???(??mga???AW??z])?Xz?C????c?g???e??[?????U??)?S?0??ux???[??????1?????_Z*?No????*h???? )X? ??N??w?&?3????-'??P??+/???????X?l????? ??????z??????u ?z#??;:?4|{???U]5???[k??$?@?'I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???]?:?GZ???m"?F5???qwmB??1:?]???????????~???))f?i????|\p:??:????????O????P?vN'Q???UC????vX#??}Z?8???Qc-?u??na??}&??wG??J????2??;??hi????????'S??5??3?u?z'V??????:?R?F?????]8?'?!\??W1:MkK?h5>?I?;?}_?Y?L?#????????v???%:?Yz?OK??#?u??????IY6?i?Xo?&????:?j2?N?"???i?$?b???/e?z?'???[????:NV-?? ??????|?SX}fw???\??J?????????W?P??=2??? +?t??~????~?u?}]??????Bo?}???????,f????????IO7???u>?s???Jkm???$???1???G???}???;???aa ????VWH??C????M????(;?? ?7??PoC?z?? ???w???%:??X?^6S?????Cl{ZKO??$>?t??n ls???x???L??,???M??"????h??T?$9???_??1?b?v?^x?7R?T??o?????????w?K?y,=????yn#?f??GIws?\~%?y?S???u]7?erF?6?????W??????????????D at q???rJz??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)p?LG???/?mn????y???????>?:?6?e??L??)?]fc?d?o"?b???^%?W3?CZY?2y?>?y?g?t??}O +??n??????d?U?????u????i?Sd???? ,??v???E????.???p???`?4Z?,?h:;?O??mLm??cZ???5*8??b??|v +?????! I?5%G?!???f???????????n?????????K1q??3}????]?Xu?VKg??????=7??s??'?]??p???{c?????57?l?+2?c?V??x?1?A\_????U?I?5?kZ"??/< +?wX??u?85???@\g'??_/sK:O:k????? ??ae_??2?Z]??ZK??=???&???]!?????\Y>??]pg\??n(??5?c?p?+?c??0???k^?????:???dOD?;?US??~?t??Xv???u.????]?z9 + +u???????,L?>?????=?p,??>`p?r>?u<, ??????59?^???@??????q??X?[??O?W1:?I????\?NA??q?#?g~?????g?????#?q?h??;O???^?R?M??6~?????w:;.?'?Z[^??(?????l1??G?We(BG?c?n?^??#A??,]???EW~???zU???#p????1?S??S??qLWx=????`?>??|[??g?????}@m????Z?YzK:?F??#???T|?B?r?d?"????W?D???>kk?&??C??K??st\?????W??H?nDX@?Z???????????O?pk ??????? ???U?:j??]??La?c?!?Rw?? }I?t??(?????? ?:??uq?7~??u{1z????O????????????y2????????J?@}?????#?K?U1?2Kcp?!?[??pY?zVN!??C~1!s???:??U???d?.g?????W?O?/4?M?s???Zi$??*??u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)I$?JRI$??\O?? /?_???2?????i?u?a??p??a?El?????V>E?G?e?????Q?{????????'?.?????7??@>?K???{ti +?????z/C??=?U??X]c???ww;???8????}^???N? +v??yys?????II$?T???v????????(?5???Et ?????}y??3?cc?[???? +Lvv???DKo7????J????Z=K?ywo??M???g]gA?????H?{?L$?d??U?y???Y/????c??nk????l?U??k?}soKm???~ +Gi??L??:????7??OKP? +?2??K??????????????Vc?????ky?q?H?)????? E?hOTWV?'?????s???h??75u?C???/?m?/ ?z?S??Um??Z??rAc?9???!Y?S~?3 ?-?ab?????d3T?? ?F???????U????SO?/?qM~??p]{??_????^0??aK?=?/?|??:W???X?????F?k'??????????O?????Z??Mq????Q?F0rH???;?D??z?-?K?;???e?z?????????;?/S???.?dc?YU?Z?????W+o@??F????V{2=?5?h}I????r?o????C,?#???*???? ??m?n????7?I??wd????????????7*?????+?y??????{n?????\'Y?????G[???????*??d???!???r?q?I??R????9??k??3???_L%?????c?be4}?????V??L??V?????}lg?d +Z????S&??]:??? Sc?`?S?????(??_O?B??????f??FkC\???iS?????([.?ox?????}????b??.h???!? E94???,??Z?;PAQD????]??u.???????m? AiZ+?????b??????V?n#??0]??yWp??~p?????x??[??y?ef?????c???=;?F'Y??x?+??U????f{zWI???}????_\>?d4FuP{?O?????X??FSl=?H? $??XL??7???V???}v??.??oN??sX`???W3??7P???l7?'?vC?9??G?O S;?Z?????"?c?;??\bG???K????1:&?I?d??????$?@?p?r!??[V|:??5?cCZ!??B?????~6K??!?v??$??VG????????????a??'u?O???;???I?????b[??W?{?[v-?????????vN/? ?v?`m?t??J? ?FZO?f4??i?^?~??oO?=O??y??w?Oh1?Vo???wB????fN????L?? +??????U?-l???]?f6n3?r?,??iO?S?1;?@?????????v/_??x?p???\???? +???????35??{???F?N??_Y>??>??w???&?1?Zt+??7?X:?,?[g?~;F?g_kxO??BP?!??nA???????}?V}^??Wz??Y]??d{k?w?A?g????Y%;??p^??@~.^&w? ?K?r?m?C???4???G????B??x +u???U{????Z=g?K???????J6P?0?:y??????[????y~??#???T?x?%?Yp??D?R=??6????t???F>??[f?8?u+I$?H??w&??I ?$?I)I$?JRI$???u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)K????? +????)%???q???????}_??u?,d5?o?s? + ??_?o +??b?l;:p??J?}<JJsq???v?????]???+?u??????U?:e?T?.J?Y/???????L??? ?2[fN??w??X}+???F? ?OLgI?6t?L??/??_?w?k?;?;N $??'Y??=C?g?k\?z?ur[Mm?????~?u??????:%`? ??k?N???$?F?????????=\???w??[??? ???,???}l?? +??~-V~h<?? +D?U#O?B????;%????O????d???~?? +g?fO???? +?4?r:????[???Y?P??x???u??89????}z4?0???gS????????????RG????^?'?9Q??h~??????=???????g0???`?T????2z[Y9x??`?????f_????gQN-/????u?x????# 3???8#?I??? F??????buH?]?I??t? +?????]??????????e???P???i6?????\?mw}x??????????k}??0??????V??OU???z62??\?3?bd/??[>??e??????>?C}F??p? ??_?^??ZFC?z'Qx??f??? ?%7?????V???Z??:?!?n.'??n?$?_?oC????%???`?g??@'uM~?}???-,\.??/??G:??u ??!??u??:??}Z??V?e?Y??X_??i?&?L???[< +??nQ?x?N?OA?tSOgG??3????T?P???????-?dk??D??O???hQ??????????ct?i)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$????>??v???U??????th~?s??)?r??.>m?1qrp?v?~???;J +L??????_???|??Gl??h? Lx~*_X???????=N?l?????`??w|?????Q???]=RH9x?????;F?? +? /?b???3????0???\@??T ?Oef???\?????}e???1?w5??Rls?? +??j~?????z?9????????V'?m?:????]/???%^??w???????{Zu?%??)????WW???7_2??$?FV6KK??e?V????EIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?C???>I$???I%)$?IJI$?R?I$???,;]??+{?\?O?X?V??45???I$??I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR????L??/o?AW???"g??{? +Jx??3???????#U????Xo~????C???"???c;??????L???]?????L??_???;??2zN[?95?g?;?x??~???O??????5?_????????????Sn??k??< +?z??~?????-?????nu??jf5'V?O???:????????K?^?YMC??q?b}e?}C??YV: ?zuN?o$}G$?$v?IHr?:?????c?.?????8??'?????:nXXu?????h???A?X=?????????s???Z))I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I? +?????.???????F^??G?|o?9X?_?uW?h??iK?G6??W_???_?????X?b?{????W?M,K????(???>???G????????W??P}\????????%????[_YYg?????[?????????)?\:Mn??]1)???????i?+G?]?c?}YgDo?Zk^r???3&a)??????Tt???Z??????X?-???nU????????h}t??W?f?}W?L?o???? &??[>?t???????c?? /?c?????:vnmY??]>?0?eO;?p?v??3?*('??v[ ]??????X???\?x?W??Ff.h?h2?????>r?????.??&?`???L???ffyZ]1?W?Y??? ?f??Yx??v?????????9?X[???}f???-?n?x=?|?X??? ????? 4??7l}r?W+??}+?_.??)?????7??? #??????*???c?R}L ]??w???????M???????W}??1?#ph?G??????U????N6m?? q????????UKmH?????k???g~?v08V7{??????yW???c??k?????N?Hml?r??7}^????????9????x:@!?W??u^??z??Y0??8\?lp3-????N ?????????P????_^?gQ??/?n??????)?? +?A?"?????K?:NN?R??q?"?d?Dx(}F?vQ?????O???A%???W????O?X??,???B=?x???O??????FO^?????~???k??g???li??G?F????Yy?5~?}X?Zpr??]????1?s??s?????_V??x?.?:??}#FF.????x??q????7??? \<,?n4?7??????wR??;?}q???z?+?y?`:???)??W? vH???????w?^e}V?''?=Wt??????XN??????wK???U????]??u??KDv?????z +'???F??E$?H%I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I?????!??t%.??_W?v?*?.??? *?I ??jI$?B?T?z?K?~????y??<??u7?-????p???D??iL?I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??C??????^?????x?3?N=???RS?????L???]??????????n?vFUt???p?? +q +D?Ge?<1?p<AIL?5?~?7??`??u?]?[?????e?Y??;M#??Jh}w?????[????????k?4w`#?;?????\/?=1???????o??pT~?}K????"-??#vE?R??cO?]ZJRI$???I$?$?I)I$?JRK???W?gS?nn-,????????\?????N?:??????O????w????}u?E????%;?,/S???.??u?z?]?t???IN?K ???????j^??_?];??RS????z?????)?????y/?v?H???S???.??u?)?Iaz?]?t???K???????jJwRX^??_?];??R?>??????Z????????N?:??O????w????u%??}u?E????/S???.??u?)?Iaz?]?t???K???????jJwRX^??_?];??R?>??????\????????N?:??O????w????u%??}u?E????/S???.??u?)?L@ ??:??O????w??%?}u?E????%'?U>?'?cI??mK?i?Y???o?m???_?];????>??????\????????Y??m?/???g?+1????z?]?t???K???????jJO?4????f7????????????????}u ?E????/S???.??u?)???????????R??V????j????N?:??O????w??????O???Vc?mK?i?Y???o?m???_?];??R?>??????Z????????Y??m?/???g?+1????z?]?t???K???????rJO?4????f7????????????????}u?E????/S???.??u?)???????????R??V????j????N?:??O????w??????O???Vc?mK?i?Y???o?m???_?];??R?>??????\????????Y??m?/???g?+1????z?]?t???K???????rJO?4????f7????????????????}u?E????/S???.??u?)???????????R??V????j????N?:??O????w??????????s21?(?????0?V???>??????Z?????N?:??????O????w??%?}u?E????%;?,/S???.??u?z?]?t???IN?K???[?R???????m????3S???[?>??????\????????N?:??O????w??$?u%??}u?E????/S???.??u?)?Iaz?]?t???K???????jJwRX^??_?];????>??????Z????????N?:??O????w??$?u%??}u?E????/S???.??u?)?Ir?O?}o??Wu??[]5????U?S???.??u?)?Iaz?]?t???K???????jJwRX^??_?];??R?>??????Z????????N?:??O????w????u%??}u?E????a??O?_?`}?????W}??????%=?I$???I$?$?I)I$?JR??WS +?81????N???9?0??I? ??=V?????? ?*???????3? 8??`?? ??????e}o?8??u?w?H?? ?????c)?e???????>1?Y???  ?h?h!p??Np??_?>j?jy??#Z?>_?????uYXl?\8#B?}D??f??????'V=????\c?f??L???l?n??}<5?lv?;?g???v>!?????N1???????z?G??????????????c????Z???$|??L???-??x?_?e???u???w/???????V???X2?VM?~???H:????)x???u?\3M?svX`?c?g?YJ9 ????,??c???Z?km???<5??*k;?????????UY +??/RK???]?:}???? ????c??g????{???0???? ?" ??? +??Or?????0}???9????????B????????s>??W???c?'?!,$D?2????D??$?Q%I$?JRI$???I$?$?I)I$?JR]?cb??v?T?=??kD?eC??????^???????y[????????C^C??CI?3?????^`8f7?_?}?????L]??]?????h??^#?]?=tS???}"???.?N?-2Cx????$???I%)$?IJI$?R?I$???:b????_?????????ua}J???7?????[?)I$?JRI$???I$?$?I)I$?Jp~??=w????-???s?Q???w?E?n??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?,?????p???k????K???xZJ?X????]?2???ZO?=?>(H????f?y???????-??3?? ??????.?OK??Yw?q?????4??C????????fY??????????????$"t??#?y?rH>???^?%?? ???????nn?Q???B?f-?q??+@`????wU????c??f5??"8?????????_???IL??? ??????????????;k?-? +????VG????]2?? ??k?s???m:?J???\><??p?xq>?????????'??y?7]??F=??d????q????rz?X??y>???a0??tOZ??????:j#???GY?W?1????OI?4?G"Y??\?6/^oD??????\\?[H??t+?z?M????g?gtW??Y?????6???n????'????:????An@??k??I'?O?P??O?ny!????>??M????\4#?.?#?h?]+/?`Y?{???#(?(i?.? -???x?_Y??Q?:U4??U??m|?#?S yD???)Y?< +?*G???u?????v???Q-??z??9??PD??N?>?f???bdL????}??i??8dA?ir?I$??I%)$?IJI$?R?I$??C??????^??????D??????????g?7??~F??p?g?7??~F??%)$?IJI$?R?I$???I%)$?IJLS?))??????o?[???V???NcZ????????I$?$?I)I$?JRI$???I$???y?X?O?7#"?\s$6???=6vq[???W?????Y??X]??????,?????????=6i%k??????????%'?????n??????_??W?????Y??@??}?+?????r_?o??~?????II?kt?????n??$??n??sq????????@????m???????_??m???R??+????????%?[????u??$????????o?%?6??W???m??????J????????I~??_?7??g?I?m???????????????????%'?????n??????_??W?????Y??@??}?+?????r_?o??~?????II?kt?????n??$??n??sq????????@????m???????_??m???R??+????????%?[????u??$????????o?%?6??W???m??????J????????I~??\????u??$????????o?,V?.??<_G?h?F~????????????W?????Y??Y?Y0~??c?9?B?T??w0:???o??~?????K?m???????????c??? ?r*????pskv[vi??x]]?G??S??3????z??????o??~?????K? m?????????E?46o??N????Va?G$c?u]?????kg?7[???K????z???{v??l???* +???}?+?????r_?o??~?????K??????u/?S??.?+???????Z;??wR??W???q{??e?9,5??}?}?H??????@????m???????_??m?????k?????????1~?t???S?.s???.???????:??r)?n???n???????{???m???????????????????.??J?????:.31)??m?cY?????+???e?6Z??q??????%????????????????o?%?6??W???m????Ut??WS??U:?O???.?|l??YU????V?z?IkCFm:???????_??m?????}?+?????rW?????xh???J????????I~??_?7??g?I?m???????????????????%'?????e????I~??_?7??g?Is?/?tW?a?U?????????,t??l???????????%'?????n??????_??W?????Y??@??}?+?????r_?o??~?????II?kt?????n??$??n??sq????????@????m???????_??m???R??+????????%?[????u??$????????o?%?6??W???m??????J????????I~??_?7??g?I?m???????????????????%'?????n??????_??W?????Y??@??}?+?????r_?o??~?????II?kt?????n??$??n??sq????????@????m???????_??m???R??+????????%?[????u??$????????o?%?6??W???m?????????^???3$??? ?uo??S_I????fd??n?a?@???I$??? ? ??H?nKqq???8?!??O?t??????t?f???c3????Ik??|? +?X???:??S?nC??m?A1 Q$?xl??????_W?????l??? ??4p4?3~?}\f%?L?cq??]ub at qo??I+?#????e?eU?5???$?R?I$???q?????7?| y`?q?????7?| y%)$?IJI$?R?I$?????t?#?E/N^c??G?B??RJ}9$?IJI$?R?sZ??5$????W@??????+?c?????Un,???Z??H??}E????FK?fO?????O:??[????+??L????9??{???E?Zl?cKO??B??z?x?>???}7D?gE?'????????^Q???3?}b????o?(kIi?> +b??S?O?H?~[&XO?(??I??v6] ??. ??P??2>???mo?P,-$n?H^C??Eu?C???g????????v?? ?xa???H?Lq?#?Y?}?????_??8?j?~=?k;????+?~??yn?.?e?1????WS?[?M????u6z=F?"7G:x???wi???1?68????"}y??7?????_E??)?T???]q???????AP???T?noN??p?Z?4|H?.??OQ??2?,???q?V?-b{Y/?[f;??]6???????B???E??}??????'??|??G?Lm? ???h??I@?I$?JRI$???I$?$?I)J?_??3?????_T:?????????))?????&n??.??]??????&n??.??]?JRI$???I$?$?I)I$?JRI$????LRS??+??????>=n?/?_?????????u%)$?IJI$?R?I$???I%)$?IN???G???????????=w????-????I%)$?IJI$?R?I$???I%)$?IJI$?R? ?n??7???? ?n??7??????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??t??R?????n[? ??????/?{r?IJI$?R?I$???I%)$?IJI$?R?I$???I%8?S????;???\?????3#????-????I%<[?X?O_????{??nC[??&;G??v?7????2????\??=7?ZG??:??7??????30+?;?????? ????A?V??65?U[?J???????Dh8}=w? ???X?~??]?????????:??v?(???????????????????s"??\?w;?'y? .??}G?????vGU5?'?F???+:??_? (????t????=???@??:???G?P?U?{?r??WY?YzfB??WP?k???$????>???s?w??;?2+m^??c???:{????W?`??l??v-^?1?6??}e??????(_f~7?Ytx ?4??#????z??? N???????? ?N`? +??8~?:u?v?>?}Z???n?7#??]??:Hh??-?I?????I$??q?????7?| y`?q?????7?| y%)$?IJI$?R?I$?????t?#?E/N^c??G?B??RJ}9$?IJI$?SK?t?~??f@?????p??q?T?????t.?????????'O'????m67w??????6?v%??6?+p?9?#iVyoU???=G?VOOWfG??g???s?e???2?l?????wr?ng???E??S?????@?G????o?yk?7'???t?s??v? ??????fe?????O?M9a?0&44?????qk?g??7L?>?Si??????5?}v?????9??+?? +????C?|V?Z??????`??}????? ??>???-?]g?8??~???y<~p??S%???'???:??|fbA#g?????[???w??s?-^??k +?r~?f7"???????M????????>?]??`?a'??,??Y?"???????b?HzHzn??:?R?n??e?.?Z?C?Z?u}?T????l??A???k??9???ow??: ?|???O??~>K?h??p?4??`c>?????i^?<?/??[???g?o???+??X??o???MIDt???}G????????`??m?=??W?????????P?o?? ?????X.k?.lr?t??#???:?@?;?}S?XZ??Cc?h'?Fxxrha.O?????`???????0?>?????P??o??V~?? ???????0?]o?????C;?Y +?????^?????JrdZ??? ??d9$ ???F????o?|??oP????a?q4??????q?_0-??????"?\yG???W????8?U?mh$x?38???OIx&:\{m??_??_???????{?{??,??bS???k?? 3?~????T??????5U>?g?????e??,??R>?=q???U??????$??r?I$???I%)$??R?I$??C??????^??????D??????????g?7??~F??p?g?7??~F??%)$?IJI$?R?I$???I%)$?IJLS?))??????o?[???V???NcZ????????I$?$?I)I$?JRI$???I$? ?????????b?X_W??????[?JRi!3??0?1?????}S??][?S?????_???8?O??%?@~????????Y???y?Y??+??oF???w?#$???]?"=?W??w??W#??n?z??, ?2?_??????U???.??u??h=VN^.#?6???9?4{j? dA^W???&_???u,?/?1??5???7??-????>??????J~>kp?s?. i???7n? Q;?a??Iy?J??????Y?n?}?5?k???m ??????_:?]s3?t?????`^??"%??h?6"xX?$?2?h??K??????????v-?5dc???h>j?M?W???OT?f&6i?M???Hq?;??B Y??????????K???^????tn??P???'? v????#?c??oJ?>&???-?]?}Y??Y700?????~????}b???Ufc??lm??? 6 +?'A#???y~??H<?w?'S?ut.??i?wY??*?s??4!?g???4?h???%??o??l/k?N? +'K'A??~Z +j?$q}????!y?m??)??}????<4?z]???uv??'?mN???9+?~?W?K/?{????r??e????V???,,???77.?|?^-5?4????[??x?????4?|???:eY9 +????e???q?6b^\\Z???xV?~?ef?|*({???`?i;??u??'K???H??Y?/?}A%??;?E???2?lss??p?.;?8?????V?~??w???SK??'s??S???8u??-m???i??GY$?A.H??/]??_??????G?)z??????,?Y?K??e??????<{??????~?K?yWBN?W?u?c ???4K?N? |?|????6??ax\?????p??p?2S?le?\?c\v?v?,???X]?w?^c????}s_?N???f +Zk?#????????[??.o??mL????ao?g?8?F?????'??{??GM?},??????????k???Z?#?]????v{D??}q???? ?/L???????Hxh?'?]???:??kz6-?????n? +kc?n???????^*?k????i.S???s??????n&~3 +??X-c????????]W?e??^???2?W?????:m???5??????????i ?????M??9?????>;j8 t*?=??tn?vv?%?????? +Hq?Jm?e/????kX?????\?C???Sq3:M~i{???o???\lp?Y?????????R???7O??k?????' ???@?G??????????q???????U????{]hi0??]?om?m?2????u V????????fG?????[??o?????r????? +RI$???I$?$?I)I$?JRI$???I$????????????[????????????[d?[??c?!@??Hi,???0??~???-??9U?????MvyF^m???a?6}Y??"?{n? ~?b&~ ??Z/??G)???????????G?v?8D?? ????????i???W?????????9y??????H)???LHI??RR??????7???O????9kI????w? ? ?3???e?\???p~ULk?6?$mU??g??.????}?h:K??x?C^=???yl????ulr>?[ H????x????c?t?|?????Vu{????k???/I?*??$'@9+???X???i???????Z??? ?u????=?#?GM??N_??xk?}N?????eX?a}?TO??w???ccBd??????I??/:}c'?Zq\?X?????YVc}x???kz?~X????t|\???"?????$????O??1??;?n?3??t?m???_89G~W-k?2???? K ????=?>1??mwF??v???????X??r???F?*????{?%u_S??7Y???u????4X?3???Sd?o?L??W??xv?X7??O??????c??? ??L??2???i?A/?a?????m-?C| N??Z?[???t?u~?]?????c??????fOO?X}o +????s?D??~?p?k,??qK?????o?w??????u?&???&??????{???P?_BeN2?g???U???0???V?k}???#?~Ug??}C?????R??3?q??K??^?$?psC??p?|?u?$?I)???-???G:?^??a?%?{?p???7????s[??e?T??s?????????Gg?U??Ap??S?V???o?(c???%d?n???????K?????7*?_?`0X?#+??y?x????}?????[:7?+?????????????:O?????????y?z???zO?S}??Ue???_????|J???(??$????U?)'??~LP??5*?D??????}P???&??????x??3???????#W~??3???????#W~???I$?$?I)I$?JRI$???I$?&)????J???7?????[? ?W?'1??o?|z?IJI$?R?I$???I%)$?IJI$?S??s?Q???w?E?o,/????]????-?u%)q?^z?S?[?]?????????kg??4????K?WB;?y??#?g?~?v??k?^??4i?\O?????Z???%?-??!?? +Z??I{*??_Q???L?ff?????? l?v??m??~?????? D}"I??t}c?????:{?8YMe???????9m?k??O3?}\????`vK?C +?u];????Va???(?CX??|U??}V?xO?-J???????_??^rz?7OvvR k?c?}=u&|???z?^??Q??3"???1#?v 4??QRI???bO?|???}g;??a????nN_??^}??{x??/?w?/?>?W?e.i?:?[???????)%*?p???????|???H?Y?K ctB??Z0??5???? us?'K?????3?7????e??e????? ?I +?????? +y??]7????)?q??.???{???\????q6mh?[??w???????[??w??????$?I)???GL?O?????;&?k??&?bg?????_?????({Z????64`?z2H5POy$??h@"???????WI??1vWE`g??=F?c?W?????5t?zW??G8?*?^-??^??>z??????? +?<???7f???V#??n??`???uX_WzGH??????U??????y?V?It#?????WPt>??}[??B??{>???Y{?m?,t???????>???g??oL8?_'??G?%?~?_?z??~?????zwE?}/???vc?A???:??} ??_??[(??sz&&M?4??????C?]??m??c??yYL???Ao?z?@h +??$4??o??b??2???I%8]#??w?A???????e?k??B`???.?& ???????M???=?n???????/!WS???j?????????`>??????C!c7??[??\?????m???t?????#~?_?M????S?YX?\:?wC?'??Ln?k`??@??&?}f??????N?q????????k?=F??^??]A?L????t?????t~?????p?????`dT??????s??????g^;?/??r?S?????/CI/??1?{?????txo?=?dee??W?????y}?q{?+????u??r)?????!?k]????I?????+???O????}a?????cz??-??@xwc??1???u??????C???wUGMa?G&4^??mo? o?K?o???_???b??^???g?.{???????=??F?}C?}U???gJF`?e6=????.0???:?_???? +~????????6????R?2????+-w?@?L??4?*???cC@??H?????M??2???W?}r?X?S????;? ??\??J?I$???I%)$?IJI$?R?I$???I%8?\??_?=?????k??kZ%?c?d,o???v/?????o E?;?6??E?????[?a??}?>??n%?|?XC????:W????3??k??hX??]}M??{?HI?y????????>[?>?u:???????K?k?wG.$?Z?V?W????p?1?^NK?4?b]????????????>]?.???>?`_?????}?????U????????W+?YC???&?,???a??4??I?w????Z???O?R??:??????/1??????)????^.=??????????X~?e??????*v?4N?P9>+????????rk???S?_??}Z??{??9X?x1K ???A=?Mx[????s???????k???q????????????&?L??P?^????g??+?xY?$?w5?ZF?qR?????gF???%Z=?D?UuN?FmdQ?tvp?A^\?~?????\???\??N?H>G?w??@? ?u ??????>?a??.w/????G ???W(???t??????LX?? +?>????=j??????l>?Y??<}??GE?5?s<e????? +???V0?? g)?bz??Y ?????~??~???????Y{[cY-???]?m??Pm??5?`38J???C?????iuO??k?.'??X??????o?}?????V???WM??<]?S?}A?? +r???VcZ1?????g???? ?0K?\$KS?:??V????G????ix???[_L?5???????<?G??M??3?:?5??D?x?k?W???Qu_h?? 2?w4pN?????z=N??G4??>FB`?xc????7V?'??q?????Z)??t????7?K?|??????S??W?r???~?8????p?k}D?????6??3??????/?J?G?'????G~ FU8L? ???RE?;???c??H??3}?????????zNF???a?x??????]\auq??????5z???????????G?x??m?,~&GF?1~?h??O"???.????r&?7??O?????Z??GPg???o????z????????k??????\9!?m/W?????o?>??C?cZL?????n??l.?^??;;?\a?q,i?a??.?3<8rH +??y?? +I$?Ir~??[:?C???Z?_xX?Hg??????/??fFNF]y"?????K?I!?$uQ?v?4???C'? ???6??z??c?F??2????G???^(?????oit?q?????zGP????x?I??????I????6?r +bK?J?J?l???z?.fK?????u???i?wx?????/]?V??????/??o??/?????X?K?_e?????lq$??,???/?????Cq???0u??y?????URi??o??5 +k?0?????????d`Wq??6??????}???:???? ?F??#??s???[??G??s??pc?\???s? 3????????N???Lw?????CN?5??\?]??7????????ddl??w??Un?I? ??~?????o?gPk??>????? ??@????.;??$w??????<?GS????(E{I???_*]?gE????\]?&??ic??v????#????We?t}??v~???C???R?:]?S7??f?u1??22k d??|ID~??\zv???G??^??=&??????N-?Y}?, +?i=???????N?wKn????+?m??????????.?X?*?y??T??? ??? ?hp'?F?X?yB????s?L?m?[??Z???~??A?U?E???? I?V:W??='?_W~?>?????\????E?'?u???2?wP/f;q??1???????>??s??xX??????X??????|\~??*???x|?=O???G???????????=w????-????I%)$?IH???????kiq?+? ?????zwW???:?????7?M???6?Wc?ju?3*?j????y????L?U?o?9e???/??????????OH??_@e??wP????? ??????y??? + d?^H?^???F?]O?????Z??a]??:?????????=??'F4??N????uL????[nF????"yN???Rk??-??????W?????_:?E???ce0dc ]??????U??O????'?L_??????@|??#?$????????I%)$?IJX-??????????X-?????????Jw?I$???I%)S????/+5? ++s?`h?,????d}V?UT%??@?j?3Q??? ?A?/???X???}??:?u??Z???d???!gt????}p??~???WD?9??5?ov???c}f???-1s???_??j +??l?????/?~?Ch??m?F??6????tn??)+??h????c???w???u/?.+?v_G??????Qi??K??>? +?V?_???GQ???X????}6?k>/ ????u???uks?}@???M63????w? +???h??m?=?I?t???I%)$?INH??/]??_??????G?)z??????-????I%)$?IO??????/L??????7^??Z??x?K?u?]:>GR=r??????????`(?3?_???[t??T?@???_Z?WS??n???????[??+s???????c\BR'?-?I??????????/?Vu??5?h?f?7?@?? ??b?????C?)????7?h:?G!ha}n????^c2?U8??X?#?k?*?????????k?????Y ? +??l?cP ???E????/5?E????F??????f??n?U??R ?=V?|?? YbK???#???_0V?'???P?X???????`?+???\???=K/?UK?V?\?|??*+???n???f?]k?{??O?bN???????/??h????|P??????????????Q?z'K??c??!?~???7F???G?????'?????}>??+s??KM%z&????T???>???eU??m{?F?GS#~]??A??">????9y?&???q?{+??VEA?1??7???m???????"W?5????8??????X?L???W??[??+`???~YxOO?2?>1??r~??????{?>??~??????{?>????I$?$?I)I$?JR??:??????/1??????)%=??6????2??I???8?W??Z???p0?&(??K?????d?????t??R +?V:?s'??k??=??@???l??A?s?|?a~???????? ??d?Uu??F-$RDv?????RL????:^?\=?+h $?%:?>?u?t??h????}:????B?3???RM p??}q??j????S?????]?Z??5???,_?]?'?V??? /=???m???2???LiTG^?K????-??g?~???7??s4~??U????-} ?????m +??y?.S?????'~N~^???f?KI +??????}?.?A??? ???{???i?:?u?{?y??????z?F??{g?P?:?J?-?????? ??WT22?$?????Pr?u????K? ????8?|???V????t??Q??o??? +'?C??W)???V?!oQ??C??T???????N&}?>`?????~?ukp~?]????js} u???{??}l???????+['?{?LVR??;!????-?jC?+??%6??K:f??? +I=?????##?08D??,???t??L.??????X???,?}??????"?+P????c? #??'}Y???r+l??????Y??"??8?g?75(???G????^?A???v???]3-???)?][]?#U??O????????G???9??H?w|?????a?? +??]C?>\???' +58? >a??{T??}???"??|z?=??r???????8????o?g?????e9YC?slik???B?>?????:?????????????? ???yu_?_X????X?M?m9P??r=??~?49?A?\???????????bk#?8}??R??? +?t???'??????xa>??K? i";??$?J??$?I)I$?JRI$???u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)I$?JRI$???I$?$?I)I??))?>??d????L???:????X??Gp?? +?g????C1?Z?? ????+??????>=n??}n???A??1m??b?????n6@????] +I)?????_?|????%???N??????2??b?G??????V5d\??T????R?N!???K=3FIg??[c????[z-cmtd?Cqm?b??}W?b77?v;? +xI???T?3?wF`?Q??? [G??'?n????e:5?i?? }$???????;???y?v%??,Rg???[v?FS??[@???IO???t?3???^Ie?n?{I???n?w[????????k?)}\??z????l[?)???]'?_??[??K?yt??Y? +o?En???/????e??5?????I?E??????V?I)???='?_??[??X?'?tl??)9?cg?????vmc?0v?+o;???| ????[2???Ob@?????6??? k?????:?????????Q??????X??b`u??m?9c2?m9-?|l???[???t~?X???3;??q?4j??O?w??P}?g?????)]\????W????}#/????????????%???l`??????I?E??????Pq????????k????n?jO?F?A?h>??OS?p???I?E??????R??]'?_??[??[?$? ?yt??Y? +o?E/????e??5????Jp???I?E??????V;~?t?????O'?8"??=??????c?v????????}IK??.???/?a?????J???9??'??gL?h??v]vg??{?Cw}???/??}d??????_?F9??k ???u]+????????{o?`??????? ????6o?m?g?7ml?n:D??`uG}E+~#??~?e??1?'??#l???J?? ???? *??Y[?e???,????A+w?}r????~??3YM????=??????gNQ?,8E??y??C????????_k?W???Ul????0?}???????}}v?M?`?????ww????~?K??+???????&?l +.??????I??8G?KN?-?72?Kr???Z\??G\?????].?}????i?G???x???I???t????@?????V~?=??J??????u?+?OH .%?k-<?k?`S?zn>R?4?cS?(?XXy????e??????9?>??)?U???????????n?p????_V???2??~??3X???????V???_?????t?F????\?@????????cV?b?e?h?m?]????X?8? HOh?????ty[>?}n???WG?v=.?{??c????G????v??Y??-$????]_???????????~A???_????t?W?Y??t{????,?,~?O^???y??????j???$5??B?{z?????.?????o#????????T??????e?o?8|J?r?h???? U`?5???? ?W"8d;?"1??'Tx??C?X????????w??}?u??M}C?? ?{?B????}G??V]???w???????????????\c?Q???-P?q?????$?}????Y???????r*???<1??k/??W???j????X:?S?i??Dxn!?d`R???}?*????"??????????i??ai?9?at??' +??]u??W??{?I3??H??@????] +?S?_?? A#i?G%??????????T??:u???????o+?:7RfO?zs???????"??Lq????,l|?????o)"=n?/?_?????????u%)$?IJY?X??,????E??u,C??????[??&7?M?&2?+?jQ'?5?+??!??w?U?,???W?5]1? ?[?}@6?????$?2$,????I5*I$?S??s?Q???w?E?n?/????]????-?u%)$?IJ@???a_c>?+qo?u5?ic????(HBA? ??V:no????yT???]s?s?/??G?????n???????>?????A?'?u???l??? d?&\?l??et????fk?}8i?L????Bu?v???v?????????????3?]??&?????\D?7p?x+?? +??????@??@?q$wU???R??}?f?? \1?????[???"????[?_?s?????c[S}7T?2??q??v???i?T???U?S?Ww????????rzyx?[S????&8=?x???\[>??\??{??u?u,|7o????p??&Wj??v5???? ??H%I$?JR?o?-??????V??o?-??????RS??I$?$?I)K??{?\??> /5????z??.???K.?????? ???'???:?? ???A????z???^{?_??w'???A?74?d???v??]?????1??I???J??V_?x{@?p??|????2l~e?z8{????mJ?\???j???n?k?p>j?I?????/Y??+pu???!???/+??R??oO?????eu)?nC?n??vX???L???????zV??? ?D?i|?/h?qt??????i???????Y??NK???? ?T?jeU????x?SD??Z.??$?A*I$?S????K???=?n?.???^???????u%)$?IJL??4?????F?????v?C]????8?=; ??????Kh??.???%????%y?W??????k??}`.?Y????Iou_?]K?????????C?6?s!?">X?????w?(????lG?r??7/????W[?2?/?8?;]t:?<??'??q???S,.?e?hc??????S?N^E?/?????&?w???a?Y? b}U?????QvI?-?K??h???#-5" }?u1?cd??7???Y>????Z[WO???V??{???"W?.??G????N>7^k0?p.???N?g??G ????V?"|??l?I$?T?I$??o?????r?????????&d??????????I$??v'P?v.eb??w?L??_a3?H??????g??z~/X}=?=G?l?D?h|??? +???H+???+??????~?u|?Ks?~-ddT???i-??}[?8????7?.?>?V3?$???.?????,LN???e3???????????97u,??u??m?p?G +c{)d?dw??#?R"a?^?$?MJ?I$???q?????7?| y`? q?????7?| y%)$???????oGf???q+??u c+h/l?/s? ????l?]?o???^|??A????&?V???}u?de8??S?????.]?F??x ??e??%?????g???=??T???,????I$?????t?#?E/N^c??G?B??RJ}9$?IJI$?R,?1n?r?9?x\g???6???~?v?G??? ?^}?g????~5??^?e???2????????R??+N??????W/??%??????V????WP??21 ???'????L??????R?+>??>4??]? ?A?x!s?X??tn?6??C3?M`hw\???????;#???:2wi?G?/ '????-??=_??????{.8?x??????f?F?Y????c???O?T[?0>???????G?jN?XrG???Km<??)a?11???? ????o???K??J???Y{???????>??z?L?c??s#kv???:;???]?O?^?.?1?i?K}?|+f??]_????T0?:f?C?@?m?;??R82e?%hG??4?/U??V&5x??????? ??D??]K#+e?5???8C?? ?????-?????Xq2???A!??o??O?I@?O??A??b=[??S??,7? Dn?&?}^??}@}b? +"?"???????Zx?Y:O?>?v?7&??S???????D??\?T?????????k?&??O?N?8???#????1?RA?]??bu?1???}^?:??,5??PL8|? ????'??D???w +rl?P????<???p~???cNS}???y????????#??~???u?"?????????2?e?G?-?????7V?Xpr)??8??c?tsw? ???O???n????|?????-'BZY??e}\??{?????=z???$?]/????(?9~?T??? ??????1????@?????!???WV?NE??-????d????/T?}?`??O6?ys??????g?u?????????0>w?sy ?? +&?{?Z?I%Uz?I$???I%)$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???????U??S????OX???????2???????????X?????n???_R??9??k????Jp???X?????n???o??????+???? ??IN????}??m???K?o??????????-???????66 +?>?S??mv??i??]?H??i at o? ??????W??W?A/??????+???? ?r:?Tg??>??@???Q??];?^?@{??i]k??[??7???_e?u????c?/?????? u$?????????_??_??????W??W?An???+??n?fwXk:?EF???peR????e??l??????_??_????=w????-?????????_??_????X?????n????I%8_????W??W?A/??????+???? ?S$??o??????????%?7???_e?u?;????n????qr=\?@??,????c?/?????? ??????_??_?O?]?????#??????k??47A?[?^??~?t?????=+?????W???? +H????????+???? ?????}??m???\?V?__zGV??5?V?????k? Y?H?????^f?ct?J*?m?:?D?O?"t??d}?? +k??????X?????n?????????+???? ????]K???_?Z +????v?m?w ?D?@??????c?/?????? ??????_??_??? +p???X?????n???_????W??W?An???/??n????+oY?c??>?*?????????}??m???K??????/?{r?IN????}??m???K?o??????????-??S??7???_e?u????c?/?????? ur?\~?uLL???v7?u??"?7? u?4??[?????W??W?A/??????+???? ?>?u???????_X-?*?W?cd????????????????[ +??A???Mwj??5f????o??????????'???c?/?????? ?w_??????C??S?????X????[???????\}{?p:?>Nc7?YV????$tz? +?@#???????W??W?A/??????+???? ????W??c'3????zx?k$7?i?v?_`?j?????o??????????'???c?/?????? u$???????_??_??`u?????????-??S?}W??N? ?_Y?? ?????H???[?l??????_??_??S????;???\??S??7???_e?u????????_??_???Jp???X?????n???_????W??W?AiuKz?XV??????*??ml??>K????z?P?=[?\?N?Z+n??=??55?b???i????c?/?????? ??????_??_??ax???????$? ?>?u??} +?u\??W1???cAp? +???Z???5????????_??_????X?????n???n????/??}J?FVK1???????_?]{?P??G?X???!?hK?h?H??????????}??m???K?o??????????-??S??7???_e?u????????_??_???Jx???????:?E??x? +s*??????????_??_??\??_?=????IN????}??m???K?o??????????-??S??7???_e?u????c?/?????? ??????oM?-?&VO?]c???m??????!?x?iGC^??c??7???_e?u????c?/?????? u$????????_??_????3?/????_????f???b6?p?my??????I)???I%)$?IJ\????????f0?s^??????%u ?? ??????X??g?????k??1?e??|?]??????z???'?M?\??+3?? V?=V??{'? ??d??N?z(]j??????{X????????? ?????`???*?Q?V]??????????>??.?????[`?{?~#??T????@??#?k???6??l??*?????W{???.?$|>??_????Mn?,J?? +??}8e?????O_?$?~???o?N???rs-??[????g?OC?x????[Y?WT ???@?a???##i?:< s>?}Q-f`9?5??0>aF???IU??l?.???s??e?sKd?#? ???????????;???AI??<d??G???R??????}*? 0?]p?? ??wz5??????ctkC~}?@????4{?????}Lu7u???r????&4v]jI&d?fl?6@S+???U?c?k?u?]?-:c????Y^12hc?9v)% ?????Q????b??????O??VRI4?M?m*I$?R?I$???I%)$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???:d???J???7?????[????????tZq???????X??????V??????? +w?A%;?,/????2????_???xd??5??????k?B???m??o?.???????_??????x?????6%?????iG?)?????t??*??W?,????? +w?}????)?.??????????6???D}?????????? +w?A/????2????JwRX_???xd??5?????F????k?? )_W??????[??????NwX{??v^????F????????? +w?A%;?,/????2????_???xd??5?????&?,?????2????_???xd??5?????\??t?)7?CkCZ????h???1!????^?I6c?_??????g??Q?7?=?]e5???????????p? ??_W?qut??Kql?b'?????? +w?A??I?Q??)?Ia?.?????????]?'?a??? ?u%?????]?'?a ???,v?h?_???Q?pE?[?}I?;f?^?y??u]?nY9????????_`bd??!?????Gut??x??)7?gAhpmw???-?~>??o?Z??(????;??????c???>?d?z?????]??????_??+?3?{X^?X?????[??n?U?mu???7??&??_??????#???????F?h??????Y*p??;?????Z?1????-???? ~?tF45??kGcZ?B????2????q7?R?+??u%?????????????^C? ?<?/????2????g?n?V4??d=?????%?$~??t#???WW??.??yto ????? ???? ?/mw???N??~>??jD??????????w?X_???xd??5?????F????k??)?Ia?.?????????]?'?a???$????????{?>?????ZzVN;+?r??wQktk???^v???}[??Y.???m???????q,'?=?3?CcCX???p??Z????h????GY_????$????F????k?? ?.???????S?????????????.????????g ?/???=}????{~?n??%>??I$?$?I)I$?JRI$???H9YX?x???x??????$??.'?foSq8D?b??p??Q??? ?? ?Q??X?e[???+3?????K????G?k?M??@y???U?Kn??c??7-?a?8??pwc??x??}R??u???q?Nm??F?????3??N+??t|[sn:4?7??????F??}?D???.+??}Y??u???!q???|A]?!?dJx? +???P6?I$??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*?D??????}P???&????????????? ??5w???????? ??5w?)I$?JRI$???I$?$?I)I$?JRb?1IN???NcZ?????????s??????????I%)f????d?-?d????r?`:-%?? ?w?/?;??MqxBS??\?????]???7?3??????0]?q+V?em??X????x???Kp?????z?N???????R????.????`O?i??I ?$?I)????(???;????V???G??????????I$?$?u?? +???[?~ M{ H@??g}u????p2???$ 50ObF?m1?{C?C??-p?W??Y???;?U??????????~??!???????????$?4???un?>??lL?????????J?v~ki?`?!??????????U?`e??????Z?%^?$?AJI$?R? ?n??7???? ?n??7??????I%)$?IJYY?Y?u]?'2?e?v??w:|????^k?????????Kj~FS???W9??RN??#??j??#? ??????>??.??3????j??$??%j?W?cl???X}u????-??? +?">=?&???3????????{r(v?????\??=?W?2??^e?V????.?7X??Vz?~??l/? ?h??CZ5?W=????N?????'?de???`???}???S???????[??I????_rI??????????p???DAJI$?R?I$??t??d?s?A??????????? ????RR?I$???X_X~??}_??r??nu?.i??????_]??t????f?????q"~i?????q??h????"c??n??w?F/???zv6^=??fO??0I??9]?n?_\???n3q,???j????h GX?P,???Zh??I$???I $??o?????r?????????&d??????????I$?,N?????J??&vuu^?j?>;A?Z??]2??zC?????_??I?O}????'?????i????????is???B?k{x?? ?[??k??FU ??x??s? ??u~??:%M?????0??????SzFGF?????f?6^< ?>H????^??(ak_h?????(??M!?i?~???OY?vGM?fEL0?4??P^????????????7q?;?-:%??O?_I????"?c????@o???mB"?e#?????;?????4{?????$j:???C?v3???i57????r?"E;-?=??I ????????????[????????????[?)I$?Jrz?????,e]O)???K??????~??,?y +?mD A????_V??P?X=S????????????2??????+7 +?,?'~??? +??c?Q??]<?R??i??{?I%)y??????K????????????NI$?R?I$???I%)$?\????0??$???33 ?9V +??K????[>?????WN??Zy???????????a;???x??u~???????\6??AT??BfP? xMJ????0?}?e??ma?N9???}0????[????x,ce????Vm??????^????67??c??????;???Fy8???n??N??n;6?3q?????i?K?uS????v?q???_??????d?[-????N_3?O x??;??@>?????u?Z?[>?U????}???Y?A;?p???G??????h?xk-??????x????G???- +???&L?5?i??H>Eq]c?u??e? ????S#"??>???A??:????=I??????:|???o??????W????X?????l?? ?????2?????? F??=??'???????!??8??/??W?ob??e?.????xsL?/=??????wc??????3??t+?ZC?p?!7&11?}?B?????????j???JwX????^??mU??K?[????????))?Q{??8K\ ?"??au?????????????????j??IO=o????????/F?~?q 7: ??t[=[????????Vk?}Xi%?/h?v??~???{??W?'????????j???C`;??]I???k}i?????? +??+??x?? Iu?y???;?}5?5Z?]? +???9?~?}???.??????U?R????????j???]+????aN?Pz?T??w?.???LW?????d?????k??Ab~???{??W?'????????j???W?}U????K ?[????????)~???{??W?E%;?,/?]o?/o??????? ???????_???????[??M??>?~???{??W?Ec7?uo???l]???;??????m??4???,??]o?/o??????? ???????_???$??au?????????????{??W?E%;????Q>??~?^]?m???1i???V??.??????U?R????????j??K?=?WB;????????6&?????????ig?hi u??X???;?????g??X 9??=???]o?/o??????au????????"???o?(~???o?R0?..Kr?:?Ns?e?cF??P???.??????|6?Z,???~???N?W?au?????????????{??W?E+??_M????]??1??1? +cD5?@?),/?]o?/o??????? ???????_??????.??????Ur?]o?/o???????q%?? ???????_??au????????"?????K???=?n?/?t?????+oY??g???*?_,tN????.??????U?RS???????????j???_????^??mU??)?M???au????????"??.??????U?RSS?7????P???/3?wT?E?w4???????t?gd?????A????m???]o?/o??????au????????"????????l???V??O?6??z?v}??cK????\J?????'G????YcrlfV*?f?y:-??]o?/o??????au????????"?4o??:?????>?}e? ??7?;,?f=??F???l}[????{?3?????\?????(????^??mU??M? ???????_??????M?u%?? ???????_??au????????"?????.??????Ur?]o?/o????????S????;???\???[?ukp/u]f?@??ih??$Xe???c?[????????))?Ia~???{??W?E/?]o?/o???????r1???~?}cw? ????k???????X??[????]o?/o??????????^??mU??K???]+?S#???,???t???N{?????6U??Q:?ZgNe}PV??[Am?/????~kg?[????????)~???{??W?%???h??G???t/??????X??TkeuT*,$F????3~?}c?LnQ????5??>???Ar??au?????????????????j???J?N?%88?bP6?CC +?????^??mU??K?[????????) +6Q?wq%?? ???????_??????^??mU??IN???:?????e? ???????_??}?;?/?}???z?????>??????)???I%)$?IJI$?R?=?????a5?_?}?????/7??????z.;YEM??WR???????-??y???_?z???u??E???~fG????i???br\???X???????|????l???\?H??M?????m?wZ???.?+??????S??l??Ycts]?%???'??\??|?*l????* ??2k?g??rb?|c????o?S????k?W?:?&k?v??d45?4??^????t???]???]??7?B?^??g3?e \?v;??2@?????c??1????N??9?K??fu???????m???<5?? +?????R?v? ???x?y0???u?V??_.????8|I:?W???~??K??k?ld6?s? \??????2:fgZ?????k??]V?-??+K7?}^???{??9?b?b?????Hp>??6x+???c?t???z?_Z???=Z?*??????_S.?????!??6{??~?u_?w?/??U?0,?"???\4h +??o?y?g'????>?F?3@??B?>?U?s ? +?M?y=?>?/m???{u?i????????2E??????"?0p?|R???w_?_C?=?"??kor?I$?$?I)K???????}[????????}IN?I$???I$?._???.?????] 3??SyeVY?X.???????j?fS?????P.??.7?F_????z?e?u|??Yn??(u??8?>I?kS?H?uz_??????\??eyV]_???KvPB??,???1j??kI??v?;????zv]Y????:h{?N?,}????t?%t?/??L?u?-????m???ul|?z?>@?(?#Z???????k??\???#????j +jn?$Lo???????e?xd??UN5 ?*?s????g?+??[:?oS7?????M????+?g}`?T?}ckr+m?????Q???????????'b?t?]????????>??:>e6????? ??I?????????cU??N?#!??G7?}k?]w???]??*zP?l????<5?o???n????d>?k=g???v???P?9??}hg?????s+????Y???;?ti?Uo????????^??OP??Z?}f??o????%6?!???_u????V??u}`?????`????????[CK?o$?$?I)K????[??S?5}\??LN?,s?n?[`????$????u???O?`?????X??Hip?`i:?????h?m?A?{/?_X?????VCy5????0??*v?I$?????t?#?E/N^c??G?B??RJ}9$?IJI$?S?}l?????_I?M?????F?B?????$[9??????_^?>A??? ??#?????k?/???G??{?Q?o?S?H? +?%??2???$Y?Y??$?k???4?#?2b?#?d^???W???\}?????G?V?'L?vg; -??sw?s?t}?????V4?P?G??W?M?m?M?????sB~??c?}?????z???????9???c?a?7??k?%7O?9-g???? ?tU?_^?????-?!????G?E?Z?Y?H*>c?????x8?q???NJX?q?E?a???2~??Cm?N?sd}?+w?t??Qp????{I?J????t??YX?C?71?:O?J??????0z???+??|6???%6>k0G??L?????R["??????????^7V?? $K^=???vp?./??U[??{??????????v?=O?V,????&?????F=G??e???"??=_)????y?c??fc?? +?? +???Z(? +n"???YY???8)?k?????}0?D???????+??[??]???????~??? +??3??ze?o"?bt????-????)B^???l&??d?u???0??= ???~?t??N???,f?????t????9?}Z ?D???3?[???ic??\o???zOU????????r{????o??????N??_??.??7??{>?9??{???]???.;?vV?{??c????C?73?H??Kk???$?????:rZdZ????(??$?I)I$?JRI$???I$?$?I)J?_??3?????_T:?????????))?????&n??.??]??????&n??.??]?JRI$???I$?$?I)I$?JRI$???:b??;???~???i????ku???X?>??9? ?o????~??b???_R??9??k????Jp???B?????? ?>???????I)???} ????-??(3?g????V,c????{?b?T?Y?????????7?????????????:oM}???_??N???8?????y?/?????? ????_?w??o?An$???????~??b???_???~????????Jx???????????????l:zm?t[???~???????W??????[?Jp???B?????? ?>???????I)???} ????-??%?????????} ????-??-??S????^?????]?a?X??7P???k????7>?r4???'?h0???U????--?>??Hf=??Z?????? +??w??????Z??[???-p?P?31pq???ci??/??:n??????LE0Gb??I?[??????kc???????M??'???3%?c?H}?@??<_??U??F?Q???8????"?]w?t?U}k??D?-}s??k?s???B?????? q$????>????????} ????-??-??S???tz??X???e?g??O??F?????_?w??o?A7H??K????=?n???y?/?????? ????_?w??o?An$???????~??b???_???~????????Jy????c???;????g????S????9???3V?c?H?K?????i7? ????(i??h??????}g??c?K+s????y?yb)?????:?? ?E??+?W?F????e??l 5?>???U??????&??6?? ????R???????G??\]K[???????????~??????N?????T??}Wdk?1 ?????????>????????} ????-??-??S??????FU ?????` ???? ??[?t??[m?yL?m??d? $?t?C]?????Y??R?VN??????????n??P{ ?qn=?~0?????J?4?fK2ki?????*?Q???g?d??7?UU????|v?????????_?w??o?A/????~??b??????[[l??c?s\8 ?$??y?/?????? ????_?w??o?An$??+?O????????l?/?i?h??yj???} ????-??(?q?????7?| y%8???~?????????B?????? q$??????]??[?g;?3???#?>?????????????{?zg?N???-???l??????X????????~+?P????#js??S??T?????V^5?? +????"??p???M????.??*?]>?????<???T???}??e??0???=?????oJ??Wr?mqu?<>-]????j ?"?H?y.;X?O?D?c_"?_????]?8???XGx:??.?s?K???zC?.,?????+?G?? K?>???Z)$?P?RI$??????FF7??u?????>??u?Wq??X??;A?z'????t??6{MYN???pRA P?I at z?v??Iy???oV ?]S?.??o??e?.l?L?i?UyZ?n??J?_??3?????_T:?????????(%?????&n??.??]??????&n??.??]?JRI$???I$?$?I)I$?JRI$????LRS??+??????>=n?/?_?????????u%)$?IJ\????z?H??H?U????q?E??????w?_?\?[?]?N???? +?$7???Q?v?!?,????=?}?d? +??v???_T????x??yY/???h??N?????V?I'?}?I$?J?I$??}\??z????l[? ?????????b?IJI$?R?7??=????????? +?k6q? e1?%%???=????c?!??b?{?V??<_8??x3?dt||[Mf???q.$??I^???+?? ??WW??Tr???Y???1-????g???gS4;?? E?D?,A??~R??G?????@?????=>?????[??n????????????s?????????*??1?H?]?????X????k?????k?????7???0z7?|~?f?U??1??B??ii?4D??? $??s?:?C?B???fn-??? +^?3???????O0???Z??GP????R8Gv-5?V????j???t?2???????????I?$?IN???3#????-???7?L????_???y%)$?IO7????Q??HuY'$?V? +9??3?2?5i?g3 ??e??U???Nk?/???w9???????~??buX??]e??4R)???Q?G??3???j|?_}5(??^#_]???????7???6???m?* +"???K=*??8W??J????q?~8X?m441??+???????$?H%????'????o???????'????o???JRI$??+?c}`n%x?? +?wRt_?? +????+ ?W@???????+8??????????|???3??fb?????c?5?????????}a??F???Ck?Q?xJK^?V ?k:p????$?I)K???? ??G??^????????????rHw?^=/??m???9?? ?g??Yr?????t ???? +Lx????F???&?@^[????>??????dk?a???-???0?cM?5?u?I?\?F??? +9?:???n?~??s??`?Bf??p?D????j?.??^>???????CC?????l????N????oN??}R!?~??????Y?k??-p?|???:v'R?v.eb?????=????@??1?????M??|??uW?\???m?i?]E??{u?_D?????#'&?J???]5?????-?m????i?X?i?sW=f7_??F????vx?[\???)??2R?'?(C??V?U?????q???_U:/Ya?M?v??k????IT ?4W>r???R-?iy?}???? +???????????;??$??"?h??^???is?x)r??2P????u?+Dl^??}O???????m?yi/??????0?tG`??i?+??? ? +???%YXx}o????????Z?Q:??0?????????????b??O?N?????????0Ew@|w,0???9??PD?????????]{?0?-?<9^???>????&^??o??D??? u?0??P?Dw??I$? ??I$?????????????????????W?}l???????q??????v?3?.s?_?A?_U??rs2)??01??t?}?% +%"z??????W?????]c?P???????b??????b???Tw>?@???q???}r??>?t[0??|?Sc???|?o?Q???q?z?F=??;y???$q??B?e??q?????x^???GoF?8? C??????J?I$?$?Z?u???? ??PU?C??????^????^??L??f??2??????L??f??2??????$?I)I$?JRI$???I$?$?I)I$?Jy?O?S???????q??Mn????y??/_????????Jp?b??????a?K?/_????????Jp?b??????a?M???????R?I%8?z??_Y???%???????R?I%8?z??_Y???%???????R?I%8?z??^????%???????R?I%????_??W???4??oP???????5???dH??u?w`I? +C??'????__???j??? ?? ????)zw??A ????un??W??lkva??-6??v ?r???N&5?7?mT????ZG?V_@??????L???s???4r????~??_gF????2b?????~K ??6?d?7}c?a?5N???q#????]??!??7?g???h?????[>???z?=_,?fTa???????/???????nnS?~?k?k?az?????,pk%?:??e?]>?6???1?;?????_$??pDjH??W???? ??-?7??~]M????>???o????????l?????6??p~+???????~????_W??6?rg)o?>???k;?O?z.e????>$B?h??Y~???^?Y??:3)????? +????????;?pm?????I???# ??BR!??B??+?t?J???????V9?9.?Z?{?M?X????[=x???????^??~?gF?? +?????N?a?????????k??V??s?n??U?)LG?$?vw?lWB??z??3?b?T???^?OW????}?????,n????????S???y?4??~ ????????Sz?????q?v?I?6{??0zK?z1??~??}F???? +?r?L?????t$???c?`???q??2???S???????????O?????????K?O?}]?g?Q??6??W?7C??w?8?o???h$??W?L?1??=`c/?'x?????u???? '?FuBy?~Es?Uz??G\???c?i?|???????? 7???^? ?k????0~?dzz6?????IX?Fs??r?L}wY=??????H???Y????\???B1?He?h'??*???u??e?o???4U>?t??W? v7??????T????-??L??v?)?3???]?-?8.3?_??,???i????i????~???C?f??g??~ ?OD????+??????k? +S???L'???;"]%????I????4?"A?)?e?I$?R?I$???I%)$?IJT:?????????*?????L??/o?AIO?&?3w?w?j???&?3w?w?j??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJX^z?oF??????????s??O??\?????no???%:S??WT??????????????\?????M??]JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Ji?~?WU???\a???Gc??7?????B???q]f;??=??vxq^???Lc(?$B6?CL????"I(????y??+#???&S??< ???W_m???X? +`.q?W?1??z?_?nck??@'???Y?1????e???t??OM?? +? ????{???????????????????_??;?u<:nc?>??\????B6xN?=Ou?m??=?hs??B???????w???nKw?g??|?E???3???[11?~c?7??C?XIL)KN?w?N??I?-????M\L??c?e???;?c??????}`?}\?X?m? +2?t?k~?????x?J?Z??0Em?+s?c????q??;?W;?z??n??OR??g?qr?????sO0?"A?bR????????.oul???2q???????'??ic??W???}c???t`c?ZI??V????im~?:??p?{????M??!??F??;j??ID?$?I)I$?JRI$???u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$????????????*?!?5???z???Ss?^?????.?s?P?????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%9?Z?N7???`?e??[?????6b?[??A????c?+?\?u?V?Z?%???i?/?? +???.??r?|AS??9????[?_G?^u????k0?L???????p???E^????N??????Y??`7.?$?????[?tH ??n???? v^VS??M?D?/?}]????????6??G?w&v????????=FS???CA?????%?>??????m?LI?6???x[? N??v[??v??R?d?9?9H?????K?lu??Y??2?*?b????~?u?|K??5mq`?L?????????Q??Vi8?+???!? +????>>Y???~?J??s??^P??}&??I?r|}?p9H;@??OzZl??:zl\Zq1????*???h? ????Z????????j?9??Y???$??$?. u?}|???'?s??6iX}??0?s_?k????7?O? +?XC+?q??,?????_???z?'&?O fC4x??????>?uJ?7T???~??????!Kx??x?H:o??T??~?t?p:?Z????\>??????E4???-?sgVN???S?Q??x?V"?w?-??V??E??7?S??;??,gyLN????%,n>??3?6V8m??~1!`?L?Av3??0?s?P??s??uV:_\"???9H??aS?j??????dU? ???w?3?)??>???Q?z+?h~???7}??U?f????=??w$??OI\O???>?tC??m?????[ {{y????~??^??c?Z[k???6????g??"b ??M?u|?????9=w, +j????`~v?Q:?2~?1??4???{4j ?.g???'?e???rp3 ?cx"LA???????]K&??? ?1???t F??*???@?0 c.??-?>:?_??R???z?b*v??????Y??b?lbc???Z?/V?????[?]?v=????G??^????n}T?^#z?#&?a?%?????$???e?Dt?W?5}???2??pw? ??&5+???T?c???YL??????o????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%"???8????Z??|???D?L?Y?Wr??k??????!wk?????1???/O???@??p??S? ?b: ??-?~?l??8?H:xY? ?c???Ve$K?Z??x?-CA.0$?H1$\?=s?\t??N_Ny??g]???"W???OC?E????5?c??Wc????b;m???x4???????2???????y????'????U?g?G??N?H?????-????1??R?={??]g?.oK??>?G?QZ?????6t?3?K???j??o?}A??}???;6??d???N?J 1?8?'?}G??N??+a?Z?????????B????u\??_U??x?????fi??8?,Z?c????b???a??/?L???2~?[V??.?????s[G?^?????7??????v?(~???J????R?T????L????T????????=?wh0?????q???X??kZ?,??e??y7??<F??N?I*???I$?$?I)I$?JRI$???u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???J??W?c?j?.??o,}?i"RSm%C????????????@m???r5kLO???4???8i?m???wxwQ?21?j?????A??n??7>?????????V??5h=??? ?I8????LEp??$?P?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J?_??3?????_T:?????????))?????&n??.??]??????&n??.??]?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)????????}??v???zU??y#??}[?] +??NWX???e?[m??? ???X?=/?}^???e?o?Em????????/?????u?ae??Um7{L?D?#^????]/???????s?/G???R???}??? +,???O??-\????k??E??????Tn??@?????GX??S??\hvHk\??v??=?O?U?>?? ????sS?su?+ N?????@2???^v??[>?????OQ???=g5?????? +]??GI??{1?????????1??k???[z7U?8}>??Y????i\?y?[?Xi????z>?[?O???5???M????@?kZP?>0$?z??s?}i???j?3?]???_?U ??? ???/?u?m?6W?????E?^?? ??M????}Y?o+?????^3&???j?llk??)???voT?6????gL?u +?g???'B?>??????&???N????hq`?4????????7?%Y=7?d?L????9??|r?5??'??b?? t???}?_???+/ ?6??????????I?????????Viu?????e? ??l??\??????{???H?v^?????????B?/?l?(q~ ??? +?:|??^?O??G??z?)/?????k?a?F?m??k?E?W????K?Us??O??,/?S?O?N??K????{??-'qp??k?o????CZ3zn?CCK????!4e??{?0????_Q??t?????e?t???9XT4????g?;H?Z]'??'U??wZ????5??;???-????K?7??}e??XY??????a?????/????n "l???{??"?!???8?:??????????????/???9d:X?r?w?\O??Rs???k"?????\ +?Y??????R????1:?????e?lboDc:??|??cc?????_Qj????.????o?{?]^w?/?Wj?W???V;?\~?'?????3:wE????95??FF;??h??z????K??[???????=+???5?G?N?S??g_??????\???:?F??3%??^N?:?NWR????W???Z???/???.?9?]?????U#T?~j?A???I?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R ?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????h??OG????_?36???Y?}o????@"??A?;)?K??}??f?8?u?.{??Qe??F??C????LzO????? ?WkN},????HpK???????+???KJ????X???Y?]???????w????"T:?????p?t???=J????????????e??????8(1?0??fA??k?S(??cr???=?K??s??NC??N???+k??a? +W^K>?{??W?X9??c?????????p???\???W)?%???????p?5~?,?5?8??t????m/??p?WEX??????c???F??? _???? +????????.??*u?82? s?`??????G?c}\?1???????A???nO`M??? +?i??8?????;O? +Ua??12??V;ia??5??Z???t\???qjh {??s??*????!??QD?~?????Y?w??c\c?h???J???h????U`????t?~??vC?cH?wb+?.?-??t{????Zh;\??rBS?x% +?bUj +v??$??r?I$???I%)$?IJI$?R?I$??C??????^??????D??????????g?7??~F??p?g?7??~F??%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???mu?8??x??P?:s ?&?????I,?u??????}e?-0s????????Vu?????????np????Fm????f?\^O??????^?y_V?h??e???as???z?]i?g?3 ?????;<z??????[?Xp3?ugm??l?E?t??9?Vz???sf&Q  ->K??_\z_X???C ?S???=?d#8???=$ i?X????1= c?????b??S???i??:i?o? +?E??????????w??:D????^??k??hm???????>??y?+?????+??c?8j1???qO?q?Q ?E?????K????d??{(??98N;Yx??w?+???????'??X%? +?LFlJ'i +??i?O???6??$????.?q???X?Qf?????O???????Ok??????d?/ +???????????5?r?I$???I%)$?IJI$?R?I$??C??????^??????D??????????g?7??~F??p?g?7??~F??%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?????OL???m????8v!????????K?Ey??_????? ??z?Z??3?,??+????,????C????*??w????o??X?_?{103??? a?"H????}???_m???q??5+?????,-????/d??? ??3?%???~?d?p??I$?IJI$?R?I$???I%)s??????7e??????? ?y]:?????#???g?M??Q????>?_?????????i??(U???O?z*???#????????????jI$?W)$?IJI$?R?????s?gaW?2???+q{Y?|???!????O??w?M???????^N?_V??w????x????\]???LI????*??g????:?C?2?!?s?v#E?????tb\???????6???o????g?&??c??t????ID?!af??!?N?OM?4>?????(??#)???{??\?%w?S?????-?V?d???Q?|H? + ????/?4???|N????/>??d?Y??????w5??? ??7???????}h?>?1?????#^?#?U???????&???????D????G???>???????u??e?1?q?H????@??p???R??O?>ed>X?$?I???I$?$?I)I$?JRI$???I$?$?I)I$?JRnA??? 4???<4w?(??????K\ ?"??O???????]~^Vi??6?u???????$~?:??&?,???~??am?K?vI$????|??tX???t?z3>?????+o???WrK-??>??M?olq^!?????m??d^???)??\t1??s????????0\???? +?????>*?L???e?f?????$??:?????>:??V?Gj? 2???J8? kme???s? ;??^a?_R??vaf????9???}e?]}_?L}>?1??hwx????W?gR?????+??????c????G?????????[?????????Aq?}????wI??}<???h?[{?B?>?????zKX?F?Hqe??v7q?C?g??K?d?^???jZ.?k???????????g???8?\????.??V ???[?QP??W?????y??NYt???????aE??????????f{?m??,I???s=[?_???q{*??+;]Y-?]?????v?*qze?cX!?????m???-:???,???c??M?f??????c????,???:?kq??b +???6?<'???1?NeGK7~p???49?? ?"????b%??????j?B?~3?#??????A??}i??6h? ?????]???? O?>?c???I$?+??I$?$?I)I$?JRI$???u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???J?2:~N=Pl????????????'F??OP?????;qm??_%??$4?Z?c??????????\??gP?eN?ss?L?????>-??+??SX? ?]U??G?m??????$?I)I$?JRI$???I$?.w??D???W??? +u?{\???WD?^????????~??0?6??????q?]?I'E?U??$?A*I$?R?I$?????/?g\????oLene5??{?L?=????^??/?]'3?}]???????w??S??/???.??[???=!??c6??7?8?r??????z">?@??????>o???????l2??? ????$?&??R???I$??I%)$?IJI$?R?7?????X??q?N]n?.0'???$?) ?????????????:?u :\???? ????z?mkjI$?J?I$???I%)$?IO?3>???x?u??????u???r??K??V?_T3:N[X2??=0??p?%v?!ZH~???bsg?>?????}?]C9?7?pqm??^4M???^?c?X??5??w??X}?]?$??????N/?n??X????lk`YUMc??HU??D?$?@???I?$?IJI$?R?I$???I%)$?IJI$?R?I$???32????/!?j???>Ap4uo? _[.??????Y???~|???3+6#?H%???????B?k??)i??x9??*??u+z?5????X +??7????_?????:?Sm??>?p ????}\?6c????????????r???!bw|5??s:?????U>????+7?q??O?gX??????g??o??K?>G??M?hp? ?S??????????|/????????:\???ul?;??z?????^Cuv ??????~ ??+???F~=V3?????|??k?? ??????????2?y???????|?kmW??????~?c?)?9?N???*}o??_^????V/>??c* a?^P??_[z@m???a????@?? c???? ?f8??7?Gi?'?w#?????:??`}7M?(??????0gt???\?6???`????_?vmg????3?k,?{???X?[???C?d???@???[???;?D????\?? +/tOL??IGI&?g?????E?U?Cik?x?4?d~*??????t??o?u???.w'????]O?|???k???u??o??????????????>??v??;vMm????5?????T8???)n|??:?=???_??M??7?\?>????X???????G??K?u??X_Q?FI?Gc=??Y???K? +????6t???:??[?????????[?p??1?????mn?Sr???c?? uH???s?;?K??????rv????V?????G????????9ug?7???N7X????3??V;??/?o?O?^????:6&O"???6?2?1?$O??Q?B????9??9D?kC?gX????9??????;?}\_?T????~??O???????agN?9?c6?cj1/v??F??F}=u ?????e??v??u?K?KB#?n?I$???u???? ??PU?C??????^???????L??f??2??????L??f??2??????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???K??^???B???Sn??5??0=?;$?m%??o???:R??????4??4???I%)$?H))t?LHN?r??I; /w?o??L??7A?;Q?R?I$???I%)%_/? ???????^ ??B-7U}m?????%?a?y????I)I$?JRI$???I$?$?I)I$?????_??s(???c?D?K?Rd?X?=??ps\%?A +I)I$???????h?8?y??I ?fb?????????[???Z????I$?$?I)I$?JRI$??????}pJ??????OQ?!???IYm??(4^`????G?M?H?0???Z ? ?u?? {??^???????t~??????chf?-h?\yv??U>?????MX=V?????-?F???^?M?.?&???o%????? ?c2%}??|V]???:??o???????-?.??/?xt%??????oH?cp?????{Ap??~=???????~Y??6dG?????;?c??$L???1)?????W/?_}a??m?8;?X:}?M??.????>??r2L??UC?9?q7}O?????x????n?-5???)??/\o[?1H?? +5?)??9????Z?Tq*????^???????boI?2???"??~I??????cb#o5?`?k?}R??e??R+??o????r??Uc#`??\???}g??o?S?H'?5 ??>k???s??b?s?!???~;????#?j=????hs!?:? +????l???:???k+%?? +`w-????]'Q??}?????S?le?l??8?????JD??-?z_?^?[??s1 ????io??_????_X2??? v9?o=??)sg?$!B`DX???F?????V:????U???>?E.? ???? ??}??>?N??O???]d???J?????~?????^??????????z:U??R?N???Z4?????q???gI?????#??????+????sC?|?????????????!?^?k??#?????!?KB??}$?U?)$?IMn??WP?? +????|????9??????2?GS\?nM5?W??5???-??[???zW??k?=?Ix???`????CCa???a??W??e??H??N???h^??p???s?+'??g?9??a?i]?q??l??S)H?*I$?J???"g??{? +??u???? ??PRS?????L???]???????L???]??????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?!?5?S2??????^??????????*Jm?@ ?O?q??B???y??????4???I%>w?5:?P??????vY?j?g;f g??????W?c?c?>??/???????U?i??g????{??:??s?o???!??5?!y??u_V>?`b?X?u??#?????xqn?% +??)??*????u??}?~?t~??0K.????b??s??z/?????$???Z?n=?m???^q???????zY?GE?s?C?`v?L?.#????}\gO????????u?9?S[@$?v?BXY?($?2?????sX??????I< [?C???mt???M,??????#???KfK?????????7?O_R?wR????}:??2?++l??d???u5?\p?j =?L}??c?a?'??y +?n?Zt?|?/???Y9,??e6?,?????BI0=??r}c???.?q?~p?t?????????]?????y?Uzx}???V?????5?}??5?P?c???[z_??N?*??(s?NC6;iHy.s?]^7?????C1K({??1???N??????c?M?c??s?F?Ge??"HON??4?:????S???Q?z?@s???9??\G??0??`?t?????????o??J????s??oT +?y??W?'\?X?????%???>?\???o)? ?gx?y???|????????\?6oB].v>d?@??J???/G?y?? |?o???]}{ky??????=/???a?L??M?????????~??[?t???????}?k1??/?l????P?????Y????qv????o??_s?~??S?r???!???m ?X;??n???q?#:?X??dWE??s??43?r]?*???ep?{?;???g[gU?? ?U????{??_ ?? :?f6?C?{ S??????3?????? o?d?W??>?V:??????????le????@??y+???V23???????{)????e?@:?}i????}/)????pc???R1?e??BGz????V????d?vv leMya ??+] ??5L??????~ +EGK?Dj??A???_??n?;?s?!?z??z?7???y?e??f?X$??p?t??}^???*?|s???I?j??@]??__?I?=?+???+??u?3?c??*???2?????V?~??9??h2"?#?????.??W????+???{L?P?e????6*????&???Q????G????N?????^????gO%?yCm??P????OB????zM?3???%?????@???,???????o??}2????q??2?>C????X???5?{~?F?.?????fd??u?????sU??2????v????1??@?|???'????y ??z?}S4b??D??]7?>?_S??a??9??D?!A?F5?????>?S????????u??????!????~??HC,2??^???UX!?B?C??ew{?? +????o??VWK???v???;]???(?C?$????)?? +?I%T?I$?$?I)I$?JR????L??/o?AW???"g??{? +Jx??3???????#W~??3???????#W~???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR???[C???O`????s?!??S????????q?S?|?d?._?Z?;?vviu )I$?Jr????????1?????-p???AP??T~?tG??????w6{?N|??Hi??:??u???W?????b6?Y???;?XD????]???zv+iH{?s?=??%j$?q?_???WzGE??gQ???????q??+?7?^?Q??~U? +?l2??s??iti%??E~?Z?t?????>?j???i?4m#?Gu???/~??e?2??X???8??? ?I.????WN?W[?????kO]??6?-#?ZB??????+??g??H?2I??VKo??c?w???XgZ???B?????????????1?s??n?;?v? ???I.??n??>L\?????" N?????.>?_????7{????s[??L?]m^ +;?GN??;????'?a?????0??????????n ?Zj?tw:?+E$?????????????{??t???Z6aXT?!??L??~??z&/?:m^????]???*?I~???iu^??z?)??47"??????B??Q??????????4k?\??????CMF?:?\^??;??[??G????Ia#???S??U:I?9???^X+.i1?yL-t?m?????uo??Vz?O???????cK?O??(??P??K????a???????;? ???]+???W;;?t?????????k? 7?A?k?Lf?tR???????]?u*???sz?????*m]O??c?????}P?????????(m??\?4???J?I*??uv????]?t?'``P+?y%??\ ?;?gS?/???}??????C????w0?`.?$? ??]+??S?S???_?????XIu.%???L?t??V:FW??p???????#???[?%????tr????????uLqx?? ??O??/???I??vA +??b{?u???]?????g???P~?t???b??\??^?<0HW?~?t|??WX???????DyL-4?????????I%>A???????fs??\??VO????}\??W??F???T?Z?{Kc?4+????????Sn????G??M5Q[j????!?h??Y?(F:????[[?t?7n????~?Z????QN??V?p0?n?????t?1?????_?S?oC???m??J?w?pU??????Ys?_??[ ??4)??1?'S???+N??z +?'Ir?^?????F????*??????P???F?s????[???????1kt?_0?????t?.??V?F?? ?'?1??s?t?'P???]c1???_u}?>??E??B????W???? k????d? ""j#?s????????????_???1???]?\????n>'??WS?>?? +???m?"Eu{??(N???{p?? +???zwW?4gT,?????/2????? +?4_????K6????k?}y?=f???q?^?7????j???Uo??+??S??:?X2????U?^?@? 8???7??d??:u_?W?z???#!?????2}?w??W???zu???~;7ihh//?x?o???\?{6?SG??????_?????E???V??>#?3?2??????|U +?????????]??????f?;Gg|Gu?????{s%?V^???k???k??6wk?r?T??_K?N?????i?[OM??G*?1??~a?~???????w??-?`???D?=???U????????????C?????OQ????????g??>??un????S??? +?F???iR??S?q??4[/???v0???y?-????????"??]??&???5!?:|?]???)c?m?????^M??????3?Y?=??X??u??%??!/?s??d????w#????R??.???????>??4@#??????[?q?X?C'??$???w??)????>?W??6?? +?]09????$?*???'M?Dd 7??gNu?2??P?. +??9???!t_W??z?G??\??? +??>???j??}c??S 7m?D?ZF???[??Q????4??????Q??h???;????]??^S=???9??????z ?.S?b????????L'?H??h???W?????q?????-?7'?'?>?}6P?Dw??I$?u?I$?R?I$???I%)P???&???????_??3?????%<???????e????\???????e????IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)s_? ?w????C`????sC?Zx"4?^#?????K7?t\??#??V?(s??L? ????????????E? +?&;??x?A???eoJ???_V6+??6Gy.1??{?5 +jeM$?? ????$?IJUi?????_???}?|x??Z^l?????q??C??{??t?=??{?:?N?-?6d??????G?T3??H??k3?)?s????4??\]-??_??A!??%_?7E?}3?&g\??m??2?$?????6"N?d<=;}?#Y +?D???_X?s~?_gO?5?z???????P?95?????uN?VXn??/?:N??r?l?????,?_???D?6sL??_R?,_?7??O?{?Y^???????:.mg??u?1?4? ???uT???{YSF?=???,??U?%????M?N??~??M??7x(?a????[tw>??=?k????4?!i?:?Q???Q7?zJ2????????O??????h]??ipx?????:H+?a???????W?????????Z????z?UU??m???V???4pn? ? ???uTu?4?z>u?_???????b??w?-??&g??_?}t???l}[??K*?w?5?'???\????9?f???J?X?_??? +???cu<*?dU[ A?*???????????n?Kw&u??????O??m U????4Q?c??2_????t??\??_]nRY???]????a?!c????A??-?X?xD6?1?{]??????eS?(??@???O??W?????????,~?^/O??i?u???k?y ?????j??!h:B??_sGB?}`????2(???????????4?8&?5????????????6N???P????????V????????]???W??????_?lk??f???$(?%l&=???s|we?1>????????meve?^?t?.??????+?2z???G(?p?? I???????3????x{?[??4E?]???,?<~??_J???X??^|??! ? ???2?k??{n????c??m?? ???? +sF???r7?????~??b???#!?qsC??xS?kt?OF????cZ?4?g9?}s???Y?qqp????l???????W??? ????5????Y???8u??=j?s? @?????.??Y??&?????F>????y?7Y??}R??W???jT??L???c??M3??$C?S\???{?~??C?"P +???}r??G?6V-;o?g?av?I??6:?; ?k?L????? +??>??k???????[F6 -6^??~??? qp???C? +?n?.? ?????)????????y/uRCI???(%?????F??I??P?WO??e]xT????N??????????z????????g??cZr?`q??j?}R???n??Pu?WHa?????????u?????????????q???R?$Q????'eF??Yp?w??#?U?zF?Qa????c?????????_@????;d???~??7??? ???=?8??W?nO????v&]?c??s??q6>?Ho????S?Bw?X????? k??/c?}?w?E?u?????j?67????~?}~??GZ????~???cr `v??_????;#??T???k?m,6?@?h??????????Q?X}G3oR?E?x,q? ??x??????"Z~?;~ ?P?#?????????(???2??B??G???5???l$?I?RI$???I$???{???J?Mt5?x??????Ul??5? +!p?XL}~????p????]??0?x??I?J???am????? +`.q?W??Ne?Z>?g}a???????D??? *??c[G???B???y?j?]C7??S?^?qu.~?&x?????g??~R^??t????]??Kn??O ???\f_???????f+??0B??r?9?P?k?? +?a?Q:K??W???u??????\bA????:m???Zt????????BOX?C???X+?$?=>????????4o?J?>??b??????????????w??J???O?t?Wu??fYo?????IU??tQ??????U?C??????v?1G???u??D?MU?Og?{???t???{?u??{???>??]??Y?z ???????? ?IV?iFf[?|?? W??)??????? p?-?[A:??|B?????:??1??Gn??B?5??????y7???m?x;??1???G???:~SzW?z?-??d??vq?G??G^<'Q??_v????????? +:?(?????i??}n???^???I-??"????????????}w???^??m6??d???]???????0??n]>?w??>EI ?H?he??D?}N???????k??????+?c??t?9??[??"??>???S?u?\??O~?;??g?M?????????V??8y?9????"??O?2q?k??9?1???? +?5?.?????? ?L??????e??u????]???{?u? ??W|?]Le@?????!?fKq??x??H???/?2_K~?C??sG?=?q? +?}_??3.?mE??????O??U???\??UWP??%f}e??]G??N????? cM|< ??*l?F;??B^-????]?W?w9???Qx????5???\??????s?u>????N???V=Mo?O?B?yx??;???V+??>'????G????????? +?c`)??I*???I$?$?I)I$?JR????L??/o?AW???"g??{? +Jx??3???????#W~??3???????#W~???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR?>??Uo?>??T?]??1????>k?I%0H>??}F?W???>?????Si?F??4ss53???oj?t??xo??X?]?}Y?????o?>????Uo??S:'I??g?e?>Ci?An?5?~?}ST}}G?_Q?????^?vX???[???M}i??Ls?????>)??#1????*#J??]??Xm??XXe????\&?????e +????? ??d??.??@$?I?RI$???I$?$?y?P??G:??}#?? ?N???S?K;? ????\??q?????o???s+?~}T4?-s??D???]E??:???~?l.??GjJn????L???]?????{??????????9?????????P?[?,|???w ????g]?v}l/??>??qhl????????? ????/1??Z:?Q??ufZ?2??e???Z`?#???o?=B??W?`t?YS1????|u v???*?] +???6?I????d}x??????W????=aY??S?FO_???8?U?f??7xk:????6~/???????W?Qo?\??I?W>??\?????#"?q???2?8??n??#?f??O?UK??T??}f}`?????`?????/?????-?(??_2?????F.;?X???f???C?d??O?X??ur??x???? ????)????p???????G????;?tZNE??1?p???B???????j??c?L?O?Hj??t???? +:???m??{?b?'?q?[:?H??????g?;???N? ????+??wN????6???I?D{? ???E RI$?T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR?~?t,?r+????4ok????d????C?BC?;??"????????f?lm?7??=????6?*??9?Xt?{?????^?? +???????U????E5?????R{???h??????6x??b???v?>\???X??n??X????O?w?$y?~?c??B>$?3?OB?!???-?n????kZ???N??S???????J6W]?,???v?? +?I?x???.9????=?????{*??p???A??]f? +?A#?=?wj.c6????? +a??d????}?x{y?o??W?f?,u??????????}K?+??vNFG???@??l???%????q??m??X???t?~??]???O?<???fX?[???]?o???IG??H?H?-?4*??)?V?f?m????N???:lLV5????;?r?I#?gC#????I$??$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ\w?????{?Q??-??????O??o???eN?ZX?0a? ??U?S?'??r_???k?#?K??????R????Nf;kq ?X?????bg?V}^??Z(p??-iq?&|??5_U<2??%??W?O ??}??L??#?GK@?D?W??F??????M??U?/p?I????????K??7D?c?!??tX?Q??0?.???????9????T?Sr@?????^?r??v??_]]???+?t|~??Z?E?????Y}S;??&m??h??8v??*uc?]????W?O ??}??U?S?'??rF??T4????W????>?????~L????:j???r????{???x.[??????????????O?????xvp? + +???g?;???~?????????c\??$?{\|U?7??wMgQ?]Z???z?\ ?Cwk???a?????~?2z??A?X??u,|^??D}?????s ?!W????U???'unl??A?????'?=J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJIe?????1K????]????$'???w?Vf???I)?Ib??W?fg????%?9]???????Jv?X?????Y??`??%?9]???????Jv?X?????Y??`??%?9]?????7?$????/??w?Vf???I??+???3????IN?K?r??+3??o?I/???????0??S???m????1??s7?5?`?'?07+????Y??`??$?i%??9]???????_????Y??`??$?i%??9]???????_????Y??`??$?i%??9]???????_????Y??`??$?i%??9]???????_????Y??`??$?i%??9]???????_????Y??`??$?i%????]???r?FT?H?&Kx???W?fg???$????/??w?Vf????_????Y??`??$?i%??9]???????_????Y??`??$?i%??9]??????????????0??S?????????????K?r??+3??o?I%;I,_???????0????????????IN?K?\Zs????Q? ??& ???X?????????I%;I,_???????0???????????I%;I,_???????0?????????? ?I%;I,_???????0???????????I%;I,_???????0???????????I%;I,_???????0????????????IN?K?r??+3???$??+???3????IN?K?Y?????}????p~??7???nae?????y%= +K?r??+3???$?????Y??`??$?i%??9]?????7?$???w?Vf???I)?Ib??W?fg???$???w?Vf???I)?Ib??W?fg???$???w?Vf???I)?Ib??W?fg???$??r??+3???$?????+???3????C??W?E?;?fm???X8h??IN?J?K?oQ??????7!??????*?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jp??;????W?z?X_Z?????q??=n???S?7??/? z?`=???D???T????*??>?Om?a?x?k?i????'V???];".???m8?is??????"@?f?$|??$ +o??ev??T??8K\? ??????o?/?????X????z??? +8+K??k???qzVv?Oc???[?h'??4v ? ?j?t ??^?2?/?9????]?z]??k????:?`B??>?????5l?/????Z}???pn??WRz??W},?????Y?OP=6??;4 +??9?+???X5s/e I{??y??l??^??/?u_E??@:?o?????????q?u??q{?Cy???/????Mz??/???????e?8>?s8 ?T?.??$a?????+??H?V?`???_?????Y_?-[? ?????e??n??;??`??o?,??o??????UJ~??V?????U?????????_???hd?Y???y?7??_???????g??????d???i|2?????$??????? ?A?x!:?:?Y?????L?????VEwn.??R???x?cd?????n1???IsHl??=??u?$???t4??????E?mls?a?O?\?0?U???????~?(???l????ZY?[????O?????i???"?,kH????0??w:~??]?5?i???Y:U????-??P?+l???????;,af??NI?????.#????????v?[??j&y K?`?_??}Y??????[s?q??J?a*? +y??5??{?:????=?9?5%??K??t???Xyd???o??????(?5??6????m?????????????_?o??>?o ?+??i?&?C??3??xw??P????s3%????????-.[?????X+????????n???:Ba??u?YKO???;??p??v? +#?&V| +S??.??????]?&??o?)?????@??v???o??????]c?t?j[n5?2???0?%Z?? ?????^oX???F%??v?k?A0>K???????????q??$R?]6R4['YGZ??W???+??H????h??%?????|?7???????????zW^?a???e3%?,?>?|d^???V????gQ??e????w?????3=V??X6o??wL?????5?}9??w?gR?#t??H?c?a?5?V??AH???G~;?^+??????+???%\D?$vZ +?{?U?????7??>???k?????og?}+y?V??};??X*????c??U?[?z~L????J4 ?-1@??????4??J???'????mb?ce???[u6 c?d???GW??=?S?\?:?82???|?x???x?X:'???k?~-Y >???t???e~},??F5?????????j?????????x? 4? '??tVs~????s?:Khk:U^?K? ?#?5?j????P?o?n??V]?Y? +]Dt?3??;khpp$??H\?Q??W?p3?ie?7????F>a???XX?S??=u!Q??w?!?O?tDX????????I??}MV??X9????6?c???4??xK?e?????c&?8?????>???r?|8t??????8?I?( +I??4??&???I$??#?=??w?Y_S??1?????Z??????"?????????JJvVgT???:;?_R?n3?%????????Z{??BF?????"?x??1??}Y???*??.?h;sw| ? g?B????=_??F?=1?k??f?S s {?th?>????}P?] ??s?????w??5???????f?c?Gg?Ir??7[??~OP?m=??h +2???OmVn7??? ??y?????n4??:o?L5????Z????????=??WEO?????s???T:_?. ??e}7-?/????e?? ,[?????g????Vg???|??U??????}d???%??P??J:?p??H?? G??k????\?Y'?g??x??L?~]??O?c ? ??????>+??????]????\??|?]>?????;t ?~?_???x??????+??Ov?4?.6w????i*??:??Y??3?,??*?????????? +JE?s?@???Z????Vw?????j???IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I2J]$??$!:JRI$??/????8???W;??'??w_cj?*2??+K??D?????????s??r??????a?????'?8X_?????A???Wc???~?j!???~????:????????s??=?GC#???GQ??????L????X????~D2?T??2??P??M???NM6?]S]]????O????o?O??G??K??D????????_?I?????W??=[?`u????.~?L?U??R`?e^???3???F???F?|M??I?#kk??????j_??'?????? =?_Z?Tx??w?x????o??g[??\0Y[A}?^?D??<?????=7 '"?nm?s+%?@?? +?o?O??G??K??D?????+H??7??oRz?_?#??????? +6??X????X??by Qg?????:????????s??=???'??(SK?????e??n?W?u????"??RkeY!?%??[_??'???????????WAM???'&? U?7O?p?Z???7?ca??n6N+lVY??I?k?????:????????s??=?GN/??u????k???|l???F5?7??????5??-?<7u?????c???oA???? +?A?W?o?O??G??K??D?????+?(?????7?G?????????????n???1?]V??sg`????????? K2p2??????[?7??av??'????????????ju?????t??/?o?G?u????^?v??d??????Cyt?*?k?7??:?????nN.,?^????C{????????u??/????Q?{P???!$?????9?_;?3/??1r?$?#h???Yg?????:????????s??=????G?-????W?}r?\?=g???97?}3?[C???Q?%m~????:?????3?kU????????????,??m?? ???????AY????=????@??'????s??=?~????:????t~??Q?????'?h?g?u??,K?~??R?WYsCI?t]/???o?/??????c_SlN???xZ???'????????????j?1?2?S???)????c l,????\c???d4?9?x?t~??>?}j?????Hc_KK?$???????D??????o?O??G??D?7?A??h+???~???d??}c)?5????q?c?K??}?????kC???T?????????j t??1?e?5?is??X^?p??M??????j_??'??????E?;?7????u}9???G"????T?*;#^]?vY??@?eu???K?eu4???4???'????????????j2? +??D}&?x?k???|?.?nn5?????-ah!?m'???????\sn?}-?O???????m?&uj?????Q?{R?????u??nB^*?GsW????g.???z^cp-??H?zn ????B?t???????,?y??????2???]?????s??=?~????:?????????dR??]??|?p????z?fOR???a?!?~=$m%??G??????q???9M????mc??H?]?????s??=?~????:????t&?p?Z???A%???????j_??'????????G?{???????c????^???????G?? 3??[?}\????X?????IOL?o??????????~NC???Ys.]O????s??=?~????:??????????Z?~?????~5???V+??VXdxO+??8????8?8?d??}W?L.ho??u???'????????????jt???x????W??hft?????c]M???5?????G?)?/?U?????: =N? k??????l?]?????s??=?~????:??????????????2????s??OR~%?8E?m??/??8???:?\?????;?u? +;????????o?O??G??K??D??????xD?y?w?D??y?/??C:???????K?o?Y???{???K??????&\\?????V?o?O??G??K??D??????^?~?:??>??????????? +????s??=??V???+1?????X??%6???;? U?P????????Ns??T$k?@Zi)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)??o??f?K?-?????+????}j???.?_??&?js???-$ ??E??? ??????y'?n???/?vf_I?vQ[???{??0??s?1???????G???????O????:?d??Y???y?\?L????????m?>??F?^e??qv?????o?{[?I?"????s??J?~?tv????? ????????i9?!xE?????|F??????u??W???????????W?'?}e???auL?oe???R??????:?_???O??k??,?????>??,v6???k`??5??H +?=$d#?????H?+c ???C?o??i????)?g?b??6???;{??j?>?t^???oP?q??? ??{O???T????????:?G????}$?wy??{??Y?????????e=>?Y3<6???r??$??U?????<<??????f?/?w?,?w?????x???Z??'??T????????St?"F? ???? ?z?_????u???K???&?V???h?P?:dHj>?k?BR???T?\??U??[??????1C?\ ?!f}C?????j???k????????Z^?????D??ym$?? ?.s?3=/?wfV5m????????`42?q??R!???????3)??y?m??Mh/?"Z +???W??\V?????K?9??";.?T??????w?UU?/??iu?p?w??Y ??r?O? +??`} G?8 +xN???????? w;5?????W\cl??X???????$?=?e????o???Y[c???h?????x??E17??? ???O?W>?6??_????FM?t?????d?????OT??? ??[???W??X?????V#[????W???X??b??}P??V??s]?(???6??+2?F??p?KO?lj?N????u}d?i?M?-??k0_;-p#t~?N? ?}s???r7O?m?!?????;???????G???V=,??? +??p??,??[rz?O?9?t?C?cv?zE?d?2???db?N?{JJC?+??Z?? ~?????????9_]>??a?7?_???v?16???n??c?m??\6??5???????h???k????g??????????qj?0&??J???fM?????}'??B????^?]s?eg??? ????v z?VL?h? +j??????-_?????Y??????Z?RSS?WL?????????-_?mW??a?sp?[{?k??l?tw????WL?????????-_??_?????n????z?yz?F?66u%?v??I??>?u#????+??Z?? ~?????????????WdT?W+c?5I? ?~?u^?????:???:???? ?'?$ +??k?Q???]??]3????`K?WL??????e???? W???Y?>?F]??Y????kD? ??y???[??g??????+?????og?}+y%5?et???W??/?]3????`V?IMO?]3????`K?WL???????.?????????ioW????5??????-????MW?? [?~??????_??g???????????1???????????????mWqjmlg??f5D???q??C^5?tG?/??u?et???W??/?]3????`X?W1??E??z?Y??.??-?+$}?\?P??';/';??'=??lv??7??) +?|5?Ou?+??Z?? ~?????????????*???????im$??i-?+?D?@6??????-_??et???W??[I?o?}4Qa?Hc?0x,??=7???k???????Ih?J????o??W???Lt????RS{?WL?????????-_?m$???????-_??et???W??[Q{?[ ?CZ?.q??????g??????????qj?0.? ?oP?__???.???K?k:z??!? ?K?=????_?]3????`K?WL????!???3????7F???b??r???N?"???W[?p???????9??o??L??{$5???????|~??????_??g????????????g??????u~??????j?Y`????>??$f??Y?PRR?Mk~?????5Z??????;? U?P?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jq~??\??^3???2??1???p:?.???????Wp???????????$B???? +?xj.????D??????????Ri;??"}]???G???8X?M?lv?=JI?^>????%?8~??u?x???-??s?_G??_?????????2v??T??#????O??f??D?????J??QAG[???? ???yWdT???/q{???k7LOu?????J??*??????*?ae?z????y^? BU?t"???}w??/MRha??u????T???????>?]??U?P?%C_? +>!W??M?7??_]????=?`?,??k?L???M? t'?? p?~?>?]3??:OU?????????e9U??,???i???^? BG[??|T4??GQ??????U??????x?I??.&? 2~ ' +?[f?>?o6??O?9?K?a(J???????????X~?}N????:?O??3U??????????C?^]yVU?s]I??-{????j????u??X?m??Z?Cl????:??a}h?w????????????$??S??bS??f-???ik?%???> + ?~??S??v???Q??])?Q?d?.? e?d?c??x??y?-??*?7O?G?????`5?o???????^??F>v3m??Cd?????K?:??5e~??.q}?e???GBz?xKP:k???z??????V?1s??P??ed??#?_;?????f}?v?s?jES?????q?2uHi?????????*I$??.????????R??????+:7?VW?KV?JR????O?? ?????? y?'???}W?t????>?Ko??v??w$o?????]>???u ?&?d?^??Myv??2?'O?????0.????e9? +?q???O?K????S??)#f????P??w??,?|??qnN)?l$? ?d?">^+??????W??x???W?#j??h?VY[?????YOb?V?????w??U???z 5???????vy?????bd?}74???A?*T}]?8?%??Mx.?? +>???]n ?uLzQ$?{???\lcE?0?????u?W??u|7au +?lw?\?#?????t??.?k?Z???d?A?????????M?8???Y??t??^7_??a??m~?U;s^@?w^?G??W??9????????S?t???T??1?{?????$??W????o[?U???I?5?????7??>???k?????og?}+y%)$?IL.??*}?82??s?xrW???t_??????"?F:??+y?,??v??]???Z[?k?u???#?? +??\cX's??O?'i@???{?^=?p?????g}N???????? +?L?O?{??????]?Q???^@h???d?0???^??0???)c?!?AD(d?_?]5?2?f??l???k? ?????????????H'??<>;?w?????????fUL??D? +?????m??????7????W?_B??+y??k??v?????L#et???$f??Y?PRR/???N?????????;? U?P?JRI$???I$?$?I)I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?I/?RIO?]??d????k6zLc?????=?;>???????????$????7?l??k?K%??7?l??k?K/??IO?;>?????????[>???????????$????7?l??k?K%??7?l??k?K/??IO?;>?????????[>???????????$????7?l??k?K%??7?l??k?K/??IO?f3?~?????h????C??7w?hZ{>???????????$????7?l??k?K%??7?l??k?K/??IO?;>?????????[>???????????$????7?l??k?K%??7?l??k?K/??IO?;>?????????[>???????????$????7?l??k?K%??7? l??k?K/??IO?????9o?????J?~?vot??V?????????o?,?~I%?@?????3??????l????3?????????S?????????o?,?????????o?,?~I%?@?????3??????l????3?????????S?????????o?,?????????o?,?~I%?@?????3??????l????3?????????S??g\???E?i?g?8?C??????????6g????????$???Y??f?X??Y-?Y??f?X??Y|??J~?????6g??????????6g????????$???Y??f?X??Y-?Y??f?X??Y|??J~?????6g??????????6g????????$???Y??f?X??Y-?Y??f?X??Y|??J~?????6g??????????6g????????$???g?_I????????????????????v_???"?~$???=$????7?l??k?K%??7?l??k?K/??IO?;>?????????[>???????????$????7?l??k?K%??7?l??k?K/??IO?;>?????????[>???????????$????7?l??k?K%??7?l??k?K/??IO?;>???????????Y???~W?vg???????g?2?d?S???p??{??;?z???6???????_*?????_*?????_*?????_*????? + +endstream +endobj +15 0 obj +<>stream +H????n?8??????????$T 4?J??j?Q???5?4????>???~v%$??V?;????;?gc????Ve?????o]???~mO?I????s???????????Yp?_??E??M?????W=N?[??wa6uM?4}(?????h?&q4??????2?I?kc~?!?a?r5?}j???m.=8?W????7L?5?????M?????HzEug"??ia?S?8???&^???/?N??D?N??l2@???m?l?~???5??f/???????ba +??z???[t/???"???Y????7??? ??Nd`?ngl???Q???????r?????9N?????c?^??|{???u???k#^?',e???$@????y_4l?*K.??W??bE???~=????*????e?m????d.??d????y?q?,?[V??c?n??/?.?K???%. ????wso?#???/??y??np????????????c;?]h4f`?????Q?&4???3? 2??1?????Z? ??m?C#?????F?%c??#L?3???a???Y?n?7???`vN??{b???????????H??S7Gy?????9?>stream +H??W?n??}?W?%X6??d?:?I?????? ??$?P?"R?z?>??????,?b?????:???1?>?#?S???(??A???? +??????n???mq?n??*X?o?`Q?9?'X????????? r?*w*?JG.??`??y +?v5?[??~??8?[????????w?~_?C?\5/3?0?y????????????.~?Ds??-~?%????M???9?????kv-?'8~??v(? +??????dT?V6????????K[#w?UA+?#????, +?=???,,?????-??u?%q??????6??/?>???_??+????????? +D7 ??h????'?[E???q?eC??A?ES|?????_???ak??w?????-???t???d +?|?/4???X?U????l&9?6??X?????????T?buC???,\??%?Kg??4_?#??{??????]w???v2????)N!?Xl??aw????????_??{>?b^I??Qf\.?m#?\??D#_2?\??82?p?C?????2fD?u??7X?????v?W?1?1v7H????;?k????????%?EB2>??C???????_Y=?zA????*2?A? +?PcS??X=?8?d{??-??.???7?t?*}??}???-I.?G:r?wC?r(??S?m? +??{? u???????sQT?!ajec^??J?Uu?2???$?x%???4;?????O?????D?%??t?q???J???}/?z?/zD,?7B4f?e?QW8V?'?Ca?x?`? ??3E6q?1@?t?????? ~?a??9????$AUN???A?C?O??d?9JY??$???-{?x???????d? HA??#??????o?}g?$a??t??? +k????V%?%??U????M?????XBHt"DT +??X??p?e??6W:?????T?R?U6??&5(?????>??e"u6?k????!5???J4????&?????(???|?V?????T?/?bF?Z?+a???eI?G????\ul? +???k??\l???????n<???+q?? ?U??????$??????E/C??0?????2??ni??f??~?X???!?O????"L_?ne???H?M%RP-?????e??G???0xle?(?? $E??ezW?<?~?J???^Q?w?2???I=???????A??ju?;3cw??\6g????^J????d?e%??\W???P?~?M???m%??}d?c? 5?5??>??gt+?' +H??w L?OT?;???VS? +Yp?AM??H?Q{?B" ??????h????@MCb$?|^???W???Y??(????#?P?[v?;??^ ?/?? +endstream +endobj +17 0 obj +<< +/Type/Page +/Resources 18 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 19 0 R +/Parent 100 0 R +/Thumb 87 0 R +>> +endobj +18 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +19 0 obj +<>stream +H??WMo?F???,?#X ???v??y?k??????u??V??$?z[o???&w????f[??.\?g??-Tjt???/?n?? |???f?]a?H?d??????????Z???5?~??^6? +wX7??c??u??n??h5????bo?6}S6?.?u???^/????!C??M???P?8J??>@?0 BP???[?h<~??z??~[e???H??*?2??v_?{|???>?=??1?D????\??|?Y???z?????|Uu%qt??o????os? 08???A???Vzf???? +? +??:?[L?i +??jq??w?vU??CR????^F>?N??@?N2#ll?X??3??6u????G?????R?u>[??&?? 6QC'??o????????X??1gJ??8Y?fY?%??l??5"???????C?ScG&?eJ"@Dx_???F?T????Wg=??SMk???~??g??}Xn?I?h&f?~hZ?n#????0??(?4?????"???M??????C?O????d???????9,?P??m? +?Z?~?w?F?#??`{???=? ]??r?3?????h?^C^;d?????n?$??I +??????uX?q??  ?A/]???O?`??@??C?????JtD?p??s???1?'?(AE[?4?COD(?????3????P??~S???$??T?V???'???R(G?R?d???E?qG????NX????F?QD?f??????bP??C???s'? T?!??8'B ??s)?Y9???????i??s?b??0???d?q??u??$????D???!????t]???????D? +t?o8?I??f~????8??v9?dO?! U???|J??z?TmYS??nj|-D??iV?????G????|u???l??j???m?6??>2!???w?\`???????C??!:s?-?????ySG}??????x2K??>?7????????q?Gk?6??(?9?}???S???GMU?*?1"q,#????~??&A?d@??????? ?????E? +?x????-?}?,??????FM???,?1?G?p??a?[<&???? q?[#???G????t6???{m?R7??????F0????Ky?^kP?k?1&??Yd?x??x?DU?? (?b!-f?w???3?GJ%??>??%? +"?????D' +?$M?d??` ??????J%w???/w?o?D3??5$???}8@$?f?;j???????? +???Fb;O?Y%W?E?=A?4???xW?!?P?9??????? ??/?c!??Y66?RVAXS?A??K(?!@fyz???Cy?2 -?nq&tA??#?)V?????????3 +Vf?t9??( ~?D?0 ???????W?5q? +?t????0?w???4QB??u??????c?l3??"????m?)l{????=??' +m?`?^ +y??*?R?|U??????U +????\?!??)5??Y?t?T?@'.jX?A???ZJ6????=M?O?f1+?l?%O?`=Ny????_?^ +???j???:L9Y?_???V???????x??|??? ?x<0?C?jeo"?U?6-?????.????Rk,?|?D????1???|M:iDTU???2???L??i????2\?2???????S^F8q??Y?C??q?????O,h??M>g ?kD? ?????????G??cx?^??>]? ?*?9???E????_??d7k=?K2??d??o??B? g*dT?D???N?"???$_s2 ??}?O?XI?4KN'?!?9?%?LV?C?]?$#? +A?d?a? ??*?????yhP??1i?y? +?rJ?????????>dhd}$??3e#??O? +M6@?=??g%?2? +?? +U?? ??|?o5?l???? e?l mm?z???X?8?q.V{i[O?P???j??)6??*ciC/??'???%'???????|=??T???Zs???5_s???????B? +????V!?"f1????+Cw??~? ?? +??X@~??M*???F%?n???B???Xtu???O?"?mW?8???`'`d??c??_?4(??I??*??ZI???Mc?+?\???E?]?N#??f???x4x??A???'9? >\?u??*??7.??????C.URb@F???????????y?-X?2?(?/???????R?`$????L8??()V?'E??????*?0?w?m'?ZKhUi ?W????t??QL???-???K?*??Y9>mIf???Yq??|[E??m???? +???4x?;?q?pqb?l4}??"???V?????V??j*????RURL??njC??Bs??Y??sS_?Jr=?n??L ML???????B?( k??????L?kD?a1??????SR???>????????W???QF&???P??x2QS?* k4??$?Zx +d???Lrd?o???E=???H???????[G?"'s]????{?????Z?~RXk????hY+?:x???????????X????t??eM??i????3s? d,??a6?|?uU5k????q??&e?M??\?u-m?S?=?F?u6j???'s?? +1?dkd?X?w??d,Mn?8I&?f?2%??????3?M?h?!????T!C??[?Wzgs,??c\??h???????"L??nF????W??Y?jRr?e-???55???Q???'????re?"?q\+"??U?dR%??S?g??^?Y:???4d?K/Z??4d??.-j??5??q8?ca1fr_?f+Z??_?%^V??Mj??k9G?8???k???!?~?a-???????y???F ?>?O{??X8\?'?h???3?v?/???DKvO???p?/?????!??h?0lOe?y???]?w m??F???r>?b?2?????O???c7????n +M??J??????v?8?pD?wo@?n?E?j/???C??9D?-??????A?? +??????%??????/?75?>=????p??M?#=? #?} ???????VkAE|)r=?K?kS?m??M??\?7?v?Rl??Q?i?BH???{7???}CR??6??35?????.!?@????z?[?@ ?5AN?t?sv??r?Zm 1? ?Q?LPb4G??b?o~Jj$5S???O"0/?Y:??FA????@1P?Io??36?(?/IF=?z?.? ?F + +endstream +endobj +20 0 obj +<< +/Type/Page +/Resources 21 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 22 0 R +/Parent 100 0 R +/Thumb 88 0 R +>> +endobj +21 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +22 0 obj +<>stream +H?tW????}???#'q?W???N01????J?4?)R!)?????TU???2??R???S?N?????????y?&?2??Ua?La?M?Z???????????*K???Wk?u?a??y??G?: o????~??????p??c??j^?Tf?"??[;??!?w=.m??d|??R'Cy???*???r??X?}Y?yRn???&i??4?w?z?;?\????}????4?U??2??8???????????#G^A9?ZgI)?????? ?/mx\B?+????????ib?(??=??G8??7?-????b?%Mdh????Z?c????XlQz??qV?5?]K+u?|??5?^?X?ON}7V5???&??Rn??V?/??wZ?N%?F?????-????? +?????t?t????8?p?nG??:??????p???m]?;??d??9??r?Rc?JY???r?z+w??x*?r? ?8??+?k?????0??????V??n??fb????j??>?f?k?????3??#??`F???X????#?q??7F|??0-? ?9oG`I ??H?? ??.gB????_[??C?p???'?[?@?????|v?52???????????4U{ ?xJ}?~????0?]?0?? +,???%Y?Gh?d? ??A??{zd?j9?[??g2??W???r?K?p9?p????"K?Rz}N????????}???x$U??c+_?:??????R\????uA??e/?Lmo??x }?3??lr???[?>???t?'Z,Mj ? ?t??2H?Sp???????-_???< 7??<9"u9?O2??X?4???7??Du??I?y$?T??L;4h?? ?0!d???|?u????'Vm?^'??????II !f??k(?Z?R?W??`*???7z?Ke??? ?? ?P(kU????7?N??% +??????%???^/?2??a?????????f/???{ ?P?\?7}?:??d>J ??C?m????>?????w?h?s?????r?.??o?3 ?Z??%!t>h???Q?yG??Pio????O?)*ijc? @??5??{=???-???+0?l???d']??TU+?o(7???.?9??FT^[?1?f????+?6???%dO?? +?i?o?N1?.W ?T{?xF??E/?b???Ta[&e?sRWj??!??R{??$??l?l'???m?u{?^?p??Ma6?{?,??R??*?2???W?C??c?C???????D +???P?Gn???]*??n?&?14}6???,????{Xm??)4??L?bC???]l??)I???a?0F?w?i????Ft +???7%54?V?????st?L??=?????7[ 1????&t??iJp????l?}QH????9`?&? ??0???EA???ta?S^V?|?D???????S?? X +?l).??/rE IWy?'?4?!}:?J?7?????B?]}?d?w?4*mn?8??$????4K?? +#??" +`?o?;;:o}?\??V*?????j??L??????????M~?? : O??m?????r?i?u???????? +?r???)Y?>[?e???U??????c^??O??>U?}p??g?'38?????nvr?m??????5??????????.??Y;C#D???5?hgw???w'??{? +?#??q???1???1?;?????u?=kU????A?7V?:? + +endstream +endobj +23 0 obj +<< +/Type/Page +/Resources 24 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 27 0 R +/Parent 100 0 R +/Thumb 89 0 R +>> +endobj +24 0 obj +<> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +endobj +25 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;???"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?R?^??9??4~JK??}g?O?????n?zU?Sfj$??i????o?O?|?????v]???K??????V??:?E??k?:?S??j????ad?u? ???Hs??@?jS?????/???u.?X???$c\X?1?d?[#u?`dc]?????I&?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?/-??_?????`f??]??t?bJ?%???A?????g??s?????7??n ???:C!?????8?]??QGV=i????V?@? ?z/???gY???B?l????i??o??W???????????X?=????? +j?????>??????(?R5 +#?::?cs;??Z?|K???H%I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???u?:v +??*????++??O??Tr=2D??????$D??}??.@????\~?f?????+???ky>???7@?????.??7?`?##??X;?O?)E??Y??n?????u?? ?]?v?2???](?$?M\??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%8?\?20??gdc??I!Z??xM?t?]E_g???P}U???h.??,????*???~?}w??+"??-? ??r ?^??p$HHt????bbz?|?????~??=???p?v??z?S????sh???Q@i+?Q???b?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ^W?2:gX??>???n]T???? ?/TI????6?e???z??_???????n?vL1?Y;C{?Z?V???????D??9??5jA=????#I????@?u?<???X?J???W????^w?y??$??l??~??I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)J?Y?t?n?~?2????=???=R ???#????q??wT???h?^8:p?^????wY?????znr?????`?5]?I??/?]?j???~??:???????'??7s>??;{??a1?=????"=?^???#.????I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???u??????F3 +?>???I?^{?3?}d?????=##{?o????y$?D~??Q????Y?7~??w????W?:m/????|?U???}k????t{p?hlQ1????T??? +e?]???x?L???C??}??_?????h?$?:? + )$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?\??_???9?t?????m?{B??????~??n???? {$???4?#???&K}?????sC??P??????_?????Uu?.?c????D ????&??????$???}m??????Zn??????5/??Y??????U.?k]???????????_?l??????2?~s?p1.?v?"??$0??{??Z=k??0?Y?I ?p?Hj,l???????>???~??=??????? ????????aS???6???D?5Ck? +?l$???[???G/$9????\?~?????l? +???~F??l??x?!?????gg?I +?T?M?pmMn???x?????????zF>-?X??d6??CYp??????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$????~?}yB?8???r???P?,|_??^a?n??h??2>0?7????BIr=k?b?t???????f=C?X"}?j??o?}??%v???|? ?q??A!??O???__??).'?i?V~F''%??-s??????&?~??????md?2? ? +c?6?? +u???).7?lt?o?????????y???u?.??^~??`????56Q??o$?????+?t?:???Dz??a=??? %?x??5????xi?n??q +??t4w?:J?U??=# +???zt??I$?,??_???V????m&?H???y +M +??????=ZHw?V=/??WX.{?????3:W?m?X?????F?p???: ;=?I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?z?XwF???n5???F?.2?????x?wF?m??5?$/ZMio?$?<???????1.?mN?????5S???K+:?L??{r????Od@?C?????Ieu??}3??}?5??Ln?y????? ?W?U?zF^3n???`?????Q?Y??RXY~?t????~???K??P??I?G??????}4u +iu +.?????!???u*???$???0?zV[?q?r3?2/}-????????????c5??Q?h#?!???(????b@x ?????????bQM????>?{X?LF?r??R???f???????_??K??_?)f?2&?m????m?2?????4???u +@=?@Id}X??_?.?:?T??????t???D? +?I$?J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S_????w?\??????????@?????[5s?@???/?w?w??F???P?????pt????????I???{???G??_????md???k!1????L?+n??&?Ct?I*?V??????d??}X?2????o???>?????>??vn\?R?CXy?(]c;{x?????N?s???Y?s?????z?Y???A???a?R9??????????q???-??=!??`??K?~??X?????~???L?=???}A??????Y?q?VfAs +?;??G???i???l?7???2??~B?*????W???????]?K???`??5]/J??/?????~ 5??g_??G????Wl???m?#(??@-?<?t_V>?bt??fVksm?w???wx????@a/q.??6?'S?"kc?s????b??3???y? oh??l?????9?y? +????]mc?{8 +A\???u???{:M??????o~J/W?????p???????k???????(??yP?p?(k?VO??{K???:?????@#???~?<}t??????,?? ???A?U???w?L??x?X?7u???????LJ??????7@??=3?&l??^??????lgO?K???????|?o??n??j?>???1?#!??4?z?w???}$?eT? Z?{~????J???????Mw??C?? ?A\?w????v?dbt????&? G?yJ&/~9!?? ?*T`ka???6???u?;CS?????B???/??Ce????????1??8??q???c? +??? ??cx@ ????tLL???b?[i{pv?G????}?R????Wn??]??d???????`?P]c??V???????t?dd??\??[????????_Tz?'????q?_m?_?h??j}Z???vc?:????ex?4jx??="/z????Y75????????S;?3?>m=k??t_M?b??n?#?????????nK? ?????p]?}~?-??v?cf??a5eY?ZN?y???_W>?t???zD?;q??o?2d??J ?@??=?U=fO?????$?Xx???^?|??R?I$???I%)$?IJI$?R?I$???I%)$?IMN??'d????.?Q0:???????>???}U?{???y??_?s?w?t?}k???VrzQ???g{\?N????N??z?~??}b?v?9?O?je??????0??????X???5?????_SzVB????????ix???D?;?1??tF??U??R?|_+?V?F}W}?????{n??\?3???{??voC?????T?9??? ??}r?X??7??N????\A???y(?|?????0zX?P?ele:??G???\@Fzo8??y+?\$????'?????F.6S2*e?i???^m?KO??????R??~?b?W??#Y????w?|u??q?3??l?Zf?[?? ?? ?????????o??$?:???+?????w???fd?@+?\??Q???????*???V+???wy?J????? +?:? +W???3??@??+???M??FN?O????t????3???"H?b??????????=R??VM?:?B?1??hB?O?=+??:????/? +?+???;]C??M??u?6?j7:?2??5???A?}?_GQ?We????B|???#?#????|?x?? ?}q????????nfF???is????B??_X?l??E??/i}Wd????*?]??????b_????????D +9?l}Y???fM??s??n??b???????w??OW??Y5&????o???e?g?}c???????uo#A??=????Z?????nC? ??E?? ?z?A??????d?ce???k?| I?????>??q?????\??c2??u?C?F ?b>?d{x?z?? ?????(?81??\??????I$?$?I)I$?JRI$???I$?$?I)???k?kO? ?N90-a'?????Q?nEY?m? ? / k?d?????_SzwU? +??9?l'kl!??P???8 at 2?)???x?7??mL??kg? ~U ????Ai?8^U?:M?^??P??9w3 +??j?v?????;/?}[???????^??????{?x ??$ O?}??? +???M?k???{?!xOL????f?? ??{?????6????????????\??i?r?w?nK?8??<|U?\;jF?]??Q?o???F?(????}O??????X?C!???{???t {?}d????^cf=??C%??X~??M?/?N?2?mI?TGI+???_Iv?cK??"Q?uO?????4?e?>????c????]???N???0?n?v?????:?n?<2????????(???Hc??9? +????:?R?f>i?f????0r????o?X?U?:?????Z ?I??dF? ?-"?D~??mU?7??????o??c\|?2???k??6?)?p?3?$8(W>?a?J=X????E?U??J?>??=@??*??????D?>???:u??a?c???&+??e}_+?.??cn??F????? +O?O?GA?v??{d????%??;?t????>)?????>?}p????8??L?i9?}&???CQcj??u +??z????C?_^7L?????M???#X???Sk/??Ve?49???Z_E +uf?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)K?????.?? ?W????????}b??p?}??#????zo?R??Lw???/{??D?x?p$v&Q???53??X?ew1????-???U2:?7`?W???R??????^>???Q???c?a??l ????t",?F^2??I?????k??????????1?c_w??W]??y?h???]>???,_??'0?4T??H?Z?]???????+?s?t +???;J???????Z????+????WUFw9:Q??FW? ???CN????o???n6+?P?3?8???~??w+?R??\?_?u?s?m???cSn??{?a?|%g?A?]?#????????s???|! {??_?M?&???I5?)?????????_pcm?? ????G?=?*?^&>OX?g???n??!?L????k??w?w?O?U??C?U???????????????X~??c???Y!??(h ??1??1????#P +???=Q?:???O????????z?K]?\?? $I?j?H???O?u>?u????9?l~?$wo??????? ???)?????H?&P;?5??>??P?1??Z?}/???["????U????k?????4~???~???/???Eu]P +???u????u???X:?Mc?e`ptv ?Y?/?/??&0$|?????(???Zy?J&??i?>;??????<????????c??f??X(u?6?? =?^>-HkdkJ:o???K??x????n>m??y??????p???T?????????1?C%?:?Z?$???*=?M???/?9????w????+??? M??N??s?%???1?????H?6?%b???cF???{?|?rie?7C???v8`,??gYZ?Q?S????T?\??? ??z??$?tH?>N>U-???S???d?EA*I%????y???q=?IL?\?L???w??3?0?}?@?????D?@{???vRK???_~??,??g??? ap??7???]? +?S??c?P????~) +v?GM?t??R????':?M ??x??(??????? ?}`?"t>`?_???gI?//'??e??Uao?7gt?~z}??]C+?weY?!???C?f??(???_?T????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I.w??|????~??y7~s*i~??G +?B?????1?????????? +E?iGM?t?LH?` +I\?P??U02??nC???9?????`??J??V?z??.??leY?-????I?????S??3 +?m6 k??+???L??????1.?????Rn????}? X }>??O???7U?S.????71?? +kq??{mm{?2?8Z|D?W??q?6%Xvq?X??E56?w???%?i?G?DA*I%O?u~??q?OP??V8?u$vh??5?????,???Z:O?*?????mF????k?En?A?I.[?????=3:???/??xmd????O??W??h????^A 9??O2??mz?????Q??/?? +j?=??!.??p:???0.m?L7?? ??? +??FnVW??s_K?=V?xwM?/?O??_??????Z_{?=6??5????_???KN?k?$?I)I$?JRI$???I$?$?I)I$?JRI$?????????w?\????????????????)?????eO?;PBO??6???P?zfv0@??=??c?$? +?>g?'????K?t????=?9???y+?P????o?7????w?#W?????V?S?]??VE?@{?&?L,\,v?b??h`???"/s?{c?? +j?d&~? ?}e??}$???????==????2??.?C?????????[L???u???G???'.??C?s?? ?x? ?L?Wb_Sl?p?????? l'ZJ`G?R??bL?M???]?_Z???/????`b;?l2c?WI?0N/Z?????FN>5? ?8ky???????K?*???Zx?3??b???S????=???? ???_??>]???s??E???WL??????????#I+???X?S>?`????????]?????(???k$e???e?v??$?_V]??p?E?p1??Y?????w?I?#??6?D"@?OD??Y?>/M??f?1i?n??M????????S?')??*??>?v???;?????^6n-w?Tzlx?#?R??_?Z?m????k?x)F?????'??Z?G???~??[???W?????w?,????f?????????/??X??m????^??z/J??????^K+????|?????]f???^3e???? +$$F???t?X????????????????+X??M??9??;?5?dc??K??????;PBO??? l*[E-?V?!???G??j!?S#???F?j?T???wE{?s??????uR:A???9X9?Q????sa?k????~????W5?G??3F????=3????`????`???5?D???R?D?????=C??g}U????O??l? ??+???#????,ffult4 +?.??~?}[nW??N?dn??m??Z???????????????\??N@}?[??>x??-??I)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?X?X~???????I?h????.?????5 ????`??\`MN???mz(???$?U???Z?Z????d??????g??_g???s??GM??5??Iat?}?????M??[??? +?H??u???d7;)???!?N????? +Y?"???+???[?p???]?F3??l?&?Rm;'??}???T?GM????2???y-? +Q?{???????M5QX??6??? ?SA???????kh?r??yS???????eo???#?%3I$?R?Tz?Z???]B??X?y>M?OE???w???+,7????e!???Q?Y?="I,~?????_c]?o??}?7??o?_????Yg????k???y?l?h??#??U?Ui??+?#v????P??fcgdu????;2G??????)b?v?%?{i?Y?Hu??*??{\?????r?8??^1?o7????z?G??d??z?_?cA?????u/?y?{? ?? +?cZ??f???C??c?Z>?g? 5n?X?!??~ G?tN??:U??P_???.??.n??? ???????-??q???ys?c^Y{?d.G? >????j:?zv:???????r:5?:?n???Y?????:??o??]?{j????8j????>????]?FY?2[??(???_M??? ?<????&8C1??$5$k??N!?3????S?Zc}`??L???c?@???`=?#^aU???^~?eed???v3?lk???Uw?GY=M????? +??!??:????????z>?U?^6A?L??'? +~??z?S????? ?co?N?.??t????q?/Y??{ ???H??q>????l??:?N?m?4??v??? +??#??]C????zu}7??>?????Z???????gI=K?v-??-???e?M?]j??????Pq?hq?????1?+?d|A:???'?&???%??_WW???z?k1?>?P{?iD??????\z?A?????c??D?A?_R_???u.???????1??D?/?Qm????R??M??x??%???x8???/???%O???5???????!???(??4??h%??Q*??$?IJI$?R?'L??RR?&?)I$?JRI$???I$?$?I)???/???????^=3k\????q +???]+"???W0?????0?"J??????O?)9}+#/?a????-k????]??_?]S:??]???x?W?7????xK?]Lh??Y:G??'?z???c??-p ?"???}]??V??n-B???1??q???????fk?Y?y,??=?}V??n.=?t????-?e??????:?????????2k??48???$?>GU??##?d??}]?]2?:???.?8??G??g??????_?hs????5?N???? +??7???llDw??yWG??????u[2?WV?`????7A?+{?t^??Q???]n-ou;??:??s?????T????}Y??N{?6???&}?S?]??6?FK????9?ug?????(??k??0??_-???y?????>ez2???{??????????l?? ???uo??}l?? ????_???_?WK^w?????S~9u?P?K jZ??w?~??????o???.l???O?%???%?<^s?_?????x+?? +??W??P????? K? i?J?JRI$???I$?$?I)I$?JRI$???I$?$?I)I,???u????{[E??6??????^q???o?W??O?&??iy??Z?6@:Y?i#K?????!???(????{A#???~?t???=<^??:~1u?d? +H???Z@????yP????#*?????k??^o???????^+??9??T]?v?t???w]????W?????N??s? |?@????c???????;?????j?&??3H}?[_??]?????/.?????N?????2_ss?S??.!z}?mlu??,?????????jO???$??3?l2???Q???!????M????Y?GL?m????x?4:?G????)??'???F=C???:W?????3?M?Ue?D???'?et?i8???o? O?????)@?P???Iyg??????t???:???89????Of???gU???W?ss???qLwHj ???????>N?K?g]???/?n??m@???? +??U??3??7 /%??cc?h<6%!? t???????>??CI??/??d????b?&??YYF?L?C7BQ?t?????Q?l????O??(?:?V6??k5k?p>GU4???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IHo???dR??x?z???F??_????:+fM;?uM +????}e?????a????????I?i?%?????];???k5?f???x?)C????_?????]g???W?cC?D?-??;????~??YX'?c?A5?G8??+???Q???C:m?&????D?Q??(Q?????,????7???p1??~???WV !???t???[??_V?k?7b?????,N??)z%?*???????u?k??OhQ???:????Y?4Qs?]??q?>???$?????P????!??k???O?6???SEm?^?a0?^?5q?!?X??+?;??|?dt?c????C???????????ca???{???d?W??u??t????c?L??#?lG0??`?*^h?d???????? ?EW?~??^\E48I!? +???Z?z?5??E?f?;e???5????}Q?????fsX??dW?a???E?.??u?FNwS?y??kv???H???p????J??????????9y]p???s? ??k?|V?E???????]s???.?Se-??S???z?/? ??'?:?e?7?G????????i???G??>?Yg?q?D?[DZ|w?wNM???????W???????u ?zkz?U,??O???w6u_?c??:}x??X?]??~??????}T?????~??&|????? >hH? g^i?,????W[?_?????:FwN??u?-??????q??}{???Z???VM????y??W?=n??????b?{lc?>??*_W???:??:??J????&?l;|J4I??q??N#?F?N??K?'?r???m???O??xs)??? ?{B?U?y?T2???i???_~?m?/"L;q^?????& +7p??@?>q??t??C??.?I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???????p?I??=S?t36?p??VKE?yi$yAIO?$???????g???)?????l??O?E%>???_?{????????????~W?U????????K??????????"??=?_?V??t??RS?I/%???+?*??n???_????[?????IO?$???????g???)?????l??O?E%>???_?{????????????~W?U????????K???;??7????? 1?j????1??K??c????? )?I$?R?I$???I%)3??N??D??t???%)$?IJI$?R?I$???I%)$?IJI$?R?I$???C?"?vo????.0??$??>?????xV??mo=?F"G???2?&??q?????I$??I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJL?$??I$???I%9?Y.??`8]G(??8?,?;??????7H??????z?T9??n??H)^????O?n???[S?y???X]??Z?T??l???Y^?????)GI???vI>??C??z??????wJ??? We1??'?G_??]0zLfEd]???qk????????VzO^????e???? +;c?T???_??l????~??]A?-??%???t????????????y???????Z?????wWO????|?T??VnwQ???????>???y?A??+????W?Uv??89?c??????t?~?gZ??9? +??q  ?h?t?:??@?'?S???>_??#??Y}??u~?^p^?2??o?^?????=:???e?>Tz?H??86`g0??9???GI??5?a?T!?????HI???(?w??H??~?>{??>???????]F?????????u??????e???9??_?~?t?????? o`??qi#????g?u>????O??[Ck'?6<????????g? ?"?_?8?K???=f?????????????-?UZ?v???n??/>?t?????_s~????y?????F~%?y?nic?0`???#-vF??"8t???Q??????/? ?a>l?????<+?????#??+????`i{pUs??S}PUp?Z??????bt{?5U??w???q$??[@?;???w*?`????|o?au N??%??.?_?????:?W7?:O????S?1Mc?9?????????^?????????I??7Huo?L?2??????,l????s??{????J??Q??????7?I?"B???z?W???8?8????????5??????U????W???h????n???????W??\?\??????hk] +???eU?S?x??????????????????????????{:?N?(bY?[r???J?????`??[?????? ?M?*?_??}O?????z_??}O?????z|???W2???O???? ??????5?A??(???5[???}???+j?????}???+j?????I5O;?????????????????????????$?????}O?????z_??}O?????z??IO;?????????????????????????$??????#?Y ???1??-m????Dr???c????????????_?m??]w????f????Jz??I%)$?IJI$?R?Bt?R??I%)$?IJI$?R?LHh$?RJ?????W??t???KltL???4 [?q? ??E??IrS:?oU????_?^??>????!#!d?b?2DH???I9z?I$???I%)p??j?????q??E??#E???O???v?s.iiIO??#?t??7??<} F??z??n????K??mc??y???.I???K]K?l??N?|??N???:u???&??Blpd??$???wj? ???? ???o7??YW??c<-????k?"?f??%`?$?Er?I$???I%)$?IJI$?R?I$???I%)$?IJL????I$?$?I)I$?JRJ>?a?K????)??))t???'?y?_???ed`c?????b?e?< ???f?K???????Ek'9 $G?Y,???jK??=v???-?? +?b?hs???5?*?? ?l5a~?EuRI?????????o?8???Lm??'`MvS??`A8N???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI(?H??r??)???zf5??FUUY??x?%??D???????????X??? [?+&????? ?]'?3_Y?????RS????'?????o???{???????z?/?f?????8?????o???????????s?????~????:??q?????????q??)?5???.???%>??{???????z_??'?????o??"??k?7?\??_??}f?K??qIO??????:??q???????s?????????????????3_Y?????RS????'?????o???{???????z?/?f?????8?????o???????????s?????~????:??q?????????q??)?5???.???% >??{???????zvu??c??C??E????!??k?7?\???>?}X?_U?)?-???o??TN??J~?#?????]?g??k??} +.q???R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IH???[?G~B??_4??? +i?\?@p?Hv??2??[?G~B???c}u??Hmu??8???L???K?O??2???????IsZ??^???/z?/~m?WN??=?*?:?????x&? ?x????c.IDG?#?]??y?2j???? ????_??`?0?[?????~?b;(??{?pW?1]NG??Sc?????g? ?????s???h?????1?k%,r8?"%.-J?[?$???1/???K???????????????s?n`????6\?X????T ????I$?+??I$?$?I)?????K??????????????Q\????{??V??????F`o?????I$?R?I$???I%)$?IJI$?R?I$?? ??\~U????qFs???8?I^Y?????? -?q??*?p?x?Mt$???fL?x??rN???????????E?R??t. +\s0??KE-s???`n????0??v? z-f;L[?? ???G??????z???&??????}g??b??+cD? ???J??oP??QwPqu?K??%???Dc,Q5]Uz???I(???I%)1 :????7O?????? +?~??}???c???L???cc?v?O?|?C?H?+e"*?e@??wR??[?m???'n????G????Vk?????.g`?\nFgT??7?d??3-?Dx???u??_L?? ? +????7;?????a?jq&??{????????W?3??T???????j~SK??>??? +X??.EM????j?{?O??????X?}MZ?J???q?????C?TTR?"A?#?zjw]? ???I?|??????I????%?g?e?????????uTV?nx???s?`?????e^i?)?sLOiM2sI?????????/?'P?5?????????????^????PBtR???????????K?????I????/|I%>?g?e??????????2??u?_???IO?;?????????$???.??Y?s???}?3?d;*?X?M???? ???????g?I^%?+??mW?-IO?$?I)I$?JRI$???I$?$?I)I$?JR??,??????SL??4??D????_???????Nk??]?v??4V>????~????;Cgg??k?oT??G??m?`ld8??p?_r??{??2????dkc?WB?r Q??4#?h????=x?}Ow????u>?wS?9?<3q???O*?q???!???h?g?_?=k +?X?ku?0????]?*?X??????r??? Y??B???????????1?? b&?G????O?????#?;)???sHy??Z<C?z?:OL?5????(???O?r2q3(|??x,?????u_?z???L?7??j??u(?G?!???k???4??K?u?f??t????????????)?c??ipM??|????V??U?????????Gf]??2?B?=?????_DI$??e$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR???????)?[????"J|?o??,_?7g?r????S??b????W/~IJI$?R?I$???I%)$?IL^????0??$?.[??y???>?C?????G?au??????c'9???`tZ?Vz7G?????X???"??0?@???1?1?q?'#???h~??r???XzYm?k???D????A?We?z?'S??7??m???|??v??c\????%?,??g?r:o????$????vk]?D +???c?.(??F6hpi?=j?????.?????^??k?u???_??S??K????^??????/???J???.?????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JA?c?k\?X??t+???E?=lQ? ???5???H^?????Z?02??????-h??????v?x?i;???>0?iC?0??? +???G???_D??4P +????o7??`4;.?U<O?G?????Ohv^?????/??S?no? ?????????\?\?_??6_nU?t??GIvFn/^??9n??^?c?as +?cyGO???m$Up?????1?????j??6??o$???????? +?>?}[f?? ?????C|???? #(???#?? ?3q?~?Q????.?_????]??????oN??[????-?U??6x???Z?e?v?#?nm????'?C/1????=xOC??t?????c-@'?u?o????????[?+l????{]?2?S???S{2k +??sI??i???}!?[k?kG??}?8???2F.o???7??Lo??V???6??O??`W?,????fU.?h??c???'?>???????,5?C?q?zg???_\???cv????0?????I???u?#'?H?/?/??x8?????5???????????\|??{45????_Q?WQ?=F?;0 +l?@??????????c2&??^X2??????p?R8??0??qO +F?L}????_??a????DR????WT}?E??P?D?&??????_?6???%)? w?\K~?u?????l?p?N?4?;?a=?Dt???p?y????A?]?F??,??!?`??z???&????RW?????[U?KW?u"?2?5???W?????[U?KS???$?I)I$?JRI$???I$?$?c?g?????????m?5X?:???qqi?Y????a??????E%>???_ ???0??_?m??_???a??????E%>???_???0??_?m??_???a??????E%=??????&F+???R???*???~}??k]??? + ???????nO????[?????}n??8?uX???B?c7#:???ys?K.N?Zv:??L?1??gYauy??h<.????U_????Y?d?????B?\.?????oQ?&I?N??)???rs???????"{? HH?/???7?d?,?1?!?r?8???????????:Xh?-6?;?rJ?pz?3???=???n5`????v??#??????s?+?KY"?v???.'?t|??~OI}??>Z}?:?o11?b???O?o??d???g?=oQ??_H?n&.`??????c>?c???,=????a????~Cq]I?{Yh?4??/u? s??@p? ?XL????;?Ya?c?? ?3????]?v??gP?mtZ????t?S:fO??G?9??W?????????1????p?.W_????s??2<y??d?????\?9??r. ????r +~???@?~wH????????yZ +?6k?`?I$?J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?? ??O?SP????T?D??'???(X??m???????M????????\??%)$?IJI$?R?I$?????v??\O`?1???3??{1???????c??c#QT+??b?????7\???H??^????Iv9????7-??h???????????x?t?????Ra.??????`??'???mp? ????M???2-?[Z??@K???gtn??:?????W? ?j???tG +P???Q?)dG4? ???_h???Cd??`s?Apo?Q90??F??k??r??&????????6??^?c?kgS?S^u?r???????? va?[?DD??`u????{~? ??Fx??35?-?XH??7????I?I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%?C? ?v?m?????y??p???Y???k???3!{?W?k???W??=?wY!?4?y??J???>???h:Y~??yn????V7:?7?^E?z???v????8 +I+?>?d??}^?? +??S?Y +?Ug??D???qqY]??????C???? ?x???=?*????32C??? +s\kc?? ???&VOE?kU!??yx?u???G???U?????Y`??xr?:?t???3?k?&[?\?d??????3x?c?N1??v??8?????lw? +????????;sc??A?3/?v;_mH??%???[w;w??)9??W.???=f??9{????{???wS??????m#?????M??h?;?s?????9#??E??-?Q????NF<1?????u9:?????'I??_g?JA?-??XXL?)??%?????????^???^+(??M????? #?Y?????e"?^??????? ?j???%B?????x{|ZeM_Z:???????????[+W]?,???????????K??????????????QI/T?I$?$?I)I$?JRI$???I$?$?????????%K0?qt??W???????Z????lg?????-???????hW,???}?ql??K????????}>?T??????????-=?J???C?????o?l?~??B??????????????????K[???????]??\??uP?y8L?z?1f?"x???{6:7?????!??????Tz??^?:?j?VP???}B\9 j{1?0???t??`?.?AZ???GN-? +????:?p?V?}[???6?????K??Qf?A?Z?}v?????????h?.?U??G????-8??-?_`?!>#wu???U??.k???A$?'?TL?xe?K????8JR?W???I~wL??????o#{?c?????Y????{u7?T?=?????????8?;???_?}]w-?_L?????????<0??Y???R???w_?&\??,?k?+????L????3?euW:??????P?9?wt????????z>OO??I?V??8"8s????X"???????s?3.)??%#9?J?h? hq????6?X?=J??z6%?]|??%?}Y?v??f? $?q??v???????:?Q??8hc??:5$??W9?S*???????'?.[?W???yn9 ?,W}????u^???!???1,?X???7?Q????dtc[??=?????Ug???r???g? ??s?d?qJ`??v??G??h??R?]m??@q?o ?g?FN=???s??w???]>???H{?????????}d??m]:?7`t??;"?D ?:j?a?=W?}*????s???G???\????[U?KW?;???~?*UF3???a^7?+??mW?-N R6I?m?d?I$)$?IJI$?R?I$????????r????M??>???G??W???F/??SN??r^??>?,??lw?eX*??.q\nW????a????ly;FE?4y?O?9KQ???R^????b??:WN??????RdL??X>????gDk?u-n????W???:?:?Q?du,??p2?J??????@ 7???}\????Xqn?????- O???I???%?4??V?2?{Y????b`4}??o???3?Wj????" +fhF?@???? FQ:???_V :?QgK???[?????j??p??]l?h???a????U??f??oJ??c8??-x??3/????YZ?;y92]??;??C~???????t?i>???//?g?M??%??>%ja?dc?{)?}????%t???Cn?ns??=?????:A&%?oR?;~????G??q?Ug???L????_??1#?????b}? ?7??7????{?????P?????????R?Pe?XHc??L80|?+?;/??????\???&????? r?????A4?n{X?????IT??:SX??H?^o?>?????)?v'H??8>%nuG}M?XE??????K?<?????1?uX?,???????q????????As?cw??????UEN??V?.q???V}a?X????k3X????uh?$?????????_???^?l???????Cf??CJ??R??<2???w?f`???slY]?o??'?:????ad?g????bt +?H???}??G?``? +ku??~2??o???U???>?????Z??xS?&???!G??-? ?x?????'B????g?~?`?Hv^1?/?u}?c???WP?@??o??!y6?N???ux????????tpO?????_n?7?dz5???N'? +???K?? $5?ys?)JD~???y??????2?:??n?F1???????.o??[??/~??#B??%ie?V?8u?????k???]?^?????]??4U?,fC.?{???0??l??r??????b?a?*????9|\ n_/??????Q6?tu?J????3?mf??}?oioa<?_?;???Jz???e_????|x??_???q???gv??N??9*L?A?Fg?[c:p?@ b'~?Dl?t?V?>??fd?e?P,}?v?q??\?Q??_I??, ?+ ?.?2?????tn????? +????YX5g?L?zU9mv<1?y%??1qg?b@??g???7%c1'/ ?o?????to???l?????8[?3h?9\??w????n^??>??T?)g??e???r{:-?>08?????I??????1:?6?`???????e/a???8V????n????????"????????m???5?K]??%XqB??e`???P2?@L?? g?L???.?^??I$???I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI ?B?7?f?}!?i?IV??d??]??2???X????Z??u?ua??????????/?b??p??v;?:?????????H?u??4?????7??????G??t??NGp?Aq?{?u$?D?I;?????w??/ ??????VO?'????ml???4?5[]G?c??????ce??E?g?wH?9?>n??;{]^????G??????nX?h????k ?W???]??+??[[Z???@?????u?^?M????s?^a{G???????N?????#?c}]8=V????q???-???????x?P;?? 0?g???????Vc???eE?-'k??j??k????>??o??l???q?~?^?? q*Y|26L&nG?FZ????&?}]wmU?2?$????? +?L????@'A?5X???R7;??W??60???L????????pp??? +?????W//?"N???N???\???.w??;Cx+??H??2??eui???zF?}/ ??g?U?l???a????7??????????_?m??]w????f????????/???V???X??3??EYn=RI$???I$?$?I)I$?JRI$???I????? 4rJJy??]$etk??S}z???W?d3?????[H>?\G??/G??]:6=??V??[L})? ??????s??c?????????HW??????j??$Hr#???????g;??caV??wj'o O /????m?:???8?r?????{^??`0?5?A?"????????x#U!??$1?zeV8???1z%???????K???%??????'?Y??????$????p??N?}?YN%?????2??di??Z??9e??5Gg???_??O&?? S?R??r????_????lw????&H??dc??gdV?S?b? ???e?]?????tK?L?1?????D?j(?=??????k??o????FKc??j???fu???????@cu??,??S?F????????????r+X??5?hUa??F? +#?,#???Ln?tv~?}G???????'*????????p?_??tN?a?S??;p??6{?e?}s?????8??[?,? +vy??,???????vE?q.?%IbF?\??B??=KO??dC?????q??^!?Y ????8?v??%j????????mv?kW?}Q??:M?i?????<',?.#?P_?MG71??X +?'H??^c???k?iX???? I?]??=??J?F=E?.q??e?p??????????8Fy???S?u^???k?y:?o?I??~?)d?]8G?nO?e???M?Y:?.-?? hox'??O?S?f?uYTbY??5??|???#?c`???9?s??? ????????'??6?c\??q?{%b??J????c?L??{8}??+?????}??z <B??z?wK???????d???d?}s???w???haU??W?????f?=???r?FS?D??a?????C??????N??/?}I???_R?????T? ?W{?????uu?????t?x??????{?????}????2c??S???????>?????o%??????????y7a???>@???????'??d???e??jC?@?OkB?? +?auL??o?????????,zn^7H?76?N??o??m??g +??oZc?????'??(?6=n?'(???2??5???v ?R-j???7/?&????O?V????Z??????_?6???????R????I$???I$?$?I)I$?J~}??????9?????#??+??????u??_K????_I???.???????T{??G????.`1:????~???7Ue8??(?~?#????:o?N????? +?u?I???9??????-??'R?>?O~?J?6?u????Yq?a=?wN????s?`????{?}]?];????z?V,???~i?:??????????Sd?5??S??I????H??#M?????l??,??:?4?W??????????$h40???Ns??.???n;??-????????????v?&?GV???uwO?K?F8??#?]????9c|\7?????ksr?'Q?&?8????9#?g??[zf ??/???,????X?oq +?#???Z???????u[i????i??Q{?9!q???#~????????????U???N?_????#??2:FM?;,l??[?9???f^?v?X??o'?W?}r??G\???c4????????y?n- ?2q????9?FV?^_???????c?? +?K??%????Tx}???9?>??d\Is???Z=?4?XX?N6?xG???]?Y?Bv{?lG????s?vI??iW??UL ?3?>?F?AM?? y ?,??H?o??? }G?W???V??5))??????W?&/P??x??~?K??I?M????^??s?*6>??ii???as?d?}?E?'???~s????W?;z]t??2j??[,?i +?k?G???'o??:?_F????]3+?????c??qk?F??U???????OV{?'?:K[??s??c+??>????a???t +? ??? ???V`????>?)??6?z{?oZ?v]?v1??Sg}Hp?{:^[?tC+????WX???;?x?vC?WJ??E?? ?A????J?} ??nFd{?{?V??{???2p?\?a#@F?f??=/?_?z?????mZ??_???O??]K{??H@???h???e??A?6?7l??Q???zoT??????`#???????*???S?c?mo"b????*k?4?G,????? +?l???U?_???7d??%?C???f?L??D????????????`%?????"?a?R???u$wB????RC??? +?+??60]g?>J?rF)f?k??a?????????~Z8? BQ:WH?]Z?1q???>??F??x??N?^??????F???QcK?a?M?6(?G??Y?????? ?uuS??||?S?G??} ^w?Z?H? ??s?x?L?D|?w??#9????%?9?w ?>}??$?&'_?F??I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$????O???5????\;??o????????e??x$mq?+??????? ???]~???2v3}N?c?-V???T???? +?<????"q?????????fA???6b\ ?Vyb??????:{??????2?ZYM?\X??H???k}R-.%??O?>?IK??a?:Lh=]J#?<d?&?2????Jde??R??xk?s??Z2lq? ???S ?O?X???u?V???P??b?l}u,? ??}S??C????????]?M??etn?????_Op?G?I?uUN9??y?!????:?}s?????M]G2?V?`n????????0h x-^K$?#,?2:?7?;6g????2_X?#?-?:C?????????2)?"B?1?mU???r~*6u F0??????c??(~??N!????O????K??????????????Q\????{??V??????F`o??????$?IJI$?R?I$???I%)$?IL-??ku??1?\x\?V??g8?D?q??4/??R????i"?{????Yt?1???xT????c????s#?8??||_??}?????m?J?:?zwL???2?+??`?????????d???g??Xl????^a?z?WT?.?*?Xf??c?8?x +?n?_????8????p?[???^?ki?Mm?Y>???:~??V>?c?\???>?kC???N?xsW>k???K(5????? ;+???3?q2????1\???xxe?$~k?x?` +]????1?j????l???~??K??@???MVW[?????#)?@A>?<uC????????f??|?He?G?}?b?WV6?A?Jj???W?C +????????fnfeLp???*ov??{?O?????????????#??G ?????m????0??G???}?\a?????}??{?}???E_?????? ?'?7~m??&v??????Y??Xa???M`?'??????????6??w9???&y?R???lf??l?.??k???0???n]????k`?e????3}??????zM?O5?bW??????W?t????EU???Ki???];??1O???+?dZ?V~??tZ7?,?x?%?MY_^????_?0Hvm?Wv`??/??^)??; ??????????+;!?\??-$??k$?4?t??8P??,l???]u?6Yi?7?C?????uzLn??Yg?? +?B'???^??????9??t??????,^??g???g?qi ??????????n????4???????8??/????????????cK?;?V9_?F]3??;?25??Jl??@!???|?o??DI1???W`?1?????kZh?RI$ +I$?SW????_?6???????R???O?M??????????????????I$???I%)$?IJI$?S??G??W???F/Z?l?? +??km?6???%??????9?????VEN?? +x?1?????q?]A)???o???????????p??5??J?.??>?Y??^??-n??Q"??????W]U?c@??&WJ???z]?70??Z???ON]?]3%?o?=F*k??k ??U?'8??x?B~?L??|17????M7u]??????6?\??????v???I?l??#??$???h????e?,1i?~H?K[??/?????1(?(????C????z????? ??d???W?5?bd??}????q ????p?8o???.??8?V#S????G??'W?6???[[????Z~+?0>??W?????f?p?g?xKZ?Z?gV8??0???__?oC`?n?0???! ?????s(?? z??????(???L=f???a?5?=?0 +?????K??t?+s2?????{??J??h_???^??m??"=??\??\C~?u?????N+;3iv ?z.O?G_???????e ??A????/???l???|\J+???{A.?4???? ???????hb? %)???f?????:?vx?/?G-??i]???K/?????????Z?>~?#??????????j????w???t?\}9??% +?<$O???h,?,3c??}????\"@?N?I$???I%)$?IJI$?R?I$???I%)$?IJP????T?E4??[?IO??U?u?^???s2l-i1$i%zI??vQ????MW?s=6?A?"W??W????,?c-??9???4????????K?9Y?c1??.'?)1?q??(>t??W??_L????UG!????n??J??s)u,6?[l-??41??xf??????^M5EV???f? Ew??????=?k@?M????????"o??P???J?jh?x???TAxk??|?n???s0j?7V????k???????n???I??q??7????????{q?????sC_">EC ^?(~??~lp????!?t1??? 33b??%?n? ???????X???e????v?d?\7???X??O???????a?;?}S??1#???~??6?,cG6 ???????3?drL??????>?}U?.????+? +,????d?a???h??_??a??|?@uuT\??]?,??????8?{?0q??P?~????[??Nj?A?5]???s?? +??v?4? +?????s?r#RxA?huA?????60???,i?????L9x????_B{S??|K>S???r????G???k? ?e?oi?????5??k?X$?????a??,.?????0?~?????H???-???9 at J3$BQ?et6??9???I??0?="????/??????NR????u????4??z?X?????VGN??c@a?????e3??S?vk*???h A????|.??:]w?t???c%? ??4??R??x?" ?[$?S?o/) @?????V?????????Q???????;?}N?8?O?];&}???0a????@??????W?????]??[?S?@???S????DG@)? +?????;u?>?????z/K?u???e#??_?^X}w?54?)??$?to??2????g?Z?6????t?W???k'???X??}['???+tY:???}`??9??[a???`?????{?oZ????W?p?$^????S?iFR? ???;c??+???6?xL??'K????:-@? 7=?!???}R?m?-?v????y???>???k>???7O?L/mg?lx3?2y???a??)~? c?V??d? ?'????=?>?^'gN?????g?\,y???c?Z?U??x?U+??????n??-e???V???_b??q<#?GF +44j???X ?W?}M??95?W.????????~??dZ6???A??????9;?b2???1? #?9?>cq?8??#o/?NY?????B>vus????/???V???X??3??Er???????[+W]?,?????????I$?JRI$???I$?$?I)I$?Jx????????g?c?;??{?}`??79?g???h?????+?3???????WkH ?U??S???_Vn6o?1?>??????!qN?U??????2?[?S?k4o?*.c??8g?V%?=G????? ????Q?????>?B??O?f^?j??????at?s??=?l;o????9?_W~?d?b????8?w?;?????OF???????Sg??1?o??~????rd?d?}??[??????z????[\k??z_??9L??h>????|j??????h??????????;"?5?????D6n?? Q???????;?????fc???c?k9!? ?.???@ce?xV??? +A?=??E?6?AD????????;?1???????????[?Y?Hd?????0~?8C???H????_Q???`_?G?????U#]????zU~?~??E +??_?!??3?Js??/??????D????m????p?????????^??U????^?_???"??G?8_??E????????????g????+??*?q?pK??????G?8_??E????????????g????+??*?q?pK??????5?_???[?}?=?????????? ????.??????4? ????J??o???o?h )?I$???I$?$?I)I$?J~}??????9?????2???6[k?+gQ??jJ?????o?,??? )?Id?????e??xK?u?[??,??JM??G?67sEd??\U??= +?Y??[??w +oc ???/?{?}6uw2?Z??pW%??tZ-????\?????wX$?iM6$&.????qFR??.??? +Y;? ??m???KIj?>??*??n?JN??>????~?]?>??X?~?&??v???c??x{-ag?L??Y?#,G,@??@??"%?v+??,?F?A[?}z???????Yp?x?[????W?c??~?2?4}y;\;Y?QKw?{??U>>J?>??sG ?Q?bC ? ?????????.?S?????_Q7bT)u .a??????3+?????Z?\?????8??t?c???????_ML??XG???~????[??????C???????!??0?o$5#??^C$pg???Y1??? ?+?????^N^nV~????YS????B?????:?]_L???Z!????9?c8???p2 ??#?????{??I?BQ#a????????1?n&Q?zV?? +V_?N??Sp?????~G????V???$??a?<|??>????qV-a??Egc?1?C??#,$????z????d'?\q??Q???T??s??7?=?????O???Z???)k??????X????j?:?`}??U;?rz?Y??????X0???|?}?d'?8?? ?????\?#?????t ??3?#M;??oB??OJ?C ?6dW>??ld???a?}T??? +v0p>J??9/f?N?????O??F1c???&y?????,?>*??+????43????}????4c???u?0???bZ???M?Z????{+Z 'vNM?.?d??&`h???l?UMa???X?I??\?$?L??4Do@:l??????l0????)???????}H?e?????s??????.??U^?V???w??????l?_=6???????Ng?r1??????|??t^??z??v; l???x?[}O?&'I?}???P?????z'P?=??Yc?.????/)????Y?3 [kd +K???>9?.H???t????FBr? "U??!}]??_??:>S?pc}7 >$&??(???o^????X??Z??"????/?#?}X?:?u=? >?m?????0a???`??=???5?8??????0{???{??q?k?a????uo???}??LOP??>? ?01???h???#? ~???S??x?d$O? S?`??????[??c?@????7c?k??????????v????6&Ax??CeYG????%?/?????????~M?????W?g?:????y.???*v?b???6_?C????????S?]?5t?N?????gXe?j\H?7?????q?????7?y[????:?????{A-5??Q??H??c? `??YVH??E????V&??? ??eyT????????CE?????x?V????y_????X?k?h4?<,???????F??[SD???|?9??O:H?~-.le?????.??????Lk@?????E??????M????GG?%x?NM?6?n?P!k}N???/?6?^}<6??J??!A??U??nTb?nC?L +;'????t????Z???c???????????Z??>{Wc?,????????z??I%)$?IJI$?R?I$???I%)V????B?G.?c9?>J?I(?t/??u?g??????????????X\???ls}??^dI?|??V5??????L????zF?m?#?ZT??{?=B?b?E.???G??d??ZA??k??A??\1?R?}??'???G?r?DDi?Fyra?T??F?js????:?0?v???*?#I?????U_???4???,.??o?-??)?W?????9?O?#??2?B$Y??z O?_?k?m?q?!j?k?L?]1??m?v?pg?\N?m6;P???~-???????(}? ze????????qHp??K??B??evmy$????P?????t???x`n? ?^mUy?W"?,:}l?:?8??^??3??W?????m???$+???v? ????%?P???{ov 7???}?c ???2?????$??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????;???????VK???!??????????7?r?T?S?_??u?????9/?e:????????$??????_????nM?Z2N?? +????? +?8V[?^Hx?z`??^????????i??Q?C????[?t??[~??)}3N?| +a???????_???? +???j????^4? ?? +??????qo- +?_ai! ???]g?$?H?j????????W????h?sL??kO???O.#?9y?=d|??????????!k6???v????Q???^}YT^??c??w?+ #;???G??+?? +'?u?V???Z?w???j??f?p?6?????H???X??X?sp?G}F?????mk.i???NU??????`??1[??vtvX?[VM?? +s?????OR?F#K1???<1??ir\?e?x??7?]A?v +YGr? +{??j/??oA?'-?ypw????|?Y?????c=??:???? ?^Ze?,??{??E]1???}??X?X^9$k?\?`>?I???8 t??Z??R%???-?s~??oX?fS?????? ??hhkZ@ +@8^??????it?]5??p]wJ??B??[??h??? +??9?HCS{g?1?H=???Q?1???A(?>.????g??~??m?? +H +\???????S? ????????'???????????????wv???sp2??I?*g?????@???Sq??G??7{?G ??9! Bdg[???-?????Y?a??_????}???s?.???kX?xl??????N??26bV??????_V>??????qm???>~(?q!R????x????1p$&?$ddx?u??_?? "1B?/K???}$?>?h??F?????o?]??dkOF67?$?C?}l???]???`?C?????$???f e +??!C?T???? ?OK?}S???:&=?3kF?????????U??jk,??_c????td?????(?$(??RI$??$?I)I$?JRI$???I$?.g?}{??7:?+i?????A??V&5?e`??+z?Q??;Y[ 9????t$2B??M?i?.a#??-?e??????^??m8?F??R??_G????)n7Ly????????(??Xue=????;1> b????@?? +????????L9?????c??YF????7?????et5??0d +#?jft|;????????? ???4???m?:?j~????li?{??Yc?{???+$??$??g?C?|????|???F????? ?_??S?Z??????~)??????z?>K?????t ?.#3?d???g2?2*-?0s??F?????\,????????V???????0_??3)m????A?U*j??g? qV#0??pc*?D??????z?O?'=??4?k????O!? +l??8????????n?x?8p?P7????}???????lx?I????%???????,??,?V?????vF??R????;7?{????x?^#k?@`<???}?2 >?? s?zS?????WS??]?? ???? x???Z??du????9?L?N?x?Q???????????b? +????E??\?.5V???? ?=?ZU?2? ????S????)?0?IK?2????,l???????u??(Y??>?7fE\x???}?V/T?,???Ik??j????gY?bkS^Z???>*??}Q??W? ~?X?? :?$??oh?(.?????8w?W?a????N#????uz ?#??6? +????3$/Q?????Kn.xe/k`[0 ?A?Q'A??#1?????"8%?%) +?C??z???????????m??,\C??0???B?????V???k???pZ??!?:??U?z^p?j?e?-,{A Z?k?Y?_?o?:?|?????:?6 +???a????~?U???w??Ym?t?gf?/??V????\kd??u +%{?"?**.?[F???G??"?]<~??????DK?~??I$????I%)$?IJI$?R?I$???I%)$?IJI$?R??0?i????4??????V??p??0?0?????(??????G5??o?????Yk???=m?.??w7?w???????????Y<8H?+??? +|???!???I5.??????JH??4?5w+?????e?>?lo?????a]????J??X?8?????R?#q?D?=F"Z???[?qc??DQ?????K???:?5?!?z??~??\O???? ???U???Y???2?;?eb5?q??G?????:????????\?>?@????_??!?*]6?!???c#&0@????????W?????vc*Y{Mg? ?+??}O???c?????????u???k??>??T?K?}-???6?????u??W9? LHH"+?V????Jv%e?S???W???7???c??uN????7d?4?0j?|!yg?.??2????d?\\X?H??HT????}?'&???,??y????8Mo?r???qr?9y????=???1????????-??K?(i??6Ly????l??????q?j?v??1+?????M???9?b?@??G?i\?S?}m?X]??H???=7??""aK F@s?/???.\R??#.?n?z??}x????smcOPp? ?$v^hZ?)?W???re_n7Q??kk??.??*X?)??6?'':???D?????`??(????*\:????"4?A??-???m?????>??`???????F`o????m???c?????w?m]?????f?????@??Db??I$?+??I$?$?I)I$?JRI$???I$??~y?wb[?.aa????????_K?_?p???.C????}`?fV?]C??:5????????H???7????? ???c(UV^7??c4?[??-,~?^?T?????????g?c?????4# k???? d?x?v??????:???????z????3?t??zp??????,??5t?G???}\?'.??`?@?,?{q??(??x???/??iC7Yf???S?t???????u/p?z/[?yx????,??G?????Y?[0-???? +? x????\????l??6?K?>??Y?D?????R???J???y??@q ????u?z`-e??O??wJ??}?m??Hkk???????1?s2q?_???Ps9FJ?U?;-?1?$Li?5??y???Wp???U???????nf1?I?|??& ?{?S?g??????????=?i$p!r??P???4e_K???]??#?????????f?7?????r?o?????[?gR???7$?U:ys|?1?`?>T??-??|@????cG????h?G????v7c?xp??m?d?7c??hd?e?F???u?X??[?mx?5??p??0d??7?c,-?zu?K??|t!?02????:??,???H?s[?~????}G*??z?m??.{?tx?e?&??Z?:?< +?h?????$?'??6>ckl:?k?~?u[?oE}???sa?N!T??1??D??????`??~h?a?! 8#??G??p3?~e??TZ???Xo??te????op???U??{?d? >?u??#.Zd????w???? ????? k????R????^F???e2B?N????????w?KI??M??O? ???????9x?LG +?Tu??l??1?m ,?<}???T?[zQ?~_???^?d?C?+???Za;?2?a9?m?>?`d?D???????Qc?Ldosa?F?&????b3c???P?Y??p?G????Z????f??vV??a9???1??Yk?4?|????)?V?gt2??????U??? +??&*? +??? +c?mu????Dk?WZ?P??????5W??4??N?(gu +?9????| +???_u;?l?.?AcK?[u$?:????0:????[K\??]?#??7,r>??????q=??w ???@N1????z??????C???gP????\ao.s??c?V?J????xh?d??>?}`?68t,?q^dc??g?J??>??7???X?d? h?,?*?????F|Q??c7?%z? +?tl?t?:?????Ckh +?I)????2:?l?$?I +I$?R?I$???I%)$?IN/??m??d??.;??+?[_G?w????????p??+e?uo??g??)?9?????}( ???N?D??'?tX?9???v?+;$%?q? ?(? +????????????1??Hvy?ss??????\?w????d?_?q?!??~??T?U4??????rP????)??3???:G??g?y?)JB<?? ??=K|??3h ????L???/*??PY??]??`?-?(e?2R??P6*??u??????,???=??w??+? ??s'%???\O?X??????????K?S???yyM?W???????{wFr????????/?s?Y?G??A]??[#&?O?????WK????R??wT?h:?CW?????zgL?3??@????WL???D;???qc?q?J?=/???KX{????T??????{/?p???? ?u?=??????n.?A?U?????^z?g5??gu?4??*?????????n?2@??M????????q?p??N?e4 +?G????}j?p????&r?O?]7 ?L?q?g??????i]%6???c ??B?8?y??6?O?Z??~??g$???MPx >??n???????? k?Zy\W??=79??},???'?+?~?c???u?v8?,ls(?\?????eVR?F?Fn?kd???? xH]????OLb!?R????6??tLN??n?1??}O???M???????????uv???[??c1?6?Z!?? 9?Pz???,c>?????W?x?3?????'??}vt?????O?zxn??e??c??B?????[ ?+??P????????????11 +????sFnB??]?v??d??tD?3?1??J?c??r??)d,??Y?F????{ ?/Y????>}#??n???9eQmxNuMi?'???Sj????????,??#??\X????X;??? c??? +zn??]???ec?'??Z? ?x???\??C?Z??O3?+???^???+???cX???????????'S??[?V?!?!R????????P??*?????[? txpg?????NXm/?p?}#???'??0???H???w??C!?qV?u k#???%?S?t?????[??C*??7|V?J???:n????{?u?8???'ID???rFlf#h?X??j@}wG???Y9]J????(?????g??r ???}Y???}k? >????w??dg8??E?i??6/nT ?!b????I$?5$?I)I$?JRI$???I$?$?I)I$?JR??? +?z?+???'?x]Q?XWe??M.?;??>?S???}b=k,5??k|??????DnM?w??Y?1/??G??(3???f?ks^6???_???]???=?9?5*?W??ulGbf0>?p{?? +?7?/???g~????c??Z?&=.>??qe?ZF^???Y?????sn1?????-+M8E? ?P??? ???s]??8?=?uZ?l{G?????h??-?u?n???????>?\??dn?Gte?P??L?Q?f???>bG/&3??#;??.???????YO?L???d?}?o`}K?B}{?~?q\??=W??6O????_??}\????s?IGc?f??s~|?? +??????Z?N??%?,,J???GC???0*??!?U? ??????:???[?9????.'??d?f?????S??Z?B +d?+?#N_09???SG?z?$V??? +VE??Yg????????^U???%?????V?{????G;???N????j??:?h?u??????e? 8rK????k????g????????E-?????0O0?????oQ???C\;8????o?????{?:????*???????I]?=W??6O?????1 n??e??U?&??????s????^?i???&??l????$??1?'+?p???-K??;???????u????????+???/?.????N???????'tDA> ????#0???TS???$?IJI$?R?I$???I%)$?IJI$?R?|??aa]??-???%aW??fn??0??XO?%>C??1.????*u??????{?uG??????F?_x??{?B?:?GG?W`d?V????? {?>??K,p{[??k?????/?^??P={W?R|??)J'?N\R???-?????p??32^cw??yM|?? ^q?}n-,=?????_?Tdt?????\Y??k5?A+???5???o?7?????D?E?U??!~ Y? ??d????N????[cG????n???5?bX?w{?h2???,eYyT? w~Et;?y.??O?!GY??;+?8w??X????#?"p???B? +t,??q?J?7^W?[???[zGV??o??L???jg?zS??=N?? ?v{tp???(?wPS??%z?.?~)G???-???e? +?mn:G????~ +B?J[Kf?VDD +? P??DG?I$?+??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)??? ?uz??/t?.?$??q$G?T?x???????????I????>???>?g?>?gT???ls???=????????d??S??? ??os+?0q???V;x????Pc;"?I??????y????w??:??$G?v??t???mL3?????/??t??H?Cq?FY?????g??t|o??}??f?s?%?;?? +???}2?P? ?ao?? ????????Q???? cG{?}W?????Zwj?,?;?Sc??Yn~?=x4???????)O???L?(c'?????D???x^\??}2??>??s?VE??j?| ;5YY?????eOn@????????:V==??:?????6??C_?[z??z??????????c??????vh????J[?#?>Uk?p.?v????? N?^3[?s?????ha=?zoT???????_?g?W??B?zo?????Q?C??5uv??-?g? ?C???hK?????!??3?????????O?,g??O???4???!K????t???=?Xn?2?G?zZ??5?4!??7?9??i%????]???vo{?O +@?G??}?_?e?????@???`=?8 +?S?8?U??^????3q +?M?D|C?6z?i8U?&Z ???"9?Q???lk?i?}????{?8k??N?????W???k??gPp +,0????t????o?????T????]WG??x??_C_ED???x?m?k? +h?R?????????q:;2??FC yi?V????WV?hq???>af}|???x?_??7??l?#?!??????.d??8gR???#?[U????]??k?}??w?!tj?I?gP???4???]?{????M??8????I?V?j}N?/ii??6?/??R????m,x:????*?G?c? gQsA??wp|Bl?tA?Gb??s#?g?y?????EVgUc/w,n??G???W??????(????`???;???l?????????sK(U + +,???jq??N,?????y?<L??Vr?~>M?&????4?hO?U??g>???G???"??p?~????1Y???VY??9? H?l?[? ??8???^??F??????rrs? k????H????g?????? ??.??????^ ??,???m?R ?%n?#???l??&??|??R??>???W?X??[?R?#?E?s??kfA=????]?I?g???s???????)?9?[??????$?????????x???????o???<?Wx?Jx??g>?~?G???"??3?U?#????]?I)?????????????:_L??X5`a?e?`??????I$?$?I)I$?JRI$???I$?$?I)I$?Jq>??S??~???!?+??H/0??U??}^??mn???mbt?{Rg5????:????^GS???Uk?y??????????.???????q??K?W????S??El?5??di?M??????????n5,??????o??X?Z:k?Zq?????%???e?}{e??t?|8???'? +| +HQ???hU???!?0?%?t}m9E?]??`? y???V%??R?I&?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)h1?t?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S?3.?????2}?x>?$[??Q????i!?Cq??????:??????7 ??????????`??0p!W?9G I&????qC$????????C?t???.???M?????I)?f1 P +I$?J?I$???I%, ?I%)$?IK,??}/:??X]?y.s?d?????T????I$???I%)$?IJI$?R?I$???t?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?l???????? +?I)??????S?????d???=???.?;??g\?,??=????"u?????/?p?i?Ogv+?:'X???fGO????'s??%?X?r_?t???a?c??R????????'}ki?%u+?????:^oT????u????????????ya?k???r??sL??C??N???[???K????N?~=???4???\??????;8??C??????JG????yO? +??qS???[??E?t3_?G?^a???ag?a7??????Gx????[??2????;Z?Q??x?ln?? ?w? !#(?FU??????l?????{??D??BW????m7??n{?????> {????????C?/?\???'?@(6K #?\s??f?C?D???h?$?JF??I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)a??L???8?Kp8?4???????JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JZt?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?????Y?fCb??7h?M+M$Q] ??1??????S?7T???O?En??~??^??-??8????SG???n??1:?#??[3?>?O?^s????}Z?6????}???#?MP????C?=2K??c??'????n&-?m?1??????_?? +?v5L{Zv47??7????V?Aqc?C?}d???????h?_f?<?NA-##?4 1?R?x???(??r????^?OY????? ??8?@ ????????V?L???/??????{??U??c?OV?5?????&P????CS?????ja???r??U??R5I$?6??I$)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??? ?d?$?m???skh#?DI$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???M?J]%?}a?Xxo??&?u?hc>?q?HT??????????? +?89?9@??EF???? +K???z??L??W[??X???N ?A??lZ?I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?^a?#?)????>???????wN???c?c??q?;A]?A??z7Qfq??Y[??X}???E?????T?2^O\?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???J?*y?c?@??Pi??????????Fv +?K'???[???H%z7??????,????o?????M?&$??@?I????????;7?X?W,??N?>??j?S?Y?8????}t?????i???a?U?7?B??=#???a??f@????W??W????g????7"?kH???|?t?b2?????w[???6e???]??u??OP??A???? ?-5??>?w???u_P??Hv?????c??????t??_Kh???Z?KN?i??b????lI??????$?j??/\?????????9??k??{??d?$????c?r.nJ?;??)?2G=??W ???}o??fI??wO,??7??s??l??+?+??G????????]4?P +F???XG??????ued3??????t?%?4?b?>?dt???uQ??????%?@ ?G?;-o?iM.??ysA?M???????fF??e] ??[Do??c??z??????g??k?{-wpV????F\?k+nA???A?6?G}l??}?)???f?A;@v??2??"???b??I?/_"?Ze??u??Q>?]?l?r??l +m?j[??????_C+??????@????I'_??H?(??h?=???}?%??]??^??????m?W????A??t?tp??`??gV?M?? ?kr k!????????G?I$?J?I$???I%)$?IJI$?R????z?u?mU0K??2?????????E6r??=?dk;:?W?_\???p???_T??Nc2?k??h?c?I?J?????????G?Y??|?zL???!>c?p????Z????4??\?49?ZD?<??7?O???g? +?DQ#?P6??J6Y]M?c??? ??IW????rj?=?????,i}v1?o.k??IIB?/?m??=??????zc??????IIA?3?l??????p'?*v?M#u?mc?????i!??E????#????/????,??8r?8????$:?(?}ds????%)% n???????. ?&?S??5?s?xG??????????5???Fk???0?4?A?RS$?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?l??$??_U???$X????k??????~??u???"?l7?Z?I?N??7??kg?H???S?4$O?u??[~?}m????????vK??k`?-??? +?\???D??Ey$?*?@o??I,?????Xm??????(I????W?0~?Y?]??i9?i?f>+_?}y?'?????????m??a??Y????=4GZ?????$????????zo?n????c ?|V????C?>?:gS???[???;?????mB?????.W??W????*?])??????t????????Zj?????~?N,????$k?H?^??U +o??\??o????????>n1???D?)Tz??/??'? :v9#???????#?????wPu???{=?K??????Y?q??z9??0q>!th?A??mI,??s?`:?^?????F?:V???:????}`????[?{?f?L;?P?????vI?Y?{??????]??v???0?????hq ???o?}r??}}s????-???]??}B?????????????e????\???@?P?f#??????KX$?%%&I??????4??0??$?3?M?????1??n????t???I%)$?IJI$ ?R?I$?? ???O?SP?V?9 ???S????|7????>?????Q??-??}????.??????mFi?w????}V??3?^nvn1??XYa ??!u?^0:?P????????????$yI??4???]?EqNZ??w|uS?_?^????z?????k^??????Wh??I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IM\?????^?~=y5???? +???W???WL?e?2? -??j?#+??6?!??KH?(`???O??hf=3;+%YI/?????I%)q8?Uz?_???k>?????1???I!????G???c??????g????{?? k7Y??t?????Q??}????p?K 11n]?HV??\T???^??}d?????A?????pZ?L??r'?e7???>???_?kj? +I???'?zBI??'??u?K?G@;?]?'?????????z?????????????Y????????8? +)?V?????????I???G_?> mo ????]??_?/?v0f}j?F??????>?z????g??1?????4G2??? ?d??t????(??Z??[?"?2?I?????r??}!?w?????p?rx=#?gS?_L6b??????l ??$??-H??I??????>?t??M??wB?m??m???,???>??K??GP??y??>???j????>???I%???\[?????;[??J??X?1/o_?9>??]??]"I"M??}?????I ?$?I)I$?JRI$??????????Et+3?'J???\??K?]????w??f at LH ?j@????}X??[?[O?Vt???S ??G[??A?????????lx?^?x??+??l??=:?L?k???p5?j????Y?Y30?1o????\,?:??$?xp?q??U??g{?????k?=??c_?{1???7?CD?????FM-?????k?d?W/???vW??????eWc??>v?xZ?V:5?????l??C?8?gIKs2t?z|GuB???Ug?????0]????q?v?#?h$???H?>-?????o???]?;?/?w??????>????_???H???c?K?? ^?G?:}?\[JdO??]W??n |?????f??C?u???kmk/q!????f?????~f??kC???`?1 +?\??t??ut????r/??:????z???????:?{Z?Y?c????`?????Rc}@?%?}:??V????}I??_?????~@??K???k??}}???j:??S?^c?$7tk%Ts?:???????TcS??^???????}k??????~?9???2q?d0??????S?????????\?9?T ??4?#?9~?e????R?? ?a????U????U?}?Wn???b?\?x????9??.q??????W??:?U?????\* ?!t???W?g?N?????P?????O?Fd??L?8?N???dp???t??>????n?>?w?????a??Yh?]?"O??y?O?f???S~?????U????sA}?0t??j??????F???g?:{Au8??\?]?@a?'???>i???U?F????????u?2???&?C???J?*?X???=\F? +?;????\>??K?_W???ev?\??W??q> v]G????????VP-{??????O?-+????:?|\^a????a??:??S???af?MfK?xf?V??1~?????v`??l????????u??l`? 0??????????o??v=??`???;>?OY??????C???w&6??gd??GU??`a?????H?G?B????????1?????Y???????????F???D??d ????c??I&?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$??????]?"???;?~?,#f?g??????~?????0????`????o?_S?????w?z?1?/??0?}1????????jr????????pl?????????:???? +???s?k[xZ N??t??=T?????>?:??@????s???z?]S?e}????lH x?@p?_??9?%? ?.???_q??b_?????,N???l?X????.????????:????%???????I!P???3?????h??JH5??U??????c??????e?????#????{?}o??6u??3?KK}? ??Vfg??????:O]4?? -??\??W G&???:?id?vO_0??Rgt????*(ut?r ????]?s]?H1?.K?}X??????~N]?.???K?4|T??F?XY??{l??M????"g??"%#?X?=8??P???????Y????u?i????G?g}d??o????8?'?lv???????'??g??~.k1??4?H.???M??????y????????????n#??=??????j???m?i??o]??u,~???n???G????????F??g?????)???d?????[?GPwP?=Y?6^????.a??h(?T?????gW??G??[ ???U?z???a?????O +*?_???X}R???S?}yRn???????H?????????e?f???I??????l??G +x??Y??? |??G?:nO???Y??????u?%?y?O???l??Y???????y?????L???u~?2?n;?m[N???n+k?G????oN?g?)???{????N?";?????????o???Q??+k&v?$??$??I%)$?IJI$?R?I$???I%)$?IJI$ ?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)e?d????wQ?o??c&78??????{?WM??Vd?7(J?C)???jN?_`???K'?t?3?h??n?mV??~?? ???F?ze???6??s=S???,>?O?[z?C????v:k?N?R??G???7??L???XIyGU?_???j?5??=????Os>+K?????~?K?????}m??)V?u?#?(? ??)??E\?Q???/??co[tD?,??????M???!?7"?????r???'?d??u&???! +e?r?? ???? $>?????6??`???e[?)'?~T??????_??????;cm?ey??~????0(????y?K???? ?????:'????2????e?A?'??? +?2??\5????ENQ?????.EyX???;-h{dA??W?}w????_M??t??]~???????Y?s?}~???^??????????!????? pY??u???????owI??= cz?7?.???p?U?Z2??????[D ?????}~?????Y?????X????Aq??? ??q?[????B?>??????]???}''?????=???;??O???XV?2?,4?[Ae???R?????8???O??Iy????u????Y?A??5??`5?4}"|J?????????Kk??????5???~????p?k??"?S{eO?8H!$?R?Z}?`[?a?SE??? #f???X?6?d1?Clhp??????=/?t???8?????V????s?GL?%?;????lhtJ??J?f?J??88`?W???6??oB??????udXo{A0???_R??u?????j?[ 1?^?l'V?`??????l? +??A??im{??xY?V~??t {????_???q%ht?????????mo??Ui8?)w????Gm??S?S?????!?p?B?6.%??H??n?H?!?R????A???? +p;?????I$???wL???????4@??o??Y[-c????p?4?*I%????c}]?X? ??h?????????wPk[??^@o?4:>?i$??????1]?N5u???????>! +?F%M???c +~ ????????1???#+#??h? {??Sr:?GI?????Q??-^??5? +x?eU??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I.C??????Y??k3?G????o??c????/??????L?u4?A1??}[k????}????L????J??????????z}?4T`?6 ??b?4j??bu??X]#%?????? +?e +?Z????V>???>??k??????$?w.7?du^??z?;??j??????????? +R??:?_Z?Q? ?????u,:?1??nn????YY?V??????zx???L??V??~7N??3-?(?K???Q2???6@?m??n??1z?y???E?X?e+B?$????{???75????;?J?,?MI%?????:?R??VE +????D~ ?N?V????\??????sF +X????6??3????C???v???v6E'?K?&?????]]?4`b?P??gK?????2?s????????P??????h#?o?z??I%)$?IJI$?R?I$???I%)$?IH3s?01???ki??J?h????T??????n&~;?s*m???V? +????W?.?>???????p?jo?r??8?????MtY}7?E?5[vewWH?\??G????y?-????{?6??L.'?b`?????zoI??l?75?????(^~?t???{?t??????M?????H???C????Tt?bg?Cg?m??ku??1??8?d?}p?????\~?M???ma????/??v?z7D????2??2?3p??????R??11??]?l?V]????c?????c?ku?5{???^???.???UB????f8?/1*=3????zvUy>???f^??[??\??u*FL05?y?;????VC?`????oV?4B???:t?????8G?=?K?X:/I-oQ????!? E??[??ZM??!?5?3eu_??W2,??]J?????????????K???z???????X<Ly% +I??G?M????w?_TY?K?t~?X???^;?0???*??????s?cU?_v^^P/??I>?|???? ]??~?o?Umv??kpuo?????????g!??=F??a?0?PT???????C??f(k?Kt^C?w??????w]?u???????? ?}?9a ^?o$>??j??????????????K?l??xc51??f?O'?8c??????G?u]WE?5t~?WO??-?? +u?] +?2????'?*"H?'xD??g??????G?????c=??m[??#?G????oB??xT2?k[????$???hL?O"6p#(y?>M????}b??e?t????k[??W????-??????^?vux?v-U?Yp?@?????H,???R????Q??]?{?????>???`?X?8P!??? +]qz?_????n??nk??n????I4H?iq +m7??? ?)????^E}3????!??vp?Pz?]?????r?g?q?{]fX2?>???~??V???q?c?g?_????>k^? +?mc??>H??Z?????6????}z?}????RYz??}??Lk,?p??C???_?S?????; +?M??a?L???t??Mu?????Mt??0?????V+?9?U???q?6-?vQ??I???l??%o?7?>????t?p????????rHG?????zNxX5???@??*?t?????3??"?????P? ?z??^???S???'?Zn?y????Y??uf}_????.??????$???1?????GN?%???n?????I??~G?pu??j?????r,?BgX???????c?7+??M?+?&_j????????A?}????5????rd?????N??O?h?I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???aW???e??? >??Pp:??s?-?s????[??]u??{???????}??P???a?F +???????????X???\K???????S??d>?/:??}l?8??~???S?G?0|???R?}X?=?????Us?6????5*?WI????????w?/m??????9?) ?????;?un>?&@???c?p ad??d???????3????9?+qv0?k??=G?u/?t?[s??K?t???L?? ?W???3 +?? ????r?Y??C?s+?c?C,uf????yq?wM>?fu#???,?x??z????.?Ekvpkdd??p:?u?[:?^??c?et??i???????}?E??/??????NnK?YXw???"4?5??\o???????>??^???[cIs?????J?B??_???t,L???{y?P??_???????,fss.??~???????N?Ng@?n???^???????5?k\Z n???g?!??e?%8??'x?G_??????Xqv???z??????{???G?i?Z?????????d?=?????PO??w???????n??Z[??V??? ????Sn???????????????a????????N???????z????i?p\_????:???~?`?? + E???{?/?F????H#?E~????SY?:?]_??6t????s?F?? ?^?8?|??bE?????K???9k????^u??Y????t????????????0q(???????-?j???????'HgVoFu?f?????F???#??????Z#~????o?????[?1:}???0??u/v???W]??+o{????=?I?????}??MB?z???n??W???P>?a?c ?Y.hp?!i ???g?c??????=O3?a?\?>??A??+$?a\?]g+3????c???????]?\~7P??????u?????M???ph??c??~?????4 k:??V??????t??'_??5?V^???N??W?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I2J|???[???Y??Y?W#!???5???}Z???b??/[??w<????%?AHk?o?Gud???P:~?u/z@ ??:??????OH?t???????c0 ?y?^?>?????????}??l~lB?i??_k?????????>???????Ji\ ?G?]??|??djbhv'???????????4f{-??\???????'?u????:?]T???b??????.???]?z{r?kq?KvcV?s???eK???????????-???q?????HND?<#?.?Al}0]?Y?_???)????W??<=?V? ?????? ?????NK?e????:W?>??w????b????y???S+???????+?m?????c??HoB?[?q?fc???Ry/?q???HoX????'R??#;XG?g???m?????1???^-5?USx#?[?R1~?c?;?u???]nc2?8??YX='?????N?????{??y1????:d???u???O?n?[h??q???#?HC????-z?d?P???k?u?89?\?K???aa?? ?a??a ?_P???]??f??3?C?t?w0??/?o??S??/?x??????~l??(?Y???;?`u???????????K?R?????+???????W~?p??;y??ZHx???V?[?????5DH?)$?IJI$?R?I$???I%)$?IJ^e?????????P?5 ???X?l????E?h$| Hi8K? +??????O?5:^fOM?????pmX??;B??????oK??}.?_?s?????????z????Zt ?j?????X????k? +?????0????q????t?N???M?t???5?x??T~??|_???/?c=?????K6????O??4?????Z? ??8x??)?? cCO?????2??hxx>?????]8S?{?????VKA$0????F???/? +zOM7?3$?e????????p??v????q????L???[?????9?h#? CK?x????KZA?????????fOV?W??bt???sK??v]???Tv??? ?86I}e????]e??????S?ys??O?????V?S]p X?48O????[????R?????w??p????/????`?dn?H???????'?QWN?6;#"m??^??~??tF\i.????.????L????=?.~5Nq??4?? G????? +????_??d??}U???l9???`??????t???>??????,??X_?X?????????q??QS*?? +?? +?;???????&I,i$???S#?????#?b?p??????uJz?s^???q[d???+/?H????????z8hh +h?A????Z????^Z ???ey#??7?R?J???M?????K???#i??c?o%??\%???Jk?3??N??? ???{y?:?t?OR??r3?%E?:?A?X&W?]E?m???????M^65L5?S?}&???}g????u>H?Q#??????????e??,?;?~???????T?Kv????v???M]()$?AJI$?R?I$???I%)$?IJI$?R?P?????$??p?=g?S???s????????b!2Yd#D????????>!r?;?'VmN?a????+;??u?:?Ux?m?)??i8OE2??`?.0I>M???)e??#,s?gY +I?G??\??|???e,?>? +???p?=?T~?}b?u??????li-??m?> +GF?~?Xx?$???t????`??}_?????u7 n?????x???d ??vO???dx?9 at D?'? l^?%?/???sn@?L??????pWC?~?:???u?v/??p?v)G ?S?t??G?V?n??>?$?I?RI$???I$?$?I)I$?JRI$???I$?$?I)?z????=w5?????? y +?????A?]3??>??l=?????T?m????????)??????????+?????K?Os?x?????gI?? +"?H?G.???Hh+?eM??>??;?t?e????O???A? )??????M???]??;9??????{ +A]?M?7#?}W?=G?7?YY? +?????> +??O??m????yK???]k???\W9gX????;????5?-?M???gD?I????????hQ&?1??????I???????`???a????];??????R????cQ??'??X?}6 +=F +?>z#???Co6???P??p????s????]x?????R?7??\?a??m??#??g?????ve:?)u?\??Z???]&R??z?? ?9?'X???|??46?4?WI??#????[??R|O??????}`?nVw?-kv?o-????:?:?? +~??W??_????w????????????_ss?}?[i#f??6WB:?W?????_:???[????l!?r/G????7??3p?Ef??y>???T?? +???Q6l?w?9}??M????l?2????$?4??G????|???~)??[?????H?A?6?+??Y?kCy??I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)%??u?????6fvm??????t]1???o?T?6??5???????Tt w?J?I$?$?I)I.W??????????g????RtP?jl??/hq?????????????l?$?IJIr]o?gP??[zE?????&??w +cE~??&??tQ???_9d~??? $5???_?????N??;?$?JRI$???????????]"?v??&????Zit???]iI$?]????C?? ?;??????:?t'?w?\???????=??1??????????HXQ???????$?I)I$?JRK?'?/?T?`??4???? #??V?-?h?????Q????0R?{???C???$?JRI.O'?nv?*?&eu?,??5?wO??$5"=eu??] ???$?IJI$?R?I$???I%)$?IJI$?R?I$??m@?{A?$)??????m?]W+?.??????@90?5???H?????h?| ?/-??>?z?oR??_?Y5Q?8???J????????'HP ??? +I? +??C??? +A?p??G?^?>??g????2q,m?6?????T?:nE??7)???????s??H ???j??#?#?p>????6}???c?n?/?=O%?t6?????????T????????f??A?>??OF?F??u?w?P???_?x?????zV????(c??/?I4~?????????\???????:98L?_v??????????WY?n.n=??k?fm??{h?}\U?;??W?Oh??:???????????u&???P%??Gn?X?????b??I???[C??O?CQc?GCE?s????????en0?|y??????zc2o??????C|`#?H??S?W??????SO?nq???R???c!??T??`?k?????. ?y_?N???????????F h5????B??????=?M{?\?2?????,????h?X?1i?????/?~???}??????U????'?????}n??????????????1??????????z]kj|?Z&5??$? oS??????=??>????oo?0???u|Lc??????T0q??G??~???j??\#P??8???$$ +?2?x???>j^???????6???B?is)??c???OG?t_?y9Ta?.?????l?CO???????,q?rc?)@?Tv6?X?v{z?Q?g>?? +?? +H??N??Vu?c??0?kt????^????ki?"??w?c????({??7k???0?~?O??.+?/??9?O3?u?R??c?c? { ????gY????]9-sk????.?D????? ?c?k%? ?Yf"?C???????<>???L;?3z?:YtN??o3?ef?^??j??????@???????(?Ip???,? d!LJ32F?| ?????Y??i???9?????tVG?l???[???{?W4q??W`?^? ?H???~ +???`?? _?g?g?C??s???tA???m +??yx??Tp31??{?)uL????@:?]ZH?? +????? ??A?G?C??k???86???1?????$??????U?1????D???%?]?V???W?k1?!??N???????=?o????1?jd1??$?s\?r??? +?Q!??????l7????p??Z^??r??????0i??i??[??*??2 ?a at y +??Z?l???I$??$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI3??????I<?_??m?g?2?o??(???&????????^?Y??;u?v`?[tS]????0?\FE_X:7\??vc~?c\?}6?????????rm86?????P?&Me?0qp???R?? +G?}%?k?8< +?zWM&N5d?~?U?YoT?{ +9,??? +?RFBB?????j ?u.?WH???????8W}#F?{??d??????u?,?D??{m??4?Z=;)?xT??!????'!?_?=9'?C??e$?OeRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??5??]??2?n-?k??????"???9?:?^??k?????&??xb??z?f?u?\????[?a???~??R??/??!????&????s??????d????9>?x~???Z/??o?vvn}7?W?^[HwR?o?S??\???E???a +??.;G??j?H??????N/O???X?Z?????*]??W??????* ?X?????m ??? H?????W??1??x ????z?N????1?cb?;@or????X?????'u[p)???z?$6G-???V:?@????oB???????????w??????>?????5??6??H?-.:lxK???Z??|w/???;?t:3?d?hk??j??z????=???K,??8?;??Y~??f?}7?1?r?(???v??$?y?o???N???p2?a;lV?1??5D?Y??v????^} +?i?????\??1???e??c?w8U??f???????[??em??k$8?????>????ngSe-8?? j? +? ?????T?????????????e??? ? ??? x???I?|:??^~????O????????4?=??{I?;???f~s??ff#?,v3Y????~?????]3>?????EO?KUdH??ej`}[???~??6T??ka?n??? ??o??'DN??U?:??5?a?\:?I??v?bn.??Ip???Q???#?'Q??????SY???e??????w??W??????MMn&L?O???wB?x[z?? ????c?6??n???S??:~?|?&C?S??x??d????V?E?;?p?Ef?uIB@~?t?:?????=8?G?????M?_??F??+???:?{7U??k??o?8?Y=b???????F?????V??[?p??@k.??C???>:???_???_X:7O?uu???R?i????(??Q??:???Gu???.????x???????????r?????0@?{ +?????k1??g??X>???Q??77?????????1??n??i-o?uq????????Y?=&?????7 ?????'X_C???E??g]c??W7??S??????d???}W??k]M??????xT?w???G????eM6??Y?I?-??}#;?}_? ????CI +?????8??????zd?H????=+??????O??q4?}???J??~????rrz?R??!??U??`h:N?z?@??c}]???? +??zv???q}Y???c3&??????{?F??e??=?'????D!]?d/???W??_S???l???I??~GNa8??!?????????????w~???z{\???w?A?_?}J?7u?[???;?t?????\M??t??WP?????m?9???n?????N?1?w????p? +nS ??????#?I????}??X\C???+W????F'J??:?K'???}???.?WU???c????`?E???Hhwl?Z[??g?\ ????Mh5?????e?????$???c?xN???'???????}c??^'W???? ?-??Ku?BuG?????O_???yN?~u +???7?KQr??????|>??p?q??VA.#?V?\???????2?jk?pX?=??????Kos??kUBF;?f?ezW??????;??Mc???B??m???F?X\?1GQ??A?Z?@s????W:?U??#/ +?e8??s???>e?}'?}j???s?C??!O?0???K?p?8??}??????~???[v1???????e$?I)I$?JRI$???N?N??????$?I)I$?JR????\}>????????Ho!??]??????????2qYn]q?? "8@? ???d?VF???k?T??tN??????0:???$??;??G?y??46?f \?w7B??WA??a?N???nN&3)?#???j??N?&D????>????ux??????_F??n8???V????C?U>?d??~???,???]???(?We???.???R????yo'?_??}?3?942?]?G?O ?^???`G??e?FF^'????????W??n=X?I?s?x/p$??????/3??`??????? {v?n????^???????lZ?T?!?o*??="??:??Xs? _??@??/??E?\M????}\???????hcK?l?<g??????9?7 +??>?g?R>?????UwV??h}o??Ag???}?\??~x??!?`?G)??H???`R????/?.??t.??????f&c-q?Z ?x+???????R?af +?"??2t????R???rNnW\? ?5?r?????????6?X!?`??????m???8F?\z??????R???????z??{dL at q???3??\W?X`W??t?O???.??:WV???fd??Z& +n???GIk???k????4???:u?L????!F?y43~???.?OB?Xr??? h?+??gI???'*??? L????%??u^?oD?Wg??????W?.#?z?A?\0u,Z?}=Y?p???[?q?-?h?G???0???????1n??M ??VM?V"????>??c????????Gz-}?F???z?E?];??X?????4 at 3??t???z[? vc?????$??@?SP??d??o?oY?)c??}W????:??{???k???5?j???hp? ?]K?t??????fG?wW?p|??1???`??CG?????MW???Q#?}?$?I)$?IJI$?R?I$???I%)$?IJI$?R?I$???L???RJJk????q?Nu???h^?TzwU??R??`^????????:???S-??:'Hc? ?l???)?z?88?P?H?="c???iU??'? {???????.K?2:?5????.???m??Ws??%????r4^k??_? ??y9?U?U??u?;???????????&?Q?f?????0>?1?Z??!y??? +o_]?Xa????vC?m?;? ???oQ????7????pk?????8??????A5?u??O?X1????U]XX?5???????;R?????Ve?G?t?OK?????Cy?l?_????T?L?????d???ys?6_O?8?\??j?'????:E ??bb ????{z?dG?:??8N????f???Y????~!XD?$??#??I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?I1 N?jRR ??0??}?mmh?q?+???Y?U?f?u6??spy??????wQ??.oM??????o$???:*?gE?{:?D_H ???B?????e?q??4?o?? ?S$??i?2:????\??? +??k?!????7?????????^"? &W9?>?uZ?n???.q??$?@?????z=8????????????????+????1 5??T\6S????"?????????#S?0z[??]U???k{;?t=O?b??+sr?????|?????j?df]??O??!??R?????~:?]2F?Q?o?7#? +%?7,lDOr?x??|?????N+????[p6O+?????YuGs,?>EU?(???? +5 +}C?`?,wcf???wg] +oJa??F5-??6??!?h?DI$?)$?IJY????Y???ES????I0 ????Tp?_?fC???8?????G???a???b????e5?:?K5??!?K?T???02???????G-?t?l???8?7Z??L????-?m???(?Tw??Q?V6???H??????Q?'?{????dHt????:?>?}Q?????FM??ln??Ge??{?????{zQ??3????i??????j?Jg?????P?????.;????j?jdv?K??@?D~?????X?N??????Y?????? ??e????N??N7[?????qrX?O?p?7?;?S??[?m??L????-?N?MR???Z*?????D?|K??P???]??]+ +?)???8?1?????u?pw@?????Y?g?????0????????p>k? ??&?ePZ?Z72????? +p??"???x??k??_?gcuL??OoNv??^??5????:?U?]O??t~???gS-?;?'xW???=?E?"??8 ?7$D?t?M?[??????[?k7??G??h{?????]???L??M{:U??_&?]{???????1?zYc ?8$)"u??)???/?N?W??????_????Mp????-???E?cgkCg??????Pi?)$?A*I$?R?I$???I%)$?IJI$?R?I$????z?M??U??l]??jH?Z ????/?=J??s???l??Z???4??1? j??R?n#??O?u??????:2??fFY?V????u??????Y????*?t??77??z&n^Nm??rw+-?cF?B?????j?b???F????w?e>\?q?Q'?????5??@??|C??}`?=?Wp???????c????????CNH5??!??G????/??O???Xt?0]???L????o????H??????`?6?@>U?!??f?W???uVm?$?s/?????WMc???k25???????_U.?W?c,???Ws +.o?t?c?????n]?sm:??;RTC??d"w'?c?????? t? ?[???9?????tjE%????]S?H??ct???\?1?-:?}??@??et???0??C]i?5?{??~???G?/6??{????vSr????q7??#?Y ?e?G???fa8?R2??????I*?????Vj.?A???6,unFB at HlE?$?H?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I&$$?M?W??? )?J>??>???_??$?I(??????^? ?>???$??W??? z?????Jd???_??%?W??? )?J>??>??9??$?J]$?!???/T??=7??_|n??]MBRY0??Yp??B?:?_[??W?]C?So????[????g??????u 1h?c????????O?Yt[???5??Vo?=??b?s???<?C+?4?}???\??h?8?e?? ?or?62{X???Fd ?v?v????&?`f`???;?+'?L?r????Z????k3?^???T????Q??/???????>?]???I;A?`?>A???F2:?? 4?????f?M?7??????S?????Z?a?? ???8??=???a`?776?3???[?:4??.?2r??M?f???I(???I%)$?IJI$?R?I$???I%)$?IJI$?R?IE?el/y +kD?x%2P??]n?? ??\???????t?z?4???? +?L??d?a?d??? +???|o?/?Y?O?/???4????N-????s?v? +??+?mg?F?? ???z??6S??N??O??? +?E????????1??~???6??x???I?'??t????YOX?>?`??B??\?febX-??-p^Q????I?????????0??U??Y]O?_?t?I??????n;21?[????????:}?t??[??m?? ???IRFWc?t-?s??h?y???????????{???i???????k?e??62 ??{????????????C?U??????????a???I?? ??j_??t???????A??X? ??V??q??????{^?j??????OU:?????g?IIO???>?c??;?W?/??????.????%)$?IJI$?R?I$???I%)$?IJI$?SS??y?6???S??Q???~??????{?? ??W??o?//?"????[?S?????v?????K???????/?d?O?X_?kW????6??K???????/?d?O?X_?kW????6??K???????/?d?O?X_?kW?:??a?kO? ,???~????H?????O$?@?????S??E????H? ??j_??t??????????u????d???ed?>???S?e?9{??1????9???7C??????c"? +?n??2]'?,/?5??%?????Z?~???z?3??????O????????F ?z??E?P??T???????x?????????'?&?h_>????t???????t?}k ??]??f?N?{y?????\~???4??V?R? +l? ???~?P?0???? ??H??3????/?l?llk?x???cH^???=/?$~R???v?????^???=/?'??Y???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S??????U??X???&??5!??g\????????F?7??c??9?_V?-?C?????q??? ?/????9?'??d2??8??8?~?5????LbEDq\?].??qK??LA?????????0pq.??????N???)?:/St1?]c?kL?{???? ????W??k5???|?o/?P?-?R2>?5????8? $?>C_?w?u ???6?Y?:??S?qg>??{??N?@??sl????r??}????Y*???=B????G=?~? ?r^w?2:MW????5???4?????nUV??o??C_7???TbE?@Z??:???7?ego??h?n????U?6????c?c???g~?k?????Z\??K???G????9-O?3.)\?i????O?X??S[?V??????uK?,lO?.#??dX?????>?k??f?????c1?H???p????|#C?>v?^???[???KH?F????,?z??=H???K??O????/?iz??7?6_??S??/???g?l?????????IO?$???????????3??e?M%>????S?f??????????I????YtZ=????#?{$??d?w?????C???=[?k?I E%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??????C ?S^I???;b5 ???V>??\6g`????v??"cO?]w???????????#0?/??IO??_??????x?????????????/xI%>?1?'? +?????K?b??O?W????$??$?????????????I/???1??_?o?????S????b??????$??/???E???K?IO?;????kK?]?4Lx?V???Y????????M??moqp?????/?-??n??xG?????/????IO?/+????????K20???????^???]??o??C??x^}?zN7FoN?Y?/?(9??s|?Jv"N??????(?YG ??U???_T?T??Lm6??P??????uk??%????;;*mi?-\o?~???:_C?q#?h?r?x ?W;?}^?6t??p?l8<????9fG???$? ??\0q _????D]>?????K?.5?8?:?x]?B??5?6_]??????????lu???rO????x?}a?????#*???t?s ?&?Lc?~f?|?s???????? +t????*?]C ?~M?????t3??????P???Y??2?Q??;?S$?H)I$?JRI$???I$?$?I)I$?JRI$???I$?.?cu????3???}?????y??L??^I6?us?4?3$??V?;?P?q?@>N7??????????? ?UN????w?Z??`}Y????-?-???}W???bWP +?tw=??u?du?=J?/?kv??? +FTu]?(??.??C??#??????s!???w\=? U???y?v??e?x?|tYY]B??,?? ????[~??P?_H?? +?k +????m?(?.+2?O??.T?y$c_,c???????MB??F??[`????U????? +??X9??~?x? 1?H??U??????S???li??y:?QZ+???Y%?z??Ui??g?????L?????????d?????????9?=3?p???z?? ????W??k.?????|??_??X?hc??uB?z??9?Ge??]u??6?E?ea?????R?\0?*?1<#?N9?Vbl:J?U??2??l??*??????????J???/?S??Z???????????Z??????$?$?I)I$?JRI$???I$?$?I)I$?Jjuo?//?"????[?S?????v?i???^_?E??%x?????????IO?$?I)???Mn????\?????d?X3???7???-?x?|???y6??P}1??gx-???qzN +x??4{????Je?H????????S?|??,????7.??.V?? ?'1?>Ar?\z~OF????)?X???P????c^m?6???0??Zv???xx!8?W????J^???C??T??:?L}??V]?????8d?m? u?.??j??Ut??????M??h?X?? +?G?q?vfV?mEN??S#h +??3?1??9???\?=??*?e9m?U????f????#e?_~??u\?H?? bcV{;?W-??????s???????*[?Z?r2Q?9???D???g????/; -?u4?9?N?`??7_???w\gV???+??h??0???Z*????U???????z?Ee??{?q???fH?@JG?M_?f?s0???xdHc???3??m???$?9?zw?O?H?????W???jqr:N= +?Ux?5?5?Q??#????R +?(?_gy$?E*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?r???+?r,???.2??P???s??O?????n??9V?s???2(D\?j7????????wN??b????p\s?Wq?1}?t?#?M?h????}?v5?>??3?6{?Y?n??k9Q?????8 x?? +s??e???)??k??;?G.?icr]?h?Vg?>???T???f??%Yy??6????.??Wa????]/qs?^I?q?e?l??m?i??e????????A5 +|@?? ? ??Yn??]???I$?eRI$???????????h?n?Of?[T\??e????4?????@??????^/?:?C?????S??/????????????};?o?%?_?g?[K?o?%?_?g?[I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$????/???S?+?????R???/???S?+?????RJz??I%)fu??????????M????O???????EU??????j?[Y????????gW?????Z?sj=??s???Y?}?U????#???rLk:???2[????i??#F????c?H?2=??I03?N???/?-??n??x??????)<????/?-??n??x????? ???IO?u,?.??v66C +?{D?$v\'????V??zh ???r)x???+??}??=V_i8??\ ~ ???:?T?? 76^ +??r?????O?>????? ?????4???????]37-?.??*???x????????>???????o??I???s??D???m????'?-lV??_??????I-}q??m???G?:z~3GR?kFM?????T~??Q??1?8???e???Z???T???l?e?{G???B2a?"r??????;b?I??`j#?F??D9?uB??nu???Sfop?J/{X?????RN?,??$?1sq3l???0%?uGH?4*RI$???I$?$?I)I$?JRI$???I$?,???(???I???V?A????(?Q2???_ ?6?.c??g?{?????# ???? ?g??-]W??w??0????cX???????]????????;????bJ<3#Q??h36?X.? Y?t??\??Qs???j??1????{?????>!O?_F3?S???%?X?H??????a(?8????W~?dU?k?=<}??61?i?;J??????x??O'Y?3?e?????:6[??????Lp?T??i?`}Z?~fS??h?@br&^j??rH???????L??m Dl?"??l???u?U?}:?`?V?'?????? ?s-??Z}?g????z?Q?7????nm at Uk{{|?,l?g?"*??w??F???|??z?????i?J???\?Z?8 +Dh|????T.g??l??c3????,Lhqu????c??N???]???p-f??Qa??3?s8?t?6???kr?dRF?#???n?gN?e?vn?{????xM??X?`#(????D?NJ??????Y?X??;?W???s?h???A????r????4~????.???????u?+?~??X?4?c?{r2^??!??.s3#?????M?8[?????8w?T1??FH8o???-`a??YFy??? dH:?+6de?=???C?+???????/????????nyXf_V{???k?????I$?????>?GRa-??Y?%t>??`?y??i?\?????OE?!?Y/`??? +?OH??~K?Y?P6;?#?????k)?W e?qNC???kx??w+????:U?2??h??J??a??1?~?????H???H?4???W ?Y??rz?s?}8?{??K}L['??s?@]nU?^wX?%???g????W? L{-???I??!Z??x?]/???m6H?5s?? ???hP??d???BUbH?'?9;?C??+??Q~FC?L?SC?f?)???#Dp???E??wY??a*??[???H???[?nn ????4???WG??p???=???v?O?????????E?????cG?w`???q???ofhb?+:2???R????f-V?u~?u?U?c???o?-]?????_?v????U?????G???~??n??????69??N?b??????Y]F????? ?a??????C??g?j(??Ws3???,TO??lt?_??!?ZdH?'@5%x?7Z?{?p??? ??a2Lx.???>????=;?d??>?????? +?????J#????l3?R0??vM??59G?4\?????dr?:7X??? +???6x??_ ??|??h-q-?[?X???[kL?}?? +???????|?s??b?H?????eY?????.d?~z-??.??"f??'?Or??b?????Q/@???????]>?\Ce???k???D?,???????^js?G??????????????????????P???a?T?a?};?g?%?_?g?[K?o?%?_?g?[I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$????/???S?+?????R???/???Q?+?????RJz??I%)d???s?c?????S?x???;??B????+-??9o1??s ??g??????????2c???=il???-??`?gUp???v\??????a??????2?n???V?uX_^?Uohn]%?d???}u???????????????N?? +??! +???1?? '? ???WG?u???V&u??V-??!??au????C/??,?w>?~???u`=??{?S?F" ?c?????83N1?,??^???'$?????????E??-??????N?rnx???Is??.????n??w?+?|cI??w?O?x?#??g;=W????z?Is?q?? 5|aS?8?n??? +Y9???tP??????/,s???d???dgW???}??????"G??q? ?(@??1?s??gDo ?9u??N??c[?>?c???????}?>>J_T?z?Z????q??6????+??R}?6Z?e??N~?WS?_??'?Z^???^}1>???????1??K???iw??9kY?DG?O}??u?7!?`???C]??yH?????l?q'A?u??????3l???}?0???[?????????H??c?O??ON?k.,?W? +???????_B?'*?s?dY?M?q ??????t???,?]??*}n??? +v8?s?s?;O? ??-6?F???b??_n1?$ +D6a?b?h6???d?????????? ?z?????????N??&i??=?5???Xcj_??????W?:?!?V;>??i?o???\@e??{,???lK?&????s????JHy?/pe??????W9????^?{r?NNKum???o ?U9???;???u???????????\?e? p?HOO?????l?????M???s`??I?U?????\f?.?????U????(?ey,??i XA?|????????u??&`??!fQ?$??6?W?????f???????y????S:?????`=&???w?u![?????{i??????p????u;?_\?6??X??! |3?H?w???-??????e??[l???:sv%W?l?k??n+?2?E?Y`o?2v????{?}q?,???????cF??x*??jz}??W??cT?????@???74#?W?@????tq????????t%?*?k??o?^???T??????"?????I%)$?IJI$?R?I$???I%)$?IMN??%???Y?RW???Y??.??=[?K???????????g?]?)?E??p??z.n0?3r???t ?????\?N@"???x???f??\c&Cz??S???t????R?k?l?w???p?V?]Y?gP?y8o?[Y>??H???9?r2??_??M??~????mW??^??} ???]&???k?F?:}F?+????? +????? +w?RQ??Z??[???-p?????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$??????R??????v???to??k???:m?9??'q????c?????g^????UT??mg?4??Y???c??R??6?S" ???t???????s>j6???T??????B???/?(J?r~!??X?.\??????}?v^5;*{??????:?? +?O???E,?y?"?}*c?i?B?:_@?]&~?@???;?~eI????$?$???lW?;????????_???/????/?;????????_???/????S?,??Y???+*??????i,/??-???????F??c?8??-Gg'???^????z?#+/.^?[????>?e???>?dgV ??q?8 +tU~??s? +??/???r??R??n?????? i??????#P???????-?a??S?1???lx??4xfUnS?M ?\??_0?yn?F1?=?j?y}?rs??v?yqn??K?vO???h=???:?CYc ?%????3????z??2? +Z|?x{[>????_J????[??0????u??U?6?\[???pA^1???????u? ??T????t?]nn??]???{???~PV=5???wDr^????/??c??.?eUY? ??|:l??Z?:N/???^???#H?-^????s?\?}|????;??0??K????????33?H???3???o???>??I$?u?I$?R?I$???I%)$?IJI$?R?I$???}h??_L???w??F?????G?}d?p?\ +?Ygf?|U/?=?3>?????Rk????A,??c?]?k?0????)v?^/%o?_??n??)??f??w?_"????/)????\??5??/d\???Y?F?K +z7??9?#??9???1???i??/G?>??W1?N?>??H?]v??????????rH?n>f;????w??Kzj????r[?U?q?O??f??rs>?'?lOP???0:?~??????H??'?h????>?op?;?#}K????{??3?z\??`??t?Z:k??F???????????,r}k???????Y}?:?v??????uj???V&>????? X?i?0??d? 3Mv8U2k?Jh:?K??%,??? +v???'?????}?7? ?Z$7?????6???d??Y?????a?Ud[m?y???]???V?l??Gd?H$?bH?????q??e?T?;WUt?=???QK??] +??>?GW??^ +??X? ?AAV??4??g?????K?6E??Y)????M^?-?-t? Et'(HJ&?AyO??s??????E7vp????'????`d??k-8s??(qu,q???O?6 ?u??????4@??%??N???~?}q????F;C?/?3?G?\?U?=R????l??oa? +???????,??.??{??W??c??H?????9??G?????@D~??????v>q?2???????]???(?@ +j5??????????? o?Xc&?jHf6??~}???o???????F?U??GF????F???? 7?gb???(~? ?^???'?u??_,?1??H 0???B|?????'?z??n?????+ZM???oa?^sS??m=??^?5V???Z?????k??6@?$?]]x???T?r??R????|??u????@?w?9s??T??B??M?S7?????):???7???7???I:????5?t?,??]?????m??4;????dS?C/????%?i)*I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$??????u??$???M??O???,???zg[=3 Q???????? < +J???????????????w??(????p???7??1$?>??Krrz d?\?9v?t????????Xv??:???c?uJ%?R}C????s?s?R?n????????? ?g???????0??6A?8B??o}k?:??6??L?6?4U?9W5?Z?*?W=?@?\???5??????_nKv????f?F??ib??????1?9?{?Y?tj??='??nu?%?^J?W???y#????!u?h?? hm??a??t????Et?&?7??$Ep?)??N2? ?K?=??????Ob)?~?t???????????@? s?u\L?K/?X4/k _??=??????/p D?K<??r z;? +8fx??:?'??????U?R?"???-???? ???v??? uS2??7u??mu7vE???y?B?'V??-{ ?+??rb?????_F????u???!?,?x??_X??M?Y??Y????p?????P??P??6I???b??,?++??nC?^'?u?=;?b??Vb??1??;?????m????????F??y+???cwh??S????'?5?6?b?L?J[??n??w?+????????9????U?~_?[???? +??????1?v?5^"?]??ZI|?C??8[??oW????(?? tu?????????????5????*p???Z?b????]Q??0?u??oT????ol4?? ??@???Xc???(??]?+c#P??&E???p????e??-hq??[?????9>?~???U?Lae-???KK=?^L???????:{?o???9?NC??U????????Tq~?V~`}??0p???? ?b???a?V,k??????Y};?wZ???9??n???K??f???NF??>?2??'?D??q????J0????YJ????}^?n \v????????VE[Y??????`????AZ8?3?VX??;???A?w<#c???B ??g? ?u#??z?h???s?|1?5?c??v??+w?c??[k?????>k/??d????C ?x???N?^\81??L??- +?'?????|??D +????8?y????^?\???O?}_??x??PK???;??=VFGP??A????U?????t??=???:W??m??8m??O,???b +J$?z[t `?%????PG??e???kh??,ik?\??l?&V ?V??m???*???]z??,?t?7imT}7 ]7K???/ +?x??[;?I?%Fxc???H????????IB?$?I)I$?JRI$???I$?*????4?ot??V ?O????Z????09?T??cy1??Y???4?e? +???????P?$?`????y*]s????{??]??? +?HM?;???m??F?*???? +??^{???????3/[a?R?D?(Ho?? +Y8L +r?t?G???????a?/5?M??%?}r????)v=ys?o?>???r? +???'????m???Y??? V?~????G1?-?:?zG???????k +e?{G?4??????,s?e??v-Oyl?????????l?V?*?"$/????????l??????????F?R=:??? +?B???3 ???/?x-?]v???Q?}F???ea? k-?We???[???E?????(y?4???:SG???s?z5xy:??>????^O???b???o??quNn?5?K\O ??__?n?s:S???K#?GT=3?[{ Z?ec??MOE??,??#????????>??t?=?bR?v???F??4@?>?t??t???/3??q??]Y?Z??2Cu?!?<{??x????Ux?g?}? ?'?? +?&S2?+?g4]????oK8??s.0??? +qj????6??Ty?D?G??_77??$ +?#????:?CBY?cW?aK +e???T/?????o???&au??L??V?0??,?'??Z?????????b?Z??K??k?t?N ?????[?%??K????G?????W?}y?????\?????^@?T?c???????)Nk???8?C?L??h??B??:?o???zVC?~?L?y-i^?????SrroS??/?????3????/2????eoF^;???S???R?Y??d??W{?g??=b??{E@K[?????$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JE? ??7??G????Q??3?????N?0Zg??+?3?t???.?h!?i?d?+??zH$??>???=????tc?n?hp??n??????EwS???je?v?????37?wY???#???????v?????????\:]n@????#????q???c2&q?z?????=e?bu.?~_C?1?a97 +???C.???????}R????]?????ea???Q????????^]???????-x?O?/??2g??4#???????fH??yK?@??u???oH}T??2?????rJ???&N+uP??p]|??????mYB? ???????}5? ?CA??????G??X????v??b9xq ???S(????y???????????????l:M?6 +? ????IuT}iu??1????~K?????2j????????y|??2F???????l?Q?#?m}r?m?T???Y[b? ?`?> ????9ln./?kq??kl??9+??[/?t??=?[`????;M?????s?????,?7?s_??9???s2??qp?K????1??lF??;wR??????K????<X?? +a??x?V?S ?????#p?*?:gV??+i??->??O??@W??!)?e???!& ??an??????:????c??zCq?!z?N?x]Oda?,a????B????????zi?C???,?t??]c??cul?????u,?<>??s ????U???X@???W??Hn?/?N9N?]"????l??#?????=kl?=1?,0?(??M~?}K????p??????=&? ?????z?^??????>??? +"???q??b ?1?"? 7?))?#??5b?S??1_?o4t??X?:~????????\??k?|?Y?????????j??5?????????s????????? k???Q?r???c,"?m??y5?LOul?F??`?4*?cP?????|??????? +?#?t?'??1?zF)???w??L?9%^8?}??????\&?n???? +?{???#??Q`7n??]?U?L?? ???9??\?i?*=W?YgP5=??? ??P? ????_?????p?P??????6h Fq??Hl?]?8r????G???!??'?I$??$?I)I$?JRI$???I$?$?I)m??K?'hc ??^e??F'?}?qs?I?]????????????^G???????G?P???J}1??f?rd???%g?G??z?\???2??fj??v?< .??^}]?????9T???C??ap?,}????.sX?????W?z5X5?X?????y????????_&?????????Y?????u??OP???c???m?????_Z????]??????f4^?F6=?????1??q???%?N??/????o?-p??M[???C?A?z????g???vgNp??v?l{W?? ?V-??????=?B????/???*?1?8d8?Qi?????????]O?C?p? +?n??zQ`8?5??Y?|???9??o5?l????3?rk????H?6???e??R?????-????^?EY87?h?=?|???O????J-sC(q;]?????.?oQ?+8S?Au?o?%???o????PS?N<??????b2????g?3Y"?O?_??????????`#?8???.o?;?s????l??m2;?Uz?????c??Z?]????wx???????????-?J7?6L?v+?y@????H?uG?z?m?h??I?q/? ???????c2Ac??A??+?>????i????2?n???4??p??~~???+??{'??????dO??H+/ ??c?%?o??k?S?G????z??>???7?? ?1?PJ2??;h?????????K???L?F?=!?"5+??l?n6S?}?4??????????g??d?=6???I???????8L??`e,n???<<??w????1E?o???u.??,?????lsk?S?Z?}K?? +???V?d?5c?g??\??7#????W??q????w?/??3????F???}?????#???NV?8?n?~m<?T???f_?M??%+&?f=????L??_?3/?&????sH ?GB?????????]??{???S??\??"?????I%)$?IJI$?R?I$???I%)$?IMN??%???Y?RW???Y??.??=[?K???????????g?]?)?E?}d?g?b??g?????????:?;??`;???A?6q$Pg?r?N)?A\~h?Q????????k??????a???C??????@?t?7??A??!?>=??`????{?yYV3?c;J;?GD?\????C??5??Xk? +???=' +?uZ.?p#a?f?9??n???P?" ????`8?e3??[?*?Y7?V???F?Or???T???????E6?B?I$-???8?tr??}?9??:.?wPX;,?l:n??????????????P?@G?k??E?? +`?V??k??WL??????????-?@????????qHue??^8??H]K:}=k??C?????QW??V?????U?>??@???x??.[????M???x???????o??????k? ???V??t *?????l ?G???}I??o??e?k?^?Xx?P?O?Y??t???$?Em?q?)??l??rHDG b6?{>=?5zJ?T???Lf?m}}????[?'?$z_?O?+???????1??xx?%u??$j )t?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?????S??e?Z?K????V?HJ"[?[8Fb?.?y[????????V]H2???_?_W?:????8?5?j??~k?I`c??F?P??Lb(O??r?Y???Lun???Tts\4:*_^:6/R?9V[????[?"??C?}X??z?C?z?N?a?y?:????Utl?n??\ ?{}fZ77@?,?Fz???!&???~??}?p?Ef???-???]W?uL6uW ?????y?G?O???A?? ???X?????A?Y????n??3r??d? a??(??X,??Z?0?%?og +???R-?%?E??S[??]/V????????n?????b????S3???????Z?I#???????A"egP?c???9??????S??w??]? ???7 ????z?N???2p?Z???Zw?<?mB?~?t?????]FCj?7??Z??=??????J?z??R ???G?)%,?;q??S8hFM??z???e?ip??,?+???????,?O?.?yX?[?M??S}?kg?????????~???f ??-l"? 6??0$???[H??}?F???5C????n????-m????K???H??,%?k??@$,???w?uZKl?Wx???!?wc!V?????????+ ?}C????#??n?FS ?3?x% +????6+)cjh?Y]w??G????? ?5?x?????????+???w?V??????k1:wM8?3???g??9?_??c??????~???l??w???s????b?X2????r??=??z?T???????~?,s? }g?S?];? [??????3????_C?Fc??????WG+?c&(??N2??P???Q??Hz???????K?wL~NQe?.?i?E??z~;??????s??.?.?t???r?????/??$?D?r??:?i?o?@???\??9qB^?k????x?(?c?D??U??o-?9???=?????H?????"gI?uZ??;???'??Y???c?2 l??? ??~p(??k?9?et??L9?X??tM????3?!?K ?xO ?????^2?h??1???A:???L??vC??%kde?!???Z?[?5?j???:????[??Y?G??D\?e?z?????l?rr?????f>????^?$?5?j?:Ck`?N???z/???=.?????d0?Xgq?+?o???l??h{h&@??P????Ff?????p??????2?#?29:??%?c?#)G??????JJ?L??gO???n??1?F??yH=?I$?R?I$???I%)$?IJI$?S???G???kB???sEU???/@??X?O??X^ZC??:?^^?X??9?6~?M???????>1?????}^??GN?wZ???5?{???s????A?uxON?el?? +|??^????????????dRr?? ja/??s2~?}_????????!?@O? m$??jB????m??1?!(?/c^?1?Z?AE%<???9?9????mv?:5??????x??????????/????{.????M?????}:??Z?__2??????@?? +??Q?p?????8?O??1???|X}~?l?y4?,Z?^5??khn?-?:?_?6?Z????????4\w[?9?3/0???:H? ;??}?P?7?C7?'??t.)?/9?+M5???9F'J???z??N7?zr c?S???Z|??1????W??}?;?t???x?X?Q1z?N???A????o/Wq??l *p0???C*hh??Rb?#??0???????'K??%?K?MkC.??Z8?o?z??v?1?????? ???Wr????9?????K?\^7?G?>=n??_1??2??????Kj-{{???4?????i????w?c??]??]?????S?s?u????}]???Z???????c???0;?&?k^rBYc\P? ?????^??????'?0?[???.?OY????@k?????p?8R??/??,? ?ux??g??????8????????????j?Z~!g'?,???^{2?n?gh?7?Zf??d????q^N?r /?7?????[??HkYI?????sC??l?????=9???6W??}/?W?Se?yn??.?!?~??Iq?Wy?k$? ??nrQ???"=?z ????/9v.hy?<?a?d??t?j +v???r-X]J?,~-?h?XVl?#???y?1??c??9?]-??k\?~??O?.??}d?]_?Q??U?c?@#]?E?????K?{@?ZWo?S?;??^]?[?M????L'.%????/?O?O e?T????????Z??o?^???T????.????[y?$?I)I$?JRI$???I$?$?I)I$?Jjuo?//?"????[?S?????v?i???^_?E??%x?????????IO?$?I)????X??;B? `?}F?????czn=?;?? ???Q7?|???F?="?q?k???n$??7??t???T +? c?hjj?????,?L.:?T?q +:??|C&Q?{??t+p~???????R???Hi??]??N/^?==?i.644????d??G?s?.d?`>?????~?c?{?6??&f?????_???c??8???:???}^?8?D}e?P3??????k????z?Y??9o??ps?lB??K+?t?????1??!???N??@????g?~????O??G?n???3???????????d9?kM???X5:????}H?wN? +??eE????h??J}?%?X??K??m???\?u?!?????Y?g?,c~?,?q?B???t?I%9?Yz.?W???cJ??S`?Mp?AA???vWD??%?RMOq????_?x}3 +?R????X>?J??7?~???e???A?%%;?$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???~??G? [?RV????? u?-o?IIO????b}m??'?i????xO????}m?c?u=?|D/vD??T???????)??K????i?|??Qy!??@(i??H#w?r?oQ?6??[????u???o?p'^x^?????[?n?\?^??.k?~r-??????}?klv?Z8 +?]RdQ????$?J?]??I$?{YI$?JR??i??^3??? ??t=?6fq4?!??z??????8??X?9{B?????_?,??????w???Kt??.????/???Kt??.????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO????:_?s?.??W??3 ???????:_?s?.??W??3 ???????$?Jb???????I> ???8?[??h? +K?????}r?6_?(??2 +?\?$y!???6???Xi???????T9&????9d?. Q6v?? +z5?mC;?ukm???T8?]1???????&eY??e???8??<Tt????_?{,?????????6;??b?? ?g #? +???.ub[?i?le??;w?????`?eL?????A?+??????5?}'m??????????.????o?Fj???v:?k?]??`$e???x??0???F?=?B???2?l?????W+WNc??^?p??????????]K+???N?C?3??\:?C??D?"U.VL1????#?? +???i?}w&?8?4???0?W??2+??Ui-4?q[?????w????+qqY?5????D??'??FP???????bFL??R???b?y_]??n ?\IU?????^q??s?H????Q?{ t@???C:?y9??X?vn?S???f8?7?7??#?????% s2??>?n#M}Q??n??2?????6Z???2tVz/?????C???u??G???Q??m6W\???????{V9??4mh1?Sr??"%?????6J??ryp?',?}??F$h??8???u[??X]?B??HI$?h?$?AJI$?R?I$???I%)$?IO??ooV???m?Cc,???K???L???E?????}?pg?^???C:????o? ????f\???Fn8?'B?>??ndK??????-a!?R?(???m??????l?'?[/????r????21 1??nuj?{???mm?]?X?V?m~????^< !c??~????B????s?? ??:-???w???????.???jV??Q???p??D??:?? ??_???????????h?N&?^H??!?????_-?[??????4?%?]-?f{\?????z??????^?ko????Ed %?i??>?t?u/???1???y?? '??f?#?<6/n!?XFA???????y[????j?6aY?il???????I????~ jslu?????9_V?:u?}??TF???y?d???A5c?????>???_Wz?:?-:\????j9?p?G?^E???oN?[???r??y???}{??{k??V????O?;p@????V\S?LQ??M?u1?=?q?6??8x??????????E????b?+????=??9?AU??????g?IS?f??%?*?k??o?^???T????.????$)$?IJI$?R?I$???I%)$?IJI$?SS??y????????l???{OV?????,??+?????,??jJ}?$?IJI$?? :?IO???K??k????%s??u l +?????? ?j x?}s?uu???V?K?TR??G??gD????o?????-????????xG/?K:??k?????33??????:??:??????><+_Wzg???K?1??X?.?e???????^??r/?"4{4+?p?ex?1????R?)\? E??????w8????!zCN??6?????^??(cv???[?W??ctf???v]????~m$?????ld??N<?D?!|?I$?s?????V???w?R?????.????qvKZ2H??uZ????V???w?R?>??cg}H???U?i??sO??????]??fN e?sw ?Aw?????r??vC??ZD?7E????=C??C???/???9????^?-? ?IKX?s???=? ???WD??]?h,9g???;????P?:????a????I??)??zYMM ???? ){m???m? c??@?-?????]?]l?????????_??z^5?Y??. +:???t?R?n>??V??Xc??RSC?}A??-?????a?? +???V????@ +I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR???? u?-o?IZK7?'???????%%>A?'??[????+?????+?????%)2t?S???????=I??2???s?P?????htS?~?~?t??<c???l????z?u??WI$??T?I$?.g?9?w?????N????]2?? ??]V?{?ikC?a?g?~?g??&y?(?H?X?q?Ng?+?e??????.??{1????V?nk?"????g?X[k?c?t?~+O?q?L??O??sys?&E???A???????n,????]??????z????d??z?~?|?rW?-]k-??????ec??i????????S?c{8?*???&???O{Ht-s\???k???T?????O&????5e$?t?,x?????:?E?6?? +?????c????@?&??l)l1c??DF?$?I????YG??QM??????\q??[A?m??W?}}?zEl?k]??y6V!??)?I?G??X3?0y???????3:??Iu??CA???FeYy?n??`?]?????97_eX?v??????f?b4???5?\LJh=????{1??"B&{??Q?6Z?3*Z???v??|?#??v???]?T??????!?4??}M?y?O?lc ???~?h:??C_???69?U?xv????z%?????g?um??^P???S*f?????4SR?@H +v +U3?^Qf??[pn??V?E/?}b??oO??[?F??KG +1?\#?/z?/K??VfS??Uv??;t5??f?o?YU????O0|CJ?????oSmy??Q?7????A???@???D=??B?~a??>??????^u4????w?G??l?X?}"??g?s]A?????????kkX??\x?h?? ?=D??????Y?r??2??s?68???????i}y??????2?f???Hh? +Y?????????Ct?l???x??????n"??D"x?@?R4n??O-??2? ??U??????o????h?????c???^???E???>?Snk????!?r????>5]H?~I??[W>D??????c?S8??O??C?+?????e??,?!?Am?????f_?M??% ????X??p?????????J?"?9??{?2??j?????????]??{???S??\??"??X??I$?$?I)I$?JRI$???I$?$?I)??????????J?o?O??6??????y????????l???%>??I$?*=j?Q???g?mf?????;?????H?%W???$ ????o????0=l?L?Yz???q???CLky?}3???P?(}?o53R\?t?[?Z:??~?????iv>;???0??K?Q0???????c?..(??????3??R??G???????|W??[?l???Xb??h=?'?^???z=4?Xc?h}??q?U??????????l?j???iU?'??S\$W?0'???L?{??Iqx?\?0?n?C??????T]???^???puTvp???#????~??1??????Ol???????}?s?0u?^????o??[?????Y G ?>????SS7?q??:??qD??_??9#?]I????u=s??o???#???;????M_\h`?-/}?????1rj?r*e??X?T?:7E???R??w??"D??S3??@????b=??\y9??1!g? ?????nTvk= +iw??6???b??\K?????g???p??L?7?e}f?m8?d?F???p> ?~k?Wz?????mn??Zk&$5????e????????"????t??_F???_-ve??F?-~k???@????V??bG!Y?????UX??????1O??3?8?k??b9(????c:^=?d???? ???n??w?tF????pk?l ???a???k????K[e?h6d@??|?d????!?}??g?rs9Y?N?h?szO?z??l ?l;?X?????????@h?A??~?U??,?????8?#?g???.???? :2??,?g??sx?-\@X??????R??'????? ?m??4??????^.?!??,u??OTjZ??????????(.????v??+??(qhO???5?x???Y??H??]??lv????]r????_??c:??9y????:??.??K?/??n?????P2??_??K?2>????aW?bmv??,.'?4F??????b?b???Q>???U?u.?g??????d?Z2???a??N??R?,??p???????M)G???F*H?//?b98NFB\???c~?;?{??'?y5??e??3????a?j??????d?c#??H?F.H???`?PJ?)??*ckh??"I?RI$???????K?????D???K????l?,??na?}C???????X???Y??2S?#C??I$?? ??\:]vM????%?>?S?????M?-?s??L?t /???M??????xn??B??q?WNwR?M??By??? PVFE?]??????M~?,=? ?\?u,?l??o7V-??@O?D?s???L???f?D????e?RZ?5pi?'?.W????tk,?????{U?s?%[??? +?l????{?b;*Z?}?l??F??K%??????E? +???1?,????9!?*? +_?????? +??U?fnH??O????r???h???m???X\]????N#1F?Asy:x?3?1?uv??/s???RQ??"o???>?C?b4?i??6~???o?YK?ci??????r*???k?????????V???? ?????K?sO??????????a????4}?>(????.C? ?=3????3wc?P?p???????WZ???[?ub?????p??????+.??o???}??m??e?s??G4???)??U???K??? ?y?c??Dp?r%????bZ?:?.???s(9??D?]?????l?S??S?O?Hw??r???U??????%?f??Z +??da[cX?]???jp +.?0? ??????D??%?6ITypx?{9?rF???h@?So ???_?a?l'Q?Z????R????? e???]?Y?fc?p?????=?z +=?}b??m??6???_??*? d?%zY?S?|p??"Lq?s#~+|?}?7?P?? ?O??z?????h?;??7?5??wGf?7 b?? ?%?7?Z12???g? +?b??9???`??[?p??\  ??f?????pX??=??wU????A???U???_?a5??;?????e???1?>yJ~????d????c?8?#?????<???MkX??????'D +??[? ?1???;??K???O?(q????r???????8??X?97?????[???v~E??~???[???v~E????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?J|??w??????u????_??._?w??????u????_??$??B???*?Q??eN?M<T?H$?p??e[?:#?N??-?7OkG?/+??X??j`w?2?JMgK?e??[.????m??g??????T???e????????? +?7?c????v?I? ?? XkF?~???m???S?q??`s?{?#??\-???=????????uO??]k??q?|?7}v?A28r????W???sM???_??i3???o? Gn????xg ????1???????7?~?:_L???x?m??=??q?\??]??oS??vU????J??1?=?n???5\??;B? J`??ty???R6'!)????????lZ?m>??5P??o?X?????-?Z???[m??M???C????U???Nv +E?2.ku?K???X???R??s?m???)???l?x0??1??? ??1??4)????8?O ?a?5G&F +?Z?????i?<[r]??D?X????????_(cMMm?? +L?c??N??}????P_U|?{??^?????5?c3??G?r01??-=????>,9rr????????8?[??????Ma??????:?!???*+?}P???G6???????n(tz? +F??f7??c?h?5?d?6 +v??W?/?+??u?>?W???eS[??cKup???$?R?I$???I%)$?IJI$?R?I$???I%5:?????g?I^-?)??f???W??o?//?"????[?S?????v???I$???uo?[?S?Wc???C???~?}f??? +?m??U=?;??l???/C???????)^y?;??l???/C???????JJw?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)R?8?e???j???^?|\???J~s???\:6c??????d??S????????????????$???i?????G?w?%?O?f???s??{?I)????3?/Q????~????z????^??J|?????K?~?r_???g?^??;???$?????3????????????????????$???i?????G?w?%?O?f???s??{?I)????3?/Q????????r????????p? ?@??_F$?????a?_???n????{| Q$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO????v??M???+????o@??t??n4??&??3?/Z?????q???nE@?B? ????^?????)???g?U??s???????????U???????o?????????????9????F????{=;?G????x#?(]?8???QwF?? /#???l????{?w?????????o?????"DU+P????????d4Y??O??{???????]W?6R?????;??????_?W???zHy_?{???g???b_????+??????g?/?+??s??/?l????{?w??????????>?:p=\?????B?~?bdg}g????k?su-???????K???????W?G????#?]; +???I yIB???NB??O?rz????bc?????????=O?'??P.]=E?n?v? ~??v ??G?w????DhqIo?>i?0rhX??K???-#?,!???G?Yk???~??????}@?Vd????-?Iqe?JJ???t!?:Sq??Y???$?Q?C????p?MN?NW?????`f?????-(Ut?P?0??u';}???n? ?E4????;+?????/d????b??c1??Ra3?)u??K~? \????ve?E; ????????GE?,?\???d??;?>???7?t???,??N?x?Mw?V1{p???????9G ?? +??????fb??:??^???:|W{??>???'???l`?k +?-????}^????]???|?G?&???v??ie1?ER\~?`b?#??1;?Pr?0?2W??>O-?W???>?V5 +s??e??cO?%{?D4 ?????1? ?'????2?TY???v??@?$?J$?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IMN??%???Y?RW???Y??.??????y????????l???%>??I$???9???b?????????????fUk??}F??3?????^???Zi??{???????p??7?bft?????`c??B??? ?O??????N?up#?c??wa???][?U??7???\9 EyE?[?GWuY /????5?????G??s?b??7????&???W??A3??<~?R?2< ??I'???I$?$?I)?????+`????z?O?H?????W????[?%??K????G?????RS??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???[?K???????????g?]??z?????g?I^-?)??f???RS?????????i??~??,`???k7)?????????mh?|?^o??_R???????^;] ?[?A????????9??5>> dN?r??P:3?????|???r??]r?u??6? +?h???%I????H)??:NU?v6mB??#P|A\????}_??`7Qx=;]gW?KWt???fXf?#(?????I$?cRI$???I$????g????????Q??#???G?+???g????????Q??#????IN?I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?????????K1???SH?u ;?x??????????]?????S???u;??3???l?d?Dn??????_??/???~???I9~??X~???????????????=w???0,D?????_{?????v???]???? ??????"Iq????????g???????????]???? $?????W??????^???]?=O.????5?n????u?}E?????*?????b???M3!?????8s[??c?w'S?Kv? O','"e!????O?$?o??Zr???7P?w???{n????????????uL?J?Z???<}?]???}F???V?????Is??????r:?&H}H$?w`[??????? +6c?=??????tl:J]H?b8?????Iq??>&N????_??????En????????:}x?e^??????????+??????Ibu??_W????? +??nk.1??????N????? ?wq???? +ut???u$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%5:?????g?I^-?)??f???W?u6??7)??S`w%?|??:??????f7????????)?M4????}f?C??i?????????????)???????????????????7??O????^'??/?o?8????K?o???q??????lIx??e????;~??`????g??5$>??{?[?????????_?z?????K?Y??v}??RK??????~????????p????????r????????_??_????>e????;~??`????o??5$???y_??_????|O?}`????_???_???[??O??y[_:??z?.6N+Y?j???'?@w ?_UO!?c\??H??M6G???8????? ?R$???>?d?)Kk?????????????I?? k?]vW??>?Z???2??t?a??M??7????z??US$??l????R?2?????z??c?:?????U?7?o?=k ?-y???????!T?????????\???~??\4.o?[eu?????????,cZO%? ????????$?z??????!??????9?=P9?d?z?q??8??.??YU????k-?^?*?????????m?R??8???WUU???`?h?!Lk?xG???7??|???I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*6t>?k??`?????ki$???I)???? ?+?????r_?{??~?????Z $???ot/??????????????????h$???????????o?%?7??W???M????Js???B????i??????_?_??m7???I)???? ?+?????r_?{??~?????Z $???ot/??????????????????h$??????#???W??????4:I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??5????__???ca?q?"??hg????w??_??????7?,5???9k???%}? +?7? +????&?????~????6????U?M??????c?6?hg????w???C?????{??WI+=????c?'????rm?=??????????z??V{????????C?????{??/???&??????IY??n???????g_?e?????Z????+w?G?N????]# ?????k7?I? ???_???????(?\?s????<^??pr]O?!?"???Y?????^o????V ?=?o??]S????? ??F??W?-?????P???????*??? +??T??:???,$???+i? +.????l%???#?? r???9V?t????d??l ?k?? I?l^??~???????W???? ?d?@?p?ZPqQ?"_??i? +??t?:?? 2+n?a#a?yZ????6=????W????@????y?/?k?6?a3?qW???>????O\?vK??;?k?s?6:???|=;?B????y?T?s-?????{Gv?G??r)?m?.:4n???S?^?~???FS??;i.?]???yC?^?\???_?s/????w?Xy ??c;?? +?OQ.???;???Y??=f?`?? ?v?,`?v?????y?X???V??? 1??M?~t.??-?Y?????oM????????v???????]??v??????Z???P??????????*zJ????_?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?~??M?=O???E?6?@??G`??????????????Z:gC???K?\ ????,??r>?x??m??7?&~? -l:?5?c?q?PD\F??????????w?%???W?OG???[???}\?????j_??}\?????j????????7???8???u??}??????????????g????7??K????7??K?/?sW?{????o?o:??z>?r_??u??}??????G?????????G??????????????=?????7?7?_?={??/?o:??z>?r???#???????R??#???????R?GK???????~???C????wU?2?jut?\2dGp?[zK??W???sjn?['A?? gt??=?????m??0???1HcMDM??A???I?>?t~???n???k?w?I?T?_A?}"?i???e?/?I2??)f}`??7z??Qh??????,?Y??d1? ?2K{;?G?i???kt???'???0i?????8????K??]?=+&??}r???& ?p??K?p?;+????RK-?X?k:?z/?k?? +?????K?= +???I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????7?)??K?]???????????-~W??y??'?T?I)?)$?IJI$?R?I$???M??6???I^??s?o?)????J?5???9???l_/???????#?9??T?_\??G??t??????c4???o???>??,??????????y? ??^????#?7??> +"?????v +????\??U@?c W?[???>???r:?\?n.e,????5Y?_???N?f&?d??I????;?%k??o?W??#?X???N?>????????????z??x?Ww?rq?m?A?v?)D???*???|_?i0_I?U?Z?]:?q?????T ??:???cw????J??S????????3s????????^6? V????l??_'?????^sc"??? ? ?????Y??k?T??:??q??=??[??-A?c?f??????A???????;z]_^?T???????U;??E?au^??>??u???]???=? 2?_??Z???9[??X?[[??s?i\???\???\?????????=2v???t7?????'?<7?/????????bu ????NK??T????5[_Z???t????qF_P?h??~? +????S???T?I???V+?6K???`????K?ddt???-??K??Ya??q???!71???????W?^??????=?_?y??? ???W??????????0)4cZ+???0H????_?X??G\?Qs?E?zzm:?r?:?????_?o??T?/nM at 6??????5 at J?Md???? +?+???G???{????IT????r??????I?I;??n??????I|??b??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$? ?????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??????$??>????8???'c?????3???\?????????+x?A???}??}_P?C?4??8?????????)?????????????P??/??//I/?=_??????i?q/???K?????K?W???~???_??K?????????????+??V~??s????q???????W?????T?l?0???)???O??RK?T?)~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J~?I|??J?? + +endstream +endobj +26 0 obj +<>stream +H????n?8???Q?fWHl??H???????????ib???c?0???^?#?+??4:[?:w??_p>??c?' ?7E=?Z?c?I6T???oUI??zmM?i????s????????????6?x??HY*?t?U?f??q~??{?XZ????s?u???c?{)?h???\? +G:[??? +V?Fy??L??O?????Z ??{??????w??? ?e^??`?9?O?Of}J*?O?i?e??|??9????+?P???(V~?_???|?mX+?'8?m +?EY?5Gs5???AHCXCDC????Au?Wx??J6Ts +;?e(?P??X[????D?G?e???9?v1?^?+? ?!??o??;?O?$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB$DB?r68?a??j?e?P]???? ?X{? + +endstream +endobj +27 0 obj +<>stream +H??W]???|??@y?+??/????|Ip????????2G?:????g???&)j-???L?tWWW?y}??}X$???M?????[?I?/?IV???b??y?]?n???????ns?y???d??n??z??????c????:}?n?>??$????+}???O9? +^?N'???j?\??o?mu??`t???t?nY? +?/??59?F?????Kk??a??2?????????????R???g??aV_v??6??S????Eu?)j?*???=m?3??;5???Rg???-??F/j]?????r;=Y??tBBO??m?E?c??i??exnK????pc?????y?Gm??Az??+??5F.???E_.?NW??7???V?N?? _qhq(?????I?1`Dl$??D?U??gzU??v???X???vW??????????,$? ??-Bf??9>U??F??0?3??????????0&??Z?k?;IDLT?s?o??Ccf??????E????'D!K1??up??"?????d????9Nsj??X??q?m?eY??w?!??\??2??w?0???G8??##??~?&?????s?????1??k?WY???OC?k??R8??l??????9???ZWb`[?/??Lc?r?????????L??12?#???>???4??]p| [??????d?u,]????L[\C?e q????T +^????YT??]???+??Bn/?;???? +??g?`????U9??????e???,?. eL&F?q?_?q?????IlX?k"???5U?'#su?9????mE??N??-???[D??~?x.?????u????????Lso???>??m?~? ?nb?-4??????J?c????r???6m????D????;?:?c???i?TI1??Q?T?R8?G???x%%m#J#?j??????????W]'d?YS"?l2? T???>c???@V???(??R*4??Fd??E?K>??C???UZ-I?3?)?;???/5???????r??|x?V7?-?u?$?c?????R?@??AE-?l??y +????l??X?8?L$?A??U?,?L ????Z_????????7??8??2?Ym?b?'??/?=?#ku?a????8??'?-?$??\??g7V??{F???@?P?????LE?%o??grR??]^ +??7eg?c?B??yM|R??/.zh??:+F???C?WH?j???9u ??`|uM??N"?j?d??? wM\Uf.?v(?aFBm???A????X???@?"?Didy?UN"5??PPqB????????? +??,???sa??;?b??lS??Rk?B??? ????Vi?'?a?t2n? +M?R;"???3???,I???oQ?`Vql?e|>?B?????????ty0g!?=?0U P?8?d?=?=?X??5S?Qq?H??RC(??V????=4??.>?e*_??j??'?l??2???)s????%e?2?0??-w|Cu?-???NJ _???Te}?]Bj?????u????$????? !YM?U??|!X?N???&?8??g?Oe)`Qr? +#?6f3?`O'?u?*Ptgx????t?Mz???z?W????N%???$t]??????????|???&?f"???c??1^????MS?:P?\? ?]? +c] RQ?L>3?S??f?\?~?8??#C\(~?> +OH??R?@}RS?4???4??[???H?*?GY????v0??y??Y??a>??0??m>6?Tk?????RER???????????? ??]??? @8?6r??m?\???????C?:V)=??hA?N?K??/?? +???QRr?ww?&v?1c???U3?b`x?.i????f ??Q??AG?j?{??? +??U??6 D?? +?:f&PK?-???v2??Rfz?b??`L1???}?+7Cr?b???????^6??1?%???6??h???c??p{]I?2~R`???iF??k?I?v[o? ??<)?% ????i?{1?)?3?? ??O=??? h?N?9?????F[? +?h3???A???????-+@T?}?? ??/??w???z???`,tLjG?|?xB?yb@??4t?$??O??\)? +???)r?N???<7R???? ?????+P??K?n?t8?n?????@????f??d? B?2V???L???0??f3?c?9=4\$s)?<????T/EF??????r|#??J????`?=??&?_? +*?? ^??????:{@? +??b???????3????&?Vo'w 4;& ?MN??; +????wm?< ???DJ#f?j?A??^?r??????? M?-?2?p??'?A???????[???C????1?8@???s?H? 1UJWea?y?*KP?kd?2^???~@]???D1???/?????_?????0???`?D?>^N> +endobj +29 0 obj +<> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +endobj +30 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;??^?"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$?????t? -?????m?*_?X??]2?????????*fI???p???eO????#????K?Qs???}??)?H:?w??????????$??i?OF???W??J???K?????3?o?/???G???"o???q??????$????????_?W??OG'?????K?Qs???}??)??8??????????:???????D??????$??U?_????5????T?XD]??VkD??????$??;r???+????H?????(???x???????g?;r???+????I???1?tl?????!?Q???.g??/???R? 6V????M??u?%??????_?W??G?UT??3?k????r???,??nW?S??_?I/??????_?W??PI?E?????;?????zL??nW?S??_?I!??,?+????J +u?1?C?Qs?????(?][0?-#+?OI???{??sp???'?g?I/?sp???'?g?Ip?'??}????@r?????????????????$???????????%??????????????G?{??sp???'?g?I/?sp???'?g?Ip?%???????-??>?????/???????K??/???????\:I}?}?????~?O????7 ?+?~?????7 ?+?~????_z?h?*?@r?????????????????$???????????%??????????????G?{??sp???'?g?I??t???}?&O???"y=B?????g?U?}???%?????+?g?Is?(??Yv??c?D??????=?8 ???????$??????????_?Is???k??/??'???|'?OA?????_?O??u?$??nW?S??_?IE2???\???_???O?p????v??>W????????_?O??u?%???\???_??????????????_?W??K?v??>W?????K?Qs?????*???zL??nW?S??_?I/??????_?W??PI?E?????;???p??3???_?O??u?$??nW?S??_?IA$?3?k??????????v??>W????????_?O??u?%??!?(???X??}??$?????'?eG????$>?f?#?eG????)???*?????(???x???v? +???????l?????%?;r???+????J'??/?E?????;?????x????_?O??u?$??nW?Se?_?IA$?3?k???????????????_?W??K?v??>W?????K?Qs?????*???zL??nW?S??_?I/??????_?W??PI/?E?????;???p????v??>W????? _??!?/wG? +?????d,???T??????????_?#?? qKR???^W????=\o?????E????????A?????V???g?(??k????qB ?Kz???o?v??>W????????_?M??u?%?O?E?????;??????1??,?*?_?I;???7????????&???? +C?Qs?????++ ,???v??>W????????_?O??u?%???\???_??????????Z?$tl????$??nX1?+????H??? ?????(???x??????tEw??PCm?9M'Q??%??z? ??e???Y?k??|:g??+???c??????V???#??'????wn??u +?oH?kx?????G??a0:^V?l?? u??????M??/???1??@;_?V?a?8??~??}n?"GG??????I??nW?Se?_?I +?A??S?????????-o???????X?32????~;_3k? D ?k?[k ?L??????_;>o ?d?bc3?????kg?1?I??y???k??t?{?\??fEu;p?6??S????o???3?U?m?Ap????????zf5XT???[????g?}]???WX???Qv3[?e??`??uxR?2?dF?t4??????X[??t??(?"?5?Z????:?? +??7L??/?[??P +g??76??w????2q0??_P??$W??|?L??_]h?X?$gb?S+{??+t?y?u ?8??dG??G???/??g ?9?[??7:????T??>????j??~?}\?9'???o???-?<%`7??`??}f?????5?c6YaPY ?}d??/M?????W??????#???@k@???h?Z]w?M?/??sj??.??j?{+?gkG`????B???>??3iu???V??i???"v??c?(?????5$?H!I$?JRI$???I$?*?G??a[??H????F?@+)?D??)???_??????58-????uw??7?8??l/????W!?5k??c????@w]?S??t??L????????xG?D? w|?:I$?JRI$??????z?oTfM?C?1%??k?h3??v??????g?C?"?4???2N07????$?3 C?c?y???fvE????>???5??????_V?? 1??lk??????s?U@?????????????????|???R?Lg??zy1???7?)???????a?e??}?????I?????????l??+?.[????????????_c???r??????F??l???"????P????_??????+??D??sl???6;?t???m??????V??;?4;M[g???O?? +?U?5?J???q???1~?&G}4??1?d??K???@G?i6>?^|?Y?9??6??SO???'/???g?I ??o?j???5???(O ???n^s??d3 ?????????t??,??"7 ?+[k????g?I^L??~ +????X??n ??8Y#??>??g?IC?o?O????e??%z? +"_??????)0?M ?s?f?d????????JL???????g????????E??r?&w?&??>?q???????$??7?'?????Y??W??E@|C?"??;??0?v?-C??7?'????2???o??X??3???g?Ii????G?!??`????O?-_?~??NgO?2???T??X_P??a???Z????????U?_?/?YO?????|?1?? +K?Y?_O?6???_c???r???????_????X?n??h?/???????l??!?????s0????$??G???????"2NM???l??????????gQ??????$???>i??l%????????BB62Kw??o?O???????$??????3???g?Ii$??C?"??9???s?f?d????Y??M?7?'????2????I/???E??r??$?????s??????$?d}Z???_?? ?g??{??0?|???VH???N?C??G???,???????O??t??'???0?? ??L???#/???J at f???z???????????O???`?l |6????~??N????*??,x % \?ui??0?BG???]?F?v???ki0 ???zz~??^?R???c?y?y?K?X`????)}Y????b?C?rV???(>!?%??g??Z3?G!?OW?w-??5tl??u??????????W??V_K{? y?`dq@???? ?????O/18?& ??}?t????u???C???? ?[??0--??????????V?????G??Qg?? e L at 4m??ry1`?Q??& "??w??y?'?t??f??<????^e?k???Nk?i +|?d}i??_??? ????~'?Z?G+?r?DG? ?=,???w/?y?y!?9Mp???Pz?????????_????}?????o???????~+???????VO?9?????!?b9c?z???w??9?f g??]???o?|?`??0?#????,??)??H?P????2??y????#?+r????? +C????[g??'????r??/?V|P?????a?R"$ ?N#] 9|??5???&i??????>?e???ul??mo??_???h>?R?ts +???l?q?????g?*??7a3?!.(????Ns6h??SZ???@?? i??4>????j?????G???z????????Fo?(y?z#9|r??k?N??9D?#?????`???Q?*?99??~?O???,??&??????`?g?Ii$????,??S?9'7?o?O???????$??????3???g?Ii$????,????9'7?o?O????e??$?N??9??????????H`??X??&1?5?I??7?'?????Y??O?7?'????2?????I?0?,??S?9'7?o?O????e??%:_?+X??n8A?Y??Z?U?:~i?0?G%??r???}?zuy?>??:??????x???C??a?????`?k?I??K??[?????W9?w??r?qO????`?7?.L????3?G?o?O????e??$???X???zx??,??-5_/?W?*????,??&Z??K at O??????"????x????????3??????T?G???+b??? O??? ?#??-/[?,*????,???j0????????w",?;????">?Z???h?Z????ob?#????????s6p?9Nk\S?[Dt?TPy????? ???xN??O??u?=K?@3-m?????u????N?m???];?????????.SX`?????Z5????????2H ;??>???04?E??$?f?d????Y??ZI.?!??`????????????????;)??5??N??.?ea?Ig??-U??l????P? d#?[ +uk??!d?N?\?X???{?g?5????. ??k?H??7?d????u\)a??3x-? O????B{W?i??>?t????????? ????Ou??C??i???,??5????????I????r???????gu???d +?)????{?hk?9?@? +???/???X??5???]??m4?????????gP??:?N&Cq?k????\?2]c??????y?O??C?6?u??"?a?????dz ?p?O???xx?Y@>)?7???N???????????f??X?a?!???????S=?~?mC? ?%??K???????0???Y},???cC?>J1?e??/-?.9c???U?I$??T?I$?$?I)?_????oX????`k?????x]?Tk?C?h???9????W??????&?b]?c????Q??o???,X?_?Yr??*?????]/???Z???2?9??p;4?????z4?P9N?Q=??G??mi]???33?b????szNc3?P?????;K?Zt???????8?2]V?}????d? +,??7??:?????Xk?????? ??w??:????????Y1:???} ???????????$4??{?R??????U????}y??????lBE +???h???&??c?G?*:?{?*RI$???I$?.?b}l??e\??S?????[?@???M??I? ?0?IC??N&'??K????L?Zz\{H??h]N%_[+???ig[?? ?I.~?q?y??/??1 ?,N?S?G???????????g?WQ?o????Y??NS?????I?#?g?V??o???????????????????????f?6 ??t???(??mg? ?4??;?m?g?6?????w?+???~)p@?????+h????E"????:????Eui&?9O????'?.?%][??A??c??R????]G???+?I/?')????Q?2l??????]G???)G???????????????????????????????oX??T??g?WQ?o?? ??K??~???Rs??^R>??m??????_??????k? ?u?%????w??*?,^?&??l-#?u????"?0?~?W?,??^??+ ~E??????^?b4????b???$I?)[?????x??R????]G???+?IE????w??,???R>??m?????[?????x??WV?_?NS????zO&?}lp??????????lkc?u????Eu?%????w??)??Uo)[?????x??R????]G???+?I/?')????G?'?????[G???)G?????????????????????w?????t?????????????????]Zff63???QP???_?NS?????d{^R3?)?2e`t???c??(?z??????~??{`??d??l6???-o?u~?????R??W?w????G>F????Sj_?? ??B(??p0???qb? ?&??.S?o??c???jgK4??Y??[(???hM???o?u~?????UN??0???^?~?v?]??^????3|3??"&/?e?G?)J$??ea?j??Z??S?@?Wn???)`?}l?!???X????\.? ?????H???i3?Z????P???1:'????9??????Ot??~o??Mp?@??l?qq}V????]G???)G?????????????9O????c???G???????????g?WQ?o????G? ?~???U?K??ga?l???gRu?m????????Ef???? ?E????Er???^??????r???*?x????8??????c?g?V??o????Q?9O????1?3?x???pv????.????~??H??[#??#?.?$???|?]??f?H?P4yH????????"?}l????????]ZH?9O????????m??????$???????^??R>??m?????[?????x??WV?_?NS????zO)[?????x??R????]G???+?I/?')????W?'?????]G???*??k?:m?????K? ?~???R3??????G???)G?????????????????????w?????[G???(lg???f???1????$??|????#=???l????UQ[????g?s?*??%??{?_??????<?}/?M???g?H^8x^?????_????c??^N7?a?o????I$????I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)F?????????? |?IO???St???'???u5??q?vXU?6FW???a? ?c??f????p????$??b?S???~???/??????[?$??b?S???~???/??????[?$??b?S???~???/??????[?$??b?S???~???/??????Z???S?m??z???]S??+??Z??}^?N?U????f?U?Hb7y$7??Ui?G????T?????/???O?+i??z?G?? +u?^??4?YfFI?_? +?Y?P??u>?nnV??3?]eZ4? +IG?Q????? ??1~???m?r_????V??+?K?F?W2????{,i{?V??1????????? ?q? ??/5??/??????K?b?S???~?k??e?}ox??l?5}6?|???}[oR??s??f????K?tBU?J??t_????V??%?1~???m?r??9???/'9?J+s??4\?A???;?e?Xz??d?qu?????c????????5??????1~???m?r_????V??,^??>?u,?{?????s?;p7???N?G?W?f?i??c?????? ???N??: ??Wt +v?}??1~???m?r_????V??*?P??e}b?v[?XfN;?V??E?wV????t??l????c$??7~???"(?????j ????1~???m?r_????V??+??Xz7N???7)??\???pv?)???>????t??dzL6A'AK??????O?b?S???~???/??????Y?\>?ul???z;*f^o?dd6<(?R???r??oB?m???F??????JQ?o???Zo??;gO?b?S???~???/??????\?????W:?zk~6??????{?lj??????D??k?Tj}N???5?x?n?H] ?z?&???O??????T?????/???O?+i???K2?)?f???x??GH?4?l[??1~???m?r_????V??-??S??1~???m?r??~?}U?}2???vd?????s?V??DS???R???????*?/N? +?c?J???R:???W????5|?x-??:JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????g?s?*????[3?9??TY?????/?????K +?>??&??????/<?}/?M???g?HV9_?^N7?a?o????I$????I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IMn????p???v?hi{??^c???G?~?????????t`?9??A??^???FU.?"??M?[???0??????x?8??!???????]?????z??WH?????}?=????+???%K?_U?{ ??=B???w??,a?O? ]_??????/??[C^?a??%>B??:?n8?8A}l +$xHJ:q_?u??u???x?????]?>K?>w1?*????ut??? ?Wa?cX +u???0^?wO??"???e??5k? ??*YX????*??K?uo??"?P???y?I?Ox??o?S}g?.??WQ????f-;??8??ON????N???f?{???2?v?A?^????_M?01*????&?????W???`?????7t??p>?????-;Hw???{e?}M???C?Mv??H%s}b?3??N7?Z]???????O?zf-y?????.ac?B????r?'JwK????Z?zA?m???rmX???d?????}x?7?732? ??j?]?A????<*q?2 +??5??? ???6?de?Q}??V=????(?]:??#?Mz????K??!?W?zX???u?a?0?/w.+???:V????=J??????YcF?:??U?`t???w~?????~?CfJ??I?n~5Y!?X-ht)D?\e??? +"c?????e????????P???????8?H?7DwO?????????E?R6?]???zWM??n&V5Wc?6T???@*X=7????X8??VL?????$#?W ??x??Z??????x??~6g???:???m7;:!???Z????+/??u~??$u [is??p? H?:??z>J??I?f~5y-a??Z?S?t????5`cW??sjhh'??=x????d??~??????~?t_?G;?W??,?c?Z? ?.]o?ks??'?6?d???Y??#?]?fu^?e,??e?8H???>?}Z????x4??0???d0?%??-l$u???J:????K?D??v??FY_????>????k(U[*??0CX??? !M:F?Oskb(?)$?A*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>=???\????UQ[????g?s?*?????17???X?W????7?%??!x???c??n/?K??B?????q???x?/?6?I%m??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)???@???????T?elf??5?'?g???;?5?I?????X?"?v?C?]M;??n? ;?I?K????q?F??????m??{??!?<????????,?? ???,?#kv???;L{?{gK??q?Y?R???K?9???B?@????i$?V?$?I)I$?JRJ??s?Uc??;?4???X>bS3??K??w=??k '?IM? ????|?D??9????VF???=????RSa%[+?t?2?????]?E?k'???c????h?2??<1?5?? RSq%[+??a??????????c?qD?????????????>????*?]G o??j???}W????B-d?-???V???? )"I$???I$?.C?G?^??sC*??{d??~??F??\??????W(?????? +???5 y??X????}e???? c_S??????X?"???????????q"T:?>??? hX???X>?e0???h ????~?????S?Gw??????\?2?1?h=?????h?Y?~?8O??o??}??o??o????>h?/??=???5????Z?o?????[???[Z`????^A???_??{??? L9|d??k~????t>?U?? +?5efd??;?"Q?H?F|?)??????Y???V???zo???????]???%Ai?s5????g-C??)?????????1???????9?a?????w?????m7????79?<4F? ????F?u??u??????ak??O?Z?}m ?5??s??6?B???G?g???p?J:?? +.c????(?j?m??u?~????t>?QU?????C?@???.??G?W?o????K???????Z??_??{??? W?qv?j???[???j_?~?????D??N?????????X7?}mq? +|?RwP??3?????}0?g?r??{??? Y._?u?j3?}mq??u???>?L?i?o??Q??"?????????@?r??????gS????}?????o??o??????/??=???"| ?0h????~?5????Z??W?o????W-?l????y?????|9ldY?G?W?o????K???????Z??_??{??? ]?\]??????????Z??_???C??$?????C?@????~??_?/?X?w3???QV??Y??a????????????/?>fx?)J6o?Cs??y@I??v?>?}j?. +fv?????_???C??gtO?g?-UW???9?)?e???????4?~??????j?m??u??(????G?@??\]??????????Z??????g_+S?,? +?%????~????????k[??[?p>??/??m??????m$???????@?????????8u?????????P??W?/?$???????@??2h????j?m??u?~????t>?QG?;?~?? ?u?????j?m??u?~????t>?QK?;?~??? +??.??G?W?o????K???????Z??_??{??? W?qv?j???[???j_?~?????D??N?????????Q?????t>?R??????}??$??w?????\]??????????Z??S?k??k?j??_??????C?@??????X}??o??o??????8u??????w?????}?x?>????????9?[?????V??/??=???(`??G???????Z??O?k????h?}#?G?;?~?? ??qM? ?[?&p4????Y??????u?????t}????{??? Y_?4t?@?????P?+S3??mq??>?U????B???K?;?~?? ?>h??'??????Z??W?o????W.?5]??=???&?2,?????????}???X??b??f ?xz????|W?R???'?1??F?@3a???`h???_???z?h?f#(h.??~??L?????P????(]???L????{????a??Q?{RI$?5F???4}f?4g[7???Z??[??^9uy???WH??vC?????c?\??020?c??v??9$?J???A???D?N"??yD7?gP]? sA?o?K?zX5?c??Y?????p??f????????[??v??&WM?g?^Y??????t? +n;?>NW??T??3?????/???vKDmw?????????1???TK6??(V?J#H????{??!??S?)v?t????}c??P????_Y/????????s??q+?YSs:?S?????-???????W]??>???]GU?d?8?????w??R?????>?????lO?A}?????'U???{k?????????q~??????r????R?v4Lh>J???oD???~??c??AuU!?????>???k?u???mfs??u?hpt'??}N?__??\?i? +r?[??:48~_l??????;???g????I)$?IJ^g????^??v~???Wmd???3cG?t??L^A???_??#?#'1 2?g ????_?}?cp????kv?6????,?=`??A d???#?7??3?????%Q???h???`#?t??-??????K??????????OfW???[??o????n`1?*??y???|?\c??/nr???Z????c??9\???????@???e??q????e?????L??/?"?k???^sq????e????????E??*??7%????N_?E??g??????<OYr6W??Rv.P????4v?q?(]????WQ???S?Uo????Q??\??Y?Of1?2??kw??????k??r??:g???????U]????g??????????'??(???(?r??6-?^??O?o??????m????.???????,Dpb?_?:????9?????9VI$?ubO>?ro?}X??[??r?I????????CG?????a?>?U????Q??c? V?????Zv}6?B'0;???'??5?????z?,?^?r??C? +>?????"?8 ?C???? ??J_ +|?O??3;?3#???@+?????$????+??>??6???Y??????p???(1N1&x?R?M5????????5????????????r???G?????;?X?.'?0ie?1??9l'?$???????9?$?"?????o????)n???????"?4?_?d?>_?GG????l??I[???"?Z?????_?Et7}???O???g?(???^???'k{???_?$!?????+??????g?)9?{g?????q" ?????r?????c???WL?w?????I??????\r???m??a?m?i??e??????????a???U??????????????!?o{??/???4?Y?d?????}Z??????e??k{???_?.?%G?3???????l?????v??????_?*?O??pnM?fF?3??Y +Xc?H???????????#?7j???^9??:????:x??? ?P???Y?A> ?\??/?l?????[\?0sG%?0???4?kS????1??? +fl?$?W?|???0???}*^??L?t????z???j2???uD4???j?j???Q???????????????????1,uX????v??? ??H???&??o)???R?????eu? 6??;C???&9?[#??????mWe?>?/%????0?: ??/?>??2:????????N?c??]+??h??????AX?+????zW????-?????4^a???????????onFN???{,q?Suo?v?UO??}b??? 6'????Tv????4??$? +RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?J|{??????????????l????UQf???b?n??????c??n/?K??B???^?????_????c?????????z_?m$?J??)$?IJI$?R?Ll???[n??>? G ??T???k`???SHt^?????-c4???Su?????~~-y.?Z??????????kG??t???3??????1?R?????9???f???m?*?I~?9?C??C?V s???????*?M????43???? +?I)??=??7????VK??\?? +?& + +????R???$???I%)$?IJ\?X??WT?~a?uF?X .??k\???\t.?G????'~?N????????????0??'b????uvv0~?????a?\??@%X????1???t??????S???]???C???c?:??v>k?????O???????sd&?`??????????z??3??[???T????O?????????????t}???vO??Y')?2?2??jO???1??A??5??~??f?????????gO??/???S?,????&???#?i?????????r??CI??J???????t???????U??????r_?~C???_?#6A????m.qw?^7?!iQ?M,?XH`??S?{?T??:~???????gG??I????K x???>o????F??G??????B?:S??X?????8Hs ?? +??9|@W?[C????????????? ???[??c? +?_?[???K?k|???J???!?d?/????v????????????r??_?~C???_?^????f??????????????C??G???*?g???5??~??f??????????2????W?>?/?????(??1?6r?R#@P?+???Z2?d????.?????B?@?x ????K?&?C????????????D?FoLk@??J?J??D?N????X%?e???????????Ha$??_%???~C???_?>A??C?47?A??_?[???K?k|???H???#?i{?????f?????O?k|???I???#?i???i~?o???/?????+?%?????????Q???K?k|??t??S???"ah$??G"#???K???????????j6'????-?????[?)????10?EKp?$H +#P??????r_?[???WRU???????4????>?t??A???,?,i?a???I???#?i??J?-_?[???K?k|???I???#?i?????f????????6?_I/??!?d?/??? ?I?????????`D@*X?W?a?_""!m$???-??~???????=?s??????5??~??f????????C??G???,?????????J?_?Z???C? ??O???8? ??,???@?g_@?t?????9??7up?RIX??!!?<?m{????d?\??W??2???3?sk??<??zwD????????&?Py??*y`?!b????YYm??4z?v??k???D#F?z?????@??????}??W???c??8?????+3??c?um?(??5?'?>K????????_???7c?c??n???Ls???????T????4????>?Tw?$}?I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>=???\????UQ[????g?s?*?????17???X?W????7?%??!x???c??n/?K??B???/'?0?7?????iy???? ??e??K2???vt?@??h?]??????oOe???xk??|`. +???|??????M??on5????m2??gN?>??=T????1?i??qz_L?y??? ???'???~??/??Z??????^??c???? +??m????^$n?*????????2?.=??5???k?[??x^?q1N@?4??4@??o?w)?qq??4?T??:?X????M???/????????????>?:?~m]Z??>???>?v3i#??Y???<.?}]c*???c#??????o ?^%??j[[CA?4!???f=?"?Jj??c+k]?????j@?~??A?????UYg?;K?[[??????,N??>?t?:?_??1??$K?_?NY??u]S?d`]?2XO??T:??????L???=?.d?h?2?? ?i!?Q??.?b{ D?_;???c?_Mf?W????}Kr\??? +??|Wi?2???T??k?^?q$u!tx?8XM,???v???SC>{@E{c ??8C?D?o0?????????c?????????,?? ??X???Q?m??????S??4??j?Np???I?7?|g>L??'?B?*??~??y??N???g[???2??s6W???>?^????&]?????????E??.??????x?[??V?(?e{P???W???~?}c???[?f??za? w5?Oo??>k?W?S?zW???]*?????f??C??o?-?z?v?"??}?V??o??:)$?A*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO?u/?G'?1??VVz????????.r4?????!???,x^??? +????@????#??m??_?g???9??1y?:??C??Ye4u??????c[??%?/*?????7?o?e???.?6?B$?@??N?H?{?A?H??_Rs???O??3??????SfC??^????}s?????q?z?????????????C?Z7*I$?R??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)%?????5??x?x????mm?;???1?Rd?^?V?=?5?? 7.??c\??v?????4??$ ???????ew^b?????twGIJIP\??????y?u???d??e}/)$?IJI$?R?I$???I%)$?IJI$?R?I$???R??r??Ueg??9???????'?K??^????????????o? ?? ?0?Q?????|??}??<5??p?y, ??I:?R???Mf?^+???? ?%M7 ??L? h?m???>H?z/?????Y???u>??\1????npc???????a?X?}'???:~(??????p?2???W??n????q?u??k? ? ???c?S??>?Uz?{???vO]??C???n???????????V?Z??A????]}_????>m?i??+y +????? ?$-??O~W?:?%V>??K???? j~?>I??Dx?z_N.???????????i?5?4|??????0???c~??pp+?z-T,?????;? ;?? \???cj?????s????tV1?c?]S??1??????????WW????:?G?t`H9????Y????`? ???4???g?? ?~?S??2??+?>???U?l??^?????GC7?Y?????q-=?fS????????=??z/?????Y???>N>M~?5???7???????????>???V[?3Aq-?v?v?Rz'?_????k?,?????(????:;??w?I$???I%0??V????? w0???qZ?2?E???y??~?o?t?5w.sZ????I:??7?\ON?????>3)"#B??|!>kf?I?-?h]Ns3??O7c?O?u?s??????l??????????5??[Yx??i>?q?=w??????A??DX? +?pT!?)9.R?t????????n???y_?????????+???*~??????j?7? {?zJ??#?g???????=O.H??O?!??ujj????3???????Y?Vq????c?Z???VnH???}?E??}\?5? ?M?????l?@,??r??z??g??2q?q4>_6?=?r???8?????????w??????2???????c???"?????}???U?{?d}?????._???b????Y?????_?/?????r*?=??????"?????}?????*????\ ??5^????6???????u????????????r???:??U????????g?0?9'tr???\6z?O?,?????%?u???????????o???8%??o???8'}??????????}???????;:?f??-?b????Y???????9X?/[?\??m????U?{?g?|?;? ???O???N?"4?????Y?????_?/?????r*?=????0??E_??????C??_??????k????,??????/?????w?????l??????K???"?????}?????*????Z??/???_??~????????n???y_???/??o?,????b??S???xK???#~???????????q}???[????W?????????P???{??Y???z???o??I???n`??(9??????@???5??q?q??v??????W??w???u?????????z?f!?p?L???X_i??L??????|????d&??.[???.P???J??'=?????r*?=???Vn???_?????????e?U? 4?Z/?W5?????????????;????U?sp???*?=????????W??????????*???f_??y????b??wRe?cz?d4??'?A?????W???????c}???3?? +?%?s?2????m?[/#.(@??>3?/???6?k???f_??y????b?zVV(?ucC??????a?????o??s|?;? ????c:???[?e??g??n??(????????'????K???"???????p???q????X???=??kO!U??~???,??????/?????w??????l??????M?????W????~????W?Xv-?????w??????2???????c???"?????}???U?{?/??C??U{Xv(??7:g??i? ??????k?O:???r???w????P?7y?b?????}?????+,\dp????2????????f_??y????b?}???U?{?/?a?????o?????????????Z??/??????w?M?9?j8?c?`??f~[??F8???S??? +??l;???1W)??/??wS?? ????U^???l?.???????6f???=_D~{?T????9 ?8???^x0 P"?v??e??g??n??*?Q?????????0f???j}???U?{?gu??CK"??????L???x???\??????c????7?v??d?h?[s?4A???????E?-???=??Z?@??-??`$????b.??`??"( ??W?????l??+?:W^?='??C?? +???_eE??&t???????f;?2??8?a? +?Q?U4t?[e??.?u$?%?3??H77??? M???#??#G/?u?????? +.???u?}M?[?H??^???r>?tK?M??'o?[K???`???'?l`????{?????-l????9T????m?t'Yp???????:C?????do?Wq??^F5??}O'?c?o?TuFcdfZ? ? ??? ?Y?X>?}f??????_?E???T?86ci?6??u??????c?u????is???|?????='"?~??]y/6??E{????r???+JQ??[???O????O? +???cU?_??????=|Z3H?Z;?9[(?@?_??G[???(?$?AJI$?R?I$???I%)$?IJI$?R?I$???R??r??UR@???(?w??N_???g??{?u+(??W?e?n?m??j???"e^??? HB" i?e*???F??H???G?[ ^J????_?/!???wV?:?Z???G?[ W?':7??Dy????1??N??>E:???^??_???>?K3j???};cY:?%w??????q??y?u?:.m????Aq???h????9Cc?????r??^????? ??c??{????????????s[?????szu??????`.?}^??????i???q? +dm{???J????Vo?8w??????S&?`????????U????-n??$?MK???_?Y????w?W?A??????D???+??U????YA???%??Z}U?Q????k?x#?M????????X?a?>7??gL???>??????k\@'V?WK?+z??2???5?d??8?5???Y??n??:gJ??t?fb??s?X?O??= ?????N%u??;?h??S?S_)??a?[Z?V????w?OK??????????s??\\??@?i{?_?r???R9s)?H]??????fY[l;???1?;?????????????'?j????/??????p1??bz??X?Vt???oH?v??;skp???&??`?}(?@???e?x??Y???? _???Q????[???????????f?Y??`??????k8?????????dt?o?Y?:U?????Un?nH?#?6Lj?-????P?? ???]sP????l???(?>"/???????????????????m?n?>:??N???????????t?b<1?7???N??N?????n?????m?Y????,??-?y???????????y?xe8H +?????.W?F?????e?Kn;???1?9 ??/?0t??$??n[??? +_?T?????-?|G??t??'??)c??D_????k.(?A,?'?????????+??z_?3?????o[?,???????6}?v?\/???_??????#3?+?W?????_????? W???????2???$???g???wI????o??'????>H??? ???ct~?Q????+??r^?O?Vt??m??xN?????$n??o=?W?_c??=????QP$??v?%`??????GE?????Kt]???2?????????????????4?"2k?Y???B????L0??z??r1????)?????P??????x???????????/?s???k? ??] +??9????q????= ????_????)? +3?{?nW???y????9??????I????????r?68JWH???Y??????#? +?Y???????Hh?='??;????o?J????x? ?4H v???D?l;??F?lmc???\`M???^c?'????oA???W???/?+|????3???n ?y??kF?ty|??cX+wK?n'???????O????b7G????%???/?????p8?????G??1C%A?7??N&U? 7?D???c?Fg?W???m????? +?V?3?>k???,2?eF ?|??G??x???????m???????v??? +???????????-??O?b?????C????H)?G?rqk?*??????_???,?dc?jwL?n#????XW?k?G???\?3?H?'?\????CC?v ??????(O???df?J????)???V?i|w?#?:? +??5???_2??G5???-??t???a??[^:wJ????[???W?Ug?5k/?????????G_H?k`??5??H??h????????m?/???_???????O??????3?0?????fc\???????t??ju???(?? T??g?????????N???zS?L?FQ?:?e??2^wy?:22??????????+?3?????oD??Y?_??T???y?Y?!8???@0r?1 ORIp?df?J??????????????????????3?0???_?3?????oM?#3?+?W?????_????? W?????#3?+?W?????3?????o[?%????~??{0?????fcH??V??oR??????'??z???T???????@???4u?p?df?J?????Fg?W???m?y$??????@???o????????+??z_?3?????o[?%????~??{0???_?3????oPL?i???(???@?w????????@??2h?????????'??z??????_???D{?????????t9|f???????wK?N??[??^M?i/? +??nV??5?????????y???e?B ??S+P??,Q????=\?3?a?Yu?q??(??m?????H??(F???j??6>!6/??>#?????2?r??+?N?r??p?0?#????_U??t??H?}7wW?d?m???'??m?y??? ???eV??/?c??Q?A?n^??#?ysFZ?J??e??g??wJ????a???p:H`p??;??????O???/???1?GY$MD +?k> p?e??Rat?? ??Y??^;?!??????] MK??]o?t??????r??????5?????r?^:_Y??2?q??V at vSI???@?c?????????i?g???????6K????}oy???'?n?/??W:VE????dP??c?}?dB????I??0?>???????????.2???o??????v>F3k???L?l<'C???D~jP?~2?????oD??3????l 5?is???5?C?xt??????7?_?C?C?kx??????k????,*6? ?>???????U????M???YxO???n????c??6?h??????-Q?w??S??C??'???:?\???2??rW@????????o6?K"???H1???O??k????I$??$?IJI$?R?I$???I%)$?IJI$?S?XX?????\?P?L???? +?1?m4V}Q`??~+??_??O?c?*??=?!Z???????Bq?$??????wO???????c??M???=?W?`?B??-??/7???#?????g?X[?1k??6??]`XZ@?~?^?????.????????aV?vCi???z?q?G?oU$?H%I$?JRI$???I$?$?I)I$?JRI$???I$??v3???C/??????xL?k>?Yk??ul?=?D??O?+?IH?????>??]?hgS??;??d?eN?????s??7?"?4?~?;??M????]9Jb?L?W???.???Y???c???????}????7?"????!#r?d{?e8?Oxq??=?h}??[?E?hkz?hh? +??????v??o??????????????[??0Q????3?? ??W?x??-??.?3me?e?`C????7?=Lhkz?`kD??????????? `}]?=O0?n????J??u?9]?W??c?i???5 +x??G??D?(FF?#?-???K-Y???????H??M}O1??9???$??0???"??????_???x???I??[nfS?y?8?j?O??-z^5??????f?px??Ev /?'P?7?]??????\O?s???F<? +????]?B??w7+?Eyu?Y=O2?L?.o???W?.?j^~[u???B???3:?Wp???g? +v?????C? ?<?q?1?G???A?,G?1?F??iY?????7?"?????-??o?Et)&????3?? ??Y?.??y?~??q????8%????o??????f??????G??hG?? +?? + ????R? ??K??K08wo?E?g?????=??????|2?X?/8??Q??wG??Z^???,?8?K???SS??S3??n???J?D??@(m?"??Z?s?????7?X??????-_R?H"????y?7?"?D??R,p#??*?M?{????v??o??????4???l?????] +I?t????????qK??^{?i??????7?"?????-??o?Et)%?N[????.??\R?~????v??o??????4???l?????] +I}???3?? ??W?????????m??s?)?;???7????WB?_t?????????.??y??E???f???????RY????<%?????$?-?q??B)& +?H????????????????????8uL?F??o?Et?'?(qp?1?.??<{????/Q?:????N?????9???????m??s?+?I3?????_?\?x????=?4???l?????K?i??????7?"????-?g???)w?k???/w=[4?i????8???o??????3??4??5?RN?%?^_????#?????k??????3????S??????3????Vw?O???zc???z??kk??????t_V???Q???Lo??Y%????u?V8???{8?r?????fM?~????C?????TY?,:Eom???k?e?x?????$??.#?|?:q{???????l??]??u?P?7??? +A????1???s??O????]H???-e???(?????wG???-78:???? {?(??E?v?????????I/????X???4\rL?2??/6???c?3?f???????g?[f??????RG&Y%??'-?Q?i[H??Ga?????=C??7?????F??v??o??????$%???qb??k?*???t????????m??s?(6}G??o??f9?????WN?Q??D?qc??? +??T?C?W?S?????8???"??4???l?????] +H}???3??H??r??????RYq????8?7?"??S????oo?Et?"y|$?P?KF??i#???????-??o?E/??g?[f??????RC?????_?\?x????:~??_C?gV??A-??1??V?H?(c?e?0?3????2??IH?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$??????????????&?=Q???td+}x?.?5O? +?#?????l~%Y?????o3??????=d???????????????"[?J???^>Eyv9?>?N;?K?-?#?z??*?????>?e??f?uf?Empq??????-6???t???0???.?????(?q~?????K\gL??W:?}8??[???4'?U??tP??V???I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR?????k??[??VK?zsL??i`?`?K??IO??Uj35??9?????w????4]????4?u??u?q%)%??>??^?X???^;? 1?>?O????t???????N)???{?K????Is?}??u????S???????@ ??%.?I$?$?I)I,?}c?y? ?????Q?h?0(??y?Y:]xYY???q???]>`p?o?m????i*??G???/:??C>??0>??????]WM??"? su??[????m?R??=??r?????&??? ??#PRR?$?}?????{k??\???%?????Z?yC >?? ?`:???g?u?????:?S1?a?o:??K????N??zU?]>??Pta????$?s>??U???+?W]??a??Z?9??C??;???e????????F?K.??? +??zMY?~sI????????a}?k9s?|?]/??$????c???C??G?I%)p_??????S?????@{?Y?q?????5+???U??? +?B???3d???$h?ZWK|#?3?auoDd??=????>h?????>??m]m?V?-{l$?@]????_V??????????-??4x?B?????:?????l ?8?s??F?? +J?x?[?k?????o????????O?.?y????????????08??x?5?????>e?5????\7????????? +?C?z_?????u??Kq?5????A???~????C???6??1??+???e?????.????]G?>???q????O????????R?????W???7M?????????`?kI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???\m???? ??%??4<,??+?vdb????O?l?/?G'?1??V\??@?KS?^?0&0"F>??????i??;q?8???m??????B??-??/7???P?????????q??V=952??L%??F??r?[??}m??s??;?9?6?*s?[???:F?Ln?f6 vM7?????????n?#?%????2????O?????w??8?U??????????B?>?? ???o/3 ????>&5?U???U???6C?-nF~e???l?v??ZzE?g????????5??gXJV1??f??x???rq???7?????N?w?~??]???? ??thK??)G?????g??ns? ?o?????-? ??????XgA?p{}F????D?w??O?????m}V????????`??q??l+??^??_????n???}i?Te??qr?d?fT-~k?64=??;?Y?k+++?SnVEY?j>?A?<??Y_Y>??e??:VuM???M??L?c???J????x}]????o??/??7s? + +??????|??s?9?o???B?62?E???*??????Z??b?fNS???\?????c?~??:???A??9??y0????w?N??+?P??Xl?n? g????"tF??Q????G?qW?C?^??6>3?h?????;?*?o.ww\??qr??2r1OA?W`??M???? ???_Z????I??|wX????^???>?????]w?&uyW?? ++??[??#S????p??u#??????6??????c??T[%?t??(3?u???R??????u???m??0<???G?????o???I?A?????*???z???z'? ??p?1m???0{fyL#1???????Ba}^?G ;??|?????s???????p?6?k???}e}_?0eV?{[a??~??????Zz?x???uJ??x?mu0???????=/;7?[?zU??????04#O$?I?~?H??[??Zz????f?`u???T}^??Q??vfM 5????Z?GV??uu +??a??Mv +?k??t?_^zL????f8v?DK??????:???gZg^?9???sy??c?0????w?? +??u??b yD???G??_\??N?if#H{kE???z?:A??????P????c49?>??w??? .????gW??fY6???=???|???????](??U??NVPt?^?d?J???u9??V?????d:??;??e ????????cU??d?3R???]_? ?=#??z~?6???????;???j????5?GT???n0{c??j?>????E??y +???4?!???\~?'?W??t\L???????z"9q?????c????T????f?[E?kL????NDlLj??P???=??????X?W?X} +??`?????}????????+????????????$n?u??V??????k??L4@??>?}R?????vH???*}m ??'n??c+??W??dG?1??????e????k??w??????[QfM?W?<???6?{????????B7?(??#n))$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO?u/?G'?1??VVz????????.r4?????!???,x^??? +????@????#??m??_?g???9??1y?Y??+?`?Y?????"%y5?????v??????.}?=??~??/????????g????????Y??pIZ[J?pG?i??/j????????O??>????????K?4C???L????x_Q??S???f5???? ?????1???[??P???P?5???I.????1??????s??}a??$?^?????/????????$?}^??????}?????YS?=???*??$???????????3&?g?Xi?8H??n}^??O]?????T??? ?O?Hj,v? +']%?uo???zvs?)????\???f?????[???o?# (2?l8??????K??????."???????wK?????U|I+??????NoP????s?@?t?JU???k??I$?$?I)K???????i???[q\???8???t???_?U????&d?? ??%?y?X?.3???8????????????????i%S?9;????????K?r????u?????s?(?Xn?cq1A?.z?????$| +?????v[??rB$?KA???????O????s???Y??>'??Y?*??c??5????????????????K?????x?}??%????z?}?c????????b_?>??????DI/??=???+?????????>+?]F?!?"?}`???P???4M??Z?y?o??C?O??????JS??Q?????????T???????????????DIf??y???????\]????????x_}?~???????$?????C?@????~??>??????K?????x?}??%????z?}?c????????b?:????}<v'F????_??{??? [>[?~?_?~?~??b_???~??b??/??=???1{0?j???????}???[????b??o?????w????C??M~?G?}l???????Z?????+??? +???w????c????~??>??????K?????x_}??%????z??u?????l}k?G???????????K?;?~??? +??.??G?c?_???????Q[???9??"&&?d?'i??[Y?k???*\?g?1??G???'?S?G??????q???z?_\??em?U????????F???X??-?b?LeMk??r?1?x??c?_?<??S+?O?|kn? +?????????G?TW?O?~?~??b?????=<??]A????????C?@??2h????l}k?G???????????K?;?~??? ?u?????l}k?G?????????~?K?;?~??? +??.??G?c?_?,/???l}k?E?????_??{??? W?qv?j??Z?????%?c?_?<??D??Os????????ZYY?????}n?'GX???Xi~?bb?;?=?;_?sC?I???|C??????"??|/??I?1zo??Xrrj?f.+]k?.|Wy??????{>????d?'v??:?????????j`?)?????~O-??????]?`?^??+vc? ?&??u?'???L????????$?Hy ??Y?e?kl?6??]??????????O????P?%??X?I?`???x?;Q???58??C?Z??|;W???????Un???i#???GO?,????O???s?(??o?G???????d?8??BTMTi???w?^???:u]@??n????08????ZB?????7??OZoO??8?????Sl:?op?%???[?Q?????MOT?d?P?r]e?4?&???i????zZ???=?F>Sszf?????k?;??)%??K?c?zx???I$??????g??\~U??_? '? ???q??3?u???l????T??????{???Wc?.Eliu??? +??????????????????N??{??S?U?:??4W^?q?v???????????(???z??$??G?Z}_??^?_?7!?l??H#?)???o??N???q?8{??[??#?>aH~s??|:?5??+n=G?\????U??X???~e69?{h +ww].??>??s?e????????C?i?=??>?u?O[???6??pm???O???R???/????2??E?Y?ki?k???Q01?TO[??A0z??\?}{/?????>?wS??????C@? +?ez/???X_Y????M?;e?;R????????~.gD??_?/q???k?O+w?^?\??X9?C?7fNk??????:???""??j[Dx??????}Z????g ????nky??|?i??]]'?ct?? +O??R?O?]?u?y?Xz?5?2?~??Z[????HDTy??? ?????~???I%)$?IL.????ms?????\?L? ???W?|\k5??01????A\o????q????~( ?B[KEq???GPA?????U2In=?V??Hml?B??N???2:???[$)?Q???G?Y?k?S???V???????1G????,~?? ??}<|]??~???sk??%????M???????>>???t???????S.}1?X??q?3?X? ??????y?Y#??????????^?`?Y?q]????O??_??????L????"?9e?6F?????OFk?]wW?N??Vk??0?eu?{]h?_?l??S??????V??c8??/?U*1?i?w??Q L?????]?>?j??'????????[????????ZW??[?+=?!??T??1??f?? 2?? +2??4p??+?\gYKA.??@O?Z?W?\H?'???@????O?o??????U,?>_&S?` +??1??1??N?"ko7???Z?Rs:9????}??????]}??W9w?????????c??}? 8@?c?\?\??a,y%??l??E? ?u???*??(o?n??mW??????T~E5L?b ??>_?f????^f????U?zg???????G$?_???V?????'c??%8??|????w[8?0????'w???k????/?b?????????_?????? _U'3?8b?,c?????p??3??NS ????7?7Z????????????_???T?C????"???f???r_k???u??j??J????U?z??K?1?E????n_?/????i{??Mh????????},????+?ouO?O?*??/?Y??1???o?`??? +:5??5??M???kd{?????|a?X??{????]gE?g?C???zW????f?F\?\?u?8?DGC??Y2?><#$?2|???????k???(o?n??mW???????&???b??????,R?r_k???u??j??J????U?z??KT????\??????r_k??? u??j??Q?????????5W???@???;????XO68}??s?lCQf?d?%1?Wd5??9???Yh???0????)bW?r???_???}???????c? +????\~E??????~?+?s?????%?KYUqJ??i>???????m?????Y? z?y??????\B~???T9?8pr?r?P??.DQ??p?K????3?3GY2????U?zP???k?????M?Z?[?1?E?????r?9/??a??????_?? +?M??????t?J_????._?E{r?9/??a??????_?? +?M??????t?%????"???W?/???^Z?h?fGY`<]i?????u?G1UkW?5_? ??9g?+c??yS???,t??5%?'?F#?|?k????~??mW??o??????_???%O?1?E?????????=C????U?? ?wZ?????t?%????"???W?~O4oo#??U??[?????kt?J-?#????"???d_?F3 ???????????\?]h????k??????o???J??o?8?LF}|?[??????!8'?@???#A????5g&?F??.R??ZL???????|lFoT??Hg?f???k;?<~;?C?.9L?X1???D O?????OIVEwT????_[???????d_???*??Z??I????????XBr???L??;8?0Nq?FDo???C????U?z?7 ?7Z??????$?????"???Y??????0???k??????? m?????????????!?~?C? ?.q??*2&?yqzMD l? '?k?????>?};?????U????o??Uh?C???f????&??"???mW??~?_?B2????%!?>\?#?m??A3???y?P???_????`?7u??????K)IM?LG?r??'???/??a??????_?? +?M??????t?J?????._?D?r?9/??a??????_??>?z??'?????R?/??s?`???Xd?O?F?AfX?8?LNWcW!?8?fWYq?V?6"???mV???????_?a????<98)???Y?????Jd#?7 ?M??????G}_?????Z??N??U??????\????a2??K?y??? ??r:????U??:gB?? wX?t??3???Z?v??????V???#???6^>??????= 2*hh??c?b +??e??j?????l???????`? +???k???]?7??????o?? ?t?y>????????W?'x`h<=?W~?Yc?????c??A=W???h?U?K{z???.?%)?0??b????c ???????r?7????p?dZ???&'L???W?(?v?&???\????{~??8.?l???NOv?dU??_K?8?`8s??? ??? +?bA ??K???????vF???\E8o???????}m???_???? ?I;'?9,?2?dz??? L"#@?'????dR??>C?????!at?x???7??????????????1 "??Vf2?"?y??}m???_???? }??o????????]:J??G!?`?/????w??7??????o?? ??????l/?y??????#??0????W?>?1?o??? ???A ?}m$???k? g?Aui%?????G???H??m'????Z?j?l?????:g??Z?1F??6?? ?????+( g0 ??? +?r?[????e?:????O????????????S??????.?$#??R0?#??qg???8??4>R??????f????????????a????.?%?#??0????d9rL?c??[?6?????_f???q??????N?_??C???_??????????l/?y?? ?~??Ya?????AuJ?~~/N??31?? {?????_% G?????%9H??^??L????[?0???,y???n??s?Ls?????x???????YZ???o????F?U?H?U??w?>??_?3?u???????? +%?'???O?9k??O ???.H7?{???[????????)??~?U`??c??????;_T????g?R??k???[??j?)?q?A? ??P??BBQ????-??}m???_???? }??o????????T?????????????;_T????g?V?#??0????l????p???[K??m?????~ +?(?f???q??????????R????`? ?N?Cb??? p4:%?c?nga?????{FC????_??C???_?^?????????l/?y????????a????-???:X?noO?[K??????9??i{?????'?f[Z?F6??k???G ?}k?."?7??[^????IJ>??~??8?v??c1'??}?c??[?6?????_f???q??????N??????K??{???f???q???????7??????o?? ?t??Dr????*?g???g?m???_????&a}md???g???????#??1?_?q???2y??}m???_???? ?????>??????? ????Dr????+}??x?~???????7D???????}m???_???? ?I?'?y?????a????%?o??? ???At?(??????4??'?>?1?o??? ???A3?>??G???????P?_??C?????P?1?O'???o?????_??Dn/???6?????.?$????????)9?????i}? _?W??????(????????????????l;X?\?x??_???~? ?: +~??Zrl???%?????J?8@>r?+?????????oH?????OOc?0???4??$???U??=?n?1?G????.??>???Y???u+??????$H2=???o?v????????R??Q?LA?=";5???,?9?):?'3????^>????? +7}E??u????{z???-_?v??????????????????????.~e??Js????????g??????xf???C?py;vJ??o??? ???Ay?????g?g???z?F'S{KHk??3?????8.?f/?z???l?C????K?\???? &??_??,?$L???g???f???q???????7??????o?? ??P??X????[E?X??YC????K????w?8?[c?6??????0???W?3? +????RK?????/??{%W???~????4??h?-y??+`?l???1??h??_??]RJI|;??#??1?Y?,q??S4?/.?O??if??????????>???n?? ?????C?????d??Uq^?0"6X?b?I?\??????????X??!?'??AO??[?6???????P???$?p :???,?$??c??[?6?????_f???q??????N???C???_?^?????????l/?y????????a????.?$??????4?????y??}m???_???? +?OI???Ya? +?fE???.?$?|/?????5??Q)?Q1&?!D???n?? ????o?????l??.?$??G!?b?l???? ?O??>??9?5a?h?-y??"b????zb?7k2m?AvI)?y3?p?????y??"?nx??8?9?X????FM??????Yr?rd?a???D????TLoa??N????e???q8?X1m?c??f??,?@?p?j?g?G?[???\?q1????S?????%?s?~?k?????k-?O?f;??& +??0????u?{?????K?t,??t?{zg?+o??g?M????ht?? +??????\o?_??/?3???????G?q??????\?W?^?GT???Z2??v???5?a?\?'Y v???????I)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJQ??X?]?c?9?? +I$?????)?_S???H??:?G??~?7?>??0??:_?5dRd783F??.?]$??????[G??/???c?+h?0-?,?-??)??kZK*7?JEN_???????????V???????/????swG?????>???Y"@/??~??b=??????K??y?G?H?????P?????C?? ?????_??S????????????_V? +9??~?u???-z0??w?_????????:?K}???h!mu_???^?~???{?cC????T??????C[?o??ca??|Z?M,?,`?>?e?????$u????.0? ???R??Z:]?L?m???? \?9.??????K ?{?Y???(f??????v??????z???/8?Mns?~(Q???.\=[?/????o???:??n}??Zn?????????????h)v?n?????*??????*??z?????H?Mb=????_?Q????????5 ++i??[W????]????S}a??a? +3?j}R???W???f?? ???|????]??_??SE8?6???`???@"$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?????{2cC??&???0???_?"?M?Xvb??@? ????FV?T?nSr??K[p}d?@v??8M=?91{?[?h?? ?3?A?&??????????p??G??>???GR????????{u???? ????T~E?????2?????????X? +??????T~E??C{????????mu????+?#:?J8??]Q?2 !??W???}]? ?????G????@5???C@?;B]":??????Y????????=l?>????g?????K??O?U????__:9,m??Ic? +????1??=,??wXX?7 ?????dYK}_?????? +]q????R?O????w?4q-?3?X?}??T?{??8?qg +T????f???kY] +h??9??I???????V?jw?c?p?"????0C?=x??K?hl?a(??????k^@}??#?;?g??"??FfT???????n??]??????????C?5??J?gG?U?}????"wz????\?Z?1.??Mw0??BZ???* ???^??w????l?????_???c+?\??)?? ??????[zH?????)?n???>K?~??^???wt??+??9??????;\????}; ?v5X?v?5?4??g????????c}d?=/ +?1,?X? ?;?????y.?;?????FQn??????/?t??????{? :?>h????? +q?m57???4?M??W?y??/4?S???P|??-?7???L???S?e$:??y???OO??????VhwEv8??5???e?? ????^@g?? O????Kq?(??[k{Ah? ????2?I_?I????????????u??wP?M??F???m????(??????L??L'?Y_?k????z&.&~?%,?????4O?>V.e~?U,????48O?/???????????b???y???8???e????p???}`?}3ao???????O???^?^??5=???;??>???{f.&~?%,?????4I? ???U?j??dHw?X?????k?F?KCv}k??????????>??W?-?b???5?K?'M???????vfU??z???wy?=C??'Q???C-??aI?????y? F?)??Ssen?8H#?Q?&??O???@??_?>??&??N?????.KC(?Xs??+?9??W??E?C?;??????Id?????{?1?????A?C?+9}?5?f^=w??DX??>????@? +?2???????Y????????d?k?v??s|A???#?M??dN?T1???a*??5???)?|]nG?????=??U?????3k??>??B????gNoM???5????????5????V?????9ucT??N?Z?g?R:?d??h?????a????S??O????\k???C???c????H?]????????H?k?s?[_?a:r????'"??_?M?h}G1??q?+? B ?z??zTF??2??????X?O?N??2???Z??D?!?????.??tO?8??GN????????vo????y{?1??s?m?~?d`??o? +1?=?dW???x??v??:??1??t??>??X_Z???o??}??m????h=??X???X????i?????????t????c?????r????6c?r?WL?x?/????08??B??v??????????^?[r1???+2C??}Wb?&}(?'??????????>????J?????:?D???Z?_X V9h[?6???q?}:?????%:???!?T??Gm?,?????????????WMn6?[y?2?.????.s?xr??+\wct????F? ????????R? U?g1..??J]?gO?Q$Y?T ??g???ez??2??7?WeO?,???????t?NM???|??*?pwi]???????-???y?n?1G??WMk???yc)c?rR??c?????????????????????? +?? +Z????????"???rr,m?W(?5?9????G???i?e???k|???D?I???<0i?_?F68E?g??y?????????g[vM??~??C@? ??)y??l????z?????P??ln???am?q??{???_???%??V??`u>????????\7=???z????U?z??L???^??:??:}?? ?????*???????I$?j?$?o?Y?^qrn????Y?? f??\C?????????U?t?\"?_????3???????W?R\???X?OU??' +?wee??f????O?o?W??5Y??yGkl?q$?CZ?&#??/?}%??{????00?:k+??vRb??, ???m??#b?Zls^w4???x~?:W?????????[???M5?Q??Gn>;LI?>J?H?????z?&xo?n?P????n?}-GO????$????????>?}^??????[s??w(tO??m?X????,J???Uf9%???j??x?e.?U?[???I)I$?JR????/?X?qr?mj?:?-??]b?~?????U~s$??2??a????\?Q???????5??h?????$?i????4???d?H>?4????r???>$G???#?'??g?????~??????%???_?cG????J???!????????G??~????G??????a??$?????,h????Y?????\?????? +??/??Z?i????4???d??_Z????4g????> +??N??k?${??G?(r?lz????Z??e???d??Y?????k?????%T?%B?}7| +??1c??4:#?????????I????]?l?M +?>??d??O??2??c?2\?N??~ R +?79?2?:??d???R2???????????s(????$??'????G????*pR????1???C?;??7?:_???9>?????????/??????Q?l?J?????c???????w+?o?t?????~?e????3o????]?[???-??i??qn?G??KS????? ???V??0?r??g?<%;?" G??G/??Vy2?X?F6=GO??0???????????????;w~?????????|B?????P?~/??,???#??+?*1?}?A?}js????A??$M?Z????????????(?\?????? 3???h??ZCIJ?????d??z???G??????#???la?s?lU??V9_????#,?(????)????Q???1?]????}?? 3??&??Z????m?K???*+psk???>?????/????????????$????????_???I/?e???'??????/????????????$????????_???I?e???+??????/??8?\>???????>??d?w???uZk?E;????????;????%?1?f? x????|'?? }?*?iS?|}k?OG????#??o???\>?Cv?????s??K?????%??N_??Q?#????tO?/?~????9???%o?r}k????????????X2???g? +N?^??/?9H??-????+[???]v9?h??1>??d??>>?????????NW???P???2?N???r$????o?|}k?OG????%?>>?????????"I?x????O???3?:_????Z????m?I?????????%??_x????W???3?:_????Z????m?I?????????%??_x????W???3?:_????Z????m?I?????????%??_x????W? ??3?:_??]????F??_???????]????OoG?2\?~?????@???|?a8-??1???@????????>>?????????l???k8?R?5??`?c??P?O$e0qlt?K??/??y-?M +??????l?g?j????B??????r]3???c???j??~#?a???????4??????L|:????_h????4???d??~??????+0|????\?????? +?b???/????F????d?e?ZX??A???????h?x04C?7??????????????r?????V????? ???W???6y^O????]L.???)?w??f??O??X?O??????a??%_??????`?(???s??(?-?X?????cu??w?~?Cbu? +?H?????+?e??c???????5?`?r jwY$?]CE?????????2????k?"D?9A???????_T???gP??zl?S]7y.?#??F~~s??Y?h?=??K|???????x1???t?????KL????7????<_?g?u?? ?8=C/1?Y??7O???a5??sN? np??g?[??W??dg?8-?????{?I??v}Y?oY????u???-??f?#E????`???W???:?K?:C3?+B;???e68?{H??d?????:9?6?a??w:????ae?_?y??E??h????????????g?????N +c##? +????^?x8????&??wH?i?????p/??4?????}$?????5????A???g?HV)??????khh'??;??`??I?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%???.??:x?????6>???U?L>??????[????????????P2???NCj?8???e??& +???^??v???RI$???Y??????? +?&??????????' +?vk???? ????W?}[???9???????'My????{???Z?'?yO????}v?O??[????[???Pz?WV??????i???!?c%????}g???????????????}F???:"?}???????9??;???@-??!??jr$v??L?2?W?l???? ??8??7???i? .s?}`???7;?^?z??\V??|d??.????;zvmT? +}O???>+ ?R>????FW??????C????g?c?????{???? +?x8?\-???4?m?_S???? ??Z9?X>??W?X???s??\Ml???????w?k?:?I?b?,}4p?Q??_?????????l??S???? ??(i?6?K?????S??xD +???}mks~?0?S?O^?^??*?'?)????????}l?????1?$?=? w?}I???X????eUU????K??9R?_Rz?W?????U??D +)?C4?e,zp???}/?U=x???????p?I$?$?I)K???N??????{?e?3+c?K?5w?????=???C?d0????Ije?,q??????1?gJ??F????f&;?m???$H?rWM?????????3?????L??9a?C?hk????2?r2<^??ZL???oK?-p?~???zV|????????P?o?eA??????????|x??nR???? 8H?Y???BG?zV|???:?? [??M?N??1??C?W?????w?n $t?????V??U??{:gP?t????U?>k??????7/???$A??TL??o?6R3??e?H'B?????????[??Em???????]??:???~;???l?8e?zD?a??gy2za)WP?c???m?h???????~????\??? +?F????V?w9???r?G"(TO?ir????N??$???q???7?c +????????[???]z?????i????e?K????w0g????o'S????s?-I??%???f???aYg?c3?V?;?m?????X +D?g?f?Sw??e????????;zY?[ ????_??!h??Ye??????rF0(???>-_w/?!???????^u?+???zX#???;:_L?=N??A?r?[W?8??.O?g?Z????8!?0^M6??,?y?\??%??=G?j?N????L?l??a?!30z?7?f??????$|?1???3??Kx}? ?j????r??X??|r??F?vh.?N???>a?????? ?3?P*?q???s7??p?!?(?F?y???)????J?????cB ?,???z?x1l]?????????W&i?2??p??????fB?????V??????????~1?i at a?@????l?91Fr?????'}x?? +??g??G??????n??^{?1?4-???????????SO?s?+?#Zpi??????&G?_???oI?c?7????#4J??`zV~??t.?E?A???s?????8????y:?? +??s??o?+??6?sl??g??C???0{??w??|J??w?????Z1???;???G&?G?7??yyK&)JD?5????ums???[??I$???]g"?^???I?j??a?P ?c??b?>?VO^?,s^?????{???-??tR???S????4\?????????WY?lk???s????^z???F??O???abt,|???????????KI?i??E???z??gN???7X?4????W???m?W:6?e???:???V]?[??}F???=C?b????g???w??UV6>??|????-[x????V{p*?>????s??X?? 72???o???z?Y??Ikd?m????;+??=???M?????Z???#?]D?G??W?7RY????6????????'i???z??I)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO=??"??$\??X?.?????/?????BBQ???????????|????? ??jv}R??dn??xR????RV8? F_0?L>?-?C???O^w=C??w?M?i}b????????]?HC!??1?*?%(C??2L#??????????????j?=?=5???bmn?hw?Mu (?r|?AS????q???'???????s?????????????b?????%?3?????=???ys?~??o?????4?`}g????????k?@??_?m?????B?????F?_????????^g????lK,???TQ????\ ?u?????u??GK??c,v??6???'?[???\????b???l?1???j?Q?????7(?uq?sv??:??8r?C????\\#z??G?????'?5?K?,???O?M/?k:??Y??l??????? +??%?????q??????7?????t???{??i???????K??V???O???????Xl??????}??p????bi???2c?l ?~$?;?&?z'?????????k??g???????K????????1V? +?????3{???4??t??3k???????+???????1u??w?Ms?l???+??????? +??)+??G?jG??????? ?? u??w????qq?????R??????????k??g???A_?????8?W?1I???G?7?LZ|?Kx#?????????S~?X????<)w?MJ???X+v?? i??w?Mb}??p????b_l???+?????s?q?[???N??Q?8`;?O??C???FQ??????Khv????mt?????n_N?yr jq?????????>???lo?w:?X??<?}^??????: ??;??R??{?Jx?2e8??,c!?_j????????????}R??e??u m???.?????????????W]Y??6?";?&??????N$??A?T?N@?R$y<_?_Y1C?y??w3K??j??o???;???Mt?%???????BD?H[bbh?#??_?S??????????Y?????????hw?Mu?'K?0?p??O?L???~????s???????=?I}?_????J?????x}?????x?~??a??kz?1p?itk??~?????3;H?h?Mt))~??????G?,?P?#??@u!?a???/n#@OxRI%:T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?.?????Q&L?Q?K? ??.?u??*+????&81i)??&????R~?????V??? l???>k?f??3?X?Pq???:?rr:??n?? +Bg@?1yO???_H??fsz[??} ?Z?7q!o??#?_??d|?V?R????gY?? ?????????C????ax?w???u??_@~;0d?U4?????h?}O??w?J?,??&????O????v?o?f????z4?I5*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IM|? >?C??)e??B?? ???gB???k???G??:?/?>???????G?Q?}!??[?????Z???$n???Z?]s??2?{?????G?8^????t*[T????d?I>A?W +?3 +?C?_P???O?zSC?D +????X}w?t??gV?=C-?????X.????????J<h????????[????Eb?@???s??+?w[????1??????t?v??Ly'HT?G???G?R?2K????t????76?|?b??:???? S??j????;?!?>???vUk?-s??x?????_?e???k?? +?????:??{w2?F?9??o?_?f????????w????????????zs??????[?$?????#????[?g}d?]3?U?:??c?????W?????R??X?7Z?????????Hp???W????3?ga???j??k???*?T?qs~?g???~..N;?????????u?7????GJ????y=M??#?uV???C??? +?:??utt_VE,??n????? ?ye?;?_? \??0p2?=sm??>??>$/C?????+???e94?f??GI~??U??t??V??y??/ ?Qk-5??8;i?1?2???s?z???F???h???j?`????{+???[~?f??oR?????SULhq{?????x???u>?????z?????o?;-??k?[X?:O0????? ???n??C???4??????????wK??fN=-e?9?u????H?(??1???(j%?"Zx?w?n????WX??kw??r?zW?_?=_/?x??"$0?6c?p???u???? +$W?u,?;?8T>?t?>?~??`R?.e??X +%? + r?????c?z?*; +???????W??????p??_??? f?;C?PU???zwZ??gN???Kw??'????w?@??w]?x??5???O*??{???Xmt??????y??TX]??%A??k_ZT?"?:_???df?k????_O??cr?v???q?m???u??_:^\?g???????j?8?$????:H?????=b ?B?????~^e??????0!f?o?Wz?????m???, ???? \????????q?2??????@?????~?}]???c??????? GR/iH?}?: +:G????????n?????\v?n?c\?;?f'?u?VzO???S?u?,h"?????;???e??N??????n??5?8???W?????R???????y9???=??;cA +.????S???84^????5?<????????a???c?,?x~^EM??G??????qu??~?bo?K??{???t^?[??[@???q?6J]+?H?8?et??K*??l?H?K?????????t_?YMo?N???:F?????Vu??u]/??v???????? ???N????????x}?????E??j???? Yp?S??>?u???yGm???-?~?AQ?R?"?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$???_?b??7"?oV??+???8?C:??>?, ?????t.X2d??Q?9\?Dc?r?? +???N?????|?h??I?cf?f???????4]u_?????0?\?b?0 ??b?@??k?~?u???_Y]???1?>???=???|??? y??^??~?7?]_M????X???77S?]?Dk?o?>Y???67??O?G?pC???;{?%zk[??????R????1?3???1kxu?z?;??/BN; +?????I?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)s^>??????b??7?;u?x$????????y.??{?N???:?????b?Hl?"?\??SzOQ???????74?_??i=??????@?g/??E??t?~???eM?l??C????????????????u?c-?u??$?$???}??8zX?c?u_?]Pu?z??????~P??X??q? +???}dt+q?^??s??l?;Z????I +?_g?]???g????/?bu?????????ig?=?J????????Sw;?d5?F??J??9?{K^?yHH???? ????? ?E?}i??r??Kp????????H??$N??;??G?????io??P??Qz??G'?Sn~?N?????7x??$o[???u?Ui^c?z%v)" +G]~?XWJ????%???}s???c?????^???Z s??L^??k???????w?s?.+E$??u6^G??O????:?F?n?43"??v???|Su???J??:?A??>???.n?< ?I!?~???q??n?j??7?W???5?=G?'??S4???7????????>???W???hc??Igp ?I#?_M?EVF??W???V??`t??8B???W??FM??e}????X +??q"X???2d?`A"V4x?????Z\,??F]??q???W4?Q?6O??k?YW?L???cP????^.??4Z???5?????|???q? r????=T?_?:???????O?T ????Iph{???^m??????????cn??,?k?kH???z7V??;?? ^?W?Hpxl??_P???[??}?/}??d?p??@?Z?c???Gq???/????i??vS????6?[?{??????????U02?????}.?[?8?5?'??oU$?H%I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)????M??v?^?=?????ou I?????j?w5???;U??1??^F5???????,j????[1?8?TYc?c?G5\L#??/??*dc????R????H?g???q?}?e?/2?!?????uu4??\?K???Y???`?/,???C!?o?u54??Z?1???7*???\L ????????#?j?+h???????v??y????]K?Y???t?{?%^?S?K] +??o?z?A??i?????H??F??V??!??s?`????=?G????Knv%?A?U???.??B?Y8?????)$?A*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$:???????i?????a%8?:??Z??[?-?????#?`????u,??U???\????+3'????NM???????7?I????&y2TI&s?h?8???})??@k?t??C &?)????\Ye`??K????|?zk?wP??G??C??x?\;??+????|??# ?????u???f,????=)Q????????CC?`I?.K???s?5??_?fcz9X?>?5???????????OS??gViv-'?t?????;???????9???L???)??????K?X=???n?]?????mt?e??[?R?????$?o?^??F?X3???+k????,&6??????????????(?e?????!????g???K?????#??.F ?~]??$#Nl??0o??_????ai}??!??JC_?????QG?I`}k????o? ??F^A????\?R??g??V]?tj1???e?????JC]????7??z???>?fS??`t !?:?D???kh?'?/??^2??????????a?s<$?v?u?]?t???/??$?I)I$?JR???;??? ?>?}b?6?acDv???'?0???? +?E?? ?I??? p??b???e-Alc???n2O[?u{? +?&'?VWFs?f?????? [\????a[W?j????;??\??k+V?s~???_>\??? ???????8??b ??x630:?=??z?Q:?????_G?????[??&6???G??Vr?=??]???gF????,?[??%????2a?9 #?Q??x?1? k"-?F7Y$?9:?&???&FX??????-??"???p?7??????}??w .????????46 ?Fs?#b?}?????O????R??Y?????k???[?????[???????+????????c??c?@'?ek????)}????W?_?E]f??o!>?~?~???W??????0P???a???s??W??K?=[?.r????"?og?7? og?7? ?y??????=?vs??? ":?V????"??~???9?????W?{%???? {?y?xG?+???????4pb1???Y?????k????~???9?????V?????????????????????.?1~?j??????O????S}?????O????U??????-?????/????~`? +?1~?j??????O????R??Y?????k???[?????[?????_?^??????b?????Y?????k?????Y?????k???[?????[?????_?^??????b?????Y?????k?????Y?????k???{?????[?????_?^??????b?????Y?????k????~???9?????V?????????????????????+??????u?V????`?k??????????????"?z???????????>???^{??(?YdN???9>ZX?8?N?i}a??k??g?E]??u??????6? +??"?w?????D{6????.g????R?Y+???|?q?1??????\???_?E?????\???_?EZ???o????o?o?W?????????CW??g?.r???"???g?.r???"??g?7? og?7? ?y?????W???CW??g?.r???"?????\???_?EZ???o????o??J???????c??>???cZ???A?k??????X ???~??Y??V????3?8? +????Gp??s????R?"Hob??c?$??4? +:??????5??S??????O????U???G??x????????????????4}??????x??2I ??????????-??5????^???p?w s?x}?_?9?nx?ydM???_??? ?8?R??????????????^???X? ????U +?????????]????Rg?y?????@?????,1??q?????\???_?E7????\???_?E[???o????o?_?W???/?????C??-???6u??n?[_?ER?????-??5?????_?w?^?~???????jX?)e?&?7pr|???q?????????????"?1Y????;?????6???????x]O{>?_??x??s???a?@???g???c?#V?g???s??m??????'????*??~?~???~?~???y?????j??t5~????'????)}?????O????U??????-?????/????~`? +?1~?j??????O????R??Y?????k???[?????[?????_?^??????b?????Y?????k???f?E??g$??????????o?N??}?????Ra??????'????)?????'????*??~?~???~?~???W?????{?t5~????'????+????Yq????V?????O?J????????ug7??F????C???7?$?L???u????O??9?????T??????Z[?k??)?_???io????????z[??>???d????9/?0?]?????--?5????/?o??????Vv????-??z^?O?*?Fr??a???}a??e?a???????U??_X????Y??XX?o?Y???lng??*?????dh????R28?4A?????n??[?????????_???io?????u7?Hp;????>?,3?1????????I? +??????--?5????/?o??????Vv????-??z??????g#?f???9~????????"?}d??H?-?????+7s|G???n???wC????_??K????K? ??????R?????-??5????=???s?x}?S??1?p???????_?_X????Y??K?????????P?3??????xC?|?????r?????????????U??w]?{????6?????V~?~??????g?g?q?\?;?G? ? +f??a?Dc?-????????6?????;?w=???CL k??+{?y?x\?c???=???W??#?NR?)P?9nW?.(??i}a??k??g?E7??s+wW?$6???????>????}??p??+s?9??Z??%???Gb???????O????U ????`c:?AN???"?w???????^?]????TyO?s???H?=?jr?? d?E?????SI??Z?Gb??U/?????--?5??\?????Gp?w7?}?g1?Q?2uup|;??l????k??X\???k???,???x9={&?M?_ ?_?EgR?zL?p?zC????G?*y??f8?c?@?i?????fF8??@cu?????k???}????W????QC?#???+;?????e?y????????1U????Du???k???????k'_????W?{7sx? + {7sy??y??~`? ?? +???}????W?_?E/??o??????????????-?????/????~??a????????:?W????P?????'????+F??g?o>!{?y?xG?+???????,0?#X??????\???_?E/???????6?????????%?????%???????????CW??g?.r???"?????\???_?EZ???o????o??J???????c?????l?>?rz?????? +w?h mf?g4?`#?=???~?yyLS?L? l?2???@K?c?dQ??E???.?K i ?4B??_???2:^7K??#?s?DF?$???-_??#?????cjuW??_$?1????_/??>???j???V????????y???E~+t?????_]????>??u at 2i???0???=?V???U???_?????`_n??P"`???8V]???to?U?S???Yil?|U???_???u???]-???X????P??N??v??a???u0???=7?WW_???+???5????8?????R??_?V??gt?z}? +&?=?pq??Y?7??/????O?f?R?Hs {??z'???X}c ??d???r6?Yc??{???:)?Z???????????]?????{'??9????????Dv2??;G??`Q??{?G?p:?7???????k???nJ????????????aV??c+?}?7S>Kw!?c?s?kZI$?X??????8?9????i????Y??79?h4?????~?,Y???8XVU?s?c^r?X????????g?.S??g?rpw???? y;???}????>k???? ]???? ????7?2?j???U?????<{//??????_u??}??V??2[Y?????????j????????n??Z?Z???B?[???????W??V?????1??])????????I??^??? ??z???[???e}? +m??=?????????T?I ??Y?????_? +?&?????????4Y???Eq??????H\??????>?be??C??{6;v???~0?T?XxL?????U??v?V?U????????C???????}d???n??F???????t???+8??}R?C?t???? ???!uJ??_a????P???+?k{?p?%??}Q?????c????1???s(?;????t?t??^?a?n?????NG??}]?XX?X?5??? ?n?$?>KO??????????%???????5? T??????=_7?K???W??w??|???????U=l??@?? +l??????p??G?S5????Kw???_?????P?nK?'??Z??8????}}?5???a???l?????*?U??g??[~?u????/??X?(o?????=D??ko7?I$?R?I$???}k????}???l?_????????4]???????????3 r?w 2H?CBZ?C?????B???}??!V??h?????5?L??> ????Y??GC????T???3#??d?8??t????????_?0???????I?? dL}????H?j???"?p|C?k????Q???????G??o????Os??????{1??^J????S?!sy???,lz?l???X??:?b??????S?????V??%?r???????????Y?c??O??g????j_????x_????N????????????c?????A]??H??? ?5?ay?0?'??.???>*?G?{??S??w????? >N???R??G~?7???????+?Ud?t6??o?$?:6???5????q???\|\?[6L?c KCm3?????????C?i??,????t???*?/?=??????- w?????????????'t?4? O?{WD>??&???????W?'??!u???o?i??,????/???(???"??????w?_???u?????F=?6???I?OaB?O??????Z?S???W??KW?3O'.???q???1??#/LM3???8???????q?c?)?????[?O?=? ???>|?21e74???@???b}????????)W??2P??g??T?R?nd??H? N??Y????+W?pCO??"??G |/?kt??c?U??????2???2 z??O$I?N?;???G??o???4????Z?eT???????????Ww????,i??????*I??Z??X?r~?~ ?H|B???????Lp?$??\n?r9??1?R? T?>???O?????'?A????~??'\????W?'????{???Gp?????????(???"????;??%???????Z??????Q????Is"z??b?????_??w?_??c?U?????O?Qa?E??????x_???`r?%?? ???????/?_???????x_???Y=9??z?t,"???WN????g??K??|?????F???61 s?I??C?m??????[????????a?A????z????w???1?8.??->S$?????D??8 +?`}? ?`E??????X??????????X???????,?4?dsy'?)?N????Qb???zS???X?????????????>?????q?????????????????d???_?????_?????,O?~??N????7?bK? ??T\_??X!>w(?#?@O???C(?w l????(???"?????MQg??W>????d???4????_?k????9??????8 G?p?t??pcl????w?????n?/?????_?u?%???c?????v?n?_?v?????:???Z?Q?w +???????}Q?f?????(???,y?????Z?m???~?`????{q???????Z????QX??ia?#(???o1e?"f65??? O????w??????@?Q??Z#&NCY +il????%?9a???{??z_a???{??z?IM?????s??9cb?w??-|.z?????????ZY?E?Y?L|B??9???(B?@???o1??t@@#??k? +b????????] >?~Is??????????????7??48???~?????b??C???????U?G??^s?'?hp???;??? |/?.?B??>)?????j??? ~???????b-M?-??A??o??G?=?????Y~????y??h? ??a{???B?d???s?b????W?*??Z???3?????B?W'6I??8??q??B?????????1????o?M$?????+???9o???; +???????l???{ ??z?K????=??x~????s"Dx#-u????????oA?? ??HtR5 |/?n??F???dO???????$|??? A$?W??????????P????xx?j?US?M?Os????d?/ ]???7???w??^? ?K?? +6O?J?,?v/?[hg?eut?V?_..??wr????b??2???,Q?@6?~?????hk????bE???}{#????UIv?X??????????/?ct??k?{r?YS?@x,w??????a??????.?eifc?????Z??"??[2??3???????????t??J"???G??????????2? ?7???t??2???.?/k??;n+???8T???=??? kxk\?????????g?Z??o?L?"?[?F?p??????J?)~??????] +???]?y????0??,?1?5?]e_?3?1??W?L??? ?&nbdq?(l???8Dk???}f????N??S?}_h???i;|??+????y?k?]_C?#???x?Cl????]??x?Z}?Z??????}J?>??????nSC wg.?y?????t^????GTm? ?t?F?sg?@?^???U????^?E???b?????v???\??|?)??Q???0????y??g??G????_?!??N???O??????IE??????X???1?/4>???#???????3????????????$??3??7?c??K???N???O??????N???O??????I/?g+?n????'?????r~?????_t?V???????j????$??+? DD6????r2???:???????j?????????????????O ? ???1??r?????'??K??V?a??0?????????????+?I(rxa????VLQ?.)Y>o?1z??Z???E/?????????+?I;???~?,??>??x?????????)?^????????]?I}?o?}?c??????s?-G???"?W???????A?????I#?c"???#?? 5?????[?????L???e???vM??S??.???L??!w?c???|3? ?5????~y??????v/I?m? +?????????R?!?h????9LT?????{??????????4 /? +??5}{?,i?4??V/??S:G?,?2?:????kw}(?U?????_?/?4z??????#???????????????????1????o3 `??AO?/?????????????_?h???3??%l??b???g?????????ko? ??^????????P??????_?h?????????????V??\S??lW???W???????[?O?gu??????????<_U?r??G???????????HL?"1? ???C????w]???? +????????q?????O?x????????K?/??????????W????j{~?u???W?????(??pj?????<_U?r??G??????????? ???FR???b?????[?/?? +??K?mu?????_?,??x????????K?/???????_?g)?n????6??wu???[?????U?r_?k?????????d????_?/?4z_??}W???????3??7?c??K?'?gb???????????V???HEw????#?>9?j??\W????R~?c1??2h?E?h??+????? +??[a?==???7?%/?g)?n????(d???o????t??i???????t??i???~?}i??Y1Np????Ai?? +?K???????? ??~?x????r???_t~?m? ?^??X?Lr?R??????J??X?,???+~???[??a?m??K?`u????????$??0???w???????(????????????1z??Z???Ew "9lca?????>?O?.'I??W?e?Q?L??[????IZ??8?!Q??,$?gr??[3Ot?'?m???? +? +. ???zoS???S?;?Y??x????"??t?Buz?;?+o?%?}????? ????????W?? +????]?????Y??[?y??Cw5???J????u?~??????v-a?7???;??$?/?n?6?????????pk??/???s?????z?o???&??c?3????W?cv??t?W?S?????"?????8v?$t??(jxF??>?catJ)??t1???-e?8???;?O????3?]?C??;,;??V?>F8R??z???NV????}????4??'??x?9]??????J:M>?V?1^4k???????@x?Q$^?[?v?wL??x????SK??V?H2a8k[???ze?Z???7?????"???bu???V??M???Xe??n???8???zW[????????^&?F????cA???r'B??Q???g????'?6?m?????w???????lhm;?0??F_?+?P?"??m???x?# ?S?Fn3???\?{?x???-??w??s:=?uP?i?/{c?y?]Qk]???A?????6????= +???g????J?x??C?}G????gT?????7[~8?]d?n?J?s~?????^???FN3KX???[?M???0?^???N??/?S????d??l?n}??????^?????V???:??-??3o????U??-?O?.??_?!??????wV????????no"DJ????s??%??=?>?m?>79?=? u?a????'??c? +??4?3wO?#?m????M~????O???}???7??????1???????????u????3?m?m????L??Y ??I?@0|?m???? +I$?J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S????o??w?AF? fd?;???u|??Y??v????e)N??? ???x]??*?????Q?12IeV???C????h??o?V?(?)?+A?c? ?W`?\?_?6???#?7??P????????~??]2???8?Z??6???t???Om??^???????A?6.??_???[???z??????5?{1??^????G??.????:nCz??o????????^??F??????I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?Ig?n?????1/?$@4????????&D7'@?/gA%???"GH??5??4?????No??????????????h??N?V3?{?e??@{??U???)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???]eO9??p??s??C +2B???,z?]Z\?]m?:D??I?????cA??Y8?=Dd?Y???1XX??? +ed??Y?D??[?!?>e????????jv?6??;??????o?^m??c2??]?0???'??m???(}r???m?Oyy??o????z?????nN^e???Yu?o??c??}H???1?S?wR???l.??.??K^W??O????3+?t??Q?????1?Kt^??o???~???????)$?MK??????}?&?l??C?^?K?dx:Tq???????????k?Z?@???*??????O=????kyU??}u???+?]'R? +L??8o??=*?K??)????'????_?r????76????{~?????\?v&?fKD??a?????? ????O???3?;n;;wr?c???g??\???9??A?'&6 C?!??z??U=8?p?????X~??O??c?[????6??4???>?t.???F?????e.ct?Q\??????j?=J?+?h?iu??????C?????T??~?/4?]w????{xJ????????????t???>??mm????KM???)???????O?W??????p#;????????[??}????"?z?_???3?????N???5;R??7?`??'?T???????????????_?u?????u?????W??`?]{?]6?U?G4???7???????v?????????p15+??Fq'`Z???@w??6a}ih???????*?}h&w???????c??~?? +??8??l?????~*??????????"???,???????K??~?? ?3??????q???%Y???K?;?~????"?0>??????g?E/?=???(?8?j????7?U?????7t??????~??????????)?y?????P?q?D??????*?c?Hln??N?????????????"??=???"?1vN??t???(????~?O?:???c?~?????R?As??????b?~??? c???tK)?U??6?g?? ?n??"????????????*?5??o!? c????1?`? &?b?????"???-n???g?EK??Z{???g?EU?@?????NY?I ??????O????????"??>???O?>???_?.?#?8[?C?n???8>(_d?????????* +??ZC?O?:???_?.{?#?8_c????IR?'?????????K??Z{???g?E/?=???,?????????L?Gt??????????*L????;????R?@?????)?q????7?T?????????R?'?????????K??~?? ^?;????|T??????????*???o??Z????g?E/?=???3k +O????|?a}ih?????O?>???_?.{?#?8b?xM?????????????<n?????????????"?? ?????!????bd??~???O?:???_?~?~?O?:???_?.{?c?8]??]???b???_ ??f?i????u??O+???\?=G]????T?????y8????\?N?H??Ih????#??E/??????`????????c?G??????x??R?N,?-E???>?bn?n?x??????7?G?????????c?????Q?h????ns ?H&??t??f?h????u???g}h????u??? ???????????A?????????R?????????R?As??????????S?~j??????????"??/?-???????H?????????E~??n?S?'?????????K??Z{???g?E/?=???1{??Y?A?????????R?????????R?As???????w?bd?f?h????u???g}h????u????\??G?p??b?~?? ~??????????)~??????????)?y??? ??_z???????~*??oO??????????????O?t??????????r???9??O??IR?'?????????K??Z{???g?E/?????,?????) ??????????"??????????"?????????????A?????????R?????????R?As??????????S?>j??????????"??/?-????g?E/?=???-?3??????$4'?}iq???????)?g}h????u????????????R?As????'?c5D???????O????????"??>?????????C????? =?w,?@?????????R?????????Q?As???????w?bt?????~?O?:???_???~?O?:???_?{?#?8W??w?bt?????~?O?:???_?~?~?O?:???_?.{?#?8W??w?bt?????~?O?:???_???~?O?:???_?.{?#?8W??w?b?????/?/?edetO??5?n??fC??????]????G?????[?.:wnk?+?????>m???9?S??????{ts??W?$???????be?o??$g?a????c?C?d?????????q??m???V?-1?P?O??d??EL? ????????&????z}+??>l???Y? ?V??^?,?F????????B??;?ut???????????y\???)z_?~?q???-&???[V????q???^??*x?^1????vG??=A?bO?<'?????+??????2???=5??$??{??7.W?uW???]?;;"?e_???????}???t?????_?c=7??n,?O??gE???#.?<\]??5???|R???=y??N ??????T?_???`~E?*??X4YfF5,???m??{? t??????:?{?RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)???fA??[X#??????????|??'??m????} 22?`???j?G'??M???G?["??9=oH?9=?? ?????????W?Y?e,_??<x??C???6GOc~???r??{?@?|H+?w????????s(?f??kC???{)??8?N??????????+?w?IZ??Yl?????9+?f?? +?????g?y??5\uM?b?;??????6???o????'??]???????????FR?=????????????\?????+?w?I???????;?$????2???????;???X????????q[?s??I????q[?s??Kc????)}???e./????????U????C $b????????????????~6Aa?(?c??D???#???f??b?xw?s?????8????????{?W]????????A^6@`??f?e??Cjq$hO?/?{???Wn???cZ??e[?ed3???Y??w???]???g~6?`?????^???9????_???w??_????? +????7z??????-??/??????9^???9????_???w??_?????????7z???????/y~*?G???[q?.??????]?????4??}???a?Wz?????????????hf?#? +9??p?:??c????Ck+???+??z??OC?Wt?l???p?8???,o????? +?????t???u5?K???V??U>'.k???r??q]W?[?????1_?????Q?????s?? +v??;?$?1??N}??dG?;?$??????75?9??@5YX?7=?K??HN?4????r9??????> ???G?c?_??i????????wG???,?w????LLL?Yp??N?j ?oP9?????f4C$????Z????|????d??????_???z??tR?(?9??$o?????+?w?Ih??? ???f?? +?3??~c?{?1??p???O????vWF???9??%?G????X?? -w;?$??z~u?[?C???+V?\?K???? +?3.s??8Nn*?p?^?Z\??k?????g??????;?$?????????$????2????FU>/????????\?????+??I3??t0?~?$)??%??k????d+)q|G?1?= c???=_V?!l?Pu???????o?8?V?????Z?b????? ??+t?Q?????R?D%K??????c??]?????Z??5[??L??2???(??????-+~?tF?(?????S?};9?a???lH??n&K?"?????x{g5p?????b?p????????[~?t=???k????????C????9??%??l?? +fa??????q|G?1?=?F;?/??????q[?s??I???C????9??%??k??????2??;???X????????q[?s??J?Y?"?V??p?D?;?$??_???????v+[U.{?L???????=8?2????k??a}T??????S??ww] +??3/b?Z?v?n?0D??&???????m??C?g?}k?8?y}7?ue?j+????G?["? ????G?["????? +?Syy??????????3????q?>-?k???]?? d??? ????yM??}?'? +?M{??Qnh??o ??.???? ????A?6?,?&??I^???/??U3?????m?????k?'???M}I^?z???I$?J?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJB?????d???T??"uA??{?>????C????U??OC??(??c?v???G?9y?V??????OIgI??tz??'???U???C?/s~???}{???od???$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)???????;???o????*?????^?o??s????5?8?`di??Y??t]?N???????k?3???z??g?O????>e%8?36??????? ???????h??o?^]?????2????? ;h???G? +?m???+~??7Q???R?^A????~W??_????V??WR?????????????^??aau'catZz?ul?r??????1??t?O????/???z?????b??p,?5?C?\wo?^??,^??????szVC?N??uol]?y+?????]{?~?$?I?RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)???[?`:?????????k???N?yLdVl~-#?m???]??2?_u?2??:5?j????o??}~?? u? +??;?:C??a(?9??*??/????}b??Xs??????M??"?l?|esQ???o}p??_O????R?[???@?M?CA/?= ???z??????8?\?uJ:v?????????yk??-??????_??u9?i??kd{|P??????a??p??????x1????0?m?{???Q??p"G#????r???????&%??=?c|$/?}??????Uv???~?B???z?Q???h????!????l????0??cu7t?:??????T?!??\??l^????'??u+??s?{YX?H???u.?????K??Y?WP??,??7??T?w?k??S?J#???????+???~???>???>??u???\???u?~?euL{C??P??c?q,cf'^ -??T?e}Q??f????c??HX?U?????}???????????? ??'???I??\?????? +??????????n;??z?3??v4{A0O?WE??3?6'M?+??^&-z??}????????g?;?yM???X?4?e???_?=???t|????T????sI?>??S?l?R???&5?W??o??;?S?r???ae??m???? ???w?}{%?x????????,s??A?s[r?g\??ZK?z+?pa%????-?u??h<=? ?}b??u<??rl?`pd??W??}T??S?cuN??V1?lT?X^????~??}b???V6???)i?W???n? +Sbu7?3??&[ +?c???_???6x????Y????C:ig???????=_?}A??6??u b???Y $?0??m?9,?w}dnK~????;?A?D{Wa~WSg????h????~?-&?#?2F???~?M^@:8?????:PK??g>?Mq>q?W??l{1??t????H>d???1S??>Q???I5r?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???o?????U ?o?Ri]k??f;?\???????^??]W??t???ct?o?UXqi???W%???V????}???????o??=C??A??}F-7??W??3?????@Q?m?sKrkk??i????zb?_???????V??C@?M$???[\\???}"?T?IH????ouLs?.-?E?????~????e???X?-k@;?u??RK???????YE,?? ???@B?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?J|?7?m?????(???o??w?AX????s%??X????4???.????T???+???? ??7??l.+??K????????????L?-???? ??v????}S?]_?m?}+????Mm-?s?k??B??Q?c_??6?:~n????u?~????fNH]??`?uK??>??r?C7??cg???le?<??? +????nY#P|?????6??}k?u?X=k,]??e?hm??+?g??o?h?}?Z??K?[2?T?l?????k???{m???x?I???(?/??????>?H??j??S????&??????]???I!d?c?P???U5?}?0?A)RX?????Zc????}d?=A?nu7????1? +???4?!???L=S???????Cr1-m??V?? ???,{???Y???_??????????\??_?uJ?gN??%?0?Vd??n$?????]??8?]B??o,s??ZU[U????,??Z???U??%??z?F?om}C2?g?%???HWi???e??YU?9?n???$?i$?JRI$???:??*?1?~M?? ?????W +V????? ]?jl??{^_??2H??#}XU??]Cr*?y??????R????*??g??M???7??TU??????{q? ??}~????'8??NQB??o??y??F?D?????W??c??i??eAT??y??????W?N $?R???^w??????<[??y??3?&??_????????~??)?????;??????-???????CI/?G???????_s???????W??c??i???^w???????????g????????O???????1??4?????;????%?(?????;???p????x??*???g?M/???????1??44???y??????U?8~?I?<[??y??3?&???o?U??????I??K???.????L?4?N?>?UcC??3\????????? ??????????O??_?\??????s?R????H?/??>J2GKg?;?Uf????(????????????o?C???(???8??(r?&???<[??y??3?&???o?U?????t??8??O????????????1??4?????;?????K?Q??3??w?W????'??o?U?????_????W??c??hi???y??????U?8~?J?????Y??3?J&w???????????J??K?Q??3??w?Y?X?p?c? ?>c???????c?????Vo?????'?xo=/;???Dd???!?(???8??C??5eo???????1??5/??begG???U??$??X????b+?u(?????????(??;?Uf????(?O??#??(???8????? +YB~???=/;???D?????W??c??i]??Hh???4??/;????oG???????d????9Db?xO???????e %-??D????c??????o?U?????%?C????B????n?????p3??o?M?\?sw???Zuc??k?]?Y?U73????H??k[?,???NF?ZI_??[?????xlg?M?x??*???g?M`???????|??sb???????7???T%-?Zg?<[??y??3?&???o?U?????J?G?????????p????x??*???g?M/???????1??44?????T?? +^ii???5?#??? +??q}m??h`????*?f6on???X?c? ????>?)??c?/{Zu??2?wa]?}??g?W???]h???;u]u?????a??g?w??X?!?(??>[T??????????&?????"?I?????J??8r???Q?u???j?????<.??-_??E?a???>i?????u??[?/???y??,??L????B?E??i??r??G??V???D????7?v??V?4n?]??tF???O?_???3>?}Y????z?Q???:6???%?^???????=K??????!?LYhu??KG??%;?E???n?t?WZ}?T?????K??km??!??KH?? ????WD?W????V;-|X??'?.?????wG?? +?k_??????F?????,?_??????? ???w????g??????????8????wD????Qie? -s[`?o?S???????;?V???[;?~ ?????_W??s??6????????u?????12?Eu????I???? >%I?R?}??J???G_^??>?????::???????/??u???]?`?XU????2?????? ??j??_????#2?a??L?a?=?}Wm.-?{uW?n??s?}R???5?~e??e?A{H ?B??):?????=???????8??F?c???L,|????\7=???KK? +??+/?t?g?|??? o?? +???????Q?? ~?c].?E|???&??W;?]??K?6L?2????mbgj????????]??yo?o????>??????????;l???yk?>???;?8??????????4q?N?3h?5?~??1'r%??>???I$?)$?IJ\???>??ivh???7??:.?s?Xzv?nQ??a???l??`?4p????=tW?,??????a?????????q?D?d??G?o? O???}]?????vl??h|*?????????X_??b?L3?&"=W-?l????=?-g?>e3???????????_[??b???%?7o????'?t???????}? ?>?@?Z>?cY-??6C0$G?xz+?_[??b??}??g?,O?/?????}?~????????P???_??}?f?????}l?E???%?/??????D?`U?ss?????????o?/??+???J?????}l?E???%?/??????D?`U?ss?????????o?/??+?????????}l?E???%?/??????D?`U?ss?????????o?/??+???J?????}l?E???%?/??????D?`U?ss?????????o? /??+???J?????}l?E???%?/??????D?`U?ss?????????o?/??+???J?????}l?E???%?/??????D?`U?ss?????????o?/??+???J????+?_[??b??}??g?,O?/?????}?~????????K? +??????????_[??b??}??g?,O?/?????}?~????????K? +??????????_[??b??}??g?,O?/?????}?~????????K? +????r?????_[??b???WB???i????%???H?>/?Vn`v?5??d~??=???s????????'????=.?????[?'???????????Z?????G?f?Vc}kk?W?O??????[????9?^?u%?87?YQ??:Sc/???_???ve??`??f????????????}?????>? ????_?77??zo?????}??????G?&`2?D??/??????D?????'?b_?*???????????[??o?/??+???K?????_c??????1???9? |M???#37?b???Gey!?+)?r??J?_???yh?{??>l????e?tu????????}??g?,O??S??J???r??????i?W?sK]??Zy????> ???G?]?&y?3?!t???m?? +?bO????? ?;g}Z??MyY?'????aW?ss??&?k?=9a??d???z?[?b}?%??m?A????:D?sx?N????O9???B????_??}?f??????k??X?}??????8?}??K???nvXkI???j3????{?sd??w?????e>V5-?Rb??y?`%/Gp?_?k +$f???{?b???f???K? +?????F?\????)?s????B?.???q^Fna?7??C???t?????C???3? x#??W@??b:?U?9e??????+9?q??|?}g??dXps?)?N@????b~??e&g?z???~?c7?????c~?g?????\?^?$????y"?+s???bp??Bd?~1?K?)K???????????K?_[??b}? `?f?????????_?77??z??3??H?????:??j?(? ????U?/??????D?????'??? +??no????`U?ss??????_??}?]y?}c???s^????}m-?G???s??%????+(????V?B???????G???f? ??-?u?Qml\?\?%????t??o?}l?E???%?/??????D?`U?ss???[???#77_?w*?{?W?%l?@g&?????g?,O?/??l?E???????;7??rc??:????}????_???]????#?}k??Q?????????????????? +E?}?7??z????[Xn^Y???8??~w??^?<7??2????7???S>?]f???{???'??????????'??r0?$?~^??????`1^e?#?HFG?0????)??/??????????d????v??5?????????D??b????G{??W+,R??x"DN???qe?9??3&???L^????Xn????????>?&?v,???*?>???8?r?W?fh???bs p?yh?M???'?b?????'?b? +??no???;?B?]?????}??_??}?\#?G?L?o??2j?;?Fw???s??n3Z}????KE??N???6????{?W[?W?2?<|???c?5?k?^??J??o? ??|#?7????g?? 0????? P?%??F?B????>?????:?0????.?j?_h? +??o??8YM?< +?F???0?t??+??4 +??s^?#???u????'J???????]e?KAo?h??hv?op??????W???O??)?g?????h?'?]? ????????[????????h?s???/????Ek]u??!????##eu?n????33???2?;0?o?cD?O?????????{3??8??'?????yht??%???#?==7??????(?i????f??v??0??{:4+?(????f??????)????vh~????Q??/???u??Z? +6$???:;?xN??'???{ ??b?e?`?}p?????GT??:[????5?????W???*?w@;_??o?I$? +s??@?V???????Nt?J?e[K????=???i?%??+??zWD?]???q??]?s????????t\n?gT????>??d?2??K?????}H????????K?~?tD????bQK+?o??b#?t??];+??p*???J??C:e"??p0N?V?Z?45?5??4'I/x???I??[??F??Q!??? +???N5 ?????hk8pIJI$?R?I$?????8.dp?F&?=????M~????]??9q?pp????+??????G?? +????-??O?|s??????????V??????c???v??m????????o?=??^?z +h ???? 2?q????UsG??????k??i??>?~????J?????(??k7?????UV???c???V? ??6??;.?ug??0?@?1???~????g)??]~?<8?O +?[??j????+?L?????2 ?Uzpw???}??x????o?;???<&???n???????C?? +???Or?N?R?o???,y~) q]???}=??Zy?*??~????J?5?(??f??}?p?]_???????*?E[????~????O???P??????'??}????????~????O???G?M?????_x?????w?????k?t??mw???m$??&??????????^??o?-?;??:{0??i?WD` :?\???????)w?sF?????)??o? ????#????+?_??O&?w???Sk?t??W1??i??/??????u??????},s?????k?????xU????A??[1?H7?????g?????????+????H??%?????xK?M?????????? +????,??M?????????????o????H??)0?8?'??W????EQ?I?i????xx?y ]vp>?,=????`???wpV??~????????u?qN?m???0??Y?Ief?????S????????Y=?F|=^s???O?Qic?2??-??????A??Y???+??x??]?$C}??V?#1????;??O???x???????o???? ???N?8k?~???%,x?-?r?IA?&????????8H???????r[]???[I%?&??????????^[?1?CI?T?5v ?K=??]?ef?,>?@r?S????L??:sb?>wv??I]i??o????G?? ?/??6m???gD?X????? ???????????[I$4??esU?.???1p??GN?4?????O#^??_^??.???J???l???K?`?J?y????W}o?7lk?t? +Jju???????9???[I???^%???]????^s0???T (v^??C????j??=-??>fT?r1(?r?????????/rJ|g???~?????/]??-????C????t_??????q???t???W??]??~5M???????i???2~?????bcU?f9??x +=??S???Oo?????????q?????????????c???:?x?t?.?? w???6n???In???? ??? ???????p???x?]*???V?_??????q?????????????[?}?wS???}-?1??[\????> +????G?????fQ??Z}?7y?n?Q:W?? +o?_????#?.???????G?]???^?????:rv??????7 ??????t?G?xf?c?Ec?;???^?? +???^A???????r??$????~?t??GN?}C#?d??@l?|$?~???I?????m&???8?VoB???k???t?i.????????,z?9u,??????j1c??????s$??_???;???2?Y?????????A?C??Jz???E?/u`??K?=#????:?.;?`?+??HoO??2?5?q????? ???W?t????????=??? +??'M?k??_Et??I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO??fA???????HUk??0???p??E^??????&?????C ?m?m?ne??7??6?8s???C?:=}6????=??Z??kD??bE????.D?]v'?Z???"?0??}_????M??=}F?g?dQ]?y-?!zZw???~??O?I$? RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR??????X{w????????9?>??[?Y??????????5?$h?^`???????L?z?????^????? X? +?????? ???t????W_i?mUig??XW??}N?86??M??:?]?/??]??????n????1????????N??qx?g????????}uv??9???L??0?????}K^ ?c????????5??y?:~7R??)??\??h0c?`t?< t?vF5m??8????iN?2??_?z??O?_???7??~??[??f,.??,?-?k???]??u?[?NwR*??F{?1???s?????j%tG?[?S9?7??/? +a???_ +?[???z??v}$???????Cw????5??? no?vZ_??7?et#?>?1???0?????????d?L???? ?}P?l?????t????, +?43?9'???s??u,/?G??U?`gU?(????wF?XNF????????+?i?QwFk^?[?7D?9R????:]?pu?Tlsuh?$-l??m?[?e???M???nq? >tZx?U?-?R_????qy??s?M"?xLd???????&????}y?????o +??q??? ?]???e?hW?????l???k?_??W:&_?0q??????????;?P?P>???????c?|n?c????4D??f???h???t;+H??????? ??x/=????n?O?????j??\??l?fW}????????n???????/3??????u?????.u?????o(???1????:@??~!?1?????gF?/-?x??v6;???t~*_T)??}|?=+?X]??Xs?.c?????G?u??f}??]?qc??7T^??o??]WM?????q.{?.:?*? ?qu)??^?x{4???S~?u&9?u&H??????S ??%?;?"F?????7?}`???*?{???e?`?0to?? ?6?????????s???xJ: ?Z???K^???????:???????,a`?Wn5?E??z?OY?e}2???q??????Gq? E??????6./&g?????Lj??UKC ???>X???????}R=%???k? ??[????t?iQ????4???????B??h?#?E?at???r??%nY??K?? /???qz?T?=V?VNu?????5)GxS??J?????_??bI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jy ??6?]??S?7????t???c?????a???????J???b????????49???\?%tl9????h??Y??]???????dxO+????W??\O????????,iF?????O??P~E}??F???i?#??P???Y????sY x?^[??2zwM?????Ws+???????????????L???6??s4p?:.;?????''??????F??7WH??oC?r???+?????????71???z????/U\WK?] ?u +3??!???=??A#?E??_? ?O????)$?A*I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO?(?k?q?v?;n??p?=??X??f???U,- +???????????81??L 'EG?a???q[?}?k??[?Wk at up?}R??X?O?3/-?vIl4~kX .??-_??q??]l/????: +Wa???????4e??|?? ?=x???:?4?~???O??t????]???l????z.P????????k??????D?|*??D ???OE???????O?$7?3?t?w:??y?:?R???o9v?????60?0???_??????_W????????????4????H?|1?_??i?????N? +??@?K??~D8????k???????X??xK?t?\???? ?r)??? +??`?^???mt?Y??k?E?|La????iu?_??7??( ??b???^??u}\???? ?????aG??q??????*? m???|la?????f7?????!??????????=????~/K?:~????????O??????????\S??i???????1??W?c?C????Q? ?5??c?????o???w?,(?8%?:~?????,??b?????r-????+????????????????dx?G?t?]?? +??K?t?]?? +??T?????????6?bl??????r_??????????9rH_?{?t?]?? +??K?t?]?? +??Tj????A_?????1=??????r_??????????r?????t??O??????????????4?v.(???k????r?? +??3??????G,L??5???l??Y? ?*?|?????????XQ?pK?t?]?? +?? ??????q????L_?????U????s???????$8??u??O???????????????O?q?W?c?/?b??????r?????????????o???w?,(?8%?:~?????,??b?????r_e??A_??????$?9????_r???:??????XQ?r_?????XQ?r??&/? +??o?%?\_?????K?RG???3??#?????:~?????%?:~?????,??b??????r_d??A_??????$?9????_r???:??????XQ?r_?????XQ?pY?d??A_??????????????H??s??b???u??O?????????O??????????????W?c??bO?????K?RG???3?P?G????????????W?????O?1?W?c?/?b?????r_?????????????o???w?,(?9/???w?,(?9R~&'?A_???U??????????H??s??b#??_???:~?????%?:~???????LO?????K????+?1???????'??g?'?G??[?t?]?? +??K?t?]?? +??Y?d??A_??????????????H??s??b???u??O???????????????O?1?W?c?/????????r_?????????????o???w?,(?9/???w?,(?8,??b??????r_e??A_??????$?9????_r???:??????XQ?pK?t?]?? +?? '????+?1????1?W?c?/?I?N???W??????????????_W????????&'? +??o?,N???/tT??????\?Y?{:]???d????\>?????????X??xK?t?]???? ??)???[O=???n61?y4?O?]???c?????????????????[~?o?z_???s?,q?? ?????c??x^OeUz??7???G????k?c??????????????????4???_W????????i9-????Z?? ???~???O???? ??| ?U?_?????????X??xK?u}\???? ??)??bklI???G?&??? ?5????????05?^??k???????cG??/???s?,q?? ????c??_? +?????|??? +? ~????????_Z??_W????????????8??????_???%?U????????+????>???????W??????<%?:???????y/?W?7? zU~?~??????*???????_Z??_W???????Y???????9?!???<???_???.??]cc>???????i-?'c??#?W???> yl????????5??.?US?"C\@?????????B???O??7 +??~?????Un???^??L??e??Z+{??M???2Lv^??n?K-}>?S??}d??]???????u??u??v?????|d?z??U??>?????????????????}?h??????]G???&U?n[3_??Tm?~?????`??? ?%?????k???q+o??U?U????'e?s?.?f|??_??~?Z?????????e`?.?H?????#?^CmMu9U:?XI? |??q???uN?m&?|?,=[??\?=???????|{???w???v?,?%?meI?????J??jG??0 ??r??_c??G%?e?Y_???j?,O??P~E??]????????n|????C???M?4 ????j?v???|???d}c?eQ?+?? +??Z\Z?x<??u?????3q??^?Lv??H??^m???]}[?n?]?w??{k????eV;???? +???g?WH?????7Y?Y?3G???5??J???V:?????x]?2]`??u??O?w^??;???R???Y?0??????7i}gk???I&?z$?????WG@????}C1??v? ?q11????????033??2????u??Kf@?\?????z/???]?U???????SI>??[?? Rk??*?o??B??>????????]????CwU???????gX}?i??????Y????^??\?[?){?,'P?Di???^k,?du?2`?I&?RI$??????y???c????s%?T?Y>?B???Q??rqz?????}&1??L??J?????L?q?w?a?o??X???'????~?????Y????UG????2:??g?}bu? ?K??5?????? $z?>R?????\?lc{?'?????4z6'K?????+*"4h??G?s}g??+>??L*??]??c z?J???t1b??|1?&?A????NsH????[??c?*????%k??????????#F?????uj? ?Y:??Z*??N??????;??r??9.n9?>#P3???O????Nf?f#????n~???????l???????Y?????#}??????17?????W?????v?????O??????#???E??}+3lF??$?T?????fm????$????????b???cU*?m???z????>?????h%????7_?????h~?C?'??????????????,gQ???+. ????K??Y?????b_`? _?u??U1f?^+??????x????q???????????Y????fvkX???? F??J?U??U????3??o?Y?????#?V??C??dD?Z?????3?l?|??V??? ????????I/???U??m???????WZ????l ?????#??s?oV?????????NC?FfQG??h?Z9??c$?$mn?}S)??????F??IY?2??J?????IR?w^????^??&C???????md??\? ?. ????#?p??.L??~#?X]????????p??1??X?g???U??`??-??z?l????T???\??8u???Z?"?????? |^??R??m??? pG?S?k??t??e?{zVT%???0?g]????YPDh???{?????\??r?kO?Y???itu|?O??c?????????v?s??C?=r?_?h??z?? +??em?~?????OS?????fA???!a??X?OY?????f???Y?????????&$?Uh>?\??O1?I????`u,?j[??7?fl?u`????u ??E-e}+6A?X??J?z??$???@??????24?*??9(???x??????U?}?=????%#??}]\,??1?[?Vn??X??#????????l??Lu?Z??b?~kO?V?7\?????Y??>??&????_?+qg?3 at e;+????????l????YM&zVw???Ifu +??oh?????G?Z?}i??????GR???r>??????r?$?ip???l????????IE?S%? t?????$?`?_?u??QM?ii?Yy?0|#??????}??]?S%?????????Q???:#?gi???I??=Z????u?sZ*{0z?l???????8???y?&?H$#?k?e?[C?gJ???????K'??c?*????%?p??h6~??? ???????Z6??\?kG?W9A???K?nr??VO?f?G ?:?O??X?????;?f?D????'? ????????IU???W&?Q?g%????O0u?j???.v?ucT2?????g!&??????yc9??qi?? ?hf?Vo????I~???????l???*??U??\? @c??u??????(???P??????????|3??D?U-?????3???7???$?hf?Vo????H?`???u??K?k?.??1???Gi??/??????P????????l???????Y?????#}??????1/?u??????%?v?????W????????3???7???$?hf?Vo????H?`???u??Q~Z $u???C??;O?y?(d?{}?????g?Uf??c?$?? ????????IR????X??s?%?A?g[?-??|???? +?y/?~? ?k?~???+Z|?????\\'Ga?W$0???????? ????????IN?>????~??bk0z?h????1???????x???5??]?????????l???????Y?????"??_\????*t??Q%?k'_??Q????K??/0 +P??#??Ia?gL??$/???U??m???7?????W?????g?.???b?Gi??/??Fy?o??Q????????l???????Y?????)[?????f?Z$K?`??e]?????!?RC?? N"|0??Y/?????Fq?#?{i??????U??m???_?3???7???%K.??FC?oV???,j?~??????5MC??D?%R?Zz???/?????bh????????Y?????%?C3?*?????Y?3? ~??_?5k????f?D?(?r? ?^?f8??d???/??O-??{?~?_?3???7???$?hf?Vo????K;?U???,???b5???Y???l???1 ?>???? ???????yg9?W???3???7???$?hf?Vo????H?`?_?u??K?g?.??1?/?#??????7????????3???7???%??GT??????F????g???????*.?[q?-????&? ?.(??????\9???????????]v????eF?4z??????????w??w???k??osW?!?? vY?K3?????v?E??!?#2M?x?????2"1? %?e?M?????7_/q+'RO????/?????4z??????0~??#???????????k??????r?? h 4~???3?a.F#K???hb???U???YP<??^8?^?+/????Y?u??L?qN?A?? S???]N?oV???#k??yh???<1???????? ???c?Q??s??W^?#?wJ??? +??????V_???$?k:??M'? ?H??Z5???Y%?k'_??T??@p??\??????'7?.(??hGo'+ ?]Ic:V\???????Ud????o?,>?F%?C?d?????h????Y#?S?_?n\?9K?Q??e?25>qY????/??@?????????*?????O??U??h??????????????n???????7?j???Y'??U?????????? ^?????????m????????*?????_??W??h??Y?Y>?=??S?|?I?Z>?4??V|?N +??I??=???%?y?c?`A??U~:??????*????o?????U????r?? ?K??k7????? ??????F??y.????b??j?~i|???????N)\??!?\_?1f??^k??D????Pz=???A?Bt??M[1?e?[]V?n`sX??x????????k?/#c????????????pC?u?9M?S 9??G?a?????v???`??T5?e??y???tJ:???~??)#??????>?0??@??A???7a???$0??kh??6?57ca???i?\Q??????gD???>?z?k???Z ?g??R???gU????y???~??i??)^?????GP;?????at?~NF=$??e?????"Tz}?'?SVv??? j??? +1???7?n????zOQ????W?]??/aL?J??????????E7??[?Ga??~?z??I)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S?eI?????H?_?m???*?6?c?Tx]v'?Z???"?O ????W??Qg?y?9?~A2????e???7(??p??!??0}'?}????X:???????]?t?R???-k?;??*??@?C???5????5z?O?C?t???+??????????4?$jg?z?? +??3?7?N?@??2?3? +,?-?E??????????Ti?k??x)$?AN7[???:?F>F{^?1L???G??R?j??~-??V0??9?!$?J?zy???r~??Y?Wq????{k??????`}P??????q????P{?}?m$?[?U?WJ?v?}c?_?[??7&??{?=??????????W?WD??/N?UY?d???;??I!??????????O???O?u6T? ???5?;?9?????c? v +TA? +?#???Vm???????_U?m?!?\K?\? +?H ???a????p1??W???????0 ???g???wms7?? p?K??}?O??\?????`cU??k,s^?????d}_?B??q??????_???G??k??????C?E? ????W???????P?????o ?k;w?Z~?F"N?????????/???^M?????????????/???hs~p?)??'????'????Sc???4?????i???Xo q?L??????}???j??=C?????q?F???????_??????q???????'?U??M?Rc8O????@j?:?}????1~?*?????@??cv???X??Q??XN2??(??l????Du??B???_???c_??%t?}A??K6??t?6;????.????m??? +???y!|? z=????6??????????6????i??9L????Q????????????r??????????K?d}_?B??q??????????????O??P??W?????w???2>???????K?Oe?9?4?+????a??M?2>???????H?G??D_?n;??????????q:?ho?T:t}???????V????{??Bg?????7???'?0?!????I?<7C??rb'?? ???%?=???6??????.???zc???i????Y??{/???????????6F??8O??????x?_?n?????W?????w???'???????????g??_5???? ???zo?????????/?=??????|?|v[*>?g?J?????????1??D^~6;????W???|???Vq|.<91q?u?????_^\y.????>?m?????c???2q?O?{??7?????q?????k#??h?#zt???r?S????$????F?? ?g?o?!??O??????R?Q????????z???'.~Lxo?;????????%?_???????+?M?? +????????m???w?GR>??????zn?d?????????&2??&l3??-??G???/?????????_?n;??o?=?????????;$????7???????????U??????,}?`??q?D????+??|?????????y??+?r??P???>?t?>?M?G2v????|{?}S??s???X?n5???e?<y:????xe?_????|#???? ??N\\\I??;>???? ??v??H??'???????S??L?=|<????5g??b68xEw????????????p??TH?d9??D???w????h^k????V???????w?rb|[V???????(???7L?????????l??T????Y??i?+M???!?v?|??????c""fI?~m\??)kbf???i/N?R~?F??????a?f????f8??sZA?e????n????7???1?Alu*???'W??????? ??????4_?7?&???i???d?(??W?x}?soH!?_/k????$???1?"L 9n?nw<??, +z??7?7???G???_???m?x???G?}7??h?"?A?*?d?????????H???????V???:?&\???~???1? ?`=??.o??[??_Y?Q}????T'yy?!t??`w??^?j??}?T?I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???:??????~????Ic?sI????IO?}e?]S??????G +?s???<??????S>?Sk,??b?b????m3?????u?ME???????@|?%???:6]xX==?eTvjd?%u?S????C?>?]?.h?st$. ?}a????z?D?????e???I?7?? .??\t????b??0?m?u??????k?wD??Tl?????2??????V??Hw?o4^?????F??v?????????{o ??????}`???? ?? I?W3?q????????Y=?/??k??{pSA???3?l?5??e?????~?tWts??C~??;???{??}o??Xe}>???\?X`??\f6B??6P????nV at w??{^ ?hg??P:?U?r? +mO????O?cGf=?%8 ??6?ZO??Z:????z6????{E?a-w??B???'?N?'?9??q?.?.????h??????????W???5?x?N?O????????~U??Yt?P??:O?L?????_??/?v???un?H?Y?S??.nu??E??|1?Y?[?? +}?b?????r?X?Z????Q??o?dt*z]V????k-">$B??1??.??:?C?(??????|???2T??]H??zl??????r.5?\&???c??g2????}^??' +?7 ??Yp?N?W-??+?????????S??-i? \?B?7?7?????~?:?6???X???t GYUo)D???L??"_?'?z??Xz??=#???7??c2????t^?????io???????W?Q??? ????&7??*????[??*y8?T?? ?????5?K??:?>fOS??g?????q????=??..?V?J??H???????z?Z???~?????{0E~??On???[??6/W?9?Uc???X???????w???}??ul????`=?V??gm@?:?????MZHuyk?k??p????g???ftV????Q??YVu??T?z???2?`Y`q???F?c?r??#????o??3u?71??u??m?j? j???^???????f?#m??t?M????\?G +G[??????ZQ???/???,???t??Ti??Q1s?R??Xlv&S=,????;g????????{?z +X??q\x??\?????b??~?????u?????Mq??@?1G??C????uz??1??t??0???YQ?Ue?i?.n?.?;?b???`??F?=?????u????R??j?W??A??? ?l]???????K2?ju?s?[?-i:hRC??O??D????:??_??????????0[uu??e?????u[?n?????;:??Z?4h.s?K???X?M?m??]?FEo??????tB????I??????vC1??v??d at n?i????C^?_?q?8???]?????W?????????T??5???A?~?k??T????.??f?lJ??!????65???X???+??????_?n;1??o,???&"WA?3~????OG}??????????!)??z????&fwA??~??J?+?}R???dec??????r#???-??NoH?6?nV???q???ID????nw??1q?/? +?2ZF???f??&???????m?!???S???c?$+?c??P'p@?F???$?I???I$?$?I)K#?/???=?Y?????E#Pq???'?Zd? ?7???????t?S???????O???3x??i??/FI%>q???'?Zd? ?7???????t?S??????O?????m??&?z?Y????;?????T?;???n?Ko???v#?J| ??w??j?T?v01???.r????Q???????"?:?H???o??q0?0?n>%M??k #??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????g?}??EUV??????g?QUV?~Q?gs???????J??????/<??~??%a????RN???e???7I%????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???i??.clg;^?? +jq????V??u!? +?"I) +?Xv??????9?'O2S????E5:????.-|?5????o????{C???$?f?M^?????N??p?8??(???cCg?DI%8?Z~???T?~?~=????v?7?i *l????^E?hi{? ?5:?+)%?????? +CN&-??k??K?m4???V??????4?R???j? +l?b==?lW???c???T;?r*I)??^o????{C??????Q???XAX +??!$???n?????N $??e???{??2?+Wa?^???]????#$???03? +?F???q?"/?????/??W????????r*?=??????????$O?t??z,A???????8j???v??~???)"/?=o????E_?????v??????z??`?_??O??N??? ????? ?>_??O??!8y)d??}??/??W????????r*?=???>???M????S?=? +?????i?Ne41??=???-?&ia? E??g????2?C$A????m??????K??_?"?????????64???c?gN?????l??!We???????rty?H?u_?e?A?a??}???_?"?????}? ??U?{?x??q??7?]A?/?o ??W?????g????,xx.>??WV8?K??~???r*?=???????E_????%????? ~????????Q????? a???x=o????E_?????v??????z?j??\8???o????a????????g'??V@?a?????r*?=???????E_????%????? ~??????_????5??j???????? ??U?{?/?a????o??K?E??4?????? +????/?k'??}?????_?"?????}? ??U?{?r_?z/?????????pi?0%?(??Y????s????n??????K??_?"?????????? +???`?_??O??/?E?????5_s????v??????z_n??????\????pi?0%????? ?._??O?????x=o????E_?????v??????z??`?_??O??cu>??+?-f-Ml +T?~;?,?F)?/Z_????.04??????r*?=???????E_?????????????j?'Q?o???????9?9????zRr?:x?q6??n??????K??_?"????????tB?84q???o????G??C?(????? r??='????E_?????v??????z????C??4??z ya??? ?<?r}?1??.??????r*?=???????E_????+O@???????o?????????9>??r???I??/??W????????r*?=?????????????C?????x????B=?wI??/??W????????r*?=?????????????C?????x????B??wI??/??W????????r*?=???{?C +`??????ZI??????<?r}?w????a?????r*?=???????E_????+@?????i??r?]7???m??1O??kb@?1U?ug?????q???????/??W????????r*?=???W??????%?\o?m????G?Ks?Of?=?????/??W? ???????r*?=???W??????%?\o?M????t??Of?=?????/??W????????r*?=???W??????%?\o?M????t??Of?=?????/??W????????r*?=???W??????%?\o?m????t??Of?=?????W?1?V? ?)X?S?^?????l???^gp????C???t???rqz?(??V??.??u??p??U.????????C??R?????#gx[v???~?}\}??}5??d9?%?%?Z??6?MbJ????R??i??_^?_[?/?2?????>}F?N??n??????h???Z????Z_5?t{?g??OwM??W +???Yk?~6p`??????S????J???n?'2?uo?YcN?eo?T?} ??7?MV?v???F????c?????3?.c.??efv? +??Y?9?Wp?????ma?P????ul????{?H?C??7?g??Yk?cA?????V???m[????WQ???/???C?DL?,0`??]?J??????/??m??????Em???c???V?M?!U?EB?,???&?I$??)$?IJI$?S?^????n?????$e?8?J??O???P>??????z?M?'(?v??6[?????????????????/??c???DB?=x/???????N?????ne??g-???F?#?n??????|?/???/????>*?Q?5???~?[????J???? +?}R??????2??#:?M???K?zX??x+'?N?_????_z?~OY?????>?2=?w?0??W???O????VOO?d??'h???W3????\'u9n[Z?:KAB ???????>????W!????SC???????????????F5?]???c?}c?/%??????ST?,p???????T?s?\w?WO>j????U3?}?m??????Ge??,2X?????5??YV??????O-}?G????P??u +>???K ?o???V??@???'?????\??e? +??'?dt{>?t????2???????D???^9F?]C5?eb7?????2???D?HG??YB???????????R??I$???I$?./?_???.?LoV??`???????Wh???{?W at 5;????v??8??>?yDc9=S%??9#?U?"B????Ef(??Y??zO?9?g???.????????????k???????H1IV???O?/????!?????o?ttc???????L?=~?<]????i???.?Aw????Z????i???1??$????????c??I?????????????~1??4??'N???%?yf?cQ??F]X????6??6?R???|m??l???_?o???????C~g???>???l??&?}?????'???e?? +???7???f????>?t??I???l????n???r???????????'??????&??~ ??r/?rs +?t???~??????????~??????/?}l??x?????i}??g?????_??K????Y??? k???? ??m????@???????????o??g?E[?w??????l??&????L}????M/???O???K??????o??????*u}a??|?lG???*??????b??????l????????i}?????'??6r+?5m????`:?????)????2?G?f??????????? ????&?s??O??4???M/???d?_?(`????X:ay ??6?S7???A?????*???}j#???O????C??o???6z??;zN????_ :{?5???[??a???M??5o?O????-?o???????991???+]??Vh??Xfs???W?'?g????.?u???j????w?O????'??l?????Gm????&?7???????????N?3??bkM/??no?s????s?k????O??V.?Aw????]?????????w?M???????]??V?r?'??3"?-??3??C??xx???????tg?b???n??=?=+9?5j??}lk??b??w?Me????M??a????????M????sJQ??h?B??????/?? ???r?cW??|G?????ph??O?????????m??"???????9?#?D?4??W???????b??w?MT????U???????p???re?[?_???????l???K??M??????"??/?k#??C??/???7'?k??15??w?MG?o???????_w??? +??7???f???_??o?????????l????????iz?[?f'?????_v?/?)????G???C??????l???K??M??????"?=???3??w?MP???Z??5?GGE???????#$?a?d???^??9????0??????|m??l????????l???G???[/?X2?=???>???????/??????4dc.g ?? ????D?D???G]????o?\D????\?^Sl??eW????vn???r???????2????v??'??@???5c????!\??dn???,????Z&f?????^K?I?Sp??D??B????\?n"9?????w???M1?b?N????u?????>??7 ?E??5js?1K?y?oN?????O? g?c?\O???]????i???]????i???A???Y????9?????F??????b?.?????lyA?9????e?rD????&??$b?]}W2?.??y?]7????o??g?E+z????o?3????6U???FN#6??????w?9C????k G??FCo4???o???????o??????*??~?5??l??O??????b?????????I??5S??? ?%????[???2?[hJj??t??&??f?????X?YdZO?M??a?_[Z?f!????>???????/??????_?U??????H?p?????o??g?E/??7???f?????????/???MB??????g???]??m????M??.?N??}Z???o???????o??????+-?^??=???D??M??5s?t?j?K??m;?&?K? +??? ?????/???@???????|m??l????????l???S???[2?? ?Fm1????C#?}k??Y??tw?]??Q??? +??#?!?u#?E?????^X??]??+??M??????"?????o??g?E[?????Kmx????w?M6V??jM?/???w?M7?_???????k??D}?/??+??_??7???f???_??o????????s?^M?????????????}mh??b????h??~?\3?2D??/B1syr??[W?????|m??l?????????/??9??????????????F?Gm??;?&?????KX]?`??n??????????????&}'?????????O?a??53??&@e?'??Eb?3?|@d??:????Lk??F??l?????>?????6?Q????3??w?M/_?o???????U???_?U?????L??A?8?W?[?l???@??\H6??6?U?_?o???????K????s1?????????NO????4v?iU???5?M???g?E?q????????"?z?[?f'?????^???????l;?&??~ ???/?,?????q????????"??q????????"?z?[??f'?????^???????l;?&??~ ???/????B????z??f???_???~??????_?o???????L????l??O???????VO????~?j????9?Zu?Cg?E*??t?? ?????VY????~????.???z?[?f'?????_u?/?)????I?p8xCJ??=1??6?#????+???c?`mw?????"???????n9X?????\'?????[??? ?b??Z???jq?][?yo?B3??? +??p???j???W?? +;??'? +I$?R?I$???I%)$?IJI$?R?I$???V??3?????*d`??8mu????????V??3?????*??2q?????????q?k&[[|?[7Q??)?$?Z??[A?h?????p??????X?5?????7??m??e???^??????????B??_/?d?????I* ?I$?R?I$???}7?aY??????{A?????0z>0pk?f?i$??U??????x9 +??????]m'?????8???]k??E??SP???}j{\ZG???K??v??W????w?u?V????6??w*?E???w???? P?????????-??]uQ?~?Y???w????C????C???(t???V?Fk3?q?]?????|?D?CM?Q?v61?1??V??y??>????]?t??M?????~kM$?n??}I$?JRI$???????0~/? ?\??n??]?7'2?%?k??????Ra?1?=;"B???`~???O?QY????-??c_nS?X??n?xj??6?V?{'????U????e???$???K????????????b??6?V?{'????Q?????=??????'?+?????/:.4?????m???(???????{?1P????M?NK$?d h?'?-??~)u~?o??Sp?!??????'}N?{K]????A??1\??e????`#,?' +??t?>?p?K? ??L?n? ?}F???9?y?p????C?;??g???b?7?L??$2?4+PQ?H????J*Y`????S????;;????R?S?????Zt#???T????8?????????????D??U???5???J??9????b?_?~?[?W???x????????9?N#?$lz?x?N##?Q ??????(??C???????????L????_??Vg????zau!??&?J ??Z?~J?3??g????s???9???????'3???? t??? ? ??"????????o??)???????o??)??????)]????E;A??D????;;????R????;;????R???????R??G?JR +PT???7??????????7??????????o??? ?b??}?.i?#?????;8??????3 ??g????_?s7??}?? v?v*?????5?f??b???}O?gg???b?3?.L?c4??s???I"?w???X?????1????K?Va'R}o???gbm??????v?5O??&Q? ???`???N3????^w?M? ???7?'Lk?????[?1F?????;????Sy????(???xEj +?R??BZ?? ????`?aD?N???????8+??]? s?hc????{?1B???N?????s?M?????|. ?g,%b???'.>?7z?:p?do??0Q?+?k3sZaw?b??fa??????1Q????g?s?8?;?dc??c4?EQ???L???Z?3??g???????t??35?q7?(????,fs@????s??g?"??????o???J???~?t??Fa???(???????784p??????6L??1?z?????ylXLO8?OG?~?????W??'K??Vd??????????^o??????J>?3 +7?????#`????????t9?o?+g?/Lw??????:??`U"????]????%?{?3???!???\3?8?TDoc????}'? +???y???t???)s?????(C?'KFVd?g???UNS??0F`???????P1???????>??~)??????b??fa??????1U???o??? zA1?????? ??y???\?sw?>???7?B?Oqs?s??7?('?[?d??I????*?/????q:??v??b?(??? +)????)??],V??}.?U??? +?(??C?????????? .\?c,??-g??\?B$iZ??(*?C???????_?C?????????Nf?=??{??g(*?C???????_?C???????_?s7??}?^??Y?J +???????????b???????????b?????zaW?;pR?????s??????/????s??????/?9???>????????e7??????????b??O?"~w??????'3???R9?4W??58CS?F??8?????C???????_?s7??}?G??E??`??+??r?U???~?????N?s-??{]???C?E??{?h?[M?u??????*?/?|??e?rD??F??)?????????D?*??]lA??P?????E_??^ +?m???P +???f}I?`?????w?b?????a????q]r?.k??O +uJ?v??m?y????t??C?~w???????,?NVa'???(?????,e?[?g9y?xhQ'?{? ?-?!?????Qzar?H??????N??FV`?]????b?f?H???F???p?q?O?hA]OL??O?V7?????37????U?O?4??U???p??+}???6?????r???H?lV??b +t?M??J????Wmx5??u??$????Sw????|?cI?????H?}?dx-????M????m?W?]?8YO???p?????">k73?^}T???2?I????s?$??H?_??????6s+???????eDda??P?????$u?PC???MIy??????z?z_??`????=?)?????O?????????1???^?????MIy??????z?z_??`????=?)?????O?????????1???^?????MIy??????z?r_??`????=?)???u???z]??t?3?E?}??<G?b??????s[?wW??n??Y?i?X???IO???????8??? +??I?????????S?~fS3:c?????Z??????c2\?;?k???? S?>??o?s????`s?{??2?c???z?????l????02m VI???? ?X?S???i???3?{3Cv?{???R???>???f?l?p?7O???>k??8x'?5?2=???(?_C ?v;?[??%???Od/Y??u?WH?????S?????a???4???L?x??g?~??qfvK(?18?g??W???#???^gV???z?????:?yk?K???????o???????M?????F?;<;??K?A??? +?J?z? +?B??[?ul????d?1??I ??}c?????t.?{???7?D??g??????W???N5?X?q????{}??05??|?T9?="O?D?^?v?/??~????@7??uO?5]?oI??? l?>? Is<"t??C??UwT???z? ?P???????~??????.??t???i~??s?'??? +??^???^C???.%/4U?S6???????)??2??S??t?h???;3???=?`?}`??v>{??c????????z'L??d?X????????+?_d?=w?e?^?????6??????^ ?>?c?+??cm?X?@?0???'O?S$b2?/?Q???P?U???>?b????]v,??&50?o?O??f+:?-?k?I?^??????}B?gJ??l??p?tI?5Y[?;??*?U?d??4??=i??:t%-4?h:?dDX?$Y?]?Z????nED8??=??`H\F????????????X??CL}????nv/??wuP???&?d???-x\?????>???7??????Sc??q?-'D??H +???(z??g_.?u????P?o??}6?_?????nf????????%???????x?n??~??g???znM45??.??????I[?'?L?????=?o???????y\?????5?W2?{?k????O???L???????2?*?P?v?Z????????????~?i???^j?g?$7HM????/??????=?8????????X??nmY60K??f>u????q?n??y#S??N???d???????????r??"???m????????~???f;lk??a?1?J_'?????|?????????????`???u?????????????M?#????WM???N?KA???????}=?98g"??e?{)?qo? +??????Y??????VJ?|??Z???????DGr"|6J#^??2????a???/;??c ?7?m?i?q?????P?????u??????????`mS???Z?C??O???*?t???n$y??+?]?~???=e??????p]?????DQ? 6?C????b?w+?=K???'.?nu^?+?? ?\????a?:???`.~????#?D???aL?s???$?I)b??\??x\w?O????K???=G??UZ?7???????????g?A???E???=;?t^?????????sI??S??S??_?}5?]sbZ????Kr +?^U??S??Q?nV?6?K?{??V??'??????{?S??/2?????/O??K?b??????%>???/???0???????'??????{?S??/2?????/O??K?b??????%>???/???0???????'??????{?S??/2?????/O??K?b??????%>???/???0???????'??????{?S?7???c?n?IcOwF?y?O??g???j?v ?????'I?????` +O^?????m?????fuf?\???/-????|??????w2?^$=?B:??y?O??W??????Auo???????>i)t?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>/???L????????uo?S3?>?????????4???gp~ ???????_?H^0??{?G?????k?? +?=????????$?????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S?????Wz?????/i?Z?c???V?6=x????>?M d?0?TT?R?I$???I%)$?IJI$?R?I$???U?/>?7?[????7??????k??+?I%1c??????)$?JRI$???u.????????VS?? +??W?IMJ?OM?????f?k?k at i?B???T??????K???qq??1[[F8n?P??m? , .?@??????N?U????r????^???^WO?????dp?g?~??hn>v-Y??V??x+?%???????=:???C1???D?N??k/+?N??>??n,???#ug?+?I.??????S???o??+?F~9?? ????6?????cm???6?B:It???s0~??_???? ??E?z?`U?@p-p?t ?'I%40zG??Y~X?????h??[????q??}?v?W`??+U$?x+??Z??? +??f?????_l???^L?z?`?=??Iu?t??wN??4l??I??`????:wO????^?????*?Iw?Wo/??@??Xg?m??/??I?'?????@?W??????=K&?IU?Z=;?t??????U???mm??? +V>?cf}???EyR]???t?J?I.???P?};???u z?jC,n?)t????mg????????J??_?M^???S?????? ?X$J???J~?????@m??????_?M????J??;?]?H?? R?=#?uJ?WQ??*?kl?*?IwV?^???? d?t?(???l8?g??????,?x?{?s?X$??[I$?;?otO?~???b??g?6O? ?}Q???{21?n=WVe?k ?-t??}U??k??Y??????~?M?h?]+?I$??Gr{?$?IJTz ?E??c??G??x.????^I%9?W~??????b???]????.??k$?JRI$???I$?$?I)I$?JRI$???I$?w???}/??4??`?????/???[??U>?C?\-??[??+?I%-??:I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?~??*f???TUUk???????Um??A?w>k;??^??????????B??p~ ???????_?HU9??e????I$?{:?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>S???u?:?U????>???B ?Uo??????]?/_I[???:11?_ ?U????B??z?L???v-V +?eLk?y4HV?Qf?%?@?t #u?I$??z?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???YyY????????0?:d?%:?,o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??7??????4????U;I,o?? ?g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??/???g?,*??%;),o???g?,*??1???`s?j3??)?Ic????aW???????aW???)?Ic????aW???????aW???)?Ic????aW???????aW???)?Ic????aW?????V=F????????7??????~?????????~??????7????9?????/???cO??%S?????_U??????r_?????X????IT]??7??????5}????/???I???IT?$???????????????????????????????????????????????????????????Q?|??&??_U??????rJ??$?????????????????????????????????Q?|??%?<~?:?_??$?vRX??????XU??r_?????XU??rJvRX??????XU??r_?????XU??rJvRX??????XU??r_?????XU??rJvRX??????XU??r_?????XU??rJvRX??????X????O?<~????_??$?vRX??????XU??r_???????>g??S??????V;u +??M?????y???G???????U??????r_?????YS???IT{;I,_???[?,????%?=>????y???G???????U??????r_?????YS???IT{;I,_???[?,????%?=>????y???G???????U??????r_?????YS???IT{;I,_???[?,????%?????y???G???????U??????r_?????YS???IT{;I,z???Z??UWP??XCX?L?x-????/K??WP??G??F??? +u?p?O?Z???;clk????~???XWR;h?%?>??Vu???\^???$`?KS?????!?:m.?k?,??5?? g??h?;) W?Y??o-??4;?{?"G ?o?,??F +?m???d2??]?AK?????k??j?)&i???%:JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*?K1?8V???????SP?????I????b=?????:?+m?4??!k??????hu?+/?z?q???k?D??\?????z/???]?U???????P'?r?c!?uMz??'?y<??F]o??f?T????x?I?k?OL???o?%?Vb???|???A????w?fW???~?????hD9??E?,?^]Uu/?VW^~?QK0.??]?D???????W?w??|??'4t?i????~>0???5k?}gS#'##??K????"e????un?_R??C???g?g???CI?q?]?????b?'+??b????8@??c//?I??#???????8??????? ?nf???~??C????d?S????&?q?\???????\???? 6???eT?%???p?????wI??]Y??&I?]S??h ?D??@ KC?]??;???+?s:Vn65???X??#???? 7???W?(???p? +???????i?????~u?5?????w+????m??W?0n3ml?';R>IGX?????????,?????I%)$?IJ\?????=h?f???r?Z/?Y/??/&?K??n????(y?Jxg?&???99??)?:????T)??7?? +??_?7? +9]O?]]MoF??????????????s??K????????I??)@???!?\bl?m?N??o???????T?WT??|????$??????/?g?IS?E?C?????Y=??? ++??o?-??????*?gu6?=3_&??_???GG?????K????G?X3b?'?Sg?????:?q?pU>?????/?g?I/?uO???????K????G?_???????????/N??o?O?uO???????K?]S?)??????E?C?????U???????????/N??o?O?uO???????K?]S?)??????E?C?????U???????????/N??o?O?uO???????K?]S?)??????E?C?????U???????????/N??o?O?uO???????K?]S?)??????E?C?????U???????????/N??o?O?uO???????K?]S?)??????E?C?????U???????????s???jw?}???>?????/?g?Id????`?0]????V?????3??!`Sc??pD??q??^?????:?q?pU??C@?????G?I/?uO???????UO????fh?-s????_?7? zu??~??}???>_????_j???O??3?$??/??'???????_?7? zu??~??}???>_????_j???O??3?$??/??g???????_?7? ?:?q?pU~?????/?g?I/?uO???????K????G?W????o?????:?q?pU>?????/?g?I/?uO???????K????G?W????o?????:?q?pU>?????/?g?I/?uO???????K???3?G?W????o?????:?q?pU>?????/?g?I/?uO???????K???3?G?W????o????????????? +?????S?????*]E?k)?5????????S?????a??e????@L??X???j???#?F??????Q???],c?>\?A???%??uO???????QO??????:$???Y??P??Eu??7??????o?*?z?I???????I???n??????I????????X??|w?)??_?7? zu??~??}???>_????_j???O??3?$??/??'???????????????fu?V\5??c?]S?)?????N?:?SX+?Co3??$????G,e,3_Q?Y0?FH?0w??_?+?7???u??~???m????????o1??$???????s??I?~???# ??Z???y??H? +??]d>??;????>??s??2(???????g?Ig}???NO?????r??c${G?>?????'???I!????r????t???????????????8{??N??}????|.I??z-??A?5;#O? ????5??t???6??Hr???D??2???5???x?d??N??o???????T?WT??|????$??????/?g?IR?E?C?????Z??? +?N??o???????T?WT??|????$??????/?g?I/?_???O??^??:?+???o>dlg???->??g)?m}#(?3??$?????NO?????y.j8??)?w7??$A??????W?o??7?_?7? +??j?c???? l??)????>_???????9?)?z??????>??.????[??/K??????|???ld??W?2?u???S?W?V???\<6????????f|\WL???????????????/N??o?O?uO???????K?]S?)?????o?_??????????????????^????*?j???O??3?$?????S?????%?????????????????????^????*?j???O??3?$?????S?????%?????????????????????^????*?j???O??3?$?????S?????%????????????????Lg??p[8???j???#?X?x?r??c:FHi?vO?R????],c?>\?A???%s??9,8?R&5cc73????#v??_?7? ????????|/????S?}???*?C??MA??|?A?v????y????????????2D??mt???=???,??3?v{G>haY????????<6???^?m???#&dN???????#?,??B2??Y?s\??2g???e?~?~??.?~?????wX??oG??I?ig}???NO???+??q???H\??.??????????6?+?w???x?????????go?IV???Y???????q`? ??C?y1h??? mh?????W??K?n?e??????z???????%?????%?-?????*?????K?n?e?????????r~?W?K????h? mh?????W???_?w?/?U??G?$????J??\???9?<P<????Y??????$????_??????????????%?~|?7?-?????*?????K?n?e??????z^?O?*?Ir_??????h?M?????????n?t?????H??? +???+ G?????????x +S ?!???^?*?q?x ???????_????????7~???]???M?????????????<P<????Y??????$????_??????I/g'????/??s????????_??????I/?????*?????K????_?.K??SZ???@?K???%??V?_^??c'#??*k?6??I>?????^2?H??^?9?f?#,R???_)?[???"A?\3?R??Q??????;.?GP?2???n?zu????Yskc??xh???????+????76???]????W?????sg???_i???=??W?r~?Qs_`??+kI??F?f???????????v?????f??cM?zom??;?9Hb?????Xc?sCD??????a?S???#/????7??/???????0?"?[????????]???+??\????kwI!??5^??lk#?????w4?J????????k?????`1?0?G?!??V????lx[?? +?$?AJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>}?2z/V?=W????fEt?ls???v}F?l???[K?ukX9'lB???0?I??&?B]?c??????e???:????N?? ?Q???:?C??G??b??.??Q?G??_W?$?~?{????mi_????????Rz?x???u\ ?*4~i?7}???^????:????}??Lq??i??;?zH +?Dx?N??q????f7?V??z?\?????I??c??v]?????+?????n????E?K?????????M?u???c?WP??????S?Lo???7?9???eC?~??[??8u???~???q??C? ?????????? M%O????????m?G???~???q??C? ?????c3?g?Ej$??y???????sJ?O??{??)~????q??C? ??K????????W{~.g????????? ~???q??C? ??K????????W{9?????\f??? ??:?y?s>??V????DG;????????:t??8??A??o?L?.#t??V?????????? +?'??????????Bp?\v????DN?y???????3???%?+????g????IS??3???c??????u????????+?????=_-?? g?Etn?'?????f??????9?g?L?'_L???????5???}E?????&Ao?j???????3?g?E??Hw?V?/????j??p????Y??F\???E????E???|?{x%???????????l???????????~??6?????sK??)J?8???w????9?@w?r???Cg??g???z?_Q-??g?????v|???g}????????? ??M?3????g3?g?Ef??????g^????Z?tY??;??V?????#????qX????s?-??????N??e5??r? ? g???R????~??t?-???s?Mg?????]? ??O????????_?_????}????O???[?}7???~??8????.??????Q*?$? ?;!?S)?:????????6OY?????U:????[????|C?? ???c??pH???c????rM,??E?$??VvC??X?GS?/?????[????;,?????C??????cH?~???'?N8???_)??G;?:????D??? Leu??z?????+' ??K4?r???~?>y?HUm????r|??X??q?????Nu?G%?????!??[S^??? ?zn???hx?W????????9?C82J; +?????{1??c?????e/?Y???"?V?W??:u''?f??s??B?H??Z????[???????Nxs?9???,_??????|p???*????Vt???,????????d?gS??5?\?????j?h????.??9o|3???0?I?q??>a?~ 83??}0?Y?l=C????????2[????_?uX?F???????t?i??~?????????????$?d?{?c<??m?O?-2???????l??????2?????'9??K?=?.cY?=;???l&F????c?g???(?=S%?=?? f?.???d?????nh??\?Hk?jb???y??????|?|\?-??!?q??h \?W??? c??$1?W???w??r?~K*???9?n?????_???????????n?O??a???xD ?{???B???????/?????s0^??k???o??r???????3#?Z?[2??o#?(_?)??z'??H??WM?eT?S??}?????????x?>??N?????t|* ??\??. +k?? <-_??Z:?U?S?uj(????o????78?T?H???Dd?cO? {?????????]????????@"=?'H?????????y?????~????-??5???R?Z{]????]???????Ll????}??K?=???[k|?????:Ip???kmo??????'I.?b?m??r[[?>??%???U????Kk|??$?c?}??;?>??3?G???\1?>?YG?Q3??|`%?S???pDI.?)????3???+????I$?G`????}??u????Ip??S?KL???? +[[?>??%??Kmo??????'I.?b?m??r[[?>??%???U????Kk|??$?c?}?????}?mo????? {?V????6?~????K?=???F(?????T???}??K?=?????%???N?\1?>?[??rcUn?4??Ip??S?Kuk>????RI.? +bX? ?? +"?Ze??"Ip??Lv7?}?lo????K?=???c???>???O,i?4? +?(??E-2???'SK?????@*i%?;#?>??&???%?$?c?)??dV?|CB????:Ip??R?[?>?E2ki>$D???`?"?????>???:Ip??R?[?>????}??K?=???bX? ?? +?g??D??B"Ip??LM-2???'???r?Ip??R3E$?????O?S???pSI.?)???mm?????RY?_?????r:?CihO???j\1??5TL?4?0z??H???s?ju??zA??K????a??????M?}?t???z?y?;?ys?????.K?v ??????EL??K???~??????o?????????o??????vW??T?c?ML'??8?? V???O??????T????????T?????s????????? ?l" Aac??????eG???????eG??p??V{???5??d%?Q??<6????}Q??Y) ????]???[i$??:?????W?>??jt?v????5]'?/?Q??t?e??~=?;e?= ?Gy?}b??o??t~?????????Xi?r???U~??????W???F?=? +n?(??????4?T????yK?o??l???f??X0?????t?#?h$????ut???4?T????yK?o??l????K????~???#???w???????H?=??L m$?????^??O?H???7???|????P?? ??[q??me??_??sY??FeF?5???????x??)$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??_?????5M???]?s?*?gM?'???z.GB???? k???M6[?88?????T????.?g??f~??E?G??m!X????M???k?~???}??h??:?#???'X?4hz?????g??,l,??n3?P??? ??f#????22~??h8?????%??%?S~???????}V?$??s?~?+V???????oL?:???D? ?????>????????LJ????[?Sm???I?????/????2^0,??x??? od????z??V?]oMp?????Q?????;??W5???.??? m-????????zm-???? +??@??????->??3z????gQ??.??1??}???K?? S?\ft?~&6????????E?ng???X???u?????? wG???U????????????H[?v??o????~?7A?a????w??;'???????:??.???7?????S^K????9????1??H?? ??_??>???F???????t???X:o?`??vF??UC??~?7??m?}>???????@?+?$l"????M???4j?J???xJ??;?}V???????k??{?{?L-?+?>???o?\3?g????h??\?E?????m???W??,??????]??'???~?????vGm?I???7??)ej???S??>?ec;?c?kuf??xp?????~??k?????K????????{??.6?????R?????/?u?????? ??k[?*?@?n??e????????{??2O?? +??z???z?g?Z?!???6????j?>??sFV??/?]?d'^???Q???t??D?????'???f=?T????i0?A?P??/}_?????-?>V'?Ft??U?}?oG{?????\??in??.???? +?Oc +?+xH?`?@???e??????$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???? + +endstream +endobj +31 0 obj +<>stream +H????n?8????????????$T +I4?63???N/)8)j,?I?W??}?}?=v>JH:[?:wF?_???????t/?E??Z???4????????IO??????C??????O7??c?%?Ep?]??E??u??????==J?{??wa6uM???=?R8?o?k-?K??:?-?h??`?0l?8??????a?b?>?|??????v?d???L??????Ms?ZuV???3y?gZ???"???????Y????]?^?eZ?)????>_?=]???T??RVu?L;q?0??D???-?V?j??m??"w???d?j[?2??mM;???r?~????????????O0??|??x9?c`?As?yv???6?6??!?v??s b!? ?g??`?~? +b??m?? n?0"????sl?Fdd3?R??????F?;????O?uT?>0?q|^???I:}D5?????x7?)?-??e?V???#,yT??M?????+???Z8!?m?%???t? >??X????s?Du??5c?{)?x???????&??> +>> +endobj +33 0 obj +<>stream +H??W????}????T0??W?y0k??]$??V?l?6B;.????N?j ???N?N?.iyR????????1??iX?S??OAl?d?????Z?B;-UjtI????&?i??i +7%-????j?60??2;?U?F?0?{???(SU?m'3? E????O}?????W?g??!??B?XS?,??2??E?Wd???d?j1?{?A???.?x??????????%m ??y<*?]??v?Z:??,mu???)t??????n?? d????l???%???O??U?A?P???n????mP???$???/???????S?m)??d?&??@?r?r???p??,??b??3?i;? +=W??y?????%??>??jQ??x?????&{??AzA_;????????*???if?a???Z??a?????~E?Q"????&k??d?6?????U???rw#~yn?[Zc???T???3??32??\??Y?g| +??? ???tr??T??????)????3?R??????o?}??'?=,@????+?J +#Z??J?Db"??????l1tL=?v?s(%?L??}????{g???s?Wz????p??|y?,?.?f$???t5F?"?Q????H??????Tnk?M?b???3s"?? ?,  ? U ???Nm]???Fo#?{?VS?:??t?O???f??,??f?`?L? +?l?!????J???jbMC???M?f????? +]j??s??4??)A?D3???t?J??5x*??P +?/??f???;????}??y3?) +p??<??viQx?-? 03????yK?!f?????Uz?? +tN?9?????????F???R?9????t?L???t?I9? ?=?a????b?? m/=??"m?&r???g?'d?t +??h??????p?A`#~??!k?*'?????z?(???????W?n???n`'???0???i2j"?@?^??2???b???`.B?p?8?%g_?$??)0Bb?ctjy??=?ld ON"??%? +?K[>,??BeI??????ND?4???vKjg?I?j???D?3??S??e??/?h???H??PY +??8??Z?? +!eS?k.??L?~????X?(?4V$?????Z??o6?/T\RwR?6V?QLo}????Wm??4 +???? u?tT?\???;????.??Sl?b??????`?a????s?m?4?????CqA +??A??|8?vS?i??QT?????g???? +???D'+)z?^ Gs??Z??????'?PBL?????tTS& R??>v&??c???v?C~?????T??p??? ??me????p???????A??7??T?t?C?? ?????#??:???v?yk>7t????u@??>ZLG?EE&I?????!?????????e%F???eY%??N??SE +iIMNk???PuQA??`???????n??S?Z???a????[?>????:????G??o????k??j|u??O?=??tR,]V???y% + +endstream +endobj +34 0 obj +<< +/Type/Page +/Resources 35 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 36 0 R +/Parent 100 0 R +/Thumb 91 0 R +>> +endobj +35 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +36 0 obj +<>stream +H??W?n??}???G*?P?+?@?q???:??!??j?5?]r8??????SE?E? ??f_??N?:?????O~?V?7a????*l??"?r???gV??????6?*K????5??U?9?????Z???l??????cR??kk?4$/???JMR5???&???? +??4O?O>-???]?d?K>????/7???t?.B?z??M????_n?4dY?Z????j?c3M'????N??????*O?-h?d??u]y??:????*i?e?J?????R???0[v?A7?eE?t?GK????????=?r?\??S??????C?%?????k?7? +x????/@???m??O1mb"?k?????KgJ(B0 &??z??|?????????&A?l~????Q]??F?????/l|????H}???'??5]??1????Q +?????????$???H>??l~uo?)?_???P?58?zG?I???U?+.r#??x???p??3?U??r???G?bDe^??E??Vw???v?? +?)?%?L1kGS??,`?K~???K?XH\X`??E???E)?g?J?????d,W?~??jC?v?~Q??[?m?a?\$PuL??Y2?I??NR????K K????????f??N?,?'?rs?Vp`??)?K??? ????4N??????S?+??@?\Q??????V &'F~f??>b?M?X?;?"??!c??!??j???@T?Sz?????pH-?*???zR?????J???[;?b??rV?\??Wd?z ????P??+:?d?_???Sh/??.?]?b?6 +?-???/q3kO??????????!vi8?H?^eZ~?j.??Hv)9????????Bd97H?5I??0=?8M+&F?? +V + +??,?x`!b??N????.???XW{nj?FR?????mXX?R??????Pu%?C?t?Du?z|?W?_#?q??5?a???E???"f?d?S??9??g??SX?A`??W?z????&M$Jb|lt?? ??A;pJ)l^s%??h;??3?xv??Y?x??8?D???\???q??????:??^?????Gc???{H??OM5p??C??s9s.{??_?#ve????5??? p1q:??? D???c??7? +l?a ???.tH?(g??E??\??;I??`??????`xe$?*?kH6L[???r?fb?JU???R?Xr???U?+,???h=?V,{?{?x?2D,?k1?e?mI3??a?XO??6%] +??C?*??9????T????- k????F??|???????(Yh'6du????????;&*?oz??a + a?D?s??Az[U0?p??>/e?Y??i?yZf??B7??u@????,?$f +???}5T?2???=Yub???E??)??+i??ii!????(?z??j R-??6 +?L '?S?#a\ +??Qc?Lq??T??????7???>?/????????L~0?&?????YV??iK???=~?}? u?HI?? ????D?N}??v?w9??!Bl????g? ,?: +}?!mr??m?FQu9e. +E??[?????7??f????/u ???%??fHH?0???U-;O?F?i?t???O?0???(?b???8?9??T??????!u_ ??????D ???srH?????l??|????#???|?C??2 e??%N??(?^?? ?]w????x ?h???A????`6?{?Y??|8??C:@?????SH0???2????+????z?????,? a??hC??Jds?;?MPO??v?Qox??? x??C???0@??E???b???z????/ +^?x???p3F?@????e??%?????M.|?? ?_??}Y??ev?R?,?4?????Ih=??X +SH?'??@1???I????u??X,\?P`??D??1?a?tJBBF[3?x(??l?Z???H?D?? +h? ???$Y#?"?,d?.?_?????????|??????h?J??.PJ????5(E???V???J????%?v?>?????]?}#j?>P\????%P\??bo`?!??7?f?O?v??<3t??L?d??`9?V???T???????????????r??$'? ~???(?B????{c?? w*??????/????L???8? +?!d?KQ|?g????}??Z???Qb?R?DP? +?[? =? ?S?$?Jo?U1Ok]h? UR??a??]O????J???S?0??i? +d??h??$?????? vV?a????5~??$??m??b?F????v???*sw???"??>0u?D^oj]^??Z?0? +%?yK\(_f^a??????C??????NO???3??^?W<_(N{??#?f???????N??u?dE? +X???????^???E??`??CcL +j +'>/7???O?T??k?o????yr????yM???Q????S?.5?]?L?????.$aZ???:a1??x?{D??? Q???V/]?P?"????"??L^??O?x??x????E?2?#?9(??sP8??????g +??;kPa???P!??-?}??P%QH:???l?2ri??!zb +?p??6ec??NC\??z?????2o?? +w?? +?4?Kn>N?? ????$??@??????N%Lp?:??;?????+??e?????0& ?/?U?nG?i??-??Vcq^Lw?0;?#?????t>?e@"LB???D??q??P ???/rF??R?8_?K#A?x?fy?tf l?;?f??~?S_??UJc)2??}?y?y?!??'?????0?#??H????{J3'???~???4*??8-T??2??K???????????X???xi*??]????x?N??yAc??fQ4x?e?W???s[,m6'??E7M?k?{?|??? +g?????w???2={??kOm?Z??~??| As??o(????&?> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 40 0 R +/Parent 101 0 R +/Thumb 92 0 R +>> +endobj +38 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;???X"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IMn???:n3???f5 +???????s???Ehu??=+??gSc???kj??6??X\???k????7???^1?Ih?c@?BJt2??????=????v ?r?XHn?? v?????????t?z???d:?}&=?9?????z)o??h?5?:?????g?B??*?.E??X.>}?ZH?M?g??>?IOx???????????????????+???_?l??l?????Jl$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????????X????1??S*?P???c???p?z???E??w??? )?5?R???m?????o???????k?B?????_?&9?x???S??[?'???v???_???I??????&???bg????????>??FN???m?l?n??5&L3?Fb??lgl^g???????????L?????>?gR?we;??Yu???{[?? ?^{?5???X?????Tk?o?k~????n???K???????????G?s???????[?|s ?^~???_??O?V??s?/? p???&x???$?w???????????????O???????5?w????s??w?:???vd????2??v?#?(U?{???+?l?vY? ??c?c?_w???i???RS??w??$?????????/???R?X?????ewX[-????????Y???c?_??N%??c?v??}7????+??????????S?/????wM?9?g??Z???M???g???????????ffE???#?eU???u?C???;????????1zn+?~(q?y&l?f???S??[?'???v?????~?????@??43???e?X???>??????g7#??????????hke??6K? Y]z?W??Q7u?#????]OEv +?>?d???!%:?????????????k_?\????j??1E?????]ak???z???'???,??/ +????????_=w???,[pN5w???5?2?????h?w????k~????n???U????????e????e?V??`{??G?????}S??u\^????:k?????,?N??v?C=?f}l?_\ngJ????Y?]?? &??5l??IO[??o????????i?[?'???v??????`?k??=A??t? -????Z?[C???.??g]?z^6m?????Y?d?1?d???W??-?c?[?U?8????`-p???V??????,??m9R??]^C???R? +???R??????!??Uv??? ae&?!?o?9 +4??r??[????:U?$g[mn???7?r? )?:g?o?i??}?6?e???U}??0}????????N.s+????F??`s??7??S?P?[???????Y??????????/?6?????5?????/O??$9?tk???????Q?].?OP?q?????xw???=?_??Y???i?????]??&????[???\?l??????2?:???U?8?v???f?????C?_???????hspv??w [???5 )????????UM??y?jx??????????PE?A???? ??Q?X??M??>??????\?.?D??????;?}]???:FN?}?Hc??O??%"????>??e??wJ??,?-???{??????@\??????????;,&???G????3???/?L???W?E?7.??%???>? ???????\?\?#??9?d\?[??%???h??htI$???]??_I?{:n#^?{K\)?CA?W?Z?'??V????????l??-w?C?'????OM??????)?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ\??/??c?N???Au ???????3??$??A?????C?????.iQ?H?O??s????????? ?? +????? ?????%? +0?$???y??;)y????(??2h??)??N??????????z??WSe? ??\??%D???????????:?R??E??w]F???}=??4:%ec}h???U?a?s?+?? +x???5??;??5?3???K2????ml=@????"?????&?[/???).? +???? )?.?????uJ32?}?C/?.v#K?U???15W?V????2s:neV~?7cc??%???ZI??W????=>??`Y?Ss-??.?7]C9<$???v%x?Z?OQ?]7?Sg?e?-y??,????????v6F7?FU?S??d\vX??Av? ?I%<T??w???sh?????[, qiy@: ?$~??u_???????vF?v??z??&J?+???*?:???4n???????K';?7*??7?WH????xkg??? ?oO??{???xG ???*????:???18pU ??\?????9?9?????!?7?????go"H?{?I)?????]5??Wz?,hi?e?*??l?????????????cEF?-6?w????,???m? ??\??? +I'?e??????m??o3?$??1???_????r?,[e ??rC??6 +???D9????7?n????/ +????(????m???4????S?^???zgRwO??,V@????i?????W??@??x?V1k?ns???kl$????5?????o?mt??mp???s??4 $?%l?|???cn??5???BJxO?}1??o????N=?~??Y????;w?" +????K?oY?????'??\????c?Z??k?O???*?w[??:????F-?n????[1 8???5]?b?G??g??N??k?^??ON?wln"@???~???}I??n??R????;?f??9??n??+????? ?????q???B?Z?8??Qk?*??t??)~k$;?i?m?Y3?Jx>????@m??WJ????s??*???L{?H???s?t>???????N?oM?????L??.?? +??????E?Y??X?????? +??1?x?Un?????f}?????};?????!?}??S???ceS???????n?em???K+??F????@??/ 3???^??[O? +`;?^??e?t?????K?ve9[Z?[?sC???G?W?[>???H?????$?7?_???_????\????`?????U?0?fE.??,?????wv???R?I$???I%)$?IJI$?R?I$???_?6??????Z?'??V????????l??-w?C?'????OM??????)?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ\??/??c?N???Au ???????3??$??B????m?n51??h?T??v-??7Y[???\?&5?/k?????D?????????/9????[^Z5??:?0????G??????i}X?>7?[??Z? (9s???_???%???7g??D??t???? ?:??.??F?]V.i7???\?????i??q?^??u\???]?>???86?L??????9h:????g???N? ???[W??q-??Y?u?s????X>??S?????fh95??^+I?????T?3?+?u?}V????Hxh??#^??|W????s??fu 72??????[Sn?V????????????{?4_?????H??mL?}kZ??8~ +W=???7?}q?}g?b????}&?ZN???????=??Z}????1?V?:.FV]o?`?KI????~??????FE???_?t|?t?s??C???????]is7?F???$???????3+?}`????^3????%??vi?????~?}{???u??\?o??????v?o4> +?V??/?????;?0p?N?5?k?N?\D???????W???????????7?????l??s????C???^W????Uk?????????g???:??}A????X3o???????[c?^????nPB????????y??Yp??Ue???l`???Jr???????T?] ?ay"??cF?t? =?U.?=j??m7?cW?i???s??? ??w?H???k}Q????^~?e_?eX?i????>~???r}/???>???????n?k???]??o????`??yIOQ??????u,.??E??????`?YN??{^???????]W?_ct:j??4??????Pl?\v???.?????V??W???=-???5?'sMO????92???}b??W? +.??}C"???Y?qwv?t?????3??b_?+?V?u ?c?UmN??}b???w?"???[zZ???????N???q?u{@???D???>?u????t3WA??f[l???v?s??F?V??????[?? +????????X?Vk?s8?SC3?_????7???q??????2?n5????]v??U??\??I??W?8???0????xc=?|5??l??K??a?V/??z&M?E????iu/????5??B??????:#z?B~oI?1?R?72?w??????BJ}??W??F??u????f?Y\?6??un%??v+???'??G????t?b?^???Z?I???[???.gQ?????O +X????????h9 j?}c?yY_?#???????C?}???4??G?-?S?}b??????????lgY7????5?;?{??V????__?:???76??{??l?v?]~?e???o?U?????3+?H??{gcG???????? ;???nu?W???*e??h???cI??n?C?JM?6?]?l??x?????????[Xy?\?M?~%=?u^?gV?-???]cp???77?????>??N???z?T???75?7?~O??{?+?k\$????}r???NnFVwH???1=???k???go?e%:?W????c???V??I??it?^?{O#WD?? ? ????}?t|??? +9V?1?k?l???1????[???????#?V6??Fu???F????? ??????'????8w?^?.?%??Ykc?????9Wq~??????????c?%?~???????V??}O??G??_ +???????a??????t>fB?????I%)%G???????OR?f5C??W??~ ???k????t????????,????IOp??z??????r>?.~\???o??|>???????I$???I%8Zz?F??8y??c?dcZi???k?#????O?D???????>??????r?r?)???k}+lc\??\???i???????????>=%=BI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)K???O??_???[???W??22k??u ne???/???IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????IO/?=3??????????_????????m3?J.?$???????????m3?J%?=3???????????l?????7??*`?y'????cH???R??L??v??????(?[?2????????o?z{+.?????]s??=-????g?p?L?k???????7??#???\O}??*1?R>????~???-? O????????????r3??_?? +????4??>???cZ??[??q?Wn?JV??I$??u??Wm?#??J?}??+m???]!?????^??4~??X0?k_?s ?]8??????_?s?G?U}`??=???/?#??k???m%??#????9?';?7???:?nX???V???H??H??))??_O?Z????=?\g5???8>??/??????Lj?1i??},v6??;XD??T?7???(u?/)?-d d9??????JRI$???I$??Z????????X????=7????????#g??k???????"zo?l???IOP?I$?$?I)I$? JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI,???7?tL??w??cF??D??$xA=????$1? ?"/?GM1!??` +I+???'^??????z.?V???*????sM???N?G?u^??}????s2{R?o???[]??`??E8u +??????w%ZR fF?.???Z????r?8??Y%?????<??hckZ 4y)$?????I%)$?IO=??>?79?O?f??k???A?l?N??k?X??^>?S??z??,? ?i?V??Dzn???v]R?U?2?ef?2?+i?\CO?????'????z!?Y?S#???ci?????~??????>????2????5?T???2??w\Z?GV?q???^??K??i??]{???u??O-????.?g??????sn???1?82?=?o??????>K??NU??+.?dQU???`q??%6?IE?k???Z q?%<_P??+*?|,????nFM i???i?q=?S?:?Y??u?g??p?x ?k?b;?"??C?=}v???'??l???k??p???7{{A]?????W?6??\Kq?a?u?`e?M??hlj????????Z???,O?i?????[??????????t????????-k,Ic?G?Z?'??V?????? $?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???b@t`u???Uw??]g?5?Y??p???)?"?i? ????6.U?5??m@??Z?:9? ????L????Kso??f5???k??~??yg@???W??.???q???[k???jv?r>????W??Yn???}??,k[???;/? ^o.$?H]?Z ?45?5???o?]c?u+2?P?]???? +c??K't??1???R????????5??V??????QRIO?t??????t<^?:?5v=??M:my???:??????????????????*X?4?? +{.?$??=[?w?Z?Ve???V>?{\? +? ?8????"zo?l???[}k?F?????9b?O?D?????????$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$????z?m?mU??=???H??H???\??&??V{??*n?w???c??d????/??F?fX!?S?~?k??T???fg=m????? ]?P???-????g?|zJz??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???? :?)?.?f?????F?8?????c????+?7?t??c??????s?Z??1>???p????*d???????g)?$ +%??>????d???b????I%q?RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRJ?Q??=6?ve????????y+?vW????????M?{F?w???}n???vv+E?????[?xa?.-?Mez????X???-"??l{??8????W?%?a??L?? ?v????%=?????????/U??m?n???c?????VX??!w???g???qM??z???????]???~r?????I%)$?INo_????f?m??c?????4?c?????-????g?|z7?????bdg? avV.5??79?v??5?r??-????g?|zJz??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???hsKO~i?IO7?0?/???x????#??O?>?Sc?cvQ??3??RL??b ??;??????Q???$?I?u$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI,????????????Y?O??u HD\???d?! q3??W???_c??\?y?????We^p>??r? ?^G???u????????8]??p???????????txX8?4?1*m5?a???=?w9????>]?\?E?Z?????y%u??1????I9?I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)??1?????7&??^?il??yGE????3t ?:3?=?2??2Y?L?n? ??az?R????? +????0Y-#t?/?????b???u??r?i{???W??q?Zd??J{?l?r???\??e?'??0??????????tn]??~???Q??,}\?8N`????nv??cU?$?$?I)I$?Jiu???? ]?P???-????g?|z??_?6??????Z?'??V?????? $?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?b@?rRR????4;#.?Um?{?;???~?3??F???:D??7?;?!?}W???g}a??W[????c?~*#??1?{????#?Dd?e?D?!?V~Q??QY????;???a???4$&8?-^??o???~S??E??????V??[CX? +h +H??R~O?0?2?= +?f??\???????Z?:?F???j????q?F??4??????????z??[?????ME? =Bgp?? q???}+ds????????J?^?v/D? qc????x??;i??S??????>???+.??j?s?f?0?e?&??+??}S??????c];$p`???????\?????WY??_?? ??u??c2??cI]?????Y?s????[?q?????N?n??6 ???k?F?????9b?O?D???????z?f?>pm??q?????????"zo?l???IOP?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I!dd?????,mU?R? ???T?6???E? +,??@???2y#???>[&["???'?#?]????I?????? +?????+b?`??we????L?[??????-??_?j?q??v???`???+m7?S??1???K7??????O??r?5??k???!??L?w0?????+?s?k)??????????G?x?J????] ?u.??-???q??9??o-??9???$????????p?g???????????9??M?ytw???p???7???s?FG[??Y????????k?8?x?]?JR???3p2p?? ??Qp?????? $???7]???;?W?z%?B?^?t??C?7?/???G?}A?????{&????????}M?????a?c? ?I%<7S??Sq?n^EX?SM?a6?a?ip????-????g?|z??_?6??????Z?'??V?????? $?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$??N???U^?]?? ?V5{?? H?????#?H????????l[F& vs?6???(?????}a??b?zgK${???o???I?];???????????Q?N'???`m?8y}s?w'????? ??}\?V???b?p??? +o??????J(???C]l?4@$?c?v?????g?rf?"#??:B>AI$?{ +?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???????/????????VY??6????????<;?[?W?????????7\?8??o??az?[???????4W}X?Ya???.?H1????????N?_N??? ???p??i?Ye?s?=?S?_Q???Q?o?G???9Fl&=?5??????-3??NgW??z4eb:?_?U,??#y??M?8;???IJI$?R?I$???_?6??????Z?'??V????????l??-w?C?'????OM??????)?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJC??q?u???V??????V??????c???Mz?O?8O??Q?:?Y??Xm,????G??r?? ??[x?J???^?3?????n???e??v????4~[?5? ???????O??u+~s???5`>M--???S~? "?1Y?????G?T???|?}? ?$??/?@??????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S ?e??????8y8A\ ??~`??S???&KrzM?f? +}F??:w O???N?????~????N???? ??7?e?????? ???z#????.wH?=;??1??H???^??o??I%$b"( + +\?'?Fs?????$?Eb?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S?_\r?zW????4????q?Khc??z????nWO?????k<?!??M?{??\????K2????we?[V?sA-kAG 7?a????????????????? +?????.?)??.??????????wO?4??Us u?????????????z?\??????~?k>?u?s?m?v?z??R?I$???I%4??????????r??????????>=m????? ]?P???-????g?|zJz??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?IW???????kj?w'S???)??c"#dN?j[ #?}e??(zd??GF??e????Yvu^??????0?`??f??W???z?????P +?N?yj??O???S????????????O?`???/????gI?_X.?O8x@?xL??????txX8??1*mU???|I??$? b:?#???9???@????4??'??$?O`RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$????nWD???[?C#?u?j?U}5???-sL?+??c?? ?g????g??C????v?&t??:??H???O??]o???????!????_??????;?}V.?W???l?Cz{??X|????cP????T??u??voR???;&??s?v?????w]???????}s???!???=?[??I????????R?IE?k^???\?`9$??9??];?y?3??m?$?S??????+??E?????4?B???g??qoP??W?{????>??????g??5??#???$:G???$??Z????????X????=7????????#g??k??? ????"zo?l???IOP?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I? +?jIY?_?N?,?a??"YC5y????}{?+????7??C~?????G,??)v???????d?????????M???????z5G?1?%??????~E ???e\3~?\r??????? k?t??O??P???;?8?)?Um???C??Q????\?q?V':K,?????G?1??1? +cD5?@x)$?????I%)$?IJI$?S????H??.$3cw}??????A???????????????T?s?CT)??>?????||R??? + ?]???;??r]U?s |8GY?U??=??C?T???@?bOP ??r at m ?"?JI$????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????23j????????[q?}??\K?Umt?????c?ua??????E8??d>?o??^?????l}b??????0?X??Y?^)???k??B???????1??Ew}???K3r1??5? +??n?3=?S?????W???,|??3??zwcV??\???/ +'????T?WJ??'?}2?c???g$???O?]IJT??M?????o???V???Z?B??J|????????O;??o"?J???"???%???+????2*???VFe???C??k?k???{m?.?:Jx??.+???W????????|??i0???-????g?|z??_?6??????Z?'??V?????? $?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?????? +?;1????P?;?3?M??r4??L???#??rz:??=%????{.???:+??}C?????_h`l??B????????+?]O????d??????SK??(Jf?c@????????.@?????Y.9?? ???????J?I% a???,??e?I???I$????I$?$?I)I$?JRI$??????z??fI%???D?E??1????n?$?qBF?A,???cD!?p?? PA??F-x??????d????I?P??)"l?d??I$?HRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$????Q:? ????rX??,A$h????????;????:WU?r????s6???????I????????Y??C??oP?(?c?p???zE>??.?????7???=???M??,?l/?<}%??o?u???Q?] 3???].??n2??psd?p[???RR?I$???I%4??????????r??????????>=m????? ]?P???-????g?|zJz??I%)$?IJI$?R?I$???I%)$?IJI% m???e? cD??0I@^????:?J???`i????w??+?6gP??}]?????C????t????w?z???9?K???>@??Q?Zc?c??kpr????uc????ty???a??b?zgK'?=?^??m?????n;???5?ik?v?2#S??'F????Y?Xn?;/A\'???duN???_T???????\??x? +?l??????? I%)$?IM.??#g??k???????"zo?l???K?????L{s?????6-???????9???xK?Z?'??V?????? $?JRI$???I$?$?I)I$?JRJ?Q?????-3??O?R??u????}-????)???????L?A_4?tn???? 35???OH?;??u??=5?????q???????X?r????_???=z?F83^ +z???P????O???3??oi{?In? i?^?;'??????????c?sKsz?]?e????s???7?????????RHx????k???????q +$?(?%?I$?SW?U?t??w??R???I??%?k?>??g????x=[?Z????n??xq???x?t]O;5??_?a?"??????VN??,?<-????????.??????QA>?4n???H?ph???I$?$?I)????l??-w?C?'????OM??????o?????Z???,O?i?????[????S?$?I)I$?JRI$???K/?}b??%????????^??%!d?_??HCL?zM?kZ\???'@;????]??Q?????????*???s?m?U??????????r??:vO?S?P???9>nw%Gs????s?!????????f??W?i~??q0>??n?v???`?d??????.??kZ???@t???h??#?2?]????19?|??s??*???[???]?C????r???)hmx4?"ki3? ??P?|???????Y?0: ??v_???^?x?T?????]u?#?6???F[?0???T=?n_Q??8??O?;?uI%???D???2??}D??[??C? A??>z???_??`???\7??V?I?.C????F#?CV&%3?S]{???'?? h??iRI$???I$?$?I)I$?Jx???S>?u/??????)???S^???e???p?r??O\???????x????????y???em?8???s?????2????_u6WU???4???yH???2??]+????nOQ??@???'Bv?0jRS???_}?O?Y???Wg???ZYk^????$!z???.}?S????????Q??lc????h????IJI$,?]f-???Ws?sj?? +y5????Xz-??'??Ss4}o??p>`?_k???4?5?Z?? ? ????????f_???'(???;s???v +???Z_????????M~??f?2+???IOK???l??-w?C?'????OM??????o?????Z???,O?i?????[????S?$?I)I$?JR^f..?*??Sys??X?S?]4?p?]g?8?^?i?#??/????p???q???x???d??? +#??1?{???-?r?19?{0:??????,-?}_?????F01fu????~ G??X???????e? 3??f?UUKu0V?????)?Z?L???A9??q`?????/?????I$??U$?I)I$?JRI$???I$?$?I)I!?}4?????8>2?????P???R????(??? ?E??$?.???j??2?????8??Y?_?{??bbed? hk"G??0e??~?#?=??$?a???dl8} +?????Z>???0???????1??:9??r +?,??%?}????c?????5??{L??a?[??{r????????/j#|??Y???="^?V????@6?R?t?4O??G?'OJ=_Q>?????????{?????p??#??Ur?>???[~???vud???q? +?UJ???W???:??????????????hqux?Dj????*?x??5???V?}???W?~???@W??5?>l???}#.??D?hrs?~?^??n?*?\?4??B?RK??6?>??p???????9?11??8????c?>???du?[I???????5?$??F??|??j?RO???????foV???E???????W???X?n ????C`.?$????G????#???????I,???#? ???U?zv}j??!??h#? +?I?r;??2??,?'I$??$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%5???N?8? ??_?9??;I?5??S?7???}????????i?????I?????}[?V._??WDoS?}C}??W?q!??|??'??????o???S?}P?Tzk???r?^?C>???^??}?9+?\??|-??:m,{???????????.????H?? +?U?P8?ul5??????V??????????+???x?8X5???????qeLk? +??????????>=m????? ]?P???-????g?|zJz?????z?u?mu0K??.o'?Q??;??%??5???:}??&O$c?????-?5??G???B>e???o????eY ??????}???Y?'?t?O?8??4???Q????W)oU?MwT?????0?&@t?wK?<???????LYe??po?.?^Q?)?????:~?%???????*??4??????r???>?t???}????{w??k~?}[????8?>????c&#??T\????/vW;?J??v?\?????n???fmq2S????1???1?}n6?k^w?????}7/"D??F?>z-????F-???[=@. +?NU?4S2? ??/??R????zP?{.?{ ????c????U????}\?}:??r??}???X,n?[???*??>??s0l??X????]?=??7l?o???wM?????&?z?[??????????}??N??i?J}S??n??{?u^??XHpuvo??#?j?\G????|???rp?q??u?6??????l? n???I$?$?I)????l??-w?C??K?N_L?8]# d?[a??0??/?????+??_?6??????\c???g??2??R?5??0<H?? k?G?|?6?,?S??q?A#?itNfoG???/e?u7d?Yc?kh?????hQ?>? f???|6V}???4??.?$?dc?F??C?G?Q?>L?%.G??L#???Z:T??nFoT?5?Z?Z?? ??;x.c?grO?{V.e^?UM?????D??????_???S2????8?G?\?nG!?Y????K??Q???szW?r?????7s?? +? ??U??5.? +????~?Vq?q?)cV?jC IEO??p?9?D +I%????Y?!)?P???(??[ki????$D????'6?f?1??Xqy?1?EG?,aFGvN_???Q?1u?{?+???du.?N?Y[m?/$?iw?????3cds?^^BG ???>?I$??T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?,O??????????3p???????R? =?D??D'BB3??B +?Gp??????]C??~G?????k???????W?oG??)?7?H???$?}"U???2c1Vkv(c1?$??I$?3)$?IJI$?R?I$??.?/????4X?6???L?/?????f?t??3??W{??o?*k^?j????????????t??3?f6>En?????=@[??+???????zz?M=?m?????%?{m?9???%=??????????:???_h?F???1;???p???????????J????U????{?????IJI$?R?I$???_?6??????Z?'??V??????t??Yt[??:??????c??B??q?[?_???=7???????I$?R?I$???I%)y?Y#??n????????]?61Z|????,???r?????~?h???71?i??FG#?$z???s????&1?o???I$?????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?S??\qh?????>?\??1?i??,?a?A?@U:??????S?^????e-8?????7?v?x??}f??'?'QoQ?????V*??!????yd??1?~I?nd?N??S/?{?WL??????8?{i}5!????????;?S?OM??fM?W]s????i???6????$???I%)$?IM.??#g??k???????"zo?l???[}k?F?????9b?O?D?????????$?IJIs_^?s0?U6?\?,u?iugi#k?.?qu???????H????2~?u????g?g?c^@?o???????^~vO??1s?u?7!??s?v???Va%=/Z????????X????=7????????#g??k???????"zo?l???I OP?I$??????z?K??*??6???????N?x?#?i}c??6}???/YIX??Ox@?d??$?_Sz~gO???2?U???a ?'N?I(g#)?6? +vR????????m????>????? ??Q$?9?"H?tNO?}S??_???~?T???=???9+?RI,?NY  +?P??$?J%?I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$??}k??]f0????r?w?A????????????r????rB"1:?I?=?;?t?|?X?x $?A?W?IDI$??6? +?I$? +RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRv;r??1?76??Yl????'???J|?????>?dt??g?3z]??P?_d??`?wi K?V??o????[?r??????g?x?t??U??? ??f??{??c?????wt?av;???T?p??$?;???????a???K???????a???]?WUs7????70? +?????? ?????? + ??lh?V~?tjz'M? +?????,???}H????S??I$?$?I)I$?JRI$????Y??F7??X????Y?dm??N?t?????l?L??X????*?????;??;]u+?\_?/?s?_????i)?I$???I%)$?IO1???u?????:U????q?Z?^???I?????V?g??????'!?V????64?+0 ? ???w_]????W?7$???d8??H?.s?F??~??}WoRw?_?=k/????qeh?77????$?H??'L?49?A?N???I$?$?I)?????:?C???7?2??2?i#x??D?I^S??????m?????????Kn??8??%?Z???;?S???o???N!?9??A?a0_;]??>?u??=c???R?K??Hk?@?m????h?y???P???Y?G??z?~???D??5??\e???4f???W??N??>??g?j$?$?I)I$?JX??^9?1???}bx?$8?.?????F?m/??{??#??#??O?=O??FF{k???9?;G?O??1!ywY????????L???????mPm{????l:?t??6?,????u??I?u???_]?s,uQ????h?i%)$?IJI$?R??????K??????d[$??????4?cM?????? +?v?d???????????/?z?s?1z-??????s??;e??Q@IOM?/?????~?_???=?y???j??Ax-????~? ??Un?#,?0?cg?|$?))I$?JRI$???c??.????S????uX??\?D??k? ?'?W??*??o??????a}de4?Y?]?nCC?j{??k? L????_?V;???gRfoD??8????K??:????r???????7?v??} ?:.??@;a3,??#?? )I$?JRI$???O?_????X???u3{m,?2?? +??1?? ?\o????a}Wv.9##?Z?V?-v????IO;?-??t???????U?p??zp???tmu??????? ,???&???p?m\c????????qZ))I$?JRI$?????n????,\??DuS%?v???7D?^????e????????n??????&w?????INO???^/????d????Q=G|? +?n????4?z?????6??/???C??O?X??JX?v?o??>\?WIJI$?R?I$????l????:E6?j??P?#  +`-?????]????????[z??TYsZ?h!???b???y??????K?>'V?9???z????`s.hho?%????}\? ???o??B??d??? +?6????I%>??I$?$?I)I$?JRI$????t? +r.??????W%??????ZI%)$?IJI$?R?I$???N??????????U +???42?,???%???????~???=??Rw???S~;Z?^?????]????????GT????##?_NE.H5?-t??$??W?????W???1???h??Y;` +?q?G?s???#?ToL??4_??+}?;?6?09?l{???2???Tg??gf?k>?u???b?f?5????????(???dX?jf????|K?\'V????g????????????X???? }{????n?????szu??l??n????|?S?7?t????Vn=?c?m{makg??p0'?r?R~??????[u8t???m??NH?@is7}y?_??????.????S??Vv\v9???C?:w?E??(?_O????u?????i??;???vIOi???v%????h??/ ??????C??D?:?N?.YT??Ax???'??J???+??~???Z]?~1?????s?G?Y?\:{>??d}????m??Y&?????%>??g??????l?}Vo???wL???t?w????)}@?????\ ?W?e}G??G??Z?=B?f?79?!????(?;UO?}+ ?o????+vI??c??~+???Js(??????md???x?$o?+?????t??x5?etn?v&?p-yu?0?a?i????/?_?t|???m??S??P???Z??? +S?????N???L.???4?` +5??!???*?'Q??????VN???????v? ??????}m?????K???=?"???n?>?i??f}s???U??Cz]?^_K???[??W?d?g?~))?/?ZqzwF????8??u??}?y??????n?U?^??:vOQ????z?,???W??;C?1%y??o??V?????a7ng?C????i?n??AN???1????O?l[??}LvK?W?GY?????N?? JjuL$??uc?v?g??J}#???g??s??y??Z?????;??~f&5?h???h???pk5??L/ +?]W?b??7??z?????>?4?@? +??bU???y?C??o??Y gN?6?F>???Ask?Y<{??J}k7????t??;?O~;_s6???w??~??,=???v-68Z?li?????aq?+???}_?] ?Fe0 +???d??pg?q???I0bP?f+:????9??ze?_s????Yi? ??=S??u^?}6dS?E??????????p0O_?@???.???W???1?>?[q?Ak?~????_9$??????Y????????????oh?V??q??ft?u??z??9???? +r +? 1O??t+?IO?t/?q???GT?????uZ?'??7k?n??%T????c?e??g?5?nu 1?k?\74??? $???_?????u?n????3iv?_??k?????^???v1"???MN~??H??'????8^0?J~????3?}\}??232????v?H???~*Z~??}e????,???q~6M&??4_8???~????u7u|?????v??#? +?????Z?U??W?s?3?W{?Z???Q? +>?? ?mI%?F??U?7?F?#?????kn8h-t???t?i??????????O ?]?o?????6K?????D-.??O?u???U????+1 }?e???L???rI%>??????g??K?q^C?S??D?~+Y_????NK?y/1?????9????6 ?]W?$??????X?????\G>?\?V??2??????}\???>?/6;? +??K@ ???:???$???o????9Vt??????????Z?:??7O%??p?=???I???d???_g?|s??w?'~??l +??$??D???1z?^???vU???v????????io???x??_?-?nGC??-?V?#?n8???{???1?x*I)???m?????????Y???_5????????[?B??N?U???Y?????t???c?_;$????IgG???)???_?,p???5^t???~??Pr?88]B??=>?4;{%?k???)$??<,Jp????he8?mu?4B??? +R?X?????gU????????sH??w:!x?I)?'?/@??}]? ??i7?"f??4] +?U$??T??U$??T??U$??T??U$??T??U$??T??U$??T??U$??T??U$???? + +endstream +endobj +39 0 obj +<>stream +H????n?8???????????$T-i4?63???N/)8-j,?i?W??}?}?=6IJH:[?:wF?_??????? N?E??Z??wi6????o]K??~mO???}??????OW??C??48????X?:???EV???%?-???0??&C???~&???T ??kV?bD?r??u\? m?g???j?i!W#????f;?????q??????hY,x?7p9??s??u,????o??X?????6?f>a?,J^U?$?d?m???}^????4??j^B`? +?&???n_???g????u??)??L?5_???????? ?l????}?1_7??^????Y6???n?h???7??{?????,?w7?c?f}?I|????W?c;?]h4f??????? ?"h????a?A6(??1?&?(??"h???6??Q????s???a?? ?????l4fV????????9????????8? 0??????*c???i?YUGY?/G?j?&?9u???G?`r?1?F??????`???m??w8?<^???????V?{?V?N_y????&???j?F)??????????h?M+1??z?z???3xQ?AorZ?n???N?? 1I???b?(??F)Xl??X??r?z??XR?by6?J??R?P???PO*?!?X*?J?ZRm?2J??-? +??6W?'??2???.??2?P<-?<[?#???I1?????T?%U??????P` +(??c??g0n +?&?? (??]?3????$P????P??.C ?????`??K??\?36:???w>b6??3o??o/?????s?7????\ +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? +? ? 9???(~????d?????? =?{? + +endstream +endobj +40 0 obj +<>stream +H??W?n??}?W????8}? O???M? 2??2Z?-&??16_?S?M????.?f??Y?S??????????P6??"????V?LM1{?3??????????/D?|??b?*????eWN????c?K? +%e\????T??P,w?/?y??????????~l?g?>|??m????m????WZK??u???>?????Y???_?*-D???????Tm?G???O??&?bC??m??tPF??~]?R+????.??!???^????j??x???????????l?V??????u?"??*$E?%=i????n???s?O??A$#?\;/????XH'???E?J?M?ph?o?v??Q;i?vt? +?vP?o?????0x??e?f_r?v???B?!(LI ???=pe???xi???b?? ?C:??????ie?v???isP????4??p???I??4?c]u5?B?t??h??????x6?????+M???_!??t?(?O?t?*?S1?n\???sG??eS?????? ?!I?cNG?O?7c)?A??n?+?'???d????^?D????A?7B8? 9oC?K??RG?????+????@??x1/??7?{?sD???BqE?s?N? ?lC.T\? +?????#???? ??,9W???g???/????e9?????H?6??8???o??i????U:?? ????,???Bg???+w)?U??K???)?9Uh?*??fw8??FP?@}?J????Uip ?#???x?`h???@???r?p?$?X?m???X??]7?[?_?K?'?????)?? ?^??^??s?!? ?M?%?c??? D????~j+D??????:?_???g??]$~o??%AW?j??E?/8??V?:SFr??J??????Y#<[Ss*h$??Z??]?????/?Y5?w? +??vI(?<]??r&?/? +g? ?9?N??\?@????8????43??M??????R???(+?+%x?d???E??/???^mT?u?!?|-?^>?R????S}Y??~7Q??t? +????J??+?&?YZe_?z?e^Ir??2"]e +) ???????\??K?;??>_?0??T^8?OF??@}eA?????? |en???c>?X)???&???~???zS?L-'?x??=?????u???+?a?A +?b*???5? ?????R_?B??U?[? +(??Gc?I?????K??_?$'?K???ji?:-s7??;???A???Sz~n?p)0???]?J???+?D$???.}?3?4T)???kK/|???????oz?G?????? +????C\?D???X??(y???b?i??> +?+s???????xrl{?aN????T?$???(I?????=???819,?tdJ?!???i?4|0X:zo%?,] 5?\? ?S????in??? +?0?%Y7H?Lh?t?????Nbpb?? +?????J&??b??Oo??oY/.????%??Z?? +A3?0?P?P?W?,x ? {????_?Q??p,,?#T?Q?JiK? *?B?QA??=c|J???,??????!YtF$? v& ?k????????F0??C?D Iz?xH?qf<$F?8H~??P?KWBz?? ?8?I?{)???]??E??F??%???5??V??c??>l?$h?2C?'??a?Lz????q?,?d???y?Y??P?S{L??Z?#??P?Pd?d??s? '??O?X?7??}???p5?6????]?Q?c??"?????'P?o???p?j>?g???S#u{p????h?N? $w???+???V]?-.???dn??76N??}???Y?vdOk?????1X?n????n?6?? ?f?}?_8K?e3[?s??=VM??1???f?M[????RO?6?l??2?l?m?]?r?????1???$O? ???b? ?W&?dxA?n????????m??%QjT? W4?b\]?!??Lo???b????????{ ??5??f?M? ZbX?.???%e???y???H??Z@??EY$????RD3?*9"D? &???T??D)????o????T?/????9C&??P L????|?'?n??? ?;? +endstream +endobj +41 0 obj +<< +/Type/Page +/Resources <> +/Font<> +/XObject<> +/ProcSet[/PDF +/Text +/ImageC +] +/ExtGState<> +>> +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 44 0 R +/Parent 101 0 R +/Thumb 93 0 R +>> +endobj +42 0 obj +<>stream +????Adobed????    +  $$''$$53335;;;;;;;;;; + + +%% ## ((%%((22022;;;;;;;;;;????"??? +  +  3!1AQa"q?2???B#$R?b34r??C%?S???cs5???&D?TdE??t6?U?e?????u??F'???????????????Vfv????????7GWgw????????5!1AQaq"2????B#?R??3$b?r??CScs4?%???&5??D?T?dEU6te??????u??F???????????????Vfv????????'7GWgw??????? ??T?I%)$?IJI$?R?I$???I%)d?i???n????c?x??4-e?_??'+?????X>??-{;t>??? kQ?x?c??h?q??[??s?L??Z???i?w??j????]?g?W??3??>*?D:?b?o@?{h?l???N????>????[[???k??I??:?R?R?V??8??3????x???? E?k?O#p?E@??T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?Jj?79?7)?0EO ?d????'??nwQ?o????z?H$????{?U??2?? ??J?O???R)?9U???~a{?o?? ?6?W?alt?_B?I$?R??I%)$?IJI$?R?I$???I%)$?IJI%??>????@???+?;+???S???,???K?Y???@}?Y???????k ?"????????VIy?W???D???[?gu?j??mfK[???8??JzT?gM??9?4?zYCS?'??+M%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R????'U????_??S????Ika??/4?????????s?{??? $3M?P?? ?N???;?S??N??????d8z????s84v?]b?g?/?6?MTu +o?!?eu???%?K[??????'??u?2q?.??????v?O??tx?c??I ?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?!lsp???p?XZ7?(?$?6W]?,???v????}? ?)4W?4?Y?m?GI%,?p??JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)bu??~????d??????I)?????+??D c???em cCZ?@??I)I$?JRI$???I$?$?I)HWd?@??mc?F/????xv? ?????.????7??????~??q?]Ve??B?.?3?IO???}!??????H O?]????iv=?????s??Y?????S?w??Xj??|?????????f??}O???????uM;\???^1?=z?Uf??? w;L?&u ]??????K?%%>??z?'H?w??????????n?????k?s?6Z???vkB???? ?%?s?P~??s:.?Ay??@IN +}'7& +U&7????w}C?=-?+>?.?t>???v????\??!?kc?#?????j)?u???]?v???L????3?1??s?y??459?<?Fo?L??F??i??\?N???Uf???9????i????F}??Z???,x????_\k?mns?y??p,??^b?t/?:????Z???hA )?????? +??!?LV????k?yt??z?Q?> ??m$ L?l???? |9????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???z???????a?????-%??Z?v}n??=??{A?y??Jw??8????W9???? ?(U?5?M?[???????????.?R?2????m??Oi?Z9??????e7????>grJzN????u?F?sD??h??[ ?????O?l????C ?? ?:??s??.??W?????(?Y????? )???]bl{X<\@?????????;!?g??I??Ky???j???K&?;2??e?????I???wRh?S\6y?RRl|Z??W??Y{h?i??s????2?S???W?M??mUcP?c?$???2W +?K??dt?feA?%??F???o??u&??Z?5iNB??6We?????G?u???A???E?????=??????S?v4??;\??x??????#??1????????q?}Ni??6Ko`p?????_???:?????."??di??????3?]????1CFC?p?i?/Q?????0?= ?}: ???????I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???M??%.?????3?a????I?????????O????@1??1????%?????,???+p?o?~ U?x????X?4Iqp??%?????c?2????F????Ul??}?[n??Z?4?V??????????;??0u??????v?q?>y?S??X?l&? Z?Z????????y?G>?????k??I ????? +?????l/??O??`?2n???CK????;-N?^=??bu???T?????et???o3m?????%??32UXL???ls -??)??0z}u?m?c?5-q??[?s?lw???3???=?z?uZ?P?>?9))????1z?3r?^[??|VW?t_?Y}/????????????^??p??30????wk???)??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???J?W?8}#??v?1]m?N>$?? +???;m???:?!y?Z??w???E??(???????9?_?U%?; +???9?'C??$??k??Z[??x ???V}b?=73???cdRud??(?t?_?;? +?j???????HIO?$?????{5?:?Ya?,???T?N???????????????????y???6????y?????9???2?u$??u\N??s??,???u?????=; ??g??k?%???S??N?s??4?8?b?u?@??H???*c?/Qe6??]??????at??}-cH?y ?tj???k?xs`???8?l?$?????6}e7??:r +????)??HIN?7]??????t8}6~k??B????p?? ????????i?#?????3???q??gv????J?L?8?O??s5???<????/??n??yu +?????y??_?c?]?s/???k2??B +?/??Z1??????d0?????)??????k?????????~'U?t?????r,??????\?M?7?4????b????z??4II00??}gv??W?? ??`??_?Q??N?WT??9??????)?????A??6??X???\??6??kv??}O7?f???a???h???kGd?????K??c?????@?l?$?W????????:?SC?.????r?t))???}5???A??+?f++,n8??2?k???F?c??????????F?}h??2????e?u?$??w?Jy???l???? ??Wp~??????k=??N??????????? +:?ZgT??u?z????wc????????_E?!?:???5????8 +??????-???V?1?m??:^w?:?wY?y????S?????????(};?^?h??m??q?{w1??? $????????? ??? ?????????????s!y&g????KC??i?'?7V???z'?>??g?L????rq?}?X!%>?????\zO@???:o??????Q??p???o/$???a??? +????????j???&????\???}a?Y9???8?w?????6?????z?E5??e??A?n??n??)?? ??]??????k???F??????.qZ???\?g&?????u??Gr??????????v????e?6????U_X:|????Y,?? ??>??@f[??M??????????u??????q?9?I%?O??????s?Z?J;?q????C??f~WX???F?y??~I)?w???????67&???.{??I???Y?m?l?w?????u????Y?48 ++%????S?N?Xl?? ?I?P?!??x(?????Ze?> ?P]jJV^@?-????]V?dS???c???????????o???f> }\?t????4Y??= ???K????}I?????L??E?p?M[??????Y?FU[?AXY:???/??7?*q?,?s?~?yx/S?????nN%??????? $?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)??HU?????u??um$???y??\????t??S} ?i?#?]?G??????ZD?? ???t ?>?X?????=??&??JO??s0??`? X'?o:?t??}??[??E???? +?,?V?R????m=?p??>????Z???Y?zl?????5"W?t????0????UEB??O???:]V??b?P??Dj???? \?r???????75?%%\??/?x}s ??)??iuw??v??t??>??y?&?z7Mq???fM??????IO????KO-$??u?j?????]???oq?)7??A?M?L4v'?%7???????vE-.?%????????S???M?sk?{?m/?? ?????K?t??2??d???%???]ZJx<??x?7?U?????????QO?n?mF?\+wy?G*?^mf??s ??E?d????9??_? ????????IM???}'??8??xkt??<.G ;??VvS?m{NN@?$0?i?????o?m??k~m??9??????ZS????Cq?km4?F??|?Jf??41???)$?Jp~??S??S?2??k)/o???+?>?_??????P???mn????^???O??? G*???[??_Y9???QZ?\N?e}?3????\{?? )??????z??U????0???????Vu??f?K?6?W ?:;i?????ul?uK]?+:????IN +??i^??^????t??`cE ;GD?????L?y^??'???Wq\^????F?? )?^?3S???x????9? ??]8??_????p?,??????$????8hB?M??//i??7J?O?J{??s?1??o@??>?k?w?|??????W????l?p?? ?I?? A???3??p?k?>N>??^=???????]?? 7c?o???>?kK??T??X=P???-=??X?Y?Y? +?Wz??=??????t???ad5???S? +yU??;?oIOW?w??wM{1?????.:???<@^???F] ??x???????????[rz??&? ?*???5%>??n6v32?^,??-pGIJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>m?????7??? +q??~???G?????Vz???2??a??m?6????'??r1????{?U?,{O??k???/-?8??r???>??5%;?\?? zs?Gs-??^uec?9r??~?s)???/a?v8????f?t-??????Nu?????j??3?????x??8X?$}??Z??\{}?)???vgR??/2?e?$?%t_Uo???????NK?@H ???????=?a? =o?x?'??/O???NGK??c?r?k ????w?IO;???=???g6???]NE?8????0????JCu???e???*???]}R?????W??lJ???l?}c??????RS???[?vwJ??a-u??4?:???J|???5?eg??y??????m?0?????f~8/??y.kD?o:??y??????:?RO?%2?? +??????}O???l??{^? 6Q_O??????e??????4?`?#?X??G`?>?2????1?]?A?? 3Y?7?????Z?] +??w??9??@ ??? +?&ql5???/x???n???z??=?f'??=???????v]?Y?5dR??a??)????3<M?$???;y??,l6??8????$??r?????/?eo?l?y?5??o?X???)???????#2??[??_:??Q?n8??????JnW?X9?v_??????g???????????{?{^?V???:-??i????????????[??????yBJL?I$?$?????????{?-?c?5???? +? NB1dh]o?'N?????!?k?o???? ????????#5????????=W?7?z?S0??q????w????E????Z?>?#?Z?????%?1?90#???~`~X?S?Q???2???2??Rz?N)o?/y?)??2???????i?c???Vn????ws?9?7?Qdd???h +??k{??^?@"????$DhA~oi???????d???z?;@??t???,???+? !?nuok?v??9????_T:?z?E? ???=;??????7?????C?u??{???{I???\??cI0 ? ??N???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)K??????*r?kE#.?fEc?8?L/Z^m?8?=??cuz?\(??#?]?1?INWH??????[=???vx?????O>????_???k}?yB??o#???V?^?????/??5?;ww@??y?.c??C`h?k??S?~?uc??_'?c????????????Sq???ht? +?]???j???h??V@?-?O?7]?????\???,???e4?l&?@?????~??j??/?q ?&??K??c???K(?????cD"J|C????????????????????U?z??|S?CK?????!x}??6ui ??R[?????Z#/?X?\?I?N@ ?????_?=R????h5??ZYKbe??Ot????k?X?? ?^co??M?"?}-??Z`s?W0???:g?T?????Qf??????q??S?/???dQk?bk??c?&???(?muy=~?[??J?$x=????????u??$?e?y??????S?? +?V?d??Jj?b??}X? ?1??????????O?^???37???????!a???>?u6?a4z?V??1?tu?8~tp?:U=#?Q?Q?*o???????IN????W?.?????S?i8?7x????]??>??k??Z?A?????????__^??6?N?????????=?K:?[??l?? ????Q?????? 1???N???Q?VgK???c??U?xi?z????N???n?SGRc????????S?;?8r?K?????4????G ??????o???? +?!?|r?q??uZ??m???xi?_;???????'?fXI>?B??$???I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ\????? +-cwWU??| ?T:?I??t???x???=???%>5?C?u???gO?3??????|S??43?b? ",n?9???e?O??_???????[?g?;??guj???M?h?B$k?????}Y"_?wy> ?o}????a???c? ????????yv +??K? ^???U???GP???o???????????S?m9?]Q?%v5?????K?????%????fu?????fZd ????;???q??wD?_??xcM??(?&????2C???c????D?O?U??v?3?"??=?;[? +????Ik????Q??#???,?:???????n?B;?C?}R???/vF +U??K?H?O ?????????>????G????9?[>??uT[??E???+?{$??:?U??x??? +??????p?U????Z={e?es?r?i?-~?d??q:????m?c?k&,??3dw?????p?N0?????N??;??{???????S+?XN?85???7]?X?!w??????? ?%?0????Vz+>?}P?l?????;??k???~??f?_??x??mw?H???U?????Pt?0n?))??m??Y?{v]K?,o??A???????????n?[?? +??~??? ?A ??RR}???????;????95?F????w??J~?c?cc ??9?wIp????I?????????q?L?????R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IH?????M?m????[X +??V?U??}Sk?B ?\?>s(?D?`?????b??Y??C hZSFx?n>l??Nq,f?????]l??y?:?C3????x??]?O??G??W??? ????????K?i[V??ft??????Z??9???DF??????K?&??G????}O??l>??????cxo?8?kB?.??rz?Pvc??????????u^???e??fS?2?? |8]???? +???S??Y?^%??[H=???f??-? |?L??G???{?W?z?6 r2Z??,???{?C?.?$??P??JFR2??u*I$?Z??"A???]?????????U??8p?????!???????? DHQd??x?'D:_S??6/X?*k?o??~??/L^ ?{%?P?r }??| u ?>???!L??U?6????????????L??$4??!R?'?t????7c?N?R?????????\???~?Q??8???w????]:?_?7?????;??=?i^????I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?????M?|P??r" u:3Uz?O???_??????{O?X??????\ +?9???rBG??)?=????:????zn@?1?Z?5?0?1??????????????i???????????x????x,p?C?t????z?9ZU?N???1??O?X?????W?????????3k????_q??7??$??]????[???-p????>??????qp?m7_S??gS?yo?d}?#'n?F??o???J|?????r???t???%????v??y????68V????`Ao?c????????*?y???%5?(??i?^>?^??/??S????3?k??F??O?Y???\??O?.??G??M????!?????z??hJ]B?i??.cla??G???Jy|??y?&?n;l?y$?A????? o?a?.?wQ??l?????+?I%4?_F??"?C???~???7;????JR????GS????Z?T?0???l!?Sn????lii?a?S??H?9???;K?mnp????}?TWT?????_:????,?P?>?{?n??v?{??~???:=9t?^??^??x???'?c?Me?w?? +'vmc??????&u_E????E?? +??????D/????:W???\?c???'O?%9??_n=???Y[???`???????n?O\??1??m????g???????'?6?]??[????r?T???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???@?7??nc'?#??????UGT????}??g?????^??f?8~??V?$",?:??$????i??wa?S??^? +??????b?????`?o?????d????? ???>?????Z+??z?K?????}W4??;?N?=R?m??\?X?*?????????????t?L?c5???xEw??0??-!u???tN???+???eL???ww8?? ??'????7??t???c???{??.M?c\????g?W??;??z???A?me?sX?_c?k%????Y??01????K?^}Z=/????????eg??????????/???c?u??? ?q#????zP??I$?R?@?????I$?$?I)?O????0r?V?c o????]_d????8Y?A?F??N??ce???k????i?.??Z??u||?????/3Y>? )?????+??:WRoQ?f?L?w??m????i???e?;uv49??Tz?E??}.? ??x??x?.IO??.fOO?? -???qk??Gg|??Jm?????3???;m??<? +???????6??O???G??8/??]??????M??~??}????IO???I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?.{?w?v?LQ]????????-?lmU>???4????k33?u??k??g?Cy????r??D?m?x#9Jy???8???/??oZ???k1???#.?? ??^???oG??N?~K???`????????o????V ????????P?????????[??????t??+uy???p?????U?_\~?atSS?nK???n+???n???,???????!??G?Y???2?C??P?#o?Jp>?0????i?%????&?????n +?G???????V ??9??k??{???? 9??v&???I$V?W?????a???h?m{$+ $??:V??]?C? z???i???~K??C?8"B????????:?????"ua??W?W8?tjw??????[?IN?I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????SwZ??????T???4???#PRR?$??kZ\???'@R?*9s?????2???????zmmc??P??RxN??c????T???6??}?|?l?c??f?????[4??$?????c??K?sY?? ;?3???p~?7 ??M?S?q%?u?EK???d'???@???C??? ??$%??^-5{?N???f??+?F?wq??U|W??Yegs?GpQ?)?sY?N??.?;???1?;?N? \???9??????b?.???>? 2??s???d?H>!r??[?????????>????2?2o&L????~???t????A?#$lJG`wp???Z?v>\ +!??}W??A???:7Mf^#????&??t~?|?????W??Lm????-ic?Lu+c???#?6^#?????U?????X? >?^?????+)?74???o?75????}?c? w ??????W???'???ik???'??`?>?????7???.a0U?q7??Z\???L??ae??z?L?????bg?%_X???1? .< ???]????????R???]??y?B?3???+[???????????A????!??8YV?-#?????/???????9M?[??S?3???Ve,??[B?OJ'?cu~??E6YL??}?J0?A<3??|v?Y!??????????-????z?L?h?????+????S-a??4???6_?? ??C?K\b4*Au?????=h???0????????r??JHZAi? ???Q??z?E??????;?}8+?K???????????^?U?&;I?$??RLpPS??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??/?J?Z????}?? ????W_H????7t???@???Z{??u?^j?????h5????p???T~??z+???<5??R???PUd???$zokh??\?_?? ???x?????D}l????`'e`?w2?t???????.?U?}?0???V>?g??z???/?!??v?????1>???zF[?P?3?7y????????X?? ????q??L}??~vm??6\g??]??????4Y{???8h????_???????????l???O??gV?????Mu?????*??wR?/???7?[???/??c?????l0fhd??G??w?~?????_??X3?????}u??????y?R?????%???? ????u?G??.?h41?=?C?D???t???????4??C[#??~?????q?????????????/?j|????P???gR???61?]y?n??????J?&$/n???? ???????/?l??o???h?WW?~ ??A??????,???WkK^???}l??????G?[ v-??????Nes7?M?T???Z?9\?$*?Y~????i????2??????%:K???????? ?@???|???}{g????? +??#V?????? ???^?????6?c?Wx4v )?o???2???n?X????E??;??9?['"???i?!?K?g??]'???]n3:?v7M#uA?>??<?????Z[?8???))????? ?8???????WL?????~P??w???????W??????G??n?,&\@+?????T??G???O?<$??I%[??a??wd?Z)????>%6R^}????)s??X???l???0,????? L?????u ???x ???]????g1?? +M?Z??Xed???X.?I7V???G?????s?}[??P{.?i-?l????o?????-?qUU6???????ZI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$?? ????sz?]s?X?UL??w?5????}l???]yl???:Sp%??'?t??#?????[???` #Hs?WE?b????????J??v#};Z?H5?q?W???c?1?:,??Auz'????0??]??T???a?#?/9????/??f>;?N;[[y?.????k??W??????l????[????\{???-*??u??u6?h???????'?????&FB??=?w?C?~?}i??i?,???2??h |u?O+?? m?8vc?#??t??=?C??A??????9?Z8?O??y?;???\lf +??eLo +c@~?+`???#Q$?H?|??q8??:q??}'w\?K?6?[??y???s?N?q?g??????y?Os???)??!?>e??=C??P?? ????|?W?????]{\? ix?W???'?? =;???????y?e????_?XM;???Q??%??d????r??q??S?s??\^?????-? c?u???xoZ???????w????`.c??d/??^??t?o???????? ????%6?j???MN}g??+?>?}bf?.1?x?0x??HDYY?$q??F?[?[~!X??X%????????/#$t?????q?;?g?8?e???p????'R52y%w?W>?b?\@7e??.:?????F?>9???b???1.)X????Q?Y??????????[?$?7???J?t@)$?I-.????f????????I;N???1?k?H#?+?.?}??7+"??*??d?-i!|???}???N?:C?????u??????q?;B????0?h?E,ku???S???????h??y,'Q?O"?}P?W???22D][?op?8?? + T% u?????L2Dp?????}???IN?,@ ?$^/?Y[:?eu?1????+???????|??6?UC??y?oEp?[??nC???6??JJQj?????oT?? ???is ??;??Yb????>??h?cd??-?????X>??????1???n?L~us?????7?7G????G?d???????x-\O????[??[a??wO?]( ?GT??']?????8??U???????,???8#E???#???w?x +?How??W?dS??q?*?Scyc?%/e???[k????2n?? ?%????Mn??? ?WS?[?Zu???VF}G?y?G? +a?IO?t Z?:.=3??KgS?? +je52??2???y +i)???=???w5?UW~??4[??????$x????????n??;ax????? +??g??9aW?m??ucw?????%>??:?'F?7????SK~????OY???k{?8?;?8=??=????X???? +???5?????D.??t?.???<6T??????=?INwD????Cm-??#???\O????zgO?????]??Ah:y+I$???????3?VX??j????;.?????_??;?t???;}?8Aq[)$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)????~???]??nC=????w?W?3/?}W????|? 8???????oM?????q??a?=?????`??(?i?/?X??????????nx??w'? ????@? zl?c???4\?e?????+??G?}0??a`}`?????!?v??g??+C?\^?9?B???!9?UL??f\??I???x??;M??p@?????}O)???m??>?cq?$?????g???#????vm!??$???<|?,b?=#?t???0?}B??????J??I??I$?R?IQ?]I??>?K]??k??S??9?2????<'???.?f??u,????#???{?['??????B????2??^??Zy??~=A? ??7????X??1a?i??(?\? ????g???Z?:?????????^?*?l????????*??????c?d? ?@?L??????z?a???C?7>?}???W??t???U??s^?-?v???? +???n[vj?~fbyW?|?>?}TgGi??w??????????$??V???D@?E??I$???,??????l??h{???=? +IO??Z^????K}77ti3??b??????K???NG_???,Z???????????T?3??IKaR/??????X?? ????|7?a$??/??oC???{ ??-????{J????\0?????[CY?(??L???1???? ???xx?{K???)??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR??~Um??? ??i??? *???4??N???}M????/?t?-??k??-???????`???w?????`@???B?XF(?k????bY%?A???F????~5QKrn +?dX????-???41? +kt + ;?g??????????? MZ??? v!????8@?)$?N\??I%)$?$??RS??|?+???Z?c???????9?3??????b???M?h ?7k ?9s??$o???7?M2?6a?6????2:nM?X? }???w????u,????~VK?????s??e2?r?e?9??&?????????`?*????c??#ri????c'0j#???U??ct<}?"??G????,? y$??S?? +I$?IRI.O???n??:???]??U?? +wf???{???_I?9V?)uOk?=?8???:?.y;?'c??N????]G??>?? 1wMX??Z?VFK???<S ?????z??????/3-??[?? +?${???'????6??q? ???Gw8I))?I$?R?I$???^?Q?Wr???~??e?%??.??@8??r.?????^?oum????Z????D/.????N??j@"??hhw!???$???I$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*=_?b??7d?8[;???]g??tz??t??MT?W:?"?^?????9??}????n????E?(??Y??G??s?O???4???u?P????0?g$}???xw|?||?c??x?Q???[c]???>???S????z?{)?X????>??P?YV???? 0??=?!???=6v~??]????d???7D?a? ~U?&'S?$?I???J?WI?y?eb?{????8???m$????}7~??U2d?cF????IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO??e??3?&}?m-???B??@!??????????????? , =}e????YkYa???\????f=?? ???fS;?4k??sp??\?cX??c?C??A??8~.xFf'N8??Q?9?a?$]u?-n????vc??????????????p.?!??p^B3OG?{?sr(????O?Y??????F??)??B???st?????????? ??V?G?:??.??????xc??Vy???u??l??????????????b^??Q?z^cwY??\?,6j??????? +sj??!?;]?i??pp-?A?|????7???Z????> +?'????n??"=?4??Y"N?? ?????">g???]????9?cZ$??#???W?u??G0[^]S-???~??W??^u ?W??]?|S??(?q?????(??1???3?'???8?/?>j3??#?w??????o??`?A#?U?cZ?????????e???gd????-sAh?? e???????}?X$Y[??'7???vU???R??g?????????n9wm??x?+???+?u?\?8?8??04?v??T??6G??k#_?it????}2?ax?E??????>[7I??;O'.K??LF??????"?}?1?????P?9????of??????wp??}c???1??<d(d????fNC?t???x/ +?????x?l?+o???E.????u?_???>?c??6?Gb????W??n^5?}YS??h:9????q88?C??U????d8?N?Iy:?H?0?3?K??F?6^KyRS???G???}?c2D?.v???????oQ????iv?Aqpy1 ?3????????#??????h,?????l:/c^7?+??V???*?D?? ??L*??w2??.y?????^7G-???h??QH0?y??\K:7Z?????B????e?}&G?T????y??G??-?????k`O??itO????h????U??~?.??-~??3???m?C?i???`?a???vg?? ^ s?^t?}??IK??L?c?N?sO?e?vS??s??W+???????P???/???R?kk?`??k??f%8??X#NJN?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JR???+??????c?-?K????.s???>?^??u??\?1~?????fX?BC???7*?D??? ??]K7??q???5?V?????4A??8Ty???F????|? ?????????b?r?iy???U?????p?D??7S`:???!q?h?w (????)??????:?.?2?????????W?o?X???/???5???1i0??????0I????X?^el?????tRoI???k;?XN???n???M?X??s0??,q???f1????p~?t??? +Rt?H}?m?ev?>?0???\?o? Z???=?????K????:??????z^G?{K-?_?{?I,??G????!??erc5????{??nG_??c?????Kkf??????????.???????\????:?H????< 56?]C?5?o?~c??\G?????????T????M?#?r +??????\??]j}?d{??I?v?Y??H?}??`?{?ZX%???e???~??k}?????Z?]?vh????$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ\????U??}?,?x?r?y????o?3?q???A?????k{?y??wT??????q??:??$?JV??I$????[?!:I)?,?????u?nM{?m???a???2? +??~?t?+cs ???:K> ???????9????$.{;?@????g????f?E?oG???n5??,?h-{$j?;?W?????C?a??t?? ??>a\????~?Hzj>?????P??.??7Ua?????]4\???A??g??????R???????0-??E +qppt8Oa:.?/?????WP?{?{w????????$y?gH~?H???? ??M?]??C??V`.K3??~?X???7"?F?+7Io?????G?????m???G??A???_? ?a??1K ?(???3?:T??9s?Y3?T9??1??s??,?D?[??E??o???+?e????gF??*?O???????w%]I%m???]{~?u??X???L-???]O?{,?6_[]T ` +?~k ?%61.n6n>K?-????h`???????Q?Z???"?U?t^??2?????????f at IOF????????c6rpO?????????1?:????{????Q`^????Wt.?s?q???y??V%?'?j???]:???s???e??{j??"????????S?????m?l????M?k?;lwZ?^}X?/m??z??H??q??]/ )t??$)?IO??vW???Vd]L???up!???0?]Vo??????ax?[f?O?Z9+?????j?P????p?|e???#??O?dc`?X? +.??rJy>??S3?d??0???i?c??????i^???F5,????X??0?N???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?([S.??X71????M$??nD????a??v3????>aX?w?W?bu\Wcd?G,x?Lw?4?3??.?`fc=J "??[??t?\? Tus3r?IN"?#f?D?m0????7s ?%??g?????E9??s???[Q??\;)?e?jq?aa??? ?d?2U?H? ???R?`@?^??a}h????Se??C?is[?v?5????S?;!?VV?L>????]?z????4??h?.v?`?+????????nvm?`%???????/??~%??g?<????K?3??71???W?dZ`;??7????Lm?/????@?4??W5?o??ug? z????W??l???,?sq??I????| +vc?1?;??S????.x?F??P6I]U??]M ct +h?>AM$????? WFn?k\??~%?eq-r????U?W?????k\%?i???v?)0????w???n??:}}#?????V????_?r?=0???`x )?4??S????_R:?N?Wu>?I???????$????x.?t=?}>@"?Qw@??qs?1??e???I?$??z?s??????????&~ ????-z?]B?????vP?R?s???]??R?lz?SS+k44??T???I%8?Z??S???? ???}??x????'??????N5???zm??9??+??IO?t_?_Xz??wV??^f???B?zoL??x????UK8?|I?U??R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?$??~?u???3????}*??!?~U?P:%=3??y??f?Z?c_w?l??_Z??'V??????H??+?>??S??g?xmB?6d?? ???dN???&}?0??F#?wI%+AI$?JRI$???I$?$?I)I$?JR??u??Y??X?Z?????5?D|?|???M?/?.Y? -?????4??F???????X\??/c?/???????c??1??]2????????i2??'Ei:"?`??2{??O??J?I$?%$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$?????C??s ?]B???Z???|Z{-?S?Y~?uO?v?!?????6???g????,???+??[,ae?c?-p?~Ep?X???????`?????:MN'??U???{wY8^??+j ?0?_???t??wO?k?[W???@??k +6??w??[? W#??d ????T??!Y?/??????sk?????????D? ?UDJ?rK6?{"t?]fH???omU4y?Q??srr[?in)u???????|p?#?_??=?7?u ?~Em-????????u? ??h??????????+???W????_k??9R^cO??p/??D???n?F??]????VO?-`????c# ?{61P4D?5???AV?r??/ 9??t??VsH?S?.?h?ATps?9|?p_?%????d5z?ne?[??L??"uN??zM^?u??????t??3c?@=$)?!F?>????????????????????E?U????Ax<?X <? ???L????i??>? +???X??i?\?`?5Z??[???x?;[??|H ??)????pz?^?-????ih'??Pq11??????]U?k[?2JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$??.???]??6Nm?}7??Z?w?ns?????????OX?o??7??6?I?????h ?az/N?????????{?p +/>0?>????G??Idu??} ?X???H????:??o:???FS@?[?????i+???e?}^?}?/{?is?d??Hk~???@???????M????u???t?:???? ?#Sa?U????.??1???n?;63,?????t?i?I$???n??7????? +?A? +???\?gK?????q??/?]c?G?0???i???i???Z:?F?5^?a???i????????W/-????V?masKZO???u?????=??????9??u ?????_?????u????[\C]?h0U?????>?????T?Y?K]????i?@?|?t$o???u3??b\M?N8?a???6?S??u??O?q???/?\???.? ?gA????? ?a???Adx???????p???q~=????"??/?F?E??k??q?aw?t???~??l??pV+.?}????????9$??Y?V?|??:?? w??? +?I???k??????}?yi?L?Gy-??Gxo?]?~??:?F? ??C?,???%K?7RoM?????????i??\?????c?5??:F?Y?K??:D????X???q????^??g??g\{?????\?5??x??????1?9}???r?? (?d +?w?A? ? +u??[??????+x???mu~??3?_??:?E??6}"?1???;?????9"%a???]o?|?K ?^???k?????? -?????u??q?m??3RZ{??@O^?|\?1?j??e.`wVq1???V5Z?s?X>=?S??^?????d??????k???[??5K?t?~??^ +??/>/?I??JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?J|??c?M??w????R?62(h?8?o?\A???~?d=???????I?i??}X?[???????l6??mg??{??4????0@C? +5???:G?????? + ? +?????b}p?9F?I??l?_#?Pa??.?m,?c???E????6+??i?t?i???)??/6?O!??????6>??M=C?E9???4Q??}???2+?A:?p???^??\?? Ho?????,?=k89????6???nM?rm???>??W???u?????~???>??M?- +????:?????H?????O?Q???[????{1)??y? ?????_??fNE_i,i6[?w??:?K?<#?a??a?i~???6y??0z?????o???A%??/?U??)??F????/"??899??a?7????? w+?>??db}_?fD??6????R???]?????~?? +??????????=?????i????????Pe?N0=E??G??g?????????$?rT?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)b???v%? ????74???IMO?=/??S?c?Ymu?6?64!I$??????????Cg$??>????+o?'?A??:n]??T??:??? ????&?1?h}V???=?^I??^g?N??C???z?y$?>a\?!??-%????!?d2??n???bg#Q]Q???]?P??;.g+?`|??ice9??>~\?? + ,e?z???f??_o?u?;?p???Uq???>?m?{????*}31?sm??? +tvwb?????//J??t?c046??|?o???)?/???7??c??X?YQ???????U?@&b???????|?EU?n9?h??6?? ???2??? ???o???#d??????x?dd?=?C??????Szc?_TY??]k???? +??8k-??4P?X|[?? ???ez9???D3??$????\?LR>?3???1?????#)\xG??w?I%#2?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%>U?WJ??o?\)?!?%??$??V>?^?????t~??o??^?!?a?>????????=O/??2????8?. +Wa?:H?4;???EO?a???'?!?!???*?????????a??????.????m???L???L?t???3?f}U???9???c?????IV?_?g+?g???o??w????1? cCZ? +h????;R??x^?K??{????s????a??)?s????Hh??C?^9????_^I???R6?????]?V ???z????a??eb? +c??>?tN?e???2???]??74h?VQ?$???? ?\?a??:???]????4?????[???$ ?????z?O?='???????i?$???8? ??? ???K0???V5??*Z?y?H?~0?~?@???r??O?}b??????Th9F?z-lE????????????????_?o?u ?:m d +?i?:???qq??????jhk8'_?|?"?Q??????3?w_????hnF 4????m>?%s????]?V?e???????6N??s!v?O??????s?j???? ??D?5???>??????\(???Ga?SG???x_u?R???'7?}q????9??a3?y????3?q?eG??:r?q???_????39?XA??5?? +????w?7+??s???mkt??????z?zC??????n?????a?)?????_???D?] ???~??z????????????R???Q[?s?{? ?????V?kuv +?x-p=?TpzI??v???6?k?6?&]????Z#? ????|????=???X???l????U?:&OT??h???j??2??* ??h??????t?'`a?2?W?]TKIw3+??/?<|??U?jm?v??$?:'?>&'?QH/????? +_~????-?????K???H?W??????:J????????????~ +#??G???????]??.iBh?G????G[???n???6????3:Km??/cz?? s?{??W?t[p.?X?t??!???of?X?W:&/N??Q?[0??V????G??/?b?L +?4?+??#H??????*Z?????b@t ?>?u.??:?NV'?j??k?s???l??????3?t6*?????2~?gf????^]??43X?I ?????????n???6?? ?????c???d"?}[f:?E?k?i????????.????}7?o??s????o????AH:W?;?4???e?F{;???R` ??t>oA??? +l?o????GG??S??.C????X??? '* ???v?p^??:~?R??!???????7~i??,e?Yvt??/??p??$?NQ?????<1???F??v_?b???;?<.???N?????M??????????U??\??/Nk????GyOT???e?Dub???dD??Z??I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????????\??/-???????f5??(t7i?t??w???1????~??v?????`??T???Q?]?k?`?`W????}Qd&G?=wt?x?@?Y??#???C??GV???e?gM??????????8@???S]m c5?@RO?E?3????rL??I$?s?9??.q?5$?'X?[???{2??1??]??!"??"?i???N???o?k???1??????????)?+?S?5|o??/v?y????????S?^;=kC?7?^???/?gy?????V?.?|dT?I)??$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*}S??ul7??0>???Og4?*?H?A?? +|??????.?V)~FF??3G?????VvwT????9??z ?? 8?^|??=?{ ??i?W?}m??wF?~f;7t???????w?? ??k6??.?9q?7p?????.?2??k??????g??v??#t???p???tz?iwN?&sxc?n ????d????????!??R??N??L +?O??G???s?k:?M??mac?>?>#?s=???[?X?????+'???sd?P?! =???1???m??U??f5?k???Ey??2?GV??d9??Qq?/??U??r?g?0?6{?u??`??9?=??9??8???|?$?U[?1?6Nvu??????$4??to +e^??:F?>?1?@??????vK~?t?,??????]I-???8q_S?c>?d?t??? +u?}????dh??u???7?????????~???+?,is(a{??H ???????n?????y?(??@?Y?G?CSCu?{4?-???a?g[?????????F?mg??X??????6??Q????mn?m??)^??U?uz??m???smN??7???>?W?s*????????????c?N?y,??6}\[?????????[k??????.?{H???~ }?jHh.q?5$??????????2csp??\f_????,?? .?:???=???`?=?P??b???+?Z?[U7X??F?'?w'@"%~eDl:?G?GI`??n??????n????6?H????,??]+?c????31??????????????"???Ir?7??&WQ??g`?t??D????E?Bu/????J??????????V??J]?f??????U?~u=C +??C?w48p?!YKe)$?5?? ?vg??????j?H???9????.???Uf?????5?8O???7;?j?}???O??_0, ??TN??*p=A????????C'????t????`????"???????b?f?u????????GA?C?F?????krzN??V0??y?F? ?8?zI)?>?}Ko??C????X?s?pv7????} ???f6 A??A?KQ$?@ ??????/[???N???????o}?? ????W????CS?q#?/:??s?P??????">QD?.?s??A????t.?3??XOP?O.??????WO??n??T`?G? +???Y??i&?d1???v{??}v??fc[?zxks1??=J?o?]F>EY4????v6fVed?????m?q?}??:~X8T?R6?K@?/6????z?Kv[?qs[35????n?????;o??88Io?4???-d? ??????!Z??_Nk??^???t!q?[?Q?:?N_?????~???yl????y#(d???w????!??l????/Y?:_?WK?y0X?s????X?? +?u?????Qs??K???????c?????M??pY??? +? ?wP:3?:I??~q{0}???9bj???$#\0c????J?*?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%5???z~-??o???K?{???????U?23:??@???] ?Lx/[???a???????????_?????g?$4???????w???}v??'?> +]j??{jm?,?[?D??@???j??}P6;????j??w^?n65??S,c~??@???????R? hl??Q??[??j ??Wl???-pi???*5SM,?K[????$????Q???????? ,>????'?????}?????c-i'????}N????N?????s?4????N??;??2vE?F????}?K????}6?Q? +?????F?~????'???uL?O???'??z?F?M??I?G??/??]???tQ???c+??"??111???]%??hl??I?????k????M?h?:???????#??2?????X?wF????3?x?a?7??????<?]?????N?+.???+] ?/P?'???5???6???D?UE4????[I????'?????(??????#/??>??????.*?? ,?em???O???\?)}f??v?T????a??`?I?w?O? ???????z?,??????j???*?C?Dl??<#?N??2??4@??@%??? ???S?????2?c]UN%?;?? +??{?R??]#?dt??]???????????F?,?WRI:?? +??';????cO????????s]????p:?"??n,3[??i?+??????X??_v?c????s??I)\???t]?n?H}?X?????`?Y_???c?????G?????O+????fWC??????.?M???????Y????)s\??? +?2C????c?\??T*c???)$???RI$????O?????y??n??(?)I(W}6?6??? + ?|?M%)$?IJIB?????X????'?T?R?P}?????5??i ? +i)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????s6???2???K ??3?????4"??????VUe??????A?d??d/8??m6???Z?+q?p???[?}[????^? \~?? >'r?z/?????o\?6??5'S?g??-??????_??????b?*?????u?F?O??LO?V??7c???;?$??-?l\lZ?8?6?? `~ ???&Y?B?!/V?IRI$????L;????7q?H:???S????E???????B????V7I??????1??????tY?k?7pas?????Pf>?c????Xy????1???S?S?o?/?s2>??????k??+c?Ho??)}g????bt\z???X???u?w???G?_?}^??N%Y?/?!??dN??-?5?h??}&o??????>??`c???@n?t?o?5?:R????O??v^Q??k ?????w+??]zW]?? +?[??H?c?7c???un???????A?=u7{?wH???^??O\???]#??X?m?!???C??????*??3???????g????Z??;!?Wc?c??2v#7?g?^u??????K~???D?v???o??d?????@]}?x`?St?? ?^]?r5?h???m%???"#?B? +??{M#??B????^zP????^??ds???v?*?V????WE???2?c??kZ%??$.??_?'?)a???? +????}l???:??~???a? z^?Z??hw???#?U?P????x???g?????s3+?d?????;SK???g}c???0>???????????mr?N????V??G???c?k?????????;??c!????%:??t=???@6 ???M????{;?B??fe9???????_????z???????GK??;.??5??q???`??}l??????o'??m;?x??S? +??w*@$Pb{B:????O??ZY???_7???????a??1?eX??c???????????P??>z2CX?_?-[JC?M)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???????????T???????42?p??s&r-??fv#? ?d?????4?]?]?????_?g???LN?J?)??YECmu?5???y??????C/4?E?????W??b???????lm?W?I$?????Y?{??????u?Jj& ??? +? N B1R?????.??WG??? 2Z??G????/?k\????}??????!sT??u??Y?fs?Z??????/R????*p???6|Os?P??L????.?6c?r??"o._^R?&????~??z#???#v?????RS?????&`.????}F9?????db???gI??;kc?'?c^N5?uuZ???M?p$|@EIO???1,???WG}?7c??8?7?I??????????v?R+c? ?????&???????t??a??9????5U?z????i??V????\?8>??~?D^?E_?|??????zc:^+?s??0,??w3?+z/????????A{EN??????S?Y???%???WH????8????'????m ???^??c????$???g???S????);,??E!??1??r?:@?" +???G??Wl?%?^?M??%???#?7}??&????^??N?{??f(???q?????[?C???L'?r=D??.???b#???e?i?9????h?=??*:4V?A???]??}}C?S?B???1?h{??B???????Z??pE? ?>??v??gV},?e?k?? ?l?[??'?Id?%???;?/?????? ??:?=-???6?????em??N??im?C&?v?u? +?J????_??>???&?9??????q??????4Y?E +?)?q????????}{B'?4?????}??N]V[s=J??\??????2??! ???b??e??? ??0zn???;ki???e?q??????H}l????9???M%o??3???:_??????xyt????W?q???????????????eu??1??C?A?|5???????+???m????~?*???L|??g?M?6?U?>??v?OpB? ;~?2?J?c??Q???}n?????????????????i0??]?v???z?U?7?C?Z????n????=?????????VcZ???G?+??]????O??S???eZ-??S??>?~??6?7 ?P2_j?7?-??[:J????????^f??r????w+?:;?gJ?{?????? W?:?\%??Z?FnA???o?r?=n???6CNfi?=?V???.??/X?????U?~n???L,L*?X?6??????c??p?y^P??)????t9V??Q??6I~?}h???Q?i?? j?ld??l}$?}-Q???b?XU???????@uY~??e??i???zN~W???????%???9??0A???6???P?w?3??n?ue?s?gk\y?e???H??~?GQ ? ? ?u???S?_V???gF??m????8?\jW?????#?s???^7Q??k?a?G???????U??VP?]B?????KE?`?G}+g?_N??c??x??WEP????s??5?@;? ?!??Qk?????U???\??G????9??????W3?du\:1??GE}}$????=I#Xdq?+C?hQu?T????k????\y? ??.U?????]6>??wV??? &??{J????????????1:??y???#9???9???wV8Z?Y??W??.&%m?9??j76?y?<??l?~??6UK?s-?{Z?H???????????????gt?jmYtU"???TOn??? +@????w?/?l????}o???}?E?p??u^???O3????>?s?? d?l :}-?????g??OY?????YeA??y???iG?)T???g}M?}S??`dd?.????????v?????K??|?E +??~?????*?1>???F?????{4$jK o??\?????/?????g?w??~+?^/Pn?c??f=???sO$ +?U:n/? +???????VG?M?h-????A? +??X??j??q2^??}??? +=?!??????7??????W~???rm??m.??s????o??r?????e????M?{???m??>?K{??/?R]?s???U????r???6?4?@ +??Qz?I???W:????w?q??xk??????????????z??+??O?????????U????{??v??o????w?????VE????~c?x??+e???s??N>7X??B? +?-?C??c???V??Sr?:??{?f???4V?[=6?j?M^?????g??WR???X?@b??????????]s???k?<?7?Gj?0??z?(g?????s??O??W?c;v=N?l?4?" ???????????DoJGW????R??)???????6\cS ??sY??8??1?N????c??????5?=^?B?M???Z??H?ie}X??C??GH?=M???G???l +h??H?u?$???[y???e?u>?U!????ka?v??J??o??W??O????,? +??f??????ig?C?;??K?)?7?q?!?]G?'?~???1???>??D????c60??)GC]?'?O?D??????/4??W???????2j????nw?????????:v?? h|?%????.Fv_Xu+_??FgR??xxW7???? +???-????:?J??f ????9p??F[N?JG?]?{???6?? L|??G[wV??]{??w??m`?WE????^???/???n2?e???X??Il??????f%,????zk????Q\????d????~P??v'T? +my.????:X?+? +P?{??~/+????????????x???? +dwV:?[?|???Vf&??=xe?g?C???????o?u???r??3xsa????? ?8?8???I???? + ;~%W??q??z'????oS?6u????Z??]?z\tlx?\?S???????si???K1?9U?????????{?~M.??????N??????????u\&c??h???????h????a???| +?E????8?Q}vU?????F??-????Xp~???3??&"???{?4,~??u.???020^?[Hk?L7??S???????6m]I???m4????4j???R???*?wDt??^?O?g?s]?????Vi???U???K?u?Zz?z?@??&]dW?w{[??O????x?????Z???=U?^??)}q????? +??F= +?Yx ??o???? +p???"N???????? +??:?u?? ?0???=M?t?n???R??e}Y?????E??S@#g???????i_b5???????zD?I?$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%5:?[??}?L??N??(????5p? ?3????}[?`eXm??-w?????$??S??Y?????S?c??4?????{?'d!?*?oR?P???U?????;?m??y^??]?6U???? ??? +?*??Vz?j?v??8?o??????s???????}??S?K????/QI/?_E??w???:=??V?????e???*?L???????/???2?\}?i`/?kaz?Iu??_Et????{;?Y]??V:?2*??8Wdxn??Q??????Z??_`???????.??!$??(???u/?N????????~=?I? +???)????_?s?dUQ???n???X?q$?U???U??:?LwJ????[???????X???????_????F8??$????????K???])?~????dVz?[???v?Z?#?G??]?????~o?????2?+|x?i%?o???_G??k2?W???????????uN?X??^?e^???uN??????VC??/??????RI.?_Uw?????J???3?V:?M?n??????~??(?6????g?;??cm-y;?^??_?W???a????<`???j????=,??S?u?????o??z??~??_?o?M?3?J????~?/???????}"????o?????6????%?????rzE?-?!??m?8=?V?Iw?6|???P?RI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)K??U5?u?mm ??6;?-1??%????gY?>????9????G???#q??)?????W????????=???3?{?????{??+m??w8_???-??#B????eg l\KM?#p- 4x?a{_???x} ??7??}??9??03?t?m??q??s?D???'?|\???/?iey[????S??i???????? +?ckct +h?SIK???sd?#7?=ZK???P?????S??????\YM8?? ?L????]w??^???fC??2?/???/? ?O) +??q3A4n??DO?}!%?=?uO??##?gu|?2l/?=tXY[8?? ?/U??=I????/??KIk??#?7?@$xdV????}M%?Y?3?;?u_Z]?2??UL?????7@????????S???_???????????8F??G?????q??????? Z????N???X| ?????-S]?@???D?^y?6?qq?0EL??e???his?j???????S??B?$???2?????l$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???~?u???7;?}?V\$?Z??????.??Sfj%t~`?}#/?duN?_Y????<??ms??[????M????x? j?6~#??fb?}H??&?U]ms?? W9??bad????o?:]?m?? 8?#?!?9G?@?.?j??A?u???}E%_;?bU???n=?uo????T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?;?KW??}5??&?????O?._??U????h????c?N?S??&H????{????<^O?????o??V??Xo??S{ ?]??V??}HgL?fWS???G??7*????keu)$4??????????O?_?=.????:?T???He?&?}-?(?a????o?]??????7?s?/y????/E????`Q??"?v2y?????UT???ck????@)??u6? +???????/?g?+????[?U??Z?no?q????]??4???r?i?R??A???AI:?RI$???I$?/8??}t??Z??H?????a8??j??"B?u?='?c????r????Z?9??Xk'^?$5????)G?'???t<~????u????7K_K ?i,?f?????r^?LP\??q???U??????y?6z?????8??'s]?6?I$?T?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$??????}a????na???PH??o????efY?pn +???????t?Hk~?t?oX?I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?*?G???,+pr?_E??cA??+)$E??k??Tk?=?????s? v-?[y?V?6gI=?v??U_?????H?+???[?t?^??V#6c????gO???Iz?)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???????=f?;s?o?)????I/w`??~??P?????RP???Lw?? ?Vo?l ???k??????1:?%f??????t????cp???$|? ????'????????J???z?H?.??.^?=???O?2?@?? +?:?:?W????Y??????????????m????2q?{Ym?c?? +s?'?+???Yz?\??5?(??+=#{??|?X??R???n???I???Q??? %+?????????O??%98????YkZa?????]C?}?j???k?]??+?? ???/?m???C?nc-??? ??+ ?Y??n&?'?7&??GPfH.?rK??HjO`@????l????e?????Hv??????_??????2)?$?i??7??8?W??????j:?F?? +hh?Mn?' Us???G?? ????q???g? ^6f?{?"@1??y???:&gDwM?R?????D~?t?|??????x?fO? ?p?R?X.x??\????V3n???? ? +?W????????bq?z????v???|???ZR????_??O??}????i??w}Q??????k??cY ?????????^?e?(u?A?????HR?H???mt???[????:U??n!?,u??A>????F?k?u???????O?}??,???????Z???|?G^Y?Tt????zwW?V????m9Lys/$A??+??????(R?3????????????d;u????|?WN?*q1~??L^???+e????u?X??_8?W?OI?????????&N??J??_?? +????$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)?????%???????w?^&&vX??&?Z??( +p?n??????{???/??? ?XwK?wK???N7???u?y at X????jI?c{G?_??N??q?WO??[??H?j?????W?>?`}?w?????$???k???I$??I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)d}a????Uu????;?????????J?WO#???7B?e??K0???? +?N???T????>U???????y&?Z?>?.?Z?$?????N??z???zu.?????m????k"|?m??Pz?aU??N????? +???q????????_?q?A???L???:a??* j +?`?CCj?O'????K~G? z?OH?Ci??n?>???+?H?????3??l?e? ???|?5\?????C?to????p{?????C???K)`??????hGB???8Y?RzFo@?????FD?cH??Vi?=.?QnNv^NN;??_k?85?W???4??}I???W at +???X??t??f>E??????Y4??U^??/:_O??u?d?[?KH???y????J??Hi?????????????????2?zf]?.~#?o????/????t???s??_n[?q???E???t)%ZWE^????g?>?WR????y?1?S????$??)%??????~?d?c9??l6??As?????n???InVm?????h?BJ}?S????\?k????i?m????md?????%>????????????E???????/oy? ?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI%?}W?j??_??? ?{?s?w$x??DIy????? +~U?~?}f????x IO??? +>??????????VI?Ore?5??i?D????I$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI%??_:?g???7???8vVk??N?8?))n??n?l?????0?xnh??W?/?????&???i?w\???? +d?tx?h?~U?T?1???1????k??????I)I$?JRI$?????N???????im??&?k????IN??????^9?&?;H???|?='Q?????Ff-??H +??3??a?%;=/s??-??????9*???I?2%??^???X%!???y?????C?5??G ???R???????se??c?RR?Or_????^????<q?+??????8??c?????????x????0?97??C???Q???2????S?s??N8?bz???9??#???n??c?a???F?????/???>v?????z???? +???]???????wS?6V???-???z???Pq????31????=??V??????p] ?`???..?4r?1?i???R??p?(?5??Yqg?[??F?:?$?OeRI$???I??O?JyO??Y?????L??cf??V??J????l???e8??P6iu?Y ??????_?C?_QsK:?,?????bI%>+????y??yNk?cC????? N:???r????'u?!???@K??7??^Bm{\?X ,a??;B?????!?2???????X9??t?swM? ?j?|7.???g?????kyd??p>?K?a%;?9?g?e? Iq??(?????r}V???B?wN?c?E;4K'1???))???????W{?}?an??????{??=G???n?S?{dn???,?:????? +? 7???????)???\??????soe-??????0>???\???tIOJ?.^>e ???[M?Z???R?I$???P?????Z??4K?t$?i.O?????c??c?l7n??U?u????? l?8?]?[?:r??%=?W????=??6????7?}p????{?v?????H?????E????g?l??`a?Ri???V???#>Z??I?]??f????U:M]5?{?0TX?rhi?;? ?3/???????z6???:?u?r?}S????2zfo?????g????n???WN????OPn?D??4??)Gi?I??4?ta?r?D?_>3?/??I$?l)$?IJI$?R?I$???U???z~+???+??I=??Ja?:?/K?vVK??F4j\??@^m????_vF{c.??? o??#???vu??m???Y?_???P2?N??k??<$??????{x??^????/Gu???Y2?[?????N?b??????9?7T>???o???sI?M +?%L?g??J??G?a???e???A))???}y??zFs?#?????o???%? ?y?????u[m??N?=?ca?e%>mc???_k???\??$?$?I)I$?JRI$???I$?$?I)I$?JRI$???I$?$?I)I$?JRI,??i??[?Q?f???'?????M ,z??.??lv;??)?????wr?????????6?q%S???o??U?g???I?O???W???:.;X???o???H#???e??R>?P????ks??????hm??C?lA]7H?????m??????????=?XT??????I???K?X??{??:???????c/??'|~?d?+xO??}<@ ?:??rS??W?MtX?k?0??????q??????2G?}Gb??I=z?I$???I%)$?IJI$?R?I$???I%!?????~NK?UV%?v?y?]????/?S??Y?25|~s?????}L?n??z???`????WzS??@?u?a?;?je`z???L? )????S=;X????W?8??cX|'E?????`Vf1??^???(??R??????}G;????? ??^?W???=H;g?r??\??m???>?}\??? ?~%m?????? +?:??k???i??N?y$????!?? ??,??Nn)ys???????y???p?t[Q??:O^??:1?Ei?????T?????.}z?p?????'?????z?q?X???{??O????u?:?Tf????t?????X?9/??:AIO1?\??O9??? ?7c?????ar?????W?_]?>??$?$?I)I$?JRI$???H7??c???????JL??5:.+????W??????D??O?_[s??Am9-??a?mt?????K????p?????k2?v?C??a<??5??n??A?))t?I%)$?IJI$?R?I$???I%??_K??]B?v?v8K@??,??>??k?S??????????????`:???{????????M???+??e??#I??y??????????@n>K?y,C???????%Ak?#?????8u???{C?e??R\???r??+???Y?Z?tI??D?????2 at LlT?I'/RI$??!????????n` +u?'???r>+?:?W???5?b<=?{G-wv??????^?v>X +se?_?????x]_?}X?W?????????uVG?J}????7???z????????????>?????@K?Cg{???B??T\???u???9??}??????rLu +?t?????+?zN/?,`:I??]S???u9?? +??:??$???K???^?7Q-????(????I?K?] ?A?RR?????0???O?h??${??U=??|?????????H}????a?g? ??o}?????\???$?*?>^F???K?n_Q???]???????v {????nE? ?$?7?,\?V??M??[;???>?}Y??@??h??c??????2??S??,???Lp?ON?G?,?C +?GIl:??#??u??u????]e?8_]_?`?8=??/??????_R????q??+?????????X9}g??G?D??7??%??M??Qc?1?zG?tc82H?d?>/?zb;Sb}K???x??F??w??>E????f?{9???c??^G?????,?do?A???o?X???j(??QKC*???h??????????1D??I?H?J?)????}$?< +????q???y+]?????c????J??O.?.7??3?/9?@??U?Py??L??Z??<'.Mc?W????a?>?????7????L??g??u?\?Z?!???g'?9?V-?\??????????1????0CZ4?w.??n??? ????-I +???sB7C?C???P?Ys??]???'"?## +?3 ???T???hy????}?NVg?;?>??H????????7=????)????I$??JI$?R?I$???I%)y??????sr]??????!?I??^??w??N7???^???kl??!?;T??/??W???#3gK?x???????h???+?E?9?B|??+?f????`m?!I%$??K???????C?a?Z??!^?__????u?"?????e?@[)??4?|?=jK*???"?mm?p??j????????P??/?@?3??Y y????fp?????iv?]?V?????#p???????=???????????????vrA???BR??OV?1?H?7Y?:C?????7oM?;????g?/A?=Hu ??9\1?f9Y_????>??b??V?9?????%???n??Gi?T$p?~?????|?@?sc????$?Jf??I$???I%)$?IJI$?R?I$???I%>e?3*eZ??;???O????[?o????Z??:C??Q???j??4??f]2?kOgx"?????>??O????[??#??J?S?).b???????1??0m +?? ?}@3??`xz????\O???l? wS??W??%?????+?N???C?????U??t?3?t??^?+?a????RS??]9?73i~=????>???d/?:?D?}^?GP?e?=?=???W????I?s?vU???E?????Vz?+????"??????g8`[^??????????m????%%;???]?:M=w$??k??Ixg#C??]?;??/?,b??????????sAg?Z?^??????5???kj??+?T??Y?,nVCK:}gW +?~k|??S????kl???1[??[t????}W?='?Uk???]?C???C { Z??]??z?zz/? }[?/mCW?a??W_Y}~?0gP )??k.{kk{???N??????"? +:Ky??Lf]???h?????e?`{????-'?Q?_?m~??x?j???:?dk????}$??tc??u??????`9??V>+3???t??_?? 5X{?????5?[4`M????bS???^{???V:??kC?-?u???W?9????H??u?;???_?t????Kh?*o?k??O????:?5nhu{???R???k????lb"('1u2??R;??}'?Y?_?p?$?:?????? ???j?N=m??h?0?"$??$?I)I&3r???}`??????} ???U[H`d?N???9??M????S??;_6V?????<?t>??zGD??~K ?a??&\u3??}`?}???G?CO??e?~????>?t?????K?7???#????S?????{?z???G????????????:?h????c?oT??????>????j??/???N +#???????87???h????`?oPp????;y?O???3??v +~g!?Hr???????????_M???5ac??????*?I+-?(PRI$???I$?$?I)I$?JR????? ?]6???~?SysGh? ?T:?W???:???C1????RS??L??O?6l5?$?@?????w????_?????%ynuo?wg??oqy??'???sr1??>?Z????????]La0??J}???&????R?? 9??u??U?{???? ?}??????B?????O???GJ?u???[??v?k?K???????????????????K?}???:v???F???]?*g??m?5???~k?IO??[???/?f? ??I? +?e???>^ ?????? c?iGE$?S??[??u???Z???2??s??????????u?Uun?????k?? +?:????.???{?lq.?}????Jx_?O}?Q???????v? +`?_Z???????f???\?K???Q??sn~3?}j??c???M??l?u??F/K?????2?????>?}]??W?????u?jn??????????F@p????INWC?????Y??=????????[?}&?v~CjhO???o?X?W??w????????O?????~ ??}?]?&????y.??Jz???7?u??(,S?????.8_m?/?????K?????[?I???U???sN?8#B?M????2????,??v8??o?` ?????_?vcu?z?(?s? +??]????v???&J]?\???X??/??%?????:oKayf? +?????-??3?t????r??P?????O??j???u?P:o?~??m????8???{?P?????Oe?f???:?????\:?u?s???ZI?1?"?????????RI$????T??S??t?????[;G$?2????d??^??5D:??$?>j????????`??v??F???#?p3>?????}??S?5???^?Ec??)heu??4h ???S?????????I$??jI$?R?I$???I%)$?IJI$?R?I$???Un?????q????}]?X??????,?{G????Wo?2:???????s+???y? 6@?$?a??????m`]???cts?]z????z??????7?????????I$?$?I)??:vS?~&uM??9????????c[???Njis?w???+??????_E?U`-{? ?IO??}J???l??KK??????????uN??:3Y??[?[?????h??U???Ym?08?c9???n&????*m4?W[?1??%3L@ ??|+:??$I?????/? ?mM`??@Y??w?t?}l ?????c?-*??Y?G?}??????Z??????J}???T??t\l???[se?o4Z?7?b???????6???H?????~?t.?[?w ??;k?Q??r??@?????ku??1??8?y???????LG?+$????G%??~?eu??2wzM^5S??????u?c???zc??0?H?Pje?E?~=s?j??>??I??]K?V??`?\%??|I]?+???????D?< +???8?#@>s????^Fks??????E?.%???W???kCZ!??N?+??I$?$?I)I$?Jj?>?OM??:???iq????N?N?\?????E? ??}P??tz?6??? s?}?????2?7?'???$??8`???H??Zy???8????? ?,Z?hhmu45?ywGI$???I$???I%>??$c}k?v?????h?????o?????uV?^+?=:??>????????7???i ?h???'?B???O????;5c %?'? )?~?}z??o???[?M??^??tg?# ?? ?>& $?Ms?Y?????E???FlCrk???p???????0-4??????:? ??????\?n^#????&;??%<6?M??Uj?p????_?sH&?S``????z?????nux?~[??f?'??r?K?h???f#+?i???w????c?????y?u??????2?N6?H?*w ???c?q???????J??I???????N???XQS???OW5?????9??P{JN?? ???`?4>????????W??>????l?A?-?>?%??K)?????x??? ?U\??????hu?t??T?[?>/??F9??g?????=m v36??g????????w8???f?k??i??z?2?8?"Q6 ?i&D??Er?I$???&c_?$??X??????}74??>yI??????(?V??rj:J?K?????Z '?/?8??>??n??????0???r?9a?UY?z??:j?}g?gT?o??????1???????>?t????X???R???b?????u ?1??6??<??5??@???$d?=$bQ??]???-?X:??*?~?4? +????W??$??????'U??t????/?????<???q???_B??e???/?v??????/W +??k?s5?4?$???XX?\?%?C?49??'??????s)?=????w??????E?????eL0??y?? ??3??Eb[?]??55??3*??& ???z???s?U???`_o??jJ{l??L??6 +?8?O?w\?O??S'uXs??dnM???S??????k?5???;*_X??y-l4IN1? $??$?????;??_???y?-???P??^s.???????5%nZ?)?:??????2m?:???o????>?????F?\??A?mGB|>!{_???wG?????&?[?~??/??{??e???RS]? ??i?+[?d? >??? ????~?u:lwX?u6T u& {9?*?[??S?{??}????A???]RS??q??????3?)???K +??\Dov????cf??=???nk??t4} ???@M-??r ????J????yU??~.?????? +?"C???B?:/?.?? ?'.?,v?/????u???????M{E?????w?!?????=?? c7????+?K??W~*?????R??????^????>+???}???????\?zOQvs}??'?^???F";,??????#??W?p:_O?? +p?e,o???3???I??I$?R?I$???I%)p_? ?z?4????:?????4???YE/?? ???>@J???[???.??mi???T???]?js? qpG??x#???>????t??=?~_???!??H?[u???4?????M?p?`6??$?H?RI$???I$?$?I)I$?JRI$???I$??????????]???o???o?Ui?????E?????8%?7???R?~?r?^?kswv??g}A??gC???>??7b??????]?????7?X?i`??0>x??>?:??1v +Nq???M????B%????oRv=????)?4]????Xn^I}O?C????oo?Jzzm5??hy???7?|????n??:?(W1????{8.?$???????????????(????? ?=??A??35?v.Mv?7p? ????OX???8??l at .??w!s???z?+6?)$?N????IOj?$A???C??t?;sr?M-???????O?wVZz?]???????????}>??[^.??k???9%$??ne[q?? ???????11?c????"?{??9[??t????????[?????\{?6???z'\???Y???ZOow?h???f']?9????9??I???_j??L?????? ??:????8'?))?????p?vFNC[? >@??O??^ +}&? ??[?CW??I?(????JJz??u?????c?????? ;?mnq ?#?; G??V.7F??Xrv?P?Q>???cA?'???????I??z?^?????j?8??eXd'?zA?????hd?a?V?{??eUU?[k????!?h?? )????+??^?:?z?d{?l??<@?I)??2???~[?shc?Z9;D??3z?gS?7? ??%?????/{???!????2??c??p??^?z???k???? ?4 +Ju~?t?^???L???5?znp????K{?}H????M?Z?^???dy?;$4@?????:??_"????,$1?M??T_? ?g?&Z??Y??g?6?*??q0X'?]??????????j?F???????? +????t?[?????.???????>?fKo'7???Y?6Y_??I)[?I$?R?I$???????8C?b???H&?X???e?FH??????Z|?^???e?_?6??J7?W??5??$~i?|RSQ???n??u2??7?ee????b + +m??7,?]????????a??"ZT???????|8))??=a??o??????E???O??????\?_??~??O`?@??o??z(???Qc]vLh? ?J}?%4??i;?@??wRIJI$?R?????YscO-p~(?$??????c1????:I>??g?????\????V\?@{????l?????O??????r???/??O?????????O?-??S?}W???3?Q??rI????>(l?????????C'J? +T??xS?? ????N???x?t??moY?5u6f1?8?????5?j?t^B?|??F-Nx?????OF??~??c??B???K?c?L?3UM??T&?? ???????%*????aC???`cY??? ?/???d?[??T\??1? ?\x?8??R??nIc?o+???>???}^????2??l'?'O?.?V??? ???4?(?????fd?????B??I&?I$?JRI$???I$?$?I)K???5v??nc^??c?????J?U???g?\??~??Mh???$8}?IM\?P?ZoLl????????h?W??u??z??????[?{???H?~$??K|??_U?q????,?m1? )????0z^+q0im???F?%X{??/ph?&?????b??e??)?C??p??????????????+i-`?????n?x???????}Y??V????c??????|??;??????-??Nh???? ????w???????i?????~????,:??ET??N?wy??$??U>????a???d?X!?s?P??)????cW??_m???g??.?F????WcC??i?{??a??Z5?P\??/C????&????8nv????/?e???T?mm?!??k????L?Z\??N?????r?VMX???/ ?c?|???a?????u,<|-?t??*x_U??}b?}|Ru???#?#??h?????X3q*????5????????v?39?#????^v?GR???I$?$?I)I$??}X?Y?s??SK???))???????td??@???f?K?e???h???cB??????????S9 +?#1???r????H?2???^:? s?.q??B?N#??o6????97?/L|??$?????I%)$?IJI$?R?I$???I%)$?IJI$?S??~?ngA?*?9???{?x :9??? ???e?|?]??W?v?]???Z[??5?A?^I???/P??????r:m??+??g^?u%51r??E??????yk??+???]:?h{?.?h3????xCy\}^??v??6?X????Vdz?k-w??t?>%%=?T?=g.???@`\)FB[~:/??x??7????u????t???1?Ze?uV7G5?!i???-?????OR??Xq%?Ofmc?????'?]????.???l?????2@L4?H2S??????e?q42??,x????????Tv??? >Az?I)? ^??z-?37???P?e???X ??y???%>????_[??/????qcq@??uk?&Z????u????6W?P?9???? H??HG???]Ml??X?????F4e??64?????S?????vS????????Y??????]??>???{?a??$x?n6E?*?????s?|\I??yQu??+????/?;?@???5?QK9??E{?/????a??Vp?h5??n8?????H?u?lN5??1????Um????????6??RS???t~??_??fQ]?k??A?yE??[???w??wqT??Y?????nC??emc+??r?????+?^?,|???G?II??}g???????Z?K?????q??jI=?{???3+?????ki{z?X?z?l?c?I`???4???????gGfu???WE???c[??%G?u???Y??Q +??????q^???????,????u +u?>????Q?$H|??S??????????u????V.????????W??wA?????X??l[O?????T???U?????]?]b?M?AB???_??????W??? ???????>?OV?64l?????c?!t?T??V?,SAqfS?+?n???I??7M???Y?q?????s?;?|Q???!?????xu???????I$???I%)$?IJI$?R?I$?????W??????u x?>Ed}~??}d7????#?????tG?^?8???=??:k??????g??*?g??u5 +?_???5?M??~r2??"?? ?ggc????CK?0?M?o??pc???/?????????t8??M?????O?Pz?B?/?'*??[?5_N???P?z?r|??/ruu?ko??q?\u????.?]*???i? +?;?<?F???+?_gQ????>?????3????u{?cj??G#????O??X?WS??????H??0??fnn???Q??3?V??y???;/?? +???_e? ??^y?%?u??,???????l????g\vsZ +u????`?2??B???_??_???[`?f?j???g?qX?U?V???U??J?~?=???4???Y8??t?&??M?? &?B?\Q?}???]:m?6???v1?Z??????Ns??eWs?W??d???e??????k ?O??gA??U_K??k???[un??|}p??????\X????}(????????gd0????7T?d??%?'c??D?V\s??????????????N?+??>? F??9???u'??4kg???k???$??,???[Cl??k[?????X???M?>?g?"??"??{,??????L??Hd?&u????d3??e|#r?_?#3?`e??o{?????OhZ????{k`???s??ga???????????Us m{???s*g;??^??EX?2?ZUm +cG`???? '? ??c????E?I%"?I$???I%)$?IJI$?R?I$??_; ??%>9?????{???h? +D?86??$???Y??W?X??nn +?????z?X?????Xk?k~????????|'?_???Q??}G?2 ???x$?????"???w?]|?%????K???R??'??L????5;?,???r?1k??Sk??V???/?yx???q? ?w4$L??????W?&?*???????kH??^????I$?$?I)I$?JRI$??s???8?Z$????~?}me???c?m???:k??????n-?7?=?h?\G???f+z?-?????9?!?0??w?wY???m????????G???R????3?wP??n?1??rV[?gef;I??Oi2S ??.k??4w?R???C???b???E??x???5?d?q?@z?!z??z?1?-ety?O?g[cZ$?g32??q????O$?bb?f?Z;d?????>%????C?????x?? ??c^??U?E????x????^ +M????H?c???????`??c???q????h/h5???????o??gK?v#??Q?W?? ]Y?:?%??1?????)??w?{???t?? ????????R??e??m1.}N????????????K??{????%=???? +?;???G?4/?y/???}?%?N??\?.+G???n???1?P?S???|?4??g?IK?U??????v8??D???q?e{?7O???????4x???:. +x8???k????=???????3???????gV?Ju:?S??t???4? +_H?{m^A?f=}J??????5?}??? +?OQ??k?7 u???u>d?.?#?Z~?????Xn?????I??5umI?9?>?4???O???B?x?}'?58>???#????u??Sz?X?Z?N=?'?;?w??A?????x?S?f?q?~q????$???I$?JR???O[5c??iq?????????/?n???????P?8 g?)?4????~c???O????[???????f?\>+?A????j?2?????PNc#??RI$?"?I$???I%)$?IJI$?R?I$???I%)$?IJ^u?3??u???'??????C?4x/E^??0?k????C_???e???H??$?/?_????_j?vA???k,??a?> +?Y?[??^?Qo?\?5?y9{???GM????Ik???s{??%??:vR?v6m-??r? ????v|?l????/??????? k????}Z???b?:~A!?w,?????w?%>??;????????<^????1?{?????}a?^??`?3?gr??.??????? ????? [?t\>??)???????%X?DV??Wzl?9??8????@???a????????~e?n#Ie,qn?#]>*??Vz?}:???Y?YPI +?n?n??deg7??d? .6?? a ?K???????y`?9?a)N?2K?r?u??????'?k?N=?~??????Il?*?D??u???]?mTc?\????]?H??VE??????d:???|?D?#?]?h??????#jdq??qu?? ????e8???oN?q>?k?????NNo?7??Sv^.+?j_??`{?ZU???/Q???{??m??Uw;yk?*?U?????u L?af4C?`???+/??a????,???l?F??? r?{?t???????p1?? ??C?~??i$???iu?a?9b?/?_?o3?/?-I???O???8?v?4??? ?B?p?_V>?dR?k???T??8??JJx??r?{?5???3????/p??+?:?t????~]U ???z???q??t&? b5??R???9?2?p??Y]?.????o??\]????q?7?x????$y??X?`??>I?uy\1v}F?????_?G?S???k?>???????z?????}a???;?L??>Xt??c??8?n?p0?|????^?C-??k??`?{Z>??_?G?s;??~??:ys??????}H???Bo??G?f?????54???\t.p?? ??O??m??5??pe????\?S?e!?????]_+6??}??e?'?,?m +????cY??????^?Ct~???5?x?v?w?x??????}fc??=r??6???\{>?/%?~????|? ???_X>?H??|9?u?i?????????/??Q??N??M?G???? ?????Z???????9?C???????????u?<2??? ?~??_???G? ?:??}?j??RS?6tl???h`???!????????7????#?`?[???U???[??b5??? v5??]?|???}a??U??9?oa?K???;??B??F|Q?'Bf???12????{???.?lbd?+f)???w???:oZ?? +F?[?1?T?q??'?`f?????$?s"?Ib}b??`????E?A??U-:??nq??h ?DY4<_7?y???y????cR9??N??zf +]??:?????<{?/?^?X8????V?;???I?w?????fR???O??$?I??I$?R?I$??+&?Lk2ov??is??^Yg???Uu???f???p?m??;???i???k?k?_?hi??n??-??(?`?8??IO?t??}?????NA??}??/_????~????)?8???p??y/-????X-X??.??}u?????r????b?a?7???%9?7??????,?sq??jw?sGc?e?g??N?????w??c$c??]8??yw\??u??j?xm? 2?????p???T????Xb?0n??x?I??x????????1?s7h??c??8M??|I?,?????#??:??vwZ???????;???;??11+??1???\{y??t??9??_??41??B?/3??+??????[???ys??~e4{?K??Mn8#????~??y7?>?"???~Eh?k?}r?m?<???.??j??+cX???-??s;d???Q?c/?G?xg?;qou9T???4??k??x?ycV???-????[Eo$A.h&^W?????c +c?I,:|??????=???9x?'???_?dG?sd?v??V?H?.W'?vEU?????;/?? '?/R?M??tY]d???nM? +N:~??y????z:??RY??????X~>C ??p????z^0?r4?O??Q???? +??=?F? ???v??.????u~????4{??`?|?~??t?4~???~???`?Of??W?????KFvp???????)????C/? 1??????8??}k????E?# +??cwl????B???O\]? ??^?@"?yr?Z???,?{z????4??V!??y????V??_Y3???*?teM?g??zo?M???y??y$?*= ??.?Q?????U??kI0%Q?9?O??}??`j??zO??2}????z?T?bc??}?k?I'??u??9???P???n?E???w?V??????T???;Wd??u?zm?F?m@??7.W)? ?t??L?#?f???7_?????+?~?t<~?????W?6????W???Jr:??? ??????'j?????I%)R?:???????????!?V??*?b@????_>?O????S??\82??y?f}j?yv??.:z????O?O9?euz??aa+????U???Xx???I?J??????L?1"@y??r?Q?Ic??!?wO?m????n;F?[??q??9%s?/'??2pK?kH-{G??????????}`??}n?>-f@??????>??t~??lx??????Z?????O&>W????03??[QVV??!?D?u????????'%?6???n,?????e`UY??UG??g???}xoq ???????$?W?$?IJI$?R?I$???I%)$?IJP???S?p????y?????r????vX?%?\d?o?m1?{C?C??!?PBJ|g?t?6?a???????]W}???.W??mv??*p{%???}~??;??]9??-f1??F????R????? ???e??????%=?T?8[????????%????????/ ?=^??i%?;??0?W?:?YI??kjq??lx??????p:?^X??(??M???))??g??>#u ???G?x??p???????u?????C;??s?]????I?o?? Y 3IV??t??dV??e?D????OU????C?A????U,??:??!?< ??F???/???L?~i{???j8?u?>??J-{?\?2???I$?JR?>?1?????????5< +???y?????C?L???? ??G?J|???8E???~&S????0??? ?????7?}bv??m??? +?67NJ????}O???i??$?n????????????|#????>? H?k&???/9?>??????WMg???m?? kp????.?????????E??V????G??????.????? ???Y??d]^~%V;:?5????Z???n3 ?_9????n4*? +n??o??oP?????}o:???~(??Z???zuy/?}? ???$????? ????>?0??7????5?O???2?c'13?=zx7???{?l?*???????'??n{??u???:?cc??eu???]U??6>???????~???P?:d?a???????/v??G$$c*????]??b?}X???>??0:??Y?c$?????%{oN???7 +?,Fl????|;?<\\|J??[j?? +cD) N?jJ?M>?????e[??%????{???u?????\?x??}v??2?uU;?5KXK???d}a??-??V?p??????R??????v%6=???i'?M0??j????3?w1??>??y?*??-i???????1?{?e??+???t&tN???6?`f??T? +e???????6.???V(#?q??vr?8?t"?O???$?9b?+???n,?2g848??x\?_??V4?Z??0a??????????^OT?f#~?????p??????qG,?'?????+??JV??I$???I%)$?IJI$?R?I$???I%)$?IJQ/cH??'????V?,!?`.s???\>?gu^???{_V=N,? ql4c?IO?. ?ft??????3s???????%??w?eu *?GUa??i????? ??????\qlm?p?e/?ByiIO?W?s1?g?d`?J???????=??Wc,cl???p??j+?~??RW?K???/|>??|????>???n5??(v8&v??????a?S????hqcC???j????e?N + +.??pcZ5???+?Y>?u.?i~]????c~]?i?*~?>????9?]x,?c??gw??S?t?F?`c?4)???? j??????wO[f?3W?r??_3.?????:???h?rDiv{??,g??????K?t??Y??????mm?#qkZ??<- +?~???G 2?Op|u????U????????t>??--$}?, ,???Y[?????p}? cX8??z??\?`?z?e?/??S?nM?u,??????{?k?9???/'???l?FNNM7??? +?6>Fs??}?e?{???9? ?????i ?1???N+"^???V+h?x???e,.{?Z;?C75)? >\_?????#??&vc?A?\wP??*?N;m?0??%?i z?]??J???@{??h=?{/E???3?4?O?3???????+X#8?z???//?p~?V????}L?X?m???? ?????*?????IW?????~NS?u0jO ?fE???]7 ?/?c|\x^7?????l??_c??|??????uK}????*gx=???/???P ????h?))????m?]a???:?? +??+?@8,??W??="?F4z?????V?JR???W?_^?8?J?k9c?sO?\??IO??A?*??????? ????B???9?7??A?7 ?\?!?^??????cu?L?C]???;?p?3???:??W????Jk?^?2??Fe5?V??$???W+?J?????5???. +???p????&},j?:???+?Q???vVExm<1??|? C,?b?r?s9??'?[?;?OG?sm?;2??u?[>!?.?@8?FF?/??-?dK?O?/7??Y??n%?eS??'a?????9u?X?*???[;???k????Y?:?S?????? :?o???8?????????^?|Z?}?0?0I????O?????N?e??S??X????????T+???????????M%>}?0slwT???5SY???q?}?????pzvWT??&?????'C????K????T??T -?%?x'?????zp*????P??X?p x??#(?d??DN??????|7`?????#?)?4?]???WS??9?p?? ??????~????~1???sX?????I:?2??t??U?!??????\?gZ?]{(ca??:T???Z?Sc??A'?4{Z???L3?3X???? ?L????????W??^?????>KO ?`??i??7h?u?R?3?]O????ky??????zfD +??}\V??4??e?Q?D?]??#?]*I? ?k>??????/??I?D??-p?Z?s???$?O?DDE@t +\G???]????FO???5v?{X?=??$?????:?GP????eL?????i????@??r??1??=?R??ck?????`-.??['?5??!f& MC?c???????????S?X?uX?V0?.?r??xyx??F?<?^Z at Fy???=??????:&??d7???'?r????????H?`I?".??bgzx??@?}??'?[??V?Un^=X??u??X ??D???e???V +g?Ux?)?T?[?}?>?q?H?P?W\W?Jrr h???;>???????-?wm????y?#!?????{?+`?J????V?????A?e????wy??IO?*?Q????p?]??rD??Cg??? ?????wX??v????5??????^z=u]h???Il~`?~+?*??9???n&?????U??????kY??/4???h????8j ???:GR}????E8?F?}?q???f??9|????e(u??????W/?_???:?e???????H$?I<&??nE????!?"_a??=?n?_P?}T?m????Y;wwi?ZW:kz?Q5?????p?,o?BX???????????l????g??g??~??????1???I?`%????&@8 ??????uRI$?T?I$?$?I)I$?JRI$?????uw?~???X??_???+ey??????8Xm??X\????S??T?m?'[ ?????m???k??q??h??w7?<,||?T??????]I?????~S??'??A???f[?5?????-#???z??Ef?:1?E??:????,???S??X]?&S?????L?fb]??c????l???????e? ?AoN?>?U?{a?????U???~?g +??&??#@<?J?o?O????h????)??d?}2??? H???#????O???????m??c\???`?j?????P?n3????s?8V?q[?W????{???>??SS?;=z6.>-B?z?Um?5?? ????P2???~ +o6j?Bp??!?x??>?t??)??5?E?_\?O??z30?Cwf???x???>\??/c???9?ZD?3????@?{??????D}??U????' +?8?p???lq????r??????D?????z?:?????>????6??~\.?????W???0\X????:_?????OQ???\F?Gp??|???K,?[j?=?OC?e??B?_Y/?p?????nn???]9???0ia??'??n????????2????????????f??????!?x?~*(??r?^b???:??[????d??C??~??e\1s????[?uO??r??~?=?????v%?????~j??????k???C$m?op???>*????G???.Hi?&]?w??s?[??c?lgc?8Y?-i?+??w?f????9??4?P?F??2?????4? ??h???sh??????I???????y +B???+? +?TrrsY???K????>?????.??}N?}`????J?xqd???????8}? 1??m?????zH?0?2?????4[??XL???Z;1?+ +]]>?\]`??<5%X +?z?F"#?3Ic???}#?d2?W??'c???c?V?@???8??H?5?I$?+??I$?$?I)I$?JRI$???I$?$?I)I$?Jp>???}X?????4??/???v lAz???e???c???????O+?`"A????^???7U???;%;h??o?N[?s???X?"?}?nE?2???N???s?9Y?????X??=?&|z2sna?????????????{????F!??g??C?S????i??u`i?T??v??????u_?;?0?SMx?*?`??l4v ????1??e???+ +k4 ? ?????xvf??{?eM4???j9?"7W?W???LxbxK2???@??}K??????5'V?Y????????zwM?U?Cj?????6?Z?:e???Xu???J???S=??a????GqIP??$ +?CA????j~?u???????T?5???[?U?????U???? u[98??urjm????HT?_??6???????*6!?.=1L~?K5?\?????4R^G?4.a??{??{|??Y?dC;??????????Z?:?? ???1?????p????NW???,?ygq???>?n????^#10????'???V?IH?y????v??[??????5m???1?Rr???,???_??9??????OF??c`R????>?????^U??P??????$T???UU?X?;??????u?p:;? +?e?T?X?3 +???X=??\?? ?:?^?=b???E-$?H?-??=c?f???}????vk|~%d?Ct )?? O?{?M%?Y??\op5????w????=?Xz?]2???????G?w?[???d}????m9? + >??g???$??Iy???????\?o??6?????u???2????9?G4?8$??I$???_??????M?-?? +?kH??????$d???zq^?x??>i????$???-?????7 5k?????? ;6??C??p??U??F??? +?&?wUsG???? ???K???A?{D?`?J?L?k????.VR?????_ at Iat???k??????>?q?k?????42Fb?m? ?b?mt?T??Pf?????m??6g?Pr??=????H9?J?G??C?fN?? +!gc??H?HN|Q?R?-?G??c? ??????} ? +? ?<.s?}l???a9??{??O???{~??W???[\cvC????R? ?t*FV???? ;??????????GA?)?????(B>?z?z}???uK[?WfI??u?kH???t??C???^??j??m? ??????6Q?v??;???V?/??=???p?a{G???_??????l{/v???????????!????}2????? ???V??????}????+ ??W?l??[_Y??Z??d??O'???}j??]??.C_hG???s? {\??v?x??%??6?G???I$??)F???:??k$???O??Y??1?N??2oc??w? J?? ??l??*??:?i?s???fd?&??????K?6???n?7??E?????5?O"??M37d?Hh??x??V? +X????m-??;W??????-??? x?????a?,v?a?,a???????V?SW%k?.?D?t?_????IO?????Fn-yT????????U0q??????7??'+:$4~p??fL????M????????|?b???{?????}???cd? %'}K?n?e?xX??Q???8???G?@?? ??_??96}??k??+?X????/??~SE?I????e???]FH???c??wx???\Nn???>??[?\Ydr?h?????zF ?Z?6?8nqd?d?X?????m/2E?{\ ????s??n??N-???1??:?M???uS?d?K??3??????gQ?##?Xmq??:???"?p???FS????C>#?G?Q??%>???Q????e?K??-w?-E??'?????r???l??Aa???afc?b?????Z?~>)):?????i??V?Z???????CU:?M???6??7uW>#?!!al???????K??=N??qX??#??W???`??[???^??mz?=?x^Q??GP????n??y??7?[??u??5t??~?CG??$?!V{?!???p??F??(???{?}q?eu?C?$?F?zC?c?t??q???<~s?+????ft???OR???X~?G;X;.?;.T???[7???o???M????V???8 +?l'??????/?6???????.?N??]????J?iq?????????ON$????(?v7??????eU????VZ<??3???B?m???:ymc?7?]JRI$???I$?$?I)?>?}D??wvMg??F4?g?G??????^?{???d???-0??%$r?"???(>[?s?S?7&???kSN?c?w9??s??1?c????8)$?)?n?$?I?RI$???I$?$?I)I$?JRI$???I$?*??8?C????#??U?&??--???W?}P??????A????{N1?U?l +c?w=O??Au???d?R[????a??W??C??U?????1???????:?x??LB?(????r?>??d?}7m???? -{??:.??c?`?a???Bq??*???m???? ?)?R???Y5? 1?? ?`????s?|'????????x???D???~??W?????ts?x???7???#V?R?*???xc"#?R>??_??[}?fT?zj? +?4???IK? 1G???OrY?'u.??Y=+?Y?????????^??????t_?=??G +?U??^{?z?WQ??u?k?n???5U?D4??0 +I?{+[\!??-U?/???@7kn???????<#??1????kf}????????Wg??1qn?p?)c? w?%x?Fm?O.??y?2\_?f?k~A%-YWq???i?c?_?ckk?m?Tk????P??U??????????y????????#?@?8/?5??;?x??I$????j?????z?y??kv??$???D?"?@;?u???e????|?R??eT?????????!????H??}R??c????}-?? ?? ???????????V4?I=????r????b?By2?? `=1???I$???.c?O?\jq/??.???ia??k??vT>??l???zN?????33|?????L ????>?Y? ???2Gw=?~ )??)?E???^?F??(??\??G?/}??Z? +??? ????)ifFLW???G????0:GN???J[??????S?a?w?1???+???7??;J?.??G ?dW??3m??o ^????????????????!x??????@??5?$?6?-???????IOZ???}`oC?f?{??>?;?G????^_?2?{??cV??P\?v?JJy????{????=?.??>K???iim,mm&Hh??%O??ln??)???J???????~%h$?$?I)???5??+m????c?o?i?U???6?6?e?6??N????G?B???????u{2???N?S)?`?t???z?U?S)????X????$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?-???k???v?????Jp???????c??@@??????Rlp?q ??+a$?]???Y??&?#? ????hn5,???$???[)b}k??WA?????????w?? my???u???P????R?}?S?FNfu? ?r?,?b??{??A<4/N???_?U???rl????|????K?????????????@?'I$????&?F???$nu??k??????Yj?X?$V=3~????1??O????????@n?YU???`???b? ???oxp????]J?_???f????????????T??Y,w?????8B?????qs[v?:}-RRQ???Gd @h?q?!z'????????>?i6?[???>K+?`S?r+p?pL?v}?????%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IO?>??\???? +?_?q?5??t?:?u?_M:????`?=? ???????O??G???m?V???S??`{??=>?C:??:?1??g7?`??}|???T??h????b??????9]?b?z?mF??i??u???l?7?3????X[&G?!???:? F????_?>????_R8U???^??? :?F?\l?????.a<?,?\>??3?u???_?t??`?-h??{?????0z?=I???%?Qa?????????Q3?"???C????u ,?}|+??T???"V^?Wzx? ?1??fVD??;l??~? +?>???????5?Ce?p:B?~?}f????_??????z?{?$k?2???????y???\??Z??g?j???w?6??xK?o]??????/??>?tg?7??>?dv +??O?]F??w???#7.N='?5???? ????t??.??ee;}?h??E??W??oS_-???t,??*??M?0{???ww9i$? RI$???I$?$?I)I$?JR???u????????? +C?t;??U???\?S????q??A???? )??>&_X???n?'??9?^??zf?J?? {+?????y???8????G???`?? ??R?I$????da_A0,???y ????g??+?'w??nq??dh?Qy[]???^?Amy-??6?k??IO??=?xLe?H at qs??nt/@c????P?>Er_?=?????H?????y0d??%?????(??:? ??;?[>??+?$???WQ??????p,?N????%?x???????y? P???9?ks1?? ;?,ht*?Z??5??IK??I)K??}?+??a?_e#fS[????????? B??????0???1???M-??h??~i+&????? W =?(n??T9y?%u?C?XtoU?<_c??l??_??zub????[????=???????Xz%]N??C?s?????1?C?3??Tsnp??????J??????????HG???_????H????}O??aY???/?????t??????KAsA$O ??-???swm??????+??A?????z?J????? ?u?s?? 'T!?????0!?????+}U?2??????q????+?n??????/*???z?X????N-?????????????y+?T:G?l???`[??VM +????e?{\ ?(????????????????????}o???K??[??=?Z??5???T?U??????e?&?????????"v???0z?K???D?0?u'?????Z}4?Hja???? ??H?u}M?c???i??!IT??3?a3 ??+??$????XC????g????7???>?#d????Z?e??~???.? ?91?.?}v???????????s??(i1.h?wK?>?u???9c?Ag?k?>?p????.??????*??7/q?:?7Z??u,i???y??????sz???h9?O4??????]?8XV?&>???q??^CAy???W???????k?C?i????<??????j?w?k?}v???????`e???wV??t?%7T???????at@?R?????v????v?Y_]=?_?+?????'?????>??????Eo?L?L ???F????????H??wu~?}e??????)a?????5??V??cj{?? +i/?5\g???X?= +?*???f +???Z????W??OY=+???????E???????M.??}Q?Z????~?u??o??j????>???V?%?:j?ax?Z?W??????????L??????j?qo???????]'=??V?=?_?????????x]v?o(?+?^??$?D??~W?}a??????}?QNEm??Z\?????????V????/??mVk{^;H??1?? 60`????y?&-V??F?K?O{psk?1qp9????~?7?/??????u???J??:2????HH??h??w???]}???????? ?ev +??? +{??????Y:/T??:??????5? ???6?:???R#??? +?_O??VS*???o??9?i"d ?s?P>?u??rr:?i??????o??.C??????}?u??}????=;?c?j?#???oA?n??????;???????D???_?{??7?z??|N??|???f???sZ?}l??7t??? v?/~??n??h?-??_Y?????mu?^?l???8x????}h?M?=;??lG?G?=1? +G?????+z???8???n???h?;?????J;J?|w??[??H??w???d???H?}4?? +??1???eO?u???Y?+?QN?_kn?5?L???i?t?m?????emu???? v?B????????W??f????eP??????u?(?Gs*??(?c????????????Q/q???k{DC?-]?2?^Y????_?122??@???????8?:6??????4?>????x9V?? +?@<]Yv? '?K??????N??G?>??1?a???b;V??`???A8?Gn +??tN?I$?J?I$???I%)$?IJI$?R?^?z?{???v?-v+j??\K?8o ??=k?tL'f? }*???s?5??J?1?? Uz?{7?\????????Q??rt????1??+S??k?]T???r/?g????a?~????????????t????t??,u???]c?s??%!?'????x??q%O???e??$???=p??x?????3?}M??5?;???;%?ez??} ?7???????K???U?Z???u???2?OM?NE???:|?:n~??j4?^?????0u??@kKy??@????4???a???????n?<%????=z???? s?s?i"J???[??B??#)???G???o{??F????X1:??n?f3n???.?????????!???xO???'??/??????U?~]?Yy???N????5??g?}??t\???2C?;?:C???X???????K???t???k???h??????]???N?mc??????d????????Xs?????t?Q??? GI%??~?fu??=S# +???R???s??t?>?????v?mi???zs??0??5?? ???u^?o???Yu?T?z?7? G???>j?$??????.??nF?O??7?7?X?bG?????????N???6uL?Evz?K]1???????:^c?? +???,?? ??fcu????????`???w5???%??r????????7?r?????*?ET??? 0??]??g *??{D???vy?g +??Y?%? ??????}?H#?H??^]?)?oX??u?????6????Q??;?[8_W????c???u?_'%??Lf?Wv??AK^?@#?S?t????^~??????e??4????Xp?.?f?YgGo????^?????????W^??O+??X?=;?.???q??+?~??SA???F??8B?B?}i???mo4??)n??]????????o?????:??npc????"w?'????o?e"?t??]s? +?X? ??[i$E?yn??;??dR?z?NV-#i?? +?lm?|?K??k?$t?????3 7b???Wh?GU8?_S?&C???????j?????!?,?in?_*????? ?? ???$?[?Zl????|??h??i??/?1????0 +???????a?g??fb????-f??.??y?!???\V???p???O??=p +??w`?zf?1???????c?U?Wm`??_~#??p????I!??Tu?8_Z??c}f????UtY?????S???#?????????3??i??v?d?CMG{????j????/??~??]?s???}@?c/??7? *??P?n6????1??$???e?8????K????}_???~???.???????W=?.*??/?t}`???&?2???8???R??H? ??h????:L??? ??????{X?D?F?????dt????V:vE?Y9?-?icgs????!4c??????j????)???????ly????9?RH?:???OT?X??u????r*?Z?$????L??)d$z~? +"b:?>???Q??WS????[?????D?q?+ ???g??u????8&t[?%{x?W?7?;???f'Z????}?F??O????~?????u ??{?k?? ]_S??3?j??u ?b???X`Ih??b??uL~???}????y1?i;????B??z'G??????}??VYS?%??????~5??E?N?1?c???A at i????7???]?E>q???t???/?t;Y???????Mm??G +}Y??????z???q?So~?c?v???8???Y??a??a????G??#ea?fW?e?^Es;-h{g??DiD~???)???????9???X??K???d????95??.??G?+???~?oR{ic??????????7??`?? ?f?W +??|???n??3"???S??????!??o?t?;???? l??X??????o?^??][3???????_???m?????s????H???????????D%?????^???-????h??????Tt???????P???{?`???|????? 9?]?Wy?1??WO}=5???H-vC=J?e???}1?C1???(j/5?????i +??>??????#?o}{??}/?a????2??je?????? +.]??$?JC????????w7??*??=?-?'?F?xF????W??????]?????e? +? ????'2?[/ +??b7?[^?n ?zGJ?.v&??5????;BCA!?_??&???n?;??1?VO????????W??7?.??+?????z?Z?Z>???}e??}Y}??]?=????Y???o??+%??D??.?????Y[21i???4??? +??h???}f??:?6?"?Y>??W~??????2?v+??????6|?6c?]h_?b}^k????e??????V?????m??u???;?4???w?}F?????,77s????^????&J???cc????????? ??p????????+?0?`????n ????(????@??!?ry??=)???????kja,????O??|:??q???]Em`??h.k???g%{ A?*C??Q????w??3v??2?YX??'?????*??=w??e??t|zkco?????\?='???oMx????d0{^g????znN&.]F??Y}G?X????B?????/O?z?v????v?? ? ??????#?D>???????B???z{1????Q??)??7I??}?Y?{# +??U??Z}7 +??0%t?6W]???Z[?9?? ??;V????>??k?}r??3z?}8??bX?u??G?u??????t?L?v??!??N9@g?i??????Y??l???G=+????????wWI??|Cb]??F?????????01i??9??????k??g????/??????R?;?e{ ?{.q?? ?????r???E?h?emqv?????Z.??????eu1??????.?GZ????????\?????r???\???Id;????????#o?? ????????8P???A???????????XI'?;U?L,<*?,:+???,???|a?$4?x?????:???????t???)n]?Q?ev?}/q???????X?G??d?]:?!?????C?L?W?? ?.?f=m?x?\??tJ?N&.]F???}G??hs~? ,??\__??h?{???}????/???/?s?? -/?+????=/????s?????????u>???I&/RI$???I$?$?I)?????U?c?k?x ?B????T?????????SO?GL???????PD?>??:7Js?????s????'??K???]MW??nh}v +?a?????t?q??Kq?i$V?J??Jsz?????-u r-??atn?0N? " ??m????])^.wM???:S?gN????1?HE??7*??|vU??????|U??S???=??=??d?X&O?????????\LvSC?.???K???$???\???}Z????6?2[??r??????:{???0???%?|!ZI.??/??X???n??p)????n??M??[??nQ???????.??????U;:?J?,aY?S2?R^???K?????1? ` +kD5?@????????.?P???686\{ G#PxIK??`??@ ??IK??0??????I??~n0?k?"$?T?d???i??X? +cli$?j??$?I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%) $?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJI$?R?I$???I%)$?IJ^7???du???a?d?7?dPGr??B?E?t????????,????Ro->???? ?t????h?j'?????q??u????N?? ?r????ctp]_??{????Z???fY???C?q\????s?}??????s2Y??M?????i?????????ffGU?u?????:-?6`>?8???~?uZz?7I???~???[?4;???W??? ?????q~?OJh??!?????H???????~?x}?9@?+,?wOd?EW??|#???v??W?#s???*?L????}U?????????gRuF?:??9^??012?>?gc?T??sF??78?????r~???j?????uB?m?m??[???O????x???+=??Q????O?9?)?? _SZ??? ?l??s?eO??v??}a ?????????g??????????w??,kh??`a?????1????????P??w???kp??????????[??Zt???t????&??????c3r1?w}???Wz??^????J? ???w[@$=???bA???z?? ?e??ex???????q?]?/??7?d}w?yTc[n=S????????p??_???S#??~??? ???????????????c??'nV:?_????m=??j?????:?:?#EG?M??>??V5?cT?,??%????X?C?f??????z6O[?&g:?ul?&}?]??>???O?v'??w???_???o;???????????\?????o?G???n>M?X?t??8??]P3??????;?t???E?%????0,??kI?P???-?????s?f?ZZ?????RZ;4wN?x?? +5[?'????????|??vtN?V3?1????l???n?Us?w? :??X?2???b?K???1??r?g???g??????-?}3????D????^??ic?k??IO?????/?4?????/?5??$???]????????%????$??8?wo???M??????^n?J}????????????,my?I)????%???n??9??7I%>????D????n??9??7I%>?>???r??[?R???u????? ?o????{?/I%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%?U$?UI%??? + +endstream +endobj +43 0 obj +<>stream +H????n?8?????????m>l&?J!?T??T??:????? ?@?i_m/??????(!?l????%?????[?q?????e?@????u-K??3?&e??????>?J???g?I????7??Z???_ +?8-n?????5?< ??ph?&?ZXT\?{?4????n{??-C??6??b?,O???-???????~???/?x??_??iJ?4{??WTw&b??61>????)o??i^???d?O?????&????f??'Z?Z??l?B????i/)????g???E???_,?;~???}??}?k=?????G-????v3??????4^?s? +\Nq????n?,?}s???#??}?f6??x=??X??kX?m2??n??}????,??^A`? +?????n_????????u??S???V|?MN?~0?y??UX???nY???????????/??v,q?H??????{??7??}q}??fw?;?n?'??wew???5??A????]l`??6j??!?vJ ?\?X? ?Bc??? 6????A?'~;??Fl???#<??F???p? =gdG, +??E?f?{#?? f?`???*.???8<.??O?4?=Eq?l!t*>??"???I????V???#?x??UQ????+?}_?Z8%?u???c???|?????"????,???M3j???R??n%?e5?"ML>? x?kX +??i???j7A&?^????o?X?{??v??????p??\pH?? +6??y?|4?cV?x2?{/???*f??_{??v +?9,`?R?????????? +k????i2???X?????{???W?+?5?s?????U?[???dM???????h???9 ?So^O?;y +/?<8???l???????? +?b?% +???Z??????A??Y?T* ?-,6LX*??H?B?(cB?T&?ZR?T,?H??:Re.?:??jK][>stream +H??W???H}???#?*3??$?o??={?vG???????a?pW?|???H.?v??*? Ifd\O??????]9??0?6??W??7????{???????}?????????]?;??D?C??????]????4? ?.3agy?3J???(?.o~ ????rj?????(h??:?x?&??6???Mu_?? +??~?`?}?A??A?EW=??z?;t?????????O?{??&? ???G\???|3}h:Y-??:??S1?M??????)N???T??m(??us???|a?M=??X??* ?b8??F\???? }H???,N???: +N}[A????a??|5?? +??_??\\7?9*?[??Q?o:????h???/?5??o???b???v?!????~????n???????????^?%6$??? +?7??j??????_t?;?Y?D?c???L??b? +S?g?= t?U???(?&?;\j??C?|P???}?|xN?8??? +b?q???(???&?=??m???C???W? +?.-???E?q?????(x???W???????%???ZL?K?[?y*{??V?~?P??a?(/( ?????J??1&xA??:?? ??|;M?*z?K???????(e ??D&?z??< ^?D+???^T?W???Y???e??m?L????R???#[*76g?????D?$??????????\?????Y+?*q?f? ?R???K3:??Z?Fj??,!2??????[?L???#????BFZ??:kqCw? e?s??TN???????rg,8???]EU?????????,h?|qm+??[3??S%??ZQU????{d??$*8????7?E?Mtp?*\$?4????>n??c?x??q??m?M?-???? +???c???_E?a?H?YTu????~????+?6{?jFt!?@ ?`????r|^m???4@?0?~YZSE??+?\?????O??}??7????$?$;???q?5?????q???FV??y???gjK?????4??i>9? ????l7? \6)???c???U?-Q?????>M ???VJ}gX?xW? B?4??K????o?e?X??v,???W????d>???[h?_???wz????oo??o???? ?B?o??( m???,??L?OGO????*F[????VI??AR>S?"o6Z-]Iw +?????FqB??Tp$???P?, +S?E??V??RY?h??Z!_?mq}??M?D????I#)?d???8?{/n?????????2?G?t]?m?&L?^?(5{?%l?6?:???,???I??A?????xfy?}?~x???r?<???n? ?}?d??HZ?|!,U*k?6?P??uhTXOo??_??T0b?zM??9???H?}??_?b?X????E? ??8H??uK~??X,?7 ?>y?oZ[??Fn=?j?C???f????K????t"F?V??~+?JZ2gT#?$hkU2z?????7????????? +??nc??(????h???????????$????D????9y\X??k5????6?????P??A?A??zu? W??0??G???U?6????W74???:?Q???2?R???MO?a +?^??a????0xH???&????_????????@??A??~@"???FA?o?)? +mr#?I?-?????v?2e`OB1?]?N????9?? ?:??E?? I??'??f??+*?~?im??%t??L?+?gQ????f+iM?<6?-??????-?J!???m???5??K??5??@?rz?]??"ke?M???;??)H<[dq?????l????6?Q???????e*??0?f|?2#?mTS???? ???A?????H?&?f??????????????W???????/?;?]?g???9?S?{?|?^[??N????d???+e?t[|$???[}]?k?????>???Y????WK????r??J?:?/B?;?xq?V??????+Q??? +~??X?v?,????I????????f#? +endstream +endobj +45 0 obj +<< +/Type/Page +/Resources 46 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 47 0 R +/Parent 101 0 R +/Thumb 94 0 R +>> +endobj +46 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +47 0 obj +<>stream +H??W]??6|?_?G??J&?????._]*.GU?*;ILHB????_?3??u?wW.kI$??????o??OV?j{x?W!??W???Q???8?????o?u???V?&?)~???x?????D?c???~._??6?km?M?]?j???\??????? +;t<m???9y) +???[?#???????qo?`w??|?q??m?A??????Ym??+_`?4?u??7?K6*??Ur??L)??o{??z&???????C?/?#?&?-???t??VWy$??M??*54?\??mp?????????eJ?o?>W?8y??*?+^K?}???_>M?m{t?4}?9 ??? \h{?@??[????6?????1r?t????l(?b?ID???_??4???lJ??&m??o?Fk|[SnBCKZ????t?????????F}?l?3s????????`12??dG:H?{??~?i??-#_??o-e?e??o( %# +^G??(z???Q?m?2???{`fip?e???E<0CAB??*??g????????????????E0KR???9 c?*??7???r??5ec????l{?V[?L?b????? +q???O??????W?M?LBas??*????????????`$L?(????3????]]v??2?????q3??_?_?LEgF??"?w?$?'?C(???]???hK??????I;???!?b???Z#f?? ?#n\??? ?i?(Y?gb?u?2?&???B?cbR?Z??&d??4U?????????????,R4?GI*?5?N??cB=?.??&??Q??"A .e?9???^?;??r!34??U*???K?????#wD)?'2?? q????N ?#??t?Ct?u?? +q-$????(???}??Wy3?#j!?C'xIb?? ?KL??$?0A?J???O??Y??e K??t?!<2??q??n??K?Y'0???)>2o??^&r??(rY?o?oe????23?9 ?:?V??Z0o???92?{?^???$?P?m_.???4?y?)??{???2?"?j?????97?????? ???????O??{??#?? ?#?2?Q? 7?G?g5???M?bNZy)???2??????9? +?A8j?Da#???Y??d? +?,? ?y?9?_]8?B?9W&27?U??4?????,g??Y:??????%????r?? +?'?"??Pw$;????iA?m???f?w?E.c???1F??"?1?????????.??uQ????MQ?I???q??BH~cy???%>??4??L% *U?T! ??l#}?Z??1R??c???8Ub0????Z???`????,?/?st???B?Y +e?`???&u)??????G0?p-y??*C???Or?|???z!6???E????"? +?k?n?q1fh??6????????????L???%?`??)??89H +???r?%Y???)??=??R? 3j1????-??????M.R??o???? +{? +?^?????k?]??E?E??]????F?k ?R????x???Up???q???x?D?Oz??R???T??I+?e?c&?,???d???4???DS?'?,????O??7z??|? ?%$E?]????????Z*????{3q?4!)?tG???????`??p ?rt{??g ?g?II??f??^?Yy +?????(?.]U???M??1?Tk??uS?F+?n???/??)Z??????????G:??Q???k`????,? "d?e??O[?{2?`??1?L?\?>?)?R??6b????H?E?<#%({ww?? 0!0???SJ)[?w?I???]?S??@? +,??S??z??g?=??????? [?y,?E:?y??????????? +?C?S +?0^?W8?%?~Jn??????????Y?C??W^z??O\??'L?Jd ??P?5??9?????^?Y7E?[???F??I???1?t???et? ?%??????on??c1??9?B}'?m#V??????J??? V?WyP??Z???~F?W?4"?]??k?h????N??????}.??? ?!ODCO??ts???Vp????A\?????^?r?P?????8d?C?Y{???PdCQ???????r???e?i??k??w +?O? +???V???T??mY?H+???KC?tNk?X?F?????K?C?#?&?c??V =fH??1{???T??E?:?5????CF??A*???e?NpJO??,e?G?o??7?v?#dC ?zZ:?\6??#??F????????M{D=?,???\? t8X?V?z?D?N&?7iJf2?? +?????n????_??-????A?\?H at c'?9N?b??H]???r??h?>??Jq?d?Lg????Z???????f??Y1?(?{????q??*?l=?j??Y%??EJ>?!wC????]??lL??????[Vx?q>?0???8M?-{f ?%???Vf&2??U;?G% ?B????~?GTf?j_oIKZ?CKa??&?? S?'B~?G?Z9?[?? +??`~???????N?2K?2???`??T???z_Q?R?{??hi9??"? F .?????????9P ?U????7W??x?x?f???"cx@??z-p??/,vJ? +?!0????l???^???????????z?nYA??p???2???4{????m? +J??!{%??y?K_??????\? N??/7?K?-?vh??{|?6????{&??g???N>?=#?y'???}??????X??????A??? ??D?(1?????AH??????7????!???E?. at A'??E[?yx????????9?/?$N???.?^??3!38 +??Ga????Q=m?/R??)on?Lsd`?$ +??m?ny?u9?>{????G???(????G????G????|@#0w~?????o?-???+? 5f~????????|???????????????<7?F&?Q??WOO???1_?????_?'?I_?aL??,??l}e at h??@j?????????y??????I?X?&GD???F1)th2Y?w??]??=S%?l8)??y??Y_???scr?_??sI??5??@c?, ??fJ??5v?^??;??2??$$He?T?C?/"Ip?6 ?f??nJg?2\?s '4<?a???????2?/2*???q?73?????3?+??L?D&???G???!%?????????)fk??WQ\??? ^?????????a0?4????????????y????3?r?Q???U-? +?j??~??&??I???????#?:??`?:??#6??????Ww,7 +C?{?B??b??q?&?2?v?????x??q???|8?z???????????}??&L?? ?zz!k??vKy???"???fdK?2FB#???[ +??t?p?6v??:?????X???&d? .??^??k??j???,??m??r0???l?<7??|? ?@~? ?????oN???1)k????????L?(??O?}LrQ'???d<$?!9,?9L?~????L_?a.0???:??k?O??>b6???? +?7u?w?????? m i#???.E???#??i?jX????z?????z?^n???z?.Va38?7E?T????9????????kd?v??B?T?p?????3??h????8?z?_Z??I???lh(FC?A??> +endobj +49 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +50 0 obj +<> +endobj +51 0 obj +<> +endobj +52 0 obj +<>stream +H?TP1n?0 ?? +?)2? +:d0???!iQ???v??@??_IqSt y?#??}k?E??M?zG?q?3?+?@??:??d3?2??e?8??{?k!??p?????????;[dGl.??;??G?4 +X??%???r?'?h? + +endstream +endobj +53 0 obj +<> +endobj +54 0 obj +<>stream +H?bd`ad`dd?u??qs?vL) ?u  ????????k?/w? ???? ??y???##??}??Em~????`# + +endstream +endobj +55 0 obj +<>stream +H??W????}????`?%??~\??? +??????FL$R!???>?T?n??$X?????:uN?7??????q?.,r? ????? o? +???q?????-?q?? +???????Xw?????X p?z?????7?P[?X????lXc????????'OX???????7Y +t?k???yp???w???_??O???????????S??_?????V?7i)z?T?E?Q?i?(1#?vvef?R2Po?"$??}??9'???e?g7Q?v?u/W??~??Ap?????^]?+???'?iA@???*???h@!P]????? ^??X8?ErO?"??\?.?M?y?67B?7?lW +???}?t??XD?D?C&}??d?Y?#????e???5)q??????^jO??"l-e????2??????3????~????b1cM~*??k???)R3^??Z'????jV* ^??P +??L???_ +?????m??8?k?U??n??B_??E? +s_?{I?tV?(?I? +$t??Nh?????D:???Ru[1.I?"77?B?/S????B????,??zh?bVv?6Yk6?fbi?????X?????????????s%?uy?y??d?SO5v%?`??Fi +??,???Cif??????q~????-i?t??u;$?L?^???E?\v????(x???SR??}??CLVw?4?,cR?t?m?/5?p?v7?b?v?m]????h???$?C?/???F???????zj???? ??](8?k????k??|Sd?k`????????!%4?p????W?? +????O?%??2?-.????#?4??????3??v???"U2????(???d?a?'!? ?4???8????#????=_/b0'???>??s??J!??$)??g??A?iL3???Hf?d*?? z@????8D?#~? ????6N_??~???? +%?? ??Ej?2EY.?????:?/??q ??+W2???)??AV@?AF??? =?d??????vs??L?E????;???{???M?%?Sy??B?>M??C??h!?????g|kcC??eY?R????5T??5???H?hv????1????J??UD&??L?3?G??P???????K?,sl?s???qL?i ??S??MUo?VU??[?'?fM*?i?z(n?? +j?????????J??f????q????^???????? Mq??? ?pI?N?0mc???@?????R??Ve??V?,?A??e:?2w?W????q??? +??3???SxS??u`%'jaa6s??m??I?#???B?ab?~?????jY?Y???%??4PE??]??=w?G1??.f64?ZX44-Y????s2)?-?????????S??5>??-r,1T?~???????)S????EF??I?C???U"?m???$&????????C?????????F??????????/X at L?????6?o??a?????W?QT??\R. ??7RB[??P{o9?Sy'?'=;s +4????h??O??I7c????????ue??O???XF???[BX??=?5c? u???&???[?I6?b?n??v??]?tE??)??? d??-?5i??[ R??X\?????A?\c}??f&??\xabY\2??#S4Tc? +u???????!?+?B??a???xyN?,x?v????r????n`?? +??{"??)???m(F}?????S???N?Bm?_??P? ?)z??$?!??Yt?/???(???D????0?<5?? +???&]??"???/?C??=??^K}U?+?G/Id??E???/? ?Y??p?>U#??k???? ??)??? &p??f? IT?????<(?X?{??T?????????i4N*z????9u???v??1???$?p?????+????F????????M`}??3?y??i??(I?N8?NX?y-??-6?{???X?????S +5?@ ???I5k?$?mh??9?????x?Z?*)"??_????????/'????????`I?IbP{?gI??9?r???????>]? +?0Jr~?M?&t^??g?xRk?/????Jr?PsYWmY??e?G*?????lE?L?:M2??_0?4?E????FvJ???>???fG9a:d??2?W?i"?r]'??@?,???pz/??f@? C??F?8kb?U???w???F#")7]??X???D)M?????mMv?Q?3???8?U??(F?????????Wp?(?)?~? ? ?P?/??.+??%8?????5T?????Y'$,?z???????M??bH?????????1????0??|Mi??B?E??W?F:???uW?n?0??+zt?&???&? Z?6I??(???$}?H???0???? ????3?E????)z??Z?cU68w?X?V??.D/?@??n?7?d?#=B??v`?}\?a?T??Q:l??^????(????i1M??? +??I?F?XZ(.\??S????$??)(???d?v/?a?????R?n'?0S + +endstream +endobj +56 0 obj +<< +/Type/Page +/Resources 57 0 R +/CropBox[0 0 630 810] +/MediaBox[0 0 630 810] +/Rotate 0 +/Contents 62 0 R +/Parent 101 0 R +/Thumb 96 0 R +>> +endobj +57 0 obj +<> +/Font<> +/ProcSet[/PDF +/Text +] +/ExtGState<> +>> +endobj +58 0 obj +<> +endobj +59 0 obj +<> +endobj +60 0 obj +<> +endobj +61 0 obj +<>stream +MCHLNP+AdvP4C4E59? l???|??????? +C19AdvP4C4E59?!??? ? ??????y?y|????? ?-?y + +endstream +endobj +62 0 obj +<>stream +H??W]S??}?W?????Cj?o????!????L???d??d&?????{n?63coU??%????s?=}>;?p? ?`?tbG? +"???t?S?6NGF?d0[?|?h?A?????J?o_???????k?E???4???UH +2P7iL=/??]??!T?v?8?dY?k??FQ???q?j2zp&?b?????iS-??6??)?+?W???T??D +??MN?+??u???n4Ne??h*?FV?I??7?????uli??1?#+?hL????y???E??M??T4????? u~p5w?.?;???|?O?????(? %? ???w?????@0V???}Sj????OD???????u????%??j?z<;??4"%???(?c??b??q"?? +????cm?U?o??Y??=???"?6?d??l???f???zl???????i ??Mx?Aa4s?????(}????????;o?w ??F?? oL????M?W??? ??dy?????W??z?????.3?5?f?B` ??????????????d??RH5???=?jnj???N?p???$we? ???5d???H???'%>?$3x?Ov?w??m[ +d]'>$???({??????^??4 +????=????a?S?D??U??r?u??<4@?W??-?R???/?????Ue?w?c??[??> H?e????x? ?????Dq??H?m.9??????8??[F??cvG#???????|YS$cb???P??X1uyE'?%2????E|+ ??????/?6???zb/Gh>??D?E?i??Z?w??J?!y?`j?fSt,?:?37??q(??Nd2@????;??K???M? _-?I?Z?me??p@I8???-?*??????????=l?EZ^??????T?*?????_?VQ?$??:??????/ir?w??w??1?k_y?,C?*`??pn.l??V?[[?u???,2?P??ZT];>hXr +"?J???P%H??2?"????? ?9?m??yllG????eg:?h????"gyG>???????wv0/*?? ?y?y6??j???? ??V??*????K??B?S2 +??p??O???0??z?'??@??z'yd?K???????M??Cs ??.p??b? KA?? +???>_?C'%.?Y??9?e +f?DUf??????????x{z?????d?Y???x???j?k??? |?= ??????? ??Xz? +Mi? +?vS?Ha?n?%??R??B?g???hw?W??@T???}?C4????d"??:?o:???xT?>*_?9k]?~????7~?8?f????z?hc???7!N?????O#??? ?[??P??)"}t?+?*??*???$4???6(;?????? +>j-3?>???Y?v"??????d9 +??O*?????Ls?\??(??-5 ??i??????????xm`?????/|??K????1??/?M?p?????uU7?k?)?t2!J)E??7?|L????.?N-`???PH?????lt??|?y?e????#8???c[??4?'??fF?6?a*l4N???????????????z??V?H??+WvL??G??/(Ik????)?`???d??a? ??r?w?j??~??? ???-%? ?????!???I ??????kR???T4* +Vo:z????!'???&?N>??v???fKG???b?2D7?M?1?(?"?????:???0=??3?H?g^???e?H?????{?g$???? ??????%??%/7?3OA?b???p?^B??????q.H????k?2??a???9???e]?? +?_????Y?d???P*>???%?u.?gjK???b?H?#?? +?"????4????J?u?> ??0P?????].M?cI???????????^?GUU ?LOu?F+?-B??????s2%?6?*?????'O~???:p??mT4???o?:x?$Wv?VL?????~?:???!8?I?;??R??? }??\??|?)??? ???h_?sN??B??"&aI^?????W?????"?fU??A??????**?(??9{PA?n??&V?YW1g?yoS3H?p?bN)???Y??X?Q?M???m?s??j^a?-??LBzf +}?!g?c o8e77???1?E?Nc?:k???YZ???Qpz)O??????E?U!k_{?mEP?6? +p?????3vP?(DV????? g=??u?$?G[?A?8? ??????U7}??5??EUj?]?&y8????LH?x _??8T?A?m???i(O ?F ???????`@>?O?yB????a??d? ???????????C?D????p????????W?? m????M?#-?0??/R:??=???~a??????????????'?gYs7?r]?O??t???V?<+ / +X??EB???{Nr\????????;cl???"H?,8v/???f HH'?b???-?????Z$???Q_?vL+N??0?B?BM?c ?z??VJK??0i?|?t?Y??"!w??#~H?H??dQ?(??-#????;8????????&????'?J??????~????N???2?C?6 ?WZKq???6??{ ??:?U????5????A???ZTk??????L?x???XyTW?(????Ay?T??52?Bg?}4????)d??????C#???J???L??c(? +"?'4??5?mv ???eN?u?+?s?M??????}H3????y??????{????3 R???\j???????!?."?d?By`???????-??????Qs???7?xFa??2???????N??? ?+? ????+?%? +??1?s?%??? ???m}>X5 +i??_?u??@/*?7?ML????oyoP?? ?????M??*?-w?TI? +l??????/?.?"&n>?&qj^??1N?_d??@?cM%?c???a????x???n"??U??Q?c?GC?b??3Qp???????7{z?????f? ? ???e?? vo????Nyw? +?m??i??M??????+$?\*?ME`|g11????:?0?X+?f].5?9?????????B????e???E +?;?i#vH??} +c?^?Q????u?j_?#+???W?"?g?8???o???jV??A?1????%?V?r?C<86#y?""??????????$??E?Y>?]??q????`??h?4>H???????a??bD~??J?????+?~L??????????G? +???W??n??(?S +?9??!??'???Pd??+^_Ny?&9Q3??Qg? ?t?r???O??1H?o8?i???k??l?\5}v?1 ??;$C???[e]??????*;)?2?(???R??o?11?y??j<$???m?????&????T??Q?c3? +E?`q?W8xs??#KD???sv8???p-7?e?yK??J?U????????>???{O?z?Bx??7F+m? n?n[K?AR???s??? G.q6*^X??q?jo??p?c????v,?????9v8?>????^???PGzW????O?G???6??]?!?????.????c??*??fY??F????1??}c?U??(l)mxA??~?>??wX`?b??e?z????)]?*?6?v??`_J?1%?#,^??lh??*S???K5?a"C??w?-? ??H?6./??ba8[e??^?4?????CR???? +????B?az/i??U??O??q8"?{C?>?????E ????????????q??yK??{h;A!??D ??[??????fUIa??VL?K$?NDF0??=???l=?=?[uxw?0Z??C?????nH?OtjTm?%?????v??????Iv2?:T?0i??%u??w?Tx???cZ:O???=m^?? K?%????r?"k,D???".1?7J&d7?v?? +2$???$+? O?K?>??#?Q)HP Z7x??.?1>???rG??k??q??K.?U 4? +?G?*?????|KQd??? +W?e? ?????I?w??u??ZJ????d?????? +D0|8?q?? ?????!??c?? +?3????4r??EI?6???????a'? ???1???????? +?/o?Q?b\????w?;}??t???$?g?? +?[??=???M>stream +H???yTSw?o??????c +[???5la?QIBH?ADED???2?mtFOE?.?c??}???0??8????8G?Ng?????9?w?????????'????0 ????J??b?  + 2y?.-;!???K?Z? ???^?i?"L??0???-?? +@8(??r?;q??7?L??y??&?Q??q?4?j???|?9?? +?V??)g?B?0?i?W??8#?8w????8_?????Q????Q?j@?&?A)/??g?>'K???t?;\?? +??$??F?ZUn????(4T?%)????0C&?????Z??i????8??bx??E???B?;?????P????????A? om??W= +?x??????-?????[???0?????}??y)7ta?????>j???T?7???@????t???`q?2??????&???6??Z?L?????_??yxg)??z?????L?U???*?u?Sk?Se?O4????c????.??? ??R? +????-??2?5?????? ??S?>??V????d?`r??n~??Y?&?+`??;?A4?? ????A9?=?-?t??l?`;??~p???? ?Gp| ??[`L??`<? "A ? YA?+??Cb(??R?,?*?T?2B-? +??????n???Q?t?}MA????0?al??????S?x ??k?&?^???>?0|>_?'???,?G!"F$H:R??!z??F?Qd?r 9?\A&?G? ??rQ ??h??????E??]?a?4z?Bg?????E#H ?*B=??0H?I??p?p?0MxJ$?D1??D, V?????????K???Y?dE?"E??I2???E?B?G??t?4MzN?????r!YK? ????%_&?#???(??0J:EAi??Q?(?()??WT6U@???P+???!?~??m???D ?e?????!??h???h/??']B/??????????a0n?hF!??X???8??????k?c&5S?????6?l??Ia?2c?K?M?A?!?E?#?????d?V??(?k??e???l +????}?}?C??q?9 +N'??)?].?u?J?r? +?? w?G? xR^???[?o??ch?g?`>b???$?????*~? ?:????E???b??~???,m,?-????,?Y??????*?6X?[??F?=?3????Y??~d?? ???t???i ?z?f?6?~`{?v???.?Ng?????#{?}?}????????j??????c1X6???fm???;'_9 ?r?:?8?q?:?????O:??8??????u??Jq???nv=???M?????m????R 4 ? +n?3???k?G??z=??[=???=?TB(?/?S??,]6*?-???W:#??7?*???e??^YDY?}U?j??AyT?`?#?D=???"?b{?????+???:?!kJ4G?m??t?}uC?%???K7YV??fF???Y ?.?=b???S?????????????y??? +?? ???k?5%4??m?7?lqlio?Z?lG+?Z?z?????mzy??]??????u?u?w|?"??N????wW&???e?????*|????j???5k??y???????g???^y?kEk?????l?D_p????????7Dm????o???1m??l?{??M??? +n?L?l?<9??O?[????$?????h???B????????d???@????????i???G???&????v???V???8????????n???R???7???????u???\???D???-???????u???`???K???8???%???????y???h???Y???J???;???.???!?????? +?????z???p???g???_???X???Q???K???F???A???=???:???8???6???5???5???6???7???9???> +endobj +66 0 obj +<> +endobj +67 0 obj +<>stream +MBKNAA+AdvPSMP13? ????R??????? +AdvPSMP13BCSXW?/s??.???%?K??????????0?$W$?V?K????C@?$?? ???0??\??\?? ??3? ? ?? ??????d???\0?vS{`?v_{kcg>O??????????z??[x{q?r?|?s????5G?Ky???w??n~?L2G9?'? ????????1??h????????R??????????AC?d?sf?????V?953YSSTp??S9?En?R?o???????b????????!?P?@???????+?/GYlsvtovVf?.???"?&p?y?5A ??*?????????"?3??,???$?????g?p?j???_??.???^?K?i??[?}??4z???N?S?r?W?q???7?r?Y??Z? +?????"?????????'?_h~?w?K?LgHK??J + +endstream +endobj +68 0 obj +<> +endobj +69 0 obj +<> +endobj +70 0 obj +<>stream +H??UkPT???? +?:?xg??x????M`?D????j??I??Lv??O?????~C?:?nm????s?|6z:????????mq???????@??????1Z???8???(????l??nN???JC ??)dD???G?PD???0?????=????Q?}bP???8???8??????@??}?{?????!.???(E??Z?W?+?#??PA}???? +???K+*E??????? +D? ???G +S?????? xo?/?t??,??<.z??dis{?&{?F?Q1?;?PyG?{????S? _dG?7p?8]??8q0aP'? +m P?/N?8{W**??'?????.s??OK?l???q?osk?@3 ?u7?/c ~V???[?P?g%o????'i??0?=?AJ*??R +F\???&%K4?g???1;?)????l(?@$????]o?a{?????C?zr}??G??#?; ??pA??x?n?\!??}??????+?w]??{???????+?c???GXA???|????????=????-z??$?$X +?v????+???Ok??s0?/????b?b?p????????q?F u??s?????4b1??g?????????]? +?B???=Fs????MR?????Tv?}9???PU??WU?Q?>o[Q????78???@j??>??h@"?D>^?tw2%?m ?vV?X?????,*??E> +endobj +72 0 obj +<> +endobj +73 0 obj +<>stream +H???7 H?|?";??s?x?C??|?H?)G????-??9????2?A???g????>???Nc?????@???????n?~???'o?{{???nA??3 , N ? Y?*??_?????L?Y?-]??9v$B??.??!???? +??G????0??d??????????7??a<:??]??1.??Y1?\"??}??"???xYEX??????Gw??)S?$???2E???????`?@?C????O?\Z??[ p?]N'W?~?????????&/??????J?9 at BN\???p|???? +;z??????n?_???{7v=??????I????j??????o4?;????????GS_??s?g?< ??}??(R?????jh??????f?#?E???XN??6Y???:I????a?q?:6???8???4???=? ?hQ +?(?????h?,\????p!N??$T????????u?$?h??*??q?%??K????_??????wr +?qP?C7?[??Z7>?M???4:X??????UY`??r??-??f +at ?/Wc????#\??82>?&I?'?:?????A|M?/???7?u?1up??+d??c????XO??s???+m?\2?H????L??j ????a/"%?Ny7????7?Y??:???N?1h ?S8?-xGe??????????X?'?N??T?M???2?7??????[??J?F???? +????X?YK6?? ????Y?36??P;vRy???2????f??"?)P?????Az??@n??]=??!????1?-f#?-F?h5????8?L???'??????3????]]?*? +r???????p +?#???^h86?:??R?bPu??-~!W? +h{o??r?@?????S~????^??V?eP(I?N at u??9pIOIL?V%???#o-???????V:????H?&????????:??=U?N? ?w???N?n{1?.?9?????O??G^?????)??????R?????6dh??r??n???'#???~??^gkF????2?M"????1X??}?Vy->? +xz-??q,??&??0???O7O???n?9,?? ,b5?$0???F?R??;??;D? ??("M??????r7?lb??T!????\?_2#E +???$??(&???]??w???7I?l-u???????5?B]?$??=?5?f??n? tm;??3z??1?????z@^ +W?*T#?????7?;k?4?Y?}?????"eyG=???eHn]r??????|????iv????3?u?;&?c?eobf???E"??&IK?? +?++)???k??^}??D%A????FD?0??????H????o?.v42?J%??&?x?! +X#???A-??J???P??????.?S?F?'?????'?!??s???????D?????Z????N?*???c@#f?H?o?c&??A?'?;?Uh)z??5$?j??cU1hz?a7v;???>f??lqG??F??? +4?t???/AmS5h????f;C??Q???J???b?J?4`VHe5N?c X?h???Y?n???6?N????h??? ?`??bB?z[Fn?&g???????\?\}? +yH??J???-L???q7????g?i_???? d5 V???mS??n? ??.n2X?e???????)?]??? +?????DeU@??????3??:?>??a????>R?%?~??(?@{??@?r?b-D?q?Y?7?S???Z]???=%?Xo 9???s??}S??-??O??%qK/??0?i??h8x#x?+%? ?)l?k??????W?`k????/???1 L?` ?(???&?x0Q$?b5?`%?o??y???Z??K??P???A??18???R_?>???`?Lb"1Z?!? :?&??(L???H??????a???? +V???j??v??N???i????f?? +?\>g?P??(-E!??N=~? +??????_-7??????????? ?4???ncg?!??q:@'???0W???j?siJ[???Nk???L:cc?X8%d"?????y???w???Z?????F[??6G??8????????????c? +?T???9??AHI)!?K?XT?!*A??r?b???rU?|?n?? +?G??7-???32???YT?W?i??a?vVn?w????? +?~$?WH?1?K??i??U????? f?j| + +endstream +endobj +74 0 obj +<> +endobj +75 0 obj +<> +endobj +76 0 obj +<>stream +H?TP;o? ??????N?1??J?Ps?N?I?.?2??M?K?????}l? ???? ?j??-?z?????P?\?$=?h??9????A?0??9? +?????:#?d??k???n?????//??? ?g?x]=?)?u?4?^*$iG????XPZ???u???????????`Q[?]?Y?wjS>???i?=?Z???89m?i,?????X???vh + +endstream +endobj +77 0 obj +<> +endobj +78 0 obj +<>stream +MBLIFN+AdvP4C4E51? l??????????? AdvP4C4E51*k????H??-=nv???????????Vntwjk?w???????????????}????????????????????{?????????????????~?????????{???~???????????????????????????????~??~???????? + +endstream +endobj +79 0 obj +<> +endobj +80 0 obj +<> +endobj +81 0 obj +<>stream +H???E?????M?[??????? n???????????????? ?"kd3?x??1?? ?????4?m??B??5??o??f? +~?G +$?\?.W?@TT||%f??S??&?z7?1????&PL?6^???+ +r?I??U +????BL?'L?o~r?d?l??|985D????~J6??P??h?y?l????????2???o--????S??G????????&??} +?Aq Dc#:>mk?Fcl???????[R?uL??%2?/???b?T???ktR"?*o??e???/??x Z???V??it???RWAFG?g????z^J???Z;????V??Pn??????}?Yd6J??f??50?m??6????I?8v??????#????o?G????? ]??>X +?>????*??(????V??D>{:???cR???V|%OL:?()?42?ZJ?G???????f??{?q???????R5)?DU?4K??%??E??V;?W?U?*?g=?>?O?H?'_?k??w???????? +W??????$??5`9 +?NI??b???'????@ps??r??p/X???;,=T??y?????^???;?O?"X???h<-feL?A??5?U??? ?=?? +???J?F#???h???Y??6aS?9TV +Si,?8?^.'feh????#?????H??e??47jJX?-?????h9[?.?? +???????????9?i]?K6?k? ???m????????!????c??$x?ZX ???f6??-?+k3??@;???GB???t????wE???u???*MW?????QmQZx???9\???q8??????_????"b???I)??^ey?A??c???O???T'?ih??DI*j&i? +mC??@O?5??vf]?h?Zr?,D????_?????+B????[??]?`N%J???S/??1??i??-+#f%?v?*?Q0 +??wHx?? ????;$X?_?Z??????NFd?:?T +x o??U?????w???2u? ???? +q????7????F????]{?}M??qT???y?y??a:?^?sx7 ??'??4??'tg_>$????K???y#'E???V???13Z?jm??3????????S??E\ ?D???"a1???91?]o?3^(T?"???3????w?{ + +endstream +endobj +82 0 obj +<>stream +8;Z\7;7;-##]2n:MALUhr.,/3imQlnQm+anl#9cba] +9l%Z5)--.=Wp*Z(Im4H`@;tEt5XV=QK +4hj!4drXiR\HKXjF<35WZPf\%B$p`f>c]J,!L"m5#B?M1DI?WN6\\Z_be>ndf +V,GNX:Rui,htb+"hKX5(?>Fo5e^DifQ:062qdBe)7"r6\T;8UC9&*ZdLrF/)VdZp. +VY)8>_D;k\/`l8P0qrK4PAB#,p0 at jJ9K:VXSHca*i1"qfqNf'V5QfU6k-Cn.cK\ +endstream +endobj +83 0 obj +<>stream +8;Z\7=gl3j#\>aZci(?qpVVIT8bV_jbR,[D-I!KIl`!6D)6Q5]rp_oZLbQR#L[]!] +$Lgd?K8=^A/cs!Sed- +nA:M-U*a,%moD9q%2p%;(l:n2'*($GO^*]U.A""m0eGq&F/SJ="p!O97s\i?hH76H +#U-jdk[+E/3;E0\n+tb394C'c+'--u[ApVa)-O.Cd:IZrpcX_+=t_Yn_s.uJD4^"( +EMc>1m\aUBprPnXS(Cq1Y4"<6^A)oR609',:f-X#OaZqhQr`EOne at oAgN`OC938d# +27GEV%7Hf]dP;mNT!9Cg\V7uMSB5'9XM +SLo/*T%9^.bATMgW,?_tQDFaknNM-tq*'!,G"dtX2d5Z at S+0l[]3\oG1&%]r7W1[j +%!?T5'@e']HhDQPk1acI.JI%XIVXidI*6#8ol$^?iaL68%m](dD(>`@HP8X.83K[0 +PO-NZO6,5Np[hiV?+a7?V[p_QGS at -'!Z2T%6oc +*D<;[:0H2\e%_HSVe2jTcD$qeQ!a6WL"NWLg&7B +endstream +endobj +84 0 obj +<>stream +8;Z\7>BY]C$tM*lAO#U8Ut10&2;^*@3rOA"NuG>Ed[Z`&,hAhC.O2Ffj5q_eqp#.p"4 +BrL;DQ275AhV;&4lDFE$@;";8g,uH>\["J0='um9HO?Z..Ng-^kVH.r at ZPl7TV'fT +!g^EtFUhS9_p\r024l<\#h[897!Jr-8`>YMs[&PKF +Vm,#lUO3X6RU2*hBhQ`[_)H/H*9[T=Uu=H_dQKWIl'+2Mb#RBTYqV/2SJU!]mGE8Z +5++8G(P0*K]m?qq4?Gc;5NR9MX(P)Ze'+0S^`$b?N'4uQeFnS^[*qOu:V6T!`k,j1 +mg;@__L0BnH=RAH)R.=jp&FRLk9C`;Anl5lcT,c;f!OFaRb,:?qm]sg[,DWaXk^M6 +pA$%M6'sak@' +]FBo]ha[#A[qisj6K7V2^'t9lJ'4= +? +endstream +endobj +85 0 obj +<>stream +8;Z\7gU6&a%&B9gW?:u1+8XA\k[h^X7UV'`sqXV*L/0;FNhfsQq`pk_:Vl%@IGN&WS6\;LVnH:mJR_YKP-\d^Zt at d[>_ +etGMW0L*P$e:.5lVL%iFd;At:)AqaJF"bE>:;l%aeKH6Kc9#l`^CS`I%%8]J(XZ\& +Y$6ZMls9nFqHZCNh&h1+6H$Uf4BN84 +h)k(oWfBX[a_s,?ALm'R:gSn>nf`X>5X0\F7'q);jd>,;T[EtP.qh0$*WR=ijMu:J +c4akGhm?lLEIrkt&GZ3S)cf/0$F=OA96\HjP%pg:4:kJ'n$bD5aQK9+(6oH(:..2*36V$h^/K*Z%Pum6 +a/uIPc?#$VW9jg8^tcR5,O>&NQnE,aTh?pVQ.?c +T]4Sp9n2mXlfkZX@%WK)DKQs_f4CQ2B&YmKB(J9q)UVPJ<6,OE^Pu_d`TERSIL^+$ +HVAYE)n]'Y^fu_22g<)TQ)i,W\uNYqbH$3bN/72U.=P'ojqhk2s0jlAqE7/^f="q9 +mEN+d*?Z2.45)211i[t(.J'>;Q!NWk-H0u#$o+PA6-2Q(#B_jcG$5/I,h2r*('<d at .bl +]4^a5S?D9mp1I%lDZD,&0=:~> +endstream +endobj +86 0 obj +<>stream +8;Z\7gNDR"$ro%X;a9Q&Ics9dRpI9A[]oiV*3[\[CuiJBT#'FOl at kXUji:"&0n!Kk +;#e].[_cdD'.-0X%QFo&WoKCA6JP/MJ=A<97e7V +>i0a-OdHuo\T?a[C_0p$GSOuL]IX;Q_$SJ1-Z5$eW@\\1fa%(qN0:n1-q;^s36Gg3 +n;j:6!@@?3C_2ts(@eja^9[uWb'&@"o>CN[nqu0N"3uPuG:E.^?6)=L8VU*X\n#1.MYh!ujK4 +7$uS*EEd`U;eT66I3+>^Qb`td8E!?%2QiU;&Z3+)H[718MTg<<'uV2c'5W:>Xk%L6 +?S,0SP=`D18OMmHJ]g/8Gg#b3,_Q]u914iK;g)2hQc)BtV,%Bi>'OM&5$H[rVJT-% +[UjPKPi6,rV4oY*dm.*4=TN\BlEQq"@YUKCA`C>FYfUkg56!0 at I:_uikIo9l +[Z8KspC*qrfIUmiY1BnN+=Z0UMZLZ*8$6Ln at _3gtYanhfj?jiE%PHX:Hcj$FT+=Y@ +4P&oc?a*K<.W6iX>>)Nio0&s?AA?ffpu2Z;,EHG;s1Y=ahmgKYoBCrH. at lX0A^6^C +4Hrk=Du&2mG#ftaC#\=n-/M\6nrPTIKlQ2$ct\eKZZF!U1nc)m3*O#"t +Hc4bKQ +endstream +endobj +87 0 obj +<>stream +8;Z\78Wr9[#k]n)EWRLn)0 +WZ^!XYr)lO?')r=Cko#5fj>O^*.Xqt(">ct[C9Fj,O7)"-L)MX,V?INKP3 at 9S#CoM +Ds$l8g.Bp(_@>.0q*n*'+JsL>"rZsuR-!(%9P8F_'SN%R7bY53Yh:P8/'_:6HY'D< ++Oj__DhqDA1BXdOIX?Ssg^E"MN3dod.s($UW7"B6ei1G]DTZ.nY_GV`C!mNsm1h&D ++l at 6lc%THi/JWT<<2'cPc\qM5B]9fb,lET>lJD(o(BcnI#ZU7@,NJJ9pt=Va%I0El +GBFT^k"PDH;?ZP)\$`dT5nBI1.0Oh2U=0kS-hc+QXmdu[m-d_,NG++"VG:7@'2H`h +N`WjP2R"fGW#s9qQ;`WYc=Is='5 at Efb@H, at _=&=$+A5TY;*@9,19r#@hUWE +:Q/j8C72XmeJls+W,Vnjo1dP_Fhd=/cKK[m@^_<_gVS9J=]gEECiliLXXI6'/,%!R +Ygg1M%F8M[]Hm%;>T:(gSAj?XX^0UaGZdhij;lBUl_tBs$9VPU)ip]X,F%O:bZ)B1 +jdiRda=Qo%i<=%CVi,O*D"'B"8 at oVWiiEYn=3Xnit]">S6%YmcE2? +YC08ppBmt%j0hp&nD?J&r^$>t!!h!04o~> +endstream +endobj +88 0 obj +<>stream +8;Z\7>ILRT$tV-jAc?2]O3Zi:":24FCTHK-fpaJCe_$k9u\MO*X/M=NIu'iUNlB!-L>[&&llQcG)[iN3ko'4Y^h3Hgr4n6)drF)GKC?0 at TMk#q'(%Fa`mu>PN)4[KKW/*`?.S0( +r/A,"L/$@"U-#Ofk:a:7gEV!G&G!/ja$>*K;u*PBs14XV@'fAHD9*pO13VP"980dZ +74Tnan3l""m]e#0lujs$mA\Qm[#pBmC6`ho8h"e><3b`U'YIS-#gJKJHt(%Qf>K*_ +;uiC+#IP_uPXmVT<:17jYLJM/jb*>-N3kU:s7)\`b@`?mB<:d?ll&-VcN2UFJT^VL +3m(aHNqN(?7D-(Wk"h30\b5TET6j at 4odc>l&SGHslP/Mc`b.XZ-S5.Q$u&).]@YPN +S?j5mWkFf>;$9c7;GYLfK8^gnX-3L8aL&IaX%])5[&)!>mlJUM at 8bk5c+5K39h3jo +SsnKYF%Ho&,FUgoPX`, +endstream +endobj +89 0 obj +<>stream +8;Z\65BGO4'GhX+E`]R9'hF)#*XoTs9/;]fFpJLJH3aBS9Z\!\G9J!\]2%58a:`&4 +FCWMDFF,:39:,pH?Mc^5,X;>(]r1Tp!<;.dUq3I6: +Q-EsRcq\=.KPWo?bq'3\+W(2Rh2SHIJo6fT*a&LbmLfZZ);;GJaA:'o73P3Q#/jIQ +7uPQll at cPG\"VrgRQ9-oGY-=klkP]&236PA=)[#0[.,`[1Ag'2`q1!a%rd.i/KnGc +s1_%HA`5D'kJu[TfsVp*B[[jnVZkGhHmKIpKm*W.H=0(34L.j^l"OC"1Vbd/?;Cmt +8,08>NL5&/>pCm_6^K<,dt+@,/U)hEZlT"W'\"_L[U0?n"^ODq<54 +C-rj[d-h#hfL;[Sj?[3&@JO +anjAI+kh_ at l,k;:2pP9R-Lh^>]S>$G.`/Mc'oj/Oa`F/Pr/@$_4ml0L8"1*'+g?2aF9YR^ +gVRSa[pHbE_LE?aC!$o/R\Y^rqe;G2X1)&uTuhQ&dn^cC__nlh'K;E>!_Yp\V +0M-[s93W.M'1l^7 +mm3&(-dR&1QG-sf7?Lai"_e5A][pJ`r#PiVTr2&~> +endstream +endobj +90 0 obj +<>stream +8;Z[L9lK#\F?!=dcX8D"3&L9W5=$oA/((G/8l"aaBR>=Z@aVib_h +22'qpWJ4;SgiC4A/%0+GLQ.[ZZ\p?#Kco72bgnL313ip<&3Th-1:'Fj@;9\b?Q at 7q +\E26P/[YGTSo!ki`UAVbh=QlOjqkm'W/=p".D^Rn&!SHe%=CKg!'R7?FI;/p1Q*D; +SPcmdLEK^U[EDs$QJmeS5f1M4d:3ohc0EO5+sZMMn'X"EFb&Zk*SHIIV(pcp6E;uf +iKGl. at diB4%*/T/ak?*p:c at 9$Iu>`3T9a.DhegKG"ADZNi<6*,=9#_bTASYl:Cs-W +k5G23#uW,KB(2>NR(RuY$9&/Y['X>.Mbk$<%77s$Ai.5!Dj??V.+m7-UJ)D(Z5'YU +Bu?!YjVH!n-G%,,Fj7)0b2ls3=aT8e2I%'Ad1m3u4U&<3+I!f:$[PG0m]uA&hUN3+m*WCNuA=D6mRJ +dQF^[SCPX3C9^:)'a$*;iA'h1SWT;=A/Kht?0:Is;?:WcY!_L?qR-Y(4N`@<`p2?u +3oT&Q`JWUt\eCmu4O,QK9A(`e;d at g?*t8E\AV,%m_4E^"Z*h02R at jZuar,kT`=FbQ +,6]k at +Wg^I+Sla8IMKP;KtlUFKAd8->Rmq@:%VV*XVPu-.M\6()Ngo#Y*Qc-gZS0f]+R%urcafIhe.k._-oi>.g$]:XhEmp=OJ[qoU$\.TrcZU6t;(* +?F>Q&NGh0BJch'_;gs#TR:riPhTS^$ONDbimicho/QWiuhro&a7TKmtM&eDS]*(D= +,qYm'kSE-_juGT'6jjrLRD5b=1K`8>aKi[':[-Z+,PHfZX+Bf#@j<]+8_'aXo]2D` +k#:1,#p+ReVm6gA,J_.0J,CM#S4pU,5jD`D&!V.,JhXmrJmTZc)u)EhSFr +*iW,%jd/]e/[&u2G'U2:=*5V9qO[c,n5Wo^^76->%nPC.k?!44dsSG%Pr;aPe^--% +HT>*^.E[PC5=H81R,]S78rJU]Clca-K=Z5YKH5,J\eCn7:UgZS%uM#]ZA"TpK[lAF +LsodLeUrJuSeg)N#4Zo!a.'r!`:~> +endstream +endobj +91 0 obj +<>stream +8;Z\7;6kfs%.%F#j8N]E+2,j5!B#s5GYmpQhD?6',Ae]qbn>Q1rF:2-&Fq-fnU`Rk +#gD&pEVr(LQd=//s(?eVia$:&`nKuGobKA.q22 at RcZ]NT#E"bV7GO6mE-[G8:XYe? +g`+.Ac,b.>rB at .6E2<.Gl'ST9GrsBhNX-8L\J@#2aN0CE^E_1<+sV)imktu-;I-^m +F#VXKc)>Nojbbm$FWst^#,CN<2PUo$q0"rs^7)PTkA[q+a5`sGd^qo0hl,2WS"jCY +hqhW0Qmc+&\:tU[YH+k'C3ScpqWlX"`mMLbhGSHOj9MuDr!S)3ZuN: +HHsjF6J#mLH^j1s&/9,>p)9h[br=-WUlft>n#h@[NN%T4 +endstream +endobj +92 0 obj +<>stream +8;Z\7aao'u%!46%e.;MR+8XAtl"0C58[<11a^57NNk'`>4!8pJlf(W$RP&M5:AO2\#VsO6 +D%J=<"PVR#T1m)kV!N=KTBlktQ^1jCCeUpEGdXTHaZ +9]Yo85Vo)@>-u7P at .Zq."bYKIH36WTBoq'%na7"]Ann^ElH4-DVp=0BB!9b>i+A,k +&0><9=ZTUoeU-^J]d`p)'^sJ2G5>Es6D+?]S\TN!`$XQ_lAV_H)h7U1GK5N/XbBeo +:4^aYrC]V4TJrtE7^5jqA*T:fV-jNnl>;e*P5`HV';3_LS*A=FB"'`t2j<'f0'4b\ +>0*;R9cdd_gE:DQP_A1RfCdUEeJ-`AB?bGNg/$n_DhDHijuPqR@/^kM)9?Th`^@mM +H%ec[^!u9U&*^@!@.G)u,?G5N\-7A?+Sg&.!TKL/[MXtIe+&-=;NtlO?2b:[=#42`b<'>1gMqJEXeV +LU?^lcNU]B?0G?7kokLu6=`gmM`Ig&FZ!D='&It7Q!#1k)Ul"u=&[TM0`?)JB(VtZ +G0'Y`m_[!CcLg.VK#ES#XdJd1X +DtUlhNUXErJ;R8aVgnHjSD(0"rPI?e%E"\s06pp&:2g%-%EUV9"S;BVl_j`qSm/p( +a4pZUk\'^;m:g;'+SO9a:1(2e]\\ +endstream +endobj +93 0 obj +<>stream +8;Z\6gQgeA$ro%ZVgd,+rQpUSia,[&`.3ucG2c2=ccG-&%Yh$B*Z$X4g:q=[%9%7n +K/m+1TJ_A?H(j[XgX]&ds/qKTk0Mk4SKCs9_XS%s)57+3G]Ob=WA5PT`Cc/XuXFq=V5p-CSbN@ +m8 at GF8gn7J+PKFt<$S\,Bt/K84LA'3ME5WQXrX_(W/>CMb*-"&64*FW";r/#Cb<;B +USpd?fk?hEHjd=n1Rop4W.(W*=Zpj08(=+N<9p#!2@*sGpI6&IFqU$JCPdA5cmSKa +]Ei:.Jr\pqB`MX`8E4HUG]ARY=[UFZKgr.@!!'a_gVZ at isFne7(*pA +J^ZEM`1'0WJeAaQMKn',Gb7:1f9%,tZCJX',cu99IK$Ofc>snD]>A8-Y at eu](H.e[Hf9VXA=VOCY>mM^DD0fjcASHH":h( +4*To +endstream +endobj +94 0 obj +<>stream +8;Z\7>B5E?%!=<'A,g>d&+$-=!JQUT5m&p6gGiLiYou,Q6M+''Lr+0/d/Eq*SC;@r +@=O$i7D:$a?WO at YX-S7<=P9kkd-Z>aE@#V,-,Ge.#+n`1AN=V8 +g-'?-X>8[2i59Q,K#r1)5D97&2n>PeYrPF]-n,G91*ZLRO)e5sFj%Ak^cX2 at A(ep" +Bn>8a.Pl!Q;t.:R&FJ!cd,'da\g_ntWNM'*oLtKa)kH:F/H*LbN[aksl%od8VCT'Y +i['K$'Oio6h/#<5bY!KW<`4$+4;OoO,Db*j5>G8VjgMB6,*,Ilhg+@,kXLWu`cs]o +kLFg(6@)\Nlm/htO;#4Eq(>8)b([0/EK;'.eup$PcU`$'BW#7LC>`Sp]?,5F)m!tG +j%VV:;FMZ(<0el*6Fi_?qIaK at 6;"=*VY0l,]hB!HKf#n(h^)G\(,bI4u-FWGG +B!EWK-;TPFZ6L1"LH_*tI)o,?WGgZ(^*W^f!*@,Uh#~> +endstream +endobj +95 0 obj +<>stream +8;Z\796S2q%.mu6j8N]=`n[EQCC*JI3&p;@.mHq`EJ-0-7R6Ta^XtI->Sr_*k!@p. +1Q]*+Z$IECWI#8\q"4AUk at .p;p*S/us-&#&_sZ)fl<[mY1e at U!ho";%9FOTZZ)4Dk +CWu4n%pmiPZq(Pb*m9+/YOg!!)toTFi"ao)FL;l"B56%tHMJS,Mctk9Q&<:!S_O,7 +RGnRu(ut)ET_W.aaAo#PVZk;7#H]_G#be_`;F\RmWkR9po^-3CHii*7iU)8_39UE5 +ClN`\$du8]>@BKSY!g#gB-`q[NC$N*4 +OGIm/,Ffq`HTaGKZptJ\T5RW/k;WVolTJ)DA%\`aph$BH5"DH)jndc>a;Egg?*A9P +)9n1\96s)?+'1X)XBY\:UWfQ%bf0kQoSg+1d,#!m`Fm]F*"*lY7rd.$/'S=C78B$0 +ZhhkBVWF"0mJ5Y''&kD6pip^pj0AMN9hl +57rs at .RnY;gbr<79MPMrM0%52h5sTMcf=`ZltZSYN0ml~> +endstream +endobj +96 0 obj +<>stream +8;Z\76+5c,%*N(joDR"pc(DUAM'Z at T9n5IT2[djFn=,TNMIe7)htXClgA]Ldp@?tm +pV6H@*9!gUC;66>0?MO'=5DbNa9-_&0U8&E[XZrg=)lKnrULa(p[?E%rF at L#Y`=DL +60*:6bU[bqf^G?mB).'_Q^=gecDr\!mF+5sm/I]He]i$2*+9Tm''")F`kr87f0nX<5ODX=(Z%K4s1c: +:dc*5#$=0:;dr07!$b\&7g,`Z)gckU8(6h0QZFd0M;FZS0-';\ZSXWR/A3Y;RJsTr +Lkc"?rI%$`:p\0q4-*c8U8K6-S]-HOU>Kh,5hh*RAHV6YD:6RXhJBcU%^;_e#ES3: +UVXf1WUhGFE!NP(7Lk5NDa4eg&\(02fA2b;pcLLDkYfmJnMS;.):@J at -Knf>DuPN7 +(5jd1m;`%dG?\aWgOS!Ce7>L%qP`7]?cT_,IAA>d*`SLDLnVj,Mo(C[J`uZ%gRnrP +&LL,pU+Wr.E_V?&1p+<1G$]"m)D[_:FiNi&p"%/8[Bu6&e/NOYi8q2qe$5U=-4?U* +N-,nGF=HF-f/P$/=4*t7TL(a`&Mu$??53e--]*lN#dW`)og(@hmM4.FRjREf91 +5tm(Y40nXVThL-B;OKR\W&`70?cdAaHQSojiU/DVtFtd]%Gci#393`Sk?=o'Z6C+ +r$8#O7?;M73GLd*RQK=XqVc5VrG at XAkGtR:c'HTE3P at T%!n;AXlF:Aq!>c97W!"G]R#](Ve<*_ at Jg:'c1 at n<,,s\Phi,j:Vm+-c+\siJ +8&8IltPQXV]9jl11l\RH8]t-%hogJ0s4E-b`33H7u1RT9t&-A]B<+L")$.7 +C3&l;_6J^+PRa=6.stT,K9!N&j)9>*)\6EF at O8sjfZM7L[.kU&pdW3Z!<<=:&q^~> +endstream +endobj +97 0 obj +[/Indexed +/DeviceRGB +255 +98 0 R +] +endobj +98 0 obj +<>stream +J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g. at L`YKUJNGBP\poR=_;Dl'P(T +(7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 +PbLSZTLEE(8E@'*1mg_*eTnN*;*'V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD' +dKoL!8Ka#EV, at V!\j8ZFbp6EE<9cn=N6j0nf;(&;QU6bUD')c@\ +9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_aP(]I1aRc(K1^ue> +gF/(+GaKo$qneLWDrQ#;5\S(\$q'4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R +endstream +endobj +99 0 obj +<> +endobj +100 0 obj +<> +endobj +101 0 obj +<> +endobj +102 0 obj +<> +endobj +103 0 obj +<> +endobj +104 0 obj +<> +endobj +105 0 obj +<> +stream + + + + + + Acrobat Distiller 5.0 (Windows) + 2011-12-05T04:46:45Z + 2011-12-05T10:28:51+05:30 + JW-PRO#110215 1..15 + + + + 2011-12-05T04:46:45Z + 2011-12-05T10:28:51+05:30 + 2011-12-05T10:28:51+05:30 + Arbortext Advanced Print Publisher 9.0.114/W + application/pdf + + + JW-PRO#110215 1..15 + + + + + + uuid:6ebc60c7-d703-44e3-ba3b-963f56989c3c + + + + application/pdf + JW-PRO#110215 1..15 + + + + +endstream +endobj +xref +0 106 +0000000000 65535 f +0000050163 00000 n +0000050529 00000 n +0000135747 00000 n +0000137114 00000 n +0000140765 00000 n +0000141144 00000 n +0000198930 00000 n +0000200295 00000 n +0000204661 00000 n +0000205096 00000 n +0000249485 00000 n +0000250855 00000 n +0000255103 00000 n +0000255499 00000 n +0000396900 00000 n +0000398269 00000 n +0000401122 00000 n +0000401275 00000 n +0000401483 00000 n +0000407199 00000 n +0000407352 00000 n +0000407572 00000 n +0000412633 00000 n +0000412786 00000 n +0000413027 00000 n +0000539268 00000 n +0000540634 00000 n +0000544316 00000 n +0000544487 00000 n +0000544716 00000 n +0000707846 00000 n +0000709214 00000 n +0000709356 00000 n +0000712344 00000 n +0000712497 00000 n +0000712717 00000 n +0000718440 00000 n +0000718876 00000 n +0000749218 00000 n +0000750583 00000 n +0000754145 00000 n +0000754540 00000 n +0000857932 00000 n +0000859301 00000 n +0000863001 00000 n +0000863154 00000 n +0000863374 00000 n +0000869572 00000 n +0000869725 00000 n +0000869945 00000 n +0000870120 00000 n +0000870177 00000 n +0000870463 00000 n +0000870672 00000 n +0000870845 00000 n +0000876806 00000 n +0000876959 00000 n +0000877131 00000 n +0000877285 00000 n +0000877343 00000 n +0000877564 00000 n +0000877749 00000 n +0000884846 00000 n +0000884882 00000 n +0000887554 00000 n +0000887962 00000 n +0000888189 00000 n +0000888813 00000 n +0000889304 00000 n +0000889613 00000 n +0000891906 00000 n +0000892464 00000 n +0000892801 00000 n +0000897718 00000 n +0000897902 00000 n +0000897985 00000 n +0000898286 00000 n +0000898525 00000 n +0000898847 00000 n +0000899259 00000 n +0000899546 00000 n +0000901647 00000 n +0000902340 00000 n +0000903203 00000 n +0000904261 00000 n +0000905227 00000 n +0000906320 00000 n +0000907295 00000 n +0000908287 00000 n +0000909732 00000 n +0000911366 00000 n +0000912273 00000 n +0000913362 00000 n +0000914491 00000 n +0000915344 00000 n +0000916331 00000 n +0000917734 00000 n +0000917784 00000 n +0000918351 00000 n +0000918418 00000 n +0000918553 00000 n +0000918654 00000 n +0000919063 00000 n +0000919103 00000 n +0000919130 00000 n +trailer +<< +/Size 106 +>> +startxref +160 +%%EOF Added: wwwdev/papers/armstrong-masters.pdf =================================================================== (Binary files differ) Property changes on: wwwdev/papers/armstrong-masters.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: wwwdev/papers/highresclimatedata.pdf =================================================================== (Binary files differ) Property changes on: wwwdev/papers/highresclimatedata.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: wwwdev/papers/index.php =================================================================== --- wwwdev/papers/index.php 2011-12-09 15:58:44 UTC (rev 5393) +++ wwwdev/papers/index.php 2011-12-09 17:32:47 UTC (rev 5394) @@ -23,7 +23,7 @@
    -

    Swift Technology and SwiftScript Application Papers

    +

    Swift Language and Runtime Technology

    -

     

    -

    Research leading to Swift and SwiftScript

    +

    Research Leading up to Swift

    Zhao, Y., Wilde, M. and Foster, I. @@ -143,9 +142,6 @@ [ pdf ]
    -

     

    -

    Karajan Technology used in Swift

    -
    von Laszewski, G., Hategan, M. and Kodeboyina, D. Java CoG Kit Workflow. @@ -155,9 +151,6 @@ [ pdf ]
    -

     

    -

    Virtual Data Language and Virtual Data System - predecessors to Swift

    -
    Zhao, Y., Wilde, M. and Foster, I., Applying the Virtual Data Provenance Model. @@ -206,8 +199,6 @@ [ pdf ]
    -

     

    -

    VDL Applications - predecessors to Swift

    Nefedova, V., Jacob, R., Foster, I., Liu, Y., Liu, Z., Deelman, E., Mehta, G. and Vahi, K., @@ -279,9 +270,75 @@

     

    -

    Related Workflow Scheduling and Provenance Research

    +

    Swift Applications

    +
    + Woitaszek, M., Dennis, J., Sines, T. + Parallel High-resolution Climate Data Analysis using Swift. + 4th Workshop on Many-Task Computing on Grids and Supercomputers + 2011 + [ pdf ] +
    + Agarwal, K., Chase, J., Schuchardt, K., Scheibe, T., Palmer, B., Elsethagen, T. + Design and Implementation of ???Many Parallel Task??? Hybrid Subsurface Model + 4th Workshop on Many-Task Computing on Grids and Supercomputers + 2011 + [ pdf ] +
    + +
    + Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. + Modeling large regions in proteins: Applications to loops, termini, and folding + Protein Science + 2011 + [ pdf ] +
    + +
    + Adhikari, A. Peng, J., Wilde, M., Xu, J., Freed, K., Sosnick, T. + Modeling large regions in proteins: Applications to loops, termini, and folding + Protein Science + 2011 + [ pdf ] +
    + +
    + Boker, S., Neale, M., Maes, H., Wilde, M., Spiegel, M., Brick, T., Spies, J., Estabrook, R., Kenny, S., Bates, T., et al. + OpenMx: An Open Source Extended Structural Equation Modeling Framework + Psychometrika - Vol. 76, No.2, 306-317 + April 2011 + [ pdf ] +
    + +
    + Uram, T., Papka, M., Herald, M., Wilde, M. + A solution looking for lots of problems: Generic Portals for Science Infrastructure + Proceedings of the 2011 TeraGrid Conference: Extreme Digital Discovery + 2011 + [ pdf ] +
    + +
    + Wu, W., Uram, T., Wilde, M., Herald, M., Papka, M. + Accelerating Science Gateway Development with Web 2.0 and Swift + TG 10 - Proceedings of the 2010 TeraGrid Conference + 2010 + [ pdf ] +
    + +
    + Armstrong, T. + Integrating Task Parallelism into the Python Programming Language + University of Chicago, Department of Computer Science + May, 2011 + [ pdf ] +
    + +

     

    +

    Related Research

    + +
    Malewicz, G., Foster, I., Rosenberg, A. and Wilde, M., A Tool for Prioritizing DAGMan Jobs and Its Evaluation. IEEE International Symposium on High Performance Distributed Computing, Added: wwwdev/papers/openmx.pdf =================================================================== --- wwwdev/papers/openmx.pdf (rev 0) +++ wwwdev/papers/openmx.pdf 2011-12-09 17:32:47 UTC (rev 5394) @@ -0,0 +1,4775 @@ +%PDF-1.3 +%???? +221 0 obj <> +endobj + +xref +221 48 +0000000016 00000 n +0000001869 00000 n +0000002102 00000 n +0000002159 00000 n +0000002379 00000 n +0000002509 00000 n +0000002633 00000 n +0000003797 00000 n +0000003997 00000 n +0000004168 00000 n +0000004270 00000 n +0000004838 00000 n +0000005281 00000 n +0000005739 00000 n +0000006231 00000 n +0000007405 00000 n +0000021586 00000 n +0000021781 00000 n +0000022107 00000 n +0000022214 00000 n +0000022964 00000 n +0000023588 00000 n +0000023624 00000 n +0000024338 00000 n +0000024788 00000 n +0000027458 00000 n +0000042218 00000 n +0000042275 00000 n +0000042450 00000 n +0000042542 00000 n +0000042637 00000 n +0000042751 00000 n +0000042856 00000 n +0000043004 00000 n +0000043112 00000 n +0000043226 00000 n +0000043395 00000 n +0000043520 00000 n +0000043652 00000 n +0000043806 00000 n +0000043904 00000 n +0000044027 00000 n +0000044176 00000 n +0000044321 00000 n +0000044435 00000 n +0000044549 00000 n +0000044678 00000 n +0000001256 00000 n +trailer +<<5B028386BFB81F42A9DC1E72092D93A6>]>> +startxref +0 +%%EOF + +268 0 obj<>stream +x?b```a``????? ?? ???@16?,?RfFf? +B3??087p?c`P??????? +????{???]???'?Evy????rW ??&?/>?{?M?|?m:?$?E??,PA????- at A??7?n??D??,t??\?R9??????\??8$ 2O?.P???(??`2? ?G?v??a?(???z????? :?LG??*?*28??`???>q????bq??^? ??Ol???B??????~ ??????D1`?? +?K~?K?q?h? +|g`X? +?E?N??} ?,?@???A6H_f?T<?? b ? ?W???b? zZ?w8??B?<`???? +endstream +endobj +222 0 obj<>/Names 223 0 R/Outlines 247 0 R/Metadata 219 0 R/Pages 213 0 R/PageLayout/SinglePage/OpenAction[224 0 R/FitH 850]/Type/Catalog/Lang(en)/PageLabels 211 0 R>> +endobj +223 0 obj<> +endobj +224 0 obj<> +endobj +225 0 obj<> +endobj +226 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +227 0 obj<> +endobj +228 0 obj<> +endobj +229 0 obj<> +endobj +230 0 obj<> +endobj +231 0 obj<>stream +H?tS_o?0????--???????6em??. ?=?iL ?`??&??rvS?v????????s~???????_??~??E1???x?Y?????????E? +??????h?^?o??4T"?q?r?y?{????/??*~)j?\&?hP?!:?b??/???c??w? +?>???*h?Ku??):?????? +x?J???Yf?@???=b ?x?????????s????Q ?R???@-???D?=TF? ?????Y??!?VC??>1c??b9n?F?j:B?lJ??b?'Al???L??b\?7??C??q??>??????@?????>stream +H??SMO?0 ??W??f?q?|,X?u?V6!????????V"P.??????\ +? B?B=??`?X?`?k?|,??????4?JC?=???1C??>?~e?Y?TW*?;????C?N@?:?KU?>stream +H???OO?0 ???=&???8?|,???E]A?'nH|?+n ???J????????R?t???c??Cp????D2c?"?uX +??[ +??W?????????o?cp??7????I????1?jM,???????u????A????5VC?~????S}{?o?? +?O>stream +H?|?Mo?0 ???:J?JP?>?N?%Z[??????n????????h7J"??}I ???:??*???oP?B +????DA?????U??TT2`dw%?r?????[%???????% +?????}???~?\???0??A= x?m>s?^?yw C#$?Yc??FX ??^8????@?????}???\w?d?Mi?zj?????,???k-?9G!? ??????j?[???Qq????n?Q?????8????????e????NiL?x??z?\????v?U!;O??^??????@7???NUV~E????rm??XD???c? +8?wlc+??Z???Z?h!zAlad?:?????@6-????f?m<_??????d???S?k{??????>O?}v,????^Z??AS??? (#?? +endstream +endobj +235 0 obj<> +endobj +236 0 obj<>stream +H?T? PW??s.Fq8???n4??( ??Tx5(*??? ?2????>?>???UA$????hP?? +???u?2?f??|?+??L,?[???}?????__UC?? ??????6.?p??O> ????&?Z???[vr?`Ra5??????:?????> 3??8???P????"P?@h'??????p +???#?? +???D??@;?I???t?????ka ??`? ??(? @L??`*??y?(,?????l?*?V? ???7jTFZ?cz +?001q\?a?^?&iUj???ih??C???z&F???? +??Nu}(??z:?? Pi9e?YM+v0?`Fbv???E0?&??( ?%:Zodhm4?V???1?6&?i?A??1h?Q*-?4????D???O?????Q?2?'???`??C,??? +? ? ???-?`???{yN??l*0Z?}hG?L5FO5??P?9w?=?,?H??? ?2:? ????NH??? y?????[?L?G'???ds@?.????+????? ?\?Q?H?;6 lm=m???U???6??+????l?B?J???j?C??fg?~3?o?Cb?#g??a?????s{H5?w??:???1???y??F???Z??? ???S??R???C ?/?t?mW?W??E?U.?Z??????%??Z-U?{?_???0x?????e???????Fr,E0??>.??,@?? T>~??U??>?k?w??????;?/?U???3????V?IzTP?*???E%^???x 7?!3 ?"2??p??Q?p W) +?]?YtY??F?f?D-vk?^?????X?R&?uUw????~?????r?@I?XCAJ +0???b?W???L1????*???QA?f?????i?3 G`?????????d???8?Da?=???eW?g?{??n?,~/H?u?J??NoVM???????FQ?a!??L?????j??????O#cX?????e?SX?8?0w?L??L????C,. $'s .]???C??!??er???p??Kf?Zw(?!NMG??)r?Ag????Pa???r?d5??@d??U??8Q????+?2? +tz.)>%&?WA???lI????????hLp??f??Y????rf?~?,WTPl)&?z?]H???~ ?F(?&HE%t??M?M?aq*z???4yZ[??k6??k*r????(?EE? +?B?'?}>???BE?Sf???;???.w??g%??????K4??9n???tX??\"??mm_???????NC]?AN???????af???%?WW?oLv4s?Bz??K?1P???q?D?W????V??N?????O +???&%????B??;?oED???8?$?n????1aj???????+??uj?? ?@??b ???| +???o?u _??x-?y??? ??@?????Q??A?y???&??Q???.?? l??O??q$#?b.k??9%??g.G????]s????J?T???3?WSG`2?q?#?-|=#??t?y??Y??u?con??d????f?-??F????&^?W??????!??l???C`??k?a0G?t?c9???????b]?O??j?kW?e0??{>????AD?"??W??n??4 +n= ??5???????\?&hW?Z????2?}??6F?????h8$?`???gSN?????'??44??n y????j? ?G09?UV~z???c????v)?gPWZ:. +p?;w??H?|a?z?q??/?XK??U????tI????jV????n??S??/{%n?,??2??,hiTjEf??"4?g?*?|sk]E?|?i??c?B??Vm?c?',?A6???,?P????}?(w?75??&(o?Tz?Vx+?????i?B??? +????n?~Jafd??????????c???`h0?2u?y$???6f?dv??On??+???m^??/?+????AUs0???y??e????? +?YU? ?????~[?'?? ?,D?G?Nq?U???j??=q???!:G?w81mc?9?1????D?`p??????TdD?Z??8i??0|?:????%? r??A??\R?Y|?|??????p???#o +?@?~?] +???!???<6??>???ZO??Cp3N???????"Ge???R'???n?9?K)??Q??,??G??a??????5????hez @SB?Y?g?n?+?X????A??%:?i'?1h?Y?@~ +????????Z??????ot???????Ew?j9???????????SYP-{??=NE????Op?c z??x??g?s???J&???? Wj)+:???#?o;c?(?rv????*????.?Zd4? +??????K-??0?5{??????&pF?m??????????j?(a??ce????6G??O? ?X??v?zO=YU???!??????? 9?.5/???@ +??kV??]?b!Ej5?%}???O?j?+???DK?????&?4L?3?n??f?a??T??SjYqu??V-?KQ? +?B?$??M (A??QAE?K?????????g?-?}'|i?o?v{zN?????????~C?/?.r +?RFi?j????h?.??Rn???*k8]?(r??6+???^u?|??0%??u&????4n???_???yd??+*T?MfO? ???$,*?G??MV??y at 3???dM???????zy???L??;?ilj?????ga????????????W?"??7q]?m??x? *?|?9??N? \??An?}??:cj???el???g?M?C]a*/ia!??(F?+6'??5????zs?>?4ZR8 +?????????up?b1?]??N????.pf?"?L6?}?????,8Dw?L^???s??"??M???? ??x??$zdO'??.?@?q??5? +:'ko?Nf???c?????? c?=?HS7m1??????? #9ho%?H??;C?Hl??????????? +???Tc???j??l N,M?f+lo??O?2???>?????2;?N?M??s????B;85??T???ZUU???K????C???!?vu???jK??q!I)??D5 n?? +?L?U`? +?V??V?^q??6?-4?z ?D)(?f0?!! B??c+c???$???@??? ?h.z??!g?? ?d ?c??6.?Gx?B??cyMX??w?b?j???@ +x?? mt?NW~?9 ???7e????????\???? = |()7??fLj??? ???LCQ2?????????^;,?rh?m????a???FT??$r`?/2????????????h>-M?????v???}???zA???[??2b???1????????#??_W?V??x???)E?[X??X??H.?{I???Z??M??*h??>?-?|???Z?n7D +?'?????vE?f0~??7]?]??K??mbb???3?Eo??????uZ'? h???B?VQ(????&??? ?>?B??Bov?B??Pk?? +F?aE?.r4F?[?Q???,A$Uo!??.Uw??i???q>??K????fL?l? ???r?&??q?<^VA????*s???????y???'4U?B"?Q??_???{?9*?\ ^??Ro?g?8???W?1x$?J?*- +z?R?]I?~???[?Sf +;?'f???@?? x}2r*|j?6t?f + +????g?U?l??=1?"?4p{H?5????=???}??w?v??eu??G8.R:Y?n?;]p?v.??? 1r:#???%?3?;M?.??_????0?|x?????o?!?/N$??<^knij???? a?R?&???f??s]?h? ?A?X?????nA?"*?Ra?w???e?d?????{?????'?????h???????P?>???LtL??????J?d??m(/?:?=?7|???gbq?&??dIl?N?("#??u??#???????????p?3 v?%???)????*e^[Q?5Sf?A~<;2;?'???? ?????s?????P??<^[N?:?*H???? ?????.????\?}h?H#6?? $?? ?I???SRZ?????`?aG?@>?v'?64j1h???,?}!???]????????"J#?nWE?MH?t????m?G??vl???n????????w?B???s/??)???"rO????N???q???X???&(7?E?V??????Q??;??u???_+i?? ??s??d?4M???N\AA?? +:-???%??3`n?:% +?[7"?N\A<}?uVOu???????b??09? +8???3???m?????I?9???E?Zp??%f<}???cn?? q???.X???M??pi??+??v??]{?Ml???-??f3???t\ae???T?5??????r??()E??~???zx_?Z?8????7/??=R?6??????2}S???~Z??=$|t???, ?????.b?|???????:?8>N????????r???N?;?n?V?iu}???P??J??%?-HHHB??? IHx?+@y *??U???+"?Z?t??[??????'???v???7 ??? +??r .?J?????C???Y<???<0?????v??8??Zc?????u%?i?2???V?1??:Z??Aa????.??:??S???IT:?????$?J?tY???Z?m???:?: ?o?I:%qG>??Yy?L???%??????75 ?????z`IE??w??;??]??g??8o?Z????N?4?? p?Ec??n?6[???~d???????1jH\?hK ??????$????kG????o??^S??C[?????J???????FY??R?on???m??|#7V?3q? +?j??$?u??ca?O>???!jX?N?lx??Y\)Q?k??A;??bO^?????c????Rz??'i??n???d??????kl??F?m?f]q????&M|HVo"MZ?N?'??r?=?1?????>\8a??v?????=%?D??????=U?M???G??2?????Ln$???\???? %?bBR?????m|?n?t????C?J???}??Z??L?h??R5??Y*7W[D!??mr???hu?6E???u=0^???V??eo?T?? *??UlQse?!???%{"?#???/NnhRt-?f?N????v?dZZ%qL?^??uff?8?&b?!??v??{&?????e??~?RSE?R???"B,??)^C??? ??n&????sKUb?>????7@"?=R??+;?JS?tcUM??>xM?p????| +?agBAk?^F?D??? ??&?????W??#?]evMy?BFU4?T???P??4w??)?2??F0?Z???y?p??]Xp?E??-?<[? 3?l?L?F?1L???"??U?'a???a?)???rU6??????????`u`???s(n??ar?????>?t????`)?????FF#?????7v?y?~???$?,?????$x? `!?????)??K?B?bS +Y2??????7???:??; +V-kXZ%?,?rSq:?W?Trk?V????^?:}?K??er?2?h???<???????s??????|D??8??x????F'?????5???ElE????????|:}???&xj0???? 6???|?3]?Mzw????r???????/?n?????o?kuY?????_?a??Dr? q??r??4~???5I?W?????d?????+??%? +?????????2]@?$????????@s??;??A???;?9?k ,Y b`",??!ug ?R??T???5-??u??y{????j???3?,M??????????a????n????(?#?h?Lx ?? ????????8??#?95?:?10V?????3??x?4?@>R?F??tZz??x?f???hh??,???a?#?tr?Q??????h`4_?IP1?7?Y??@?+>?????t??????? ?Ip??aV???i? V???IO????tz6?u-???'?M?k_?+? ???FlAK[+l?]?2???rv???????U?????2/>????T????j??:S???u??V)(*8V????%,I?Fv?BB ?? +? +??????????2??q????e?????s???????~ }?o????E6?????????4]??G??????z?????? ??????,???Sz?hP?%Q???$??Y????Qz?h5??T????!??(_??? +D?Da*W1 +??????y??VXZ4??%??????????l?{</~????oo?xk?B???L?Q1{?? ?#??;!???:rV?3???u???5?0?48?m??7Z?~V???h??`A?i?];?-??I(2?Sy*]ta???2?????/0???3Nw??)?????-1???a??3?? ?[?W?.>????????X??#?~{b?s?? GSy???????)v?-?{I????2?r???t[e?RF??*cTI$?1/?? +?dRY?I???"????|%??7Z??K??td?K?3C?X?,??#4,M(??J???Uq?????~`??C?????6i???????$??R\ '[?dm?w??|1??C$@Aq??m?? ???%(v$P???;?@?????#??.????!X??>??N?p????Uxj?\?`??????7?????s?????@?"?w~9?o`$?"u??T:_???gb??????I?e???U{q3D??c? !?????u?!??????????j?T?G??rX?[E?Da1?]?s??????3?.??)??}?????r?+w????CL?????w????9??????[Wz=???w#&?7/?? +'?[??6??S??KH????z#?????'?]|??B?`C??B|?JA ????8S?nT?,5^???m???KhJ5???sU9???ft?,??F????aB??~?oW?????????5????????b??R;?v?S??i?R?V2??J??*6 ???Zh9(??$?? W!?]?O??E=?BP?]??i?d?KsTkO%?b'?YS?W?X*@?8?? ?????j? ???J?????z?{4O???L?TL??D@$AT>?????c?16??? )$?S1;??,?????>L???????u:????????y??y??????0????%???1?}???T????o?o?.h+F??U;?r? z? ?S???4 S???'??%????7????C?pBgt-?0?4?kD??|??6.??????????g??Y?L???.?`?z??,O????5O?R{:5>??s9???=1?Z9??K?j??????""Ovm??Y??B$?F9??,?????}~????n>???i?zEZZS?l0k???r9-??|????h2 I??&?`?-?,.?7wK?v??DF??H+?|mNJ&S???? f???,D?7?9jf55DYa?z/?'W?Gg?uZ?lk?z?=?Y??? X? ?_?ip??O???g^dv???l?i7w??T?????7?{q +?<*`??k*???#????bp???ln$????:ZnS??l?Na?????m8??0????Z???uT?6K???\?????j????j,?D?X?*??&?a?? +??bLc4????O?Fn?X??P{?_:???$?V??qp??6?g????e)+Jw0yq??lV?X5?/??????'?/?c???E??ap.?15:???|???|KFc?S??*:?g???K?HI???v?3??????????n>?/?|??*? r????3?????????????Z +??nGw??I??????(???J??^???s0???n?????C_????*eJ???f-?u9R:Y????+??+?Q-??E???6V| +?9a?????-\??:/h6/???t:Za)?64?s????y?D?L{4 ???1XA?ZSC?UfeY??? +???"?:{3^????aS???????1??aX/rh?????X??^? ????#qG?? +????2??x?*??X?H?iy?dQi?n?a?? +??=?#q?r/7???I?km[????????????"F?0?4l??p?X ???'??/?X??.??????_?s??p???L????#?v?5???J?O???1????N}????/YCh??? ?>~??{Hr-?GT>4H????n?????5?C?#3{?r?M?E????6?Y???X_?ZI???j?????1??T5?????[-O|g??Jx????????R???@+X???q?????%D?a?????$???q???K??O at 8N?;?>?????Ll7`?]??H??@KJnML?? ?????M???8T??x&g???J&@ QrR?)??a#< +???v?].H? +?p??'0$@;???E??Nz?\(??7k? ????(?,?1????????qkR??????LD/?d??`&??pQ??&! ????????E?x???5?`|r2oL +????]?(i+??n?:+ N?????????h?+????.N?CCG??????6?o??? + +endstream +endobj +237 0 obj<> +endobj +238 0 obj<>stream +H?T?=o? ?w~???:??4??Xr???j??s??H +A? ???#????5??????3?}w??????r?.??W???????Q??> +endobj +240 0 obj<>stream +H?tT?R?0??)|?fj!??,?6`2CLK8??B?q???@_???])????e?????E?q%???f?d~VP#YJN?}q1??(?F????i-??+?M??s.C??????????Bc??0hEc?2???3?49[]? *???? ?L??G:?RJ&SI-?z(D!???r??5_J?3???????7??.???@@,?y???R?H?? J&?????;p?p?R&M?sK?????b~LJ?????y`p(?b*?????1?0o????#?`Z3`????????l???7????x? ??A[?M??"7???g????? +4???rl?K?? +?j?6?f??9????;?$dp???j&IIcAz???Mw??d"?b????p??????4#`?S3nd?!$2n??p??x??)?( ????ft??Z at z? +?" ? +????j?@??w}???&!`? ?c??ng?? G??.4J????6]???`???"!K?"IY???X??????? t?q????????Tn??F?,???D\??(????M?p +?=E?}?e??????CiH +rb?D9?T(????{??/???????R7C5 +????2?k???v??WJ?m?????4???=??k &?????i?}?? ^l?Ae??}?`f?-? +endstream +endobj +241 0 obj<>stream +H?tS??? ??!?aRQ $i?;M?v?????@?-????{???lH?V?N??????d??C??8?B???|8?,??"k??i???D#??|?'Nfm???R???4gQA?? ??va?zAs?~vS Vc?w????w??%?Hh??????Ft???????>???X???5:?iN ?9?A??6?&??xUd?j?Tp?I???X?????(??Q???Bb?`%??{An????????JH ?yv>???? ?j?e?O??L??#>0{F?;s?T0??=WK?:E +Z?? +U?T?w5??N? H??????P?n?(??g5??lj?BB??H c?vS?q?'O????t???????T?}$?$?&?(??E?ll?"??3????? ?8???>G??? +? ,C?????y??mn??Q?-?F??2?=?$??O? ?m?@?'?e?G?T?m-1RQ??@7*PxeFu??X???? ,_??????Y??&?#X?Yz?t????????!???u?Bg?B?U?%???+???k???_9?y?}??? ??: +endstream +endobj +242 0 obj[/ICCBased 245 0 R] +endobj +243 0 obj<>stream +H?dTM?? ??W????????v/?V???z??@l?uL?I??????U??a?y??|$?}??????U??>m +Fc"????K.J?????5?????? +???n????q*??3Z?.??8=??q?????????$'pV?vf?????!O?x? +T?$/9?R????????? ?/~????????h??? +P?j?}???S?l?????????T??z?#@b????c>???????W ??7>?m??????d??I?s?7? + + ???d&?N?D{????}u??)U??q%*??v?????<}Qc??8???'L??Q???G?U?>stream +H?lQ??? ????(F?m??I??????@,g????;?#?-3?:E???7??@?????S??H?????~n;??????c0?K?Wl??m????@(???&?2D? ^?eT?q?6?N:?C!????7????0?????`??-j??B?#??j@???%?g??s???q???P?X???????)C??K????^]+F u???k}??????l?s~1?j??ffW? ??I?J?P?+??? )?K??C?"?z9??O????? ?_?Lw$????5k?y???8ax??J?????5??1?mq%??i?&?X#\?.~?Z?Sqx???GV???j?z??EZQ%?,??R??l"??#WY?(?Yz&[?????? +!??F +endstream +endobj +245 0 obj<>stream +H???yTSw?o??????c +[???5la?QIBH?ADED???2?mtFOE?.?c??}???0??8????8G?Ng?????9?w?????????'????0 ????J??b?  + 2y?.-;!???K?Z? ???^?i?"L??0???-?? +@8(??r?;q??7?L??y??&?Q??q?4?j???|?9?? +?V??)g?B?0?i?W??8#?8w????8_?????Q????Q?j@?&?A)/??g?>'K???t?;\?? +??$??F?ZUn????(4T?%)????0C&?????Z??i????8??bx??E???B?;?????P????????A? om??W= +?x??????-?????[???0?????}??y)7ta?????>j???T?7???@????t???`q?2??????&???6??Z?L?????_??yxg)??z?????L?U???*?u?Sk?Se?O4????c????.??? ??R? +????-??2?5?????? ??S?>??V????d?`r??n~??Y?&?+`??;?A4?? ????A9?=?-?t??l?`;??~p???? ?Gp| ??[`L??`<? "A ? YA?+??Cb(??R?,?*?T?2B-? +??????n???Q?t?}MA????0?al??????S?x ??k?&?^???>?0|>_?'???,?G!"F$H:R??!z??F?Qd?r 9?\A&?G? ??rQ ??h??????E??]?a?4z?Bg?????E#H ?*B=??0H?I??p?p?0MxJ$?D1??D, V?????????K???Y?dE?"E??I2???E?B?G??t?4MzN?????r!YK? ????%_&?#???(??0J:EAi??Q?(?()??WT6U@???P+???!?~??m???D ?e?????!??h???h/??']B/??????????a0n?hF!??X???8??????k?c&5S?????6?l??Ia?2c?K?M?A?!?E?#?????d?V??(?k??e???l +????}?}?C??q?9 +N'??)?].?u?J?r? +?? w?G? xR^???[?o??ch?g?`>b???$?????*~? ?:????E???b??~???,m,?-????,?Y??????*?6X?[??F?=?3????Y??~d?? ???t???i ?z?f?6?~`{?v???.?Ng?????#{?}?}????????j??????c1X6???fm???;'_9 ?r?:?8?q?:?????O:??8??????u??Jq???nv=???M?????m????R 4 ? +n?3???k?G??z=??[=???=?TB(?/?S??,]6*?-???W:#??7?*???e??^YDY?}U?j??AyT?`?#?D=???"?b{?????+???:?!kJ4G?m??t?}uC?%???K7YV??fF???Y ?.?=b???S?????????????y??? +?? ???k?5%4??m?7?lqlio?Z?lG+?Z?z?????mzy??]??????u?u?w|?"??N????wW&???e?????*|????j???5k??y???????g???^y?kEk?????l?D_p????????7Dm????o???1m??l?{??M??? +n?L?l?<9??O?[????$?????h???B????????d???@????????i???G???&????v???V???8????????n???R???7???????u???\???D???-???????u???`???K???8???%???????y???h???Y???J???;???.???!?????? +?????z???p???g???_???X???Q???K???F???A???=???:???8???6???5???5???6???7???9???>stream +H?|TiTYN???) +?"?B?E??@*6?qwh??$$$?????h@E?.QPQ???qC??????*???]?W????O???s?????w???,k+????S?????j?,eOgDlf?53????OY????1=??o???x???Q???5M??T5???h7hmK0O????5y??S"??O?M??:&?"?5?lq!9?nO?>?)????;3d?b? ??E?O? +=??N??^?^??:???I?r;?J?w?|c| +?&??I?wI?D+i?????S????????9s?s??5?}9?v???9???]?????? ? + ?z? +? ?? ??nQj0,q +i +y?8?M?h?8eC?? ?A?QATC???m??J???"?e???E???I=??P??/?'???D ?i4I{???|:????Rz=-?t*?N??{?b?0}?????y?2?E_???~R@ +t??? +B?8? +X?)t%????u?A??Cy?D?????pui??0d!ha\a ?3W?=??W???J???X????}?GC??P +Z??pK`yO +?o????}?F]????g9?/?({??.ar9L2????????p?????#??V8??#?????{P??????????c?????f?????3R???1o??A+7????y???? ???????+?? ?[7,???y_???? +V??e???U%o?/???????y???A[/??1????{$?}Sa??Jbw???m?????Zq?>??7+??k??/?D}u??????:'3?W\?~ o'?A?E??s??>oM ???????????0???s??rV?>??&?0\4tu??b??Ae?\a?9?"0EN???p?C??????????g?]??b{M !??D???????C?M0??j?Bu?F??h;`,?9YG???_+ +[??2_?;d4???p??????gK?h??~?{??????K???\??K?l(??"???:&??,?qb?5?2?? +n.?g????B???????? +e%EE?????Eee{??3??d????9t?`P"?@/H??8?]8q~U_?5??c?0??@?eo?_'~????9?a$$?_[K????p?CB~5?????? B!???8,? [i9???3?64?Z??????.g? +' +???8\U??D ?1????Ci +?%????MFcgKQ??????V?????+k??fu??x??I?U?.?>~??:? ??*A???!??7??&?.MZN?Ex]??x?????1???>'??u?u??4?5??5w?G +????3??l1?M?q at 1h??: +???h????&?+ wV@???? O?+???????6??e????6P?E???<?8????S?,m0??gNmP???dyK??? +.K`???8??ef??0??%?]? ?aL???{*?p??1?????}?:@?} ???bp8??a? ?-??? D_z`le???c???e? +?Z?:?SU\?p?C???v?e~H6????xT?bLM^? K?'?G?Lm? ??0j???? ????I"?? ?A???g??8????7w?F??"L{?????a??????????(Er?'?>? ???e?J??8??????FL?m?n?/??<qA?(???E!?8 7??) ???n?DMDQ?0???????$???????????????????????{=?}?? ??>w3?????)s???????H?A??pJR;??%E.?6N??k?f?????a*8???;?[?????.???)??1??q??????????f????S??#++??Q+????I ??"???? ????7?(???W??O?]cT +>?s)b?????k?~nnd??z8?!0??????-?{{?Dv????? +/???u??+?M?Z0??v??e?????Z??[{1?????????-4???o9??C ????w??\?/?v?;Hf?>f"GR[??M?N/???*?&E????H???h?L????\?6)???!?A???+e? ?9j?2???S6 +?b??O??? +~?h?g?aU??[?????@?X???EpX???P??fMnY???;? ???i?n??K??%8R??`'????6o?????&??=|????jc0???hz3;?n?y???Do??|??????;d?hU~?? ????{???????? ?B??????^? O??G??? YdSt?7U????B?????8?????W???s? +?iv4:???W?i7`???|0?[?.l?`?????`?OSy??.Q?ag Z.)? wSs???wp:??N??&?r?u!A?????TC9?R3a{T?????vx??B?e!?????????p???& +?'5$??Ujy?6C^?\m ??t???uE?3??? ????c??\?B?0l-??????cy?,?l?????A(F?????B7kIDl??t???v!??-??{?i??b??o??!`c?`??Nx??t_RI?j?d:?l?K?? >??o?}t?u?Y)?P: ?7)??^???}? !?X?iP?????????S?+????f{c?qSoJ?#8???p??V?0???f????6P?_??}?*????F??.????!7!???A?I?o??6@?H?? "Q??E??p?0?wC???????|s?:v??u Q?&v??H??J?????b??;tHn??? +A??f?_??????S???oG??MRT ?#Z?'oa?E?u,?r???c`LU ?)???tXB?/????*#???c???#M???????l??"y1?;?6?_?Q}#?,???RfA???(n{?????g????-Q???jF?????DT?Kf-???????_?q`d^??[!O???Xj[-?R?M?z?nV?M???.???y6????Z ?E????.mab???g\L4Dk????????p4f??s??z?1?????g?e??a?J??St??????%l????,R1}:Sz?w???+???mJ??^`d+?r: +? ????6??z7???????#I<[X????\?6?D??{??:?16??????a1w^i??'_??Mh|??? +?????4??r?? Q??pk???O???=1?;?)I ?JE??????????p:'{???}???:h????'?&km*???JZ??ad/???y???o??????Fnyv??Pa?fv(???[????=??C?~"&????? k?5L?Gz??????????/??????/????.??id:??~Zm?d???m?? ?qLfN?>G??W??l??jI??0?L????[?su???b??$< +?g??.??????_a? +?H rL%??Ih????jJJaP?"7????~??y{M?NL????o??N?vPD?T??|???#?Jbf?;;?)?Pd(Cd?lk~????5???????~???G?$?2#^??????~???G?>??? ?A?`c?~o@"???=KB)?a?=?I???i??y?;??y8??{8?????>??G???e ??0D=Z??????|?!Z???L?Ep??o?/|??<{??9?? E?.??? a5W?g???17?wgv?(^O????????????d??2?`???S??&w ??:-Z??;M}?[?t??#o?5b??j?????y!????j?`6?k??h??????g???t?J;O??V +???+G8???/W;?%??i???%?)??s?mF?? ?DQ2p?h???iT +??j?!????????L8x?U|?>?6Y????]???!zd??.0y??l?q??3$?Q??b????`?m????e???_?An ????gjUKH?R?.?c?`???mu?=GM????a}??G????_)Hy.??i?LY?*?2??:|?{??fO]??y???Y??????u>??}?`?j?w ^W-??AJ ??b????????[?c?7??~?s??-3?????*L^?0 ??_????[?0!O? ?s?b[???H +??C1m??u9???????[???1Z??8?A +?8 56+%?????8>???_???????U???/??:Y?TO?Hkf?<+Fn?????????_??2'X&? +f(5C?J??? ??\????r1{????p???>??&~???hIMz?????EW?W????1??????B?????_Ln?u?.?????3?????c +????????????4x?&?w?d(utF,?Y???O?????=????<5Lk?????V?? A? 9??D'G ??gR???3$?;-??M8v????<(?????^}?????g???S? j|?T20;??? (G???:????84?2???????#?}?zv>hh? ??\@???b??????|Y?28? ? i??E???]?x??"W,p??????s3?$?V??2?-????=???9????????q?? ???\????????Y??6?????du??-[??Pjui????,CxB???Em!> R$??GR?f??YH???{*??c{??X,)?J?U?3r??>???b{k??2M???????={w??$:a +sMz???\??8Hy??_?K?! V?b?b??? +???q?_???????0???K??^*? +oO73?Y? ?$ ?[?w?????W???????W}???z?6?Rh?[S???9?C??gh?W>??E>???Ic2B?w?6?????}Q1UVV??H??+?=?????????O??%????s%???Al?I?K??/?v?(?~B?????g?rmzmzz?V?/??K??~3 >???3+?[??h??f? >m?m???????~???q??Gn??'????1^?aQ\g?u?j +?`??3c?$j)6&j?(VM? J?? +????\VvYX?Xn w?_?vAnr? ??h??c????D#FM?o?!??????????;??y?3??J??W????H??j=???I?/Fa?d?????????b???d?ds???~??^?t???23% ??F?murn??h?7?????jd??*??*j?o?/C??m7? +.?}??NPM???{??5!???????6K????????????????F?q/?~?iO???R?uQA^n???????| ?ua?????"}?q??&?9??*F??%E????8?%l?r{???v?~?/??vIDz?a????1?\#?4NG?w`%f?????#2%??2?!????k?7 ?bNO?S??EF?.?>\??%?2??? +???@?B??:?? s??????a?K?[n??/???}6??%{?????)??H:!?0???1`???Xz??30?5?e?zsm(J?X? +S??? +?W??? +???}~fE=7Iy??y????Oe?Z???r?? ?v?eX?Jp$?^??N?B?7?Z?+???I!????d???:cu}???!gf???'?O???<`???@?*?s???|ia,j?[??q(????C=?CC=^??f?]?Z???`??X???TS??cMb??k??/??+??4Lw?$KO[J???Q????y +V?iJj?}??[:;z?M?I???d?4???????????B???%???`????Q??? +1Wb??????C?4>"8\??x????????Ys?k???S?8?[????Bq???g???3??C??q??`5nsV?? +??XZ!?\p????[? ???????E?????? ??A1lV?????SX????|??Y????G???Db???zQc???0?9??????}??B???????? ?-?]?]?>?a1?????VAb,?C???????4[?L?????J??q???(????,??t?6rLKp/???F?_??R +k9 ???JU'?fhd)J:&??\a??Z??7z6P??dM??e0?@?SGVo + + W?????"F?QX(???UF?"???w??{E?'???k*+?#??.?@?+??u|7T????y???d$??Q?8Z????V??e???K???X??8b???e*????YN???h?EHJ???$&1?m!?H???2R?5? ?-?ZM?s[r5\+e>X??I?"W?EB_??????fJ????Hr?~?7 ????G?u??;?????F? +?)??{??{??????-?????c4???a??~?>?????i?h??V(j???::????#)SM??Q?E=??-a?U?D??J#W?.G:t?D?a????ma??KC?????O2?D????h???`YN7 Z 2?&?Q}J?w??O????,L????? +3?8???C?jz????Q?o@???6????z????????????xC???i?????%?{ 8{w????z6-?:g???;H?G??????J?D?x"?P?]D???`Q ?? $??P????????????C(~(?o?YT????n"?l???????2?\u???3H??Ch$? ???-?.a??%X+>?' ??!???/?}????{?X?&??K)w?D? +?4?&J????k?^?goy17??'d??8? VP???n4???- 8?Gs?>?!e?y?Hh?]?vz?d???{??U????mj????o`????Ar?Dx??fD????0w????Z@?s???????Dv?fY?+?7????-e?+???:??????/???y??.{o??n?????&&:8B??j?J????"o?]??????j????Ee?? +2?D?H\????5??jZktL{.??N???&?;??????;??3?w???????S??>!* +?f?,??(7_?? u6?\?%???uE/f???+(%??{?J?$ +nEX +?N??Y%B?U*??+??????6? )2??????????B?]?W?$????]"ut\??O?>???U??H_???*Mhm-m9s!q4?? 2???S????5p"?*?????L [BR???????????J??,?b?4???*8?AV?Wm???,?Y?{?1?|?c??h;V??%?E???????Z?4??E????t?????? e?????>?????{ ???F??;\??yZ??^?X?!u0+?6q1??GV?0?6?j5~ ???Lm?&?gO$Tu?r????Sv?? +Y?%?%?????k|F&??p~Og ! +? :????!--a?Mg?y(9??????_??????_???X?????e? h??????ma?CL?#\?"*{Z?o/\????/O6?'???Y????y???h?????~p??\ ?????w5{B'???o???=?JL??Pr??diPdK? +??0X?? ?uZO?N?H? +j?? +?AmEjX?M8??7wz?Aj?|???D +?&z?!?x??'?jM????F?;??????? oY?;?A?>4???jB????Ce??g???????9l&?$???d??K??b?1?? ????C6X?e<;??? ?????c?i*??AP?"??( +?d????L+?Hj??A,????HN`????k?O[?#g?????????Za?m|???mRh?d????y?P?/???W9?hZC+tS^?+V??? +??3??-0-??"9?vHA%l??#?>???7???"??Kp?5<|????????????-|bb5?7 N`?? _L@?W??/? }$???W?????p????d?N??? +?????wVn?W?sy?,???eV?N9?p??E?>#??@?????V98?5ih???]A?n|??i??!g??t???????4U?hz?FS? iR???????????]aL??X?6!?#Q??/3Ky1??}wz??4?*??????u?L??mTp??????js?E?e????L????????4,??8s???#,?u????FXj? +& ???a?8\?_R???Z0?g??#?CF?y?a6?IE???f[Hj?S???k??????-)??o|lli?g????h ?L???h??h???hB`riD?? ?B?2d?@X?? ?? ? +Z??!??F+?D?vk5? +?a1????x} +k{'???FA/?I??D??hm?????4??|????6?k?o???+???S?/???{?3:?2F????? ?????_ o??H??or,??+b?B??]?f9???t?'e?!X+itR?E4 +C +?Z(?dA +?aJ,?^W*e?H???F?~#D?l?L?L???+3?3??.I????W???R?W? ?sZ???a?18p?v?#??;??????N?=?w?W??zU?Q?j?(?)?>?KN- +??????u???y?????U??1?c2??A(?_??j?Tv)?&???e?????> +endobj +248 0 obj<> +endobj +249 0 obj<> +endobj +250 0 obj<> +endobj +251 0 obj<> +endobj +252 0 obj<> +endobj +253 0 obj<> +endobj +254 0 obj<> +endobj +255 0 obj<> +endobj +256 0 obj<> +endobj +257 0 obj<> +endobj +258 0 obj<> +endobj +259 0 obj<> +endobj +260 0 obj<> +endobj +261 0 obj<> +endobj +262 0 obj<> +endobj +263 0 obj<> +endobj +264 0 obj<> +endobj +265 0 obj<> +endobj +266 0 obj<> +endobj +267 0 obj<> +endobj +1 0 obj<> +endobj +2 0 obj<> +endobj +3 0 obj<> +endobj +4 0 obj<> +endobj +5 0 obj<> +endobj +6 0 obj<> +endobj +7 0 obj<> +endobj +8 0 obj<> +endobj +9 0 obj<> +endobj +10 0 obj<> +endobj +11 0 obj<> +endobj +12 0 obj<> +endobj +13 0 obj<> +endobj +14 0 obj<> +endobj +15 0 obj<> +endobj +16 0 obj<> +endobj +17 0 obj<> +endobj +18 0 obj<> +endobj +19 0 obj<> +endobj +20 0 obj<> +endobj +21 0 obj<> +endobj +22 0 obj<> +endobj +23 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +24 0 obj<>stream +H??W?n?}?G?dp??$?}Y???6???? `??????lws?/?????c~`?S?g$???f??X?S??_??h?????l}??x????.??.^/r??^?Q???"???S?y??|?fy$?Y???xqwqGq??????????Y]?????R%ET?w????aa?(W?8J???F?]^J?>Z?k????*%??g?u????E4f???q?\???R?Q^rq?"]?b????K?Dk??????=?Y?DJ??????R?O??9???C???@.????4)`T?aY?do???<Ql?v? +??Q*????b\???????????Ke???D?ki??}k?????mYe&???{-J?mP?u}{?{?Xww?N???p? ????Gn??`??~l(>?Rr<.e$?|?q?7??I? +?S?_R?u?U???a?-???,6?1%????R?S???hjJN.lS???D???+?]??S)????f???1(?????vl??3?lF??m???!8?S$????????K?y?WN?????l@(. ????k???/???/G=?????B?\]?.?&%nPCL)??ka?? b`???m7????\ ??b??????N????? ??uW???8??8?*????=????{?j?q??!?-?-?Q???'m????(???_?2`?V????]{?S???T???%?n?7????????? 6oe??????????,???|?g?F??q??g?~?9?K??4d /??Sry*? ?M1^t?/=?C?eO?????/??p???[6?lT!d?R'?Z?g??o???*?????KF?s{???2??S?L +W?g}?}??RqM????9w?2H?3wU???????  +??Z??s'?b??S??\"r ???s? +?&?8]?(+?j??4N?-?B????kf^Y$?T?!?8\?????<;??????Y??78b ?p? ~J?J????&Pwb??? ???? nj???/Y?7?nj?*???v?aP??(??????mg?Q o? +%7???????-???~?g?xY?S???#??????????????0_Hq(??4?????ijNc???R[?w?N=?@?K$??6E?CG??7Y?O?u???M ? +??Q4?Q O??dg? +?F+x?T?~??xj?c??V!??f??X?;?k? C?v?+????]v5+????v?_?K??????%???g I?????y?`??W???U +????,????P??\|_??? ?6?!Nk???"?Q??????@K??;z5eG??%r??q?z?K??`X??Z"?@??]S??n>???qt???}?gMf?????.?????Kc??X?{ze?|?p??????X?Z???rS???*M???%a?\?W??8Pn???!tU?W?oE?G???*?3??y:.?{???.???>I>K?v{(?/??9?Y +??w??)??6???SIX??;4???n9?g? +?? ??????+?`????W?v|`?O"??}?)K??O????L????h??gYq!???!??x=?j?????????b?N4B?hFx?8?? ? +i??`?!???}?( +G?TUW?{????)??{G[?}-??E?-??.^c7?sG??\i7(?`HP??Y??R????????d??`?{?ZJ????Q%?9??tF?i}h??]?C>"W?|?`+Yw?Hb??+F??,/>?Hx?/?lB??s???????0?K??y??c????/????;[6b???NzjQ?????i7?????)???z??w%????N??q?^i??1?Y??X??"???\z?E???"? +? + dl?????; 2?a? 5?? +???,??=????B???????????????Y??xsn=?6?a0\)o?0?U?Wg=k??3~T???HfQ??A^Bd b??T ++[??d\???S|t(????v?>\???c?9?^??bLSn?,v?J???????H?u'c??'?J???<????/?h1?$??3???4O??yU?1i???x??Kw??C?vy&?f??-??>?s?H|??UK???C????V~???3??U?LD4???P +Z?F;?N]#9??????j??? x?C.?{???????[ ??d???_F?|yD[??D?M?Yo????p+Q?????b??????????8X?lV?XN[m3E=#???S???v?????2 ??wT?? ??z????8?I????c????O??? +?????3I??o6x??-?lF?O1?^??????a~??? +??jt?q??[+?f???????w_????s??l?????t?2l????X??[n?~?/+?\ ?? ???Y??%-?????!??*?????.Q?????K??2T[??????????????6??v??gJCE4??}?????'?"?W7?_Mb???FM?|J?6#~n???r?^?:????T?????????? 6K?MyV?D??0???",??,?/??b???~???xe??A?QH?.7R%D??D|?P?RG???$Uk??#?jU2up?d??VU?O???T?W~?WRj?4M???u?m???!~6???{?f-??wn'??)??????@s?????s?`d?%????{9?l?S?????A"? ??????r??*T????%p*A???}@;?vD?'D*T??H? + R???=?s??m?H??;?R???|d`?{m????????~?????!?c + +endstream +endobj +25 0 obj<> +endobj +26 0 obj<>/C[1 1 1]/H/I/Border[0 0 0]/Type/Annot>> +endobj +27 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +28 0 obj<>stream +H?|WY???~?!?#'???>?'G?9dX????g???`??[?????%9\z8??w??3??8 +??KV?? ? +????ip7??3??iP?w??-l?????????o?0??????B+)?Y???? ??y??D??joHV?7i?QC+,gmg^?[I +<3?????????L?u`?EI?D?`???????c??yY?i ?*t(9???i?u???1??l???QE?*~?????j??I ??n ?oQ?????? !c:u?????????????D.-\[???5?Y?W???l{???a????6?i??YAM?W?^C?l?n?I$2`@E(???A?s???VJ???/? ????7!? ?I?8Y??Ff??????~G????g??Ad#?2????????"????a?5'?W?X|)?r=.??'y?? `????D;&M???&?????cK?\?????1?V??j??I?ef?,?3 +L?ZYQ????^?????!??_???1?[?A3??7?.??63n?jm??????7??w?RO!?`|KRon J??Rz?N?`:?|?M?k?+???????8k??1??+\??0????D?f8???S??8?x?Q?????`?,d??O?b?fM?4????uG?+0????O??)?m+??=Hd???(?'l~~????l:5?a,C?(z??2?wf>cO?e at L????5??f??W?m?_=????N??? ?9n?x(??Au=?+AC???????????k?? q?t?V???o???<_k??#??O?e?]????V????@?q&?rZk??CG? +P??M37???{ +s??H+z +???@=?????rI?;qq)W'1?;_q???U?m??!W^?????>?p?b???{&???4+A.c9??-????@?? ?Jv7??}>"??<???c?$?02 ?RbKjD&.c?G?y????????D?V?T?{??]3\/1?o???? +???Z4F?D?s\4?(q?(?6' W??~m??k???? ?T??O?v?o??L?Kw2???f +#??Z??????~z?D9??}?d??q?p| 'b)?]????J??+?d??J????pe????<?{??>???x??5???????Z???>????p? +?l?_???5v???4??A?????|????}??"d?????h?ka??l?\??2 ?$?tu)F??D'v?y.?H_?l?T?=?????!!=???5p]G??M!1???????{?;'?? ?h?JX?????np?x?+4+T]??'????$?c7?b ???&??`??k?z?u?'?????? +????!?K??Y????)I>??Y1"?6?A??9??????g??T7q?? ????????pX _g??$??J9??% +??e???'????w!??{?Z?$T??|v?%?3~???J?'??.+?.9y?]??D?C?VEW4??%U3??j???];??\?E?.??=?%,R????Xdk!?)???S???w?Ix???*K?A7W??? ?R????????? + k??tR?V?:?> +endobj +30 0 obj<> +endobj +31 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +32 0 obj<>stream +H?|W???F??G?y?n??(KH?G?UFrL?9???q??x6=>blw??c?????d/??0?????^%&N?8G???D6??d?r??N??? +??Hg? +c_=?OI???71???D`"-(? ????7????(}???3. +???T???Q???J??On?M????/?I?6?I?}h?AA?:S??ev????H?+q??Yk??6? ????H??\8PU`?F!ri$?b???? +$????ny??????J`? +?x???P?D???????*n? +??,?????e?(?????~????C?? H??H?i??o?>?\?H);R?F?/???4?L{??g@?U3_?7??D?Q?(???+?!Jt<-"?0?A??8????q???Kv?!{+o?TG3?????O?!\zT^?B=??6????M?mS![????-K?????(6??G?9,W????N?g??]_~@l????(r,?^"?t9 +%?Y?6?tD??T?[??B?X?3h??e????.????Nq?w??&??y??O?yR?S?Q??[x???7?Z?@??9??k??#???!;1]? ???V?~"e?a*g??t?? +L??????0??s??mb?? +??m????9I{CK!T]???Q???k????HP *z?q &????HI? g???b??n?x???-?r?v???P? ?E????IY???e3t! G?:??????@w??|rM?5q?+? @??\??L?I3Q9\??W[???p9??????R5?e???@????j?/1?b?????k??4w?KYO?????g0??WW???????s?????*X!Jb?t??z???\?????,????4?0r?b?!Dj?F{???o%J?D1 +?T???? +?A +%??H?arB?dt???$?)?Sn???({????mJ?? +?????6 -??????rx?9?C????X5AF(g/?????3m.???n???????#?f??v??*??*(?>?????mg????l???B7??l?????f&??v????*???E?0??7????aC,?.?Zz;S1?I]????{G]??j^t??FJb?>?f?????{?? !5QC.??????e?????z?/k????#2Q????Fx ?,?????/?F?????_l??o?NQ ??V?Ey?S????)?U????sC?bB?? _+.?-???8??iU?;????[M???4-?*1???m~?g?????jZ?(?K?Yg???2?\???e???:????:?????+gS?o%.?f???0????M?M?pk?oU,?XD????G?M??? +?T?Z?d???f???B(??3??rYM??7M?????Lb? ?0M(?_;?di?<j?[???f?Z?[?b?w???????1N???q? 7?.?i?Ww???(N?;??V?G;????K(.??)??l??^c?Y=??E?v?K??\"????\a??? +F?????.?d#_??????+???b????? H0nF??? +??*?:?epJ??Xb?RL???<*auY%????lPC???j?A`)? +M1#???Lb???j~u????U??? +" ? al)??u/S7?.?|N?????l?S??????????nN?5??c??c?????8?3??????Jo?eX??w?-T?||?3?ypg6?fk?x*?<)?f?L?K? +p}!??=??(????;??&Ba?J?U%U9.?o??K/???f?r v?j?Q3????8????k'9S???A6ZL?]???#??????????XS?P!????o?3??MBJ????/?????WE???H??C??H??K?U:[?k??!?{f??_VpdnUE ???:Y?????????aQ?>?zhWf1Rz?D{C??o??????????2S??l_?*G!??????f???GBW?-?Ry*?d??yxa +???H?j?(k??"?????$??OX?9???????9???-8??ZK??Sg?#? +V?????sB?Y>R?\?=????R*?$S???R??6a??G??X?]d?<{????".k???`?e?6_^????@=p2?1???S??T??????????2?-N?0%??????~?????? ??L??'??0G??"%3?W*????6zx? +7??'??&/????V?zW?qgUH +?JpIv???/??o{? $1?W??X?t?3%?L????:???8?%???z`hV( ???"x)?6sk?)?jf???????2,????????k2Eb ??F???@ ?? +9Hbd@?????Hr +??L???????Q}& ?I?????MgG????l?r???g"q?&?u*?S$#?ew3PJ??`(???o?w?U;?9????B??FbUR?\??fn???????"????AQJ?^?`r??B??E????X?%5?I??Mo???d???2????'i???c??????W???????????d ??????kl^?E"???s??.?K?gm?F~W?n?h3??????DbW?[?q? +?IU`?????ReI????@y> +endobj +34 0 obj<> +endobj +35 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageB]/Properties<>/ExtGState<>>> +endobj +36 0 obj<>stream +H?tWM?e7 +??_q?as????%?HQ)?M?03IA?&$$E???H??}??????mI>???????O????_~???????????????>???t<}kg+\????oNgm|?*'?|<=????-?!X`=???Y?????kJ???_?l???b???}??w??????|??W????%?????>~?????????????~O??_???YC???9???>z?r??Z+??AB?|$?g% +???|{??3_?x??MdO1?%???z???3F` ?Ig????!?D??K=S(o"?d?kR?o?L?????-?|??????0???_,?x?&?9??3s?k?H? ???Z??d?S?d????????????????? +???]l?pN [?-?vr?T.?$?,U?s2?,SDMig\??F?jA?b??p??d)L???[??????-`?mC?MjG???H???iO?!??;?S9??66???mC?np??Yh??"u??fw?Md;?? +?5?U6?.t???b-?U$?X?.m +?????-??$??#??CU?4.??k?b?8????Z?(???b?;`z?{$?????4?????-?[%?"??????O^?k}_???Zz'?d??????]?????C9Dsr.v>??S??Rf??????8d???e??x?;`???-j????B&x?y??????G??L6?????????;%gO=???2????;?b? +_?i?????vj?\????/ ??p?X???U?=r????$???m???{g?1z??? ????D???\W?E?&e?z-iy W?-s???[(c??O?~?!??????]??m?T????G?2m?`??s?i"???? +D??}{ ???&_?/X?9???e\????g-V?i?Gd?x??mvNu?x??D???n???????7?{8q?bF???SZ? ???V?=,n????? ?~?????U? +?*x???#h??M???z;;?? 6 +g?j+?~y?`?^??jX +???a1T??}???7?|???W[yp?h???!?j???"??!?? ??,?|??.}?"????X?/^H? $ ??" ?~??????3???W ?#??_/??dl6??i???????????? ?.??wbH? +j ??7?T?el|???J???????O +j?jy??{wDfh?EbJ??Q????U???q?)e +??'??N?_??????cV??]mt$lz,?Y????@?????????9??#?C? HR??J?G??s\ +-??09[*???`?"?tV?o???%fy ?L??1????U7;4??o'??V???????6????0??Z???>?W?4?(?I? +,?c??B?`????t92Z??M??1????/?Z,??H????????9RC.???H,??????U?7-OE????????????2? +?}A-z??\U?/_??t?_??l`?Dt??;?[?/??7PF???????}??????a,v??\????E????H????? +?MSCr?B?%k?kTM?GMV???g? ~?' 5?? 5)?1U?(????????.f???????y??M ??W?7g??/"??? e?ug3{Lg?2??y?> +?E???;??? +a?>d???????f?? a???or.?+??????Y??G?Y???"l??7?nG???????Ws????????+??`?B??UYFj4%???c?!K?i??B?=???W?rg????P(?{*???N???M??S+K?\n#??s????p???wD???2??k??h?Y%6T?!2? e?zG ???????L?J\ +I?;?Q?_. at t??{???x??3Jg E,qG8B?^?? ?.?J7KM6?eh+?????h?z&l??D[????? X?????x??S?kr?????rF??h??y?P4L+???v?n????DF?Z?Z}#?????????V?Co???????1"s?d,?;O<?K???d??T??(?pBty!N?r?!? +@?Pq????2??wxk??????????7??, +!??h??? +?7?t?B????8??T?v??>????????{?N}|?8J???w? ?1?:?Gc?+?????/`f??r?H??|??wfwL?O????V????!J?????e??2[?{H,??b?[???j??????Yo?????????,?q?>????T{%??v?x?Bw??????XW?!?]??sE?? g5????5??????X?@N?8?A?????l??}#??@VZ???????^?m?})j?n??^??{Lx??_????G??2???1$F?Z???Ex???X???|?3???Zh??? +?2lzo +??#3g?+<?C? +??"b?|??3V ?V?y'0?Sgv??T????#?`??LGKpxk?b?!?.?7hl?5?zix??P????Vb??S?b??c7???x?H?=6Ht??????2???R??$???pq??ziH)^a??yN???B????%j?t ??H?????A?;?V????????GK/F+.$%???A?? W[??)??rMu????]8kd?C`DAK?tddJ?d??6?7?U?l??? +%?s??O9fip??e????N +???R]?`!????L??????????E?l??`S?????? !?F??K???&???"?T??\g??8?Q??D??zeG?>V-&??*?dB??P\9?????????,*yk??TtF?\???ES???lY??~k4?VXv?\??/??QZ? ;r??C#[?B?Y?bw???`???H??????n???{W};?V??M?f? ???|D??X2??7????????VBeoQ +O??~?c?8?xH?8?J????0??h??,~???????/??t ?Q +'?dBk?M????? ?E???? +ihr??????J^dl'q?cb}! +???????e2???Y?, ????V?#???c??f??{?1??F?????????6bB??b?????d,g?%??8r_??#'t?Z???xW?z0?P7??&:`T?B??f||E$Y????$41?????A??;j???O??'_d??eo?jJ????? ?"?`?j?=??^?F???1????)?&????? y $????$$????(?6??(??"???6?????v????????;r?????fw??Ay???wT??1Ma??eYVC7?lQ0j???l +j?e?Q??./??X6??h???????C[??G?6???ezp?$?xf??=???f??d?gG0??x?s???#????x???|d??l?V???x7???"?}!kU??????????8<??3o1???+I0??|Z????0G???? j??2?d??A???A?R?? ~L?????WL2t?W1??????,b???,(?u?a???z?1???'???od=?????u?>2?W??G?q?W????B??~?????x? +~V?????F???w ?}?#?`?%?G????? ???e#N???f?y|???B?D?.j??M?={ ??oj?pE??@?c??H??p????$1Q59?3????L??~? ????L?KL3???a"???6???J{P???z????1?+1D??? +?h?2?fQ9Beo??J??? !?W?yk ??>n??%??g(~-8L?Z??sxp?? I??|RZ? j??-???????M??? +3yt?IAcD~?af?d?.g?F?bgDS@,??%??d???C?:???-??+?????g0~=w???-?A +???tWK?k? +?J&P??? ?z???;???N?me??m?1B l3=h????????}??u[0?UY@???? +=n? ?y]BV?k?D??>?????6????\\?????,??* ???a4==m +???)j???m??RV???????A?cjr,?_??S??????????V????/????r??o???Au?D' ??b?T??N3?????_????a@~???6??HU*?o? #6??|?fw'?R?????,?~??????I3??z?v? r???>??]?8Fcy??F??7?/???E?I????g@??^&Y?$Y?~? Y?`9?jJ??5???5??W????????????c!????????FY??cq???A`c +??Hc? +?96?X,1??8V?U?cY?96???9k?]?w????cQ??9??8V?????>?a?I???O?RP?G?A?Qd?r?? E??"??lU%??GD?n???????Q#b???? +=f#? [??}? ???>{?@??'0??\?L???b?????m?????vV?%h?G???+M???[?????zlo=,??x?O?4w??EI?v?-@??^?]ak?\????M???09E^???E???t????????0D}??OV +???=?6?}?<$????? d2 K9????3??X???k]$*=Mj$???f"?Obn??#??_? +???]?]?3,3??%G??????????LR?=?z?JO:e???X??0???? +Dd??ZE??D?'f^u???f???4???,? oE?1R?v?]8,?4t??m?\????? ????!?> E?5?d?Gr,-(liQi<A\??? "?7????Z?D?l??X????Sba????Vk?I?f??x???S??QNO?E';\R^??A`?"???m?A t????P?N?s?b?Rj?? +?]?????[C6?a? +?UP TA???????L=?V?? ?r?N??3U??93???]?*H??4??4?=4?`?r?q?a??T??CUP???Q?+?(K?]S?N???e???F?-?%?o????????Bdm6?????? '?P??-Y%??o +????]? +@??1(??]r??9??y?@7~??7m? !yp??vN6?|88WP?? +???????@f? =????R??N?]?vH???????OU| ? +???? 3o>W + ??&/??~lxL?o???K????-? ?m??@?????!?????C?H?nwX?]??YF;?)/??????|????m??@?t??"???.???XZa?l?s?AF????Vx??!?T??5C???+??"??y?|e.J?d?~Z9?*?d??:?????>T?[??S} +@~??@???????-?????`J????Y?f???{#T?@z??E????)SU?$4VB5???u?u r?_?r???????N??? ?@<-X???+???F ,a????cK?\(GD??sm?????????-??9?!????5?f?B?T?jK?u4vm????\?L??e q^??o$n???B?D?Z????ckIr;??????R? ? ??????F0??.?????@???L??j?U?g??,6?V~???7??[??Q? 9??U???3+?8?????V???v?$Y????OQ'?`???/^o???;5AR???Bh????l=+c?Y??z????%????Sr{V???Fk?d??7?,?K}J?m???T???Q?[??JF????I?????{~?????T???^I?_,z??A2/?dN??e??????????L?M??.????g/O\?U??]?e??aw?LQ?????h???^~o???4??F. +? ??^?[~?$???????W*??u$?4??n?X?*m#D2?????t???W??Bcx Fk?. ?1? +CZ??8?W??b?B +sT?NT?v??e?????????????????^k_7???h:?????????}?.??G????f??7-n~J?i?=?? +????b W???t??q?????????a??$Yjaw??7AAS??+?hp*???@????/????N?Ht???y.??Pzc??H?T\????????z???????8 +?1+????s???RD?D??D?&?g ????h?D?? j( +? (???-?5???>??H?K???????c19??W?w??G???????O-d??)???:??.??I?=??e?Mrc?$|?+??y???X?L????2e??#?I4?K!??'?E?G??/$t???O ?B@&s??L???Nh???$???D??n"]??R?????nH????T????L$>W;???^O???? Zs?U????KJ?-??e _??R$]K?8>K?l?y? ???K&?) ?$??????????^??} ?RJ~??~??Q9??f????}$???T-???s?|?-3??6??X?#????wOQVH?2c]?#?:???e?G??q????Q??f????? Y-Oe?[??4?[Fr{p??>?R???f??????YT?u-?????iJ???'??;?[?,MA??{K????W7??B??=?QpG? +Hk?????U???W???O?8?-u_??? ?? ?c=?A?c???)?O\?P?!^???J??? h,?????,xH$_?????=??????0?Y?y${?z?D!?????NP?h=x?>???_?%^?~???s??d???:j=>gP7???????????l?8?4D?i=X?>?|????L???????o?N???>??@?:? ?7^vs7+?;?k???Z&w????]7W?y2?.?m?/?4d??po?X??7I+A]3??F?*??/?0??H4i?#???lC?8???g?/q? Tw"?dX?L?1?%?S$?@D???????Y?y$k?^$?u????Pf??5t$`???????t"??>?!n???u#z?? +D???<???????u?!?N??+????=F?}??Q????c]???T?@????????Y?y$#u?????S??Ak???,?SD&.-?|???^??Kcv~?#&~?????O??D??ef??6D?i=X?>?|???j?????!???}`^<5&?ueA????????#?}]??=?`wD?i=X?>?|?W??O???????????>&3??F????????y$?R??u?m????`???a?1?e.??wm??yG?$?????????i?!^?? +:p???q????q??????V|??T????? ???B?I??1_???W?M~ +z????:?(??????? ??r7+>???I?e???6???z? +}??p??O?Z?7???;F]O???s??#?~????,7w???H???a?1??`?"9??]0^?|?c??O9/???C?????$? +????ucq??Sj??y$?Q9???7GD???U?3??y?pQ?7???P?????[_sZWW=??s???Hf?r?N^1@??jP +e???????Z??wZOvK?{m?????Z??x??? }#e70q???c??T??K???S?????3??{?h1?Z??w?????Y?} +??B??L??j?? x.??&?'J~?Q?i+?r???? +?s?U?????oul???^EN?3??^???? +8???lP????????k?KS#??v(???????F??x?Z??"?l???df??(?X?.k???I??????;??m?cF\??L?4???h??z????k???uct}??????IC??L!?i"[h&?q?%?????o: +%??z$???*U???W?D??4?-???RV<? +~b??e-?8X???8?2?!?r?K??????-m3?xF??0n??*???i0? ?j??e?(? X?}C?xJ?V?z???????.?+g' +???R??F?8???r?;kD??a?D????F"????8;????T??jEy?}? ?3??>???Y4?x! +?)M^o +?j?e?]????CM???*?I)B?p?????J?P???U????-9? ?H^?f????j&5&e???"?,cdX????,??e??d??%?fPf??1?? $??cd??rp???="8v/qW??P?3G?[~fD?=[?2??7?6?bW?9b#????es????Rsg?Ga????;q???1C.?p??1Fh???3?6???r?[?^??? ?.?+???s?????#?E?? ??q?????0??m,U>!???8?mH?Fp?1??????&??{T??????!j??]o ?V?[???d????TPV?5F8??,CV ?+Y???u??4?@??]???Le???Y??}"j1?f?\?????,-=e>?c???????O??Z%?Y????'?Y???? ???=R???????????????i???:PW?5?Qs??'?R?`?Z??g?????6??+s????#? ?g??gd???G???,??N?;2??3e>?qV????@?^%?B8??,?]#?]????M|?`[?%>??;(?????GJ????|??)e>???G????&>?9??R?{??V$?????Yo9t???HB?\f$???~?pBlh`?P?!t????{???}8??P?3?w?&??q[2X?s?%!'? 6BK??r5?Y?%4;????]2?%g?HKn?'?? ??G????@??K?\+Q??UGuC o[??b?q??b!_?9b??W?????3H??+q??z??' +?nKRVp?e?X ?1??9?????p|K?tF?????6?e/??c@?u??egY J3??bN3 ?r? ???e?????zNb????,??2G?e????2??$_????h)0???dl??W[?}I?]F??9cz??Gj!?]L?wZ??y??? ?n?p ??????A?K???^?#?q?J?}??nG,??????????e;??9????1????Gv?J?>?a?Y9???R 3}?x??!?f"?Ow?d;????? +??????oR??}E@? +??G>?? ? "%5!C?~0?,??U?l=!???nvE?_c?7??&??k?!??(????-!??<| ??????1?(?Q????? +?\R? ?Y??B? z`D?%??p?t}Q?#u??d0[?Q?i8?_???/ +(4e#??????????h?????[??"?y??My??x????x??'?m????????i??/W?9{h?R??,"R??G# +????V???+??7????????+??J??S??eAv???l??????? +"?5??dj????g0????$??O?=U?mR?????J???%?l7??Gv +[#?F?^\=??????`??????Rk?????e\?d??j4? +ueF??U?v???D +?F?CgxQ?Z?-?+????PU????z??r???m?a???F-???Y?2?M??C?@? [@?I?%3?8?H?? ?L??>?4?? +?r?2`f????j??m?0???2?}???M? 9 fQ???Jc%/????????????7?i? +??r??pc?,???P??r~?y?G??`?8?B??iuK?#'#?A???7??oH;?`DF??n>J? +n?[????g?*);P????j?pd??kzv??>?G?`???y??Er??Hv???B?? 77nx??V??H????????? ?w???![C?|7-?????Q.[S????K??5??p[???-?????K4?Ij\??h?hFI?f?Mi?25????B???rH?K??ls?_?5?!??P????9dj???&sE?3jp?c?C?]??w????.??q???L*????(Ee{????"h?Q?.??s???????{8??rV??s~u?~??r?v???C?y?dt_mq?X???????G??4???;??b3?&)?#???????% +????=? +????YK?`2?VW?`cM?4G?i???{??{??Xjn?o? 2???????1??<?Ay???cq??]??c? ?J?/j?Z6"?0d??_???????B&?C ??K/??U??T??^)?????y??? ???m ~???????????q??+x\L??q?m?p?(? Y?bK?????~?tK:h?8????Keg??SI???c?=3u??$??*? 16+??????;D?u?Wu "J??|?????kD????#%?",???Iu B?????zU'D??U}?[???+??p?i[_eqD?,jPe?sn?????\???U?^"jV?WW+?5B??0i???j?VL ?>Sr#???Zu-GHE?X???\x#?'w???C?Lf5?I,?@3 +?8??.?W??????W/??kO????n?R??dP,???????FdNjP???q?\c???wZ,~?DR?i#?,?,2??T?E?)?q?~???0*?W????%?n????#?M??] ??-$T???:??,u??????? )?<"???v?@?b?Hi?}hL#?}??=?)c`??? ??]!TVZ????)???E?;?14??????Yc???!v???Q/???f??71???h?2??%C)7????c??PA"?{+f!?~]W]?p???B?j$S???m??Q?p??H??F??:??h?FV??s?#??????DvVQ?1?X??ld ?!",??|?F|??I??????%??G75?zG0?????X?e!??bf?? +b?B_-v1dz]??}?????:]???H5?x-??9?A???|?}??9??pz????????????????????????+Lt??9?D????p?P?y?F?L??e?U?|O???????????_O9W?5?.Ad??F at 4@(tE?F?C? ?dL?(??r?2b?%??+??#?K??>??B??c?Y??????!??'F?d?$???@o?b???#(7E??t?o ??|???>?]>0?s??S?????I? ?Q 'w??" +??0?g +I?e ?S????S?X?6????WaQ MG??xD????d???FT??|?=?????v??;???d??uA???I????B=??? +G?g!??_GT???]??p}UZ?.'?Kjy??v??M??lH?c??|]?R???B?S??o?|E???}?} ?e?????/? +??7h??z??w?????7?????e? +J?L +??{}S???A?QM??a5Sc|h? +wv??]X +oQ?rV(?"?Qc?Bg?J?T??\?h?M?0?:1?5/-?S??Z?8?jf??V +;8zHo?:??G??N?i,V?2Y^?5R?[???!?F???i?O?_???k??cf??? ?TB5^?T?h???8"??? +&???^??????0?8?b*??Z[H????S???$2?????#?????N? +D?k ?if??^O?IF +h[??W&WVg????9?.????FeKM?=???o??q???K???????????1?????y?C?????s????\?>?}x??4w??K:??X?&g???Z?F?am??-?1???o?????3??1?x???/$7{?d??P??7???9-d??2?l?2?>4D2??TW:?? Q?Ki=4?>F +H?#}???C?ri?,0?5?+??#??C?_????@??L?q ????3d????p??|l:f~`g??? ?6 ??rP????<>4?*z????3?vCAy*zz/5H? ?W? +??B@????9!???h????|?o?C????y?sx!hvi?zG?\[???U???Bj????R??r?e??xjh:?y??;?ou??ZT???R??T????5?W +??-\3&?P?#?J???8Ey?F??7 ?h?0p???)??m??? +Wd`?FC&??Bd????t?y??? +??9??8V? 1G? Vb?w??ubF f?????}5?????7(???$'?"?Y?Vw!?]??? Q?5?+???"}]???/fgW???CC? 5H?@?j*???"??WP5?.?@?TM???uIs?????2?d???j?H????b????P ???J???Z?8?I??9Fcu?????QbQ?F +???7+9U{?"??F???S??T?B??YId[6?k????????hs>4J#I????v?v?dj9?F&#S?Zc?$??;??I?Ot?k?N?V\!??E7r????&Kg?Tjdj?4^G??i?,/s#o +???EX?q?7??+??5?b2L??R??w?C?- ???5:'v??'?dC?@?t???????N2?Up?p"?%q-;?56?dW5??????R?.[?F??u}>??O?J??,?#?mh??4??`???m????@x ??9?0??????Zi?b? {N?q?-????????Lc?tZ???+??z??29??B?DD ??? ?lR?b^???W);???n?????C${???_?E?P)"??So?N???5?d$?p?C??>???k??N??"p???????4????????W???0?go[???(h??`s??:D??????rw??bC>??(????eK Q}??#??(?9?|?????0??j??R???e???h?V??$?Z??5?y????[????5??=4????r???Wy?w7g???`l???$???????-?d??????{?^^a?d?? +?q?0?????O?????r?-???qo?? 7?3m}`_??^? +??? 9Q+~?"? a?{Q???O?iL??a?y +?????KL??nW?K?.?K?|)l ????y69???K???h???(????o??? ???-lR?[??????o +???I?B??t?8?:????L???3??p??v?O_?;?????x???????????2???l?,?Z??j?&??E ? +??>??G?cG+Hf?}?1?G?pm:???W=????hx?t??"d?6?L^,. ??_t]a6K0ai ????????c???U?e?z??72rq?\`?L??k?v??? +?Q??S?t?jsW??cd?>,??Z'?i?u??e#????????h2y-6CM???^???? +?h??Qm?T]???ywN????Pt[??0????????nh??:i???/?f?????@?$??T?j??F??????1??H?TD??\????k??????8!6?m??Q?u?t??g`|#???'24 &w?,m1gs ?oLN??????V?h?.??P#\m+?{,?-?e?^? ??C?0}??K??????o??e?.J~?d??m2|j??Pb? ?n?+??7???A??@P?E~/(?E:?0=?aK?O?D??j??L?uS???M?? ????6???It62???\+?-#>????e????ii?)??6?h?=v?T?p?#8?v?7???5W???tWM?,???J??|*(??;?3y???D???????"???{??D?{&????l?<2l?"?????}??68?????g?????T?8c??????N!h??b???d?Y??????9?H?????kC,d??82 +8?Ezd??s\H???n?????)??Qx???? ????LCsD???u?0?s???s??E?X?]|S??????p????X1z#?Fb?f!????? ?????U?4t??b|g ??l??Q?K??????,?>?[??>?X??hi?? ???A +????J?????J????-G??U?R??6?????W? ???-?! +V??wr??fjL??!??? +??SZ ??][?HC?,??U???d? ?C???\Q???????????i??-s\?????????"j.?l?D????:M??H???1;?@??|}ZV????1?PQ?6w???ka?;???????tr?q???;[???2x??wk( +?[:????k?_??9Z???nm*2?]? C?lx/??W?e?j?3 G??? +?vrz????qL0GT????gTjl'?i{?????????q??3?;?<????mG??o +???'????o???R??34?$1??S?z??????K??A????`h?SC8??F??QL???9?jOY?RxM????????2??)???=s8?6??[??,?l??????mr?!%????9?wX?l???l???N~?>O?7?U?H??4?3?N?????qy0?86??? +???:??0? DN?r???J?A>@:xk?2^????K?7??T??????gw ? F?mA_?L??o????H???7V?7.?7?`FC??=?*????{??V?h8?C?\:V???uiHV}^???H?????>?&?T6`5???xiq'???I[r?@??M?(M??|?l???W????4????|??b?4??7O`?o?>H{} ??_HG?>Xb???Y?7?????Er????C???o??q?/?y:?)??:?0??=N?=?3?nvD?BFF?_?)?o???N6?xQ5"^*i?? *4B? +???????2?[m???2??@?????????%?U?}%??=y^??He[?9???f??F D9? Q?B?F?D??B?? +??Id?I?E???I??v??l +??s?E?g6?????@?^]??W??????yM5\K$>?*???U~?S?Lh`?o????u?:n?nA???Q???q?_??Y?{,?_??yC??J?2 V%k??,h?bg??????0^?o6?I]v?5T?????? ????/????ZT??C{??S??R??????R??C_?`????;???S??|.?%7qhTE?3H?????r'?wh?VhF?-???67 ?P???"?=]-?18???gH????A????Ff????????*?G% ?M??iQ??C???Z?:??+e??c?????t??S. ?????C??=!?5vq?7}?}w???W????????]? + x??????" df????X?Q!XZ+??i??k? ?f?E?k[????>???v??????($?E?i:Xv????W2?x??;??\?[?L?#u?????&H&@?#??r[}??\ +?(ag?3????P?,?????????%??2??5??V??????|v;??4j??p?PnV?Ka??? +?????L3??r?K.M_V?#??B?H?k?B??G???????}n?Sz??(?i?E???fcA?x5?[?M:??+???????`-j???wV?4xD?%??4=b??A?y,???t??T?,??pn?????h??b?l?0??i???)RbZoeg? ??[e??`2h??\R?S??????i$??PL???fR?+???3?{G?Y?? _Kh0?L"?? "J???e??-41??u????V/??A? +2]?.?8PYWBXk?f}?E?6l??a????W?`?? +Dc??n?o??] iQ?????zvC?^G?????5???yiR$U[S??*?k?,??E????Q???F?f?????b??`??QqlP? +,39???0?Y?k?????/ ?????(J??%???-4?????L?G? ???.???N????mf??&??E??k??>?=??'?????Tz?}??~????????F?_????`??U??MWK?E$Q_Tt?????b?????m?[J?f??eX[???????M?u?z??????? +??3,?p.???/?i at 60?ui???e?0M???S?n???Z ?0??????~???L????6 ??o??K9??????K??????#?<[?4?5?j??5?\?????Ss??r?Cs???????_?e?R7P??????5???/Kh5W?????? ?T?k??,?}???5?Jhxj?S25?R??=a?????!?8?????????@n???"?j.5?W??2???E"m?5'mH.Y? +?5???J????$????_???????i1R>@?`-$B?i&?{????D?j??skj&?  +YAD + +??h?2q?-~{d F??'???1????[?SnsG????v?#???bm???Ty?|e??P?? v?k????n~?N?#b+[d?)?m?*??y??Q??m?????hS?!?;??\??.??4?_?^N?i3?@g9M?G?M?u?????Fm}?a???b)?P?R???z??????????????????=????a?)?????n??q????h?????.y5?=R?1??A??? +????A,??j?<6?nx?????&?wx(???FN{????????????????n?v??E2??@d??P???=tE??????;????U???n?? $?3?%+y??o?*d????F MbF?????????\rt?G????"m>??j??@>k?rvw???????uu????v?-??????c???Gu????4@?8P??zz?L?w?$? +X?{#fr?@?U?% +yv??9?`?Tt?7?,?6?????f?40$"??I?`_hPw,?G??N?a;C?n??u?:????yn??\? ??""??U?0??B?? x?+8?q~??~#gT?'?gA???;?V????a?j\?P? +P?? +??kA`c??_?cf#8?]??'jF?6?;??4b?-??YY?????X?>??:??u?gEe?H??30b??nY???p +ox6?????z[??v??????-#Bzkp?w??#?%"$?;?? +?gi.?w???c???94?[??t??>?w ?m?1?+???-????????xL ???T>?bp +k?@|?Z?n~!?l?y?9??Q????3f?a???Q??x??????^????yYI????/?9??????'??C?$X8-?<}_???o???????Y??<2y?I????L???G???j??&H?\P?? fZ?1eN#?K???E?????(?,? ???"?C.??O??("bk?F?*%H?J ?%?H? ?9o9\???C??????t????? W,????z???f +????H??0??%KN??x??T~#g*???$.?%Q?oK^lH??d?n?3?????$.t???=25J?4?^x=7??32??g?/??!?#?w??.???????w???? ??r?^v/?K???ej ?7??????e/7?z????????i? ??q?,?f????_????? D?mH????C??????c}????x?kqD ??3????? ??y?/:?r948?}d??\&{?RL>???t?,???xG??b??!?4Q?C.??>??Q?????:Z&-?U??????? ???/? mj??&7a?QCHp??(???;???? A?????p`xE??LfKA?n ??@??Mtg????7???|????;?????B?Y+??a??\?? +????C?? /}??A?x? +d+b~TzVB? +,.?q?7?^???t]??khhmG???O?54?Uh +???8???????D?5?e?{c???w???*W??a???????C??3Q??#?d??w?-??3???5??S?g.?? ?8?r?r???k=yn +??<5o??v?? ??#,f????@?>???N +?y?3D??????RE??nu?X??4jT}?a?u [D? +??6?Y?C??9??p?U_??k??\0??h???%l?+?*??? + +O?????v??4??6*???,?V)m?I??A?f??d??p???????????%n??????t?j&??Y???K:5pV?3z???p??=?????Z?????HF?^???)?????????$??$ ?:??7dV?jMD{??%5 ????L +??CCm???Qsh0H???G???RpSa????p?"f???$?;?Z???n?d???p?v???#Ps6?j?K?#?0? +?v#"?? ????0z?,?^????????????O?r???l?JA????+Eiy??(rO???4??L??>??s???b?C?S????4??^U?*??G???\????ri??n?iHa?iG[?5W?2?4 at G?????9?ex?B^?)???j"???TP??????????y?Roz?^2Y??R@??' ?C"/~R?=/U??????cD? i+9.????c????g-;O???????????k?+?n?b??P?? ?U<F ???i?????igx??????g?????-??eY???????q???G??H?? @??W9?Wcf?;?u-????j)p~?v?R??+?i??W????:?kj???Fs?T??D??I??T????k????r?X? +Mq???q?5O??pF4???4?N??RBj??BT~@????!m??B?I?f~!?L ?l ????tK??4??q!?1J?iR6# ?t??s`H ???Sk`De?teK??(]??3? ?@??w ?o3??????`?^?V??D?6??b?)?NC???)"?]?n_?P?v?i$Qibo?=?I??????J?O???H???Id|????L?g?e??:??5.????.\???M?Q??????+??????c-O????v +????& jQ???5???SK??? ???I??`?[Z#?`?j??ik?jt???r???>???e???'??^W????A$F?w?')?c?wZm[??h(e\??2qp??? +:???R???X"h?4u???2g????d?R?_?]?&????l?u2?G??)&?N?Z{?? +?2????8?2E???K7?fn? +??hYk ?&?????? ?*?????4Mrh???l+??g???T5rF?O??????E???fZm?m!??(??vRK?Ir?6????b????????F?????y??/?????o7p~??5~??Bh=?T??????a}S?[=?v^?r'y?N??`/bE???????v?rS??v?y??)?h??????}??P???r?Mb?vQ`????qugq`??y????/Dw?]?;? m?V=}?V??]??{???????>?\???>??????|?a ?i:??n?KOG?j??;?YY????2??jX???7o??[(?tc??/F??u??d??wF0 +a!/W?e=??-8:???????\??oue??g?@?s???oWw?K}?{?/L???t?'^Dm5????xT??ye???I?A????a???|????????8_???0G;?Y'm?h??Q(???cfl?????UV???x +?P*R@??c??@??G?n??c????;C?A??;<jt ????K?g?#u:?P^|K??"?nd???D?J???iE??;?Q??~w"?-? ??D_H??????BV?jW}y??8<?+??????4N???D~?o$????n?FciKn?:?H??Kj?n ??9?!????H??????(??z?+???]?????V?ZER??h??????q+ +#;??c???5'?j ???|?Ty}??? +???p:?%?E????E?"????b??O?}hY?gQ}V?8?g????H?] +|Qm???p????n??i???8 I?*??@????X?,????lly????x??????yK*? a???0???B?'???=?-\?VZ??5K??{5??e6vj?????]]a}???R?????)F???G???Y?w????? y?O?"4h????????fg?^?????????????-???,??VA???U??=?????6RM??????pF IxD??|??p????p?U???P:>]?Re??V&E??,B?N?ed?????Q1???p?>10???x??mg?ikiV??i?f Q??+?D?=mU?V?=???a%??>??\?"?:#??$v????Iu6??????g0??J??????&??R s?^?M???+?e???!M???E??????? ?B?qH??rx??D't?%??hA??UM????0??Jt??A>t??J7?CefN?t??s ?????eX?[^??r# ?????t???!????bl? +p;s?u-???????6z?????? +ws!V???P?iqA?????"??]?}?????z?]??x??h?????Vu??*?~???????Q???wP"?*?{???????`????z@?6?B? ?f?7r? ?hO[d????????h?> ?*?9??R"????[???_RPDO?I????????"??_C`H@??i(Gm??????xZ,Rm??_?5g??k?>??c?q???$ ?"Y??????I8???N?O???"??}??N??j??o????"?N +M???y??0*-/+9???? +7????Ow?k?+??|:W??=??????w at 8u0????????~xat?? ?M?}??@?h?Oq\^?es?W?]?+b???_?|'?????Y_?O?- ???????Cf}F??7C????Fn4?kM +'??????:????$??d?????;?4?x:???5?V}??]@0?!????[?`??H\<??Ql???c???y??p?&????d??/.G3????Kn?0??????O?e?=@h ] ????????uAb?=??|???Id???E?????#m?f???[p_#8?/K?g%Z???C*??????????L????%?@_????ad?)????x;?0???(????ZU??{??????Ms????K???A???]???#?Y!@L/`yO?u???Z?c?J??2????k??c?@?HyVd?,L??gB??5 ??Z??????R,??6????e'm????)'??,???n????????`????7cwb#?eb???I??\?^aEa?3?%g?K('?:!??^}7\??;.??M??pR??1#"??C?A1&?????X?????????*D?h?-?Z\??y??Is????????u?+?m?F + +endstream +endobj +37 0 obj<>stream +????Adobed???C   + + + +    ?? p??? + s!1AQa"q?2???B#?R??3b?$r??%C4S???cs?5D'???6Tdt???&? +??EF??V?U(???????eu????????fv????????7GWgw????????8HXhx????????)9IYiy????????*:JZjz????????????3?9?????MW??ng?{?'??6?J??T?K?????@?{??C??e???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????7? O???????????b|??????/???C?????9?o?? =??!??3???????_????'??}?Hr?L??1>@?{??C??f?????????/??'??}?Hr?L?????R?Kz?7$??t? +B ?H.?n P?F???P?u ??\,??}5;?%???M???Y???????[?(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)??? ??U??c!G??;?????o?O.?"?,????\????r=? +?S?9o??r??? x???????6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l????????? ?37????,???ms?????????l???????`?l??\?Y?f??6l??f??6l???%4iO?0?9_X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?r?X??$V> +????ibCGuS?3???X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?r?X??$V> +??????$iNn?^????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\r????????d/???%o????f.!?k?-3?aa??c:G?{?A?O??9?g???????;l??f??6l??f??6q??^????3X??Iqmmcm4(????B??c?L??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??f??? +'O??? [??yQ??Z?2????E?3?k?Q?????4?j'??45?cI"f ?S??I?^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y??^?+?????%???y ?????'~q?.?A?Kx?????^EQ??l?P?e?K??/??c??????#??O?\4??????!??7Q??????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^o????????Iw??^ o????????Iw??^E?/t-;???^m?4?x??kS/#?B?7$?$???Z?_???J?1??/??\C???8Zg????&?t????0?????r????K?0??6?.v,??f??6l??f??6l?>M??????f[~?s?f??6l??f???_????????N6O2g??????:?l??f??6l???1?v??1??Ntl?????????u??:?l??f??6l??f?A?????t??O??Y?r??????? ?3??? L??X??????FG????g/???????ca?r?b??6l??f??6l??f?s?????n??e???:?l??f??6l??u??????n??d? 6??g????3?f??6l??f?????'o????D?F?m??A?O???_??????6l??f??6l?_????O?????E?'!???+|??0??1q/?_????? ??\?????d????r????K?0??6?.v,??f??6l??f??6l??P?4???iv +?mB????Z????????o?[???f????????o?[???f????????o?[???f????????o?[???f????????o?[???f????????r?rH???C(???+?????o ?d???? Iv +???r@?w??Q????????o?[???f????????o?[???f????????o?[???f????????o?[???f????????o?[???f????????rO?)#??!`?Gu^$?>?s??l??9?6bF?uRM???:???????3}j?????C7??????3}j?????C7??????3}j?????C7??????3}j?????C7??????3}j?????C7??????3}j?????C7??????3}j?????C9?Y[?????2?Jj>?Y????????? ?3??????0???????FG????g/???????ca?r?b??6l??f??6l??f?G??'???=fmcQK?{:???NcS??U[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6?????? 3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?s???>A??????? ?$?)?B??K???????&?n%w??O???"s???? ??????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x?????W????????$????P?*?EP\?? ????[????????~Z??M??X????G??o?#?d?????F?_???1???s???o?O????_?K??????k?W6l??f??6l??f??6l??f??6l??f???????????/?_??~[??%??6Kq+??????????????P??e??O:?l??f??6l??f??6l??f??6l?_????O?????E?'!???+|??0??1q/?_????? ??\?????d????r????K?0??6?.v? +???Y??k??r??????s????6l??f??6l??f??6l??f??? ?????c??}???8E?K???????&?n%w??O???"r?8??????????R??6l??f??6l??f??6l??f??????????06?????/???%o????f.%?k?7?a`??k??=????????_??)?????????a???? _???._??7_??u\??f??6l??f??6l??f??6l??3???????????g?)?Y?o?`??$?-????I????NB???YC?1?_?[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?No??????g?H??9??>[??M??#??4?? ?o??6??????3???????<_?NG?1???C?0K?i?ap?"A???-A?????,???0K?l??W?$?????'9???????~[?5?????\???#??*??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?????Zl??/??7?g??i???x??????-?????????s?|??V???G??i?[?{kko??9AmA +X?p?5??4Uu????????c??_???????pt?????M?t???2??O??9?g???????;???T????5????h????sf??6l??f??6l??f??6l??f???o?K?1??>??M?"????g????_??d???y'??O?9??m??e??]???f??6l??f??6l??f??6l??f?A?????t??O??Y?r??????? ?3??????0???????FG????g/???????ca?r?`??????/?????/?m???:?l??f??6l??f??6l??f??6l?????y???g????_???,???0K?l??W?$?????'!????,???????u,??f??6l??f??6l??f??6l??????m??9?|sT?????S????5O?j??>9?|sT?????S????5O?j??>9?|sT?????S????5O?j??>9?|sT??????6j??>9?|sT?????S????5O?j??>9?|sT?????S????5O?j??>9?|sT?????S? ???5O?j??>9?|sW6B?9??V???a?b?_???????6???????????l???????`?l??\?Y?f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??!???+|??0??1q/?_????? ??\?????a?c,??????S???g???????:??I?|(9yppys?????U4o'j#?z??o? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7 ? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K7? ?_?'??0?,??3???????T???E?R~??#?R??C=?I?????K0??????~????z??8?u^???z??m? +F 5}$???O ??#???K???k}O?U),v???z?T???@??>???z?r?ym?f??En>stream +????Adobed???C   + + + +    ?? ???? + s!1AQa"q?2???B#?R??3b?$r??%C4S???cs?5D'???6Tdt???&? +??EF??V?U(???????eu????????fv????????7GWgw????????8HXhx????????)9IYiy????????*:JZjz????????????O?~w???atb??u?VSB??`-?w???B?ng???? %?] +????i{????J~[????*??????)?m?V?????????T????Z???????o?R????j?J??????J~[????*??????)?m?V?????????O?4? ??m????>t???I???\?#1?|??(/????w?&[ t_?????????;???P?g?a????i??????x??????f??6l??a'?? ???????d???????????+???f??9??????????e?>X?????'???!??Zd?6l??d??R?"?B?????l#??i??????'?f??!????,|??0O????x??? ??dO????W??b??y??f??6l???.?O?????:l?????~b??m???l?y[?Q?#?`??????l??f?w????????_?j\???A|??l???2?K?????????q?????k?? ??d?L??e?????&?f??6l??f?? ?????yS?beIo?f????CK@M;T??/???Zi?E????????9?h:???J~r?????'F?-?F?i?????????0??F????9y?F???u?)40q?????-B????&XG???????'E:??+????#>O> ?????a???????3???Ri?????O7?????O??a??x????? ? ???E??? +?EC?2wq???????5?+o????E??????[?\j??Vgd_,????km??=q??=k??}G? +????d?>?m#?gQT at Y?????,y?Y`???A???#?F?????????+o???3?????u\?Q??r??;?I?????[?\??Mk??mK? +?????G?$pnB9?^j?(???????3???????)??4O????4??,??`??L?4???? ??2???u?????`???4???o??z?Fl7?????????&?H????Z??$?X+j_?U??f??N???_???~Q?c'??O?O????r?????? ????s???!????_??XY?M???0w??(r_?i??e??d_???Z??q?????X?6?????#????c???8?6s?G?'\???????????_?????-??'?J ??aK?Pg???(F??0???K????Y???[???\aev??z??Zw?npo????o??q ?:????????W??t?K???Y~???$n*?AU??'?}?????? +???n????-!?Z?/l?>??[???\??????O????RE?-aV???dK?+????|??(???0??X?????h?cZ/? +??????b???p???? +t?????~x7?????'???7????lO????[j?X?U?@??;??7?x?J?a?????lO???S?j??????????M??t?J]?????M?? ????-??"??????? +L?\?????P.????Y%????[???@K2??v???k????(\?V??????P?? I?Ukg)t?=Y6???/s?~???b???p???M???:?????^, +* +??W1??? +??x????????\\[??g?Tj,??????:??7????3????_7?1? ???f?o2?;??$??l???uj4?Pf at DIQ?x|?W?????????u ?v?? *1???Nz??:??7????0????|?}?T?U???g??O???C??&???d??d???|?6?,CK??^???c??h?~?????#o??`+}.???a?????????h?? {???vl????????8?????????????i?c????5?????3??p~l?:??N????'?EG?????????_ ?r???? t2/??&YY??y??."YPX??V???$?4_?c??7? +?X????:N???l???_VA? P5:?@h???>???\?4???]m??)J?#??bi??A????8???????_?8 +?D?F?g??? kA?L?H??a?????G??a????V? p?`??(??-<*??3x????????o?6p?N?4?4?g{H??5,J??'???,q??-CE?R??V?5-??"??3?????0???????0????}????^?6???}2??H??|1????_?8?tD?Y?P???x`]D????w????????pg?G??a??????????~_??I4? t$x????_??XQuk??t?f^H???#?B{d??9?????\???'??????+=N{????TuRWQ?|3?7?4??>O????^??J?ui?,2??:?>?????????4&5$`7?8??sI?}?&?? Q?4???Q9?ev +J??F ? +????????j??????'???i?"????????b?{???' ???(/????w?&[ tO?????????;???P?g?a????i??????x???j??'Y???.t??L?z/??9?C?][?9w???O????????cO?????????F????????X??K/?6o3??9??,???m;?????I?#j??e??eo????z?v?_???la?T?????=?9?|??H???~q?????Q????????iy?0??v\???'?????O????0?&o????? ?x??:?_????~l??G?Lo7?=??#6???Q?S?a&??g$zW?s-?~??5/????3?????/??j?(?? ???s'???`M?9p|??H???~p???????l?a~C?aw?6????^??r]?i??m??d_???Z??q?????X?6?????#????c???8?6s?G?'L???????????_?????-??'?J ??aK?Pg???(F??0???K????Y?xc?b?g???g)??J0?.:?Y??N?i???9?;???=0_??????E???m? ??u8???3WN#???rG??WIo??ew??? ????????=???9?LC?,??,?-'T?;g_Ff????#v???!??{??p????d?????K4d(?$???l?+ h??????y??Q?S?a&??g +t?Z??????????H;v???!??{??p??\Y7?0?-hc ??L?b?g???g7??????E?/??a]^??SU?d'?yP-*G?~???Y???Y????bq?N*?s???>?zt)????? ?G? ?1????????E'???#XfRb??? +?s?? ?? +?."????$?? [?Z?h|2I?oN?~????M???????X?? w|L??"??????o??;????`M_W??J?Dv.??Q??%O?)e?i???H?T+?w?/?oN?~???P??{"$4Y?? xl?oN?~????M??????? w7\~r?$D??(?:]G?????_?????-??'?J ??aK?Pg???(F??0???K????Y???n)????O????? +[i?PP4???}b?????,?g??????O?l???=?G?M:?+? ?????X5x??zx?? +???m??5-0Z?&??K??1??Gj??/?S?????????????????L????O?????F4?L`Y??,?X????~?????i??:???_]y???[i-????D???M?????T(??6}?o????W?_????????#%????)???? ?G?=>-???+?[?????????o??{??]3?GO?T?????k????5???-???????%?S?s??MV??t??4`?s?+?@]J?i?????w??X4???PL??S???~????????6????~v?Hdh4???? g?????[??????L?????T?????7??O???-?3z>T?????7??O?? ?-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????7??O???-?3z>T?????+???????[?f?|??- ???7??_?hO????*??B????????q?N????}????`c?yjo??? + +endstream +endobj +39 0 obj<>stream +H????n?0??R?????_?Kw???????????h?E?e?\(H????PQ??5?Q?iN?T?mEW?????B??")??? ??$ch?j??Mys??@?QE]??0 l8c?oyVOs??I?H?EHL??????fz6b?v\?x?R~t +????????X?V?HqO?????s9 ???o? ???x1;$Q?WZ????c????G?????%?,?o?> +endobj +41 0 obj<>stream +H???Mn?0??=?.?)+h ?? A?.\I?xKSc?E???b}?.r?^??d;??"??x3??????YpB6?deJ???=%?.???E?pp???<\?~??]#???U?P??????V??%?]A?????%??t??I?Z?($???Y{?Bo}Cf? ???}?.?.??i1*??+8????'?? +??y???gY+???A????>?c)? ??Nz?PYC?X??Kz??G??`?E??D???????{?/&?$????@?o????|("???v?????????o6Q????z??Zr????.?? +/?e!'?H??_??????pLbfc +?5*?0??k<03?fS????[????4]??=C???????~?y??L?j??????? + +endstream +endobj +42 0 obj<> +endobj +43 0 obj<> +endobj +44 0 obj<> +endobj +45 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +46 0 obj<>stream +H??W[s??~???????\?o??3??????LV?>??? Y^^b??'????MF"??s??9?u??'?W?8N?^?f?z???x?0??oWoo?u??VEXf?\G???IT?yR???c????*Z????0?"??V??>?>?7???qs??2,?????? ?4 +??f?2??2 +?m????p????V@?% ??R?P???D???@??f???ZdaQ???: EY?????????U???? ??`|T#|Q?zMa????Q?HX?B????t??????C?">?xW??]?B???"??q???~p? +x"????^??H?8,???(A%rP????$?J??cPuM???H??????V??Z? l??G>S??At?~o?????d7??Z?4 ??T??X?Jy???;?:?!????O?x????{V??????_1 ????1??"??=\K???(?,?m????'??W?p??v?!???N???????c???9????T?{??!????g???Sc?;??`????T?????8B?????:p???D?8??$?4?i?u?&??e???T??????n?N?????n0?v???HT?=??p??a^??yB?C1i??{????#???n?VC?Dv?OC????n?????? ??\-????==JC?????d|*B[UV_E,?w\|?]?=?K???c@?@??????!?/???5??;???I?? +4W?(??I`?'r?>?t?!??&X????MT???9@*H(??0??Pe,?.????,?8G?%$SE????7???a?L???e?;???_?}wo/e???z`$??????b??,f +????????<|????????# ?;! +?????.rXf? r?x?qa??W??????9]?&V}c?(Bd+???O??H.??D4??^???????.????I??J?v?y|?"??U?y???T? B???"?Q?$6????=)!Z[?rj????????\ b?T?3?????os?g(??y_Px?????N]??f???w&*m??E?,}?=???o;go6`??????K????%???C????u~r???"S|V?]u? +:????s???MF???v?C{?&[T?p??%ic]????zAA??????g3?????p????6zoy?8X????K??"qu&?F?.?^i?n?gx?5??Q`*?5?e?@J???y?t??? ?V?IN%??|??????J??d?????2/?????t???oL????W??h?_S?=??g(l??B???&GG9%????o???,?G??y"?3???n5?? `?x?~dx??!???U??`???e?HJNn&=?-w?CX?d~???I6?)????O??k??KfU:?3?????wT?w????m???#??? ????b{?f?CO?????X??`???K???3?Ao??(???qP ?d?B??U?NZ?F?L?M?,^!??? +U??(C?,j?(!$??(7??$$R?????\??:/????U???4.n????l?????"?!3)? ?R????_?V&???8??m??p??]>?l??ZQ??fJ1 ????#?:?D???7??\H:?B??\9A^2ZQ???8d +??:??3V??"R??4qd5???"KR??E?l?A!?X?t?o?3??5 ????;3?? +?'[??h??*?,C???P?i^]p?0J??o? /0? UZ??Z?? >?6?{???A?t^?? ?v5?{?j|?\???z}M?zCv?|??*ei?s?S??\(II?"=?|????9??C??{.?????*tF??:@@"???????L??@_`??"2????!I?!"???dG???s??K:????m?#????R'Z?o? +??k??'?!":?+{S??Y_=3Tg?? ???`H??L5N?[??4?AX??? >?y???T?,?%?D?>$?????N?l(????6?HP?+?{?@bFk?l?v?+Iu??|?3w???????o????E?fI?c??V?L:?1?hNG??????D7s????2??.9rUEd?zSnT???.??????@????Ru?d?dd?YYW??\j??%??%???j???=5??K???H??l d?????LlO?[+f)c? ?;???gzs??????)?_??????:???&0%8?-???~?qJd?d?dF???`??;??????????{?>?????????tnE ???r?[T9??$??u??g?ZH?O?I???'??M??l??? ?5?????<+%N?e???9Cl?!O???: IJ}???wd??? ??;???H??g?P?2?fGQ?? +????????;Ix??:??_?b]?b4??*??t4a?o?????>?/?#?\ + +endstream +endobj +47 0 obj<> +endobj +48 0 obj<> +endobj +49 0 obj<> +endobj +50 0 obj<> +endobj +51 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageB]/Properties<>/ExtGState<>>> +endobj +52 0 obj<>stream +H?T?M?%7 +???W?e?x????dHQ)? +Kx3??????s???????????cu??z?????o?????{=??????????}|????w?????a????????>???b???????????z?????9??|??c ??;}?LW?'_`%?????????????????*|?????????}????_???/?w?|??_??jYN??O??[?q???n?????3?+~????B??U?????????????????9F????????P? ??@??D??(?tI??:????????+?9??b?76??????2?0?NE???"??*?k??Z??|??#?M&??????E??U???????0F??z?T??6???? +b??"!aozd??C???????b=Ho?}R???Zlrr???C?}?HI???"b?*?mO?2?9?????{ZCbv ?fjbZmXD?Z? +l(;?????????6???? +b??"!cs??s?;???D?????Io?}R???zlt???h?R??$t???"b?*?mG??7???v?\^3b???nZ]XD|Z?8-??\(:fX??U???A=6:??????D9W?|????_VA|{???????????+???c?4x???"??*??Pz???$?t???p?vT-?,W{J?o????[ +}?Fd??.??A??? ??.???@=67????D>??/~M"?]-"??????+?S<=?_n????????????E??U????C?k???k%?L?6="??kt?DOZ?ZD|Y??YW?'w??)???????]DOz?????*?$?C????c??f]3?????"Bo???.????f??+??#?=9?+?z???"Bo??zlz???????t?4{???"??*?o??2???g_?b???H??e?B?k?????+,????C?1I>??s???Vz??Uz??|b???????R%zL????~?n??n +?M???4)??V?T??6???? +b??? lNt?1??z?? +?C'??????MJ?1???? E? y?fHW%r?Jn!??c.????xC3?!??o?D??[?P[?P[?MM65"????#}????OVA{???6? +00?%????O??#?[??h????e r?T??? ????^%'???k?u??&??D??N??['????`[???Q0?<?:???? ?o??m&??8y?N +?m?.?w;?Ok?M?m d?????o?Xx?H?y*?*gj)Z ???8P?? +?]????3_am]? =21om???8TK??-??^%? ? c??? ??8H?O??6???L??C?????>n?E?-?Z?t?????r?Q???E3??8P????\?#????k2t]S!????j?6hZp??W??&^.2s5j|?u?????`I??$l?Jv?x?u?g]?al??3?h????Lg~n?]? +2r?[??};?d?h?{?S?? ?A? +/?I??????????O??1o???Mb??b"?y?}Cj?C$f????S?+f^caf?-3?hb?B?L??,&^.?1Cf??E???0I?C$f????;???????????|?mm???? +?n?3????$}???|?m????`I??4??mi;????????d[?-L-`????6?r?? +r???????L???{R????m??@?? ]?_[3-???????b??"??1?+?J/u[3??8X??( +;a[?3?9??dlL?%?M??@0?????6?r?B'd?4?? ??8X??????-?0???,??@????[?iom???F8L??-&^.RG4lX?4??[W,?w???-?|!?40kdLm?[?hA?C????0??_??1C?C??????BY?2 +??an_zf???da?~???h2?? +p ????=?B?}8g??d?G+???P???dnkK???<yM? +2??? ?d.0D/?z7bs? ?wr??_?)-?w?E?|%bl??/=???Wf\1?*?GXl??u ??6? z??? +?W??{???? 4?????[?n(oKU?.????????^.0>/@]??e~!?5?7=?-?w?E?|%??B\?T???@?? ???h"?? +p P?xt?e??j'sI?Uf???+??+#? ??~ +?R??Bc,zvA?W.CG 4??^?????Ci\j??-?f??8???(??????K}(s^s?d?.zxMfY??????2??_??????U&}?R???e??????? ?[-`??5We??j.0??O?? ??? ????v?@????@cS?B?_z?B#??Gjh8???I- 6?-@?:(????H??]R???h????%?l??-?'`c8U? +??,;Z???0??|?1? ?V????z?-?w????@)???p?|P'?[O?_????'?t?}?1??????j?????K???m??Y??"???l????>M?{????69F?[??mz?v?"=??rt?z???+??Z~?n???????%P:?L?oD?q?? +??+?o?D"{????;?q?[|??.3??%g???R???2b?X?|G??Q??"=??7??vn?*?\? ??`???????????W Z?+? +??????/V0???S}?? +????O?????.???l?Ra?H?C/>="?z?V?^?we?|?????+??Dz<-??????dUzj???9e#a????$_??xx????2b?X?|GVd="_??K?+??]1_?`?#?????0?7?/??"????Tzj???9e#a???o?????sWzj????b?Y?1??5???????\:?}|Hd;? +?Dzz?q????#??? +?h????b?YW?'G??z="E?1??`$?????? +????????]1_?`?#+2?????u?ozD?)??? ???C"??T?$?????C?H?r7?~???]1_?`?#???????p?U?I.K?z??v??MV0??????s???h -M=?D{KF?+?i?????%???)?0?? uy]@O9?(??II???`?????d??s??E{SF?+???2????J??x? ?`|???n??? +???Zpn??(w??!?-1S?`?%????o*??????e??k???B"??T??????AG?{?????E;:#f??v ]=?????????+?h'g??Y??o ?&??dt| + ?h????bs8??`g??yS?a????Cg?-?>&$?mJ??!=?u????+o???????8+?k?\G?? 16????=?_??*?gi?????gy?}Z???O+????nH??bex?l?Bd]QX????[YK?tv,?VL???G?o???)S??f??L*?/p??O?(????????$zK?????P??????1o??#????Hy2????k?H?? ?-@??~l?B?~/?? ??L 8v,?VL???"?????%W?1?"??,L*?/p????(????^?=??????s?sy?r?z?????4GSr? ?F???~8?#??.8????1? ?Re????B???N??J???+?y???/D>=???????Th_?^?z?Pj?? ??????v?$K??@x???8?i=7??'ovv?RDR??'???$,g????`d?I?w?\{)?g?,??}V???N??????r????5?'X?A???Vuv??NFf???Q?^??z{????C?B?"??????K0??????? +zvb??? Y{&%?????^??j?;,?G?????????r??[ +}?4?????????w?Jb'??0)?#t?qu^?Gv??0;????!????8,????K??6?????_?*??$k????P??? +bvXZ?????]%??8\?8?4?'X?:?N?'??NF6x??????Y??U??????????]%???qX?%?:M? ????jt?S???``}|?9???6?|%?^{09,e9?n???(??????V G?&????/*??????K0???K??yW?=?drw0??>??D?vi??|?z?N?,??B?J?$???'??QB?5?'XR? 7??:??dtw02 ?????????[?:,S?????t?V???`??^??%?'X?\?}?kN?*????0???{W?????6?}[Fu???_?M:?;?p??[??6Vf_???]$????z&evT??q??:?Dcn?y?HF7?????f??M?N???????? I{?dp?o}"O??)???h?m=|??$???'????KO??Y }]??HFw#?LJ? ?9???????4?M???E2?9?p?? vM? ?qS??[???Hb'#?L????x?]??[?????]?u??J"?Jq??-??9q,?]$????y&%???????Gv?i1;?X?]$????Z?-vM??{?&?5????&??$k????????#]5?6Xz"v?Q}??$???'??G????L?w?>????????,???)?#;b?pm???B?h#??U2?9?p?? vM? ?Q??-gWI??`d?I??7????/?]?cx^???X?^S????????-???{??~??%? Il?C??'????????T?u?????2n? _ S?????? ?A?`??????|??? ??\-?Y??R?<%/????????D???? +kE,A?x?g???,???]W????y????f???????t????W???`x?tm;??_ ?N?-+V??#.?$??@2?;???w????;???@???Z??-a?k????????1?e??d L ???c???m?????????7?&?^?????I?}??x???S??8d???7??z??1-?d~?E?aO?D9Z????Y_ ???H'????x??db????}????2??l??k?N??n????3|g%,???Y|L????'KOE-?K??-?Y?*?%%:?3???????*?;???VZ?3???M??^?xr&????Pb??I??Hu?cL7?*?Y??N?Dr!?FQ????J???Az4s??1?oO?????^[K>???r???A?[V?W)1aA?????i\?R?A????.??O??4^S?R????OT??????}?\Tor>????V?#????????c9??-`??????/??^??o?I?'y?"?????Xf??????,?D?f#4>Y?h^^??X"o{?F}??oA?C???? w????O'?wD?\????a?0Q_?P?0/ +??2??????S????7?Zt:v?H?????b?????????!?eN?}???q???;?g ?E?????!U??????d??????*????:?/?|$??;Jr?6b$?#?M??Z?9???n:$?w"?M??w"??rf_ x*B!E?AEk=}EV??f????>C???CF? ?,?J? ??????????A% +V????$n2*?Y??)? ????????? ???r.??? +7?????u?4?I?8??\?m(AJF2hM????*F)?q??]xR??O??????2bq? ??? +%J +-???&??d?????{??U??nJ+???!?a+??k???5??:?:?Cc4?Yvf?k??g?????????%e???????\??B????E$%!_??hs?D'Q?5L???????4&[4?`p?:t????d?%??&l?#s "O\?[?d???iq?1?&?4??5?-?Z?0????????q?g???????I[??<4J??}P???(<#?L?[????#Z?$???fL?-?rU~?????NcG ?\?w??F??=P???A???ty??T?Uv??.?;OC?45m???&KG??h????,?????#?4?_???W??)?D?B?:^??M?b?2N???:??R{?h?9?O??B??????)??&W??e???[?A`+? KB????S@??? ??}??l ?A0 ?0V?k????????F"p?y???]?|#?}?n??i?u?|c??^:???#3t?%?????6?????>SB???:U???>>Je^W?n?UJ6 at T?j??:RQ?y??e#?:?????M?#?u??ufdM?????H??P?B?s??}???n???jb???9?bYt[x" ?V?O???R??X????h????.4>P???6b?|???.??(#?I&./`#?? +?yy???????@???k??id?????????C???Xd??Ys????j?t +LwM???????l6y???6?#??7???n=5#`N6)Cc?[#&??=C:iBL?[?1? +???f?gf|Qsh? ?K???-3>? ?l??????v?-!k??|iT?`?Qa??d\?sf??zh?? ?/873*?^?t??[??e????q-Z)/?pE?2?e??(?o0"????_z??zGB?K3??19>????9??g0?A?J-????? TXQ=o?dd??+??+&W{???F ?~???G@????5?????"??z?g??-K Q[??e ?e?? +???sE? ??0????k?66??kR???ayk#o ??;???F?x?4?&??f?Z?S`t?+F{?E???k?KV??k;4?Z??bD;sj3?????? ??????e]?q?88?5?i?E ????f??????????[?F??~4rGvL????C})??3? +CB5iW??JD?? g?v?????X?BV??? ?v!? ??%d????i(S?uh ??,y?????P??[A35???? ??f?V??e?)?? /?9? +u@!1s;?? ??F????C????u#n|F~O:??s??ra?=H??,??.??,S+??c?2?U+??f????n??9??y2?K?????or_'?0?????????|??Q??W?????H???_?HN$?]???IqJ >????w? )?+?\8$ 5zbQ*????i^??!?$$=w"????A|f|?k=? ???U?9%^?????????K?!u;-? +????H]???:?va?a??0????[?4r??????bX?"?I??Q?8#?r"s +3???dv?3?$?????2??????`??8?/?????2??? ?????H?'wJ?MC??\ +???| q???S??'?Y?8bPF??k???$??V??"D???6??{T_<#?????j @k?6??Y? +?Ge???*D7??a? +???-v} ?,xl1~????a2?ps?=???5?ut"{?ykTv??B?F?4?\?????&????Z??S?????Ba????#r=???g??W?KC?????4?0????????ah???$v?O v??L?P?\?>J??????/?Ko?"i?Q?/_??,?~D??????w?9 7D???????&? +X? +?|?b????D<^4?c?(???"?mY???<??"?[WE?[?q+?n9?CC=?3I +???%6Y??rih?1.agdEJ?F???W?L??????Q??ub??N??-o??)P9@???i?y?C?#-??S????+d!??????????^?7?2)K?k fg?e???????+????:UQ??Z? ?xL?l?k;??f????m"R??r?j`H?|???U??B +Yl9k?F +? +?n??????[?Bm???H"?9*l'??M?v???q??)?{^?T?R?A ????44???=??j?1??????i*???yi???f5J???d at r??o??@???f7?j?:?Y??WY?X1??B????i?[?L????B?a'5??????d?{???????-?=???i?[B??F  +??"?z?a+????Rh??:?v&C?v?Q;Y8?X?"Vr +????E?1\.#6m???iy???N?_?J???}b;? ???KCRX9? kp~Ng?k?KC??????i7V\2??w?@csn???X???????e???r7?u??.???j????"P??!??""D??H?C??C +??"??f?oD?0]?Ft??RV??]?h?T)B?RL??? ?????c?#???.???$?o??mV???T5?D???]~d?????HL?_?oW??Z??v???????S?????? JN~~!rE???J????????NQ?"Q%[E???s?"???????E?|!????#A?W?J?0?M??j???(?>???????@&??? ??l????M????x???!????????@?R??????D?f?_oDS?? z?S?w?&3a?7-???7???????{???u?Rb>????h)i#j???o??6??9?V`?QJ???A ?z???????3???2r?? +y?Gu????g?R?~?K??#??cs^?RU?5/e???F??y????&lk?y)????yl??????k?y?????l??d?)??9#C???q9?r????=.?q)+?u?K???0.??k\????R??? 5?ql???p\???$?c?? g??`v?=.o???????1d=?z)?h?????j???WZ???n?W? ??y????&#?C_?v9F?[?j???M??@PLq?=2?jch???? ??X????>????ItH +??{6L?b3????T??m?E?e??Af;m???vy???u?F?u???0n?!??b?\????d?????????????,t????v?W:??/????V?%??E??z}yg?? +???]?P'??#{_)Y +$??v?R{??.9YZmc~???/]r??a?? ???e?? ???C??X?M?")'7,$????X{???wTD??D?X?y??H?????????H????????v???????f?N*??"??]?????h]P?>r??j[r???_72????????U*EJ?????~y?????S??%??C? ?"???&?????}:Z?f??R??w?,?"?&j?t????sI?o`???V??p??eJ>u??EFY9????? ??xc??d??F?<6? +? c(??=pO U?? +??4?* +?n?s?!???o@? ?;G?????z????5???rWRs1?|lx?\??????G?W????%$O?^?#?N??KV??????}?dw?W???{?9???m??d????&?k???? w????X5????a?6?r???4??P??2?r????C???>?0>??? ? ]bpnN:??{,?f?"-?D???s??$????M??={??{?.S>?v?S>?? ??D???u?D1F?6??Y?Gr? +?#u???)?`S?l??G?h??????Y_?`~G???+?????.H??F{?? ??T>b??????qs v/???W=nS???)"DO??? ??W?1G??`?r0=???????\Q???T?$??dH?U $e???'y????9v6?=??E?5?FN???7?????????[?????R??v?N??|d?'F?0p???LG|??H??Br???????>???$|??]7??? +Y?j??j??s?}?7TVU??>?$?? y,B?'?D3D?:1l?1? I?????#?p?J?Z?m????.????"N???D?(?l????j?+z,??r?? ?#?A? ?2O???:??q?^' S?=O?_?l???7Xn]?[Bv?S?5?h?_???A ??N??H?he'??u?z??????Hl`2?????9??>N?@??s????,?j-Jfh-??U? ???)?: +Z??5??n)??"c??-Wl??y???,E?#?!?????}Y?????Y?.??-!;h??A???{??+@??B +?zJ{Cx@?"??????? B7tE?$T?Z?$??t +Z{CJ?_E$i?:??*?kS?~}?,]??????'k????????-?????t?????3?T?WP??WU?V???r at 7??P?e?wh???:?3??m?????????*??Y??R??????(?R????V??????Qu???q?W<}"."(????.'?x2?"?I??"?K??d?A??"????|3???@ ?z9??H??V?r?s? $d?y?????^?????;/=?&?`??+(P?rge?[????n%^?#???^C61???FB 2?#?lh?m??????????o* +??an?q? +?m#?r~]??SV?H?&??TC:?Oh????F=?:?d?u???0c??V????///]$?e?M??????x?1?H???7??M?N???]C?8????? ??Pm????b?{??^Y5?????AXZ6??B???Z#h?K?(? T?r?z?????qe8??????1I?4???{4TCF? +2??b?e??? \???u+???c??h*3?j?1?q????Y2??!??o????AE??h%k4???b?h0??*??/ M3??8?7??k-??jq?Bs??!?(? +????"d;?V????8xM??????r#&???????cX\?a?z?a? +???ve\??A?6s+/u?hf?u\?tJSi&s|#?=??{??c???V???xH??_?B??q>??A?jy9x??k??(S?.%??RE?I?+??f???w????[?o?^<????Ej?D?????P???:} x????????&G?t?k??~?#?u??????_ +er-??????' ??D#?. ?'OKj??+?Wyz?4?_?T?????L?3??W???4?F??@?-????0nf?s +?3???P??? I????????5???p?????b??????!?,;?NC??42>??=????????K?/?A??A%???IL???F?????K?o?!???(F5???y??g?m?????+v???5(?7??b?'3????C5??w ?m??????q?fzK???c +X?IK??s???????K???A??????????_|fxU??%?7?}??S?????{???;-M????????K?/?A?5?/v|??7W????? ???????????????C?2;?!?????Rt1?"?[?????g??A@?Zc????W?b>?WZ????#??Y? ?I???????J?)??+q?3Db??#Zo3? Mt??t??f?;???lW??Gq?# ? ?4ZL??..??7?"v????> +????$A?????W9W???g?7?8???? ?:j??zm?t?t"s?????.]?^???]u??X"QJ7,???????"?l?hy???%~?WOt?? +?y8?#;%GLp???v? I?? ??????g}???a?u? ??+?????u??S???i?GR???FF +??l????e?q????m????3o6???C???h{?@?V?N$f?POh?z?L?_?0f??Z???P-?v%??! ?v0??0???Q????'?A?P???????M?V?a?Q?[??o0??(?5 pU?+0?bh`???q ??fM?>H?1????/E$[?8?v?????7?? +?8?????tc?U?z>?;%??a ??V?w?):zA#Bt??hC?*???%??D??V??!?4#?J??v????????.?C?H??H ?? ???e?????C?*????G??fP??Ox%x?i?H,$F?q???5???'?6?Z2?)?j3????S?????1?K??}????2_?y?ZI????r?r?~3?????+? ?=??s?>??????d??Z??g?9????1u?/ ?Ts?'2~??'????g??bct?&:???j[Ew??qM\b?,jUiZ?K?????=zO?(???8????W??bB?W?l??? +???9"?J??&?f??; ?z????j?? `?F????X??0$???;-??@o???%W~R????d+vb? ?h?pZ??? ? ??U?J I?vfF???F??~]FO!-igd?`b?7????q??p=?5???????ipG`?1ukne?I?????Ap??a?`?????????x??0?d??q????@ ??mL=??l?P?TEdp ,?8\<8?????1 +???P?g?W?(?y/?Z:?? ?4??`o??9"1??p"p8j5?q??@?sO?v"???c ???9?C 1?-?b?8?t??? +'??C??O??q"???F at q"?+????p @+??#YF?h??e??-f?3eM??B?9F?)?YF??5V?LJ?s???YF?J?2k9?h??1?[?9q?L5x???j ??YV???mWO??t??I???,S?Y??d???nxV@?!2???e??J??9?x??,s?Y??f}???,?WNI??p @3gYf$???2 +???FX??` \??`??%?gO?(3[%&???????p?F?k??(m????=?e?G??`???16,J?? ?ynz?2?q??8??j +??a????J?j?J???#4???Ri????J=?IW?T?V?N?JU +^????? f?sB?2????X*?????a??X+52\?W????g???????+V?:??z?:??S?#??V?c?Te?RI??V*m&%;???[????*???R?C????????%??n??@ ??z?Lz?v????k???uA?4???a????n??*jZ?u???s]?J????@????1?????-W?@"?@?T??}H?O?x??-?????6d?n|?-??????? J?9\???eB??{?x?1|??(?1d?W~h?.?O?NhZ???D?4??zh??#???=?K8/_r?Z%??a??? ???u??( V???KO???5??a?;?+???Q??*??M(?5d?-?em?KC?c????o/_?9??? +???w 8?!3 ???L0?? +???6k|?B?|T?iWu???{6x??? ~h??1??$Ti???g(d??????^?qWO?5??Ug??N,????].40?[$V?m9???5?{V???m?^w????E= ?IS????Q????a??dqhK[???/D?l?????}*?t3K???16y?p?l:??. +?Y???!??5?&?????????o???| ???b?R??]?5???0??-?~h ?l??????<^?;~op?k={?mp?s;????fh????!??????????>z+64lO???ij+l???+????g??9?.??m????0*?2??$???e??qF?B?~#?kb#?????(????cu??k??;^??Gg?? X??1??\e<4???????O?'2????*B$H??ym]??G?h???[????f????-?7?ck??7??kE.h?H?9??????? +OjW}h??Z??1;j??m??QQM?Z??_?7??I?cF? ???s#???0gs ?[|hU??~??I??V????c?dk??wj4??????3d/???kWJ??????dU="?a??? ????c$)?G]?b???aF????(r??*/?t?[???9?????~#R+K????_GF=????z?RdI??,j???7B??A?\?g ??M??? ??s?C????[?P*/?P(5??D8EZ??^$??"yh??.e~bi9?2/q$8???6???)??????@?>`?????3?????r0e?6?!J?:??3$sn?-G???K?n??A?9??7???P~Za?R??2??Ae??@p(Cr??2o ?e5q?(??N????E?????k2?6????i??]oG?L????w? ??z?%????????MJ?W???*??3???????????????A?!??|A!???F?/C????fr?A0=???j'?*?;????l?&??<*?@S?2}?T +',???x?D????4??1;,???????????C?*4`?????? +e?l??Zn?qZ?2?;!?? ???-[c?????7r????R?@?T?????{!?????0??M?:*f?t????? ??(b;wa&???? ? +L;?`C?\?K???c???H??H???5x???{??|F#??lo=???!??gGWt?7?????s?@?a? ?{$?????~??_??????T?\0?I?O????#%].u]K)}[ ????????,????? ??nz????8u?a?&?0d??2L??4(?)RxcU?????!???M?B#?OGI???????ix#?6?a???A~.????3.??g??????w??X +5f?' +?????? ??B +??P???~,?7mKk?m?u??????????-??\??87??bk??b ???B=???????}L^??2? ?'/c??g????Y?D;/c???S:W??7?Q??????? c?2??^/A??>"??e5?9?y[?7Qj??y?W?h\>??iK{??b0??? "e????=?b?TYv?,cz$??t?#9?3u??7??????X ??D?)iX+?????%?*???q??Z?m????'=Y?B?U,#???mF`|I=)9?u?+}G?0kt???e?e{?4f??? ?bS?J??9?????B??y6/FHs??<9????.&H?UL?DyS?K?^?`???&|?K?????[?%v?,c ????l i??W??%???U???????6=t?r5???^ewJ????e??N???]?? #mc??tu???XWd?u????u??0??1?-?p?{)?k?????S?z?H???:???r?????Z?$@3?cr??M]??~?M]??U??:???~?FT4?>?F??6???w????? QF?3???_rZ*??|?8??.???????eL?=-z?&.z?????1???.?Ai{????/v?????}????9vn??t???i?U??ES?R?37uFr?D>??8?c9+i?VQsWgd?h?!?q?L6t???<-=!(?rvn??Tj??by?????z),??2Y?z?t???Z??C[???J????EKO????????w$'s??(.EA??H???Wl%@~.?O&? +????>_?#?u^????;??'8???=???}??????yA<8r??@????*??????6`?,?S????lu?@??????H???A +???????X???????D?? +H???W?%k# +.??/9????b'W ?E?_?b??h0??+{4????q?i???;V?zD?????#?ojgDP ? e?H:?3?????C???k.?2?B?*w?fd+B??,??????Ld???)??????Y?UgV???S???B?a.?E;J q?G???IN???r?@J????????&???"t?T6?{??_?44???]c??>?????LR@&?????"GF?t???d6S???7?UT???\x]z^?t*Z??1??p?>"O?%DkOd???=E(j/?V{l]??f?I??![j??@??A?????cd?T|!{?9?oF???T|?3/?;?~??D$??[????j?th?l?&D?g???F?(?V????,????4??xr?????1?U@??^??????? ??????6???j??? +Ku??Ln???Hx??D#?~??1?`6??K????? ??z?~d????F?8?Z?3X%?tT?????????Q???9?s???x???Z? ?@?}????su??!?Kmm??4???????????v?????w?Z ??j[? ?_??,?lZ +CC???Z??m???V???? ??@0G?K?ou?: ??????!E?|D?!%?B??????9??m ???M?|?P????????;??Y?????,?j_!K??KC???t,-??! a +?_-G???=????6??YjGA?1w6#?G??RbrB2[F???;??oIP?=gji??M:KJ????"? +e?K!i??B????@r???,Z?T?\?_w??0??F????q?}??x??3k??jF: +0?Cg??????????G??KA???B9F_???? K?????????j???r??????82?*}??? |?95??5??]?P??.??r?"|-????X??*???/?W? |}??r?????????6?W_?6??????|??????o?????z?P ?B^? {!V???{????????qD?????gD???7D3???4?s??'????Z;???[??h?]????F??7??5.????]c?????:ei??8/F????o]?;???-??????&'XC?t"=?KG?*?KG??Nm???4???";??:???????n-}?h%??sl?W?n????{?_? >*Ik????j???Q*??>?m?5z?Y?w V.?? +?y?!???LW???W??d??]??<+@?,@?eKL?!?r^?x"g?vJ@?>?/D???CpL??J? ?X?Sm??o?4?2y?4j?<;5?C?????w +??_??,7U??$??4X>&?`zF?J?????????????Sq?gJE??N?oG?? +????z?.W??eVZ?4?B&K?~R;:??$??????`= + +?Ja????? +??P5?3?? 9?o?Qogj??QY?6NYRy?0??l??.A???g?????G4??????????,[??m?VP??????w??FH8??+J?? +?.?*?kS?Ko?T?2ABvgR?Z??????Q??IM?DDFV?????rf????X1-?.?????_E?Jz??/?+?b??+2? ???b???T/??d??u?l.???}U???"|e~ ????????????~?????6?{?u??B?????i?S?V?y??)$2????e?si?nF???90?ds?;V2y?1?? ??l??????d??K=*I?cTr????????!??bZ?x~?E?R???x???? +5?e?6??????Y???3???B-N3?????+Z?^???9U> ????6??U%?????4k5??????H?? ????Q??????!n?????4??9oFt;????????$PF?WG ?Q??"C +i??%?????????Yq&?,???'f ???LmHa?v?"??n?_?!+??f +"??????$??6?K?o?{J????d?Q??m? +?tv!T??Y?E??Q??"??????O???G9 M??. ?wd?]? ??x?9?%??Bw?? b??H?@F?s?}o?u?1?????????g????Bc???f??3??@?w?'??:-??y% e=?]?c???{????5???H?_?{?>? ???`a???N???????]c3D?,?!?'?>??????Y??#??a??9??$???L ?:dP???fj?M?KmG??M? +??C +??-????:r?????!2??X=z??VfH??????hR[sK????q?????Q?:2?_m]6?eFS?O??r? d$M???}.????????J?;?B?LKM)5??(3 at c?ma????]??L??o +3CSq?gf???????6???_??F?km?C???u`?2????+??? ~nu?5?H??/7Qm?G???[cw???j?i???]??Z?r???u7?C????Y???egCh?/q?Z? ??Z??5?.??AE?/??gw??Ch???:???De?????\???? ??j???;?????,3?=%?9?(?M+??=2??????[???ORE???????7iF??$?B0?L?]??? D?U??W??|O??{~)xg??4??/g?!c????f?"h???????X??!???dj?<^N??????U?q?%?4??c4??=]?;i19l?m?*?I??`?????hF$?T?6?????G m?????3/2d~?q??]f??h?P?b????? ?{????#$???3?Z???????m???=?~kd%??\5D1?a?>??5?z?E_?S3???S#C??Xc????*\( q??~???\?bc???IQ??????????ot?"?o\k???W.h?]t??KL? Y?g?-G?[pI?]}?f?}??????JFt?V?4??M?)"4?????@?*???.????P??i??????????4t\?>?e?5? N?????2[?]}"???????? By? +??7??$y??S?J?O?=??????:r0v$?q}??????]?H-/?G~???b?Vl??_?|?F$R6?#??_???3Ket=435???7???/?????y?&??#?????b +??'V?[?'??k}???????|?B??1?j?W?L?q?F9??W?H???M-??B??J ??J~?`W?3S?R7??Q?=2isO? ???:/?????? X?: +??|??????????????yyd?????3???[??1??9C??Q??=.U?v????>.#???Xq\?=??%Y????k????+?0.???r??{?q??/????6#???|?T?S?u???!=?P$?i1T??????A?D??K?5?CEeh???Xt?.j???{V?Y??I???"?Y?2????j???'?kz????CW???[?{L*hH52L?%???4?i ?Z????vX?%Nq?v?M2?-G?u-jw?A?????z??AjK$p"h ?Q???+'D?????????5;km??Q???K? |??.4????#*??????g??Ey?F?^5?d~???T???N???-`?????-???????? +??????? fc5?"?-???n?^??sPc?A??>??????? ?=?????i???v??+tv?'?KCryV?QKwRc5?e^4= +?????S??QN???D?b????J? A?+??????r???F??D&Q?{}h??????DD;??0?e1?u\?:#be?PpO??????G??? l? 2W?????g46q?g?1$? ???6n??-_? ????{V??bH?p?C??t?Q9%V+^\?Va??j +?? ?"#_ +???;??~??G?}'"?????p +/?;????S8??vM???"c?]y???? ?z?x???-??? O?2??AAB?,m? ???fr??k?#?F??be>??2??7c7?[??&?????t;???????lj4?'~??(?q'???]?"??f0?!?O?V*e?????`?? ??s?????%???p???"{0;3?Yv??????-?ht???z?QH?:???M->??"??K3?-??{Jy?K??2???us???X??Ox??s~!?$?\nV9A???b>?' ?$??~G?WD?????""??H???|J???_??,??Y??,??i7??%Ha?????r?,Z???c?0???M???d5I???? +?????u??~???E+?h??p???Wtu?Q"????)??$\?mo??u?l?K?? +???4?L2??T?(????+????+s?:?????;????T}??,?R??????z?S?#??8??;??&|???)/ 6??\ ?A??*?Kd@?l??y7)/}??*?M??????;+?+hWh???fte-hQC???(&??????t~??^?n2D?????????:???w0`?L???????AT????????o?k??3 ?j??I???G???j??"C:|&2???[?2???V7??/AFPv?AC???????Zg??Q??G$? ???]a??~??o[E?Q?FW??d?r??wVT?.?????w.rf?n????f5????6 +?`k??L?7?x_??Z?-?c)3?+?$????i?\? +?GWc????66^-8e7????????xL?(?_d???O???]c?27;???nu?7K???BJi8?:.?@????B????S?R?j? ??v%???= _G??#3?6_?U??^x?O?O???6??????H??:?g ???7?????g????(?_?o????$i?Y.h? ??_?SEg???e?????I??o????1????????????F???Vs??R???u???w?P| +?K??? "a????????w?@???R2?!j??Ya??d?F +?V??a#?=rd5??1????X~??>?I%????F??#??&?????~|d??????!G?W???????/?E??????^f?/?l??E2eO(?A?? .?????? +l???A??(?Pl)G?W???????_?????M??i???8E??#???????IE?????Z?0{A? ?Ik???&??q?? n??q|?}x?K%???>y87???F?R#r??_5v;E?"?Z??s?f?????????d?I???n?????'0??_?e??_????O at V??_K??????y?w???N*C,?O at J[??I?P??????s??k??%G5?O_mF?R?????.????0.????oq|"????? ?????m?????????O???????U2????kKM?.;???Z??w`????3A~??n9U~w??y???jw{?Qd???N???]??9 ??H5??????4G???~5?O?;}???N??X???ls?????K??v???mO?k????'???1D???u??L?T?7???hGWr"m?????C?;?d84?K?\-?6??)?D^?E>??!?????N?/? ?+N?n>Y>??v?t1???,;?6>??????o?????2????32???:"b???j??v?d??|??)?H'}VV-?i%??&?X???i+l?KE-K????=[p????%vq? +????K?0F???Xu?#???????>??l/j?t?>_3_r??l??@????ON?"j?d*??M ??gk~v??f%??????gxd???[??Q??-??X?Ck?;?'hd4?b r{X???$?d;c/T??[? ?1?P?g???,?-?? #?Y?Au&C=????3\g?4U??\? +?H??9????3?Z?Y?I?:s????3??? ?W??ZF????YgB??lH??3???b:B!?L??HEG?Ag`s=?4??3YUIen???v???WT???G???@nZTXDLa??m? M%?;f!? ???f??+???si?L??` +#A??3??5??????F?e?H??0?,?!F???Asf???Pp????O$L?s?\?R?+!=9??????????l[*T"?HO*?n?S???:?????o-??@9??*?l?@E?+NCs[Z???A??",?^???T??U?k?b??|? =??"??0??n>om@?%4?N???+?;T???O?d??3??????3??w>?%?jL?y?7?,;5Q?{`?b????l???M?F?7?4???C[d?|?V ??R????e@UaB?!??^?b?? 3<[i?{Q???T??_?:iF ???uFIl??bFi???gF]??(G?? M??P???NX?=?4????9,S??Q????=?x ??L????\????i???????????2 +)???,??JR??T?m?? %??q???vhG:-?2????nO(?u5g??E>????????? ??c???g??>? 9d?s????fD???e?q???Q?$???Q???????dwM?? G`P6??7?iq?~?H??V?????:?K)w??O??O??>|??????G?/j?.????Fp?ur?@R]? +???m?p???)???p@?????&pln??? +h???h;???E???E$?J?)?[ ?u?? \]??P? ?+f???????"??6?L??? +?|?m _ms?? + ?@Pm`?;}???>?-??I??X#bRD?a???>h????C?Q??!??J??????"??KA|n[??& C?????+???@??C??.?f??th?XS??q??t8???'?'?K???????? ?_@??\???n????L{"?????l/??V???????@O?y4??z!2?q? ???lp^???B?K?''??, C????B[??e??'? ?y"\?>9O=cx??w?ez^??6:b??????4?(1?`??4?(1YKuD???}????{?I??x?%?gL?y?%&????-B???%????CLb?V4&?,V??%?? y?&;pf?=???+l??? +?[?+?lL4?r?kE?^????`???@??I?`?k?F??,5R??o?V? (X???@V?2z}????u???b?F.?UG????"?%r?l?{I?F>????&?(?*Z=??r?????* ?2o\??XF.R?H?+??????7y??d?a??Ho?{?r?mh?s???!?;Ek???????m%??_???6?[3Rd?-2qU??N?j ? ?_?y?V]d?9?"?????i\??K?8??/? +???&???xG?>f?:??G5dA??-rk/????o????]???@J(??s?:??^?x$>4????#???? +d:???????0}????cB?S??d??Yf??kE??? ??p?pL|!5k?&??%kC?f??#?y?! ??_dG?Q?1??^??8?h,?;rfY$#3rB?b[?H?8??"??.n??Y?f??bx#:??08??W?+y?T +?9n?"???H?a???, db?r?????=??J????yu]?C%??????a]Fsu ????G?X?y?+???G??n??}i?v/??Q6????^,\'?????q:?^Gb;c?p??H????x?9?9???e??,?u+)O+??_?????jbj?U??1^?i?z?i?/?)??L??????Sde9/W0J"??~}?h*s??z9?W?#?)?j???7?Odh???.:JI??+db???K?S?????]?&??W?(?3R?7rSW\?=?!?qdE? t? +???(8?r?do=??+???????#8??mJ??mD"??|Y?ES?.g(? +7?e%1??4fh&??-&ij?h,??@?????????D{???7^????T????m0N? +?????N???[??#?wZ&??q>& C???? ?n?[????u???|?W?$?~FZ?????&?????4??Hh&??'????;Shs?N??????-?2ap??l?f?o??????}E???c?qN??uj,??/?]?;I??????by??* Qyg#q?(?WBa7%+}???X??? +~9d???T`v????)??[?W?o????/???s +?????H??Dj?kTd?? +hH??bs??)????p??'?L?3??{??Av????2Bc 4Hg??c????Q????e:?v ?>???_h?6?;?! ?w?Ly??#? ?????<=?q????\cY?R? ^qD?vp +?| ??0??G????Z|2?@?h}u_?d???S?SH?j|O?`?%b? ??????????@???)"?/???f??#??????????M???3??~/???oW@#??????E?_H?_???N??J, ??^?3#??????????? C?GKw?.Q????T^!?; ??I?t,??!??:wJ??N{j?6? +d??N*?=+wRd?? +4???;?? +?f??????O????3?;?cF?N?=????*??y,Nu?d??^???;??Nf)I?N???[???^?Iy}?oR?E?p?T??M?$o?#??&??.W?+'?J? ?^B????'?B+??^v??#???BC??? ??y?S????>?B:??f]e??c?k?v???T?E??F^??? ??/??J?????,????E??m>?uvUD?)???A5?D9?c?????=nM?E%????????Oh??&S?????.pc?\?/?~j???t9V9?C?????n??;?Rh????#v??Nw??? E?1|?5d?:6?N??{E ????Zyf??wDrok?????? \???iS???W6i??o?LF?v;x???Y?hU ?????/?W??1r???????`?6p7 +????Wd?dQ/???w???????|nz8b?c?uH???????O7??sb?^va?%t?G????]?d????'?)jQ?_r?bXF??9t???/??? oUr????????? C??K?i}r?O[???????r?r?9? ?1?\82r??X?\8?/?p?Q?n?z??\???]2fj??WN?M???za?eE?H??q;???????v8?? +|?$?m??? ???A#A:kP?L$W?q??(UF? _??? ????t?w???Q?Z?n!????l??b????r???[??????|??M??=y?????v???B???,?Fy???w????????>?p?c?a?(?=V????2?,?????#?a?6?^?%;??4??????@EDY?\d{X??cM`?;???&??z?G??u?N?w?:5???ZY?Q1z*??X5;T;??f;5bsI;?x5?k +}????5??(h,~??:??}?B????jCN?^??y??-+?F?????Y?*????l???3?ey???z5;????????Q??j-????U/???c?N?? N\?i#?I?+ F? +/????v?\v?]???A?aeQddS ??jF??H?vY?w??CW???K?"%??\?v12v?],???-???4??|??P?]??????xdJ? HY?w?x?#?]??_$???u?? p???"??e???? +s?x??$????W??????K?]A6????49!?.?PKH l??k?????$???:?z????Z?]?x??aW?? ?? ?yS\??_???< ???)l(????y????8?;h?"N???:?I???m?z???> a?_D+`???c|?K???v~s???A??wShOc|???+x??y?c??l%?c??Ia?_???!?]M? e?M??H????#??eCi[?S??{27???1J?zC?E??\??u $?m(??#?o???Z????- ???Tg??8?Z??????7X6????B????=?????~??x?????:cL^??L? R??@nU?*? +M H?!?%_?k?Q?????5?"??y??Uj????????????"7???@]???@?W;??O'V:??????p???? +????f?? ???`n +?D??"/A6?? nH??GG???E????)??r? ??f?? Uy??::? E5:?[??? +????=??D? +qL?*#BY????P@?H??Z?wQ???"?f?????x9???$????|U??K???|i?}Ri?? 0 x?2??.,*x?!'|J?Y??8?????????c^?A???O?&}K^N?1?^?:b?0?C??)??3e???5X?G???E?? ?T{??j??^{???f?=#?/1?o??J/ Rz?-tVz??[zA??;H?9??~??h???v~??hH?????? +??u\ M5\vk/?$??5,??M??1??Q?????A4J??????G?'?+??& +???`_??nqos?Z9??]?7??(???;???X????"?)|?p??! X5?????????U?7Hd`w?????h?!?5CH???N-?????|?R?]k??????4??v??K??Q?+ipCk1?&????X???]?d=:?wV???15????K ?Z???t4?X????3?t??i?^?p??^?????@??j ?hT?"i/???/?lU??*???G??????,??????,Irx?????????]??34xT?2??%?`??#????Yk(&?x"???????p?`!?uG???L??i`???v??"? ???F?;?O??':lh????kAh???2e?_?l?pho\???w?o1?HY~???q??>h?do=T???r??R%9???h???? +????~???OdoHN?`k_??_??b{m?%]l???g???????A???`YfY????T???????H9??D???T????????`|??o!*?Fkr1?\= ~??r ????? }??????HbV ???g??A?7??Ue ???????S ||???%V????????\:M????X??????=_??&????:2??'??????v????????????Hj??XHTl???{?0Us??Xi!????7?????q????q?????#cGr?I:??r?:?!yy??_I?-?0?wu R?b%}?r????????]x????^??n|??????Z??M????e?"Y???<K@?f&?#???#???<'}?@?:2p#??? T1?+ +?Gn920??b??92P-?'4???Bl??P??X?L?o? ?? ?1???u???D??P05C#dK?[c??"QR?????S)??.?? +sut?J?a???OZ?'???}?}9???b?X?8??K3?1???B?2+-?H?4?????g??D;?{T? ;{??7D;s????RK>??? !?????N??q???V?Z??aj?????V??B?W??s?)k?;?r???9r?}?????????e\?3???7Y?4?7"??B???????>(??T?? +OY??MUk? ?? +rB??}p???????8?*i?????C??????A?B?d????m/?*??????~? c?Bv??K??1??5??b??q?????????o?? +???^?.???????E???????L?8L???r??-f ??=;vi?!??<5j? ???r??M??m??y?'?w[f?o???|i?:?$'5*?Q~??-+??vi(????g???B?!??>?vl?&I???#?[???J??;??8B??-?bR~?[???F???m?0??vi?????R?c?S???Hvw??\S?!?z?a?3????? @! ??bFp???t??7???[.? +?h+b??k?SC?Py???0R??Ek?x??*? ?????`R*????Q]?L?HOq???|?0???w`"??????a?kks????z?Z?S???]}?]sr???^??VB??zid?U0?NT[Ay?vi??q?y?u??????Y?6??D*??u??C9:???H?)?Y_2CJ? +???l4\??s??_;I`??]H??????????? ?' +?J?;???o????????????!????$????????????xi?g????#????o??}S?d?%3?s\?y??F%???-?V_?0"ApFF??{i{?????RN|L?!OA??2[dUg????l]??(???=-?s'????aj??Ff?b_???j??$?[?+???74_u?? BS???Q?":!?-???n?z6?WM???)?Z|!Q???A[I??Q?"x???Z??b-xV">?N??????WE;???????x!?uG?-??9?$???|????n????>b?y??h???F??}D<?]x, j ?Z??????8vf????????#c??C?????'?6???????c??)h??j?_?@??+????j:????2???u??G?????=[???ImTy?2/??T?C?j$??!????? +??Z?IjH?V????F????"5?G?????l?,t???j?e?F>?H??f?v?[?7U???u??6O???d;s????p???????0?:V?????`M???,???}(??,????7?x???:?),K??L???{Y??-??m'??*D +C?P?? ?|a???S?d;??FP$m?.T??TJG>b??UbH?(??D2%??I??c?S?????J??G??GT????D???9??z:8[+ ?Z??!? +W?E??F?C?????D?I*??L ?? +???YI?F??N????n??, bk?.Q???^a<?9gx?????6??^???&J]?H?y*??Xdd????6???%? ??]?\;?????????l>?& +"?28_?E?;?}l$?c?m0???JO????_???+&?9?E?)????x?b??X(>e???h???M???n????>??ktz???R???=]?????S?+???i9f??K???&{?8f_?F{?8v?K ??T??E?P +??E??l?r??H_8??/DC???\$???,??Es???E????h?2=FF???8??? ?e+??????fI????A??L?<???0 ???????e?????{V6?????c3??7?? "Y???_Hc??)2????????Q?F??:v?.?F3??m??d]?L?s`?]?C??yM??=*7?_y@?I?/:g&HX????FD??f?0???S?c???\?hR???Y??y?tz?x????k?,?B????z?K= ??D!??(?#?ph!????u#??vk???U?I2??>#T??g??W??)??o?)?f K%2??>?,?-????????m?H????????8??T???pd +B??r? +?`#??+???J????A??4>??hw!?@??R? 2]?>>I2????2??????)(}!??Ws?.??o?? ??^??{??\q???*??hZ???????_????L?qp???|9??bFE?61,??1??mDU?r?#s???I?i???]????_Cx(? ??Oze????5j?!/-t at C?l?????L?n?xZ?W?3?v??5???-,D??3??@??=$???34?j??B??[?,???????6????!B?`m???TuZ!??i?????+i???h`*?-?`??-???B?(?Y? ??Y?L4?????A? +?B?Zt?f?jd?<$a*????1?PdxO2?Z??,48D?Yh?j +?B-Y}S 5t?@-???ZD???Al? 5P ????????9P ?`??B=?+P AR;???V???|i??`9WF^?[?Jqn????i??X?#??'????g???A???6"r?'??x 7?jH???r{+L2?,?.? G?,?,?y??&??N?4Y?S??&??yiTSh O2i??{5OtE?z??vY?y\?? ? +?n????#27B?>jw???*???, +?5?? ??Z0=G??J??8??f??a"/`????dH???T?Z??V?2????? %C? ??U?&??B?(?(??g?r?A?a#??qtz?,?R?8?z>???O??+?F?2?????M??a?6%?x????? S?R??????i??.?5??Y??? ??G?S/.?4U#e??/d?s??c? #?N:???:?@?d????(/???????>HH??{?d???es%???u???H?vF.?1FL?b?F?p?]??3p?Q???'??? 8-??U??A?6y?FA/???r?4???g????v?a/`????i???o2?B????A?????????1?e??"r ???BZ@??????'????+?????~?@+???+?5.?O +-s?E????? +>?_HKVpeN ??+????W???n?????7?U?f-oD?^L#?^??J?c?P-??<5l???2???M: ??\B???4M??????@?|a?B?/?{?a9??????i?? +ntw??E7? c? ?n>rF?e3Cc??? +?\???h???Cgd??;?#?????4???H???6e????h??? ???#kX??????ld?rFz?3??Ot?a???|?????????y?i!B??9B??;??h??6?*??|DY??#H?6??O???l?????DN>????b?Q8N?????Q????????f?&??J\u???l???Q?}a?? =?C???ODd??#???z???a ??61?B7q-y????!????F?Yn?R??Gn??H?????c?Z<??????$+???9????6?????D'?/h??? +?|???Z?L?l????>X?E?=`??*?Ar???I?@??? ??<:??zXtx?m????E^????8??_?|?H?????%?bXs??8?+p????q;V?i/<?/???4% +[???(??r??Bv????? +}??????C??lY?uD?!????N????7?V5D?aO??E?53R?~C5 +???mj+??? #? G? ?V???"??Y?m?K????W?O??O??b4??lg????S +????vAL?&]??D3??Y???]dZ?be?`f???R??|?Yh?^?z%Y??????E???y?????m??;B]??"??"??^?L??0w{C??????Nk?5???,??@D.U?_97:}????v??5???n{eOmkK4??G???Nc??~6B?hz,?S??A??Yn?M????!7??uvB??X???O??????? w??v??Vj?}??rd_}G?W?P?/i?e?$rf?O?4???-??2B????w????????-??n??`?"$O?eu>6lY???4v??f????K??#?-? '2????"?e9@?,??>4l7????,v??f??5?F?q???#??nY[????(??`?"y?-?????+??e?M +?????P????"??3?=n?#@n?Ny?8???}??????9S?Cd?#?Lp???n??>>)?wd.W`??f^w???P.u?#d?z?G?Q]????:?????????I?tG???*???? ?V???]d???A??-Kn??F?^?Y??U?F???Uc???"??ZP??B??? +?L?(?#?G; +l???C+???? +?tGg'???0?~y?/?kP??? +?c???a5?w\?"???*?????}tM??????)r~??k6?A??????F???{?i?N2?Y?s |??k???Mc??,?]9?4??:H???????,[}?:-?? +d???5FK?*[??v?W?%jL)~bc???iq?:?4???AE????EG62??NH?a?+2?????????|??XD?!VZ?xH<>,?"d??R?,?.??'?q? ????????X???B;X+?T??!?W=B!o???p3?? ?W?$y?????????% ???~?* +([??2\[??? +_y?sb??w,??????? +??w?/Ad?S?ds?'$m ????%????.r?l*3:?u-^']??:*?S????? !v???@??w?i?%???h?Y?g_?TjB?"???8DHM?#r??#?}"O?}???|&??#g{?#$f??O??w@???B?1?]?9Y?,?q?? +?:Q?y??vW?AX???t $?? +??W^h?t"4?BT????w?Ho??????????i?????th???/"??Luh???3??5?!F6?[k?*???AX?? ?!?2???.??? +C??/.??v?4~;??Z????i?3????R3?S??? v&?u?)?!6??W +J?6?C#???V?6$Z?TE??n??da?k?????Q?zC4d?P?5?,,W??? +??iM???+??A?*qd?hm?)S?R??Q? O?? +???it?[:????x at C??=?/???AX.?N?*??>??7??<3dI?x??p+Gd}Dy????:????5?n??4=q??? ?k xXC?4????/'?? ??BL????M???????d&??n????R a????????r????????a? P?5?E.fckl.?N? ?)g?u?T";???i???j92?]i; +?Cs???]_C??{s?????-?jwDP?iBLw?H\c???\J???EeK????R?$E&???$Y???$k1oE~_y?G?'???D??2?????o???#?????Iw4??}??L[?z? +?P???w???+m?H:?=x +N? +?V?? +?Y?E,??:???i??y?Q + p???ES,O?????6?????G??e3z?P?'??IgS?????m?F]?z?????F??i +???{JK/eW +:'e?t +?????;[?4?@:????F???r?h??[DJ?1lld?U?q?????v6???!??,?"?????t??D#"Ot?????k??`'????!4??YY ?tHr?DW??F +?.?Qv?L??F??' ?:?1?3??uU6???q??Bd??????45??G?s??????>dO?j???`2????O@???$qmw(dG?h\jb 2??)??-{?4????H??7???d??j???`2?????~??vMr??!{??an???4??*G?E:??T?Bx??=??&???Wd?????}?????7?? +"???? ?f??Rm*??'d6w?$J?'*;?NC?8 &????x????_oD????K ?G??|???#yjj#????.????C????^ &?????d,??I??*?#o?_b?<?????H?T?I???p??W?=y?????k?d>???O at J??y?v???????>?D#yz3?/?:????1?hws~@????\ &??Rx$?*K???~???r,?L?I???B?;????? m4??e?e?.3??????????k???|?2?O????????'?Ub????Q?B?;?=??~??W?2#X???bs??l?_???_M?^o?y@'K_?;?}?#?~#j??Y\???WF??i?4?? ??Nw?r?ww??????!?? R0U?!???MO)?Q??????L"?z????'v???v? +???!M'e?V??]#eR?"???w?pi+????!??(h?T??x??s?x"?c???Fs??6???Ft?ev??*nYx?ydW?? +???}G??????*j?o??=??M??"????qRX??9?7?/?|%S?v)bGe??9w?5??`??'??2??X??6???"g H??VP????n??o??|]Y<7 kP???~#?K??)O?hC? ????a?k?b?qF +?s??[q??=J~?????GY???G??=??Q?????V??G?s?k???o?ZRb+5??O???7?8?6)\B\??+???&%????}???kbdHv +?O?"??R????(?d???1?F????$p?(AZ??G??u??QKj?3 ?#xz]??S??L??? ?:?=???'??iO0????*w?Sy????L?P????ju'B?E?t';??) ??v'5-???j?mN!????%\? ??Um_?\??b)?(??~TFF????e??R?X???????q??:EK????R?o6??nH?-?#?1n??B!?1?-??????v???V ?S9??s??n???????kuwF???????????i?k??z$?4?????{ ??Q>??)?S&?%w_?^???????v??O`p????54??`??urYLu???'A????h???c?k???? +?&&?????F?-rD?? S?U?w??"j??6oP.?? ?V?#?,V???(2n q??%`??zS^?J?+????Q?N@%@??J???s +0?k?"????? ?Z??u?E??&?S??>?RJ???????(?4d~DG@$?z??^?"`GD???b???%"N??q????x????h??gk\??U*i??E at cjE?? +j??? +I??S??X???&H?/???????w?X2?,`??F"?+?????M???{?C-?5i????W1??P)(???m38?j}?w?8??6????Fx??r???`????e?(??o?Oi??????`??%P:???????!&4??_?l?:??9??[ ?g1?K?????X ???@??E???f ??Ol1????@???u??jTo???9 +KD????[?? +??@????@?????????'_ aM?? +?fU??]?7???bWF?!?-8????!&f?`3B#W?=?L +? +?zz??X?'?.?!G??%???? +?1&?(?? ?R???^)? ?;???0?%21??'?@?h?p?:? +?eAF2?? drFy?L???T_g?=???~ d?l???t??-?? +lZ>E???????D??6[??????U>?'!?"?????LA? +?j??????XG8????????$??n??< ??jfO??v_jB ???l?\?6'??y ?z?u?k????t?U???Tk??Z/??jW`?E???;???qe???Q(??b]??8k??X/??W?b?o?Z}}? +\?S??LfE?i??jUN?z????h??1??\?a?R1?_ ?(W2?[?i?\P?B?6n?? ???F??\\.????@yL?'????[O?} O4_???x^taW???r8???K????????*?{??`d?M??a?{i????o????F?~?????j?h?)?g????=.&(?e]?=sz?l??|?h??&?,%?x]?IA??3?????R?!:3???Cl?#k~??tLr)?Fz.??y??K:?|?B??6t?S?Hj?VO7?[?"CY?"????i??k?>?{?^??>P\?W?????CcK}}B????s???e???'??e??)????^1&k8??s?L8`l??t??F???.?1DK???????q?K y6????e??I?u!????S????Y??1P|?L????~B$?n???L??!?sD?xpCr;[??J????m?>?#???,?6???u8g22??t?T??@v?;??????:?????"???b??X??????3j_??g??u#????.&~c|?79g??p?!wD$*????d??O?9????????ISt#23\??/??}??6??F?????a???iH???Ksk?i{?.T +??????g????????qAc??cx???????}??????\:???g???f\??kT?m??K?,9? ??,???G??5w??>0???Z????m????r? +??P?h"?????@?aB?"w:jgP?K'?Z??c???k?N9???????\??)+,y?s??4??K??????5?\>,/???o?9{??` ??O???? # ?`?L??c?F?zd?v??!v G9b??/mn?? +??m???????![mL??f?PT????a?6????I ?(?_??s9??@4??W ??G????a^????? ??b???? ?/?=?A??8??a *???M???~T????(?GK?+?_?p?=??D4T?Om?(?p?????S?`??nA +x???6?ea?????^`??????6:4??:$YpTV??G?{?"????|?g/o?7b?b??o??}y?d4???L8?u? ?r?g???z?$X????m?%:|???I???~D??:?T? x|%$ ??z)jSmQyc?1?,-t?6J???}??c?~/=:???7??=??????~4*??[_?(?s~YG??YC4??;????? +???M??)???A??????rD?-Y#????????????A ??sI?^>?i`\??irE??k????d??G?I ??o???|?? x???Ov?????@????th??~-????+??^=il?5h??)???,9??g????0???7?H?Q+?7j?vK?.?Y>?t ?E???3?????????5???(???k #???5??w +??4?a?-??d$7KT??????[KFt ?k?0^Y?6????u;?\k?e??-????id`?? +x??f?/K??+?D?O??*??8??L?w?????]q?i(?+?G??V?? ?%H?CN???D}?x??4R? ?4R*Z?i$wN?i?7??o??UL$=d??$=?= ????????????Y??K?$rl?B?4???#$M??,???Z?RdA?i +???? ?S??)|??4?w?,Mv.,4?4?-?oPXzH???y$ +?f???d?????E.I?KvN?|?H?Qk??b??jV=J?(?g?F??X???qE?v?Q??E????U +?JI,]??j:=?t??aLyX?p1??????????8?????????3S ?TA?!?Kx??z|=????7?,YpgMF~D???-?Ee?7.A??Y??g??]?[?4???6.???K6??%A??q?l?? =6?,??u?????/R?y??(????WF??=?[?? +???8Usw`R??p1??(=?-????e??.r_?b?????)1?Z????+)?L;?[?Q???C???????}K ?aH?-F??%?4(?9??#2??ERz?????ncf??$H?)???~??Xy????l?????"??5eDo?/??i,?F???l%d +???O4?$[Cw$yk????l??V???iQ? +*[??A6\?@???P? ???G`&1??@???E?!??F:??'???^? +" ? ???`?v?f??",??w??? YS?r/ +??????G-?zG???w???????U? $?}{?5?Mu????k??G$(?>???M{' KN?$[6?,??.?Se ?N?????S??? H? ?Q???E????"?O?ce??f at s? ? ??i?X???Z|??D3D????6?c +,??g????????#??? ??????+???m!5??7???8No +???????? ???????m???Q??? ?B(?(H?q?9Y??? +bY}???z? Y???????8)?Z??w\?%?~?Vr?K?e?w ???} v?????I?4??3??8??tWK?$9 +?J]`???????6???7`?\??^eb?\??h????T?ulJfi???.T???????Ty?^??I[~L???????%????QY?.?}?5??^??g>??_?R?N????!?IlD???T?1YO?/?Wb?????? ? ????S>Q?*f?4~???W?CC????-???,?\Y?_?}??<??x?i??f?-???i????2??}??iL????h?@?????d'f?I???????mf?Q~m<4??@?.?B????n????? ?>~??BD??e??oQ?2?t????+??ai??HY?j]2?k#??p?>??{M?B??h2?q???@?K?T??Z?| +??#?hV?zd??ROk?#?? N4? ??z4????Hj?-?s?D%!w?&H??SDl?"b???tw+??????C]??ir??????? ?23l??? ?,j at 6????a??%??3I??QI +o)[???:???9??????e?:???T &7yaZV? ??)??7?S?z??????}??A?[???t?6!??[J?y????*?? N??f?{??T??E?n????Z/}??)yNr??_????F?_????O"?@-n??ol???U??x??_??.,R.??3????????KgV?????????d1?OY???? ) ????*??s???m????B??????i???%&?z?/???-qG??#w1?Lg?g??M_?? +aAZ?`<??? ?7d??`a?? +?M?7`??? ???+,>=?>x????F?=?8???0?Gn??i?.'???Zw????y??[????????????????~???Jc$U?*??c???_?l??@P???Y???f??U??@?V ??Y?d#&????-5??,?1??)w6?@?8????g?QcZafvov???6?|(N}#?) {^z!????i???G? +???-]v??s:?1?????h?D?=?c.?5???VXE???|?:????K?GJ??n?>?????*?\???fo?h?G?!?&pk$???s???i??v<" ?# +j??d???oM ??pFn-H?? n&?pz????U?r ?j}?0?K?4b\????????????Q?? +???A`R#;????j?_?`??+L?: ???O[????=?CEi?5:??????/j N??Mj??9K2n ??y?}e# +?]?l?????????`???3?.??4?qh??8???Q?1a?k???$?6??|?D????L2???.dA??7I?? ?????>??????????5?F??#?5V?@? c](d|?? ?nGv??????h2?9???3?f?2?p2'[f`{?4zB&,Z???rajD???0 ?4???????>??kWY???P??V??!!????7???W????<2h`FU?,?=?5????e$c?`?etF?v%dj?4??t.Yei?I??6??"???7l??? +????/?Q????F???e???C#?????FL2I3?x??}?o???[?>??^'?>6??ec??f-?k^=?S?u$bX?/??v?X +Sq{! ??;??~%U???c???????%? i\?R??+?????4f?????R'"T0Rk^1l??o????4|????Q?1,?????!?R??F?*???z2z1?L????S?vd={??^?c?:/??0-]??$'?1I?UK}i1.l???>????`??]l??F*F??? +{???????Y??"2YH?J,?????????7???????y? +jVUI???na??????%!??s??????s?8??x?ePN??:q\A??l??n??0N0B?I???3? +IXxcY1&S?[X??Eg???v)??+'_?)FT?b?7??G?fNp? ?????/?G???u?R?sK?p. +?N???????\?s5? +^??k?????)7??D +3?q?x?gy?#??G??n?B?"?????????%]?I???<t???.?@???????U??j??????^?*m)??O +??~*K??x?b??)?????x?????#@r.??(;n?]?%????;iyY?Y +R?O%?;/?C?}iy??Lx?qFf?Y?*??q?q ,]?2?????0z6;hQ?N???eU??v??M????[????M?H[-e???????????5??5??S??y??Y>5???p@??M??Q;?(m?^8?2?c???m +*?gG??C??$(?O 5???????r?h??`?>??P??+t34??-????? +c:???I7?4?mV_?l}^o +?? +??Y?????p???eX???SC9?:?h??I??????0?? ?a???N?;[?/??????]?i?+-X`t?s?C?E/ +?E?8?b(T?%????:?r????, +??i?????_??X? > "???m?#u?4???2a{%9[? +&$@??>????@? o?SH??r ?U????3??y???N~!?C8K??l?eq??Q?G ?#?~?X?f"??A???K?W??&??b?2?+?}?n? +?????W?? Y????t +???=???B??????h????"?c?)?LJ? "+D3??@???+??k?_j?\f??H?F???b???n<"?n???S?R]??Az-???]?????Kp.?g??|!?????^#?Qw?5??T7b'?f???b???t0?N7???D???W??????????5?2#H >?N?M?F??r\?1?n$???WH?D?wS?#dAs82qw?G?!'p??<7??#+t?F?b?]??????dS n d:?|Tl??????T|??GU????9}!?????C??????1????)z?u9~N?|R??\*/?????? +1?? [?[?(???q??.??????1a?l?7?????? +?F??3FD???)w?07bv??3????n N?e???eh?84???Q????i???;e??))???_?-??+*;rYY???|bw?m2?Q???:?????F?p?????? D? ???xC??2?xIpe?>vn????B\R??R??x?C?R?sR???0?????(Jk4\? +??j???@?.]}?7?????????##*L3????0eG?4?{??x??l?v=??I\3?'????@P??? ?`????K????s????07%????????? +A???o??N?vKb +?h?m? +?Z??iH???!{?]C?????6?u?s? ?q????Fe?[?U5?K?y?7 +?3Cf??Wd?5?KL???????Q?]?C???p[??????x???,?&{???????=?$N???7???s?Ev??M?12??!???????VA?"??%@?r??9???c????????mV?UT?0?{???????ri?o?? +??AF??x,"?PB??oL-?Ni=????x ?x???"4? ?K?>??'e=MEOk??4?+?F????u]1?4?_??)L Z?N??!??y???? +?Zn??I? ?????$??R!??I?????*i?i m??,? ???m?B?Q?P;??+?&??WR???Ac??BC[d\F^!H?3^?v??WX(#? +E???e?& +?BD?y?&???+?$?ob?'u)R??iW?????c<k??B??.3Dz??.[?$??j??k#??g?E??T??? ;??c??S?!??+9???;r?g????W^?N???xhU\???6???Y)?fY?BG`??i^?????%?ao7????5??"?\?2???i???Q?)??J??X ?H??f?0???????"?"L@??g1-rBj? ?t?3 :;}?3;}??? ???]???????\?????6)??c???gg?????)9?g2?9R??sG???F? ?gt?????O??I.2?w?w:??????U}?Y?????)??? ?? +?n??U:??j/%?????? ????[?u??1?W????? +????vi-z??7?????WTH??sN?????z??????????f??>???@.N?!???*{??(?{?aY?]/V???*??4ky#b?b"?c%+???c???6??Kr? ?=*?t|??a?.???\???z??/??Q1U_) ?]?U696?=?Od??(!?&?U?7;???v?R?s4??cokY??]??? DFK?????}?\?-|C:?D???Rv??M5?? +?m??t??dZ?-??3zHq4d?XG!OMi+??]9?1F?j?F??d??V??|????v??P????>Q?#+???????zr<_4n????'/???a??v???G?D???q??o???cf*Q?H(????? ? +?9???>\??????|??j?N?? ;?????qE>??R?? 6??#.|d +?#FF?C??@z??n?V\S????Wo?#??S????=?? t??J?6???1?????5?>???q?4rFz?9?' *|???#????K?9???=??5T?j?M???G?:?>b??? ??*? +??H???? =?Gi<+??y?Q???>l??>?8???A????zy?Q?????j?M?DD????????)>|?? ?#??? .?(|???? 6?O at T??????Gv?SQ?# ?G??Q?Y??@y??d?yD??5h[c?c??>????\?w????z??+???Zs??G?>i??=P?# T??$????????{F??c? ?G?g?C?4?yQ?=??x4M???j-???d?M?g? +2?,Gndc???%+ ?d?\F\???,?????e??QJ^?8??K????dI???d?X????$^?Ec?zd0)A??nee?rXAT?q????7 b???SC?$\??9i??;?????/qf +O?]]??~? +???CC?0???@W?1?z??? ? +/NF????`????J?T?BF.?????-???#?G}|?j???.3k c???)??F?TJ?5???;WhF?B?tf?d??G? ?1????=L.?????C?5??'Xp??? +????+sM?8???&? +s?5.3????????I%'?$?3 at 3?? ?!?AC? .??=?x'd??????r?#{????Bf??s???~|??g??H~?)??????0&???????;!Tw?W?9p???Y?<3w??g????y'`P?.??~??_ +cr-??GD??D?n????|??M??]??v ?g???R???0Q???#P?z?? +?#??aD????H]?xg??P????s????k^j!????J2?.?P???-??R??h(?`?e9#?7?? )-???#?79?w???,d????s;??qu??gD?????'?79????ZpY????;!?M\?2?j?????,d???WK??????I??#U??'&G?W??\ .?????NH-?????@??]?r3 ?k??%33??Sd?_?E?R???????0.???rF?o~?"{??Y?f"?#????B?????7???3?v?/rh?&??w%>wY????wFb?c??H??H?5??!???7?a["? `m??b$??1?<?????N???f,Z=???e??|Y?\ugp?????H?2?*g.-a???N;???A?!??m?????qpw??g? +Q?m%?W|?O??{sS& !?????qay?TWm0??0?i?]??cl???1g????c?R??1f????,p?e??Kn????wV? +??1?ZZ? +??Y?????ma??xc[?_??- ???[???4????'?G?/0RF? rr?}a?k?N!???????????w??o$??A?????4uYG??e?,h??s?W??hLQ??;??fOm???0?6|?R??.V???5???P?K?T?u???CCS?p?? ????WQ??(H???&??d?????a????G?d9z??$s??> +?DJ????d?(???Au|b?Zy?2????3????'B???w?3??>qh?0?6 ??!?eDG?s?????1??Ajm??????????????n?e????M?dxJ?O.{ +??'?K?????f5c??tq?i????U????Ab +??x +?:c???835(rH?????J??Mnz??? ??9?????;??+Q???b???dD????=??2?|??e?O??thEK3?????8&??? ??;c,??8??????.??49?vlM???V=??/K +?????)?w?L?xgb?Z?0????(??z?ij,??????????d???9??t??_??W^a?hs?b??z??L????Y??Z?i?e?? +?5x?????^?\?;???????????|??g?????n????c$~?%lhN2???G5P?v?fvi?|?(??H??F??O*R??D???|+x){???cv?ii?/?NsY??l?i\2?5m?????5- k.a?c?%;F 5?a???o96????????e?????????^?? ?HG????-?6?C5n??????r~ayuC???'?????????Q????(|m3p?{?x?e?z???f??oY ?F?,?T???????A? G????a-????"??a???9???#????F?`???Qa?a??"??a?X??/????6?C5b?"lH?~???kr?MZ.o?'[?? ?#V2?5??????R????2c?20?H??? +0:??_A??H2??9)???5?!??.????o@?0b????s???=??$???kF?Y#??r???!8? +??f?f?-??? +h=@?`?u?l>???? ?8???????tWI?l? ?Jm?>??Y??g?"P??{T??Q???????o_?;?<5?"?e5eEk[1Rq?e??rf?1T??R?c???v???;???!m?GcpZ!Cc?^O???u? QE??&E?o?B???\?p???}?E??m??[??P?$q?J??.?lp??H?????tj????m?Nj???W???%? +??y??7r?e +???".{?5$+"Vu?e?3z??}?9??&g?m i$m?????i??i?[{ok??_-??|?L D?FU??X| +Y??r??%?????h,?} ?G?U?3_?W0?2?i?MX|a?????A?Y;??Y~b?u?%?????Hpo????3??Z?; (2?????W???:L??k?t>N7?#G???L??????'9??????F"??8?M|3?KE??kL?[???w??G????????z???? +?????4?o?{?D??:?,=?:?_?? ??b?\???P!E|]5[7'[?(?q69?????A????"???9????j|??B??E2???w?+. ???h??F4#w4?????B????8????8????[????z[?0?}R??o[?zc? +^\???:L?lo???\?????6?;??P???iP,4c?????/?*:?\f,?d~Syf??}y?i?`e?p???C{?nGY?9?bC???r ????t??wM&]??W?2?????Yt)??? ??|?H?F?????6?#3N???|A`?SK?~????? +???? A??(hr?I????Y???d??#b???H?U????@j?????s?%?#Z?@Z??PM??$?S??`ZU_?\g?;?s????o +?j???xGC4Z???BO??s?????g ?K?Q2??7????_??s??i"/?&?v'???tJ?? 1\???MR??*-L?b??89:??3YtO???? ?*X ??l7f????b??'K&?\8?Dx?p?q?9?G???1c?M*?w/?#?8?????=X3??S?Y8? +gN?S 1{!%o?e??~?j???5??!?s??s???G?????~#jx?_?J????? ??q???3?Y?8 +??|???&????r???4??7?jY?????yR/?Uw?u=???N^,kM/?ui????/eo(?E??yc?,??sK%!??6???? '?l?4II?/?f??v???R??O???n?d?Z??'???Ovm???s??z?'wgG*7???y"?K#]???9? ??my?? q??G?6r.Y')???;r???M????'i?????G??@???n:???Tk??:??-?c??:.NaO?:??J?UQ?JE2N??U(#???Z?!???Ma?5:C\?R????C?`_?uI8????????U=@?n g??5^?????6u?W??S/ +?C? ?-??"?l"??=24??X?Z??=??? ???8dP??????g?jA?~?????????5?PFPh?T??T-G89??? ?->???K?0?8??YBF'???;??I???4vm????j[V????y???????%/s??k?i?????s??^?<??????G??;7@??g?? ???k&l??? ?????P???k??>?? ?`&???3a?? ??B?L?S)??k&?]????P6???Ab&x?|&??3??pZ:A????y>? e?j!??'?2????i??"[?/??>?tl?Ig ?_n?Z?/??tE?ov?# +!e(D6??#??b= +L??x<0S?>?W}eQ?aV?X??|?ERr`?Pr? +??e??M??????-?tk?H/b?????L????TI? ?~d?:??F??,??{?h??L{]"1?}I?-t??efYQ??6hW?V?e?#??????W$z"????? ?O?6??????2?4?z??<2<?R??????{[????H???????&LkM??SS??i]??m?M:e?????+???+?;4Ta??? +??ST?7\\???? O???'?e)3? +?5?wZ???+???????}?#C?? ???tWK?d)???@?QQ?U?2'5??7??f?????EE>z??????F[?'85j +?94??*?-'???? +[??H?????rp??m?tWh3??p???tO?|hH?$?4??????????K????9 +??)?J?3}?Q +:T??????E?/?R}??K???~i8g?e??`??0?)?jr?D? +?????h(????)$o??????F?{?H?t49?0$,????.9?K?8???g???4j1????????wD?`??@??RQ&aG\??.?W/KE {?ut??b????t??B??~?I?}?u?pH????c???c!*?\??W_N ????vT? + I???5 AZ?e??94??P at j?????#jAR$6-&?EN?E????SG????^???]????QL???+!-?n~O???FOD????r?p3-?P?????t?6????2?????fY`?e?8??X?? ??R??%??cW???bP?????S?i?z?gUu_??H?|g*f?.??f({Z??cSN?????"kZ?????#??7?,??Yi???l3???P?? ?2?? ???(3?f?p??E???1zY2 ??/????# +?P?i???SF?U?????3;G???znn?X2?,:?- +??l#n?^??=O9?ri ??3??)?s?l ?iT?p?????)v?&++??p????,??Ejb??w?!F;j[?5??????z?r???g. 9?._?>(a?;???2?????? ?e?j%????tH?~???(_????6$y TR??? +i??:???>!|"???W=?g?IU???#?d{?(5????????8V?2;?????%?D???p?cu?\??Kc_W"???n?UO$??A"a???7v?_? w??m?&??r?w ?????^?d? ?-{?n ?]???A???[ r?)????e??|???3????I???`??;??P9?]????w?]?^-H'?o?.?:?????$o?Ie??\f?K?y? ?O6G?o?'\?;??O~?Q??-f???????F???S??D??????@6? B???*??B?|??3x??? xY??E?z???bP???????wAr?D?5???Z????;?[*??z?????\????Hw?l7?t?v?"?Jr?????8O???????z?????gM?]?}/??T?f????)$b???S?m??FI??G??T???Y?VqNv???#??lmC?'?[????MA??b ?~??`[?@?$c-????s?R?? JS?qkq?@R +)????)?OKV?i??S??m?????Y?8INY 3??]?BT? ???5/????????????O??1?L????? ??=???1V}"?* {f??$m&Io?G~?????jQ??YAhj?u??w +ETn>c????4z??&&;Ct?c???????-???G?KJ? n86 SY5??????$???U????k?L<:f??>?h>?)>?k?(y? ????a?+?I/??'?o??[??7??&?m?p???w??Q????%??6?????4r??t?@??. +2_??"?[???3w?0?n???? ? %f?$???:?|J????i4??K-??9J???>`-?\?????qA +?)S???????? HG?L??????SE'??? 2N?>oCC???????~J??\=Gy]?????PDs?>??2?aOh??f?p)?t8,^%?B|?%??m??d???vi???%Ydd???{d?:_?Ke?=??=e?q?,?qk?UE?3nO>??XR|???????ti4?!s?N>?{nD??????|?T?+?FP!??E? +?YExFE<eqFr???_V?qtZ?*????????- ?P?k?S?#_?)?22,f????O& ??????T?)`W?pcu??'???v???????=| ,???b~???K?mJ/??>?<Fs??cR??? ????????|<+???w:?@??x?,?????e\?????W???e??]eW?? 0G??v????@g?@???????!???. +-??mN????????^??i??L?s6A????1l?e???S?K??[?\???!d]?8d?Rn??Y?y??-?4????C?????=???b???VB=?Y?v??2?y+??Ch?Z??%D?????t????2?F?w?o@?N?Q?!w??$?"?,^fZU?{??K???(???F??????.?3j??(? S??]r*???8b?D??sgC?X?t??? +?V???%@?J/?Jv???LcP??,[?j;??SF9??~??4t;3%?? ???o?:??t?:?i??)Y??Qwi [?:?????=_"{ +?>;????y????? +??k?????h?{?? ??u?m??>??N?h????i?k3???t[L??l?Y2*??q?Xn % +]U????7????5???z ?c????F???@?\?C*W?.;?(b?1f???????????I?Q#%W??? :??I(?!?????4??????d[????EX?K=4~W????B?p???????E +o???+??????????SG?\??*?#-?f?7???'???S?S??_???8?HpId?????(N?O??"os1?y?q ?A??h??q?z???2[sz???#7?~???4?U???????xk?u +??w?@??? +???P?{$_@????????Q??l?`???*???-?Go?GV??\?S;B_?A?????^?????z?B???H3?????????? ??>y??7-:dt???>??S?E?.r??C?PF?6??t?a5\2???d???^=??M?Ghpd??8GP?O????,??'?oC*?X??B???N2F?`?$v???? +Xh?'L???*??D?E?~?O??S?0???y?N+?;????`F_???[?S??\??*?#?=??Tn?R?W?+??????0k?Cz?Z?C~0$rjr?0?et????= (????h??&?@?????S?>??pD'???@???EfHt????Av?? ??t?e????B.Av?[??????Z(r?A,??~?tV}h?IV8*5V??T^?Y]??3?F?@????TN???#B?????e??>?zv???????d????i?n????@???O'Ai+?A?;?B??e??0???S.2?4?1Y??G??S?P????vh4}?? +????:????????&8?{?cT??x6]?4??{??R??oD??/m]:Z?"??????Z???X??W????hs-??N???6??`??????5?"5????RK?ij?A.;?R??ls\ +??)???F +e%?2??-??FJ?gD?? ?`?dY?????oJ???+E2?z???HT5????!??#??X ?*?+? +????-?F\????T??f????aW?rit)m???Bl??<3?EP?Vf????????[?Lb?!"??5#?B????~ ???$?h +k? q???]? ?*??H???'T???m?9??R?k????U6?m?O?^?G??????m??+q!??=*?%??Q?1=PZ?q?(??]^?????!r?2K??.?i???/rCMI?V$?o???gz??????1????|?Fm?){z?&c??,??D?9R??~?#??GZ?Su?E??%??IA?R??q??R+???m||??????]d???'#??XO???I?M/{+2??[7B ?`d>?????y????h,N?(????#????<B?????7???????????????I???G?a???????{???v?C?? ??:???E??]C?A?&??o.?c??%!??Ev?j??M?M5?s4???????({4???a??}G????-??[?n{`-!j???9}????????? ?ic_?=?Y#?T?Y?l ??/z?3???x?I????sS/?S???=?f?L?(??L"\{??????aQr??P???,????V???????P?i???Q{Qk????\?????=G +%?,??? } ??x?+??\?!r?W?vmqU?????,???F??????hY???A?W+?? +??xn????s???FN^?8eX?=?C???wB??6G&??o$n?~??X???<@?????Sr????7?>?[????R#>?[??i{???@?? ??=O???lY???fwMu?y-C?7r?_}"q zU2H?`???(?y(@????o???????rF?%P?As???????1MOi ++MO??Q??doXgz?}?gBlz??????4=5????v?xo???)?f?Yir??s_??????|??<9?M +??1f??????P???L6?f 17u +z??e{???gh?????gj.aHyj^;?&?35???35?Y?????I}????E??oD3X??+???h v????J???ST:?h?aW?U5?j??z4???66K??h~f]=?????}s??????W???^}gP?Q7?-?W|?c?x?????i)?k?<??-??"?qT?X??'?j??0[]_?.me?t\??_?s?;???? ?"?????E#1?????[??doX??L????>?H??o??EXZ??6????_?m<^? %????>?:??????P?@???? +v?N?l?I?G???????c??} ???????`x? +????1??W3????h?, !?y??e8Rx}?#????1???{.E??\j?I?"#k?????=???$?F?Zq? +??&?????5????1Q1??I??)????????Z?&???J1[?ox???9??Ie??????A)??j?WX??s???I?hFpkbVm?^??'?l??xv6?:?? ?6?!??B\:u?????????)?)?d[s?+{hm?R{[}?????SU?u?????^?????????v?? ?? ???}&r??"'!&r?f????T??1(M?"?|??????qk\???9 1??%???-?1s"[r???1t??u? +?Hh]?ZG7??6? A???0aP?P;??~??????a?H?,v?????? ???k<??,v +?Q?;??? ?R{Y??!v?+vbbGm<?A??i?>i??*???????8H? 5??lH?????%??RG?Q???d??????^?????d????Y??;kC??Q?~?Ohmcq??lj?7?x????} ?? ??R?X^????@?6???d??f?@???:P?vv?+?&??B?Q;hd??C??|e????CW?????>????P??????q +?p@&f??)$u????????n????????q1l?9????B????????f]????Q?2?]pF?Fd?S??2e????-??1=?e??=P?? x~4?+?????gp?????????d?YQC?????uc???h2G?????????P/_D?P?M??5T5 +??3?|???p??'f?$^??st?Z???h?L"M??Y2??/D2??cs?AR\E1???B??9?Ej??$f???EZ?????6????1?EY?D?xo?#?n??W?nX)???????]?????? ???S??*?' +I??,WY?E???1?}#?*?*M??GE??fy.z9?gsn?2d??7?*z??3?7???vB?A???z??Sq>?'H?!????Ss?zc??ID?y?z?^Dt?2???3`?? "??R??w$F??????*F???r],X{~Qd??\??????l???2bw?B???[?R???o?l8cj???g??R?bF?Q.??2-???%??8?????a,??????]?H??k?0S\?rM???? ?u???????e??\? ???k??/?v?SC??JteqP????d?36 ?v??????? ]??/?@[?[??X&"?S??5Xh-?[???[]???0DPV +?t9hh? ?J????t :??1?e3?`M?+]2??G????G?/:u9'?R??? h?0?.C??o??bC?Z??d???4???????:.#??[!??????T>?v? ?V???i???cdO??F-???i? ?W?????x?????k??8?o?G?C?J?BR??Q?A?????Ns???x???,?\l?SMy'h???MG?V3Jy?8??|??AK9???W?d?Z?? ?????k}"r??t?M????:?????8?l}N? ? +?mpjqt??o????Y?4??`?Oj???p?\???c???>"jDQ?5??W>?" c???{G?#???*?:???[YTL?g?p??Q?@=?zd\??????t??? c?3?????^b??B?`g ?e?*Zo???D???2?*?P9? ?`5????_?Y?e?i,v`?U?????F????85j??FYw?WC?????????y?6?LGQ8.?J?(?D????y*????#?????V?=RQP-???2??\? .?U2 seZ?:`??&{?????Uu;?? ?0 ]????????r?3uWz5?ej?|???#e:=?L??XK???6????? ?r??hH?m??yGr?Sr*?)???^??%(?S'}##?/?o>??*o????j???Cr?Y';??N;(I???Z?F2w???:????_???\?+?X?y}?{d?X??R?8f] +g?'D????/?.??z?wM??^?>{?S`O9?F%???\???????'???r?#????????e/qV^?2????L?????/?/pb?pr???_?????<_??%/??l??wY/??a??Eb???Hr$5??%???W]d?C~? ?W?C???K???????A?~?r?? +??'9????!??d F??|Z??????i?[0D?H?i??D?!?+? ???????? +cf'D??=?]!????fb?D +?????? +???H7D?bEdO???????rd?4??wBd??#_zb_????i?>??? ?U??s '???] [?????"???????F?>?D??d???????/?!????????*m?????4???#$?*?1'??a@?a?z2????{?a|???.K5?\??;????s?nQ(?S???? +k?-?A??y*?? ZbG??q??;{;????=?#??N ?2?r???R?D??VF????5?????????(v ??&C1{5??? 3???????z??w?;z$?]??)1a?D$????C?[1?????B m}?3???C$?p??!?[N 1?#???}I??b4 +?{???!bv? 1???fo??-9?&?=??o??nz?'[??!6=??+`?}!44E=????^[ +??;? 1?_?=d)??s???h?hv?o +?b?C?,=?B?z?7 ?9Vs +??0???Z??2_7%???$Dc???5????!?+?8??U?#tB?y}???o?+0#?6??,]?!???~"?+\??????W??!?o2?`?F)??6?{?6?????????????t???'P\Tc?#?B??????*??f@??k?08???T?l| ?bd3?????agI?Je_?}?l??v8???!K???>BLg???S??[?????T??T?E??4P??T???y??X)2????3?2?_????9????{??C?6?{G????M??M??1?Nqm???????[?I?????O$%u)UM??#???#+>??c???~]???o?K??T??K9???9?'??z?+??1?j????????????jK?Or???M??xY?k?S_X????+??o???W?&?c]?@?[?q? h?Zs?a???.????L??SE}h????=???]???? ???? z?????.{?X?I?&??8??\?47?3)\ag????!E??*G7}?d???.?"f?4?+????L?g?????????x7Mi???U??E?&???:?Ch??B0????j??j4??y??n???"???9i?{O?#}???,!???i?U??Bi%?4??W H??WK??_%x????U??B?}?????I??Kt?Vn(FY?w??P????@???????X?S??3? +?????l?B@?*.?g?B0)?_?C,??? v?i`?\3? e?W\?:?|??u?nY5?F 1Tw1?9?~e????=??UR???W(???4`???q?mM?2???e ????/F?,??dG?R?c???-$?#>vL7|??,??? }?5 +??i??j?;?}N?G|? D?????Ns???_??A??7:w??? ???????O$?s 4%eY?3?t???u??e???YyYp??????@gle$??^e??U??h???l?lLOc??+, @??3/ A?2D???????f???:???@????ki??e???+?T??????? Z?????x???b?.?????dA?L ??r q}?"???q??+?IZ?o??I?????(m%?.???K?6q???????x??? +???%?)?G ??q6?_????"^.??M?x??~p#?d??`? `?X???????YB`Q:&??????'???n?y?N??g\g~ ??f????4?????c?]K??BXE??r?5x?? !?&_??i?JJ7????????]w??0?,???f~e??/?EV?/?3?0??STEi?t??&????,wt?Z?8?a???{????H???D?@?????v>\@?]??Z1?qS???f(???VU?;y???]G}??:?????I?K? h?v?9?@??U???????(w?$jg?2??&c??a??W|BX????2?a??Qp5?&H????: +?????$???f???? ??C?R?????T???????F?????k??m?7???Q???V?2??G< wP5????T??{<?????p?G?H??-$??H????`g?R???????Hiz?;????????mY-A*K?x??ML1Kb?? XR??-??h???bNzSSd{?m?Z???=?, N?E?7m?[? +:?*"M?@?w??????\u?Q*????sa0???"?+F?????L??3G???????;PfDb q0??!fG?D???\G?????????J??Dq??\_p?$?\z??????kF?(??~??????$???y ???po??Ti??????f????h??)ue ???{?1?4[-??n{- 5?P?:??eB x???R? ?????S>q????? {??????????Y?6d?????`?T?????(??RDe6?G?jE@??????0t?????UX+Y?? +?;X?S?+R?;??^????????4,??o????T?t|?3G,??I0??????9z???*??s$V??(????5?Pd ???k?{,?@s@|e??=9???pOnT?\C?????>6????h`^(?>m??^"??dC???I????*7?Ds?????l?^?WB 92 %v??%? DIC? +fBC 2? +?,h( ????>????????5? ?#'???H&??y?g4????-?(????????,??yE?&?*J?6????u?2J#A?2????e? s????l?t???8y?4N:J?It?????J?I)[bf)??????9???YI)????????,?)?$?5>?{P(:x4<????^%??%??????,?????P?/ B?"??]r?????????rF?{?S?#?X????EDz??tW?#)!?t ?????_?G4? 2?>w+???n??=??8 +?cT\?????>{???Z???????R? +q!HYs?mXg?}??p?p`?? 8 (??J??q?????,w??Q?1?&a???L ???H????O?h?r???????"?S??.????9??f3?????????>?Da???D?s??????????`??K?n4z\??az8?????8???w2?cFeKEyz6]???r>?5R?J~?G??W ?T? ??E.?%#?w`??Ew??B??H? R;??z?????4?????????Yx?m???v????u;Aj?4(A!U7??4?5f?????`???H3?uC]Bs]u!??3? A?H2????.??"YPUou? +?????u!D??=???e=?????:I\?}??.+k =(f?i ??O?-49X???&??B???j ?3+ 9?^-1E?/s?#nx??3?6LY?(??x???Ur%Y +?cEZP??J84?j?? m 2sNU +?ZP(?3OzH???l?*?[!5n??????O??x????)y?b????+R???H??z????_??5?????$??h"?cj?nK{?VA?l? QA(?c??P9F)?????@f?6t?v?q?9xLW?P1?????????w(lGy??K??7?{!.??qD ?9?^I ???DH4?Z?m?i??0?(?_?W??d??#C\ jF?k??$-(??????D??1??kA????jA?E?&?c??Q~?O$k??h?J?1??3??l1?z?????^??s?????3??>?G??w??F?j???{????j???W?f4?-????{??X?Q?????h???}??f +{??[??????+?????tk?'(??]?z????|?????L?p????^?gG???5#5??u??]??5>??n?3????????9???$J?v?W???1?7O???v(?ymk\???[???P?N|???qw??7???? ?T?%o??Y?DNK??dY?j??VBDh???Z at h$?EM?RZ@*?kG/?????J? ?????o\BKN ??Yi:F??AV????=:+y?:?-?c?0?:K}?????????=?,qd\:k#[U????+r2?_Q?????=????=???zj??a???&|^;_JK<?Jk?[i%?|G????#?=????n?J?Dp?& +s????D??n??????jIi?=/?%??J+Y????)6{ ????M?RZ$?&g??9?z??E??G???Y???_RK?I??IiI(?RZ???? ??y?E?W????3s7??[*????S:?9%?%v?kw?>?)wo{swB?y?'.???p??T7>o%N???????es7??BGD?U???IRK.1???? ?Pw??????eI ??v}#???O?6???%??A??L +??n???E???&fk5??@U-?3G?bC<&#?c{rzA??W???A??bx\? +U?r?Mr?\87??????Md?J??u?(Au?6P?_HY????7??nd?9???dnc?o?k?1O4??3?????|????d?? t?kMA4&???iD??,?? p?x??;Q;??D,???@?00???"2"?"?????TC?WX???:1? +f??g9o^?????1?m;tlL;?c?$????t????????_;pS???|)?!???!?E?S?-? +??(s?7??N'????C,<.a?_?D }G?n4????l???x +?~?e?(4?1??o??21*?O????M??oBN&??y?A)?,??e??B~?d?d???`)i???&F?e?????s?:e?????????EmvO?bn??????Is?Yz??cEHw?A????????DPQ?????6?I!!J +?[-W?b?M?)???l??? +?n?tV?????? ? +H_?+?{????Y5??N?N ??m'?)?}9m???C @???O???:X%?d;1l??s??c?M o?????.b??CB??M? +??n?????%?}?L @_?0eZoy?;1$$R?N(???" ????[?&?,'?d;1l?8]?_??H?'? ?Q?????x?????????P` B???7`????P??q?n`??R???G?????%%?F?]M??Q??5J??~?????+?L??2&?M2????N??~?%T:??+??????? +0?y(M?p?z??a?????)Bmh?X[???n?o??? ?9Ms??E??'u^????{(O??????D q?3RyZ?????? +?M?+???J????#??kW????p?)C??>h[??c!??????u).X???`??:?W)??;p???? +,?kP????R?*7?cf? +t??d?-7?Z?????'?u +?? @???g +KW?2?*???'n???_?????gib'?J?p???*{??????4 +?p????E?b?????N???6]'?^?~????U;?C?? ?T%$????5?k<-????dT=?,??m???3?Sml ?????|a????dm?4?A????>???`=m???>>??x?#9,X????b??@??i??p???;?}??c??+]???t?n??t?z?M??o???????s???.p?v g??*?K??_??+ +?D ????? ?y???!????m?LV?????&?? ??=?6???P>l%????p}-?_? ?LLL +h?Y?^S??r???}?'"???????O???]??2?C???Y????=???????&Q???????g?S??T???9g,R?HL???7e??????#???Q)??B?'??m?hv?kZE?4p???? ?????V??u?4_!+????d`V,??r?!?x?kPi?QG?.? +? t)?%????e ??F ?{?? +I]????y~b]@???^"??K?k?p?2?r??V?C??7??????n?W?4^ d?b?^u|L?,?W?gE:d??0?2??2??.Li???^Fs?z??????Y?H + ???*?c0?????????'l??i ??P??d?7M?3xz????w?M<_??u?)M??a9????}?OB?#??9|????u??kZ????Z?4??^_+?09???o?w???&????=?:???v?????aW???>???U??AtA???U????v?????? +`#????? ????_??????[Y?|???y7l>%?+?*N?d ???:???*w?Y????29.:??GM????T +?}???bn?l???????????w@?UgSV?"3??~?W??=??v?4?o?O`@?h?su?????W? ??g???jLW'm.?im????[C?? k)n[0??? +?dZX>??Q,?|??lu?v?s?????K ?m?? ? ??/?[??~?(x?zHEM?`zQ&????x?f?;>?5 ?|?????p????????w???????Rr.?*?lb?%?n????}=??f-??=?????????k???h?^ ??6y???=?C&D??C???[?M???y?D ??)???l??4OM??t?fB???]I??U???]e????NS???:?gP???????2?Fm??8?b???U??&????[??x??:6n??5}|?C??`???d??^ +}????m??}?]?g????{??????[r2H???T? ????a?????????+?,[P??}?x?6?g?_???h{?/??????Cm?1u?? ,k(????;?7?3??,?+??u??^H?????????\JM2?Z?7Y???~n9]2??i??????????j??Z?? m???(Y?{:??xe?? ?a?????????K?8.1F|?Z,9}e?????`?]+!?_^Ov5????-Z???!L???@?Vp3D??1???4?/?i??????4????? +?_???6~?!s?0?)?.???D???c{a??sP?X5Cz??X?????????%?????&??:Mu???!?$????&?8?6Z??}????(???SV?? Y???_??????=l??)3?H +>???m??=??P2?%? +??i?*?=;?9yq????V??X?w"$DR?4~j?/sn +?C? +?i +??t`??u? ???%?' ?b?$??!??*?x??o?l??Ly:????????2#wT??????? Y???? ?1??_?9??sq%U???p_ ?#?YYb?D??]??pY-??f|?????%??Y9u????????QCs?!?Vo?j??????b???6?D?u?E?'??`????og???G?fN???T?XP??Qv?c??W?? +\?SR9?.??X???-A.R mF?-'?G??R??r???a{?lT+??`$V?D0RE?d8k?fv4o??a?x?q? 3??6?K?o?R????'??1???OF$??8??Z ?Y???. +??????7?3?+???Qf?[?1?]??SG??C?}R????W???+&???[???2??cz ?_X/wh??%?+U??}3???x?V? ?]d?r??J"???=?E????3>%0?{z??n?5pZ{F?? '??+?????????????j0?t???(?s???='B?V???G???????C??3???T!3??j???I??)?5?_?????B]????{???&???+???X?? ?RC? $ZL???"?^tU|^;?TO:?[8h???d??????~>Z???0|#l??I(/?????'wj?l?.???f?? ? ?"??{???h????[w??1?-7#?? +F??8Gu7Q?EX&?`???$??n D7?J???J????N????????????q????7 +???4???ay&?8?????4}??;::`gJ?:|?_??`|??57??6y???6 B???\+??8?h?+????? +?+xJ?B??U?n?O(z?uB????3??l?u?M??D??+ ??????-?IY??R?l????TOB?rF@+???????y??/?????Zo?????oN??A?:?Y?h??nm?N?~]a??+ZP?????#?x??}E?M=?????u????q???G?z????;????[? ????L[???9S??a?o,_????R??i?? +???OA[j ???P|f???b??f????????B--???p?%o'h?p?_?n?z??P?}?U??CNj?8]3'E,0???8??e:! +??????Q???? ?#Z]K?,??m???N?*6??n?X +??p??T ?9??mzs???y???)??U?{?n?MU?o-o???;}??xD-?1?*'??y??2??@???:eY?2???o26 +?{??vHoNX??;????;z?W~<3????????jE>?~mx??WP S(:K?4?)J?fc?X?YQ?{??????-5??R?8.?d?dtyxv{Y?(????o???E????Y???`??z???L>?_ at .?c?'R???$?????4Y???IqL+ 2?'??B??kX!*???W??%? +?/???? +??^?(Vo}? +b}??V ??????3? +?uG? ???? +???,???}?}Vq??Y??????:?????????4????]%?DN???A&6????e f?_??I?_X!HY?b??v??B?(?:????3???.y??c????@;???ul?i????M?3F}>????????T??&A$Wi??"??????1???J?+ +???3P?nw?dH?RjK=???-:??WH?u?bN?^?????kok? ??VL?Y?r?1???f???l???bE? `???(2Q?D`?m6*'???? ??knV?(???????U_ Nd?L?????"???H??'??????d???E?q??:g?nm??W?i???1????????|???!?/m??v1??????E???8???%???~??A?????h?sM?H8u7????K??h,?^????MO?zV? ??.)??t??????^Z/?'???O??6????{>-?????.?~???$/?sl???????)?s???R??yd???6???06q]=??k??$r???Q??)k1?O?o>????~!?^??:??G?=??0~ E???:?.????|T8? ????????7????U?F?Q?6?{To??sA??L??HYf??%?N?v?3*???/?S???v*+???B#?B??^`?!?/???8~ ????? s????7?v????fE@?V????p??3\ +??hwc]????Y?+m??6(??????8???J???,?^??W +????????U?h?G?]M??,Z?>??y&X???z$Hv?????y???#??|???FW,C??I?{???????t?a????gg?C?[?n?}?????+???|?w"?Q???=N?????)c????u?k????J????W??y???\ +6cA?8+D???e???K????????????z????!?.???0???}?o??? +?? +4[\????R?I??????>????&???=8???SI?8ib?|`H_?}J]??x?<>$)J?????U`?1LDp?_???/p??2??tsE?>????5??????'>(+g%???????(?t??9?P????nI???"[Y?b|iV??%?g??)l?H?D??NI????^?~?|?J??.????B?t;?L? ???V?MT???????Q???????@?6????Y? +??-?????A9=sf???k?s??,????j?D???y?,???/`?Ce??bN??J?X?Y?dZ???A +)??e_?!?????`??p?tZ?3V8?#?0??)???}AL?e?=?NW} ??)?????H +d?f???H?.Ag???`??p?F?k??ks?y?/???%-+( Z*G`?;? ?7N?9????X?}??/????@Y. ?)??Ib??? +????bO2:S????R`???u ?k???6?6???/^??????????2?Yt?$??!5[??`??"`??!???h?S??PoG????)d?A???r,???r???}??????r????n?? ?AsTb?\?4C?B?}:??L??N?4v???{~???jAeZ 0)WM+|? -?5f|N/??INO6????Z?}??J?????a%~??????U?CLrJn?,?$???a???=?l/???3??4Z|t0???b??e?6???_?j???o?????~'U???t?????!?????w?)#w8??T?X??X[?Ngax????m??0??(fO?F??? ?m`??V`?e?K?d??X7?? ?`f%E??????4?????L*??b +????lj??X???)? ?&?????2?>??F????1?~~??S?????N +???'f&#?)?s??h??I~??? ?m?,????????????@??"dR?$?P??? ?n;???v?$K????OQ???y??"k?????I?~?U& =??H?D?&?y??????v?r?Qf?Ob?W?D^mtxX??LlM????????]?????6??|??????[??W?.??x?6hX.??}.? +-??????????$?????????)?f???o"??s1?:`v?)T?4))??9??K??p?b_???P ????p???R?r??xI~ ??^?;???P?NeK??N?"0s?"g???T??S ?*?k???k ??_B?ph&?????o?!??Co?G?* +??%NiE??V??? +????3??????"????'TX?Z?Fa??z??-?Vq4VX?????L???sP??7? ++????u"?p??s????^N?\??q??)??,?b[????A????Q?_?:G????F??Z?(?UJ??????s??8?#A????Q????GY??i???M??@=?9?A ???_SH??~}{?????Q????dO,RDH?tJ +????!?O???:???i???w??????Q?????? ???;?Y?A?#????i?Bk???%??M???M43???*???????+5?r????Q??<~? +??M?e??????L??,?'5?.?@{c?e?p]-"?t?gd????0?F??#??J?C"p?????oB???8c?]?6U ????%???r>y?????1+?f???i?!/????-??"????iJ ?%????P??K|?R?`????Z%??j??y?'K??,??g??????? ??G???=t?c_???o?7R??3??%E???? ??t?AT???????mp?e?^hvy??q?g?V?;?X?M???? +;?j ?)??????T?x7v?8??G$??K??[?HOB?s??]???|???e?????|x?#???l?{?W=??!??????apX??:g?4[??X?~Q??8?x??9l??8?&?????c??~??Q?mU ??.h50??U??_n??`?:L?C?K???i?V<7???s?x}???h?????]??_2???????|n??_???O?g +?[??zE=?d??{J +??? ?|?n????????\\???aWo?`??a?????7B?W?o???I?8??!?????) +]I>W?[?????d?fY?.??%L?? +??Y'?[?%m?????|$??|?7???d?(????b????L? A?jD??x??I????7m?7????/????_?Bry?sn?&??u|?y??W?????{??rK?0'??????X??#?Y??-?N?:???e?M.???`Vg??X?????`?U???????[?x?f?1#?? +?7?6|?g?.x?v???f??X?u?????^? +??+?G3?X?a?g??X??>???N??????y0R\????f?1#?? +?????/??X??+?0??3??? +k?E??4?????G?@??HB???Gz???????s?q????+??W??Fs???:?/??^C ??w!???eoF|??Oo???!,V`????PA)????X?x?f?????1???7V?X? ?n??e6??????3L?i????????G??g????W??nA?????!?Y~?)?????7+>??&???? +??;#?? +??U?????????Q?@??/0?z??>f?_?B??????~??I}??z????0?? +??U?x?????j?L)?????;&?g?k9+???*I?-???? +??A/X????????E?o???p$?????+?V???5^??z?o????????4v?Jg?.? \d???=?=?f>_????????? ?Q????w?????~??Ty?-_?? k?kuh???;?CV?L?R?8xL?}?x+??+5 ?M??T%??a??*?CJ??p???/z?H??^'??O?'[? +WOT/K=? ???x???U??w??rD?l?O? F????o$???y???-??n?;?X??u?p/??? ?u?@??pn?HP?EQ?+???t?;???To???;?3T?&?b??f??;P?m??h?????x^????Av=?L=9?4Y??^????ix?????AD? /?f??P????1?}???? ?j}R?vf?)????>?gfJ~? 3Xgw?J? ?????[??D3w??????v??!?!?'?:??|???pS_g????W?Eq??a???$3m?? +???0??????8?>??"z????????/?iv,?????B??>?gf??as????l?? ??O????vPR?C?;9??)??;??z +0?7?.??3?=vP?s?A??>???????5{??3???????fg?????Wv;&???(??},a ?`4?Ky??????~?M1??a??]????e4?p?| ??????t?AH??8j???E?????n?z??n0?5? A??`*??? +??????????`??.%??[?k9?^0????????^??5?`????~3? 4&{3Y??Y???d1o? +f?u?5p$kb$Y??3s??W???(z???h?g???>?h????c$[?t +??5??|??\k??T?6g?W??? ??.sZJ??=]??t??P?te???OQB?&??a??;?\?? +?Z??t +??IW>c{?????fW?s??~0d??? ?vW??-??r?-????pt?^?8?j?/^???q?W????>??m+&???2??H07???e?k?????m??Zi?TQ?i??f^L???????-+??_??VT?f-]???K?,`??1?z?q???k????U?-?n?^Em???A + ????3??4?D?}VDR +?%z#??O???+XtU;??1$???Kt +??W?5???^RU?????{:?y !?'@?m?M6f^???1?*??Gl?;zC? 7?y\????au??86????????p64f^E??y????g^M???3?j?\? .q,??K??s?^b??i?`??3?j.?Tm??F^?K?]m?=?e???]?J?????X??????????????z??P??Z?E???[2???N????'("??P????x??S1????`??@A r?$????~???}?H???4<E4?fG?.[?h8???M?/?k.???x????????b??T??X??? +X??T?Wa+????y?fki??M???Bvb??0????~7????0??????8?????w9???Wd?4?9/?????????p/???}?&O????N?^?~?j?3??U?kQ?j1 ??|S@?x???*?=fw$????{??H&7??ZsW?1=????N?]?c??Pk??y??b?Ve_?m?@u?~???vc???&??????p%$?c??9????? v`2??=?:?0?0?FC?P?%????L0?\L???|??E??????cO??X???q-4??;B?=??w{Hu5"'?=???d?x|?&m???4v??@}?mw?F????{% <?FE??B???m$2????"??QJ????????z????Q?'@??0???u?p???V0??????s???9???C???=???X????eG/????!zW???9)?????H??[?I1??^?$?y?S[?%VO????zR? +?? ??PO??z???r????z????xh'???d???Y?<0?????td?PL;???t?C?,?Y?J'?!V??45??v?????4??i'?sg?$A??2??U??IS1(y h?O??W<?????x?%fO???]????-?'E0??z??f?$?D??4???c?Gm-yH?f?d]?W???e=??A????)????rP?q?^P;g?d#?6?>b1xvK???L??????????????????q??Az??? q??????????g??]???J?'v????U?7??.?P?????? +?O??B?u+??>?????-^?N??h5??a?"?;?Y??=h??G?N????Xl?T? ?A?;?EJ#y$???? ?z?SG?{?2i ???TJ?C???!?O ??2g+??6?? +?f?4=H[???Ym?6 ??p1??G?wn???\?f??B?i?9?r???5??" X#m=9^^??fg?K??*???????[???H??Q????f&??3^%I??&p?S??B???{U????w&??????+???$????r;?v??\????w???5???o7m2?n?W?xa????M???h????????8:2??eO????C??6J?????.????Y9?:????OD??0??p?H???$??tA?r?. G?(??????cOG?s????:d'] Y?'???"]???M??t r?.?;] 2???Q??"?5$? r ?b??&]????N????t?o? ???L?#g&???&???E??? b??R?A??+?E???~?.)?_=? ,?E??I???[+???:??#;??????lkd9I?????G4L??M,>#?  ?"]??=%]??^?r`-??Gd'???S/[?P???xQ/\???V??\?W?].?0.??W???^K\??@?z?D?%-?Z?W#x?X??`???z 9??!???1>???m?]c????{Qn????^??s\H??9??SRI?"rLix?O?E???^t+_? HN??,???U??s?W??{?#??^D?A?V0???n?????Go? %Y? |U????QD?=8B?v???2??!u?e??|it?E?+?f????=?k???Pl}\]?L6?@t???"_??R?4pQ?}??+?:d?zF?????"?_??T.K????4B6????]?/??????4m??????????????hW????3?? q?\?h??k??O?F??Bm? i?g;9????!??=@'beV?e*?tF,?A?^?F??uRW?avp7?0?L??6????????a?]??r??{j?Uy1L???"My??????4?\? ??l???gO??g?????E??&??????I??)??????c7?gRo????Y?X`???????i{(Kx?Y???;????H?T?} ?D?S????X????f?N at +??l'?:?????-???_?8?i??Sfu???????Y?3????Y*L????t??6???J?EF? +???&??@??? ?w??v?h??u]?DS?C* ?:?h?k?v????-GoOAu??D??B???#fA?????? y????@F ?1XQ?:N??????d???? [???????????')?Z???0?????|??l +??%?K?4?0??? ?g)??aFs??6??????#3?????~????yp : +6?t?????h???O?@?????y@??q0?5 +&??X?X??Gdu +~4????}??\??x5k???4cD?^????^?i??1 +???B?;wj????4x ???:?s?b?aO??????zm??wd???y at yN_@??????H?z??p 3?E??c$??z??bxru$@?r??, ??#a!???M?r??L?;2GB???? ???t?*??|F@ +z??D???/?T(?6??MNI??U?? ??Ky?p9??F????_??R???/E +F????2?E?????????4 +"B???M?_O???{????*???{??! +O!v??Q/????~1?+B?????\?n?Q(?;???????~????p"?m? ?????gt??$????h??>?????????KR??? ?DNf????F4??c??z?b???e?#|YU[M.?!?T?%?????|t??d?y~?GcU?C?|E}????=?m8?G?v?0???'???1??=?g?I[??@??D??w???T??O???d?7?8a????z#???????V#i!? ??-?w" ??)??N`???*?hHG???8?????V?o?vx?w=??=fz?\+z.?????Y?? ???Gv??{p-????m????Y?=v,?W?t?u~#?:??g?WkU??ae?)?' '??-?D???;?????$?|??X??j:+???i{??? ??WP??u]+P)i ?c?v?Hy???'Z??@hx????$???J???.?m1?x?IB>?????y?R????eG?????`?,?q]=?????_??J|?/H? R?!???ir????????t????/?/rL????b?Y??k???"X9???????$??i?> +?G?v`??+Rt?>g?H?9U?n%f??@??i?(v?b' ?_????/? ??o????'???`???? +I?\F?MEW4???'?_G?K?b;y^%?@n??W?+z]????{?1cn?8?6???.??????1?T??j??pjO?? `o?w????o??????5??????$?/?Y????17?fy?^Z5????g4?A>??8x? +c?uR_%? +?d??2???&??T???c????)?k\s?>?%?]??/A?.2??? ????A[?blh??y}???.?^????R??L??9.*c#.%G?d??~???}({z?F?"Y7gC???????????Z?}???e*?????????a??!?l?????F?U9%?)jZG?l?s? )CPmN??,??ZL%~S6?Lb???C?1????H[>1???????z?6??i#??/?^d?M?re?"?y??b?5?Uf +?????}??5~;/?? ???k[tNf?F?!.??/ ?)??B8??L?52*??2.??V?_ +????+??????r??N?j????? +????Xm?r????s?y?n?+?,???KdgK|d???b?aVD?K????i?????-vL?????????<'gW| ?c??????/?? z/??;+?a?}?^@L$??A??4 ?&??Hx??+ ??tN?m?hO?^r?qY?t???????WH?Z?.?}????RS?^????z?IG?^?I???6?FK?Ue?97????q?%?&????j???_a ??J?^)Q??_????^x??? i;t?u?^?AO?`????????????p??"?D???r.?`??^/!;?`?$n?r????dgy?dg +? ,? +??v?(??? 2????^A?%?Q?s]?k?D?%????d?/?%H-A?!??]B??c?????K?G0_?#*???(?/2??n?Y??^U??? ?m%???< F????\??????ci???R.?9p ??%J?4?G?Z/?G)?19+d??Q??{??s at HG@2?1??&????t???k?&+?!g?yd#???F;9r?2>'mG???l?B?H?[?,??\#???? W?\"II??R0N??+?j0??H?>?????9????F?u????>%??????Z4????Go?dl ??|??X?A?5x ???W?@??G???c?Q??=vm??????9???E?q?Z?N?6o???=?r?b???g????_?? 9? +?BRi??q+?E????_??j?_7@j?/7R?y?C?h?(Q???\w_?_??.s?????b?n.??? umR?w??`.> +???????)z??q??D?( ?s?xM??E??`.$???????ob??8??-I?\?[ .????k!?????B?>??9g?gS????k???j/v?b?4????kh??d???[?|O*?8?S=???1??v?????N}?K???c_?"($??}J???JW.????y^?&?f?Y2?r?V??*?f26??-?06?Rr?lAF????8y?????l?-?us6??\i????ah;{??Z?G?8[??81?????B1Q????9[j?]??Q?????u??9w???1?????r?????Q??7e?!?$??;>?}cmi?????j??:,???C?@j ??4K?H{?6%?????????%?8x?V?)??n?C??????????/D??m??E#??? +?????~!??r??? O q??Y+??vU????KRY??9?S'v5f?F?????W?????W??z??Ooi?? +R?????????"????????q(Q3?????(??!% +Hn?F*G??gwNr4???????8s????t?b????!? ????C#??????d?_Y?E4???e9??????6??0|M?????P??dE6X????%???@???nT7!?)???!??dt??4??f/??m#Y??S????0z??kj???3???^???F/??v1z????^|?T7? ??WW??{dE?~??????j,??HXc?^??5?|??j/?(???????^?;zn?L???d?? +j8???&8?>?`?X;??r?&_C:??99.7z??j????sp??elDNzx"_2?3?HTg9#p?9???9??M??q??#r?]K?F????"???r??/?M??/FrrDN4??F?????/??????? +_??39?tK3_????????5zUi???.c1??'?;DKx???\??[j???kj?2??????-t??^? ??.?.?????~fz#O??|????????????D????/?X?f?????r???????????????_>~?????/??~??????????cd??G?? ?2??c !g +:eP;?#P?&??????k>??r????sj?\e:?z???r?) ??????Z?v?{?6???r?;????????+????k???`? +????X?#???E?????!?h[?H?~gFZ,?&???5?n????)??MO???)iM???7?H<(5~???????/wg]??X'??|??k$Pc??`???AT??v???1?qml?:???????(3???#l?Z??F????j$??aq?y????Y1??????s.??t?????K6????n?*???\??`???J?(3??ay?? !&!???GX????S?I??!??!? +???FHR?????fb????r????Aru??1???Q??L?????WBM??v4.T$??K??R??gCj?????4??$????`y?8:9??i?xD?8?!??r???>???a{?9?j???)?F??H???????n??????? =$=!?[? +????7\eF??Z???????1nq(??!?i??^?1d?h??#???$\?%4?xRBr)?K?Ds?%' +?(?AG?hN???Rzv"+?E?k4?URL#&????e.O^c???Sv?G???I],? +???J2z?p$P? +???M#V4xN??j???AY?m??G?Q?????x?????Z(?J3|$D??Y""?> ?9$??????????Q~?(%Oe??!o??????F???j??r??C?CB*???????C????2??.)???2???.???Uh?fh?P??Hw?U???! +? +?9??H????H???????DN8????4???26?? s?????o&?;?`i??4?h?n?????"9?E??????V??."l????`%HkbVE?E?????????V?$ ?tz?A?R?> +??PEbAd???Ec?6$?K3??4??zF?c???4@???I9]e???4(2x5?N?CH??9??x??F?hsS??h?MoPy????{???l??*??sK??????W?l&2H(?`v=???3?b?R ??2??1????????b?&??)?????Ep? pc'T??p=????l??m0?? v???p[????????????F??3H'? +Q???????????y?5??7?1?Q? +k??%??,?z?s9??? X*?T:???"Fl?5?n|????????????! ?C?L??p!SP?"??X$??5?Q???[.????k?,iE??\??:???p?8?s?????-6????!%??FY??-h=?P&???????u??`?.?0????q?????_3l????ko?? +?mb??\H?E???&??&gr???qR???&????0??F??=?V?~??????????d???????['??>|??x?A???e??7"?'r?_d?P?xF???l:,?W ??k?????S{44g:?8(GX?N???j???Huj?A??H?E?s? 57???3??c??p? +4:78???b?/??,?????T?????????0?B:Vf?F2???N????a???5l0???????&?U??a???[,dc????B|???????XQ??d???QT@??R?pU?????r?????????~}?????????????@?}???T????3????m?.?H???_eNvpIC??????7???u_*?F??? 2i??C/?1?7?? W?I????1?? ??Sq&[m&iH!#??s??fl?h? ?A#=?u? rx% ???BWR???"X=?5:;2h$N???bs??/j??????WnVy?W?5^?& ??Q?UG?????H?`F??????[1:??\?F?d?=??S???????C? ?*?H??RD????I$??Q??s(?gAa?v(??^w??2B??6\YW??????R????h/???????B?K)?"]g4y^??4????14F???F??s?K&???n9??\??ly!?C&?TcWXR????B!?%4'/)?"??gSH?X?J??1H??7?!?? /? r#??x????1??/??P???t&k?????f??-J?Y? +?o[????\7??g????E????L??d????_?Aw????0t? +?C6??z?w6?dLN}?ci????]??b??????,?d?b?PEF:???5??M??!???z?Wd??wP???Lz!NDU??;j??h;??Z2?%5????4Y?|."?H? g??L*z!?E? ???"?????XD???????]U??????~h??|?Q?? ?D"?;????l?b]?^~??? ??Q?/??c??F/?????8?#6?F????-T?Q{kR-?????F\0??H.z???=? ??????4-?U5G.rjr]???<(?? +??MF?bB???T?x?.}?z??????,?B.?,??gsQ??L.????`Ls?z?d U???h?-4F???dr??l?????#??^H??A??E)???*'?:????*?F?`?x?Q I?w =?%"?????????F +a];?d???g?9?D?? ??/????7a?4???"?w&c?????+??????Q???19????!?F?pH;???l?????????qo??H???1J?'?4??Y??????pLMIuC?Jsy>? ?c??D??-???x???B?:??F???K??\?????? ?~>?eh?xz?b? bhr?{??????????3?%?c?>??o???|!F?L??j???z{Z2GF>tr??h|??5$s?????YfK#u?D"w????l];Y?????FJ?????7R G??d)??????lu?e?Q? + +!+ +;? +????j?????1?rPJ-?B??p??V&Ccq???,8?T?U2?? ???????!Yn?#???#??j????Y???`W?{EO??5d:?J? +=???y??????Y??????m??5?H?????/?+??a?H>??i^???????!??pc?D?????F!u? +?? ??$?????Y~do?v??Z~???~?;??U??Cz?G_???|?j??????????A?,? ??{t_???!"5?&H? ?a?? +0??E?? ??K???v?r*??D???W??????!G??#?t-?R?d??O?Q???m?@?j2?(\????!??l???U?0?,???4&T???n3?24Z ?2?b?c??/?????????w?d?????E??.EP?Nv?wg_@?nw?[??x?{??&{5)??+????aZ?Q?Y?N9? ??1?V^??-???G????@4|?? ??Uo?????{?????_!*???????j?xz?Q???????F??U?P?Ch+????????7???suv??n??hF??^??y?c']?B?uFt?(?w????4;??!]??3???gx?)????3#??R????????9??#?u??lX???;\?T/??G?9??H\9?3?uK??Ig??o1?g?????????Y?=?vI??W?D?v?zI +?t?]?I??j?b??vuFk?q]""a??? q1?T??? F??C??I???+??"? +8?cS?7??B???7[1*?\Y).8P?S n??????+?}?YN?B???E???}? fz?(KbZ????eGOe-????u??V??e?a"NO?t??????M????w:Bg@???????r?????xeL?;? 1??0?????n??}Al?6w??W???I?y?2]???D? n??t???f??"???z|$?????t +~z??\?Z_i??/?????P??} ????????????? ???Sv?eyj?{?????g:HY??? +??????`}5??????z#f39?V|R???7{'@?f??????Y#+?%# Sxs)???t?J??JIoZ?4?1G?I'?+P???W?8`???|? 0`?_X??@?w?U???p_P??G???e?Y?*???:??zD?v*?,?^Wp??~??????? ?K???3|?????w?Nf?J?????f)?y?8?1?? !?I??5???Y????????"??bZY?C?C? +??????^??K????K??8???????h??f??? +v??oK???????yX*??W??;??"4If?q:??%)?!:???Y?Ftz ???;??Q?S.???/???bqp#u?????3\?????/??/E>?x:???'dY?.1E0&Ow?T=d???/2? +Y?rTWc,6]Ic???h?\???*o?k?r????by"?* +??i???????Q??????6r}?_??q??(?;?????AG?????8??)????8K?;c>????f??f?1 +#|q???Z?G'c?? ???>?}?~i????NOT??????q8?:d!???Xh????A?bb?FK +h?%??IY?k???h|=G??LO??u +?M??N:[???N?6?c'???[??@V??:{ +???4?~? ???8??t|?T2?I?*???o??M???V4?p??1u?>?`v???3UC??Z????4??&t??TE??L?27h?G???8Q @??<1%*??e?Zv??=o^17??7?[??? +9#,?kt?pTjvz?A?{2A??me?o/????CI?]#?vf?yCsPQ?GZG????????d)#???d??eA2c?Q???C*O?o?t???v??Z??T??J.=??%????h???I?e?*2?Lh_??D???????@Cq?7??70?CA? M?%e??,??d7?z?'????u?v??h??8!{????V?2????W??d??i??1Kq??8;??P?hP.??_????Z??????wD?MZP3????s?-?5~?X?6:6???0E? ?s$Z?A?"?Z????,??_?|}b?;????"~?Y?2a8N?M???^??M? +??]/???;T?V???R@? Z=W???@???-??1???=?3??????m?????1????}?oYz???0>KH??????i?vp?ucg?{C?ZmP??h??? ??Ur?J?? +G?? +\????? +d??N?h?????n.:?z?$9?hOv?/???]?2?3?uK+p4Tb????='-?2?}.W????e??c? +X7M"F???~ ???A?? tK??VM???`??Rn?4????l?4@%]m=0??p?y???????????????????dvME????o?;?y????9???>"j?>1??#?+6?????|??;?"N?Ij?"I?yD;?r?Vj????~R??`?F?Y?????D8) ????2o@?!??;?"5o$yE????m?p?Dc??U?T????/?`?u?????l)??GI?%6?`?????-`??Da?'c??H3?bC?h?f??.??^????????N????YriJn?e??S?.?v?5?N???? ???q??M?k@???wp_??X?t*3z???Ue/B??P??.5?OR?G?=???+f???*???J?9?$???5?>?????p???0F????&?1?Fz???f???%V??Fqq???n???[IC?w?????i;'????????^U9??E\do??2???]2??*????7????%???m?z??1~?+;??V ???T??c|?6Bv?^wv`?k-d??!;t??Wv??g';??k??I ??}Wz??[Q?3?+9?>?4???o?A?j?????1?V1 =5o????:?pIB?" D[k?@A?2??M??j?@?%??0?T?^<8?8l??W??????Y??`UM8_?h???2o??3??d}?viz#?N??G6bq??;lcqstO????@?9J +????? +?.????C?b?fr??SR?c?u +??????j?A?&H ?{?"y??rsH&??R+R???\WDD?}.?BS}?4b? ?T?|He? ???u#3??? ?cJ?!!C? Z?F>7Xi????mJ? + L??ER.P?y???d?0?n??????_yG?<:????fR??????*d?4?????<'??3iX?]??\y?,^x?~d?????K???a??+k?????Q)? +?S1?>?9???l?[Q}????X?? +??????"JKg???\?????R3?*????nVEv}D??l?f??9??????5wL9F-???0?W????-??#yq?????? ???mGM?L????~???*5?6?M4 ??x6?e???A?# h??2??@,;MX0???2?[??tw?ZA??s?C/kh?C{o??'?}E????T??r?????+???EW???????$y3X3Z +?F?P??; +????@????t?{hJ>%?~???5tF?}]?q?????sG???H??T????Q?Sd>S?J??zl?g??U|#?Y?L8?d???)???v?}??*m5rh?3z ??^h??[B??L?h-3On?5?p[?L??BJ???]?I???T?fX:b???h??f?????4??? +???n+r?6= +?U?#?j?????????(1? ?Y*m?afv?Z????3???V????}??? !?\??a6~?Qgx??C5???=1??OW?????????A?9??9Pt??H??.A?Ah?*%{}???y???;? ?6?p??r?m8?U`T@?J??BT)`cT??????m?7??*l6Z??g???t?????S?;"*~u?Z??8????????&??HZ??x??9?e??:?V?>R?? +}`??? +d????9?V&?u?0?????x@?|???_m?c{P2?i?~??[(?`Z-V@???Wj??????NM?4???Z4?C??C@5H?????????????A?f?4????????K???0??-?s?M?i?L?&?@?VK?@????sxu??i?Q?A?????S?f)???Z?Ii??H?Y??(?/, ???n??8??$?e?2l???dI4?8????????T?0f?"??r??z?jj??^?m?13F;|d???????'??????L8??,??n??`?# U???M????m ????? +??G?Y1?0??rkGN?i???m?7R~B /?????s??%'?N;?dg?l????????P??? +?;???z?Lz??? +?.?=J(s%????????Yy?a?B?;y???I??? +X;?Z?x?????"?`^??UE???h??b2???k???p?Eb?J?h??#???D???SN?I"??>?N???ph??~%??K?x3.#P8??O>??I +??\? +(hi}??????T??/L?m????_CRu??r??g???c??\???? O?r??7k??6Gx?>???qD6?I}C? ???cI?????^?G0?RW??????'?s? +_=??? ?P|m?????`??xmE"???u?M?z;?k???.wc?Cq +????$??_???D??(VP d????\P?????a?!2??*H#??2 ?'?s?x??k???R?y S y?????m????L???a????????|???g?1"n+??`i?1??4z??F??5y?l?7`??,vF?????An???????o??f???`??$?&???????g???R????9c???[g?7?}N????.??(????*????????Ii~j?#?=??:? qo?8?????d?Q%??g??%X_Y???4dq???????N +;?v?|?????{??????M(y?Te?5o???^Q???0???????HLU_ ??Qdq"1U????xw??^?ux??#hP0? +?N??X{?V??d +???K?:) ???#q????HSU?"?Y?x???F4? ?'%V???5h?Kc????????$o:?c?&A?+rxSB?? ?????u!?\? ??kk??B?&+??:?)??dx,????$?T???2?5D81?W???}?(5l9,5?-??{?+??B?009?h??FP?J?????lWIre? +??WP! P???sM??v?i5?9??u?I????v??ct???~??%??aJvv?(??C!??h??7?U??}??/b??'}#?????FO???h?m.??`{???5??v +??x???Ukny? ~?~Q???w4?(?%^?u?????OX%???~3A?????SM"0;AS +d????N????59????O +?oHp?:2???? I?M?X?o +M4?a?t?R???7???W;?o????z?k?r?????n$??!???f4???!C??2y??_??????!ZJ????$??????}???????"????P<[V?=C +X??3~????xz???? xTVhp6L????t,???yS:?????K]???5???? ??&^9JBW?OI????y? ?G?!???.E??aK?^]??]?g0?&tM?d?&xuN ????J[&?r +3?Q?#R7?????0?M??l?\r????k+"?9??Zm#A??i??o?d?)??k?I?0;4??b???????.???hI?$?/ #?%s?E???.?xC????u|}b???tA?>@???y&O?.u;??e?>? +L????????FVl??????_??????T??g| ????m%???????? ??????-1?????9????=i??? +0?Px1k???? ?2??.9????7J?B?G??% +??#?rHw?\?6a??!?^X_F M?9w????K???>~^?;P???QDp??s/ R,???SH?se?B*????$????i???P? +?T????/ r#{?(B???ly!?c??T??a?&?[?wy?????"?_?AZ?8i*~????A???? +i??3?K????5???????x?( +??`???EY6z??SE?? ?9 -$?cJ??@???l??o?!?OIJ???,?????3?K +? ??_G?o??04????1?#?w????Ac?04??kH?sk???????(eG?kHH?a:"??????TB??4????v?1?? ???h!??S4?R??[??}b?SO???????bz?(8=.???c+??_?x??}8?"??N?S? ?????}?.??&???=R?U,?\??Q?-o?}!N???b????O(B??8 at 3???j??>?"?S?|>"?u???:???e6%y?/zmz?~l +?K?Z??S!+>e????^[? +?j?k? +??? ??%?Ah. J?N?3%???^???????\e??X?"m?,????PE at S?d?????PE?^ +?U????-??^??P{cEq??*B`'AC(3? j?c8 +5o??.???B|l]2h??8 +?7? ?P?G?_?dZ@?? gX??? +Ud?eJ(,d4??X w??: +???u?P?C??\ +?O?/??TPO`'h?Gp??D???? X?-]?? +T???TT?????xx?/==Y?9??? *z!NE? + IPQ???? ????/|qU???'f?B?Gzh???=?~?S8??Y4?x?M]????ud????0?????Ltj?????4d?????? ?1???0E at E +Y?.???AE7???"}?????B?l}?6 ???h??G?w??j???D-"?o?tYPQ *V????h)PQCj NE/Tt#????????e{T? xUL?W?hI?}6j;-?E??&???3?n??0l??l-h?`h?4?6??# z??!????j???[?,Cs? ?j?BsMO??????r???W???*???"?u??%?P????,9????:r,V??M?=8-?ri??K!4???6??i??"B8g?z??????V?{????[%?????>K?a?Py7^2??h??U?????yD??nDE?Y?????/?;??B??U???vkap???? >?|'?Y?????E?Ww??,??XK????K?<@k??i?9??Mx???Cc???Z?_??byv3?)??????????b????~?E@ rm?E??U1| ??b??f?v?ku??`(=????????G???????,Xi"?7_o +?????&y5F?G??P$????.???h??i??"?] ????0F&^%D?[\??2? ?Z?44+?-;?? +?mq?u?%?c)???bS???@&?????}:s????I{?_ +Z0???F_x3J*e4Y?????H?????l???:????????A??????????*?x??T?_?????|.$????Q??o~"????? + ?.??DH?$m???/d]????y +?V?j???j=?????g? ?UZ?F???????_9??D???~"di??i????qlH??????????2??SV??i???V?????w????ekr?# +???q??d?l?v?D?'?!?? ?p? +?;>??*?????FW?e?????????????o?*???R?ZN???]??????????*?N??????!??3??|%??D??O?<)D?d??[??????cdi???y?8d?Ji?}i?0??R??a???+$?????????E??k??W?O??\*???A>/???????`?&??U"z?????;??#2j???R0??x?3?KN??40[??"?w|??&???X????j??????????X xq5?????????R????H????2???M? ?????|? iQ??-J??|?" b?N??|h??u( +????"-2ii/-2d????7m??E????F?@Zo?`???????}?7-??A?0?!???!B=???Sg?x???4?)?E??\#?}d:.???y?,?N?L??d????x?? ???o????????)??!?f}? +??4 ????IY??%Vi??A?????5P={?a6r??k +h?E:U.??'"]?H?H???:???????4=?0?/!Y?????|?m?sX????0???;??G?Q +?`hI=??o?l???[!G???FJ??lex???G???n +?f?1??V?0??&?,????????i???/????????#?Y????????U?)Fu?@????? 5ry?g???8?Ke&?r[????6??Q}=????^ ?+\?f+ +??????????????:??" ?m???&?Doz-?/zqAyLl|??=F??K????<1?5???#b??????;97?? ????F]???J???4 r?u?]rg?(?=?O??????:\Y-??"?R?a3Z^?? ?cw??Hfm?#?XT?{-}??J }??zd???????3?? +??\??N?=??;3?!2???;?T6?w???????w?}?"?>Y????hraXj? ?;????~i??h6yXgRh????????"?`4b????W?J?K?U????3??lg???d14?s????2??*?t?i?G??,??(?S???qt???x???????V{5????2??M?? +"?h??JlfL&oxq????a%??B??L`NUi???#Z??~????6???8??p;.79Qa+G'2??P7O9 at N?/?xZ?V?????z??lD +g r?R???S??+??"dZ?W?4????? \X??? +f? ?!}??F?j{\??????? {?7????s???'v$??(?\?9?~???'P?k?6????)V=?? ?;???b???W???%?(S???????N?j??+qny?W_}?4????@???????in[?3??3?L?R?UH?0??_H7F?K|?rC????Z?A?A???|kXe??V?k??E???%1?????T_bm?n??r???J?7YKR]?}?Q??e? )?OMNj]? +7???BP?CH]??????????5bxm4????rd(??s^ +??GAgO?\??j25??E?/ +t?g(?}?K?????(????\?^??2????F?????k? ?cH??????o??j?q???????x%???S???A?????????F??s?Z???$?N???#?????Q?t?#"d7{??|?? ?t?????B????;?6?s?+#d3:8??Wl^w?????Y?Rg?~n?U\?z?,??"?!.2w???ZC[??:???("_??r??B\?f?]?>?_zv!?Y? s??4?;z?k!?U??F????+?????DoH?^?h?zV?r??QQ6??/???XD??l??Q?A???????d ??2????vU?'??m????&L?@? 3[m??-???%?[Y? ??$?lH?(8?3??>???1??a?l" kbR????[s|hL?Q?????????:????T8???B?1W???3k?4C*???????K?KE???Y?e?R??w?r?H???.?\%242dfjh?p(=4t??5?3?????S 3??????3??am?n[????Fn??h?FZspv? ????????%?.j?Fc?4??Q6?!|?d???'x??????_????xhX??3?(???2;?PF???2??U/ +?C8??????|?9m~??$r????\k???4??(F?????>?X%l5@?n7?????]?&?????)4?4 ?????"??D?( ?pXD?4$)H2K?N?/???*?4?_?;?G????????????|? ????????Hk}#? ??w???x????fi??~i?Q?E?????#??0?"}Z?$??S;?I??oJ?V??9?F\?|???H??n????z???rNL|?; d?V-?? 9R?Z)Tx????R?????\@???h?? ??????G?%{m?d,>?????(t?$???-??_??O??8?X%la???? +?.a{?m0?[??XU?6???hxIe?M?????B?G??NA ?A?Igh?4h?????Bc?xyO?|?y 7??+?Fz?.q"b?!M?D?y?@ +????DzYH??7A?8??C?? +???+N-u??WG?4|?F?V????k???&?????>-??i#A?j5^?M???z????I?????7+y???r?Cb7??!?z???!G??b??0??/{???!????????q??w!~m?q???Rnr??79?)?or?/n?5?'7?=L}p?V??79???r????IC????g?9?r?cb?r?????a?%? Y??3?????????C??s^?????Bv??^??g6??Q????Y???? ??+O.v?v????nn| ??n? +?!??;???w?O???j??#6.??o?u!fq"???=vjk???"??d3\htn???rkX{????P?l??g?> +?s?4?W_?F[?(?l7q;Z?-???d?F?1,6P?_[ ????h??????W????m???????pk??? *??!??[? ???F??H?~????o??5?h????E????B??U??:????/#"C??4?????#?EVZQ???!??~?e??L?l???????}{?4|O????*???Q??An?i?????H?K!%h?T??Z???fE??#?#????????7?1?'???Gp????0k$V!??K.=4??K?1*?q?O??Q???%]v??@c?v??A??fn|???fp}hxP???U{???|??p???????qX??????{?6c?[?Yj?? ??Y??G?\?Tn +???K?????????6^??x(?L??:P?9????_?^?H?\G\? +v-raI?x??e?x=;8,>?$F +??3??#[?w?5??3?E?????????????????mj???v? g??^3??Oj????4?8?_??/??????4 '?A?W?v +?(eI|???sZ?IY????pLo??mi4???UaS???g??????????? ~W ??'??a??%???xC2?O??l?D??^S???Bv +?u?Cc?8?j??m.??????4beP??H???????8?;?s??n???G?]?????? +??a?>?@z???Z9???/S?5????j{?^??_?]??? ??d?7??W\Z^ +%?-?'? Ac??x8????l?[??????{?????D?????c?Q?N???t???O,&??\V?H?@?2??u??_'??#k?D3[????C??^(?Z8??1?;?<&????????W)?\?x\??z]??21?M??[v??w\?O'q? .????Y???z???Z@?$q?I?^*?=ch??4????xj>+?;????;T???-Nc?T_H??au?T???????????,;2??b??%?dwn?????iV????di?CjA????Q?:???4?C?r???#2d?9!?????![????K?gk?@t??(}??%?M?_d{?sk{???7???????E|???B^??vk?|@?SY??u?i??X??A?B?P-c?r?.!??#f?-_4l6????0???V+*??_O$??Hr? ?F?????`?W?K??P?/?????5???C??i????l?-~?X\???r? ?X ???????????;e???????????????R????x?i?^N??)4]??;???/??????l{??v?Y?w?z.{k???8????zf[???????????1O?>??zA??.)??C????E&??V?????w&z[?K?H???h?.??s?Gt_??l?5,rh???kIC??%??W?#;??v?"z>' ??L??j???k}#??'??"U?`? ?LH?o???????s???p? [?*]?Q2ef??_???rr}?T?????=o?b??r~?W! /???v/??'???O???!#??i?kh?? +"S o??bvc ??Q"8i#&??v}???S?PW2%a(? ;??????????V???ry??????x???'?k????.?i????"?V]?????` ?$?????W?????q?C??x??]??.?????-?.N??X???x^u?????????D?????Z?_?[?5Yb?#?(????j??cK?7??y?o?4y9??biZ??z????HC?????od????X?~?[?}?qBa??`????}?4G???H??d??~?2???Fn?CR??b?o???p?x??0u?X`???!?D?N&?k???B???9"4YZ??Z?=??u?c??.??d??ih????`???RdC4 _[?8??a?1??r%??Ei?;[????????~)4?#D??c]Ccl?i??`L?Tp???t?7????dZO???nj? +????C=??????8?{?Vo5?q?{??(o?MWL?r?b??84????rS}????'?[w???#?4????#?jV??Q?fh??Q???FL?????a??]_???YND???? {?H??k?>Bs?????0??N?&??!a?m????#C^R?U?|???????????^o:A?L??-?d^Q??#{Pktd>??h???????5????s????N?:*??L???E) ??3)??_????????c??;?\?Ko_?w??|???s?? #?g{??M2?9? ????"??}.c?????s??c?av?xk???k?&?? +????/??a?? ?af2?s?2?????r3C: +???}3??;?zf?)? ??"??~??"???y?S|?=?)D ?*$?2??/???]???Ej???x???Y?phtM?j??? +???k?? ?O??Y?+"?bb??n??l?S?x?k +v??-???\ +=??H_?????%???u}?k ?U-^g????(5RFZ?????/????}???Ia???h/?T~d9s0??d ?+???S?Z?b?[6 +e?? +P??l ??$?b~???????? ????#8j?>m?? +?+??%_?o?;f(???#&f~?r???[6If??????5?t??wdF?Y?l?????#??+?_?W)7 ?k??(`7?? ???6R?D?)??%?t>????tj?6???a^r?????v???O';??U?s+???[?%d?Ee????,g???V?4:|d???j??{!?{??. +??????g???I??6bb[0?V?H?? +Q??S?[Z???)y|\???`?L???u?y*??????H?????g?p?L8? +5|TX\???r?S?s>?????;?}l?H???bK? +????_?2? ?'?4?5?4f????G??=???"p2?-?>lvL?W1G(5??qs??!??q(?H????0?R????MA-???*??a?yQ?=?F?/[k?i?ig?8?3?????Ymo)????wn!d???7??4@??V?|????$?%?z??? ?I(?,??@_|?v?2A?`,??O 5z??E/??_??????kBC??5}\???q??x?o)??k}K[??A????{D2????????C?Y??.???h???v5???'?(O /??l?z1$???qK?#?yi?]s????c -???4?????L ?D?Es??N?`0????????????]%??(??4A;?As??????@Z??TE$O??Q/_y???:???Al at a????DX?X_$M?3????. ??????M???G#??Y +????K??W?H?g????o?l?v@???$???yw?/??`g;?%Wl??']??"????????A??H???? ??1?r??1?aYw???0 ?r?@?H??=7?Y +????I???=`?.~|???l??C?F??hHh?;LSs?z???? ?JzF??-ej?????K !IC?<'?DA???????????/ g?P????p;?4J?Uf?~]?M? c9a?x?L????'?????&???x???????? +c??B"C,n?5/????x4y?$?j??qK?AJ +-??Pf ??(?0BH???X?&???????=?BRf?;???c$ +?X?J?R4?]??Dq?~>?SA ?z?o^u???A??{+?Z??~??G?`????!?l]???#???5C???e??????u?vit???@????Npd=?????R??}Y?l???w??SI?q?|???M?ArQV8?y?%??zq??H???w???d???v8;u!??1????????/)r??????????S?sR?"RIR?&??m?P???u?????c7?H ?R$a?W*G&??)#l???9&??&:???Fn? /??????-??G?J-D?p??NR?j?;???76br???N????????s??[!? NsP????Vq7_C???F?F????4B???????}K????# +??pP???rj8/??L?d+?G???=F/?(???6????a|9e3??<r??[?<?,??~?t?5nY??o0?r@??rliG?O?.m?|?<<7?v?zpMZ ???D?$0$+?zu?>v?? +Ee?@_ at Z?ai??m{????????\???;???<#?e?&??8??}??Z?c|o4???(???60V?g?2h??xm????????h(X?F7??zs?????? +?op??F?s??%??Y???L????m??1+?????i?v?Wr???????v/?????3[??????+cP??a?v?}?????>? ?n??v^??n?Q2s[?4/?}????{??)??%<}B??? JRM?wI??5?o?*~o?9???N???N?zm??MN????z????A???"??I2??FH?-V)V??T?}C???XH#sn?e????I??%?N?????\A7?p????( +??*???*??????n?CDA;:}am??u"j?????????K\??O?/v?PP'h&???n^??Tt#??v????E??,xD?Q{4nw$??HB:??ZJ???9?d?? q2jgd?5????\????HW???*????d???*??w???UH???i?B_?+T?{uqQEfz?? !?????S?T!U??? u? +???X?$??,?S#?[&?r?/???6?????.$????ydT?,?"]????G?\\????v2*??HF-???NFM&? 5$q2z?$? o?[??S^?3)?O???OqM????pL??2I?La????j?-??m??Q??G?F?.?3z~n??F??H?8??@jC?w*?#nIB2??O-_) +|?o?@?I?o??m2??????L??l????? [LoEf??L?? ?4a[D?0?F=????O#??1???d??0???@?Vz??VxLK?????,1n 3?d??Kc???+hL????V!'L??h????D?:F ?????u$g??c???a~!RJ?? ^ ~? "?B??? ?f?k?|? d??????y?????????c +? ????k?MP?RI??v?z m???M ?L??ig??$??U?????I?Ua?3fZ????N???y/PWYm?![??5?????tWIv? +??O??y8Pv?Mv?}T???+?h?Dq???[?/q'?"?LGML??????????&OEr???.??kd??5??-????P??i???9? ??? +?r????{?cg????T`{?G????4???%?W?5i??G????p,?8??O at s?~#v +?????[?=;????y?22\ + _2|Ui?]?o??#7??[?????Ezci{?????????i?????N?4???>o?? ??HiXF??i=?-wi??????H??? +dJc??4?c?iK?P{?K#?Y:#K??k??>????~}??N????_???@??????????|^?f@??vn?Y??^???!???,???F?Y?$#?I +???U^??#? .?9K?x?0?^k??E? % +???=?K{AHJ?0:?/NERZI?g?:?????h?H?$H? ?Z?4?z:?hSB?o???k?82I???m?d?&s??? G?Nq?d???$?d?n)??bI%m??Zyit????(????V?&M=????r?YTK? >????M8u?2?&??,p?K????c8????u3?????|w?????1????????L?v?B?HX?{?d?(?`0??{?7?9_??? ^?n?1F??d?????Qnb????=_? 2@*rn??K????uk??x5??%?9x?D?=r???`E}Xb? ?&?k-?IBp??D?$L.kX???????????-??\???;????>???=?????oy'??iXz??7 +G@?*?O ?a?? ??T?MC?1d? p1f?d:.??y/?45?g?5?y???? [(?M&1d?????SK?????5?p?,?S)???N}46???C0??;?]r???aI8??RS??!?5?^G?7, +?W?V|e? ???d?M??L?`%2????ID ????#?de???7"??H???? +?D??????d? ???-?T-/??xg????9?G??I?`??=??$@~?`???dS}????? +???????? +E??XV??????JV"F?n?? ~? ? +7u??Xss;????? ??3-w?PpO????]C?bIcJ? m????K??a'?!??S?. e*v+~??????DB2m??s +?[g?r +?a?q?????v?????????$??(q?nJ??{?zfa'??'??? ,-J?%d?? x8?d>??vi @|Jmt? +????D?r +Fq?q???y?-???W??????L???L?\????Xk?isKc????_DL?%?Q??p????I?T??"?BD6?v??????>?K?e??,?2suI??n$????A?R??"???F$??$???????So??p?df?:??<? +2rdKh?? ?????R"?X??[?R?Q???R0??X?F? ?IG/?,????JcF?\^?F?Bw,5???s? ^??+;g?)??I??o?b?@??-9{?R ??6, ???L??o?l??'e?=;_?2O??????A?n????&????I?n??@VK?vo1???24?0??|?H0?Ri???7f????????4?N??\?-??6?-j|???n??Ky?hln??U*T??C??????R4\?????~???55?m????!"??p?? ???js???=???i8????\TO?B?i>???????U?CDKA?S++??Sw?"???z?{???F_??????????{?o2v???? }?>??A?pY?-?8???Za?p?"??x??zctc?????XM??$??h????? ??/????#?J,???=??)34?l?B?????C +????_1?Z?? +???:'?,??s?j~n??A?{?E??sCDn? +'????+?K???Ry???????????????*??}?))`???M?+?kf??Gbqbu???????~#'??^??#u?????^??R??S?C??g???????9???????2cR????o[?b??E?~Z2]????? ?????>? ????w4~=/?u??????H[??????:y.?"?)?et&?G37:????G????3@???????\?v???????U +?r5N????5??[????/}??-?uc?]????13??-????D?x??Y *???U????T??mi?:???????1Mg???/?^~m??_]???k?*?f?K?B7????g???vdjKu?Vn???Wy?t???50?L??o +?S +? +?k??Co?????tD?Y?"J#&"#7?OV???f?^N???6???W?nH?V?b?DN??X^a?F=??T?.?1?????zO??? +?1)?|O2?b??5?b???3?"? $?L?i]??h?j[V?V?J#Vj??4?x0?Z???T??????i?e\?Q???+?>?14??\?-????*X7}??6???\S?????i?#y?}??d?V??M?????4??E? 7?#??ba??p???????? +??B??1????????0XLkF=$?J$cH?^vB??|7???#u4"??+Y?2 +ryl?=m??D?{[w??O???#??u3????????O????u??o?o????{?? ?{??,?]>????Z?F^?????Q?&???]?;6 c?? +9??e:???4?EF?i?)?5??b????1??P??j?+???w??Q?X??&?????T?@I???sf???l???^. +0l?U? +d~ ^??????a???d???? ? +)?q|~;B??(??Y!?????Y?Q!?w?????B?s?S!GV???~W?!-?S!&??? +)X1???w???.???? +)?rw??<??4>*??v?Q??,??k?)?qW?????)#T!??|?9?V?p???L.%?bH?????w?lDE?g??Hp??????@t????mW??U?3*??u???J????aV?G? 9Tx^"W????z1?s? ??if[?n2?j? +d?????ap???c???F^?????fsK +?,???Y5?f???24?????9?8????C{?????b#?V??)???-?4????????i)kfi?=~??o? ?%t??????? ?_WL?????*??y;"j ?-?????????Y?:2zZ|hd2?}?o?v@??-)!???$?$????-??1a!????3?~"j??.G??????12?j??J??? ?s?+????Fm?2??G?m?V??, ??R??????????[?u?????????%????d??Es#???]g?'?>nY?>?A?4?FU|?L?????=??????n???????Y?30??e? +P???,?m??,(???+2??$?[???l?O +K2? v??>???<}}F?W?3?\|a?@??????f??i?{?= +???7??)D?P?nc2?K#??!?U-?????#??|h?P?es?????????B? ?mm??o^}??j at Lzn????c?2??R??????j??R??[?<4?/?w!0S????s??=?S?>:( +?n?@??I?zs?????????a=]GP?Y?????Q???Dl?ZD|??????Ot?>+?.G?DJ????k??9mQ?iJ/???R7?C???=>?]"?????2h? C +ED?[??2???q??K~?!??+#?3??????????F"a??L5?D{?Y?}???=u!C???????j??+`$?}??????a???3d}Js???6fG???3K??P????&),?g??^???Fe?Hn?(bv???9Dp?1?e??k!???n3?fhD/wlh? ????+C?$7k?[???Ar!?T???C??!?a????Z9???? ?LJ]?????d$7?H??MupV.??SY2?0?L?@ ???G?e???~???^?J???+ at Cs??9r?z%??v???uK???? ?6W?4?X-fy?2U?1K<5??????2f????????)E?b?za????L????YVB?????d?F?G\?rwK}??S$5 ?9???Z@|??2?? ?????H???????????? +???v???&??????:??s????ED?????F?? ????????? ?0S?? +?6?LWn??^??YA????GS???1??#???w????\?L ?K?c?u`d?`'?GQ?? +?xd????$1{?n+????g?J?#Jq?U|???T?rnj???B!?????H}????K?????W)2????]?4?Si/G?[?o???????3{NY???l? ??????V????s???;??>?-?;?f???? O??HT???l??rV??Q|!>??y)#????7T???q????d???`o?# ? +?^? +??] +??(??e??bS??`??????#?ONP???V???nI???e??????IA???I?F????K???)???*K??u??H!???L?0??3???K???b?\f?25R)??y?v??C?????????F????Q??loK?>?a??*aQ? +?= ?L????F%?Nad??p????/?S? +?????D=???U\????i ??)[{h^??h!qK???+w???L?)m#??p????????J3?0/?DCf-?-? 5?},?/?:j????M?Q ???7?? +[?7???&??MenP=W??X'"e?????"P?Z???JOx?Sw?????{ +V???="?XL?\?\??F??? +???;???;??yd?r??g?d#+??B?vS9;??OE?{r??)1m????%???6o?1?R??@ DK????1??97?S?? ?j?Ig?>?? +??5 ????X??n#?A??p~SF?z?wm6}????????n??.wb????Q?[#8(^`W??3?x??? ?s1&$]?7E[5kF???!2??W?~???????f-??xp?&????q???Vx:c??G?Z?????tW?????p;?Op ?????vp*??#1??wC?%????S?4???9??|?u????5z4[o3??7?}D?vZ??!?r@??%$??`??v??a??9?B;S?ryL??N?L????9?D??B3F?????m?I??4??????a?M????>?????? ????[g?4v???9??Hq#?X???J??X?2h}?[ ?d^ +9?(s;??yfQ?5.)??2?*??=F?\gh?x?4xd)zir?'??a???ay?9.???1+j?RW?a?h?>??>K??\?z?(?]B?v??fa?u?0L????w????8:???B?#??>??????@?0Pt???1?N?j????????m?C???_???Q???9j ?r ???:????4?'??~? ??\R?Fx???4_?????XrK??PW?3C&s?1???x????rX +??U????N ??@vP?G?? +?:??'??"?????xf????3M,?f? Q????[?>???Z??Fnu? ???H??????MB?n?F????xX???????k?1?K?qm?Se?g&!??k:L??=?&????F?LL??-W????n?U???]?p?Q???C~ Q?????JC???jR?Qo???| ??Qh???Rh1???K?U?e????N?m|?C??? ?<0:*?'?8?Tb??B&?X?F?%???????t??=?? ??"??*??%4{?onW???r?U?p^E?W&Y??|???Q??? +??dx??-f?????2?B? Mc=?Y???*???]?: #?????????F???#????UF??????#?B9?V?*h%?V+?d??Y??'*>Y?y??2v{0y?NE_sqp????<V??GB&?&)??>,????>=>????WXtI???g????????I?tr???+??/???/??+?N????9:-???i??I^#????t?wtr??? 'R???/???+?Nb?9??4??????#Y?!?????N?d?s?????rBe?~????E?_S?7?`^gB?KT}]0?u=?[???????A???)??o/m??L?-??????w?F??????P*VU^g?*??_(?m?b???)O>Lmj??8???*??9 l??E?]???b??K4TOK? ???cQZ???E??yr@??9U????? ?6:zH?OD???X??????s_?~?????f?!?B????f3G?{?T???%?b?V????%???t????\?+?Jmg????C`?? ?7 ?.X?????Ha??2? ?lnP?M????5P????u |????y?=q??wp ????=?Od?uz?B??????]?-#??????h??:??/i???I aQ{?2?CP???8?z????????F??V!?:P?? ???Z???~~??U???/A2`?GA V?.????jM?`??i_l??V ?F??w????????FZ?5S????y??+}0{??mm;??l?/???r????? +????d?L?g?K?nP?d??c?G?he???{???h2??+??2?3Vf???Q\i????v?I??[?t+ ???VR>??s=?d?????r?N-s??a7?z?(jwN?iG ??o,????v8 Tl-?V??v+??????->???dq??F??L???6P&*??k?Vll??????@?~?# +Oc??b???????'L?l-??A?s????{?CgXC?J????[q??> ??mE?(?#????x?5?O;O????[????Y^?=QA?ih;??(s?*????????????F?*??F??>????/???c?W??? E@*V?O?;?g}??n??s??P8?????????J [?>???U??h?i=?8??r?@r???b??Z8??zAQ?????1S{m???4?l??S?3?f?"[6UBO?? ?u?Xd????????H??EA#n?v?v???????C???q?????`?? 0_?z`?-6Y?????(?b?mo?)f?????u??? ???\??> ?N?y?${K?y? I?n% T????5?"?Y?????}?1s" I?????R??]@???u?|?HE??^?`H?bY(?b !???.?@* +l???>??i???@?ev?K??c +??????@W???(??? ,??8;??*@?Y + %??}f?`??W?????????oh?P?U?6R?z?;??%???3?3(6I?????P???O?nI?I?ke???~??,;k?xy;??f?\P?b-?5*[?}=???^ ?;??7?HN~K??`x????????7p???bE]?ZQ?\?????????G????*NHvY I>????VK?6?;Tt?_?A??v???????]?E??????????????ai?-?hs??)q?????!0????d????Xl/ ???%Am?c[Z??????n???2W???o)?O?G??k???'=?[???????x?'?+;?K??t??Q??6???3#????Le/????{*@?v?? 18??v????r-#>p?$??r$F}La?r??%m??-YeJ0;???O? ???=$d?k?\????-??h??t??y???#???Ez? +OY?$28?????>?-?!?cc??U??Cx?+WL3? A?c???,??X??? c?- :qj????w*?????+?? U.(???? +???=*?9!?2;w????5?Zi?1h?R?H>/?N?q?QR?7B?a?7w}?a??????5C?????A +???G]>????kE4`:?????u|??!^Ar? #??R?W?????!?%?6???M??%? F+??[???)????O!???????)$Az7?U?????$x??O?[E?&??oYYjL????2?? OI????????%u>?(???j?\!S^+??????????O?-G1?'h#G????e??????"?}/ ?d?{?S^??????6} +?????n?`,(?Z0O???52"??y?R???T`??l?8, iY??K???d??1???&?t?9#@'?[?-ZI??u??kEd???{???=M?E?vF??/?D?`?g's;?%?K?m ?#zu?????p??OA?O?>N?????{?H{???X???t:?????? `0??J.??? +i??g???=?{?mp?Z???_ ???????4???wQ? +? kp???nK??=?pa?ezXB?L???3???|>?}??????_?d??????? ?l??????????2Lm8T&xve+^? Xn]???U?\? +N?????VD?} ?c??t?c-???4?3h??A?Go? +???{?????>? ?)??????H?d??e??v?(????K??PY??2???? +???^^?y?8?k?,??B?6Lm??}?????f????5???????xw???-????????#?g1???? ???`:???????"?C!}`^x????k@??H? 1??`????? A???? b?????~??%(b?&w/???mlAn|?????(?????C +?]^pI??{Vc?(Y'???o-?7e?$???-??C??v??$?Ij?$c ???w??i +/?A??=?? ??V???+B??0?+b???A-)M???#??q ??3=?????:?8 +???c?1?????????(??S.A??????R?Y +??)0??04?1???????*V O ????]`???????@??????}lWDjk?$Uv??H?? +u6??N??????????Zw%|gM?R??j??j~ +?l???*(?B???M=??_???+9Qf}HfgKU??I?bFs5?V 2Y?????-?????Vx?.?)/B??=? ?*??d??? *?W???^??K?3????Lh2???3c??_???kQ~z2?o??Y????*??~?\?????R??Av?T?R??7?9??b&0?d5~???6?>9???1?[?[???[C?9???F????1????`?w?'Xm? +u?-C!?qi ]?L?_?l????????S#???"X??O?t??C?L??????w?S???9(????+??? %t? +????W4??"&????qihL?????U?U2?n9????t +???W?`???,?19v???vD?2+???[????wK??c??5?"{??H???S??`%B!i?`" ?n?n???DM?1Yx)??u??'???????e??X??? `?(P?{{???@?????F>@ +???|????????6??????LhYy??"?f???X????2??bf38=??p???a%2wc?>??6F??????v?HHtK>? ?????B??????4?'m???Hw?,g?h?],???MpJv??????G?#??.??"{?8???,?Q ?@P.?j&??ckh?????5V?[6 +??rk??N\??0???????Wc???kA?J??vMN???????@>b4x6????J?????) ??Th?5? ????!n?"????/?Av4?$?W#??????q?!??7vyY???' ??HDJ??m'??????? ;}?w??n????6?w???3???F?%cwLVm +_ ??Wp? ??^'=?^?bP?nw-??^??g???? q?0A??a%a???Bbp???6?R????f?#??0??d????_??13iE??????U???U??0)???d?F?`??Y?[??????-?[??\????3D?y ?X????h?n?ga????Y?????8|???.*??S-????eT?K]????????w?]?W ???=W?:d??vw????F??????????q??]co{4???,???|??C6?C=???Ey?C/??????Ow?'??Ef??c???1?>8????????r?C?????U??o?i +F??G3???Z7?n??Os?ao??;?+????v?I??? +?\?????4???8?oYOs(Y???H\:};?qj%??5???o??????j??????#H??p? +?S]J?w?"?v@>???9 +??nr????+?9V?????McqF??.??_t??]? ??F ?\?,6b?o?????+ L????1e?0??Ar???\??H????EC???????? ???*Js????"7?md????>??D??????8??o4????4?zn??+??c????u ????c?(Jh?x??9??Z??o$?ZY?F?????Rt???;???'J? ????????48?bMk???}????1+V:?_? 3?h?u?J????n???F???? +?$??+?? +h???.??OOm#&/?\?_????nY?????J?opk-3 at h??iW[[?]?????FMgf)?H?o???????V?D??djD??J??o4???g?4?O?Yj????8?.?5?;wpO?????#??V???D?k??GcV???!?PG?:r???5`?Yfg???3?~?q{|???+?on?????t?ThK?2P???j4seQ-2????-Km??q?M,?$???AR?N?7?S]??K1"D???e????2?I??~?? +??&??^o\?P?1?#?F?Nc[?p#n?$KuZ?"z??? um3??^??????V?&v?c?ot>4J?+ +???Q?$?]?;M0Y??????`?JB?A?f???[???q6R?9?:62???'?t^????????6K,hT|Wl v??D??????Nt?nAq?e???7??????v?cfE?????z?A?1?"4??!4?;?$f*'????????????AB??????????????L??XH???E???0D?G6????!??a?]?Q???pGV~?{?l ??????\?e+?_1y'? ??ei?GfA'??m???r?N????_?.bf?",??j92?D?????.?Q-?>????<> ???8Z??? ?heK%???)?L;-b????k?$??y!??p???- +????KW?+?1f{????|?????|???Po??xBxipM??sj%{????????&?@?os??!?~?;??3???|Ue?B?Pd?}0??)?xI?T?????d?G?^??5/L$,??????%??????'u?E?e?????d??V?8?|????X?\&x???E*n??]?????NLf?? ?;sT#? +??9+5/??????dZ??Me,?M???=_?kFP??WA??7=p??)??8|?`??sv?? +?A?VRi3u??!???????_KI??8?????3?b?Yx-:???????kc??.?y???G'??r,?s?Uz16?5?jcZP???E?%(????y??1?o???????hJ?.?????C#??u??E?z_?={?8,?.??Dn?HG{???n???]?t???l?????~e???CBQU'???!h?K??.b?~?8,@??????1D????U???*_?x?d??9????]Wu??t??{?'????C.??z\?a??] ??!?j#n`?=?K????t????LJ!B?????"?2bB??oB ?N?^}o?Kk ???9,???*?tR???T???@?5??$)?*?^l{?J??-vh+O???gj???a????????O?J?MXj?3?@??Sk?H-(?V?B?+h?ql?Z??uL-??3?`_?u@??E zd???\?X??M??:?&S;y? r?[^?????O??6~?????d??n????\==}E%????? +D????l??=??????????}{???o-pAD??6X???im;< ??Y8"}???M???D}?&??i???St!????D?F??r?W ?gK9`??"(@??=?g?Z?dKA???"??_\O??Q???j?????dB?|D ??V$~?_w???p?F???'??C?`&?????hs? ??@??? AI????N??G?????7?hE ????????j??????%)??oG4????0??O?}???^????E?TR+c???????#?oZ@????9?Ef?O}?????y??T ???J??w?!?~`??T??2?5 +??:?e?$????f?PV?9??.??Uw?????%Y????l?q???W?~??: +k??W?O ?Z??a??KN????i?????????uDjU?x?????h/???. |????C??<]?w??????:?H??{? +?`6_H??"??%?x?19?z??=-a??????.[???H???f??|D]O>%?:????? oXu?;??]j??yk.?G?}Za9????????F?vl???G9???f??S?B?+??#Bc?q]????89%???)??)i??F??E??R?%RT??,????$? ???C??GH??DJ??M??rI??????r?e??(?+?{?d?Q6?z?????sY??D???Pw.???'?963?kd???k??H$???G???6? +h?3?X"FZ??FY??lP?O?HeUI?,???h????k>vT?iw????g,l??Hi?6??i)W????1*c???????l[&??9????< ?mUw??V?K??I+?6QS??&?V{G????Mx ? +?1?(???$R\~??B? ???e?9??\???? ??v??%????L??,/?w????*?iFv?d?9?^y?]???T?B?K??f?D.??$2?lv?6?^?]??^"}? < ??u?5W?A???k?Z?? +?b?W???????fz???[?I???\?.????,???>q?k?aG?[? :Z?????????p????jm???xf??9?=???Xs?'???? +I?G M??Q?eGZ2Dw??y?o?????????3?????e<[?? ? +~#?w?????????? Z?$??x???um:?3J? ?zq?Z=?=???-??= ?C?????^???%>??RJ,??u??[???????2 ?????zD?o??????iW?&???_??]k???K;2????kd??U???9.??N?P?2?/??<8??7`i?V?,+ ??????.?"Y???P????,wc?4?J??f%?Eq??F?2d^=?{-??o ?u#? (??????LL:?6??J???????^q[??Uge$y?d.K???I???U???????G????&?j?I????U?? +&!'@?2?7??2`?*L^?t???nP?V?u?{?A'r?y????v???C9?r?7Zu??3?&]?>?U"A?'A?egt?Sc? Bo|??|?I?w??$??W??#?-??~?)~~?`??s???????u???oV9%?????????J?a???????Q_?~~M7wy?"{??????yk6????2K?1??V~h??=??i??6?q%???t???k???#????=?aG?q^??Ql?'-a=?T??~??m@Y?=???^?!????#Ad3??4%??????|v???.?v???U]3??IAa?> @?????n)3??G?E?4??.J&P?i ??K?(???NgQ +?R(? +K? ]?5?%?N?M?? d?D??}8h?L?N???????4'?N +9,_?(???)oxt?Q?vQ? +???}??g?DEY9|jv???`?B?*??ZM 06?`t?|87* ah +?430?<???NL??&?xARt?s?c[??q;d8ou[d?m?&Q4??V????5?}?K +R??Tj?????s?4???U at W? +????!,U?????f#D???????'A:????t???/?t??? +v??|??I]jhf??m?????I?????!?`4??<?|???I?5l??/V??5R?`?m???z}?J?9%i'n?8??D???fa???R?g?(?? 8P?=B4????vI?N????QdM +=???]?+C??qg)6??p?k?$E!C.xu2???9?W?????a?^j?k?4?B????Q*???????????t??????&.?yR? +!k ??????c??;~ +?????C??%.8o????&w??)? +?S???Z^???)?x?*????g?? ?$*^_????6?aRM????3Vw????+? +????A??C?5?N???`i?l?k?c?k??fuQ? ????X8?+?8??K??b?NO?k9?Q?.?3?"'?x????T +N?e?.???O?K7????N??k???K?C?P/??????u?B????g?.]\c?P95??kz?` c?+?z?@w?u???w????wQ&??????ZpW?'????? 4?? wq?s?z??4??|qK?/u@???V'n?<?)?;???????A?5%?N? +?f??f=??????????????'?%?q???v?????!??a???[5???w?X??{3??T?+??O??2??9VV?D%)?????E?l;m*r?/K???(????7i??%-??? ???w6 ???+??f?????+????????r?,????5/ +?t??????N??-c??z#?gX??|^??m!N??09???I+hX??b??W????j???_?Q?3???:r????L(??p??????P??GNly??Dvq?????????31??f??6z?]?3D?????X?3???????)?O??2RY?N??????e?/?*0??*???r4F???q>???i?M??? +??Q???:?????p???M +'???=? `/njT?t?????x?^i,V????438???nrr?XH{??qt?> ?????Q???]???!&???m%-?-???O??g?~g?????ah?xkr?9?`???'??J????????????X.v d?'|??6?dY9?=K?q,v#1???-4?V?????:\?f?K???g??&<8Zokzc?j??+??8'?N?? ?l4?A?MI?????C?]T???w??d@??k?????<)=????m?h???F???Epf???_?E?h??F?_C)p?n? ??Z???f?&4%???rB???)?@?d???f4?? Yl???? +%????V"Z???Q?M?? Tc???S??? 3!?PE\??y???Z5C?v&??b?)C???{??>??(U:???q????????EG? g$i??I?.h?? + F_???.???E?? ?z,rj_pt3g???W??????( +???X4??I?q???z??????w?D??k?? +??&??E?||oU[? ???5I?5?dM???9?Y???E??-??N??????s?`,$m?L?dg2?7???L,aH?8??????O?~??/?????o???( j??_???(-?H +????????:?????W? ?|}~{+o???t$??????7???C???????r???????????????x????O?k&IF1KJK=????_?4???? ?*??_?????F????x?]??G???-??w|2????s????Z????f?????????????=??O?._?3????8??t?????#?{?K`??????aj?????Rk??,?3????B??f??z0?%??? +3fb?/??k???D?V??D?D C?1X?m???#u????S?q?????}?'?FX?@?J??:M?iI?.M&?D??????ku?(3???,??{???V?S????D81???b?^?i??=z\~D????mn?v????E ?G>stream +????Adobed???C   + + + +    ?? .??? + s!1AQa"q?2???B#?R??3b?$r??%C4S???cs?5D'???6Tdt???&? +??EF??V?U(???????eu????????fv????????7GWgw????????8HXhx????????)9IYiy????????*:JZjz????????????Nl??f??6l??f??6l??f??6l??f??6l??f???z?h??????m-?m??1?P????;?s??4?????????/????uO?a?T3????S???"l???o?????u???M??P???G?N??????????h???T??6?C7?_??:???&???f? ????]S?D?? ??4?????????/????uO?a?T3????S???"l???o?????u???M??P???G?N??????????h???T??6?C7?_??:???&???f? ????]S?D?? ??4?????????/????uO?a?T3????S???"l???o?????u???M??P???G?N??????????h???T??6?C7?_??:???&???f? ????]S?D?? ??4?????????/????uO?a?T1?/y? ;?????hbylhJ)a_?{d??????'Q?`?w6?Kp?G?4*rC?6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l +???2???????K????{??&??f??04?????u?i???V????:|??b??B*1_????Yu???\L???_???? ?????V??e???q?3???????2??`???Z????6??????{n???b?C???=i???YEc??Kc/?s%?????W??+????Z???[??e????:???.??p?????uk?V]o????7?????????.??-???M??b???gy????^??m????4??6l?k???S????~S??D?-??6E??????4???y?~_???n????? o? ??d7???1|??0:???`??S?g???w????Nl??dW?W?%??? +_??u?????,??h?/????:7????&?'y?f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f?????/????*?????j???M3f??6`hA?w?-?2??I?A?\Yj??{]M??h_K???}???u= ??????oe?'V??f??i ?? ?_??`??*?????+???,/?%]???4??E?????????????h???u?Ts~????? +??????y???{@??????????K??e +??I?!M&?x[J>???K?????mrw?6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l +???2???????9z????Zd?6l??f??6l??f??6l??f??6????{?0????O??@to????M?N?f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??????_?s?~U??/Z?????L?}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?r?XX?dF>?????X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\?X??G???7?-?????????????k?s}b?????\GT??]?????&? ?%??????6?;??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6?????i?~H??????KS??`0????>C??^?wu?X?sq???~??=??'?S??)???I??q8???o?O???OO????T??|??Rz?N????S???????p?~??=??'?S??)???I??q8???3??V??q??I????~??=??'?S??)???I??q8???o?O???OO????T??|??Rz?N????S???????p?~??=??'?S??)???I??q8???????_????/?c?k?9?a`??h?AZd?R?n??-????/????:7????&?'y?f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f?????/???/?_,y?????AA0_?,???? +??JI??t?i?%i&????3??&?u?*???????????????.???????k??*???????????????.???????k??*???????????????.???????k??*???????????????.???????k??*???????????????.???????k??*????????????,??w?????/M?Y-??u??!????) ?:???????:??*?crU?? P??Z??? +??4??????{;y%??5Y?%f'??N??????,?2o??7??_??????#&?????????,?2o??7??_??????#&?????????,?2o??7??_??????#&?????????,?2o??7??_??????#&?????????,?2o??7??_??????#&???;???o??/???a???????o:I/$u?0??/???w?0???????????????\????6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??j? ???4????g?????3?????????? ???f??6l??/???I???f??}???}????????U??????????o?W?\????O??????_ys?_?>???f??}???}????????U??????????o?W?\????O????S????e?>?%????Q?$?W???3-VYva^?e?I????????h??9???& ?????4;?/iwW{%???????rw?Y???' ?_ys?_?>???f??}???}????????U??????????o?W?\????O??????_ys?_?>???f??}???}????????U??????????o?W?\????O??????_ys?_?>???f??}???}?? ???????)?ZW???J?[?om-^[yE??qu?h?????Q??E?????&??K?????mrw?6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l +???2???????y???Z??@d????P-??2??L&Hsf??6l??f????$???f???W????Q}g?`.???a???????L?f??6l??f?????K?0???????????Y???_??@to????M?N?f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??????_?s?~]???o??F9I&??"/?2????S????[H??????+{i?%?^qD??O?EF?m?6???kX??v??Q??mq?R???"????7??????c?E??Fo????KZ?????????k??????m?e????-k?.???3????Z???]???f?\?????o?(??6???kX??v??Q??mq?R???"????7??????c?E??F]?W???tIWF????{?.'?XU??@????,|0?_???A??`^s?ZO)P*?*??p?A?E????X???[???? x?lW?q?j?t????k??????m?e????-k?.???3????Z???]???f?\?????o?(??6???kX??v??Q??mq?R???"????7??????c?E??Fo????KZ?????????k??????m?e????-k?.???0??????yKV?,??????w?"[*ra?"'4!?AE?=E????????????????\????6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??j? ???6??w??^e? WMORda???0g?|?u_*?????u?u}eoq9[???%v???? +??[[?????BO ???U???L:???$????[[?????BO???U???L:???$????[[?????BO???U???L:???$????[[?????BO???U???L:???$????[[?????BO???U???L:???$????[[?????BO???y~M???X??"?{?????????gS????\9??[?{T???sCgq$R??#?F?C[?M???:?????#P?rF???8??U???L:???$????[[?????BO???U???L:???$????[[?????BO???U???L:???$????[[?????BO???U???L:???$????[[?????BO???U???L:???$????[[?????BO??^y?|?'?5mZ??:?????h9????zUi??^?k?]?????&??K?????mrw?6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l +???2???????y???Z??@d????P-??2??L&Hsf??6l??f????$???f???W????Q}g?`.???a???????L?f??6l??f?????K?0???????????Y???_??@to????M?N?f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??????_?s?~^#???2??????*(?K(`?(y??K?????????YY[??*?? ?D????0??Vn??V?k?????No?Y?W?Z5??????9??f?_?h???s?4???????Z??m?????Vn??V?k?????No?Y?W?Z5??????9??f?_?h???s?4???????Z??m?????Vn??V?k?????No?Y?W?Z5??????9??f?_?h???s?4?|?d?_?6??M;Q?,??I?????5W?d_?@K?q?8&??????il?#?5??4Lrp????6 6Z?g>?????`?P4????o??a????+?????n?????t???k_? +???s????????6??i??+7J??F??p????7???+?????n?????t???k_? +???s????????6??i??+7J??F??p????7???+?????n?????t???k_? +???p??^u?Z?~??????^^?<0+????aV+A??D?]??Z?_?p??_?P?`???k????f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??`mO????\????D?f??O?????=S?&X?????k?s}b?????????????7?!?'??\?X?????k?s}b?????????????7?!?'??\?X?????k?s}b?????????????7?!?'??\?X?????k?sz??S? +?o?C??O?5??????????????????_??????? +?o?C??O?5??????????????????_??????? +?o?C??O?5??????????????????_??????? +??'??]??S?????????O?/?(??0p????l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??;??XZ???I?_?S???ZD&??? Zc??w?_??/?Y????B????:~9??^???gO?7? ???,?????z???????/Z_????????K??t?s??i????o??/?Y????B????:~9??^???gO?7? ???,?????z???????/Z_????????K??t?s??i????o??/?Y????B????:~9??^???gO?7? ???,?????z???????/Z_????????K??t?s??i????o??/?Y????B??? ?:~8?????????????$g^??????g +,p??????????0?6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??\]$=~gj?Q???SQ??e?cf*??????j?KP?R??PDcA??X?B?????Q??x????_?c?????O??&?????k?U?M?3%?2?MG??I???B???????Y]????-?6l??f??i ??hXT +W?PD??\???U?|i?2???T???R?1????o????r??yA?J?[?e? +G?)????????F>|k?xS????F?h???Y?@???|i?1K{???????l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f?? 5?R7!???1k;4X=?E??Z???&nYoe +?gN=????+L?????[?F??-??+?2Y??A??1+Tc??F??????7b3Q??|?7r3Q??}??n?}???9?o??G??Kl??f?? l?Q?^?S??????P??7.?oc5N[???C?l? ?),bCQ?lb??.K(??6kX??1+?MB?????6l??f??6l????s~lyC??#7?)&? +>?X???+?EZ??ls??????S??e??Q??+_????O?????G7??*??????_???????????}?Ts??????S??e??Q??+_????O?????G7??*??????_???????????}?Ts??????S??e??Q??+_????O?????G7??*??????_???????????}?Ts??????S??e??Q??+_????O?????G7??*??????_???????????}?Ts??????S??e??Q??+_????O?????G7??*??????_???????????}?Ts??????S??e??Q??+_????O?????G7??*??????_???????????}?Ts??????S??e??Q??+_????O?????G'???????j?-$?i????r??*;???0o??eS4?}?q?brv?*???2VV?82??R at kZ?>X?6l??f??6l??f?z??+'q?d??Wo$[5MZ?????l????~no?????????????77?c?????~?????????1??s??~no?????????????77?c?????~?????????1??s??~no?????????????77?c?????~?????????1??s??~no?????o????????????????????_?la?l??f??6l??f??6l? +?bih?@'??0S??????:G]????????jwIO?Xa?6l??f??6l??` +s?9??#???P[O???????a?6l???HF#???"?X?????oK????Z ?^nK??`s??BI"!??-???????\m??t?7????6??:???????Wo????wC??????????;??????GG?r)????wV???Hu?,??Df??>???m??????}2Y?o??E??I?#'[J?E?:???N??6l??f??6l?????r?K?(-?????d?0??6l?????d??uO_?X????%??N??X????%??N??X????%??N??X????%??N??X?????F???c?HCH???A?? +?9???????D??yX????L??jY?Z?N3?????i???????????i???????????i???????????i????????/?:\?.?????"????H?-kBP +??/????B??_?6ww,i??9??L ??????V +;??a??s????V +;??a??s????V +;??a??s????V +;??a??s????V +;??a??q?y/??H????G,d2:?DX?]??0????.???a????????/???&l??f??6l??f??6l??b?M? |?]?& N???9S|???????K??1??'??nl??f??r??H???taP?E ?a/??_?`?????/?????i???????????i???????????i???????????i??????:v??i??4?Hl?f??[??)b?EWl/???,?,????K;??E???$???o??_?`?????7??_?`?????7??_?`?????7??_?`?????????????X?h%6?$E?????!y??+^?????ess&?O-?N?@??????????????,??No????????,??No????????,??No????????,??No????????,??N>'yF?x???,!?&?m????R???????.??????L??[?9|??jzf?0%?D? +um?vl??f??6l??f??5???????_?Am??&???&??l??f??6l??f??6l??f??6l ?????????? +??????????$??f??6l??f??6l??`+???!?@O??m?4@?/?'?r????????7?c??O?????f??6l??f??6l??f??6l?????u???(???y-???r"?a??X??v??? ?/????6l??f??6l?\??l??|?? +'??]T?? ?w>?x???g~5???[?~e?o??i?%Eu??-h???=?O_?;??_?????\???w?X4???K?d??????i????sz????`???%/?????3??????J_?%???g??K?????K????????q)??7????V +/??R??.o_?;??_?????\???w?X4???K?d??????i????q?z???????iV?_??{y?n??{_O???QR?????Z???GX?`?@?9p?W????????i?????????M???g??K?????K????????q)??7????V +/??R??.o_?;??_?????\???w?X4???K?d??????i????sz????`???%/?????3??????J_?%???g??K?????K????????q)??j?a???h????`?"h!????I?$ ?t?A??a +y???M??E?????Q{???@d?6l??f??6l??f??6lwo.?q????D)? ?????G?g=?~?tO??m]a??y??+;?C?c?f??6l??f?]??M1?l/????????_;???'??f??6l??dC???8?g??t???? +?6??]?????>?,???r"?a?????~r(??|?p~l??f??6l??f??5??????C????6??'?3????????x?????6l??f???2??????????-?3??_y??`??c'q?v?!??6l??f??"???????1?w?G???a?? +?_?f???????E???_??L??f??6l??f??6l?????Y?A}?.????\?O??M???9]??????????????k???6l??f??6B???i??a??????R????Ly=??6l??f??"???????????dxW?????[??q????g????? +' FI??m??Qx??+?sf??6l??f??6l??6\??L???????????? ??shM=X??r???????Q??)b??????????????f??u???????-????7?o??P?`?L??Y???A?q??3?f??u???????-????7?o??P?`?L??Y???A?q??3?f??u???????-????7?o??P?`?L??6?G?m???Q?D????{[????? ??N$|x*??D???9S|???o??? O???->?c +??\Yr?????]????#J@#?? +??`?L??Y???A?q??3?f??u???????-????7?o??P?`?L??Y???A?q??3?f??u???????-????7?o??P?`?L??Y???A?q??3?f??u???????-???? |?ec????No+???Ib.=t???????4~=???7:}?????Y?A-?oLK?EU^??k?/?,??n???????????????f?????????? 7?[???0?o?,??n???????????????f?????????? 7?[???0?o?,??n???????????????f???????????g?^i?????????`??u/???UH??????$?_?.??????L??[?9|??p d??I??`???f??6l??f??k????9V???/V??mg?O\gY????c?0?? ??6l??f??!?e?????????[~f????????N???~C?c?f??6l??dG?W?P??7N???1???A???l???2?a?}?(???`?? 2I?6l??f??6l??f??6?Hn??`?1 +t??2?*o??Y????????}??D>vh??O??X???f??6l??}??L? ??07?g????????c??l??f??6l?????6??m?/??#??????z??c??O?K*?}sm?O?u??Jz??????7?:???=g????y??m?R???qo??,?:$L??i?#/???~aW? ?J??y_??a?}?(???`?? 2I?6l??f??6l??f? ?6?,??W???"?2?*o??Y?C?c?f??6l??f?]??M1?l/????????_;???'??f??6l??dC???8?g??t???? +?6??]?????>?,???r"?a??????!+ $??~X?6l??f??6l??f???se?m???????Ug?????c?3??? B +x???{?L?4?:z<??4??O???????Y?_?/??f????C?c?f??6l??f?]??M1?l/????????_;???'??f??6l??dC???8?g??t???? +?6??]?????>?,???r"?a???8?????B?76l??f??6l??f???se?{?u???????ny {????(h?%??[??z5????Q?q??ZTE +?%??@????uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T3?uO??u??m?T1M;?U? ????CT???Xm???dE???@?8?>?????Z?E??vX[^???c<\+wS?? ??5J?[???o???????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?n|?%?$W?c??mVX?kY???v?E?q?M9?;??k?O22??L??_?/a?"?? ?f??6l??f??6l??f??n? 1? +>}?U?r?/?'?r?????!????%??v]m?m??V??p?;?????(j?S?[???o???????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P??*.??I???_j??[?E{???E????????pn????z=??t?G??i!!dR?J?T2??W????m???e??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P?????m???m??P???3?Kl??a?o?????m??M?????? +?(???m??????}2[?o??E??I?1?????F???f??6l??f??6l? XB?(??%?y???O?D??|?Mp?r.? ,?????S?:???\?n??J??L??G7??_7???&????W/???R????Q??+????)G?I????????????????Ts???w?JQ??a??9??r????(??0?????|??R?????o?\?n??J??L??G7??_7???&????W/???R????Q??+????)G?I????????????????Ts???w?JQ??a??9??r????(??0?????|??R?????o?\?n??J??L??G7??_7???&????W/???R????Q??+????)G?I????????????????Ts???w?JQ??a??9??r????(??0?????|??R?????o?\?n??J??L??G7??_7???&????_?O8??F?4T??6?Q????k?!=d)??????o???Zh??}??Djt???a?l??f??6l??f??6l? +??2??@'??0b?????M6T^?g?|??)h?? ??7???-???? +#8<}#O?????r????(??0?????|??R?????o?\?n??J??L??G7??_7???&????W/???R????Q??+????)G?I????????????????Ts???w?JQ??a??9??r????(??0?????|??R?????o?\?n??J??L??G7??_7???&????W/???R????Q??+????)G?I????????????????Ts???w?JQ??a??9??r????(??0?????|??R?????o?\?n??J??L??G7??_7???&????W/???R????Q??+????)G?I????????????????Ts???w?JQ??a??9??r????(??0?????|??R??????|??6h?z??Vb?"5?]?p "?x?B?g?;O?!h???????(??v?H$??e?a?l??f??6l??f???EA??? +:f??)?!???t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??3?t?????7?gI?|??1??{L??,J?a?q?jE?f??6l??f??6l??f??n?-kB7?,n?D??+?V ????+rx???1???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? ???'???p????+? |^^?"nI?=??*(Uq_H???yE?#?????f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6?$??S? ?? ?R"???f??6l??f??6l??f??6l??f??;q??k2????????6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??a}???? S???bLB?q\??f??6l??f??6l??f??6l??f??????L l"=XWk?l?????o??[?+?O?TT????[??~?????s??????????????V????_??????????.???o??4?????q?W????7???????[????9??m?\?????i??+o?????????No?[??~?????s??????????????V????_??????????.???o??4?????q?W????7???????[????9??m?\?????i??+o?????????No?[??~?????s??????????????V????_??????????.???o??4?????q?W????7???????[????9??m?\?????i??+o?????????No?[??~?????s??????????????V????_??????6????(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>?? +&s?????i?q {??f?w???>n??t?,?+Y?[???}?7?Q? ?S?G?3qO?p????}?7?Q? ?S?G?3qO?p????}?7?Q? ?S?G?3qO?p????}?7?Q? ?S?G?3qO?p????}?7?Q? ?S?G?3qO?p????}?7?Q? ?S?G?3qO?p????}?7?Q? ?S?G?2s9??v?Wa&???n?y?GA?6lt???P+?`?)??t?????$?? ??Uqo????JI?????(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??n)????????f???>???(??D?5??????U" ?v?o?/??s???U?????????=S?EX??>o?/??s???U????_???"?2}jx???\2????3? ????O ?c?d????a???T??V??O?? ????O?c?d????a???T??V??O?? ????O?c?d????a???T??V??O????(n5?>?P?Sm>?a??u?$(?????K???m???N +_?????:^l??|??????? 6M3f??6l?y???i?4KRm* ?{?????????|?(_???????a???T??V??O?? ????O?c?d????a???T??V??O?? ????O?c?d?M???^?????u ?- L ?/M?J?Cq?Z?n? ??s?Eo??i?????j??r]D?????q+?~??????=S?EX??>o?/??s???U?????????=S?EX??>o?/??s???U?????L???????S- O ?O???ae??u?????#???Oag#]RD?5wG?d???_?_0???????'????Nz??????|??_0???????'????Nz??????|??_0???????'????Nz??????| ??????? +?S?U?O6?m=?D?<%?O???[???????????8t?f???KU4??w?v?? 0???????VD?)??^h???_??&Ksf??6??????+??????R?t??M??]?~e?4]>?_8?K%??3??6?,???r"?a??""G\i3 +?/?L???1???6M?f??????@|??l???0?????v_??G???|???f??":??w???m???k?Z?N +_?????:^l??|??????? 6M3f??6l?]???????j?+l????"_???/?_??????[?????o????`Mc?9??/?@?/???a?l?7?'u???f???+?S?7????? +5??w????????6l?_xdY?QPA_??"???o??j???&??f??6k~W????^?.?????YY9?? +????g??!?????l??S7??!?????l??S7??!?????l??S7??!?????l??S-,?????"Q?/'??T?l\????gD?u??????wm?e?!GO???R??????Z?F??U3????Z?F??U3????Z?F??U3????Z?F??U2????? ???z?V???r??D???im#}+?[????I +???0??U???????6????U???????6????U???????6????U???????6????U???????6????U???????6????'?t &M"?-?+O??*(?.X?25???????????8t?f?s??????>?.??D ??2?*o??Y????y??9???-??6l???C<A2 !?Z9cn??(?~`?i+???tx??@???????|??V??????L???|??V??????L???|??V??????L???|??V??????L8?4 +C?{m&?,??C4???)?,X?E +e???,?I3?z??I!W?Aw%??\ +??7?U???????6????U???????6????U???????6????U???????6???Z'??o??j???&??f??6l??f??6l??f??6l??dQ???????/:p?3f???LfRn?v ??????9S|???????K??1??'??nl??f??6l??f??6l??f??6l??l???????~?5G?????V???(??DP??-\O????J)?qH??o???_?(???!??Y?J~a???????f?)???R??R???????J)?qH??o???_?(???!??Y?J~a???????f?)???R??R???????J)?qH??o???_?(???!??Y?J~a???????bs?^~? &??H#?K??=T????D?#??k +R8?Q???r?1?J???;??M??5???z>????{ ??f???????]???r?J~a???????f?)???R??R???????J)?qH??o???_?(???!??Y?J~a???????f?)???R??R???????J)?qH??o???_?(???!??Y?J~a???????f?)???R??R???????J)?qH?? ???}??????F????{YnZ?V Q ??;a????W??v??????9????7?????B??z????5??M#F?)t??]???-?#?} >4~F?_??0??QO??C?T?~?????E??)?R??S? ???????K7?O?/??S?????,???0??QO??C?T?~?????E??)?R??S? ???????K7?O?/??S?????,???0??QO??C?T?~?????E??)?R??S? ???????K7?O?/??S?????,3?u_??5????su??X9CR +??u??O???~`}G?J\Ck??5?v??,?????F??J~a???????f?)???R??R???????J)?qH??o???_?(???!??Y?J~a???????f?)???R??R???????J)?qH??o???_?(???!??Y?J~a???????f?)???R??R???????J)?qH??-??0j?????:g???0?%?N?*?p???EN?????84??c7?E?Nl?? +?*????? +? ?????G?g??^??'????????y? +B??;?!?i\;?? ?(???!??Y??0??QO??C?T?~?????E??)?R??S? ???????K7?O?/??S?????,???0??QO??C?T?~?????E??)?R??S? ???????K7?O?/??S?????,???0??QO??C?T?~?????E??)?R??S? ???????K?y?X?^?E??o?wKi???n??^?S?#?D?k????ieuu????)?=??$>??I?}??????Z??c??O?K|????Xgq_H???iAQN"???M?,??C?L?H?O?Nu??gi??z?%9?f??6l??`Mc?9??/?@?[?????w?????eq?[?????????g&Y?f??6l??dGG?????????p?O??????;O?s?K????????C?????f?[?????_?9?\??f??6l??d3????i_?????????4u??b??M?Msf??6l??f?F??)??????P????N +;????Qy??A?6l/?I=j?pA?n?b?????7????v??s?>???;4_???~?vl??f??6l? ????????c??3?P}K?o?Q1??6l??f??6l?~g??L?????Q??_???K?o?1??'?%?V??D_,3??8?p?(?|?y??&?????&W$?'????????=y????f??6l??&???????? r-??A|??l?O?2??-????????_?3?,??f??6l??#???{?????????E??????????? ????k???M???mA?P?a???MC?l/???l??f??6l???_?D4?????ct??:???l??&?&??f??6l??d#J?????????v??G?'??lf????????6?J?1?$@???v??B?p????7????v??s?>???;4???~?vl??f??6l? ????????c??3?P}K?o?Q1??6l??f??6l?~g??L?????Q??_???K?o?1??'?%?V??D_,4???L k? ?+?0?????a?????y??I??D|?????6??????WU???D???o??G=~????'?_??]????I>b????????-??I???G??f?i?RO???"???7? O??|??q?e??@Z???/????.??????1?D?vo???$????#???~????'?_??]????I>b????????-??I???G??c'????G??^a??X?]D? +?>????,??M??*]6&?N?????d?? jwm??u???m?K?5???]??mR kcys???]rs?U??-?G???@Z???/????.??????1?D?vo???$????#???~????'?_??]????I>b????????-??I???G??f?i?RO???"???7? O??|??q?e??@Z???/????.??????1?D?vo???$????#???K?d?"??-????&Xn???_K?Lf0D??????)?a~????W??v??????9????7?????B?????????h:??????I?\}_???W??^?????o? O??|??q?e??@Z???/????.??????1?D?vo???$????#???~????'?_??]????I>b????????-??I???G??f?i?RO???"???7? O??|??q?e??@Z???/????.??????1?D?vo?? ?$????#???i?I4?b????????-??I???G??f?i?RO???"???7? O??|??q?e??@Z???/????.??".? +??ke?^i????"??????LD??>?k?XQ???????/:p?3f??n?E??"?8*??D???9S|???q?????$??W???????[Fh?G??UMWs??F?gAO$?????????????$????#???~????'?_??]????I>b????????-??I???G??f?i?RO???"???7? O??|??q?e??@Z???/????.??????1?D?vo???$????#???~????'?_??]????I>b??????3?t:%??n-c?? +#Vk!)?Q???;oT/>??>????]"*?k?^??\Z?x?%dP?O$??G? ??????'?_??]????I>b????????-??I???G??f?i?RO???"???7? O??|??q?e??@Z???/????.??????1?D?vo???$????#???~????'?_??]????I>b????????-??I???G??bma?X^i??R??#7?????^???p??????Z?????????z??c??O?K|????Xi02??$????|????^Y??:???\??????????????Jsf??6l??f????r/??_??????????m??????????????L?f??6l??f?????4??F/????????W??v??????9????7?????B?????5????s&??f??6l??f?g???? ????????h????????????6l??f???+?S?7????? +5??w????????6l? +?bi~.??`?8?b?0???????Vr???g????q?Q??/????V;6l??f??6l????????? +???(>???????{?6l??f??6D?3?????gK??????k?%?????????+?"/?? ?????_Pr???@????k????P??+?=?S?g???w????Nl??f??6l?X??E?????9????]??m???\w???b???`t????l??f??6l????????h??t?\"???pj?????\???g5?????P?????Y????&?????d?6l??f??6l? ?/??W?b??q????MO???_?q?\??f??6l????}???v??;aF????N??3?^t??f??^BZZ?C????????2?*o??Y????????}??D>vh??O??X???f??6l??}??L? ??07?g????????c??l??f??6l?????6??m?/??#??????z??c??O?K?%??A??O??\i\?y?i????k??U??_m ??c>???O?~/???;??????h????;??????h????;??????h????;??????h????;??????h????;??????h????;??????h????;??????h????;??????h????;??????h????;??????h???$?7?>???d???]???'??????M[??xq? ?N +_?????:^l??|??????? 6%??g?????? yhM???;K?/???zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U2g?#?,??LY???W[?? S_Ws?V???????l"?k"?#pt&??V?d??Z????0?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S???(^k+n??ja??Im?\?}'?|<+????w????????6l?_y???????e?"!^?_?O??M???9?????$? +ib????o????z??|^????E???Q?U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U3zw??>???U0??????????Z6 ??[??/?6??o?g\.t???q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????S7?q???????Su??N:?^o?^?NNV?Y?W??@s??L?~m??????}2[?o??E??I?#'[H?E??*~y??M?,??C?L?H?O?Nu??gi??z?%9?f??6l??`Mc?9??/?@?[?????w?????eq?[? ????????g&Y?f??6l??dGG?????????p?O??????;O?s?K????????C?????f?[?????_?9?\??f??6l??d3????i_?????????4u??b??M?Msf??6l??f?F??)??????P????N +;????Qy??A?6lw9I?= |?`?f-' ?????G?g+???{??????????>C?c?f??6l??f?]??M1?l/????????_;???'??f??6l??dC???8?g??t???? +?6??]?????>?,???r"?a????z`KX?Y[|????&?????&W$z'??:??????=y????f??6l??&???????? r-??A|??l?O?2??-????????_?3?,??f??6l??#???{?????????E???????????????k???M???mA?P?a???MC?l/???l??f??6l???_?D4?????ct??:???l??&?&??f??6l??d#J?????????v??G?'??lf????????6?h?Rn?v ? ???2?*o??Y????????}??D>vh??O??X???f??6l??}??L? ??07?g????????c??l??f??6l?????6??m?/??#??????z??c??O?Ko?\??????????7?.???o?A?O?????s??? ??'??.?6????:?%??b?O????:??????)t?w?V?d?}??F=2? +??????y???ou?5W????Z-??????\?RQ?~?????s??? ??'??????????G???????\???H#???}r???~v???d???s?W?;???|?\????????>o?\??????????7?.???o?A?O?????s??? ??'??????????G???????\???H#???G?Sb???????\??o?V???" + +q????Sl???????????????k???M???mA?P?b~pm2?4[??????lJ?? ??k?V?NZ~? ??s?W?;???|?\????????>o?\??????????7?.???o?A?O?????s??? ??'??????????G???????\???H#???}r???~v???d???s?W?;???|?\????????>o?\??????????7?.????o?A?O?/(?8ycMk?-??>?%??3-N? + +5k]?7???"?axo5?}e?b ???????+?o?\??????????7?.???o?A?O?????s??? ??'??!??k?jX.uK?I??j??"?gZF}/???????w????????6l??yw?7??T?:a????7?????ZM%?$5y$?K6W\?YV?]?PP?^c??5?;S????|?\????????>o?\??????????7?.???o?A?O?????s??? ??'??????????G???????\???H#???}r???~v???d???s?W?;???|?\????????>o?\??????????7?.???o?A?O?>Om2O4\H?????,B????)k?V??N*?????C?OQ]^Y???!?[Q?aI??(?nt????]?????????7?.???o?A?O?????s??? ??'??????????G???????\???H#???}r???~v???d???s?W?;???|?\????????>o?\??????????7?.???o?A?O?????s??? ??'???N??NMcQ?S??z??????l?"U0 B?Jw????K?o?1??'?%?V??D_,3???i?ZZQ?n"???M?,??C?L?H?O?Nu??gi??z?%9?f??6l??`Mc?9??/?@?[?????w?????eq?[?????????g&Y?f??6l??dGG?????????p?O??????;O?s?K????????C?????f?[?????_?9?\??f??6l??d3????i?????????4u??b??M?Msf??6l??f?F??)??????P????N +;????Qy??A?6l/??C5P?? ??-??@/?'?r???????Y?o?g??C?f????????6l??f??!w??4?????s~f??|???&???????{?6l??f??6D?3?????gK??????k?%?????????+?"/?L@???[???}?\????&?????&Wu?-_???jz~?w??4[??v?+?-#!>?rG??1?????s???E??P???G?Nz?????????h???R???C7?s??9?_?"???f?y???=K?DX? ???4?????????9?????/?a?T3??rP?!???y???=K?DX? ???4?????????9?????/?a?T3????"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3??T?????2/?? +???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??3????O???????????_?????2/??7???W?????L??h??+?U??>???"??0W?5-c??|?^??[K??? 6j?:L??7?_?V????A?6lt?4?n??`?)? +t?Z?m&?*??g??05?)hV? +????{ ?????U~R3??#?x???]???I???????W~??R}??&E?4f???????q?I????w???'??d_?Fo?]???I???????W~??R}??&E?4f???????q?I????w???'??d_?Fo?]???I???????W~??R}??&E?4f???????q?I????w???'??d_?Fo?]???I???????W~??R}??&E?4f???????q?I????w???'??d_?Fo?]???I???????W~??R}??&E?4f???????q?I????w???'??d_?Fo?]???I???????W~??R}??&E?4f???????q?I????w???'??d_?Fo?]???I???????W~??R}??&E?4a??0??6h7? W????'?$???8??IP???????q4Z\J?@? ?10?r????l>X???kv)2???y?????_???%???W?f? h???????Z????Fo?????_???%???W?f? h???????Z????Fo?????_???%???W?f? h???????Z????Fo?????_???%???W?f? h???????Z????Fo?????_???%???W?f? h???????Z????Fo?????_???%???W?f? h???????Z????Fo?????_???%???W?f? i????>?K?????? ????-????a????zA50??3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+? 3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#???V???_?? +??6??????????u ???XT+??Z\?Y?RO???KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?3?????????-????#7?KG?|???????+?1H|?????%x?????U9"#N??WyP?"??\0??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??au??$,?????[^ @???MV(???B?=?5?k??? {???2??:f[????~D?}z.T?????[^??YG?1?? +?S??e???A??/b&???Ms??P???I?[^F????s ??Z?<{fK???)?W+??r?%??Mr??5;???9??`V??2??EA?????@?}?5?oc +B??&?m{???7?#?Z?x?????FS????%??Ms5?jhYG???y$?zf??PA#?R??M)???E???MV[^??H4??*??x?????,}C?@O??L?%??+ ??C?1?????#?2?Y??lq?????t?? ?A???K[i/ +??:X??????J?~???????Y?g??>G?caKg??????N?>??^??p?Dn??;????????,x?2>G?b??h?MS???? + +endstream +endobj +54 0 obj<>stream +????Adobed???C   + + + +    ?? .??? + s!1AQa"q?2???B#?R??3b?$r??%C4S???cs?5D'???6Tdt???&? +??EF??V?U(???????eu????????fv????????7GWgw????????8HXhx????????)9IYiy????????*:JZjz???????????:??6l??f??6l??f??6l??f??6l??f??6l??f??6n??v???l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??v???l??f??7l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??7l??f??6n??v??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6 ?L?&?K??m?X +?6??????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~??i????f? +???,?vo?????Y>????_?e????U???'???6??,?}??Cj??yd??~????O?7?mV??,?vo???????bW7???q D?h??*q8a?iV8????Tu=?O?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~? ???O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??~????O?7?mW?Yd??+???8??h?z?:?nl??w?8?????g sf??6l??f??6l??f??6l??f??6l??f??6l??f??6y???????????;?3?96??6l??f??6l??f??6l??f??6l??f??6l??f??6l????F??3??H?l?5???q????????6l??f??6l??f??6l??f??6l??f??6l??f??6l ???m??#??v-?g?"rm?6l??f??6l??f??6l??f??6l??f??6l??f??6l??d R?????f?????k??????????1??6l??f??6l??f??6l??f??6l??f??6l??f??6l?A??????27?G +4??[|??D??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f????????#??d???????e?8?????? ?7???????or?m?d?iQ?O?A??i??`???_???? +'?L??k?T3?????S????o?4??0j}??P????? +O??????????????C7?O??5?????f?I?S????? ??i??`???_???? +'?L??k?T3?????S????o?4??0j}??P????? +O??????????????C7?O??5?????f?I?S????? ??i??`???_???? +'?L??k?T3?????S????o?4??0j}??P????? +O??????????????C7?O??5?????f?I?S????? ??i??`???_???? +'?L??k?T3?????S????o?4??0j}??P????? +O??????????????C7?O??5?????f?I?S????? ??i??`???_???? +'?L??k?T3?????S????o?4??0j}??P????? +O??????????????C7?O??5?????f?I?S????? ??i??`???_???? +'?L??k?T3?????S????o?4??0j}??P?;$???V???{5???VR?????Sp?\V5???????-??do??h????????7?n???5;?v?=????????SC?0f????t?;? ? z??tn??3?????_.??????L??X??????"???f??l??f??6Gcw?umZ=*?O?????#???y?x?,]f?u??0G?????i?????s~????????p????7?????i?????s~????????p?????]y?????.?uey +???q?io%?#A$IC?Yj??L?jw~i??dZ?sgh????Yn?{?H?E?BI:??????????p????7?????i?????s~????????p????7?????i?????p?'??MGE???yg?_?????K ??w?K??S?g??[??/U n???S??r??4+?:??Cwm?"PY93?|@$|^9_??3??????>?)???3??ZO?????????3??????>?)???3??ZO???????@??????? ???e8?'j?Z????R?Qn???0????)???3??ZO?????????3??????>?)???3??ZO??????l??dq????O-O??????_?z?????/T?UK??h??c f?)???3??ZO?????????3??????>?)??5??a?=????Z]?,??a?????d??+?-??rE??.????????????#??d???????e?8????a?????????q?6l??f??l?????????}?'??? ,??i/?????M?f???????????????L??????3??7?6O3f????O?A??????b?????W?????b??O&t??fn?9?????:'????8?{??\?????i??????????K?\??d3D??????? ?????? ????p???[o????(????m????6?+??? +???l??_???????L? +??6l??dg?'?P????g?QqgB??6%u?????~??o???@|??00??p?Z??.??0?????~A????????? ???f?W??????????y?9????/??!?M?6l????GS??5??D?a??[?&??J???d?6l? ?????Q?j_??o?r??m??=???&?f?????????n??Q?ao???K?1????`d? ?? z??tn??3?????_.??????L??X??????"???f?>??K?8o?? fR??C3SB?P?T?O???????._????o??X?????U?E1 ?b????????"??(y?J$?$?G?6??????????"??0???ZH?u????F_??3????&o??[][?E?@???Z?????(r)?i?w:????P6?J??g?X?P??B?-0?/??????????? +????h?x?^0??9???/?dO?}??????_???>?\?G?o??=??v?.??L??? ??PL8?yp?/6??S?M?I?i?: ??^??k*?H?1????P? +w?'???^5?4??6P??Y?T???y?? ?~N0 ?[wKsC? +?? ?{??o?#n??????kX????????+,/`????+?f?o)[?(?#??V?$??/?g????h??j?????[??.???X???^?y+*? +?:????/?dO?}???|??K5?6???f?q(?v?????4?????vv?su?????,?4??o?/??????????? +?x0>??*A?? +?Q?c\???\????C?=S~??o???????D???????K??????YE-?C)???7B????@??B????Kya +?L???p Zy??Z~???:? ?k{;e?7??; +????,*???VH-?b2.?\????/?dO?}??????_??????s??(???????????R?????u???pB?M?QElRO5yfH?9.?G"?u1MB?(A?;?!????U}1??????1!?5?x? +?? +v???O??????>8L??????NT +?v??????O?dO?}????????????s??(???????????y'G?????kl?1$s???????????^????%7?????/????{??x??????[????b??????????D???????#~Z?04?:|S???;,?????3??#w?/??;?????&P k?#???a???R?"?????^hr?&??k-?U??.Y?P??? +???_?_?????IM?4a&?m?i?^??F(?.?3??b?^ ? ZW???(????????~????k?>?\?@??{T??????v?????v?][i?Ko:,????U??U??:????,?-P?Z?KMJ??\??;?-?~6`c????-???? 5??/5??ui?.??3C?FR??? +??????????????????????????????????????????????????????> +?? ???I ???4?????vjR?g??_?W?b?_?I?0:}????=K?:7_????Gf?????o???&qo,?????i?Q3aw?_??o??M?'?#y9??????????????????>P??`[/?n??7?h?+"?_???????8s?y??R-C?3?????+?>Y5????R????v??t ?jN????? +???o?8?@>?????d?(?}???g\????i?????H?????x???k??V?'???F?=?????@bz?Mr??/?8?aA??o???????^ +????????T???? 0/???????'W9n ???i?????????ON?ik?? ??/????? +???f????????LX_????D,?Q????????????h?? +??H?/??o5???(?O?,???????????????p?zL0?&5'??@?s?.`?[?Dk????XC ??&5$??$??RF?pB(! +?=$?????#?#???D?G????????\)????{?/????`t? ?? z??tn??3?????_.??????L??X??????"???f????????????I?1"?96?rcp??n?b?_?ql???4????'U????????R??9?1w??p?? ?5&????:M? ?Y#,??????3Z??}9?}??&7"??;??????-????-?AA&?!5??C??????$??o?2-???????@?k?G?????y?Y??t? 11?$????Ck??s?"d??qk+U??????UFI0?:8>?I[xI?"??` ??s???IV????T???%m?'????P??+RJz,??z????/??????)??D??I?1??4??????/0'???M&?K??QTO?????C?Yf??o?0??q?i??Y????KWt`7B<3?~????????]R???????T7P??`???w?????????x??c0?,t????K????? ??"Z??W?????[????S?,????Y??? +(O???~??????????[?Ei?!???>??????y@?r?O??>X?[O[+u3 +????<7R?l?uY?b?????/??????[??????F?o%jQ?''*?7??}???C?%???? +O????/?~???_???????86M|??{?_?3?yc?&??l?O???$?????M??D&M0/?-????o?????;W????? 0-??????4\?]'???m??Oy_??[?c[?M&`]?????4??#??L???*????_??7????'i????????????/???l???4????K/????M 0?w??z?????c}??\?7???u????c_?0.???????????K????Y????[??????????{?????f???g????/????7?37??l0?o?x???? ?n????????LX:_??i??????????F??z??F ???????V??? (0,}~???8*?!:g??>j???_?r5/?LO1??.??&??^o?ym??#?p?@???????NH|??(???07??i?a???/i?l???b???.|??0Q~???q'????3?9????V'???"??17??Ps???b??????????XI??????????~??????]???\??[??m????????????M?0???D??-?+!???2[?????? ???? +y???V?????x3??K????o?0???{???Q?2 ?????b??&yw?:???d??L.`[?.??1??? +??????b&???0o?~XL??}???6??????'?@?O?_????m?&? +??????h^??Ca???????L????_?S??>???????De??~???P??????Q??1???(>??????o????b??)??O??!????F??3??H?l?5???q?????-????z???-??&l;if???????????!O???;d?????V???d?~???&????N*???u?0O?;???????5`k???^??|??? +?@A??O?~????'?????kMF?d???1&Z?,??v?!?I?????????V-?(M??*?G????o&?}UR?Y??c?>4?M?# +?J\??????j??:????crO?!4@@?t?8 ??C??u?"??h?????a;?!???^?"?R?kI??|?????A??.?Vqm????.?=?xG???4?D?f??0?}???E?n??'K??%???C?&?;?z??~X??X? [H at u?C? +?[ /5;???G?+ +????ug?????"?????mkTy4??W??R? +???????n??????5??9???B??p???l?]?????E?nF??zn.|???hi??k*??~?#_$i??X??????????u??'????u9??????2?{?6 ?.???u?"??_?r????????FP?4?????.??q? ?5`G???n?7?,??~?????]?????E?nE??L??v?b?4??W??z"? n?????84?go?X???F?????u?"????n5a??GkK? ?lc?5^?I8+??_??u?"[??V?????q?*????OQ????L?a???c?j??????%?nAa??v?pG???????D?EtiD?l?D?YCIdx?*???#??????????n\??????27?G +4??[|??D?????????s?&?&o?????????????????@H?^TQREt??MrG5??apt????????i??????O??E:?|X???]6?r?O?C!^LR??????????????~?;????[?????? ???QFk???V?hx?]?????E?nE??3?b?????$[??????5i.?4?[?| N]a?#?J\??????j??S?j????~???+?7??????,7_?/?p$??R?d??o? A +??[??????u??'???,?9{?VWikEP??GR ?.???u?"??"?Pn_??yj?G? +?{4?.??U??[I8i ?????z??7?)s?V???O??Zjr??????JMCS?]????a?????4mJ?m????4??p?\??u??T???q????V!????P???M +?~???????)??P?8?SaU;????_????m?&?yWP0Y]??i??O???o GM?=>?3etJ????F?:Y?T????+????>/?????'a??o ??cjq???J1?J??$L????8?C?%???? +O????/?~???_???????86M|??{?_?3?yc?&??l?O???$?????M??D&M0/?-????o?????:?????? e????f??dWI?7??s???W??V?????I??O??o??/?H???'??4??????pE???q???"q???,??/?C??????_?????M?i??????H???&??'??????7????c???Z????5?C???????????.????3???VD?????????A?k????????}2Y?o?[??x?^ +?????i??K?? ?????07?H`?????1?????D??????????L?I0??tl????D`?/_????????8a?`?{??Q~?????c????e?P?#R?????????n\??????27?G +4??[|??D?????????s?&?&o??????????)?W????????=?????????m???b:??r.??!???/?`mK??_???L`?$?W?Zw??C?p?Y?y???.??O.J?-?[o??????/????????"?a?[?:??[?$0VC/??d?????E ??/???????????????f?????????????????????????????w????????_????b??)??O??!????F??3??H?l?5???q?????-????z???-??&lX?[? ??Qg????g??$?I?Q "??K ??Oc?X??????h???}H$?mT?ZJ?A????J?D????`-}Div?????V?@>? ??? ?E,.^KU?N\?4 +I??E???????KUPN? +|????j^R?l#??d???$f?h??%:_?p????41o(??+i";ed?????Z?Q:t??UQY??Ep|0w?5O?dO???y?Y??l????C,d?p????? ?k?_??/??Z?????K??????COf?PC??????{`??j?????4L ??????k?b=X?F??}???}+?Y??0??m??=?umE?M?_^#?+?e?t?T.??QEr?8y????co?4???????d?0#??????<????co?4??\] +p???&?^I?d55?????????\'??>???w^??+,g?yP???h?????L#????????un??I%?Ha??FK???? ????p???[o????(????m????6?+??? +???l?i?????>/??????????/?QD??J.%???? ??&???a??Mh????#?I??F??0????v?)??'????]?xb?C?h +|0\r??5"h@#?o?q ?5O at r?*z???z????j??????i?1??];??4O?C?1c]?@???/??TraulB????$X??????h???}H?~V??|????? ????,??#G??7s?#S?f?Pz??rT??7????'????????U^^?m????????,??#G????;~c3L?6??????? ??_6i&???(??a??/?j?????4Lg?J??U???AJs?/????'?????? +J??UK2?H??/????'???YO???8???????(x?l??S?Y?F???(???\?W?$ +?4? +?g?MWW?!??Kq??W????5O?dO?????Rs??O??k ??}?O?5 O?dO????g?V??[+q?@I? +??????T??DO????????mT????6?>?t?????a???V?????????????M.yFy???Gn?/? ??2???o?Z???6??O??4???b?m?O?$?}?D?f ?ta?????i?w&?????1%$G?V?stt????S????????????????s?"{??V??n??T?R???g???K?1?????_??Y????u???$p6l??w?8?????g???L=W????6H ???c?l????L?`_?Z???a}??v?????g +?w?????7?????B??u??4??,?yg??W?c????.??????_???G???????m??????0???p?#??????^? ?;N??;/????M 1?g??Z?????c}??\?7???u????c_?0.???????????_????X??Y??f??)??1??z??s??f??O&J?-?K????X_???o?fo?6?a???s??7?YZ?>?????M?02???????M+?b?L?I0??tl????D`?/???_??o?80?9?_??r???Q??L?*?????5???8??by??at??7.???m??#??v-?g?"rC???Eu??????M? +7?Q{O?g??P?????q??????d??????o?????????k??=o?9???V +?????????u?????? +??5?u???|???<?m?'?%X????g_?pV???OM?^_?6p???u?0??H`??_??o?c??? ?a??5???%x ??`?9?????un??_?? ?v?E??f??F ?7?>???m???y?:z??????????????+???C?ye?????g ???????o?????2??0??9?W?????[???o%??6????????????????Sr?????????????#/U??u???E????VF3????O?8?K??????_?'??????V@?/????g?? +?&?]??=??/???????U??E??D?? ??YO1?k:i?c +???????d? ++-0_??:??t??q?4c>????z????? +z??k?????:??t??q?4b s?$???E???QXz????)?????~u?|???2??h?n???3?????b?r?F@? ??0/???2?E????FL?????ZBY??O????7?^d??????z?#???N??<2;????/??u??)??f?%??O?????.????8d??.??????[J\???Q??Q??~??????$???K?k?q ?????-??w?)?????0???I??x??|???w?> +??\~?????=??~`??l???^???.??Z???[EdD?& +?}?\)???????\?y?z??u9/x{$-#r EC??????_???c??]7?M????????F???F???o????????Q]g?`n??d?HOS?????aZ?r?F????t/??4CN?;V??u/?S? ++?/?????????????c`???0?K?V5 + ?z???*???W6?[?ZhIT?$???y??Q?????M?@?\v?a????s F?M2??O?$????I?????????????_?h??e???;fs??2???V??l?V9b?C??n???V???o1??-???????S?c??~?h=7?&????O??e??;??'?R?'????[@m?=y(y)_??/?_????g?#???X??|???8??,?=y)BA?}{b??O?????j????????/??0?HI?}ND??<1{?k??l?1??s??J????7U?p?????,??:O?????1?o?U?'?????R????K???X???|??KK?1????KJ???z?S???U?????/?????????# +??ay?ZY?3????m??}{b??O???t +6??;??)??^?y?"YPJq??kN>"&????????X??m??J JQQ????????B???aO????y?g??????K???Y +=cpX/ +Z????5?????I?0:}????=K?:7_????Gf?????o???&p???m?????? ?.?8$???Y??b? h??F?????]?????f???????????R??+S???u??k?????V?????N?_?K7??O ?????????o?Z?A????;]?,???}???~???kO??k???W??????E? ;O??!????F??3??H?l?5???q?????GCL??????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7??I=Mr???????27?G +4??[|??D??/?x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7????NnM?sro??x???????'7&?9?7??????????#??d???????e?8??wC?????mm?Jr?Y?GV`zb?-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w????????-?????a???????W{?I??j??'???]??&??7???_?w??????kyiw??x?a$?,.?%GQ?Ia7???[o????(????m????I$H????F????$?? ???Z?????$??5f??k??????????O???????L??Vo??????c? I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y???Z?????$??5f??k??????????O???????L??Vo??????c?I0??Y????M?bO????5a?????????#??d???????e?8/?:N?y{?)n?m?e???hc??????XL???_??E??#E?4?? ????????|????I??m????9??????4??NX????M"??????No??????g?H??9??>_??E??#E?4?? ????? ????3????Y??4_?Nc??/?E???h????????e?H???9????zi6g?????r??>_??E??#E?4?? ?????????3????Y??4_?No??????g?H??9??>_??Y??4_?NW?s???i???h????~]=4?#?F???9??/?????????s?|??V???F??i?????Z,??/??7?g???h???h??????/?????????r???]??M??#C?4?? +?w??6_?????????Z,??/??7?g???h???h??????/?????????s?|??V???F??i?????Z,??/??(?o????e?H???9??? ?r#HaMZ?$Q?UQ?lP ??????27?G +4??[|??D?????????s?&?$?'?|??&???Y?5??f6?I?I$?????.?????????s?_??E??#E?4?? ???????????}&??????s?_??E??#E?4?? ????????|????I??m????9??????4??N_?g??????????3????Y??4_?No??????g?H??9??>_??E??#E?4?? ????????|????I??m????9??????4??Na??/?E???h?????????g?H??9??>_??E??#E?4?? ?????????3????Y??4_?Nc??/ +??f?????+?9??????4??Na??/?M???h?????????g?H??9??>_??E??#E?4?? ?????????3????Y??4_?No??????g?H??9???t(|????i?g#$?J?E7-F.?a~C?dR?????f?????k??????????6???????i/?A[??6l??f??O?>c!>B???~?????]9n??????K??^??Z8*??/?T???e??FM?5???K?w?VX??d??^o?T???e??FM?5???K?w?VX??d??^h:??y?]????????A +?0??`??-??$y????|???36?f/ +?zz??y@??je?F???????,?2o??7??_??????#&?????????,?2o??7??_??????#&???????_?????E?kwi?}d#?C?k NA?????%??t-']???,5k?Y??{0???}E? +???F??????,?2o??7??_??????#&?????????,?2o??7??_??????#&??????@?????izjZ?&?b?2^?_J?4?X?Cy|?a??X??w,?U?`Q???g???i???s?4????????Z??m?????V~??V?k?????No?Y?O?Zu??????8B?J??Z?#?????+8???n?? y?Y$c|?dN?__/y??3^i???j bm?????????(??p??V~??V?k?????No?Y?O?Zu??????9??g???i???s?4????????Z??m???????s???zv?z?5??????????? ?FK2??j_????jrZ]?[C?R?N?eiV.?0H?????????6??i??+?I??N??p????7???'??:???n??????????_? +???p???n??:?t?'V???vL?k ??,WqH???U??g?????????9X?????V@?/????g?? +?&?]??=??/???o#??c??????_????8?RQ???f#?Wj??_??o???/?6????[^???????$??2$i &??????P?W????M?1h?????,??#D?i????}C?_?c?7?????,? U,??@?K?$?lT?y?JYP?/????5?????dVe?O?r'?n?%?c?!1???Zw B9Z?#??????? ??o?I?%?h??X?????,:?$??T?????G???????Isol???????A?1??:??]F??,nnUy??? ?%Ei]??+.O???????????Ql&!Ee4?4???C????a?I2??,Jv?|-?ec???.%???W?+?9????$K?T?7rI#??Vf?l???? ky?1??*H??l?y???{z($??v??*9|?$k"i?S???q???4?m?&?M"?*???????W??(a??????????:??4}6mF?G?[A?????Q?.????4?/??-r}????????p?R???????q?k?_S???G??????@??,*??I?W??[?Xa??$???7?)?X?@?@???O>??? ??5p???? l??q?pg???????!?#?J??\#?P??J`??)????!:H??V?}^??-?????O?Z??????7 +$R?????\???????6??p +???????"????? +?6????????? +??? +e&????0?|???Z?pO????a??o??"N??k\?????*t?W????^?????L/???m??#??v-?g?"rC???Eu??????M??;?QkO?gE?P?"~L??Mg??N???wk?!`?ZR?o'?,K7?&4?????0???SL?E?.+(?5h??k1???y?P? #???`??S1??*???[?MG????R:Qo?S??O???????m?5a????WN3I/?aU ?^??-?]????n{?t????p??U'???1k???u++???s/e?&??2k??<`??????#S?,a?L???M????8;??x???????K??o/E?=)?`??)????"W?Y f*_?0??>?????????????#??d???????e?8m??????_????O-?w?????Rd????????#???J??Q????\0?zG??????L??? +?9????e??y?Q??????|=????T????:??A ???xn????N>?????E?XX??|?4????O????[?OO????Mo?9W????VIb????????????1?0????b??x??????9??8+!?g????????M???{????_?5&J0??t??R??F ?m?t??v??? ?p?R??H??l?;?&/????&d??O?Jm??o?9I0(????????????????"?a?l>???go?0VA|??5??l^???3??????u?? ??????F???F???o????????Q]g?`n??d?M??^?????8??*??\?{?`??Y'???O?[?b:g?s?????O[??E??bo???????G??5/???$?1????_?i?????g??????o??zG??????L?????O???G?r??? ?????:??C?"?????#??????????\%????{?/????`t? ?? z??tn??3?????_.??????L??????1??I? +????M??|Ep??[X??S_?O?$??????/??N??P???MA?=:?? ;? ????W?"??v????BEo??~(?$+B +6???????/??N???f?5U??S??|?:?RN?H?OI0?C??U??i??2??O/@???c2OH?4j~?????K-W?j?&?????>X??m?? +_"?@a???/R??SO?c|???????a??1?Q q?~,CT????B???W?1 ???L?]g?[??D??#_?j)?[?????Zx?#?k????#?u??????'?Xl?Z?E#Q PPzQ?}R?S[ _???b@?)?}WY??????j?:?????d?R?(V??o ?-[??G?D?????E???&%?Z$??w?L?]g?[??D???#?w??????e??o??N??{????w?,o???\h});;????W#?"c??????_????h??q?S}WY?????#?j?V?????anHe?{????? ????W#?"c?????Q? |9??4*k???\?]g?[??D??!?:???lY?I ?M??x???;T??K??-???E'????y?z???~???t?$?XA??A?????-??zQ?O????L?)???io?6?~~??1+R*?8Tuj???U????????? +g???%?$ ???5&???:?????"??j????zZ?2 ????F??^?E????????Ra???[o????(????m????6?+??? +???l?i?????>/??????O?????$6QR5T m?+?9??? ???GQ???q->?R60? +?E????S?l?%?? j ????? +?@;???o?(??PS???i?o?/VN?+~?:?????}GT?????I?>`???i?5??>??QW?z?G\ m` +?X??Q??????y?-[??G?D???-5E6???}e + I at hw??#?????????V???N?`?|+??FX?P?z??pw??o???6???P ?[?o??^???pO?u??oO?????J?)???q(??C??^}hmJ???????u?????? +?O5u??t?? ??????b???????u?????? +???????)??+?????????Cd2??&K??P?#?R?#?a??\Y*?g?;?a??O`_?????l???????????_)??{???0???????$?ap???yw???EpV??????_?8p????`m3?9??? ???s.?? ????%???????\7?g?sn???{?Q +??H?x?g???s??K??~?f???[?$???f?????????T~???g??????qp??C?%???? +O????/?~???_???????86M|??{?_?3??G?z)???1?????????d??????g??v???R?O??P???;???l~?7C?|???4?7:}?????6i??j,lnku1??????-??h"&?m?OU??W??n???w]?_????????M???????;f?C?c}I???o??? +qf?\?Y?r????\?'???????r+?L^v??2??_?????[????Q?i,.?n!?B?qP???}R??[$???i??]??Y!R(????g?pD?w???MvO?q6??M>???"????:UsjV? a97r0~??\^+K?M??$?#?x?????i??Z?=????Bx?ao???K?1?????_??Y????u???$p6l??w?8?????g +????y???K?PV?g???O??u??????????? }???3??8+ ???????/??8a?[?:??[?&0VC/??d7????E ??0???????????????f??:?_??/??`;????3??d??o^???????u?U3,i?PMz?>?s?U3+??f? ?A??????W?OYoM +Eonz????????????s?U1??wN?x??s#???Y?g????)??]Z?u ?j???*?X2?JA???D??-7??/????R? ????????C??-W???/????n???7???I????M??~???Z???&_??:$?}j??)_??Z}????????J????h?V??|?Yn?/@?4?+?s?9???.??k?b?OQ&?2?,N??W?!U#c?c?D??-7??/???????]??9 ?kO????????I??? +????"(O?e????/?j?????4 hv???W????s.???? +??^??T?????M:)c? ???3?;4?NLY???*].?I?q$?I-=OJg?7???7?L_??w?I2?\h?`????M.e??????????I???SD?@B\??$???s???~???Z???&_??$ +[??? ?i??6?)V??*???hA?pU?????v???[F?CI??8???`04z>stream +H????n?0 ??{ +;hf?q?a6bE?a;d(??U??T?,i23ky??H}??v?uEE/?O???K??,8!@???2%}?sO??K???2]? ?S_?n??o???yM??E(B?Z at AB?MW???????zHsJ?lJ?Z^?V7 +I??$?@6^??[???D?7 _o???/Z?Jz?? +???g??Y???f? kY??G5Ro??$??~!2?????X?wF? +5L?????L????4$5l?N#??,M7???????V?????a?y???L?j??????? + +endstream +endobj +56 0 obj<> +endobj +57 0 obj<>stream +H????n?0 ??{ +;?f?q?b6bE??;d??U??T?,?2Sky??H{??v?uE?.?O???K??"8!@???2%???'%?.???E?pW??nv?v_????yM/?y(B?Z at AB?MW???????zHsJ?lJ?\|%h?n???I????h???!3vN?7s_????O{Z?J??? +???g?)?~?gy??4?Y?????nP??to??O-?m?c?!&m????X?????^9T??!+???(????0?"rN#g?_p???{?/&?$????@??????r("???v?????;????m??Gn?????????]?1^X?BN>??z????zBd8& 13??????j?Z/5??B ?)iHjX??FZ?Y??? \?=????W???K4??~????`?V?????`?? + +endstream +endobj +58 0 obj<> +endobj +59 0 obj<> +endobj +60 0 obj<> +endobj +61 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageB]/Properties<>/ExtGState<>>> +endobj +62 0 obj<>stream +H?lW??eG +???????o???2????W?!X@??Q??????GJ?n??????UjJ????_????????????y?????x|?????????G<????????S???z??3?r<>??????p????A???????????????/??=|?????? +%????M8???????7_????o??????r?~ ????l'?'?a?{?1?y????:????????????????t???W????WZ??~?e?SJk????)?????d?J?3???oo?\?w???t??fI????glt?d +7?S???!R????S??Xd???a??%k?C?h?mV?_? j???&z???#?>e??4?B????^R??????4v??hK??`cPG?k?p?>l?Y????w??W Y??Z?#???y????w?NAW??????W2???l???x??@e+????)???0 +?*R?@?0 +?e???E?L01V??pp????????]cewd?Y Q???n?r?X?;?12?{?O??'5]???????9??\???G6(???^?6?#+???i(w?E????1[J?.;???(? ?$]Y???pG??BzMk???]RB ?e?bt,??/?W???S:?s ????7)Sv?G4C#?u????M???'_4?????J?%?K?{6??H? {Ez?i?;???$`???E8]?????v,Yv??U? +??iA??u???????guEJ?o e??????Ed?TB?y~}%???)K?RW???N?>?????Q:??W=??+??????dI?????0MC?!?&v??i?\D??? +D3K???}???h??M?c?x"?? 9cD????D???P? ???yf??>7?4`tRx}???h??M??Bj?h?%?2?K???x?q?????U?4??C? sE?????i??V???o?4?e??H??Zwg???zh????35R??eG?????A%a??n:2???f??nz +e|?????2?I?;{??-???v?M?c s???2???&??W????gk??IhmF8M???????C^vv;v?????3??T%%-?????!?S???=:?NC??i2? n?????????u? +?j????o$:?!???????e?|??HOu???Z????????o?3???Jf +???RE?M7??n?2??Avs?????? ???????t?70?3????M?5hS??Us???????9 +,?(??KCW1fUZ??7???{~+?0w + ?Us\?8z??A??63??Fo?g(??????(???.C?ph?l,x???)?-????h4???!??(^??342-I?}n????? 8?i??????fr???'?????^n?L}#&/?a!????????A?ody??????????!?+??y????4t????????T???A?o$?uD?s?yk?y?t{??Z?j???/O???OZ?#/??&6TIq??6d???:????x 4?3?`jB??[?#1?????b????=?A??D?=$?5??#Zg??XA+???\e?t?WG.?jry?WCZ>??dy?WC?y??????R/?z???7b??????Y?i??W?u>??!?????9?????kIb}3????^?qW???????q8?nV?????????2 +.)?????8cl? ??>x??oH0@] +I?S7?Q?????r????u?2????7???R???u??? ??$$?:??????t?R&?i4]?E???-??t ?~?@??3J?R?p?n??u=4R??????0?j?????cx??Zz???h ??r????????m???????AK?(??u??B??????^f$?nK????cr?6??? ? ??+5'???????~??"??l?WT??i???h?b?%?.;?.sh-Y???Hc?.??G6???+??o???u???M[4]??4K??h>5^_?xh??2 5?^?5i??p???H??????hbf?a?z >? +e?C\?????&?$??????h??yDrl???H??H$??{?????h???k?I??T ????wq +??? ??)???\X? ?''?? ??fq>5??&/8=??S??S??)6?_??b_?av_h?? C?KTIy???qY?EM??6,?L?ZC????Fc??b??6h???*2???N?" V?j7???/?h?l?{!QR???h?????>3???Q?.l????????x#????????W^????R?FL?,,o=?M?l???????ymR;?? ?i????-V?????j????Ra???f??o)`???@H?l~?,r?!^??ws? X???O?????rt?A??Vd?r???L?V??p??????o?/yiL??????Pc/6Z}???D?x??KA?P???A??6k??rO??a??9??:??????????????M??D?5??*??]d??x??Lr?^d???Jh<???={eWP"??I^?sd?/?=4?(Y ??q ??????y?4??K?????f?ro???#? V?t???ZN???P&???????\?o?D?????&??D"???.3X???3c+2u? +?/????????????V?'???w*qj|X??L??1???E?y9???0yA????9$?n????M??"?`P~$????:FU?BZe?X?????U?.A???PH?)???????b?? +??V?0J??1?]?e0>?od??g?/????`????5?b??????%/??:w???@?{?%5~o?\Q?-?^?+1??z?8/?Nq??{5?Q???,q?".z???s??? +?)?????8???,??#?iPAm+>T(?d???O3v??????^3????????V^?????YH??_?!I??C5?????5??3].??U?1?WS#:?N??T)??????UVX??fe'??vY??i?U?T????a1xd??\n ?????+|??????????Lx?dL?!CI??h??.(>S3/m?????uY`??S??:???"7?:?a??|??o +??z?????X???PE?\.?sKH?? +?Y??c,??>"Y???s?#{?????????s??%?T??#???d??????R?TCN??;?????E??GY??8TZX%?????Z?l?;;??????????>??z?9??,?6?s?:?5?s?????|??af?X+5??????K?.o??*?c[%/ B?Ek??????Xj?a?X?E?5Vu??B3c]?\??J????????K?? ???m??@?*??v=-???U????M??N??J?*??????j????j?-io???D?V???????LU??.r??cL?x??}?4^?.?2??E?*??wb?m??$??M?-??^?????i-f_??JG?m??R]?4qj????6-????n?V???[?iBqt"??l????3?|R????N?Z/??"}??i/F8??'FDl???F???R?/??????c????????l??????/=??]?6????e_???~6?H??E?l +??M:U???vS???;?r?eR??#C{&??%??n?#??&e???U??SG?hC??C;?d?v.???m?y)=?+;?????zs?*XK?h O ? +???A? +??D?wM?F63Y(iR?'?3QS?E?K?GV ?|Y??T?E?2HM??n?2???????+?8??>!?v?r??}??O>J???ha???x?Ox?|4?K?ES?z????rL?\5? +?V -?????4? ?????yw?,???RR^y??'\bg>??/'?fd&??^?_(m\??s???l?i?X?0]?r????? +KS;wq??}???19??h"0%?`&????`???oh?@? ?J??[????^#?iY??? ??????~Y`-??& ??????W +????^??m?3_dGP??C]?3k?u?p?6!???F???R?2??k^9({????U?u??Gv??m??]+??p?w???We???XA?0???&?|61??Ga7??????w??????(?????????????_????)??G?????a??m/???lX??4??3??( ?? ?????????Xj?m???f?????\z???yif?? ??ju?Fk?W??!?O???W??a?????D6Gd?H?Q????N?5?V???1?????sj??=h??p??? _\?7M~kJ 5ck0?-?yoBP6?s +jBi??????????~i??~P?yi???W???=f????_??/?????~??[??'?????o???4?????5K??? rU?X?~?"*???R_?-???S???????f???LMV???????X?h?1????K/?n?,????+E5'E???#?y?'~_m +W?E?????(3,??r?2??mZG?'?A?m?B?q92@?3i?/????? +???8;???????0??W????Dm?B??? +C?C?_ +?V??9E6??|?i????K?????9????.??=b??1r:???q?5?hem??;2c9_??DH???n?????zd??D??lW;?k!??*z???-h2w2Y?~?$q?3?? ?S??I??XE?[?.??p? +??E??Z"A?z^L?+!<#q??T?{?=e?s?-?(?$????? ??_?f|???J[???????#0??@x?d0?_??i????*??? +??,?7H???`}??!??$?z??A?? +#,_??+G?s?(Wo??~???q?yV??A&z?????Z???1??s? +?Gk |?n???9Z??}??`>[?4?n?;??h`?wkTh??5??[#??5x?^??[???*????j +?l +??????v???w?FB?4`??????|?F????]/;T??7??(d0F?~?`??m;?N???dsdL?i?^??Y?{C0?Kn?(??f"?z??H???????2[IN???GDE??u??????5??)Q?K??W??f?Q???_???t?Mv#????'r??&a??????-??2?>k8??Dz?M,??u????j??3X?IC?na?S?D?#b??Q??;???a?z?"???`N?{?O????????_Vea?}??Y???4/?b?1?l?!2b?????????^??.?<[;5_???,?=?y#???-U?L?%???AAV4^???2?>k? +??h?M?T?#CC?????,???4?G????bDcG?P????|D?y#5?]???&Z?S??i??ymx?.?b????o=>#4 ?6*???PH3f?SH?fH???wE??Q?s?sx ?D?n?W)????dc|?B6?d#I?%y??nF?xC??Y???*;?????y + 36? ??e?P??`d??#b??D???t?g?h+?B?q????)/A?B?G???F?pk?@?6?5>A?{???g??*?????=:??-???O?%6???`??1 -*???????n??Kvs?:???A0?G?r?U?????:?9?}???A?b?*?6?6 +#?N????&1)?4?6(???5?*???VKw~?(?? We???????{?4H$?i????34X ??rj??JTmCx_??{??x?}?W???&,k??Kf????'WX_T??E?Q?0q????l??k???hX*#(?w?8?}j?Sa +??|rx*P?p)??/)??0?T???"}???WZd??'P?>?Eq??q??(?^??obt?????|?h??7t<_?? ?~S +?q???H??I??C??k??D????r?????D?bba?x???P?j????a?d?/1*????;?O?lk??#l?-N??????>Z???????"?????GG??(?B??@8?r*f???wV??? +?G?@??'?????7???|?,K?????-6 +V???Mn??k{G|??7?8E?SC???u?.7X????? +??"?lm?a!d???u?m?Sc????????o>???O1hOnB?c??n!(??15???-?=?? ~?JT???KU%4,,D?]? ???~!????5?gi I5????D?8????3}?J?q!???qB??9?PN?M??c????h????7????fS?o2'nF.??*?????????WR1??]3o????W?p-K??x`EFh:? ?????b1O?'?K??8????????-F?T?T?qXvx??F????Q??2?64[:??*?????w???6W???V??? 6 F\??i??Sigv? a4?07?Od?M?h =VQrI????V???8"?????nJ??W?G?????Jhhv?l_???<5??82??D`???iE?`^^U_?0????$?",<???r?v??"2?k(????#S#?`???o?? +?? ????Gy?D_?t????-y??w(????? +Z??K?:2?3G?=b! +Y?Zxx?Sc}d???G?h??? O%???K????g??Z?lU)????iB???????-n??%?G?z??3?G?v???}?K3???;???1?* [%??%?b@]??rkX?t???C! ??????L?????EUGE3?????W??m? +???xW^ "??o ?z??????vs?L?@?$??d*?Z?Q??S?T??|{?????|?^?L?,?L?-?I?????)?!???W?? 23?????j??d??5??R?9?mg????c?)????p?zdX>???|2??9Z*?aG??]#-??@8?D?Ll?j?qw????'Tx?[Yh?-?X??[#?+#?9???????hh????u???'|?9???m???0?Zfg?1??%???LFe????????#~C@u???M?c??7R5?`?U?ir[?tex?H???Z?2?i)??h?_?????S?/H!??? +?Cc? -?':??l?t??CR??T??Q??#| ?{]??????;?J?iY?F?? Y?6??oc ???X?5M????hW? +?]j"m?A??????y5?,????&??X??e?l???a????Ln0F???~????[C?x?L???-g?+?o?}~?????X??x)??????'rD?? +O?[v????x??????A6?Qc???:2{????X?v??Z?? F????c?@?K?B???eh??j?7?KL??w_s?0??e?";?????^?z???6?#t??ri ?y?}L?6?Sn?w???Ga? ?/@? ??`? ?R???????c????v?F4 E????????-c;????y??7D$?? ?LO???iLk??a?l???&? ??h??3J?n9;???}?????ck?O$??ff?b?+??S??RW?G)?F??r?*?????????????fh,???*W?$????s??|?SY????+?_?? +FTl?1s?7??????)3????d??MP??dv?R\???K??j?s?^%??$??>???|?}????'?g%2|?)????Y/?R???_d6?4?Eb3K%j0<_E>odp????K?5`h?????e?p???Q??AVE|Vb5IX?%d???eh???4??;N ?3??#,z??p????>I>@#???g\?{??q?????I???????a?P? ?~??Vr???c???`??????[u-"=??Z?SI?w$??,>(X?*[j?*???F?)?dC??9??mx*?2??N???c?F.e?xMv?Rf?Q???.F??% ??>G???????? ???9#M????????????*??b?#????Q?? 1j:?????EHf????$?=??s/?G??8? +???????2/f???Dpf5l?\?j? ?y?M??X?t.?KC?G"K????|n1?U ??O_C?+>??+?#?[ +???o?????eh?.????|???$?4#W????1T?????&W??Jei???;?O??????gPw^Z>%?f?F?????%?[m???????LZ?'?Y??E3???9?@?j??`r j?I?H?????c?C?????qI?9{P??T?F???1???????~#??x?m\?<???g?_?????Mv???1???????????h???E????g??+??[??[/43[??E?g??u}s???dh?t{??~?T????B???j??38Z??\??xK?H? ?x?5???@D ????ow??&?V??{+?FhD?_9?*??1?])???e??~h????r??????m??H"MQ??G?i?????????84j"{?>?????WDy~?B?K?m?????P???.?^??Fe?+d:????B?t3c?I?3?????]????r??V]?:????oy-????????????sQ?A?????.??|?kO>??7)??q?l?gy1?~#? "????[????qc???q??MW}??r}4bn!P"? ??L??EZ?/C&??"*/??? T?64d???wY?GC?M???????#???r????"?????w6??3{X??rf)8????3?h?{??6????????D??W&?h???`??(?? +??GL}??;??R?a???3??6i?<\C????r?e +P~4??g?;?N.?Ty?ud???Z????????????Q6?e?vie?; +??M?)?????h?9h??e??????L?.6???1?iG<4?. 4S?dz??? ??LE&??W?'?n=??d???xG?S??E?dFDI??%?LENn??(?W!X?"9?G#??2%$k??k?e +?S??L?3d?L +? +,3?d?9???-?SF??v??&DI???F?"?^?$????G?*??a/b?$e????v`?Sd??????-?2yj?a?\???????8Q?4?^?#?W]"??_F +?Ig??xK!?=???jdLn???6J?????5Kw?L?tB8?A ??f????C??5\?$?*7?F]|?=hd????M??\{9???q?????3????-k??x3m?u??w:?h??????Q?rMda?A +???_??xD???NN?g?????f?z?????(??Z????KL???Q?l????3???[??7????^??f???&?&:???i??(??_????`(??E?I?*??????}?? ????2?g*O?Cv*??v???u?-?_?h0>|9&? ??2???I??$?T?4???k*???S??]D? ??64??.C-iI??#??b?]???!??????????????V????rA???????8?????T????Y)L?Y????????J ?? ?j?$K? ??^??ZO??F?S??H?@J?????\?+?y?W? +[???!?La????>?@?]R????J??\?8Fq?cD?GjoE6h????UD?2 +?[?!Nhs??-???bO????SSit??????????; "??L??\M?\??3?yfso? +????^/?????W?'? +?d?i?A??????9?AJ-AxJ??`???]e??s?iv??``w?r??'???????9?>W????f$?)R]?H?'?J!??#??u|#ivGK??-???Zu[HER?|?s?m;?????;??N?X?I%'???!??(???m??xN?????:,?q??Dy??ht?8????%?? +?2-?-?B?????.???3ptz?]?">p?Q*K????e{?7????}G?????????mGC??d???p&i!??c?.@?+'?lu????pGO?cE??]??3??L??? ?@Cr?4y??EN!d;? ???[???? +??:"?????Ol?B?(S.?(?\;?A??+??9???z??{?#r?l??-??-????Q??Q?+6 +M?A?;????6?????"?????? ???2???Z??+J?@QB??~?8 +)d??C?x/?CMW#V?e??3?t+2??A~??NM??p8?P??!?fG?9.??u??o??f?? I?dM???v??????lO~,~??????q5gv?YL#%?C,{z?7im?j?????<???g=?? (?????g!2?y??e0j?x??????$FL??????\???>?UN????J?i??????J?+?J?U??[???7M`?f?Pfs??0rM??=?/C?QQ ????U????H??_}#?4?"/"??)?????r ?????f?AK????>-r?? 8??%X?? +??!P?Xs?{?????O??v??F??-2?"?\?.~F????J?v???Zxb9?q?h?????? -?.I?b??W?$?E,X[??1p????!????U?? ???????.??r?B?_?b???-?+b???Q??S,???Lk?\1??9?T????8?????K???f?t@???G?1??_????y????r??`??(? >?:??????`?`?B???X?Q?W1?????c5i??}????_u=?ug???????H??????????????C>p?r??C!??kQA|?????Q?IoG?y?.???????)JM?~~P???KZDJ)^??????{oM??`s?? ?/@Cc\?>6B?1bS%?qM?????`.'i????3\??z???(?? ???ZyKv$?G?P? ?&@{???v?J?r?og???????;?6y ?3???:???:????{?E,I??h?!K33?&`????5??6??+????????p??,????F]?&?R???n[^?H???74????Y??j???a$}ps?B3i2???????Zl6Jf[d?)@Y?s?M?c??[?????tI8???'?ls?????????j?*? ??rupf??V?????N??^?rD`??e?Y??2??~X???[?~XX?a??@?]??wV? ??3!?? mN???K?? V??Q???4=?3e???p ?G?EQ?{l???W????????????\?f?[?~?FO/???$????FX??yF?? +&???W?'??????cz??^6????9h???=#KEp?.?wf?????Q??h7?sG?3??}??o??Z?b?S??Y?Tr????f?????-?????_???lz?}G?3-: +??[??}?????y@?;?R?? ?i7W/??? +P`G????K???Mh +"???????????*O?~??????? L?????b ??P?8]?P?, ??{'?:??Q????bM??????{s?F???=?? +z?Zi8???? ?e?A1???X???f??oi???????????????j?g?y????tW??%) ??eA?v?Cs?m@{? +? U=?|??}???i??o??&?b???'????=?c,??????%j?z-?:?q?A?&?$uU ??????N???pV??F???z? +???xh9??:8???5|2"? +???U??lSH?<|d??x&On?? +??>Gdh??j8?O$$???ds??( ??I/?G??0?d?x~????#?F?/?B?F??????5??:'??B???????k?t?????C !? ??t*? +????????????? ????wD????\r?????'?y??W -?3?? M?r???2??[-?6g ?'?Q$ {???e??H???J -r??vB??8:N?Q?*????6??&?k?0?O?1 ??o?[Ara??~?s?l?4 +??k +7????????v??Y??$zQ=#?T?S??Q?T?W??|?D??z???k ?.?4??Q??)?]?xsX?}?1L?9?Iz?#?Z?R?? !1?!?I?.??????#%?????1L???~>a3?2????aK???\/??i???<8????6?6 3Z?zH??5??lOE?gd??? +??c??? +QRp??WR?}?4???f'????&????vR ?????3)???A?)?"o?|????? "@wN?Q?#?9??h?????W?WR??vV?^wVP?ye??f??ue????`????'??3?Y?]?????????1?88:??????u\???ys????@h?y$??7;n?>??|g??0;J.?!???W_|z,>%??/?)????m??"b )?bm_?{?i3-I`???x???{???iO??zc?? 3??=4??r?O?`?Q???e??OA?q1?=??j,??2??o?p?h?h0??j??"U? ????'#?? ???+sK?,?WO$?K??????z???*?9?? )?n?m????0F???GUr_???)???j???,????0 ?M????fB???d1ws??9?0?^Z??????)EA??n?a?c?4E?????nZ?8???????t???|X?qK?????i ??"m? +???h?P?Z%? +??]??hM??????u?)?W??ZS}.??h??Z?K?????H?zh_?????????????2?>?????Wz>?????u%?s^ ???]???7NO?ay*?????D?k??!??e??D]??Fv????n??f?'GH?qd??7??6\=??N??????L??^?+?????(?AH[4??W??L?????~I?;??f?y?C??0H$$?X ?l????k????>?r.-?Dg????? ???Z?????????????? ????e???>?T??#??? ??14???B?*'?CY(??+u/?N??????o9?}?????s?I7??s??)z)M???V????a?Q?U?r??{g???sL?&??v??????????V?H?+T???h??B?2?=??J?l?1?3?????h?g?y?a?0#c9??XU???????+???????a?>1?KqDY?\??????yx??qc???g???B?dA?b?? [?????(????% UY???B?a+??*G8????MqTz}h????????b?6C??J??1E1????????|<:? +?c????k&?Db?X??a?,/N???X? ???"`'?!?z?cPy???}???????q?z???????^?HO ???>??Y?????J?f?^wo???%D;?E?K?"??vsdda??X?#?i?#???`?{$???G*?7x?$+??6?????|^?? ?3?&?vdv???~?q?????????"2?'???V$K????!?? V???e?}?????&Z??????:h?I??'?X}? Y??v??e???K9??>$>???T? +`yL?? ???:???????L??$?!??n?T??R?DH?xt?? No??;'W?r?B??lL??A?? M??k????H~?ZJ???P????\??8??Z&?Zm????j9??Vj????J?9?ed??????_.?j???tYC?S[?&IC??$?G????"P?M??&]???juI8?5???#+??|?G??#?@?q??*???P2??.?f_??@rS??Pz" +?>?"sCv? +?v?o???f?Z}?7???-]??l?R?tR?? ?(9j?'?????U??????T??|??S2???1i?{H??????|?????X-??????99|????'??????343GJ????S???????lYr6?U?????U??Mjvw??;??,? 0??????@d??B,????[????:`BVC???u8???`?g?ODg?%??bX?i!9?A????j>? +???ei?U?L#?+???zM????sm??????8B???YW??Dqn?hFb(??????R]??k? ?l??X?2?2??UtdW+CnGL?z????'?C?tD$ d???:c???P?Cq?!?aQ????G?x.?)??F??????v??0?3-???6r??}#?_ Y??'X p??a'?????"??l????.????S?>/E??a???S?????w?m???C;?M?S?c}t?v?_??????T1?l??lt?A??R??D?????rvC?~L?MMoL/.???ej?lV????:4?E +?@?5?q?~?|i???!m?oH3[????4???1?>}?????g?lE?K??iXt]V l???S?jm?(?3? q????????????8Y?1?C??I??md??bFy?????.????J?????vhL??Z??s????G??l#??Y?=?>??8l????R??c|J?T?R??b?????s/e??B94?M/G)c????J??w)??v??v?fI?W-?@?V;?y?jgY?????h??'p??K?N?s??6?i??Y????m????\???^^[=A ?i5????????W?]?]G6??>< ?5??hs?\? ;???[v????F? +??V??dd????d:F??D??1??T?0\?????a?N???x|]????}i|?8T?????;?mN +?Z??(??z% ?N{?.??h?Ax????????(p#?2???|??X???? +o-:3m?}[m&5:+?R>?R??&?N)J??????K{?????l????M?aw@?l? .??(???Z-T????g????$9??2b?>??(??a???2 ????L????m?C ????N4&NYP?ZPW???:?n???s???)???/>??????i?????????F? *{??M?UN?j?)?LV0Z??D?pH??oH??9????Z/M63??O??fx??| `???/????L?HU?E?`8?C?r????\?eK???????{R?dL?????%?b???5P?]6|se?G??&????nx????!?j??9?d4;m????k?N!?h?/FR?U?Rw?a??Y?|??&?s?o?????!k?HI???s? ?^v +?~?+?LSBa?|?a?F???p?????????R +cU??#W_s????<;(????|?>??IF?L?=?2j?N??T????(?+?????????9"?>?Ca?g?????w#?x ??????q]?S??ab?GfI?qk???#???? +g???Sc;??? X????O???p??NzW???0^??y? +????qb?1???\??????+??fF???o?DK?5? ?rF???!?p??]i2,???^:????3?????a????A????jC?@?Ta??v????,??I? ???+??|8w#Lz????b????'?(r>??A??82?? +?B|?49I?? cV?7gr??0????*??#????s?\? efex?Tb^v}?_???%?Fzyk.??d?d?#????bs???m??,?M`?,S?1???V?[x?&???lnI?2/?\?'?n?X? ???#es????,?&??\????F??p74Bk??k???Ou?@??D?h? ???C#U?F???2?U@?????????]B?????'3?HyoXlI?????=4???CM9?F???%?????`????? +{??:?9?G??H5??o??!?G?)?m?,??????F3??75??????8?c???6??9U^k?????-6?=??1b?????c?/????N????+?^???M?????d??3????Y??z?9o?????R? +a^%?i?????2?1,???H?Ph???#:?.y?? +2(??-??9(??'?2b?FY +e?6\?u?~k???E?V^??p?3?d??>4l???Q?Z?}???> +??H??7?UbI +????s?l???M?P??B?????????:Y1?h?WD +??N?_???_`???2????? d??v??X??5?? D????7?3c4??(?D?E'|(V?w?/r??;??t???????}??u?me???????? +Y\? ????????@?????g???qV?@?????C???N????m????FL?N2&???;%?6M?;WJ?yj????????a?^??]?^??8????G??5??MKI??? +??G??e?eW?y?d????T,n#????!?q?;??hG??|/- +??An???????0An5??bjy3?A3?????<3???\Y??OoG????zK?5???R0wtK1??????J?3?l?????h??8???? ????z",?? ???l???YO?}!??!V=?W????}#?_???od????????? [?'vM????"z??5G?A???*;???bF?w?R?Jl??`g*???????????????I??1???p????c?t*?|i$????QCV'K?Mu +????h????????{t?????rRY???i7?????e?>?\?R:??m6?S????G???o +??5$?u??v2? >bg???????????W????vgYYy????I#??E"?????s?;?A??J??U?^??>s?? ???o5??B?????*??8 +????sd?.yitn?4X??????>?Q?!?ZS??WI???&??.Kj?M??g{??cP ??I`b?#?????M???,E???s:?o???X????s??p? +e3z?&==?????=k6b????^??%'???Y{??Kaxw????????t(5???g +?w??H??Y|??g?o??gLW?B??????i????w?n$z?L????@W??M?V????g?"S??YcQ??????=?c??5?????z?Y?^?-;?^k ??0????j#{??????&&??_????_??:?|DON???@j??CV ?}??O;?u?>CZA?97?b??????!6?o $????F?P0A/??Pu?HHx?T????+?9T????G?.$g4? ?5?F'=?d[??L?o/?E?n??H????h??nFs???????X?[6 +Pr??c?Z??m?>?? dJ?=?Tv?Mvs? ????R?rVS?y3????gc???d????+??M+X?Wj?? ??D?u?0?m{?5????"?l?~?????YG?v???r/9Mw??????v??|???V?????=r??Xa????u??S'?+'fp??B??xD4??????:c??|lv? +G?????B??*?b?i?R?????? +d?? y"?*z????^????0?33?88??99g???Hw^U??is,?+????DZyD?~A?t????}E???oH]??????????@???????-??%6?7{#q??4u^7 ???b?O??b???k??e?{!WZ???}_?3T?o&a?G?VuY?7rU???????6?7?.?k?Od??15?~??Rh#???4U?V??H???[4???@ |?>?|j???S?Q?8????O?Y?>i?????????????e? P????)??X,?pod 7????_[???????????/??K?i?Pn??.??????t?^??-???UY????????)?B8?_????????V???%???e?^??M=?C??????M???lo??m9???mn??u?M?/?????u?^??M{?C?????]p??X???q?6S???)????dt??]$???H[H??.?k?Od?~???U???4?j????)Vo~n?==?p?~\??H~???Fm=?x????????AEc????=?;?1?z}??5?7xN?;;?4h?|Gj????GM?t??"?????u(?y?)?A[G?????m?hg?p??? +?? y ??? +??7?2?-}????N????Pov?k?????V@?Y??v2?m?J?=V???????,O??????0?m{?-?+0??.???8}??*???A???5???????@A? >U?gl?rl;?N :????????-?Z??W`???????????F??c?PU??5???C\???'??Q~??QOD???r99 +$=<8T??A?w7?$???1??;??nys>?'????Tb?'Z??$k?xH? pM??4?A????^???*~????s??gU???E3??????\6?`???|'? ?'y?aw7'Y???8??s?\??p?b??f%2??NH ??x??QiW?:fH?:T??#?iw?T%???i??K?JrN@ s?<,?v??f?)? a?W? +??]0z?"???wWQT??*?i?V???[\wS??P~??9???v.<`??|#l?(???? ???$???_, +Lb +??F?2??*??DW?HD??%?????#"?p"yB~m +?6?????9?7??t?Ic???~>?'???p0v?}E????+?>?fC u???????`?*H??'1c?h3k?#?&??(??@????.1 +La&?3D? N?Y?? ??p?qrfq??Q +f???vPt? +m?B???]??? +?,?uD???????XU?P?#,H?(?1??Y?6????bhzauw??p?]Ytl?!h=?/??;???/T?}?*#????@Qv?Nd(f?b?Kj?cY????i?Y9hC?Z?>?:?S?????U^j0]? =???>?y?@X^???????????????^??FM'[(???E??T???&?)??= Qu????U1P?C=???????wO|=?&de?Qi??#i?k +?ho?T*?|j:t??H??C???: ???T]???K????F +S-???????ZcE?3?????x????-??{???7??1 +&??m???cE?????5w?{??^?x2???G?.6k,g +?????????(q?6?=Y9??????????:???????? ?+?g\/g={4c?]?>?.???'?8WA??]=?xR??I?E??s _??z????Aa]|???????>??u??F}?kI?c J?>??"?????tP??|w??1????????s uy0 +x?M????d?6 ???????9n???#Th?]8?Sd????xVC??8????5Vl-?R???P%?! +o?i?$??)!?T??r?@h??c???????=Q???"Z?sJgo??????.?AO* +-??0A??????L???) +??J???N?'R? +?Ik?4?????9??@V?U??J????t?o;???tYI?";??^p????^??+CK?'ym?y?VI?/???x???n??`[?)JbCp?Jz???????1M??M??????#]??%?oQZ& _S?f?ey????(?+??f?????R????H?D?m?^???bB?s??D??*E?T U{??M<Z&6?C??^.11,?a]aDj?%??g6Q#%?B???z?[????.??y/?S?V9l?????\s?%?l?E??JH? +,??[?x ?tt???{???k???"?z6Ul??X?!?4?0(???CN??,??B8??J?;?L5?????d8^???tvJ?4?H?-?????? Q"dM??D?]??B??_P?r??T?c??#J]&???c??? ?U?o???7???A??Zu\EQ?????3qu&p?x??N9??j?????F$?Xi?[???#9??????N???>R?U??????d??M?,8^??? +??U???Uva? ??&?l?e??.!?f??9??`? +?????2???KpJ-6???+?E???V?$????z???Z?.Pt?*?D?LF?YZ??l??R??BF????%???"v???%???BpfK]?????f???? ???R?^i??R?C@??(%??(wBq???]% +?at????J?l??i????i??.??????)6?V?%??]??? +|?bt ??4????+??E? ??9f/?0G????hG|PJ??E_5?B?X???s?#P??AF?%h?Wv?WvD??????m?? ?-??????#?o?????xCw?p??/????k?0??????{???t(??a "V??e????b>????0??~? 5???_\?????5?????h???B??(????U|???/??w??`S???+O?????)?mS????? ???????????L?6??~zlF????e(/18xO/??<"???0?8>??[??a?}[??s????????9p#??y\???;?Y???a?????4???X?????pc?%??D#O?xx9????r8?????b?*???E??3?8"??????;?f?$^W??????yJ??5$!?W_[U?w?w?n????k????? E??m??i???^?Ek??;4_?H??T???p??@??S?>?+???Q *.%?s%??x??????j?>??l) g?2?Q??O????pg????jG?}_H?+??<?@@=Q?A'?H???K??!Ao???N??n:??Y????? +)a???!5?@xZ????73???!!t?_???60O?D?~? +?/??r????a +r??m?!??????L?????O?v3q???is???)??%??'?*o?QOu?~*cm9??5 ?]??mT??2?t?EJ]|\?? -?i??t>???w?B?? +\????8?$p????M*?????n`=?????p1: +?g6|?x??W$?Nn?Q??:???T??es1????:Q??8S?a???0???H??????? ?a>+???? M3???s n???? ?e(`?d?)??????v???9C??????>@?????+?hv??n???U??i/hb+?????x?????mM???{?>??=?5?C\^vC???|{?#g?s??m3; ??!?>stream +????Adobed???C   + + + +    ?? G??? + s!1AQa"q?2???B#?R??3b?$r??%C4S???cs?5D'???6Tdt???&? +??EF??V?U(???????eu????????fv????????7GWgw????????8HXhx????????)9IYiy????????*:JZjz?????????????f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??c??????:>l??f??6l??f??6l??f??6l??f??6l??f???6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6lt_??????G??6l??f??6l??f??6l??f??6l??f??6l???f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??????X~????f??6l??f??6l??f??6l??f??6l??f??6sl??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l???z????6l??f??6l??f??6l??f??6l??f??6l??f?m??B??7~m?@????-`???{?W??.+???6 +? ?j??D??k???+?3???WM?????????O??h???s?5?? ?j??D??k???7?g?S???'?#\??y??????t?????k?????????H???^o?????]4O?F?????5?????5?????3???WM?????????O??h???s?5?? ?j??D??k???7?g?S???'?#\??y??????t?????k?????????H???^o?????]4O?F?????5?????5?????3???WM?????????O??h???s?5?? ?j??D??k???7?g?W???'?#\??y??????t?????k?????????H???^o?????]4O?F?????5?????5????????????H???^W?g?W???'?#\??y??????t?????k?????????H???^o?????]4O?F? ?????????t?????k?? ?j??D??k???7?g?S???'?#\??y??????t?????k?????????H???^_?g?S???'?#\??y_???O??h???s?5?? ?j??D??k???7?g?W???'?#\??y??????t?????k?????????H???^o?????]4O?F?????5?????5?????3???WM?????????O??h???s?5?? ?j??D??k???7?g?S???'?#\??y??????t?????k?????????H???^o?????]4O?F?????5?????5?????3???WM?????????O??h???s?5?? ?j??D??k???7?g?S???'?#\??y??????t?????k??U??????k???=???Me???;?$f??$Qz????6l??f??6l??f??6l??f??6l??f??6l??f?m?G?M???7?E??6l??f??6ll?? O4?(???z*??'?28??~Ae ???S? ????????_-????s????_-????s????_-????s????_-????s????_-????pN??)jw?????7??1???0Q??P: +??6F??O??G??SBA?b* +?s????_-????s????_-????s????_-????s????_-????s????_-????qk?>?2??;Mb?k??? +???z(???l ????U????:??W6??O-Tu4e4q?????_-????s????_-????s????_-????s????_-????s????_-????r???????[rv??f4?w9$"?ea???'?????j????PM???aZ???Y>B???????No?Y>B???????No?Y>B???????No?Y>B???????No?Y>B???????NS~e?Af?m???%??$??????8 ?:EA??mW?^U?/>????Z??z??T+P??????/??[}??4?????/??[}??4?????/??[}??4?????/??[}??4?????/??[}??4?????/??[}??4???????7?S-??? ?3Ut=9???l??????????_??????G??6l??f??6l??f??6l??f??6l??f??6l???aF???n?`??Qq?D??6l??f??y??8???????,????IQ??N??J???(??pO?vn ???????}??'???!~tUo?u????0m?9xE?,?,?j?;O??^d???Q?f???>???G???(??pO?vC?1?Cy^??=i??1???????T??????G?N???O?vn ???????}??'???7?Q?d??T~_????c??_"?????nG?/?O???P?]?_??\?pO?vn ???????}??'???7?Q?d{?y ?TQ?????Kc4???Y?Pk ?]sO,bp???????k???%????/??W??6uo?c????p?/?S?a??????6l??f??6l??f??6l??f??6l??f??6l????H?????f??????<B?O"? c????QG?1??I???????D_?Vo?'???g?I?Y??.??l??E?5f??{?????????E????Y??D_?Vo?????g?I?Y??~^?????$E?5e????W[??H??j??$???]l??"/????4??}[?{??[??Tv??x?'?#18???????o??R?r%?/???????????????? ???s}K???????r?????A?????e?r???A?????e?s}O??????????? ?,4??ua.?ir??????m? ????[?O??????????[?O?????????Qi????b8`????bB ??Gc??Z?8??????i?????????T+k]2???#bW???o?f?~?L??~R(?A?(?"?c~??A?????e?q[A?Wgs??hV?1QMZ#??VSQ????*???O?????????*???O??????(?_????.n??=????H?l???f&??_S???}?{????????I?H??@?YX?Af??v?' ???K????H???8m?? ^??8????7KEea???7?g????h?u?ZX?T??*C?F????????????n???T??Pv???/?????E???o???6?W?????mfM'?R?%?Z8??u?^??>??_??+;?3G? ,F) GPE@9???~_??}???_????D?L??;?AV?A???0?sAhcc???T}5?O???7?????E?????_????Z??(??a??/?5????[??????????O/ZKmg 2~???4E?[??'o?~y?u???1zx????M??????>??^??M{N?H??{????A?A???????o?"??bW>\?V?R4?pB1?_?%?yC?N??? gx???rG???????????iR????cI)????4?? _?c???x???+F!M?? ???6??s?'????):?A??\w???#????E.?|???M??E?oN?DO?.?)A?????7?X???R?+? ?).??tK0?HC?Iw??????/?X???R?e???2??4+:?$E{ ?~X"??R4Q/o?l???<?K???:???????w?????y??f??6l??f??6l??f??6l??f??6l??f??6l??Q??????3?\xw???(?????????????E?????????af????????p?6??y??4??#?r1?o?I|??G?g????Z???\???E?I???X??~R??CP??)?9?p??_?5???C??L?J??_??'?Kd?+?:?O?????j\>?&?h???U?i?)\_??_?3?? +{?9_???-??x??_???V_?m????7!_???Y??WN????????????y?1?~L ?^Z???L?????C;?%w?????~????????I?/E???????????K?1? ???i???????s????T?? ?J\??????~??2}?? ?/?:??T?? 0?????F????d??I???Y??,?????C??%?;???:???????w?????y??f??6l??f??6l??f??6l??f??6l??f??6l??Q??????3?\xy??+?=Y|V!?????L??38.??????U????????d??o-?.x+???2M?N?[X?????C??v???R=?? ?*??Kq?}???????'???7???lO????m?S?n?G?&??;?>?/?????'???#??w??]? jn??B??~f????????M6A??.??-?2?1?5e???*???Z??????\??????'Q?I}(]?N???=?e?k_??????v-XZF?M,s??B?Rl1??????????????????]:=\?/ ???b???|?k_?????g?_ +[?&?Dq?f!???z?$???-?J???!?'?2?#~??_??u_?o???w?|??h??s ?]?)En???L?-k?????Y?W?rd?"? 0 +A oLl???D?4*??@?M?????????ZG????3Bd?????k_???????z??????7O??u)?Z??$???? ???]?????Ayu MVw?o?+?*?U?????_g?u???????a0u???????????????<?A"???V?=???+???l?4*???R???\?k_?????Q??~?? ???OB9`?KZ????F?2????`??????R ??i???????Eu?*^k?k??G?im????'??q??????m????bW????&v??eB*z?@??????K}???u?<-???Y?D??? +??,I~??????<-???W?U???!/Q???>???k?x[????????[???9?d#???QA???C??%?;???:???????w?????y??f??6l??f??6l??f??6l??f??6l??f??6l??Q??????3?\x{???(.?????Ol?(?????`;??????83 +????????????ZO??'?f??$pnE???)7??w?c?/??z??????????/???@`??vn???g?????,?!?y???????O?? ?/?O?u|??m????}??o??V?????9?o?x?????`-o?9????V-a?????$???_Y??????@`??~m?7i?mM;??????#???????F??O?H0?????????????T?????"??1??"????????G?_?C?%???o???4???????????[????Nl?`o?9????$0p?3a~???j?? ?P?{l??#?p~2?$?T?????????????Q????M?[?????z\;????X~????f??6l??f??6l??f??6l??f??6l??f??6sl(???m??l??.<=????U?V??J?u?Kh??]???? A??yb????Xo??P???-???.]??S??E1v??? ??|?????Z?k$?8.F?.+?Z5N?A?a??????????????Xo??P???.??[? ?????I?*???/???????D??z?7~e?=4?8???XJ????(???0w?i??K?t???H??!?0???{`????'?????????gy%1???y?hMv#?t_?isL/?jv7??????B???(???:o???)???????.????? ? iZ????/??????D3??:????[?A?????l.??'o?~x[?]V?? ??)???!x~f3?p?t???S?L{?i???B???????n?u3?K???H???c&?.????H?'?x|? +#\??L???@??zo?0_??M???E???I??i??$????P????m?Q????/??????F?1??*??Z?0?G??*????a????????@`K +B???z?\????Z??????A??]??Y????G??i???"0]??sm??O????G?E?4??y????o???4?????????|??TW???%6I?'????H??e?G???(`??_???A??_?`????????,0???>????Tdj?????????2x!?d?????xd???Q_?>???2\"????????OK?qz????6l??f??6l??f??6l??f??6l??f??6l??f?m?G?M???7?E????????????Q???????1??Db???:w????af????????p?6??y??4??#?r/??I??????????????M6H???Y???????s???8? +????[?T??,4?????e?????fA2????l??&????????????????$?3k?????W??o???/???+/????t?? ?????F??????Ra?}???|?????h???????{?????#??+???o??GH??]??bO???x/?????$p~E?4??^y??`f???SM??m??`?? 1???????????6????/??C?6?o??*O??P?{l??#?p~2?$?T?????????????Q????M?[?????z\;????X~????f?1?*\B?AC^$???Q????????????????7?.?????o?\?_??\?X??~??????????????????????????????7?.?????aqq???#?s}b?????G????????????????????????????7?.?????o?\?_??\?X??~??????q???#?s}b?????G????????????????????????????7?.?????o?\?_??\?X??~??????q???#?s???????????????7?.?????o?\?_??\?X??~??????q???#?s}b?????G???b?????G??^i?6??? ??~g???????&?E?Z??Y????????ko????1?,M??n??5c??ppW?ko????1??_????$I%?&?\?U?z?2? +m????F6o???????cdc??;?H?sc???o?\?_??\#???C.??{? $??s???c??????????M+K??????2 at z +?t??W?Zn??g?`(??:??}b?4???????_?i??????????????fd?2???T?)???W?Zn??g?f????q?#??#rMq?G ???z??W?o???????Ie??==5????0W?????????X??4??????e?g???TS?????\???V4z +??1_?+?-W?3?0???k4qM%*?%?O???????????????O#?#???c@?? ??V?G???R???9?T?r7?,m?m;{a?????????? +?LU??_?NC;n_qE?i??D???\??????!???? ???=?XH?D?e?????k???)??D???\????=R9-5?O)%.kBO??????O?#??a?}??6?RI%???,???G?p?L??e?????&????_6ja&xiiiR?????$P???????????N?|??J?gc??h{`?aqA??7?'???? ??m???i?e??[???K???z?bN??????7?'?????S[=???g?????c????????FSj????q? +}?????-??x???k??-?????w??_???*?'?s??3??k?!?z??7???F???D?^????????1????s4??{??q??v??[???????R????????R?/??m????????????O?pW?????+\???_????e???n?}??U??>??X??`???????+?????y???l?????????Z?hgye??O?"??#?BMO?k6??h????f??h??t*??3???.?ocon??hbH?mBU@?~????G?????;o????????????*?^v??{?{??????X/????????J???] +?ez???d??????f??V ??;o????Y??????????$???I'?????R??T?????u????????[?i???????t?Ee??wq,?Qq? +8H?MXPS&?U??z????b???*dG?????e?7?[????{?m?Uq?MI?R?? +? N????V?Dt ?cERy?v?~????G????v??W?Iuy3\????'Xd?Yh)?B??H[????8[???t????L?{g?|#?W????T???X?|'??=OHK?V??nC?\??D??%??????q???G?????;o???????i????????p?L?O???5???ez~|?????>?7?????????3z~|?????>?7?????????3z~|?????>?7?????????3z~|?????>?/????MG????^????j???????????p?L?O???5???ez~|?????>?/????MG????^????j???????????p?L?????j???????????p?L?????k???????????p?L?????j????????SQ??}?W?????????2??>???i????????p?L?????j???????????p?L?????j????????SQ??}?W?????????3z~|?????>?7?????????3z~|?????>?/????MG????^????j???????????p?L?????k???????????p?L?O???5???ez~|?????>?7?????????3z~|?????>?7?????????2??>???i????????p?L?????j???????????p?L?????j????????SQ??}?W?????????3z~|?????>?7?????????3z~|?????>?7?????????1=7C?!?.??KTmJ???+R???c???????E????^t| ??b7V? h???b_?4??g_?7??7?Y???????:?9?4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?s~??????4??g_?7??7?Y????#M??u?r?6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6:/?S?a??????6l??f??6l??f??6l??f??6l??f??6l??? o?br??????"???5?????????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~??????? F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??s~???????F??qhg?d? ?*V??`????z????6l??f??6l??f??6l??f??6l??f??6l??f?m??*?W?:??|?&??Z?2A=???1??Z)!k??,??c?s?R???H??3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????f??c?s?R???H??3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????f??c?s?R???H??3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????f??c?s?R???H??3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????f??c?s?R???H??3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????f??c?s?R???H??3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????f??c?s?R???H? ?3??????gN??t????X?\?????:L???.?Y?????o?V????,??????7??????t??GO???U????K:w?#????*??????;????dC??6V????`KkK}fd?? DQ?UGA????O??????6l??f??6l??f??6l??f??6l??f??6l??g6????????bl?d?6l??f??6l&???{?y~{??K???(V~^?g?!?p!?=J??????????/??????4?????????g????B??????~????~?_???^o????? ???k??3?O????^?x???y??4\hZ???%?w??b&_?3C??Vo???!??5j???Z?5xcYe????8??Y?jSz`? ?+{??BT??%U)yPC~?|_?g????B??????~????~?_???^o????? ???k??3?O????^?y?F~i??t/? ???[jo??M??? +9??????K?YZ??Z7??(}\?cfr???r????o/M????v?D???8?/ *???$=*0??g????B??????~????~?_???^o????? ???k??3?O????^?y?F~i??t/? ??? ?u_?J?Y/"???>Z??????7???$Qz????6l??f??6l??f??6l?? f??6l??f??6l??f?m??/??-??????? ??l??f??6l?????N_??????s?f??6l?^????? ?.?s?#?%???????@????????? ??\0??6l?y??&N??l?G?N[a?'u??????"q???~\??}???'??6l?~c??Q?O?j??Psd??m~c#???????m=O??e??l??d??G?8Zw??4???L5=NV?V??.???Y:??6l??m????????O??m???9???????m??&??_??????G??6l??f??6l??f??6l??f??6l??f??6l???`???K|??16??2y?6l??f??6y?K?uO-\?i????????#?j? ??*^??Bb??????-??(??K7???C?? O??'?R??/????B?????T???4??P?????,??????-??(??K7???C??O??'?R??D?]?????sL?K???X?7KtY?w??*??g?Fy?J??????v?E????C??y??*{a^??O? =>???%h?W?"??Qx(Z??>#?_???R??????f??h??i?qD??Y?????(Z?Q???o????J6??O????_???R??????`{#?-[?:?????Z?Y?[???n????#`?JzG%x???2 ???+?A +???????O?????O?;q??4^~?????4?}*?????}r??+??$E??w?~@???????J??O????_???R??????f??h??i?qD??Y?????(Z?Q???o????J??O???????/?V???????_?]?t??LU-?YZ?#Z?/?MO S???%?0?% +??????"??O??????S7??c???R~?'o????_?)bYSF??8 ??????????f???:O????5?z?4A??u???6?]?5??MA ??`???????R??i?W?=CoH#&????]???Y.6???i??s??o???????y??:?H?F?o#@??-W?1?z1????V}???d??8????m??WH????iK??kO?O?+?!????&??Ts?C??>??I??J???x?H?}]4?4???h?a????????#?S?:???????q??6{?sD???q????a??????????#?S?????0??}B??????i_????0??N???????f??????>P)omK+~???PT????G????Z_??#??9??YP8??s?yk?;?q?????jl??f??6l??f??6l??f??6l??f??6l??f???~^?[?_?????A??1?k +6?Y?Dq'vs ?(???????O????????c?????|?46?\???u?x??????H??D?C ?/l?X??N?Uf?y + +???6?????5 ?\FIFr???X?pn#F??C?~????????Fh????D???u???????????E$???_?>??????(?????Vr w??[??G???kW6?,???E?d???a???????????v????????:5???????? ~???[??G???B~???????????b?????A ?p??????????^??,?????i?b??????* ?G~?????????8?[??O'cX?My^"??E|=??y???[??N3??6?/?t?$???{X???RI(*I# +@????o?"??`H??.=e?;HQL???~^? ?E??????:??`?U?-?+???? +]3N???????/?^??,?????i? +5?kt? ????I??f?????$??h??'s?????~?ON?x-??~??2%q?)????`???`5??6??c???%2k??_j??b?`?-???????I????,e???/????-7?9????V????cK??E???? ???;?????$???,??/??p??to???Ga_???K????&0?6????????H??????S_&??k???|8??yg??o?8'?????? ?@a???????x?k?????S???d|???????g??`??~j??/F?????Q ?G??|??K??iM?L?? +O?????Q???C?4??A???&???????????v???P?g?`???+?????/??Z????7??????m??&??_???? ??G??6l??f??6l??f??6l??f??6l??f??6l???`???K|??16??0???Z????:?`0?????|??????'????f?????O????}???p???y-?Mw;??????????5au???????j??l?? ?z???`??z??]d??q?LN}3THN?)MG???*??W6P?S?z@?S???GY?????#?j???q???Q4??????????N3???2 +???z??a2M?]k?[???#?j??]k?[???#?j?Zt:?+??4?"??A^?0o????L?)???.??X:???D 3:2?v*?oV;Q???????G?"G?????Y?d??S??!?bV?Q???}5?X?????#???????VB??_?M,\?I'???????bN???8w????V??k???R??A???????-?????5`Kx5?v?"???Z#???? ???????o?? ??5???%?????*??*???a??u??n??D???7?u??n??D???i??R_J?????$???? +?u??j??E7????6%?????Z?9 ????J??????]???7???O????ykK1^"Fma?? Hz?4????-?????5`!?5r?&Cr?S?`?:?????"??j?:?:?????0?n*?b ?? +??`?k?S????D???/?????G?"G?????u?Z?Gs?E?5&??`?G]?????S?Y???R];G7SE"~??? +??a|I?!?p??i??5??? +??Fj?U?????O????_???????f?2Il??+??=MN???-???e1???????0???E????????O???}?2?????j??u???Z?I ?_???k?/???????r:??SW????????3r????????(???0??a2 +????????s???E?????y??f??6l??f??6l??f??6l??f??6l??f??6l?????R?:??M??B 3?????O?mE?P??E?????q?1~???????????.bw?????S&??????!????C?;?_?????2?????F?X????o????d[??????"??N??~`????`??kO????b???:7????#?0?\?6_??l2??4O??????8? ?w??????????_.??Y????N ?????O??C?o??v?????????r?????\:f?g???????????????Zw?D.??w?.??7?E2C?5????8?G???o??:?r-??'????0??????8???3N??9?j*#4???????\??????????px??t ?'i??????? c?o??>?YL???????E????j??O???????=?D???E?P0g??? ??[L.??m[X?d@?&?a?*?? MY?I?"??c&?l?2 +I???7?????5??H??5?????5g?'??o???J?;??]-? ?M??)_?l8s???????Xqo?Y??JD????????5g?'??o??m?{Av???#??)???V~?????_?j????????Y +|p???????-??o?V~????H??#?C???}??`??V~?????m?W>u?y?8 5?K)^?????_?,?????'?]Z??,?Q?rV?J??q?????$??m?0???L)% ?????????$??m?0??ZI???$?5(?I???Z??I??[L????%??m?0??Z$??S(?z??MY?I?"??d??3P??N??0???Ie*????rHz??k?Kv?i??f4?;qO???4??????`-GT?i???Y?;7?????4??????e6??q??????z.?`?U?4?0JB{? ?cN????:????????R?n??X7?????sL%???c/?????????[???????/??Z????7??????m??&??_??????G??6l??f??6l??f??6l??f??6l??f??6l???`???K|??16??0????o?????C??6?>????I??f?????$??h??'s?????~?ON?x-??~??2#s?)???? ???????9??u??D??L?K?W????an??-/?2I?&?c.????F?X????o????d[??????&??N?????qo????rKi???????W???F??y?pf??????????c +3` +?9???????????5?w?f???V??????????|??(???0???????0??'????????????G?/i??_?s???W???r?o?l???}p??8??@?s?????"?"??????g??? ? +/?@?????a? ~????? #????????M?8W?O?Et_????? ?o-?w??????MG?(??O??????6l??f??6l??f??6l??f??6l??f??6l??g6????????bl?a????*?n/???:6l?}????????+???????I???LN?????F?X????[?4??????On?????|G?_????c???&YxL????3??0~B?5????gO????G??^??n&?WWw"????$*?KZ*?v? +???5Cm3:/4?d??ux?:2????~???????#???y?B???R?????l??f??6l??f??6l??f??6l??f??6l ??f???{kgnRC??2)?y?????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??o????<_?-??(?????Tp?"?????:>l??f??6l??f??6l??f??6l??f??6l??f???6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6l??f??6lt_??????G??6l??f??6l??f??6l??f??6l??f??6l???? + +endstream +endobj +64 0 obj<>stream +H????n?0 ??{ +;hf?q?a6bE?b;d(??U??T?,?23ky??H{??v?vE?.?O???K??,8!@???2%???7%?.???"]? xP_wnw?????yM??y(B?Z at AB?MW???????zHsJ?lJ?\\?V7 +I??$?D?^??[???L?ws_?????=-F%}@t?}????Y????oZo;?C???G????m??Gn?????????]?1^X?BN>??z ???????pLbfc +?5*?0??k<03?fS????[????4]?? \? +=??g?o??%?q?cp\p0q?}\?'???? + +endstream +endobj +65 0 obj<> +endobj +66 0 obj<> +endobj +67 0 obj<> +endobj +68 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> +endobj +69 0 obj<>stream +H??W??d? +??W????H?D??xk?????'?u$??D??v???????!?}k?^48????????6??G??U?63?????????T??&??H??????bf)??23o\e?&.???"??B?????b?C*??S?fZ l??(????5??? +c#J??????fu???V??V9??:???+?i +?x?Z[9qhk??!??x?]d?*"?`?????k*??9??K8?T?K????)P"6?* ?0"chr???^????h?K????+;??!E?????v?8=??B??lI?????v??V????O??????(%"?A??q?, +?Uu?3d_??X??X'>??Jg???"????????Eg?J?T?A?M?u?^??^J?? 6?= L?s?J6??????r??]???|M??]?????1???)?????E?-? ?b?Y?X"?????#??^???|??E?~??sZ???.????e/T#?.-f?J?x??w?U=??!?L.???->??%???T??Y?iV?V??q????Ij??K????l ??2?_?1^???m[R /????6????????N`4?????nH1???k??K??22?????-????????r?Py???Y???q?[?l7#??==0??l??b?7???a???wE*N?k?9 ?3P??4nVRas??JD??J^????y???% ?g?~??F@?k H@&?w??r?l????6?????g?N}j?3d HD???????V)?? )??{ ??@??- ??k?QBi)???^?l+W???t?/T1?N:?? ??o?|????d?)M???] ??- ??K@?3??;7??????{?*??|6a????? nB???)???y?(?(?/????&?La?Rsdu???a????mDB?D??X?g?K?V5:??CYZ*?*??zQh?"6d??%k?3g???-?P??+5????df?t +0??? ]??M?+????W??2??d??Q)??:f???vM??cPV,???E?& ?iE??l???=?l??PYb?M?[?n????????Z???,?0?d]??V??c T????????}:??4?e? (a??Q +????`?????C+?v?6? ??r? }??3Z?\?wCF???Ko???????|??CfjT??)c?l[??????=???h~B??7?R??Bg???$M??Q?nb??0??d??:wp????????W?_|?o????? :e???{m? +? I$??q?lQ?U??3d??C??I?s????e6"B?b????M?O?[?.?m?\?s?????W?? +???f?????????????_M?????V?]??="?k??t??J?tqe=es???v?`I?w????7????????RfH>?0????????w??"c???????G?Z???1?????$0????T????s?V?H at Qi9?>J??? >??~P????Rb^????.???4qw?r??Y4???K@?)?`jTz? ???6??&?^O???p~ ?X{?#?[v??? ?ik?Hh?????"??L?*riN?E^???3? +???C??Y?y??????%?? ???f?fP?&?,?p?????2?.??L?"??;?????|wB?????a??\G????]w at h??-??f??d??d2?????ZL???L???%????5v??{Fav4?gy;??g??&:>?-2@f?n??? +??S`1Y????????s???X ?I:?$?\?O?b????T(??%h?<3??p??u?Z?n?>???=g%???lqh???G??m?Q????)?$??w?@T7??D+???#??4???IB>x???+o:?'? +????]??h?!?4??|\u2?b?6O???? ????2= i~ ?:U?&??v??X??????\??J_?u?????V???Ye +):??L"?Z?wk???3d????#???!??,??Og,g????m?M[N?$???Q?&?s??:??????0B{M?WO?"??A??I?9?F???]y@??T??=cn~??&?{??^????%(?_???[?????{?)??|6a????3?b??_??7???3??j`???$A?? {g? ???BR}?W?[ +??Y????J$??:Dqh???ls(?<`L??G?s2Tq???y? + ?+??w?????f???@g??!?_?z?????????S?u?j?y?I?J??????B,?O???|? mFTW???!.??u?zCB'{}??z?r? .?7 +??w??+U??YI)f?f???s??T?o?#u? qc~?5)???+?????t +Ei??pt/g:k??ZJ*??? ????6?oB???9V9]?J{Z?-???c?I??~????? +QIh[???N? ???B?9"?&?@:??-b~i????~-}I at h}???????h?$?-?<A?s??????++m ??????????r????M?ymw?????F?'D??_0"?H???|C??{}^?z3???????? +?)N???L?j+Hz_?H'q????;Z?*?d?'d??y???w?>?e??????'????zA????y?+?+???*)?S\v?8e?5GA??}t?'d??y??}L?=x??0(?cc?????W???h?6???i??A?????3?L?8?"L???YCoz?%?1:W?e???????r+??R;???l}??D????NJ??v??A? ???c??{?oT?~?)?????%??9????w2_?????=?Zdp???c??6B?x??9???aHN??O???b6Qt?rX$]?9???Pg?? x_?,??????W??r????kN?l?j>????P??5i# +????V?????0??? + sM??|??x?? +??u?W??gk?k??O??GP???k????????????????????????e???_??Y????JV??3*?<\?"?[?f?:???)?S2dr??>?'????????5??cM????9??1?Ewa1????? +*?^??e?i??v???3?p?G???t?Jwd:?:<~?????Y??????u????1?F?????&?h?[9????I,???????`??=??{???-??8}??Im??K?????5?????0?I-?X???V??,?2??,?s?x?tG>7?*p??(,?B9?FaV??!%,?6?'B?F,???eH???????????;?TF??@?8\B]f?u??????A%?i???B!?Z??4???]ZZ????hq??=?-?e??+?T5?w????Z????????jfWQ +a??}$AS?d?i???I|????/???@?/?O`?V}k`?? +?2??9?i??v;??Af??F+ez?G?????D??d?@???u??n#??r?c???,?^??~BJ[??5?V??????o?i?? d? ?/?? D?ub?YJ???=???????o'08?m??+???E???ba??L?//Oo??6??U,?o?????i\ ????+8?)?g??q?u???| ?q?,?@?E????W??^0> +?x????%t?b?&?f?8????o??\?????1_?????e??F?E?x???lb??@r?V-??9???L?(k?xK? 0?????h????`Ma!?A}???-A?S7M???"???2mshr?k??oIMC???????]S??\?X??U?Auj?????X?`??k?-? ?Q?Q???k??3???L?^??TM?>_ +`0??9????L?$2??d?e!?4?k+[??Wj+??A9??R41*(?:Lh? ?aBI~?xfjS??G+?A??=>=R??ce??"?h~\??_ ?Yq???=3?i&M?I?&?f?4?Q????{;S?f?,?&??;jw?}:?j#???+?/??CY?????}???oj??D?W?)v?C1?%???#?v;?)?L~???u?T??I???u????????[???w|uz??v?????)???v??o]?XBz??s???N?????44?}??*?????:?q(?e!???{?iP?&?[_~????????*?ta?e???@??o?ix?]N?Fb?HE???d?uA?Of?F\X?8C)???Q??8Q?q????Tt?6?=2? j???N??"????ZK:`?~???J?S??-???80,9??K?'???97???`?&t,??????61i??7v??????d??????eMeq??F?9??`A??P'K2Q??Pv? ?&gY,?????irp$?:????J????z????????_,e????$??<??z>xo???????wM?)?f8?Y??^Q???A??vx??DS#Y?P????qC?5??$??1a????@?5????u?fg???T??,}N?] ???Fb]CF9?:g????P???7?qW??????P=n]???Q??I??a??????YCUQ?????????$?X???$&?6S?p??????g?*jE?GkH?ki???cR???(s?????/g?7?1???L?8??'[??ES???????D????5Q??o?qm??g?! +h??w4??8cY?=?????j?n??Q.???x???]f?????b???rK? +2E?{K??}?_d??*????g_??8o]?X +??g?C?j???i;?x?L;?3??????LrK?????y??|jXC?}??/??sL??u???;?`??(a??j????u???x.?l?b??0?????c??NL!b?C3??(????9???D9??Z?,m?r`????N??x?*=.]?R??wM?? 50??C?????j????H>?$???@???????i??W?_R?nk}g?? ?I?e???-???Ek(k???&L32??A?L????3?????Tpe?PY?b?S&7'?(?o????f? ?H9? +N`?Ap?,?O??u?b ? -l??SO??F?? A???M????????5????Q???C?2???@?J|?+?/?G??i??W{%-??@!?????_^6X?$5Vo?????7:5`W?X?)??4Y6?? +???2d?H???)? )WF9??2jl1j7j7????? ?M?su9G !?!??4`FV r?)??e&?i?I???3???*?>?qe)?J?5?%4?^???DLw?I?k??5??S%??M??Ht g??)??J?54??/??~?u?U????bS?{???-??MLQK? +?!@;oj at 9??k?{)v)??u????4???Y'jp??*f??? ???~?DMl^c??a??d5?C??w??1?\??G???????T{[??Y??F?? +?K?[&?vFEzN?Z~???b??b2??a???????{|eadf????&?????/?O??HFx????mMD=?????,^ ??H0? +?'~??????3Y??b?lY2??c?}?W_U?~g????1rq?r?+?%???3\????(N???????#?!{?-?ub$? <[????NM?rd[/?\?y??d????????>? ??b??#??I? M?Y ?0?S?"??????^?2??r??? +????????9?+???q???? y?Wj????_?n???????S9VG???O???*M??][nF????y/z?/w????4?d??B-?? ?E ?H?o!?>?Q?w=???=?1??-Q?xE?z?8??|u??t???_M?e+e?kB!?1??N??,?[?F??e?iTV???U?)?e??Y?{?????}Z?????????p??Y ???zYy???v?y????u]H?3?????_uZ???-&??gDg?2 +E??????i(?gjNT???S? +_Q???c???B?>!>dj???e??W?k@??????H}4p?6ZY??Y??o?xKuV )r%?y?y???T? ?.c?/lR?h?F#?1s2??(?8???%;(/kl??[8??.?,??????????1 +F8f?."??FP~???,J??,?K?[? ?????J??????0M???Y +.??j?E=???r???&[??? ???gF,???X?????+k????Q?????G??K? ++??e`-?????b?ex??O(???FY?rZ???M??0?p t??4?${???>u?g???^??\K 8EK??a:??pF?????D??T?`o?")e??~?k}n?K; ???????????8*?Er?z???X?? +??p?P?M??b???????HY????,.?X?J?%`?t??b9??Y,?1?M0?n???k??t??*???????rV??Y??????GQ???????^???=W?????G?????y?? &F?-?R?6)n?J?8I???PM???\ rx?t?????ti?n_???????kF??T????????4????t?`L????7????3???E??^?gy?!> ??"??f1^?EVtMr??c?P#??+rT???|??mO?h?? +??{?2??8?T??F??Re?!y???$s?z??< /?E?T??f2???LVZv:c9??x&Wh??g?m??h:Ve'4?S 4?V4?d ??^1f4?pJ?? ?g9????&Z??Su???DGm???????N???o?? ???g??9"?f??XW?(3G??.?h<?????? L??,???!???|4?(6?Y??yp +g)?R????PY?y-?????}Tw??a?~???EN??7?Y??(??]?v??? (S%?`???1_?'$??MI???] [?c$3?e>e??Fa~???,N???h?2fw?? x??e`??+c????]??cJ*?jx??l )(?4+??{`: ????4?+s??????r???4??C ?`?ha?I?-???7??S?????F?????zf2??F^b????Go??w?????N ??=yDL#?????&?`??^????????,?@Mn-???F??UuE@???Z?H?? P? +j,CdNcS??ry1J???u?rP????A?3??j?Rl?A?_???7??"?? +m??4Y?)C8????p???m??? .jCvp?-??/???=f???x?l????2?+???>?u?+???X8???rzP??_I?2&z??+?u?,??Bm?iz??q?W[??p???7?O??]?f?J?1?v3??; +?>??!?C??r??PtFU????9?????}???B????A_??h?%??D????F ???7a] ?Q????????\??fu?U?=@?#70cPcy*v ?I?@;5Zi?<?Xn??X???&i???+es}?z???t? ????es?U-mNc? =???b@?Qe?Pc?oRcq?*?? +????][???-??g 0??????E?i?nrXe_l?ZU??????????????C???i_lV3??ff??3g5ZO??8???1*?[??W?? +?q??R_ ?????,?????`?E????,?Lo@??????w?E?H?&??%??4?\'???t???D?? ?????0?2/ +?,? +l??@&\?Y??T(Omgh$k??rG??_??:ddw#?a3??x?[?de????????7?JD?ck???U???=???2y at x9???K???6N2?Rf?H??3????f!???5 Gn?9wW???}o?E????i,?2Xe?f^?-??\?YX?w?????F??NT??@5JIN=????????n ??????????{??9^???j?C??t:>?????|?5?m`?+?ai?????%???c6????+?Y???4E:??rh-?"?`???d? ???????9???????Pg??????=;??W??izV??????Av?+???K{???\-??Nh??5v????M??/??=:?:???????F+#?l ???P-k,K?rX?? |XcSh???Z????]&I?,)??*??g?7??Y????poB?G2P????l??i?/$?k???%?,Z#9???F????5-}???m?5????(??&c?Zc?c!Z?03?Ni?5S??????)?v?????r?R????9?@~$?[?????Os????+???d???Fk??M?????R???O????????^`?????v??|??|?4?s +k????)??f??a?K????I??w?5?L????r????BaM????i????????\K?i??m???bg??^????(??v?V!??i?????????k?????d???2v??? ?l?k??9?%Z?[@??? ??7?R?/:#v?W61|:??H??\?d?ho8z?Ie3s?????Zb?I??9?M`uc at a??0K??tiA? ?}8F%???e???????XJ?7n????????????S?a?)O???y?????k4O??u0??z?Y?b?f???Y??Z???[?3.?*y??>?!c??7h1???0]2??????? ??L<[?4 ?4N??&?????}:?????5/J????=??W'L +r JI??0?cP?????8?y???????"-t?y{??Te?65B?=?h?f??????\?Z?d?z>???l??O??fT?? +C5J?5????I?r?F&{????? +? +8m?`s?s?CC?Z?MV???m?v??N??;? +QC9=?e.?`[?%?x?S?I:&???#?u???\?,*??()??????,???m???G???Wy??:ky????F????R?N?5??py-Xc +?'????H????7`M?i?=o?2????????k??|?Vv?5?L?????\*?0???Q??h??D?? k"CV?(????&eg5iI??j??? VcM7M??/e????l?&>n)?4?l?^;A??bDa?7VM??jR???l?u?????r???7V?q??y??-?????o??FC?W?N?s??????5~j???:?D? }?dGY'N??Q?#?????`?????0?rq?a1???I8?N7X??H?.7??2 ?3?g?{ ????A?W?W*{o?????]???;?g?????h?5?;?J ??3XcEiz??g???Z??~????HU????:q?k?zSM.?O????VC????????? k,O??? ?k?H?k??{%Ll?):??Lv6X????*?a??k?Ua?????@?V??d?+ _|?Xt???D???XM??????]?}??n7=?JX???n^JN.+Y???:?\Yt?xM???o??????2????7??I?3??????ZO????z!???J!?u~B)?e?L]?$?????b?N??g??ESY4?hMiq??? u???3???VH??? ? Z?#RV?.{??D????<,2???,F?1?b???iOX????????p? +???j:???F?#?? ??/??X???qLj??iUo??eam?,???(?????mB??????e??Q7??c??(l?Jk??t?{? ? <?K??i???^??Q???[??????;?g??>?^N??? +?UlI0?x?5??z??k?k???W???i???W?8? +l?|8?qx???t?V??? ++???lo????????\?FrR?S`?r??????V???l?}?zCF?P????'?c?????????XF???????? +mur7-`??????\[??N_????H?M???&?6^?I?????k???5????>]>?0`c}??W:???)T?A%?Y? p??m1]???VrS?W???:n?@s9??cs?o??mr|????\?69??????&6????d??]???????b#??xK?4?,??vh?K4??1??r?EHj?|??? ??L)?JE5?????t? ???????g???h`?????G???J ??VW)?0?Z????{?,???w??'???????Ji????7lc??@'%?vR??6??? ?? +_*?M?????????R?W"?@_f?}?"? ?&%9?6{?s?qh?[??t??Z???q???m?????2??j??39A??F?r??Wl??u?lc??P??????Ox??8p?Pt?S?Ai,?<z???6>)J?FViG +|???7?6?q???Xn?Jm???X?Cv??????0N?????N?????/-??_??CP?6k#?\????????sZa??????g}?i_s?t>? ?0?i?f>]??pn#}. F8??)?6??\J`??>?????????6???yA}Y??LF??7???PaJ ??e????Lw??W ?G??bt??p +?t (\,:???????????V3p4?-?)w at 4???7????b ????2?z?????S??????W??g???i?^??? +?N???C?????T2???9B2.?V?4d???????`?e1??~rb?Z???n5?4?????C??Y?rx^?/g???=:??? ? +????I??P\L?I??%`????2^?A?#??3?zZ???q??9?????: ????.????N?6??????????P??X?h???[??ID????a????????/??????Z??Vg ?5??????D???dp?r ????? ????+???3G?5???p?{??U_aBQ??5??\????\c???kr?i??5?d??X?:B +?q?s^c?@o????lG??_??#7x?#k???A^s?S????_?v???k???>??ebX`????d] v.????0?/?S????)d_sM3Z???& +????H?????d/? ?N7Z???????????^?b0jb??f???{?????9>{??}????5y????Rm ?8?q??p?J)??v?_?~[s]z?(?I?0?+??f??J??)?l?7????? ?X?[?&?O?5?Jg +????yMd?X.?z?????x?yx??j:??S?????? +??H????u???? +uR^?/'?gA9e???????7???: + at SG1a'??V?????)?{?Y?9????]????=)}?I??,Z3?Fg???= ???x?}????@i?T:???@?eM]r ?%??p??%?oQ???m??????Z??(??,PA?????mr?E?+LfD????d?P ?????0??( +?,?m???@%?????????F ??I?f?????????7?6Hh? +????l??w?5?/C??P??????E??????i??>Z9?p[??Q? M.{??S?m"?i?2Q?R?(??p,/=_?}??I???HSJ}n??F?Vohz/'*n?????G&?#??G4j??s??????????R???ahh{???Y?o}?K??!?(0hJ??4 +?-????f??????????????55)?????????p?:h??X??y??????m,?z1 ?????6 +"?=bkRY?????6>i?H ??u)}!??Fd?+O???? '??(???? +????l"???????????T?Gn??g$??e}?|???M??????????/~Y:?E6Z???hB?????????????????l?y?m??$O???oX?z???H???6.B?Y?vx?????gGx????3?X?b0?????]????G? ???A?+?i?f?bC?Zk??????????I????f??@b3???"?Qr????1?1T??Gn??2?{Arj!H????W M??*??E?8?b4?,?Y??u0 G+?????F?????J?????T#???????|??/?? ?a?`?????+?Z1n:,yY?"U??\pU??r8?}\???/.?>?d ?????`?e1??nrH?<}?`?L???7????tDsy?? K?`U8???????K?m??:C[M????W??]?hT?????>W?,yHe????>Z?zcdobfi???????>? +???????????i?/?(???,O;?~??3??}?M?J6CZ4????? +M????4z?y?_?X?$??????K?C?d??f?W????U?m???g??}<+?? ????J?0?E???"???^?N??}??????v????R??w????x???c?????? ??\?6?3????Xn:x +???N+?Q2?h?3n?L???d?s???2?B#M5 +3????sd4?q?F?~?hK m?????m??????((C?Q???&???=i??6x?lq ?f?qh?W}?y(]??n?1???OK??QJ $??@i?)]??@ ???z? ????t$?????NC??e?#VF??g???V?vx???~~u??? ? c +????h?[??dbV????}}v?????????????@E??+P<:?W5~s}P; ????t? R#_???R6??8??PHM?Jj?@?)???? ????QR?y?FRcM+??H??\???h??j\????pU???Rd5?>W%-?k.?[?5f????u?I/Q?k??MW 5)?v??? ?phx??~?????[K{?7~?(|?X????2 +u?n??+??? ?Fu??P?a}???J?]?G?B"??0Xi??????ci??)_?&??x??4E?~?Wz??Lx?dj?-??k2?Aw ???????9? ?M????& ??y?CD??LK?????a])?- T?k??"r? ??C?.{?A?f? +a>P*?Q?K?c???TC?uH???0G7??>.??????R???T?c??z????~?@???????? ???x?A& f?yY??#K; +t8:?????&[? ???Y7????H?? ????;S?? +?P7'2??U?? 7???????u???????z +%?m ?)?%]&?9????% ?N?????y?$?wT?d"HBURHs*??t"E! HqTP??? +X??`b"?wA q2]OA???1V?MtJ~?1?GJn?????D?%?L???f??l?l??Q??_??l????G49???hHwDvQ? ??9???fD??Y?h??#?4?!A?zj?0n7?hU%^??#N?????k +??pi?-????P?a??!C-f??6??? ?x?Qd????`?`????Q?*q???0?s?IP?K,???????K??????Lf?? +??hk????11???C/V??h?lH#?"?J*??P|?`S@???71????j +?}n}?>H?R?&?F?T?? ?+}8?9?P?x???d?h???c?a?G????N??Z;?y>?'8?-6vLk&[5w\??J?7?iCr]?&??T6ZJ???V@??1?E??3K????$h??q K??!T???$?!,8?????f ?Nz??zGzd???|C?f(??X??? ??????^?7d???w?p??]???'G? +?W?P???:???kM???r??X?cUG?'wi +???w?Oi?\????r!??b^G?<\7??@?? +o?Q?\??^g?X??l??? v??J?4???v8?????Bzux??/`wR?E????I?u?Bsd|?K??v?-?"??n? +???? 'h?ZAp6??m?U???ppPal?)"?N???R8???qr???,\fJ??N? +^?{??? +w\??m?N,Kb?(x|??? :?? +??F[N???fp??g?{<`????|?? i=Rq??F0L??K?|eq???L??'???H?K`M9?r?, +0???>L?????AY????##)?,?8!c-?,??????e??????'@?3Z?ht?Dk.?*YtG?J??t?#s??$!E"???o?B?V?R?X?#???i>!???|? ++??{I?F_???9?0? ?N???Q[?????J???s? ??S?T?j??`+* ?Ns0? ?bw(3?C:??P? X)??`*? p+?(p??*l??|B??%H?}x??P??6???,?1??t=E?B*????M4??? +dHo?????D?%% + +?????3???? hHB??a?b???gt??????i?G??`kc???!9? X#?H0??1??=??6???;J?h?X?[y ??[?L.??QU???au???????l`??2|?bR/iK???Q?????*;??z.x$?bJ+!)?q: 4?? +4z?1?*4?;?2 at C?$:%?Z??p>4??le ?pp????V?o_!>#?t??????O"?,?|?52BU?B?N????.h?i??:?30??m??xce"?c????B?k?C;??>? -?d?????4?36?? S?4??g_'y|f? +>p?0?^g=pB??? +Q????g?&Ou?@zl?=???????u???o*N????5s"t??7 +???X#?A?!g?? ??:??.??80?6?N ??w??????E_??????????????'????????r\li ??????Is7???:?w_X????X????????????}??????/??w?'????5???@?!]??????g???????A-??????????$???i? ^???nv?Z4??????/|??a?./? ??i?,%L?w??j????X????Kpy????SW??%xu?9?nW????{?S??u???????-r?fC??_????0?h?H????-:??P?d????EL????m?>??U????0?l(HG??! ?????3Ue?g}g????~?N??O???????n??j?8`??m?????????2?IF?6?????U?-HMTV?he??????.????%%????????|??E?M&????x?/>Uu???*?,??4u???z? ?a?6???}{9????????%~>??>??]?p?.?ng???c?\?????;??:??g +6?f?]Q???J9?????!?9,????g?S:???_8?C??????=4??<_?I +? z?k??\???????y??????6?k???- +.(?;?????????h??W?!??1"?B,g???j????uc;\,?`?P??i????LC????f?m=?!?e?uMJ??CE? ???E=+2 ??T???9?@_w????( +g8?????H?????~???W?t????????h??/ Q?????n?U??r???x?-??U?(< ??xt&O???l???????6X?yL!??|?????SGd???u?????J?j?%M}Xb?r??T??y-??O?????O192???>u?c??/q?c?*?.Q]???{!A?W?Kpy8???t-???v?? o???????n)iC%M??F:??@+m ???Q????4?S&;p?-??????i +??????/:??????bF8s??"u|??us????? @?z????????H???.??b?????^+|a?2?$y??]??4??? ???{??G>????? ???h?'?R#gw?% )a?]Y?"?p?e ????`W?|?-6?Y?????n??b???y}???@Q?x????J??ls???rE7_VAs?*?-)?*??V??{O??}?? +u4?Uo}??xi? O???????C?-}*?z{????? ?&F$kC??A?c]???U???;)j??Rf?,?^?G}???vh???U? +S????A?)??;b??t???9??n?F????G???~?M5?? ?????????_???.? + +endstream +endobj +70 0 obj<>stream +H???Mn?0??=?.?)+hP ?? A?.\I?zKSc?E???b}?.z?^!?d;??"??x3??????YpB6?deJ????JT]?????]?????p??q+w??kzV?CZ? +Zm?"?T?vE?C?S2?`S???????QH2?'?'?????????)???}?.?/??i1*??+8????'?? +??y???gY+???A????>?c)? ??Nz?PYC?X??Kz??G??`?E??D???????{?/&?$????@?o????|("???v??????? K?l??Gn?????????]?1^X?BN>??z?&?U?!???,??$???3jT?aj=?x` f +-???!?a-?i?gi?NO??zl?????K4??~????`?V???? ?"?? + +endstream +endobj +71 0 obj<> +endobj +72 0 obj<> +endobj +73 0 obj<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +74 0 obj<>stream +H??W?n??r?????`j??a7/M??c??????e???l???%)????wR???")???<&??[???S????~???[???C?I?i?O'??|??w??????9???b=?X??????n????????????????e??z?E +???'?fq??????c;?^???~.????e?????s:?s???????dC*?z?{??r?" ????`??y2?B?1??????.?Ov???}?d(??<$??P????)?k?9s#???V?''ogs???Rw??xq??=J?&?c???'?5????y?vuC?S??*???c??E???8???.????hc?p??U???&+?.?+??7p?????j5?2q????P?:1j<?t??p???????????eJ?? ???D?M????hw??:???O( M?Ti?2%? H???W?????^e?n? 3Cu??????.?9????yEZ??R???m??????A???????U?B?H?6?C?t|"(?.W?D/C? )?1?WD?????A?M??3k?#AB??4^??????;u?c????k???`q!1VN??6I???*?3L- +???d???.1???#???^???I?l ????^+?????}?,m???*+???>W??w?{???????Y9? _Vy???D&????>Bx??.|???Ve???????+~??u^Ywz.?.? j??z??V>????????^??U?t?$??+????#*??)??????7?!K??3?????,??R????bc?Z???[???????_?&?ftS?.Zl?;?^?WS???.??]??>??wr???]L?? ? ??tFq??????+???WsKS8??z???a?O???K?????3Z/?????(M????G? 7 {????sb?N???]?V?K?v[??^?] +?6???K??Gu@???g???YRY???S??U??eM?z??T?,?h|?????????b???? e8x#??_?pz_?m?_???]???)B??2y??Mi$??sV??ie???!??G?y??R??!?????2?K'?M??A??Q???nj?u =T?? +??A}(eTV???^#b??{~?M?5=?|?E??b?HJ;H???f3.?ga?????\m:???n?zS-?b?~J????^ {i????%?????k????@"??X1?C? @/#?????@? ?v??? +?1jbi??s???????????*?k???D?3?c?mZ??"?y&? ?h?????? i?I??????????????'???Xh???F[??3?R??Z???I??7??A????|?????n*8???(B?#O??s??+^n??bc?6 (d?o? ??5?B{?v=_o?cM?`?/?=???K?c ?????B??^?Z????f? +??o?@v?j???Y???w?????q_?m?{lS?^??vH ????????w$f?/H#??=?@?9(????????(hE???qy????????+_?t~??dG?-,K_?PC?????N?????(?J?? +N???%???????3/?(?]W?P d???,???W??W????eB?l ,H?w=_?D????!???c????#????o??U??????r???~? }?_!?1??+?2?v#?2??????????z?~4~N????m?A????????vV??a?$8< +???>stream +H?lVkp?????1???-y.#)1?aH?aL? iB????X?Y?,???k2L(?0?N? 3%?5?i'PH?B3<&????G.$%?[b3?3n?]????+i???#?s??????w?DSC?4 +?Z???f?????C??i4*??????7?P??/??V??f?*??(??rRs?z? +j?L?Q?QQg? ?u?K??????Kst1=?~?^J??????V???? ???}??I????????)L5S?,c?d?0!?=?W?)??9??`?1_1??? +l9;?]??b??Y?=?eO???c?????+g??In +g?fr??????????????A?(?1w????rq???@5??`5x4'@ ?? +p<C?_?O?????o?[?????????????gOTE?f??????z?v?JP?n5Mx{0?f@?0?&9 ??0m?$??ie?????zLRk???l??idV????I?d{S"??1?*V??tHn?B)K???-??l*???p?|Y???=?hx?N9J? +x?l?s?A?n8~z?? +?C?? d%}?Z#A???pH ???u?jg(?hSP???9`$???Eu+ni *?Hpw????i?m--?T?????.???umd?@??V?(?vd??:?Qs???L# +6{?]??????[%?????1??????C?,? +[?.`???8?)??>?l?bn?? +p P ??8N?{???????V???/??>?=?A??????&_???R???????z???7 ??-,j)??o(?_?I???dy?%?J?JFJ?JkK?.????*{??h??2$?s?5?o????Y?o??(??`*@???C++?????V6V^??_?7?????W???*?VG??m??]????U??:-??W:.]????7u???;?o???Fw?????4a%?CL?C??????u&L???.??S?m?? +`r?????'Aq??:N??q??s??8$>8?jy ?8??4zK?? +?V*???6?A??9??J?:I??L_??? +?n+????h?4zM??n?#?0?ck?%????????p&???h>7r??[ z:%p??? ???3 ???????????x?#?V? +C?z?IaNw?C??X.@???Vw8?t?|??C8 ??v???n???h???????#??3.?o????Z6???;?????|,8???????\?>?? +???s???? ???Rit/i?H'??Cx?!K?;?W|???H??P???Fb?p?Lq???D?&?QB??x?????HnK\+?IWE\?'?H??X?w???)???J?????"?{?X???Z+ y?n??S????l?pt?h?????j?iF?????? +g???fo at 2iQ??'1t3?=??????1?IS?"?~????KT? ??@j?????]????ic??C???]??C????< +=?r9l????}&!J???????????.????]??s?????QH&???8?????`???j??0?zF??!?q???00o?h?????d,???p?cB?,??"????X?#X?PviC???E?z??E???????`?7b???????L?_????PA:.??C{,^F???????!? +?F?u?h???]|? ?? ???J7??g?}C"+H????t??0?Q??????mS?U??? Y(-S ?/I? ???N??^XJ???!?????nN??Uy???????|????x54P?a??????x??o +&??m!??lpz????r?)/=z??????TY^?????=1?1??LO?????;%w?0???1D????} k????#_T?*??n}??**??^,.???BUZfZZRiz???S????[C???$??+2?}???c?"Z*?I????????t?eR8??N??g??????9K?g/?^???}?+???xNJ?? ?*?O?8u*P?+?6?[???????x?????/?W<??T?? %?? +^?d?;????4????)????'>??*? Yu;3?r7D6????B?`?X +??ZP:V!?8L ++a?pC?+v?%?? L:?YX?[??+?N???o?O*???>_?v;??J|m9?C?=b??$|E??d?-?D????39w?? /??? + +(?,FQ??v+?C??? +??&???Ik??]??.xX???H3?a??s???SV3F?j?x?]?+{???????P ? +???3????a?1??(Ky???~????j6??????6.V?g??"k??aO?1???!?)??a?Y2?SP?9~'O??\?b?.GJ?x??C] AP.h?e?b?e at W?0????s??:?u????????O????????z???????{8?Y?y?? +? +??2l%t?????bH???8?L?|?W??Qx=&^??p ^???[`?{6??)??? +T?F????6?2*???/?`? ~?z~Y???r?q?~???????O??H???"??]?6?%is,???K?_?)r?????D? +???? k???Gr O?P?}T??|?r"?%"#????,?6?wLT??+??X???? ?X?;?@??*?? +??e +??A???X?6g??R*???Y???0y??y5Q???L???>XQ},&??P?'??A?0????K?{??D???;cb????????OrU9?e??D?f??d? +?&>?X??DU\Rt??H&Z61?,R78bq?C????;?-{?????N7?C???:??,2???v?5?%???r?'#??????[z??????1?%??q?q?"?C??Z????q?I +??xOn?|??)?e??Z?@0?qo??j???m? +1|????n?"?]?-?]?$/?????m?r?+???W????? N-???????????#owF??_??]??xkG???K??y??{=6??6O?`?X??`?|?????????|?Uf_6?? ????????=G??\?f?0????,UVVn?^???-3K????Og?;jK ?-*?-W???DB}?1??S??O???O??G?f?U?cW???m7?V??:[???j?h?R?Vs?[?:??7nR?.??77???8?k?? ?X7????=(???wY??????8wo?? ?'Pl??m??3?bi???#?tp????J??+P1?L????(?DA??;lx ??????V?#E?s???~?gm???9??=?9????}???z?????V>M??v2|????^??'?5[???;??:????E????LV?????;f ]??K??4E8cU?_?.????~??:jL??E}??&}??E???????1???l[????\?{ C????W??=???????j???^+L???m?Nc???n???8???I??xp+?t?C:?-$J????"+?? +?????*?{?k?=??)z??WW'? ? +??5???j ??? ? ??|\e?(??WS??????????V???/,??v???0`??E???j??A??C?C1???>K????) ?M? ?????_I ??s??,?z??????????v???#S8???H+JL??~qN???????7??m????????,?4?????$^??? ??0V??????8??V0??O4?v?s?JK?e?1?c?p/?y?;???%????bEIn?Gz4}??"l}??? ?????c!??(`??h8U???Fa??Gy??-??0?D??`?X?)*T?6??t??~?O?/?????3E??? +??QBK???&??4? ?(?'??f??^??>?A?j??%??7?2bD?w?@??????m????jZcp???yo?? +?:9?????If? ??W????????f??2>l????0?.?v???? v????? '?+`??????E??1?_S?P?@???/?)C(??L?VYw?1?z? 5_?8q?:D?C??t?y???h t??cF'????#b??g????s????a??>??G?O?rg"?(G?y?)b??e??:???F?C ??7?????tulRFn????[??B?]+%k#7?; ?V?k????h??(?J?%_?????2?D!??????rX??????'?????9??l???A???C?/'??pGe??-????????O?/???&`?????????\??;P at .o??ul~????k$???;??( ??./?????i????hE]lfma????38~E?b_??%]??????"?~?.??n??Z??I$A??`u??P?B?a????? +??q?\???????h??????y????9??y??????8?]n????3??p??:??u ???> +endobj +77 0 obj<>stream +H?T?1??0 ??? +?-??C?`(-zW.?????E6?3????? 7X????'?S}??Wv???%?8??5?;KP?`?/5W?+"??4?kjTU&??9?`?q??[_l?-u?????hF??G +???`????????D???m?????`gp?J#+?????$ ????x?O?~?????Y$?^??FK=2????s???.??????e EgjI + +endstream +endobj +78 0 obj<> +endobj +79 0 obj<> +endobj +80 0 obj<>/C[1 1 1]/H/I/Border[0 0 0]/Type/Annot>> +endobj +81 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +82 0 obj<>stream +H?|W?r?}?G0x???t??q?Aqd;?XT?p?RR3 +??Y?YD2?o?]??r?X??n?????]????J???lV?Y]???^?????Wo~+??????He????~&q?r?fy(T???W??p?Q??????*P"]o???L?q?)?,,2y) <|?????????~?????o+?R ^??????72-?8O?2?'7|8????: +E????#N?a??v???M??q-?P?G?[-???? ???R&0??sz?L[N?v?L????E?M?`????"?rD? ?8.?????i?(?(?????31{&D??s??U?4tY???n?? +???<^mD(?X????????L?T8?G_?2?e3k?b&?~O+a?'x?&o??|??Z???Y?w???? \ ??qCFH?t?h??????]X??i????6?z????${3 ??'p????b?????vFy?^????2?'u???5?P??????k_y??g????7??;72T*???"?5wh??0?????*'?c??0?V?`zj?s?p*gE??yYK?"?7]?Y??dJ-?xa?-D?2 ???r%f????fNA??d???m9??4????sy?nlk?p?$y?w\.'??>????t??w???i??i?ZEi? ???VH3???Z?0??y?????;?e6?,,?p???????^????-=??3??? ;?~?[!?m???aJ?UB?6*L????qb?B??m[???h? ?a`K?/??????K?d ???A&c??B??=???? t???gU??'`?gx??% }???~z??U???&>O??a??F?(??????n????A???{t? +P??`K K)??i?tK?N??G?TB?v?????Y??????DC/Pda??????y??$Z?.MS?9?gb?h??b?0???d??V??*t?R??????????b???dT?X?2?\.@?J?????I??D{v?o<_?e?N|???x?&??????1?eI?i?????P?'R5E??\?????uF??b??*?? W9m?>???M?5??,P ??T??????w???2$B?/?L"W?(?e?4l?*?]e???????I$??'?rF???s??gr?+?_ +???4????L?l?NJ??0 88*@A?? _?N?w? ??7Z]?LZ???3J?f????G{?:QV?4?C???&???|r??^??6)NA \?Q??AO?p??Ig?W??{???????x?s???}?jjM????????_??a+Nx?qAFY?? ??(?0X??Y?v??h?R??75N H?? ??uA????()?_H??#?$wv?l???? 6nI??@X???A?yY?k?@?|?0?BF??+???!?$??M??)???S?v(???H???oL??;;?? ???P?h??v'^p? _4????_???td???????Z??e?[?h??}?:??b??c?{??>x???OGj?EN????5?$???y??7(?]??"E?i;7?:??;G??r??is????>?? ?v0???;EH???????X ????3?????,????E????F???(????????3g??5? *???LW?k?(????azN???R[? bv p?vWS?+???!w??Z??????B??1?>???J"??T??2??>9??J??????'?A?3???????&D??????x?sIZ????}V\??{?????b?Iu??-&YI?Cf??x???a3??!G?b???n??}?6v?U?p???y??)??F???B?P?9??u???2??6o??YffA?-3??P??0+???\??H???1?#?#\????e???3?????0?I?*???uU????p^?R6?.={?????? -b>`?^????{????+?? K?E????(??S??NV *38&?5b?5?yD??E??l???? ???4??h??|$?x? ??#P????<??A?Up?4???b???`H!? ??W??S???l?U~ %{?!? +'?/v?l_y&]u8?J%;8?n??_?X????????pq?8 ???<S??oXZ?eU??5j???+X"???????N???0N??n4i??/?&j ???\X??????I????F???:?'???V_??> ?????$F????S??A??1eu?Y??K?$????XL%1*?; ]????x??fIh???0?%a???ve?c ??????!??????x??w)????3?GRtN??? ?????????/'? +??& + +endstream +endobj +83 0 obj<> +endobj +84 0 obj<>/C[1 1 1]/H/I/Border[0 0 0]/Type/Annot>> +endobj +85 0 obj<>/C[1 1 1]/H/I/Border[0 0 0]/Type/Annot>> +endobj +86 0 obj<>/C[1 1 1]/H/I/Border[0 0 0]/Type/Annot>> +endobj +87 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> +endobj +88 0 obj<>stream +H??W?R?H}?Gl?i?? ?E*?76b?1t3??b?tL?>Y +?x$??????????y??,?|?t???R]O?k?q?Pb???>\????????[?;>?WYU~???k??:-?A?%%,????5<6????G gQ?) 8j???I??c?dU??cLD??????d3???4?l?!l?3EG???^)??D#???.}???,c????j??0?????????"X` +???????A_??E?????p?Cc??c????3??????~g??????e"B?????@?I??????? ~??0?]?w ?n??0?o?[M?5?K!Y???n +? + ? ?Wa?? 7???u??uE??0j?x:?^ _?4gg?G??A??????I??h?>???pj'Wi^Y?p??u????????`KB???.s???? +??i?????}????E?????O?????Y]??]F?h?hK` +?9?d9+)xx???gb?d?I?C??P???{%??n }?h???OO d/?AH?c)?}?$?A?5???|&6???5?? ????Cz$Y;?}??s?|?@?B{#?^??[f?W!?0? +$?? +"]??x?"???e??V%??6o?) p?>I??????m???g???INkj?] V??w ?DE??nT?4{J^&??P????m?} r?8#?^?L?uy?G?,??aG???=????b?^?v?p????w??f?b???2?)X?Z???O?w]??;?3?????a??j1 ???F????HJC} 7?=M e+]?;U1????RB4^.H???kr?E?????T??/w?B???????if +8???.p Y-\??O?b?g??'?+??GU~A|$VDB?^n? >?>X +?O?,??C?A???V|!0?A??!????0o?&??VaD??0t?e?P??y?<????.??2?8?????????????NVM?[?v?? +f??EdG +????l[%)f????D???{?r?e_??v?????52 ??????Xj?????80X<\{+6e?%/??S?"?{gE?T? G?G?~?v?"?*?~??'S?~ +?c???? ????='? +,???~v??'%?Jy????d??&>?`/z??pd?`}?0?B"???C]9c??M??T??To8F??Fl#FE?]}??N??? +???????w?1l?????R??^?g???Pm%d??=??@!P????????? "?#???L??????L5l????[ +???`@I?????L??>?;p?Yn2?X?p?l???4xTs?+????????_?{?^?/??H| @??M????I?u}k?c???sU????(?Y??.?n?c(U??Vv?6???? + 6]???s5?^????"?y???*{???KR?.*???==)}Usc@?{?>??G^-??0C???wx???h?H?y??Z??!Y?=??K?h?`??I???C?g.m??B??!??2Y&e> ;?Lls????7???B?w???`w???*??KBs#??R?w]?JXc???,?G??z?N?!?J\?W?C +?&?(?? +?89b+? p)+pK??`{??????}??`a-?_????S??#l?v9($? ?'??a???O??|??N??'???JB??????Q?PJ???"??j?C?X?h{?????????"0sR[?q???:??!?{??\?q????U?>d??F?}a9h??h???J?6???`8m?RzPt?C?Q???@)??(???w????9 +?P-J?/?9?a??88`??1??hQ +h????_? ?}H????i????1?0i???}?B???O?E?0z?:]?u? +???O??e??`???????Dr? +aj???d)?????J?k????%?Zvt??z??e???kT????{U?????}Cp??$)?4V????]? G???h??`=?=???PoP?| +P???jIn??{$?g_?hY??)Z?$;I???T?? +??"?Y???_w? :+??`????s?2??!???d?n?9:??$fL??????Z?0':?=q??&Y???%U ?W?w?K??????s|?hj???>????p?-??.k:?$??2q????????J??R!?0?=?W??o ?X!??`???? ??1~?0?0??????? ?.YVV%?????d?????C?4?&??"?/????????S#??Ly????'??UH???q?4?$??t???%,=D|w?Og(??U???????)???8C??0?? +? h??i?\?X??c????/]??1???QT?g[?:?a?I??b???????? +c?a?? &{??I??=???Tc???PI?L??L?3?2?,y??h???5?O?E??? ?t ME???d5????????Y??m????O??JY!?A?????? +yiB? u BO???;?'??ZA??M ;D5?I???)? +jB^|?"????????b??X????\J;+?M????? ?1???6??Q?x?Q?E???2?*?u??q.? +3x???e? +i?%???~A?(0C??P??[????9??Q??'PU????IWK?N?: {?;?,???8G?Q?s?????tgy?n"??G7$???????#J??]?????3?}???N??????(D??bd?D??n??U=9Y?$?A?7???9?o??l??????????=??&????/w> ?H+???v1????Y?W[&?????????a?U??'f? ?!??????n?mh???gF? +l????>K?n?-&?? O^p????)?????e?{???X?L5????`???'T??y@???6????a1r?? |qZf3?W?( h??????1?!????x[????9 +?w?v?8???????L ?(w????????(eq???]?w?? ?]?????w(??? + +endstream +endobj +89 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +90 0 obj[/Indexed/DeviceRGB 255 89 0 R] +endobj +91 0 obj<> +endobj +92 0 obj[/Indexed/DeviceRGB 255 93 0 R] +endobj +93 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +94 0 obj<>stream +H?|TiTS??%?K??? +?o??<?@?*(*"?rD???`DQ h at fP? ?????O-8??:????\???z????O?????????;?;k?? ,-???Q???^? +????3/?xKfhe???d#A3??S?'+6?=?47?N`?a?8?6[?Z????'z?~A?S&????0h?|?9I?%?$;=C?Ng#R5:?F??P&y??? +???t6Z???e??t???Y??S$)? +] +?Y?F?R5?Z%;g.?HM???X????1!]??R?T?t??s"?4??`??0?b'-??????N?+?j????-.????m???F XI?*?.??D]?????k? ???????(?Q?m?l?G?])?o?3a?1[??b,6v???v?v??:????>???*jX2K?)?%?.??s??p??I_??:?w|M??zK??H?j???j ??y)??c?l?xl?:g?#..?.o]??i??&?j?8?8???C??????G??????s< ?~???R?|??????y?x?z???9???g???????w???????_?_???? +(??`??).Sj?&Lm??tZ} X4!???)?N? 3?f??\4?U???![f??fO??l??9?s:C%?B???> +}?6?'?Fs?x?? ??9???-??8???q??vn??}???.q7?{?c?G????????rB>Zn/??]???y?????????H?w{F!-??????W?????[??s??hL???r(?q?/?M4??a??/????x_F?????? ????Z?A?????????v?A?vk?Z??>?Q??,????+??Yd?,???????c??a???W??b3?J$t?????u?5y2??!???)m?Z?,??,}o????????4?????-?5?=?K?{???*????-?3???^P?????????}?Y????Y? ?i6?b?|P?E?X?H???????,??v?????(?/??????eL|_ +?*?(?? X^yE?U??? + Fc???\? ?hd?Q4??~??'G?.=c?-GW??^8?v?Kf?? r3?U????????????{?M?v???????X???????#? [[???? ????1e1b0??> ?? ???&4H?Z??! +h#1?(??n ++E???C? +?? ?v????H?f??X;??????z:???j?.E???(????q???/B?GojX??l??????????Z??:???? _??]^C? j?MA??S"??@3?-LB?H?????r???'(????h???9??;?d?9 t??[?m??k??T60??????? +E?"$S???o7Y]???>`L)*?+3?3l??M,???(6?-?0?bH????Z???????Jb [?m=?O?X?z??????(?+,?U???L??@?V??cO??ft???2??? +???????{??A???flv? *:*QQw?ns???????G?s?????SU??{??n}?{?)?????-K'??4?=??>??7\?MB?9?b?? ?a????V ????z?B7M??5???6??^?F n?L5?????yOC?$I?????;???)????K????+5??&/?r?T???3 +???[??_?m??4?u >??,AAE? +44?k$??F????~#?;H??cy? +?H?i3?&??T?I?$??.????~'x?'?T?',???@??T$#???x??1_-C?????c??@\?,?y???/????r.?Va?Ee???f???,??'d?8?j?^?U????*?? ,? +g????V??????D?6?(?????? ?RIn +;?>?I??O?5???1??3?p$?h????.??w??$?a??vI????r???? ;"?E????wv^^?M{???_20??[9?????A?W????/?h:?????q??x???U?U?????Yj?cS?]F n??????V?- ?Fn??_>6?Xcd?,?\????Px?:]???|#V??20????gh^?&??}4?g????k k?HA?_??w`?????0??4bW?]?? +??????? +?rx????? ??#??*{??w?????*Y?B?{???????PTE?WD???O?M +????yH??}?"/G???Y?E??S?l?z??Y??G +????-|????h5 +?~8 +?!w ?&(??[m??????q???H?Mr2??(??KX? ???-?y?6S{???L?7?a?? ????x?@???fz?Is8????? ?????Y?aL|Z?>?S"? ?(o??N?Kw??????Jx?ym?^??{?2Y #S$J?????w`?+0 at p??p??????1??V(7;???"?ALx???Z??Qj?5?l0Z@?f|0 +(?i75?`+/>???z??+=d??y??????? +??U(Y?:T????f??iON?Epb?,]?????.??? ' L??????"???4?????8a??@?k???f? ??e?}??I3(??I??? ]-?O??z@???D?&5,L?H???CY??LUl?\??????:??~y?}'??? ?8??[?c^y?m"{??? +??????* +??J?????L?U^??g^?B0????F +&????????H?dk?A???n?n6?ieSV???e??8?kc2???w?????LU????????????s?k?e?I ???r??[m< ???z???EK@?~=O??&ZoI7`+??%-? $??P?i +?Ilj?~??8P?M???gL8??w??4?????L??:?2Gh?*tW??i?7d$??bc8??4,Z-)/???Ia??-~x?0,??c*??v??_N~??????en?Kk|3r?? +??C?B2TC>l?U?2& ?~?M?????E??Y???=??R???????@???k??2*r??oi ????????j%XM??a2&???V?1hR? Tq"??Fl?u&E?????w????_???} +??L????(6'?f$c2?x?y???oX??x? +E?=???????|@3???d??[?J{??Rf?n?{%*?E?2qF;OF??f??????3w??(?H??L?3r??)Ry???.?d$[????/?p?98??????KX?_??g?????D?/?N???*D??? +O8?? ?C +??t?3???? ???TyIG???^?I?x?????C?R??u?D63/'/???c?U0?R?? +elK??????*?? ?-?*?'ls?3q@??<+!u?:QM<(?xP???Vb+???T????????lv{?~-?c' (?2???>?????? ?[??K? ~???B????8?,.???u??8&}Y?v2?m???tc'?\{???5?`O?????????dr???????g?????D?G#??`:ZD?+E?9?U?@M??^?'1?????5?????0M + hg??9??L?~??^Hy?l???J?l??sJ???5: +??B?A?h?(n?????????7??????XcS???d?????????F:?K???/u??]??/Y?/???dh??KW??D +?h????j?m??h7$??yz?L|??@`@?/C?????????????????:n rL????????67??N???&&????=h? ????????{???%s>???? +?W??,??|??82??#???&???OR%p??N=??????i?~0?z???3?o???F????Q??????|?!/X?Q?*~???d??}?!??^?$??)r?4??=??]??0?^???ef?w?)????u???I?s??#%O?w?.?:{????? >???.??????dRaN?$?0P??w????1Cx +7}$#??wC?E?"??)??6?>; e3?????5?c?J??J?0? qa?????&?Q?(?(x??4? +???!_?l.g??i???\q?4??+?(L3??????.???0F????? ?=?x?^h?p|>???P:H?????{x?? +\?d?K?2???????@=?%?? ^?/N(E??4?|*},??s???????&?6Z???Q????r8VQS????N*??????{8???E?7J????2iy +U?WZp??(HTp?????????^????l??*?(gt?T?E?:?8;/???????E,???????6??16Lo??????l"S8??? ?.]V?5?????U)L?+|BNS???t??u^X~????)3??????????f?C}vd?5???jy???ymD????%?R?? ?w??`9;(???%r??*?o*-??>?? ??OA?p??>?^???y???emH?t?j4?? +?5?pF5?%c??>????yNH????(,??,x??l???:???0?X?>?5a???od*?6?]?F?JC N ?a#j,v??i?E?e??????{Zf^; ?^?!<?2???F??? k?m?I/Q?-?E?&? +??D????EVV3~T????????????z??D?De??? J??;??R{?Qm_?Wm?'?'??v?F????R ????z??=??5?h?h???P???^X????R?v?A?b?7Z?[???`??#~?\|+\??x??b? ??g +4?@??????Z&?p?&xzq??????? ?n???A?v?? +?????u)G;?F^??$0?*???A????1??y?r?h*?N?#?*?YQRA"?:??????Vo????L? {?>f ????UU?l=? ???&?N} +?????vm#???? ??LL3?faqQ?(UPC?B?3??'`?O ?,?:?C??_?2?a???EP???O?;????4?Zy?*?J!S?s?b?E"Y??HVR?,./bM1??V?B,;???O?????f???y?w????} +%'N??????~??_ ??d0????]# S`?y?????????-Z\sHQ?L2????D??\. p?tj????R??P?K???R?-k??.?? ?z{?????t???#????%?????6????*??D?[??v_???????d?n?5|???rM?(??R +???&?[-N;1]:{??I????????S%<I}D{:=R.?&?v???{)\]B????n?~?d????5???o???aR&?:,??0Z??v?ms???n?=?u?M7,???????v?9?<lu????c?s^;???_P??K;?X?M/??pA?r???+??????#?K?lb?W??Y?t??? U????8?Q????LZ?!????p?M?=rQ?l'?8?J??*???3??n???>?'?A??Yn?>??-???????0????????????<1y69c??????????W?o??CCLK`?|Y,??^p??}?b?? ??(?'?/???? yj? Lm?z?6?p????6???`??**??*/?V?8|f??UI???p,?4 at o???JYyp5I%???AC???????,?f?S??4[ +F???!?ks??4?I????C[???hH4??H??/??U8?g??_??M? +7?????}?H????? h??????b9??=vo?????*?d?????;{?GFK????J??pK???U sK?? ??D9T????????^??BP???s?i[ ?2??T??Ikr???}V9????? +C +t?L??t_???E??*???Z??????R?4 +n??????f?Q???'"a?`[?O?`??O?????>?5???,???????|?c1zB? Z??:?6??beX?? ???~???r????:??/??M????<??j??2?E?"p??[K?Q??????oP LvV?I????3]??s??C@;?} ?F?i?Gq? ???????!?J?z??c1?* +v??U;U???????$SYv4G&N?o??bDf???Sw?A+-?=???????????}?????$?{??7??| +OR?????=H.????q?m????b\4L<_?:?>q??e?9 +?)2?yF??zDTF??2l9?SL??????? ??YQ??0????d +D?1??K,?PT?? +\?Kes@???1[f?rn?x5(.,}?????r?e#?!S???6?zUuz?,6&b?txb|?Z?P??"/C????????'?N?ar6?n2??1Z?^?(??? +???X`?8???(?,?d? +n?$?l??tGME???Dw?J??T<#G?( ? ?5030?0?????10?208rx ??????#?jm??????????[[[?????????????{???{N?_???? X>??RHis?????k ??~?!?Y?L???D~@?: ~?0??f6??? S????????? ?QX?n??c +??9?????8?6?I$+6???dBS???l??;Tiz\??????????????O?? ?ZF??P?-?P???R????4?BK???ex~"??????}h??V?t?.*???????z?)?13U-?TU?_?z ???C +1?}\??U ??S??&??q???|????w????X??.????e???????? +}?~s????????0H??Eb_? ? ??!m???8Uz-???Of&kci?"?nJ?P???=?Qeq4?????Bb?????+????(???0??&?d +?~0???9n-????^%?J?g??}2:On?G??jqF??? ?w(?????d|kn???b???GI[?????cP?F??.5??}?I?T^;d?u??4??H[EW??n??I]??b??F)???>9?t?t??dK??:?:>???d)?*?=??*?b???tY?)????V(? +B!?R???b?lt????????1??opV??La??&?W? ???9??????????Y?v?}? ?U?A'5?????h]?l6,?!bR???Q?w:??,7a{?K???ZKY +??;? e??????????}M7;??n?1S7?????"??!\?/xxA????;@? +???p??HC(?F?G^???_4???5LNoeq???n?gJ?S^?Q?q\?d?6.???]m;I??i????2? +L{v?~?*?\????E?YhA???_$???#x?????????4D@ ?f?n?Fs?$?,?c'`?g??T????G?E???o=?7`???g"8??^+Ql?????U I??gB?"??X??-???+.3??42"???}??a??= +J?6?????!?ioi????Iq??L>+&??ii??c!K?????Z??b-???????-?1??iB???3Q[YQYO?e?F??O?????=?8?\??# ?=B +?-?)?N??e??l?HjP0?????????????2?#?~d???o8???BX??'Bz?:w?x??3??!??#Ch???????6q\?$9&2????????x?7??ED?+??-???i???????J9??`?v??5t?????C{??E?~;v????J???????9??U?K?]?c5?????uX????? +B??O??x?^VC????????W?;????"???r??r??j6?u??,9E?j?????R??>?K*Ufo?A?mE^????????x??Mv???#?????$???????B4???qi{?fu????uCh??!?`,?,?g?V????RO? ??3??(b?6U??????]????*?????? ?????????B?q?H?->q??o`??Nx?GEq^?E2????2gt=???81?.QB???W?? ApY?]`ua???? ????P?,,("F???Zc?????)VN???:&?I??I????q?{?;?????_[?ZY????Rst??-E?PX??Z???{?? ?8?C?,.?0?F?G??0??s|~?]??"L???]OC2A?{????J?'??GZ&?~?)?????%???D?z!?w??+&0\)3?,?0N0?Q(?%|??W? az???ZYB?9\' +??7`??????Ek?M2?QZ?j???a??|?aA?*????4?v?{.HO3F????:n?uP`eFsy??????? +???K$?@? I?h??g7|b0???3>(=#";????????j???a?}w(_K.Z?????????*?xg?? +?T at J??????YgJJ +G36 dj(??1?|Ba???O??UB?????Fn????????Z??T???V`:^QW?[R?!??b?F\?? +`K???f?k?iak/Aq??????X??O???cM?6?@?E?7o?????????1????]?V???{?'J^,???6 im????????H??8K????X?wf//??Px? +??8?#??"????Z???R? ? ??Y???NU?/Zr????C?4]X?@???????U+?d?????9K6??~Z^???R??z???Rs???v:?IM????V??Xw?????r??U "]?4??????]??.???#a ?O?>^???^?/raI?A?At??DO???+foB;??????sH{,v??????T?Y^?Dm]y]?n??Zq^?D?_i??`9\?.P??????6??????5a?c?L?{?N?9^Vl(5 2???&?8H?A"??H?J?? I?\?:,oG#?cs???? ?I:s???c?9? ?6?aZ?J?-?Rk*?V?\???0?W?????;4?\?X?~?cw???VG?lxC?6????? ?G??????|)??_? +Z??`? I?M??O?? Q`?B:??`B??????~J??K?qs??? ?_????w???????6?????{?;?????j?i? +?????W????K??cYX?pel?Bl?/z-????0? ??V?V@??Qy?!D +?D0 ?L?U(d/pd??4?9G?????e???fK\???=??=?;??????U?.8??;? ?1(???i??? ??+?????w?V?n.?{?G???_C??I,z?{_W??^!??o?K,?????rP???? +??9???VB??_??*D?#!??????.?v?mj?m???MS??h???wX??_eR?????BQ???k%/K???Jd?K=?????UI?xj?`??;>Y???????)??2?=?5&?8?|l???Q?V??$????? h??!???cp??`?:b??9??? ??A?a#A???? +?A?dp??????)A5?,?a?? ;]B}?)????K?8oO?[?u?[s ??L?_4????F`Q?R?H>?C???v(??h???6d??5 ??a??Qhi?4N0???<Wd??l??????B?-??Q? + +endstream +endobj +95 0 obj<> +endobj +96 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +97 0 obj[/Indexed/DeviceRGB 255 96 0 R] +endobj +98 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +99 0 obj[/Indexed/DeviceRGB 255 98 0 R] +endobj +100 0 obj<> +endobj +101 0 obj<> +endobj +102 0 obj[/Indexed/DeviceRGB 255 105 0 R] +endobj +103 0 obj<>stream +H??S{XW??0 (??0?N"P ??`Y]??( ?? +!B$?P???>>[?Bmq)?R?+?y???VjUp???(???U??m}?a/?;a??v?????s???9?s???? AQ?u??f6??N?bcPv? ?.6??q????Og??3??{"~ ???2 DBB#$?GR?td-??#H!R????C"?"?H=??t ]H????^??? G_`]???MZ??Tb6??Y????M??}??? ????m*?XM????L?-Z??9W?????Fm?Yo?? +?V???h0ks'?? +'???6Y??FWLo6j9p??h?[?z???q?Y???b???3???'?????d?s +? :K?M??? ?NZ?_?/4n??-?? ??4Qg5?I??-?1e?e?[-V??,???Ph2k???0??Q6 ?????b????? +}?????s?<C"??>E+xn?J^?&??|l???]s?q????1??????o? ?1?????j?W?k?????????)?)????p???7????+??M ?v](?0??n??:??H+?B4$z???????:?b??K=[ o"??????x?y?%????????y?K33l????Oy?? ??????s?bI??Y??7??????+f???5?N)??T)?L +R??.??J??C2WY??TvT?&??<[5{????#??~v???!?q?y???/??3`q?1?6?p???w?????? E?@??9?s???????? +? ?Q?/????"QQ?8?x?4?IXt???W?e?=J????o???????U???TvU?j@??????jT?????'??z??S??????a???X?Bu?z?:]?V???S?s?0:?????K???*z-??7?Et)???K???????6??????'????}-s??m??=O1O???u$?:??Qc??ES?i?\?|?y-?N?n??}?&.F?Q(,[X? v??A?c????? ????4T????????????????~5??_???x3?o??]????????;??#nC?g>Y?8p????<~%???K??@~(???;`.??yY\ @??!?????c3??????O??d?7?2???a??#???(????A?'?CH?D??] +???`?$?(?Iw???{???C??d??R??n???????????????}???J  ~????wU@)????v???%[?ai??81??f_M??d???zjCN????zo??????I_n??|??????1?4?H??? ????`y{?Wq?Y?s5u????nSp????e??lX?z??v???,????r???j??? ??s?[??e?'??=N?P????][??J?A?? ???Jz:???m?fi?Z?? +??????|???'u????+J[+?\I?>??J???q c?l?}????U????'?a:?I?rLi?+r??????T?~]????NY 85??_9?4??~?c%?<2)|%?C? +???r8??OX&?????"??#N|??M!/??r ??J OzLe?/B???X??P? 9??}?z?Bz1???&?<; +;???}(?l B ??v??*|??`???z???8?n&a2L_ +?? +;X2?0$ ????f??U???? ??^?vrK98 +????????yy???????Z???????^`l?? ~Z?^ ?q???? ????k?OB?z?z??????X[???????D?W?v?D??v?????C???????67nf?j?`?w??Q???/pF??=?A?#?!?]????? +?M|????M??%??C??Ey:j?]p?qmg?????????)??9?`?{?"??A??=J6?;?????ulL^??Z!?j?w????%????_???d????%?|_??\??\Yt\J?[?/??=*??????`Tjw??? *?????Q??c??Q +????@\?">P ???D?? ????? E?`???zj14wN???o!??9?????7?????w??V?b?boK??????NU ? ? +:`&u?????6F?!*%?f?? Q???J??J????0????`??????]??a?5?45?H??p3?9]w????M?3??????/D?;-K ????????RG ? +Q64/??j?4??OC??AP??`#???/?????]?\}?D??3B????F?O??Y?????????l?=??]/??n\??????z??@?H4???9?W(??&Bw??Am?u?7LR?1J??"???H5Q?"??F?p????4?p??M?,??@???"C?u??????????????+H?* +?N_????G??R|@??@ * +???/j???4:??F2lO)??@ +??;?N?d%]J6W??U +?p????))J?^??iNNO????W,2 +??|? ?q?S +?[?V?j?+???s?|y?GR\??????????Dl????Q]??#9????DJ?`?4??`?3?p???[`$??0????^;mL?/?#c????? ?H?J??G??????S?r?t:???d??j?&"?% +#?4Fa# }?t ??q*??*????ye???3K8???d?r}o?? n`??Dt? +??l?????]????P'???@???[? ?#p?4????7?a[#????!_??6??@?}?u?H?|?%? +?52?????8????? ???S??F? +E,?oN???/d??D??0K5?,Qq'?O1????"I???s??Y?8?9 ?wo??????ncB?Z3?;??ZJ??x*?Z??f|>?K?-z??=H+CD?+?JwQ?r??wS??????+?? +???[?V????K??(??q??W??W?+???X?z???;X&v?&WQ?N?]???(RXC?`_EI??C???I??? ???B????L[?1?i/ +??#UH?#?W5??????R.F??h?.?]?(H??V ?????=ue&C???????iv?j?,B???????P?S?M??%iN5(c?+?s?? nh@?'??z/a??~??????&/7????c??}Y?KfQ^?? +G6?????????}??O????S(\} ??1???q"??g +?i?^??To??\gU=?&???}n?M??A? ???!>?)Bu?S?v?C????E8+?`?:???P???h?k?+Q?D?$??#w0xU0z??????~o?M\??????j[?f?R??TI????`????*?+ \w?Ari?v3)?w????!< B??1????7???4?DQ?j? +?.l!???C???G???5?,=??g?Ekg:??=?????????D??Xs???G,FY??L'k??c??yfY??k?n?????? +im????1???????????@?(r?@?.g???6?h????????TI(|? ?3?o?I^???A?a3??+CY??%??K???x?? ?????? +?:Z?q2?IRv??9??????l?Zt(??6Gc>??|?M?kd!U????@?@e???V?C1t??1 +???8?o?????E???????B??????g?(???-???H]?!?!??k'g??@P??g??v`s_$??N?!i??gF4????!2g??w?? ?&???????$??? +A8??_?v???c?Wh=????dSt??B????'Ct???.P BN1}[?*??-??0? ??J]c?3?)8un?y????a?".o??6?????_??1??????Sf>-?(^??^??????Q?85?????7???q}? ???=??L????:??U?i??Kkz?k ?;?Wu?r????]??8?@p????????H?P??????c#xx???z?????Ic???f~V3W?~??? +?][?M?ee?g?Ysr7HE3??r??.?<=p08{??qD=/%e????k?#?????Ep???d\?tz3??Z4{?????r?m.2?'?uz,???:x??O?Z\??}k?, ?4?Mn? +>B:?+??k?uN???????ar????b???????????????m??O?????k$????LK??y???A?|??=9_?vk??[cm????18b?????h?sT?????t?>=??z?????+8>?ec?[?^y?=? ???b???iC?N?w???K ?!?? !H?;??^)??1????????Yu?|???`?{tL?o??$?bT(????l??B?+????3??g??Wj????}???I?[??LK?1`??w$? (?J?*m????t?bI +T?%?????Z??J???l????????1????Dt???K?v?Y?U?p?bo4????????;?????E?N??9???'??y????V?g??q'?N??s?????1+\Hn?? n?*S?Y +?? + ?U????????l???LuMx>?}?{V?hE?????h? )u:?_`V?"??daY??OE? +?BtaX??e??lu"??h??FIl???????zI4??2????s??w???9??sM??M??H????*~????f?/???S? ??????AI?8?V?????z]?k?Am??????(?? ?????????????k???0???)^;$??q%0&T?X?.*J?Ej??X??m??#8????X?K?VZ???????1???????R???????A?90k??????E???(???????F?1?D[ +V????+?!?:B????0S??t?I?b?}Q?Z?7? .?y????q)>?8???='??? ?s^[?\???s7???m?zSy????x???q>??????? + ???}ElYB???!?L???)B)9^R???????KW$??h???????l?>f?,G ???d^???z?????*?wP???Iz.!??? 0??I?G??&>?W'???????-?&"E??^x6?hh?KQ?????U??? ++??|???#?1?^`>?????V]?????????5J??? ???4???lZe????w????????Q??Z???*}??x????????oP~i???)}\Vl?2?2???Ze?????l?]\????(??n???E??+[z?=Y-IM?gc????)?6?*? ??L? +????X?^????u??????H +???????0j8JT +c:FtM?}??k?]]75?)Y^A3?g???,2}6Q\F?e?VUp?+?T??C`%?G?H9?M/['7??`HN?W?za????k!??????6Q?1p?O$????X?"?M???TpT?Oz?M??x??AOA:L?????s? +{?W?{??C????w?^8?o.j?F??w?=q?0?+?Y??P-?w??????9y?????F?n?n?qW@????]? ??mh? ?`|????+!?+????}?RJZ1.B?s?@T??]p??/ ???????o??v?5DD??????m6{CO??E?+??a?t????$??????????R<>*q9^??`t??????c???x/?Ac???]_?3? +??>O(??;PNbE???q??h?_?????????,???h?n|????y!\????f(?????s^ =3??Wy~??????V?? + e???X??|?f?phv????????~??a?:??S?wtwwF?G??a?,ssz????w('??]g????E????\Dd??"?q5O???0k?4????D6h3??'?[q??|????????8 ?+W?? 3???j??3?~??????|X//H??(??????e???>??b??d??B?!CO?2x +?T?^?>?l?G????j,? +??xd???z4?yF??K?r?e?x??q?S??{>.????M???????C2???b{?l??Q!??Q?????|?g????`0Y?Mf????# ??:???K????y@??? ,?!TW??~s?RH? +?{???y9????#~?n*??&???k??[??B?ai5???K???????ha??m?Ar??o??i?vs???f???{T( p?fG?E(?: +????????L???Y]5&??$??? +?=Y!??r?M???N?9b?*??J?? ??9n?7??O=>K ?%??????D ??2????????+t???z???r???|(?|s[?Wx??/??.g? LWH?????qn?V'???????/9?dwp??`8V???3?fRv??+C??zt???9?????Lu?????T8ld_?@???????py???!Y?????sL?!{??7??H?Pr?a??(?Bv?p???C??? ?^13MzC??n?? /z?z;??W?v]W????()?9P??3]???. +$s??(s;6?,] a?V?B??GS?c??2_????r?????m?h ???e*?Xj???cW?????AV"?&?r8??T?n?r??v2+?Af-h??W?Nw?2????? +??h?2??=???!??????K??Q~?li?atWZoE??{????=]S?????]?/?[???+?-V?x0_?Jl??t?71?=?;.*?an-????$p???#?j?Z?????????6??>?@C?(??jP???lr?%r?M?K??_????k??E??$?m?? A?????????6?$?$??CJH?$!9??)@S??c????b???? ???F?h????f???F{J?????-d?2?D6||?$ 'G??????_i???s?as??4u?;A??????LHH?o??5aaa?(?*L^??7y ??F"x???|??B?Lg$q?e?xs??.\??????h9??9 ?G`~qCn|l????x +???l????hI?N6?9RS?wj??0?Iy?`? ????M?????Z.?2?c??Od??8^Q????sx\FF[A???-WVWg'Efsxs?IJ??????/(H???????? ???#? &>?%??O?%?]?4?+.??????? ?T]??U +M?q??I?q,????A.i??>ax?2? +Av?k3X`?-??0??!???l?Y?W???6????2Tf?)?????x?%Wy??_B?Cy?Eu&q???)3??2???&nYjt??BT???YY???P at Q? ??\3P???0????5?rH\???S?? SQb?UW*?(????r{????T????????????{??f?@:?-{.'r|??g?m,????r?Pe??C?c9?#?L?q???tW@???????Z????T?+b???q? f??x?-p +??lMbx`?????y????q +T???2?,????T????8?9>??z?LHK`?z?? +?J???.?[??!?*[?2?OmTj??n?>??6?j?????[???\?@#d???} ??v??\+?E???e%?/u?.?v?]$???m?J?.?sU??S\K?????a? +9}w%LG?>?+wm?]??????=)u???e +???F????-=?C??yFZN?!e?_???r:???????PX?_?=?I??p?z???j??.?W???|??S=L??fY??~????X??M6`? +?d?Lz????Me??2bS????J=??????4Gm????EM??d.?s?? +k?????0 +??0o?_???ks'??iZ?? O???v?O?f'???8??z?#0??^?5O?[???`???zi??#??J??\K???m?T?1??u?,:#*#ZaJg 9??J????Cy?????????Sm?@? B1W?????u??P???zW?qfk?s??Rp???L$t???????5-???w-A?=??1????\????4EqE1??h??M9?R???????ypg?????JZF]?t?-k? ??FLX?Ia?9???$_???c?b?Q{s?4Jn_a\LI?\?'-)Z????Vv???u?MlFm?>??v#?I????'u??sg??k??S?W0???3??/?H?$:/? F???O??????H{*Ev???5??l?? ?S??~?U^s4#? +??????j??]?Q??? ??3L????7??1?Ui???]K???G%???? @l???+FN?'&K??j??7^6s| +? Q?C??v???f?7x???er??U ?6@$?ZQ+9!&???_?)?=?`Q?gX??????Uq?_~?[?p?DEi??e\#O.Q#c?,?Hg??Y??bX?O?'2?%?"cb24??uM??/?|?/??6?gD?{'?'!&?#)d?\e?????k'C????D?'!??I?=????p?????2CcdYl???jVXb?G+????#?? +@:??????????d? ??K??">?Q???XnlR???j?N?zm?)?4I8-*??@$r??g?????j~???a?(5??????r_?WB???=?rP40|?'\????? ??W?6???t7?G??????8C{dPl??]r?/Y??&??c????p???m??K??}v7;?D??&????D?|?jX at Z?~??????UR?Ccw{??????3t?>?6?L?//|?,_Y???7??f??uO??3?f???'??o2????+K? ?+OK?&??6??&?,m[?Tj~???9 ??~????V`?W???(?+?pr???o?,??|??Ot? ? +x?y??O?G????d??f??6V?Y??{ ??J;?Z??m? {?Y??N?>E?Bgg????u +???_?????????j??n??-S?O????.???R???>?}??????^? + +endstream +endobj +104 0 obj<> +endobj +105 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +106 0 obj[/Indexed/DeviceRGB 255 107 0 R] +endobj +107 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +108 0 obj<> +endobj +109 0 obj<>stream +H?tTkp???Wb%a???aw?]?c??n'?????????b?J?Z?]?%??[&!?*?J?/`Co?P??Ix?t?qBS?`"RE?(???d?D?G??:-??3? I??F?1??#V +/aDE?Q??R@}??????,H?O?k8QP4Ed?^IH?E?_??F?*?j?? +??????????$??1??fU??),????o??4?49????E.?%??@?& +2^??V??Q?4y?Sq20?0?)???V??DP????r?&?N??~ +W?16|AI%?+r?a????yA???????_?? +G??~o??[4??3??ou?|? Z?????-?2,?k?W??P???????7???2??O?Pn?]???B??m? ???gFo?=?J?7???)hL??ic?1??KMO-O}3uUjW???K}??z?;i;?z??I??/MoJ???M???_g?2?e&????'?lGto??Ct"B?{???????????!???nG~????|z?n????3z(|{??Yfs|a$??zB?}I??d?;?p<;m?(??????.=??AA9s^8????i?k?MT:????Ch?)??eL?Q???? O?N}???jx/5??K??!0kh?B?1?4???.&u?RcZ???0v???]??????Kl???????-??l8p?v?????????T?Q??????U??&K??H?Y{???m!g<W??[ ??{b*?? ?vY???K????????&K??[???e?C?6??PA9wm??h????ni\????-???5???X???wE?'????~D??]?H??M?????W????i?h?>?>????tN?L|??????V?@c?w???v???????r?-"?m??????W?l*?T?z?^\???Qq +?Ags????y.??&E??T]xY???B?w??:fboD????j ?n=????[??4???W?3?jwl???f??R???U??>?=Z/??q? 2*Ust?? ????n0?pg?? R +n2?Z??WW????z%*?A??z?F/?ET(?J?]?>u???Q$f??'??? 3[??|?c??m??????FxQ?????SU??k?*=? L??3?Q}?Z0???kf??8???q;??????H??}g???sO!?a[?a[#??>lk???V$m?????4??>8dz?Nj1G??0?TP?0< #?L6????a?a( +????B?'l?w?zg???O??"??b??)?????P{?h?????F????u?{??<@??k?6?`7v????w??DEM\??{??JaVQK9l?T????)????????rU}t?>?p?yJ???j???9t?4??[?? +??=BT???*??????6?l??????T:???=u?????%??aa??J?????|???.????G???&??1'EM?F??????-?;B????gd?????_?;??Y :??no??'vo??(7??q??{??????7?=l_???;??f??lh??u\?r?:r?????' +E)?))\FFzZ???8?????}?? +,??M?e??u??=???X?s???????!W?3??[???]9???RE?U??????????V???h5???W? ??:???S?]??}?/?~v??l@?>ay8?L~??r{??Q??$????????[?"?t??|???7K2?2O? LNR????b0[#=%????(?5kz??^C?~??GN?ziT?????k?5v????(Vek?S?JCG? ?i{?M?GX&???p? +;W??s???7? ? ??U?4.????n?? C +>?/r???4??????????cZ5??H??&jJ?5?\e?:?R????)%i??\PTJH8?]???),%?u#??p%?????v??s +??8?????&?????v??)p?5 ???d?L?dH????mG??c?m???8??^?gW??y???BAQZlbF???x????-_?w[??S%[?>?f?????]?F?P?$(?>p?*a?l????????????=P?P?*??|???7?'?F{??@]R??eiC????p???fT?wj??2t22?gCTX??q:?Kt?????a5Us"??????????u??6v%??????-?W ??\???5?$?g?{ +{??d??A??1|H ??u L?5?(???^?????]6?6?A??m??kC?#?C??5?j???")?!?K??$???N??? )???jj????1??]???????&u???????-????L -???@|???$??-1 XD-"o5(?(E??????>Xwv????=???egoP?8???L&9??9??s?=??????$y???1[??W??5j?k7???L????&??),???U??T +?LPg???/?????????#D|?+,g + }?? +n_??y???e?J???????X?b??:??4???b??q??/?s???J?6?4Q????H??Z??@?F?~??\?=}???3_?I????vcs{ 3DA????j??l???OrTq????Zqg?k?\?m??6kviR??gQ?w?0L{2y$z at Vr??W????7J@p5kr?!???5?B0?rT?@8??? j?C5?A??A??Zv???ZqsA???G?T?V?` ?4L??rPSca&?4???v??????!<?? .Aw???@?R?Q??+?(U???????(Q???J ??/F)p?FY?p?W?D????B??!??>"R ]\/z?W4z?W4??^?b?w??e??gk??]K?T?2??{??,`?[h???P(B]C? 4???h)??#?d??ad?*??tN?J? q??"?>b???? w??"I??)+~???t{??Kp-w7???qv?w??4Uuv??(???[k?9?????? +???og?a.==?????"6S?q???6?q??GD??tq7lm7? +3?p?g)1? +IONU??[Bd????C?'???n?????u??NQ??????){??5????`?z?BE{3?,C?6?&n4MQ???f??????t?x2d?YJf??-7)???[??????8G-?tL?8jh} z??$???S??H?b?`?Oq?8??????]???/(?o*???????+ ???C?>?????z?67???Qf+?}I??2??????8I~??? ?J L"?C????$????:?#)ZK??=+ny????@?c8Obb?i???'??????$%?t????FHi???a??M?C???o??4V idL +ol???|f ??P|#? If?????7K?gc???,3R??(???%?N?To?DM,+????v F???????YV???:?I!?f?6?D???sR???N{???????s??[8?wy'?Rae??????/]?$?=h???gX L6???Y3??\?c/?^?????%2?[!?*???o???!?ln??"??y??d????i?>|&?W1D??L?FFz???$wl??_? +?U??#???M'z?6???g????~EL?????(o??W{?4v[?.U?B????.S7??I ?=s? ?E| ??s.f`??H\?`"??H???X?*I??????? ?D??6???!AzIIaaI?<+??Z?,2K*??j??bh??M?&?ok?}?I?????I ??>e???J?,:??????*?t -?1S????????$ho??I%Cq;Q9??B??? ?-h?????j%Knc???#?h?"???0H??d????&????re ???HZ?-'??0?????te??R????L?c?V6F^???z.?????r?/?? 6R???????@]i?b??Z5?B_,??lD????32[,[?-[/'???M??]?fN?1? ?)?L?z????Z??B +?z4?TZU??<DI??Dag?U?????????,?6?@?*???_O????{!?Mv&?qW_G?M? ????qfDGvW?mi,???8=q?/b????V?u? ?Qs?????0??A0?A%:???a??8?L ?0?P?? +n??~hp???C?O}M7??}{GFTC +C?xH?$??~??o?q???|Q@?]???lOBSt?*&/:9??$?????????E?4?$????o???? ??A8??????"???(?SCBsLtsO?*J?H?g???????@??????sa#??;[?a0?????9|?????]??f?E(d?H?.??i?HW?h????H???f??TR?0?dD???9?-?i%??g?q'|??K3??c??~(x|7~????~?????G???]?|?????o?\???{L??????r\???????? b???????Y???Q???0????? ?[?y?D/xr?9?uEx*7??N?B$?@??R?Qq???????????=Njo???#???ddN'??@{~?7??^b??;??Eq??:?(0????U +1?8?[N?6o??3??!??%J??!h??,?@?}X?vclI?n9x????G???????u???:?;W??+? v??Kf1?%z?F?????{e???(???xWLf??8??mU???f*???>S ??M??H?__D?? ,?5???uL?<???u?L?t?`X?K}o???[???????6v??.lcQW??k??O????.??2F????/ +?$[???@W?P??????I'3?v???V? Kq6?b???a?Iq?q|?Sxe??7??;???????]???I?????."???H???u?Vw????i?Tk???1?? +)G78E?{??K?My??4GqW?????????g}97?S??_?W????7??M???r????????&???]?l??i?=z??@??? +p?gr?y-3?^?K?${??h??m$????????wb??,j?'?d?F,1??-L?]?'?y?oOW??f?????X??fZ7??g\?v???P??W??\????????w?o???V[????9?????1???z~q#??"I?8Y?T??4?? 0(?d? + +endstream +endobj +110 0 obj<>stream +H?T?=o? ?w~???:?UYCcU???????R +?????c??z??=????u6? ?;?0Xgg??F?q?? +??q??[O*O?n?#N?<??g*??V8??<O?/d???p-??S?[B?? ]?????w?jB?????????r????H????%s?????????}S???EQ?J&j???I:??n???{w????? Qb????e(?????Cf??? +0??n + +endstream +endobj +111 0 obj<> +endobj +112 0 obj<> +endobj +113 0 obj[/Indexed/DeviceRGB 255 114 0 R] +endobj +114 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +115 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +116 0 obj[/Indexed/DeviceRGB 255 115 0 R] +endobj +117 0 obj<> +endobj +118 0 obj[/Indexed/DeviceRGB 255 119 0 R] +endobj +119 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +120 0 obj<> +endobj +121 0 obj<>stream +H??TiPSYN / ?Q?x/?PeY$?????????I???I?]Dv?*"?P? ?F???v?q)pi??A?????^??V?h?t)?E?R?*I???+???}?A????Z????x?W\W<3???k?[??&$ + +2g/???Z??b?OL??ce?-??p???L?Cd{???????????WO?4????????Rc?x?rR??A?Qb?????????M3?g +f??????????????f?????j'?????9'??? +??5w?y??m????~?.?a7?[?[?[?[???????????,????????4?g?kO????o^?^????w` ?/0?8????????o?_?_????q??????EF?!?_?c4FKhkZA??=hz B??7?1t2?A??{?J??>I????Mz?~L??G?_?1f#f$?C2 +?????2?? &???D1 ?v&??g?0??*????0??5?3?<??p???? ???&% +%??? ?',y????.???????????W?>\?*:j??w??????]?????*(?;???3 ?<??????'???p?k?????"T???DUg????7n?????5?? ??Hb[v9?p??b?p?.o?? 9 a?a?`????HpA??.G?????4?$|?????e???C?$d??@y +?%???f??i?"??????*?????0??$N?c???N????E?AW\D???"*? ?(0??^?3?r?hr?!??,$?(???H4?MVY_????~#??J?????????????~?I?????U???W?]?A??.????Bp +???? ?O?l?*B?c??????DRA????M?mn??-??-G?(??P2?+^y??????Ij?c%?????m??n? :?J????+??? fH?,TS????5? +??J?Z3???s??????p?w??%?`]??U}????%????V\? +??~??Er????V???a?c?n?s????K?v????o_P????????[???_?e???J?????T?E??TAq$N???XK?2)?????SQ+??e?Y?*??Ss????????;????8??UWp +L`F??????'?n.XN??H~O?}a?{?Y?????p?????g??0}??m????0??A??l?t at m'LiR???a?m???i?3Y? :$?{mT?o/????]dP?*? +J.??I?+?T?????@??H!??? ?e?i_?"&??}?? '?h?|9??&I????k???? ????????H???f?23?^x?p5?sZ??A{KN +?)???uPS??Bgp.Jd???"??????*?g???}?$l?????u?????l ?~~Z?? +??$?J?wbf?m ?>U?}T??hw? ^o?I)?????sD??1??o,;???P f??2??8H?AY??5_???J?8q1?k?a??y!:_?k_?#Nz)L???^??Zex?P???dJ?LO?TZM?2??N?8??0\??D3xf?? ?OP$???"?F/0 +??T?u?0??c??_?*?L????j???Y +8?LY"?????/r????f?46*$v??????|t#,?%o?Q??'{ ?? l-h??x}?!?/H?? +<;?FsmDl???i?Rvp??{??y?`??????g?@?Xm~STkR~A??9?+D??xy?.?o?\??t? ??w???5?????D???FQ(_??g??c?:)???X????n{??i???????3?Zi?V@????>??g??.=k??I???5??,1????G??R?s??t?Eq?a?&?M?EB; +=k7q#YS?j0????E?o??!?VzAp@?c`p?5 +JPqP7????QtM???????????????U?_???????? U)??5?Z???D?T??Z??m?#??R?g!H?^Zk.?&???z@???O?????&,o???&?RO.+L?b?O??$ +??'?0Bv????)?????~ 2?)?Bp'P??,)?W?9??I?????d?????,1????? +N8???e~JC??= ?F??V?3?????)(???h^Z??L?{ ?OS?Fn??F?M??/pW/??? c?????? ?R??{.????n?n???y??????? +?????2V_j}Jj?~6S?? :`?Gf????&?????^?nD"?o"????e??] t"?n?D????Y1r:?gy???9???+l??.-????? :E???{?;=?17 +?d?|???????\???x49??? +YZrnE +?G?q??|?z????8?]?F?1 +????? ????[ 65P?]#`;i7?1:???w-?p?Q???(D? "?JT???"?4????????7X????????gcW3???#?&???x??"???,;?_Qml{*?l@?~)??C?o? +?S?5]L??????+?ZY????6I??8????????F?? +????,?V??????1U?o?H?!??>#yL4?U0,?????r?U{?=o?=???E??? ?????u??D+????0_]???h6???`?Y){-?w]0g??]4J!?????Y??'Ym?+??]????#?.30D]??],?u??%)?,{wGN?d?@Y???1?c4?9?n[?~?F?tja?z?(?/?????????????`%??Jc?L?0&??A?,? ???&?? ,?c???J@;Yq?p?Vm?a???[??I?m<,???f??Y??Z +]?E2???:?6??A9?M?????????????&X?_U??Be?I?f ">'?????? ??A??:J?{?4???ro?????i?z????Z???#?"???ZO<"?*AB???UB???;%?? +?>?]?????+???LYmU??#{6???nC???0???w? +????Q?????u?v??R????!?-??????????&aZx?I??W?.-?8?Z2+??0????3????4??????/?*d???qP?(@??????3????EsC7?mH=g?????>??(??'??RaHd??1???%????~&?TZ??b?&?\xE?3???b6???????O`??k'{??????f??jF?????????_?nl`?!?/???]?? o?>6??O>{?B??"????o ?[X/?N???(?Km??????=k??40???#??k|sX????|8??? RX&??jZM%???0B?n????%?n]+?k??<?d??-??Qsf?5?????w??~?;NF??N?????A???N??c???????????`G5?vvW?Ilr|R4?,;u?????????? ?Y???n4B??a???&?{k??? ???? ???a?,?s?~??K??? hE?M/?V"GS<?-??x3?SS????????a????X?????????????`?_??>??+??L???61.?8???XQ?jW?R???v[P(H#?&??7/??H?K? +??E?JW???W???????Yw?c/3????Lw:?#?&??w~??????.?>????1FJ??p?Q??????0??%?Cor???0?I?r???(<5??C8?q???????%?7T??%X?ShZ$??Q??a???U??[/?o??$?YG?6??-??n?wm???M?g??3??}Q?<??D??=?P??_??Ja?C?R"??3?????G? 6???|X???I?;?G6\Z??B?V??????????qny?G/???p???CR??)??q?o?W????h??=#??T?????D`??[?????U????????]? +?hD????"??xf?3,L????????,4?+????e?w?????J???'4N?F????tu:?(?????m6??????>?g?-T +CV??#e^?????h +?y?G}7m??A?.?)?H???4????????s+???b?W??A??X?v??Y?"z??_???F?L?FTv??= +S???$?s???xqmx????6?D{?^m??>???X??KF?a5/?9-?2V????L:?_???Q?h????ji?{?)U?Gy +??U[p?????4?????;?Xs??Z?u?H=g?x?R???`?H'????d????N??6??Q???F?Ukh`????????? +d?_m???j?w(U???F?? +~? |X!x?%A??9?$? a +??2?\?n???????M???S??A [??rV?o*?.nB~????Dmv??????-xX+?d?l}??m??`?db??=^^Wl??h|?? ??e^*d ?1?q????v;??????^??????????J???K???????Q??T??????  +?; +??${??f??T??h#?zeh??????6U?????Yh?????qW?M??+???c???|?????%p%/???6??$C?Wd??P?&2?p?[???%=Z&p +??q??F???????8?Z?8???$/=A?*A ?s??j$?mV?c?D????j????m??[????3w[?????iB??Q?k??b?=4'??????H???Y'???K?q,?i+x?BLY]?)???????@+?? +??y??$ +"?Y??j?4Y??%m?_lW&???g?????oD]?q??????x??RL?f?X[?????T?Ny|b6??]p??=5$>??v?????S??{?????????????!Pt?g????[?m??????"??;?|~???%6?DxA??2m?A??O/??????M f?;?Z????U???#?,; IrN~:Av????Y?)? \?$????qr?&?Z#E??k??fD\z?????? ????W 6??Z*??=j????m?,MFZ?4=??????N??`)m??>g? dv???ED????????8NL????+???^?\m]Wq\?[w\]?hD??? +B!?#$????wB ? (???"?k?b?.?Y_8k]:n???:gz??tvf;?t????????????}~x????]?v?C}??? ,?5v???,? G`K#i)???e?f ?TbJh?m??`?q?k??~gS??????????F?|??4eA4??&????]pI???p?????&???|??$?/??? ??????.j?A????NM(<:?Z?? +?B/?? ??l?)AMx(^??nL???B\?? +_xWX.xb????O?w?p]?k??????.y?L?YTX???k?l??f\??Vb????s??$`/T?8 +????Q?%:??F?D???d?C????x~??????????S??Wk j???,#c?RZZ??m??/?S$??5??\Y?g?b#$?????87????a??{?o?|??+T???~?.??????o +@??7??G??????Y???tz??P?i?????d???J?~/b qwx~y?:M??a? hL8??nGE?e)R?????R5??)?????Nl??H?z?AR2????vM|?cRR? +??6 .?? +??????lT[M}k????(?h?&Z +v????MZ?J??G>??\?o??:@?2~??????L????{i"?,??"????2???xX??X_????_??0?0F????31?v?eE????? +?[??B{>/????1??? h<):???% ???:De?.??l?d????NG?D&p,???;8??k?????'GG'?????-?n??,p??????s???w??[??;{? ???@??}??f?7??"mU??????36?????Y??W?yp??C??"?M?q~???????u???u?[o?&DQ&lx ???+?????????????.5??X?fHk??v?=?&?4|a??m&??=??????[?'???????S ?T???N?*7R???m???ns??N4w???TW!??Q]N?^?v??Z????????E?$7?`??????jT?]?.L?/He%???w?0???8?N?Kl???~ ?????y?d??O?B4}D2???????????e?5 bH9x?s???.p???????~?d9??\?u??+??L???ds8??+??yE?~CX??2I?:1K?2??|???#??\??w?FEu???????-?Kt??[L??f)(?F? ?? ?+?<?ax3?a???Dd?a??A^?hD#??j??????Q\????C??m~t????}?s???|??? +??????????O???;`-??D?/9?~?T???IIU??R|?=7q????;r ??'b??2o? +??]?????????fc???w?$?? +^?????A?9}? ,??????,?o?`?? +1x????,?W55I?<1??V}zX???? &??5????n?B?f??H?-$???Df?U????)??'?ou?>? +?NRK?$?.X?!7^Pp????;6^?7b?? N?h??/ {???Pf???5???w?q??}?\??,??E?O???? +?z?????oT|Z_?%m?`?bW4-??Kh?}?sp???|V?ej??f_^?????]???Rx? +??bAo64??F?????,)Fx? +? +???:RK??r:C??iR? +??tfgS?????|9O?+2?el4?EI[Z#AN???y*??4.'?(8?/4?/??#??>C ???????$#?Psr???7???H? A?3 =?jW???wF?? hRp????9?-[???E?!2G????K?#<\G?P?.??T????5??$??r +!??U????7?X???>W?v_v??j;????UG?n??"5??"(?A!(?|&+1 HI?????0 ?,???Z?? ??m]?n?????vo^?[wvf?c?M????s??????x???t?eSg?,???x=l???!???? ? +??y????RW?i6??"??Ax??????V8~E +=???J????`&???z?4A$?K?J?#i&U??)L????"? ??#????8W7h`?h??CW?*?"B?#D????::I?+?eK???f?=Sl?B?????? +? BS????A5??dq>???M????????Qa?N?s +G;?A:??? $}????e$Y?"?l%??*??r???b?{?$CCv??S?K????????,??8| +Z??>??;a???}??$y????E??NG??I;???a???R????????????y?'??~?? Ec??I??3b?b???'kv ??e?jY>?1Wtv?i@?]E?(??h?VC?%?o??p?0??'f S???k???????]????O?bN??Gz??XE5?kk;?[?$D???p?3????=??8 bW4?}?5?^????? +jU?d????5??/C )1??WR???^Rrq?D?????a%l?7?J???W=???[???>?H???p????Tl??? +?ZS??m]]???????x??[/?l2????V<{(?;?i?s?]0iNjq?? ?????56H? ?{?@?X?TD???x???/""n_?,?k??????? +Eh?Bq5tF?C6??????D?T-IvI*q#}HeXa ?Lcp?????z_1W?????%??&v + +endstream +endobj +122 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +123 0 obj<> +endobj +124 0 obj[/Indexed/DeviceRGB 255 122 0 R] +endobj +125 0 obj[/Indexed/DeviceRGB 255 126 0 R] +endobj +126 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +127 0 obj<>stream +H??R[?BA ?,`????X?? X?B,` ?d??z?^?????|???????q?c +endstream +endobj +128 0 obj[/Indexed/DeviceRGB 255 127 0 R] +endobj +129 0 obj<>stream +H??W[?0?????\??@M???P???!????xy@???I?N??N7??^/{??x??3?????@?????"{gx?~?+F|??7??n~72?C??-3?W&>stream +H???A? D?p???u????D +}??? ??(??Uj?V?*PsN??? +????G??6Y-d|?m`2<???- ??;???"??5k7&Vy +?g?D??bTLz??A??7w7?? ?/+]y??@?8?????xz?>??|)?$x? ??O?}x???'?{?}d??-`?????Q?M@ +????7??????v??|f?/$?? +?'? o????i81z?(?=N??7.|3?-?7????:-? ??_???? ????=????z?>???( +endstream +endobj +131 0 obj<>stream +H???A?0{????;^4?R?b?B?&^Ha?J??Ji?NM??e?N?SE?@`x?J????EW)0??$r=???Y?u ?k?;? +^Y????@????/??< ?1?&???k<]`?9?????u<'?.???.????d? ?8sx?o??E?? +?????u???eBr?????s,, +endstream +endobj +132 0 obj<>stream +H???K? D?x??q???t*???1J?Wh???Kj?$?? 2u`.???wT??&?OE?????-S??2?*"YuT?????{V?G??#_???Sc?Nwy???Je,???kvm? +endstream +endobj +133 0 obj<>stream +H??W ? ?????O?????? H?f7?E?yT>Jx??&??+?????wd?7??c???J???'F?2]??/??'|??O??~%??????o???f16?~?&w3??~??F?????K7??????m +endstream +endobj +134 0 obj<>stream +H???A? E?t??q?j?)?l???1?4??~?Z +?cD?M?h?;$???? ?={W???.??i?:?}??4x_?_k?"??_C?X?????O?'?>A"???A?&??8S?I??R?;x???'???0?1????{??i:???I?w??"&8?7???? +?5? +endstream +endobj +135 0 obj<>stream +H??V???0?O?q???}?'???D?]??V?(y????????L???m!?1????r?l?t??t?????u???|?k????;??%l??-??????\;?|W??Jgm???$????*??Fkz!?G????9?S??C??zS?zV??N??J?????????Z @_??>C?S?I??????Q???@n????aC???{H?v?|?'?1?j?E??)??s???>R?9 4W?=?|??7???]?6?I^???????y?m?y???n????r? L ??n???#:??????S57???g?uU??t?F?_d??r?Oc ?\??22s&?y 1>yz?7?ye|?? A{??O?x?R?T???efS7 ?g????/:?FX??zL?????%6???$T?y??F??h????????? *???????H??`?6'?>stream +H??WY?? ???b??}?O_g?^?I ?J??|"Fz?2?{P??o??? ?4???????/?n[???N?sEH??????\E7l?[???+?;@E~?????_i?g?8?qc~???? +endstream +endobj +137 0 obj<>stream +H??W[?0??????X!A?H???????ayDZ?????i???!{??>?,???/?C??1??X ?v???y????6??X?????'ZV*??Z???f???^?`,? +?[?}??? K???=???=?%? ??Z#VG????@?k ?,u?|??fF????>z???)??$?M?????*?7??i???2?\?/??;a?E???We????????/Z?|q??S@?!?bz????y?-s?^1?"?`G??\?B????c???3h??B??4?+?;?56C*??J????!???~>stream +H??W??0????t?`??BbM??N?SXB??{????"?C???U????C?????O@)????7??_?f>?.??;Y?b?#J$?.R????]4p"???i???\O?X??t????tJ?)[??=??? >E5??*?7??zY6-Z?L???^??"??Yj?N]?8?n??? ?&w???sv[^F"xuB)???L????d??????:????j??D???p???!?lX??4?}??}???W'|?&?9??Z?Q??m{???Ac?ed????d.?Y???_?^??bH?_?=h'????X>stream +H????? E}???????V +?QY????x????OI x P???1"O????7?$?pe??7?:A=Zzl????C??? +/1~????5 +tZI?r??K????."?????)??? +endstream +endobj +140 0 obj<>stream +H??T[?0 ???^?3A?}?c????X?q)Z?={B?$Ts\{?V?Z?sxY?F?b?G!???????${0??B?P?.fq-???|R?5?#???A??F5)??????Y?,e)??1[j?bS?L??6??z2?????P?????j?2?4?~?ut????"\?p(B???????????w?????AH@??>stream +H??WKs?8????e????| ?R?rd+Q?K;3[?9? `sC?*?J????x?????6)?Ht????_????]\.&?Y??+V?|N????p%+??????fM^?'G?m?y?)??????iQ????v?????1xq[WJ?????z?.>q??? -?5?i??,x/?????V? _?/???????^???)?????4????Nk???&5??????????????Go??c????z??|ZW??. ????i?F?????EV?E????????????]?o?Z`?Nw]?b????W????\]??*?????f?|l???????;??on8???j*s?'?,???`_x? ??????????d???W-x? +??vKK????%h????d?|??+?i?e??6P???O?b??^>nWYE??7?h? +??????y?|Z;??i?????$l3????? ???eM:??{???b?9??z???w?T p????ev?_???????y??N?r?S??\??(K?8??????m??????Gy??V?x?t7???.2???`Z7W5?U??U??8$cR???]??Lv?o??:c????MK?VP?{???-t?????H???.?}!????]??U|[???6??????????$x3?VL&W??\??')????V??wz??T? +??)?????\-?4/^?i??>mTy?-??????9$?????,?F?4???`?v}??????????????#b;}L????Vm?j]?q7???*?l?l?4? +???????V ?:~??F???????l?5?cN?w??}1?u?+??_?}?IO????a???7uU?g??T??aG`].???1?c?#:?nG?y???@???Lf???~????????F`(?_2???>?????y+?|T?{??f?????????*E?b???5k?????|Jo?eS?????'D??,?????nB??l?g>w???Wx? ??b?9??m?????'????P?r?9?A????1Gr????E??h"!(B(C~?Ss?Q???b"F???'!I?@??A???N?}??? ?ocq?? + ??FT<(N????3?r?mIY$u8????b?X?)?? &!?#B?BZ???0o2?76G?a?? ?#?D`??Q??L?$???Si??%??2Gi?????K??t?R9????"aB?,Lq???$???!V?????(?B?"???0N??.ou?@'????D?~???V?H?cSk??Y9???w????u?h>?o? ?N?~?Y5?;:???^yoO?j1?pmm?1?u?????K9???Ml??`??d|?[? ?xrS.ob?'nl?X?Mh8???q??????: +??????b?z??????u??9??????U??:?*]?'?????v? ?x:???+?Y??/????X_&&?.??Cb{&?"N??6W??\?>??0??c}????pt??C??????=???????6????\???I????!?:???h??89???S???????????>Sw?b7/n +???g;?tOu5`??j{???pz?t~O???`??t???7J?w8??O?~br????????~2?m?Y ?U??;?,tk?D?w? +????h2_???nn??????e??????????E?E?29? ?Y?'q?S?Q?gB?????%$???m?B?E)????D?? ???QB0?? ?p&??+??1 ql??r??o?b?a??T???Ep?L??s?_?? ???S???68U??$???=????9G)?s?'????~b?s(????T\??S|"?dN?Dd`??N&??+c??L]?r?!??I?B??A?????O]\?????ZdD???0fI????O?4?J?j?????y? sf?K?Ym??Q??????: "?P?t(H??? +r???Sw?A?dY?? `?L?O? R???%Y??Y(???,?fq?Fm?i|??????7??AF$W?ZCB?% ??$,?/????6C???????/1PH75?? n??(?0?hGIc?F ??_?h8?d?q??<8?\?!yHbi`v??^?{?0?e?(b?"? i??K????Y?? n/>??**3? +??|?/q?{?O.??V&?d?:OJi??_?? ?Z ??s?4.???;??LR?? ??9?q((?????|,??=+C??Xd`?Y??\+?z???????}???KXF?w}??~???7j?????(p??????????????rN?{c?s?Q^?S1;3???~B??Y?%?x%???.??:?\.?H???&? +??????f>w?2???????W?S?,??E??7>g0,?????:? ?g???????????^?a??b@????m;???o'?????~????i&?~,?a??????l???O??V?v???9a?.jS???A?I?^k? +??:?{?3B???4+?sbm??3_Q~?y????M?iX?l?????^?/????;?????9??/?M????W?^sz?P?????-???k??????_?,??1?9?2?~??q:???o?uk?Ks????c??zv?????P#H>?(?????b???pT?j;?~???u5l??k +??????w?????o?G?:CXk? y??$???????????v??N5???0t??Q?? +?z????????????7q?????a+??u???????WV??cv?9???h??t??D??y???/??X?e????6??c?W????T?????H???E??}>>????M?'?UWp ??Q??F?x??dxT?t?Fh??R?{?? ?? hT???T:???]_?;5?l? +?>^2??~F????1r?? +??-?????ZfP?d?????C@????2????#????u?X??j???????YQAh?B??X???k??fr ?g?A[!??2lO?Vz?r?U*?H??????????I???e?4Tzn?@?$???i?e ????????U~??f?q????????s????2gK????????s????<1?\??XoOng??l?7?fIV????YY???'X???8=mG-??S??J???~??T?s?7?`@7???(O ??Z?????e|?q???????7r??x|?? +;.|????};?w\?1?????Zv???$i?Y+?@o??~??$?v????*???Y??????8?uNFG$r?bxJ"x???? ? + +endstream +endobj +142 0 obj<> +endobj +143 0 obj<> +endobj +144 0 obj<> +endobj +145 0 obj<> +endobj +146 0 obj<> +endobj +147 0 obj<> +endobj +148 0 obj<> +endobj +149 0 obj<> +endobj +150 0 obj<> +endobj +151 0 obj<> +endobj +152 0 obj<> +endobj +153 0 obj<> +endobj +154 0 obj<> +endobj +155 0 obj<> +endobj +156 0 obj<> +endobj +157 0 obj<> +endobj +158 0 obj<> +endobj +159 0 obj<> +endobj +160 0 obj<> +endobj +161 0 obj<> +endobj +162 0 obj<> +endobj +163 0 obj<> +endobj +164 0 obj<> +endobj +165 0 obj<> +endobj +166 0 obj<> +endobj +167 0 obj<> +endobj +168 0 obj<> +endobj +169 0 obj<> +endobj +170 0 obj<> +endobj +171 0 obj<> +endobj +172 0 obj<> +endobj +173 0 obj<> +endobj +174 0 obj<> +endobj +175 0 obj<> +endobj +176 0 obj<> +endobj +177 0 obj<> +endobj +178 0 obj<> +endobj +179 0 obj<> +endobj +180 0 obj<> +endobj +181 0 obj<> +endobj +182 0 obj<> +endobj +183 0 obj<> +endobj +184 0 obj<> +endobj +185 0 obj<> +endobj +186 0 obj<> +endobj +187 0 obj<> +endobj +188 0 obj<> +endobj +189 0 obj<> +endobj +190 0 obj<> +endobj +191 0 obj<> +endobj +192 0 obj<> +endobj +193 0 obj<> +endobj +194 0 obj<> +endobj +195 0 obj<> +endobj +196 0 obj<> +endobj +197 0 obj<> +endobj +198 0 obj<> +endobj +199 0 obj<> +endobj +200 0 obj<> +endobj +201 0 obj<> +endobj +202 0 obj<> +endobj +203 0 obj<> +endobj +204 0 obj<> +endobj +205 0 obj<> +endobj +206 0 obj<> +endobj +207 0 obj<> +endobj +208 0 obj<> +endobj +209 0 obj<> +endobj +210 0 obj<> +endobj +211 0 obj<> +endobj +212 0 obj<> +endobj +213 0 obj<> +endobj +214 0 obj<> +endobj +215 0 obj<> +endobj +216 0 obj<> +endobj +217 0 obj<> +endobj +218 0 obj<>/Type/Filespec>> +endobj +219 0 obj<>stream + + + + + Acrobat Distiller 7.0.5 (Windows) + + + + VTeX PDF Tools + 2011-03-30T15:33:51+03:00 + 2011-03-30T15:33:41+03:00 + 2011-03-30T15:33:51+03:00 + + + application/pdf + + + + + + + + + + + + + + + + + + + + + + + uuid:24d9ceea-a47a-482e-8d16-c507050ba7ac + uuid:b4e25cdc-d560-4f41-9f4f-0cd8c6fc1cf7 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream +endobj +220 0 obj<> +endobj +xref +0 221 +0000000000 65535 f +0000044792 00000 n +0000045082 00000 n +0000045212 00000 n +0000045340 00000 n +0000045474 00000 n +0000045598 00000 n +0000045726 00000 n +0000045854 00000 n +0000045980 00000 n +0000046112 00000 n +0000046241 00000 n +0000046380 00000 n +0000046508 00000 n +0000046642 00000 n +0000046772 00000 n +0000046905 00000 n +0000047037 00000 n +0000047168 00000 n +0000047290 00000 n +0000047421 00000 n +0000047548 00000 n +0000047678 00000 n +0000047806 00000 n +0000047939 00000 n +0000052720 00000 n +0000052879 00000 n +0000053035 00000 n +0000053168 00000 n +0000057464 00000 n +0000057623 00000 n +0000057763 00000 n +0000057896 00000 n +0000062252 00000 n +0000062411 00000 n +0000062554 00000 n +0000062778 00000 n +0000099462 00000 n +0000122738 00000 n +0000137503 00000 n +0000137976 00000 n +0000138085 00000 n +0000138559 00000 n +0000138668 00000 n +0000138827 00000 n +0000138964 00000 n +0000139108 00000 n +0000143277 00000 n +0000143450 00000 n +0000143592 00000 n +0000143737 00000 n +0000143887 00000 n +0000144100 00000 n +0000327446 00000 n +0000370487 00000 n +0000409846 00000 n +0000410320 00000 n +0000410429 00000 n +0000410903 00000 n +0000411012 00000 n +0000411171 00000 n +0000411317 00000 n +0000411518 00000 n +0000445493 00000 n +0000472838 00000 n +0000473312 00000 n +0000473421 00000 n +0000473580 00000 n +0000473725 00000 n +0000473929 00000 n +0000495834 00000 n +0000496308 00000 n +0000496417 00000 n +0000496561 00000 n +0000496701 00000 n +0000499035 00000 n +0000506076 00000 n +0000506245 00000 n +0000506532 00000 n +0000506668 00000 n +0000506827 00000 n +0000506983 00000 n +0000507138 00000 n +0000511324 00000 n +0000511497 00000 n +0000511652 00000 n +0000511816 00000 n +0000511979 00000 n +0000512101 00000 n +0000516002 00000 n +0000516407 00000 n +0000516454 00000 n +0000517626 00000 n +0000517673 00000 n +0000518078 00000 n +0000534092 00000 n +0000534295 00000 n +0000534700 00000 n +0000534747 00000 n +0000535152 00000 n +0000535199 00000 n +0000536366 00000 n +0000536560 00000 n +0000536609 00000 n +0000550089 00000 n +0000550190 00000 n +0000550596 00000 n +0000550645 00000 n +0000551051 00000 n +0000551222 00000 n +0000560584 00000 n +0000560888 00000 n +0000560974 00000 n +0000562149 00000 n +0000562198 00000 n +0000562604 00000 n +0000563010 00000 n +0000563059 00000 n +0000564231 00000 n +0000564280 00000 n +0000564686 00000 n +0000564891 00000 n +0000579534 00000 n +0000579940 00000 n +0000581111 00000 n +0000581160 00000 n +0000581209 00000 n +0000581615 00000 n +0000582021 00000 n +0000582070 00000 n +0000582433 00000 n +0000582835 00000 n +0000583151 00000 n +0000583493 00000 n +0000583968 00000 n +0000584307 00000 n +0000585019 00000 n +0000585555 00000 n +0000586005 00000 n +0000586483 00000 n +0000586819 00000 n +0000587280 00000 n +0000591564 00000 n +0000591607 00000 n +0000593382 00000 n +0000593494 00000 n +0000593579 00000 n +0000593664 00000 n +0000593744 00000 n +0000593828 00000 n +0000593912 00000 n +0000593996 00000 n +0000594081 00000 n +0000594165 00000 n +0000594249 00000 n +0000594333 00000 n +0000594419 00000 n +0000594505 00000 n +0000594590 00000 n +0000594676 00000 n +0000594760 00000 n +0000594845 00000 n +0000594930 00000 n +0000595010 00000 n +0000595094 00000 n +0000595172 00000 n +0000595256 00000 n +0000595340 00000 n +0000595424 00000 n +0000595508 00000 n +0000595592 00000 n +0000595677 00000 n +0000595762 00000 n +0000595847 00000 n +0000595933 00000 n +0000596018 00000 n +0000596105 00000 n +0000596192 00000 n +0000596276 00000 n +0000596360 00000 n +0000596445 00000 n +0000596530 00000 n +0000596616 00000 n +0000596699 00000 n +0000596784 00000 n +0000596869 00000 n +0000596953 00000 n +0000597037 00000 n +0000597123 00000 n +0000597208 00000 n +0000597293 00000 n +0000597378 00000 n +0000597464 00000 n +0000597549 00000 n +0000597635 00000 n +0000597721 00000 n +0000597808 00000 n +0000597892 00000 n +0000597977 00000 n +0000598063 00000 n +0000598149 00000 n +0000598233 00000 n +0000598318 00000 n +0000598402 00000 n +0000598487 00000 n +0000598572 00000 n +0000598656 00000 n +0000598741 00000 n +0000598827 00000 n +0000598912 00000 n +0000598997 00000 n +0000599083 00000 n +0000599120 00000 n +0000599152 00000 n +0000599215 00000 n +0000599347 00000 n +0000599422 00000 n +0000599457 00000 n +0000599730 00000 n +0000599822 00000 n +0000603734 00000 n +trailer +<> +startxref +116 +%%EOF Added: wwwdev/papers/subsurface.pdf =================================================================== --- wwwdev/papers/subsurface.pdf (rev 0) +++ wwwdev/papers/subsurface.pdf 2011-12-09 17:32:47 UTC (rev 5394) @@ -0,0 +1,10686 @@ +%PDF-1.5 +%???? +1 0 obj +<>>> +endobj +2 0 obj +<> +endobj +3 0 obj +<>/XObject<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 4 0 R/Group<>/Tabs/S/StructParents 0>> +endobj +4 0 obj +<> +stream +x????N?@??-???F???w-EQ?4*-?zQ??$?A??uHQ??3?pN?"?(??%w???7?i???(??x????z?????*? ????????#???4z?e?FZ3??W1c`???Y??->?,? +?Z???o?a??????k??L??????Tx??Y??j?.?!??;??|*?C??i??3?]??:??]S?7?????F?a0?v???>e????????BS??_Y?W???>? 9??tk?6^????a?qu??S??a??%5i?????a\?}w%S????!.'???Y??m???bw?%i???w??1zQ?c?1? mCt7?u?^??q??A|!DtY???|?????g?????t??Bc??z???r|R???(??@???c?2??i?pW?H?????????i?????W???|?2?[q???u\????? +?Q?\?s??!opRhfA????t??2???9)?h9??l?F??? ?W???g1nqH????j*?7???6"*1,E?2aOq??|?X'???^s???eQ]?k6?M???bA??X?D??C ??h +-6?)vkKq?%?S??> +endobj +6 0 obj +<> +stream +????JFIF``??4ExifMM*1Adobe ImageReady??C  +  +  $.' ",#(7),01444'9=82<.342??C  + +2!!22222222222222222222222222222222222222222222222222????"?? + ???}!1AQa"q2???#B??R??$3br? +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??????????????????????????????????????????????????????????????????????????? + ???w!1AQaq"2?B???? #3R?br? +$4?%?&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?????????????????????????????????????????????????????????????????????????? ???(?? +(?? +(?????{??T???FP??)????+t???O?????}????IOVh????d\?4V??bC??`^??????????4??? \w????q'??:?J?9v???Z?H???T??.CKT?S??:1? TUa;?CO??@T??K???????z@?.p????jb?%QDR? ?? ???(???H??>?296??????z?EC?N??S?b?R????@?c`???b???5:???T?&??*Tp????;??PT2G??^??OI@ ???J}B??;???R#???.(???? = +C? z??? 0 ?( 29????SS?????Z(B?z~"??r:?????oO?P?P?du?K@ Q:;??5?`?"??d1????T?C?E-0h??FalP????? =*0LM??;??????h)" +??;z?*?????R?n?;??zPu?M!??j?8??)???j2?6?9?t?M??t4[ct?`?QVc|????>?)????$q?Ud???S ?`?bg???=?P???`CS???4H`?cNI?l?????54??? ?z]???U?1b?R?M??@???n?i???:?Q?U4?#??-??2= +T?Gs???????$?;O(zJ????hYFJ?Lt' ? ?Z??oAK?????8?C?S???? zx?} +H?`?????Z?%T.??'a??P???t4? #? ????i|???hc*????W%y???E????<[??@????????=?)?Q?l?=??????=?7??jv?q????#u[kc??*???8?X?????@ ?P?H$??zk&?G :A +???#n?S?S??}GQN?FJ????????????S?@??{?zR2?w/???NV 2(?J?x?i??e ???b?????H(K(?? ??t???????OQ?@e?28a???? ??????Mu???0? ?)?J6???@?@ ???5??2??????7?rQ?H????L??t??)i\1????=??X????hA6??3????308@;?}?@?v??Z???|S?FI???i^??4!c9_?SrrSV6s??z?????h10'????c???ppN +?hd +?????7?????8?E b??b)?G??,?EQEQEQE?0y^H?r9_?Vh?R?#?>??$??,?=* ??`??KU????${?u??QE??(??(??(???w+??????0??ILt?xa@??8?#??b???q???vT?????:n?^P?????u?????xaJ??{???Lt ?^???>??`??K@:?m?e{?pT  S??X1T??;?O??P?? ?????????>??!}M=?x??i??n~??#?????\?"???Pq ?? ??y??'??? ?dt???.?F(7'??y[9????d??%{{S?@? +??d???5!R?r??)???E +??:0?(e =?FM?????V?*Fv?? ?~?????J?r????\1?xoJ?:??? +??c@(n?}i??}?G??}?G??3??NA?@ ??j??F?)????bHL?{ +tq?~c??[!?*]?z0???{?H1 ?+??? tUa;?x???? ????{??? ?0?Q at 9?? +?XCd?_J???A?T?:??#?}j?)S?9? 1????*?X?l?????&?4??? +JZ3@ EPE~4QE?A ???Vt(pj?iC ??P?~Ue\8???Uy#(??i??NA??-?MI?F???QKI@Q@Q@2H??C?O??)??8"??\|????YC???P???? y??G.???(h??? +(?? +(?????U?2????P@#?A???OZ??IC????]?7J?E????(??JGP???h???C(a?8????????VC??9wp~?KE?? +(?? +?H??84?(?9???;??A?k?q?:?Y?l??Y??X0??K@-%`z???,???J????I?*C?~??#??????*v?O?@aq?M(??MZ?ET??&j?4???(?????S????????"0???'a?L ?????????(?U?i?d=r*?:??? A???*']???EEZG=??uT????F@??X?k}??@(a?GCB?~S? +}5?w ??C@ +5?$0????F????QN????R?YH;????9He??c;?pz?x ????^?? r(?GB?5??SYw`?#??['i????????>?g??????S?r??OZr?a??R?*k)??????YC Eb???????????0????w???V*v?^???@FGJk/;??????????2??P??{???2???]? ??/!?s@?B?1?:??g'?? ?#?R?X??????t8? @%???sL ???;????# ?Me?r?????S??E)?@? +Um?ta?P?H??CP???#?;?p??=OL??v8?}i??C??*E?G^M(?~????QP ?w?j?B???????L*G)?{?ZR??^??V???(V +?B:?C(n?{@(a??M?N?c at r??q?"?????NW??H??#?????p? +????j?seF??D??????? ??t?f??>?0?@#?``?2?y?Z_?1?K??p ?9 2???N???r?};R???oJ?8<7??????0?????d??????M*Fd;????-??????Oj?E??8>??? D*8???Oe +?P?`??~e<|???4QEQEQEQE(b:N8?*e(??P +8\?TP?2z??1?Q?Fj??B??m??&?lp?;??S?R?G?Z???? +8H????@A??:Z(??)(???(? ????NG+???%S??V"?6}?l??,??A??EC??:???J(??(??(?e 0FE-VH?{????q?>?h?FJ?$[yw???'V 2:R?Dr?#??YG2(?QE%?PQKE!?^H??:U?J??8?w?U??t???e?G???? TR:R?i)h????i??Wt(r:v5j????G??o?RUy#(r:*|R? +?}hZ(?? +(?? +k?{?4?(?f??????a?H?`?4O?y? 4SQ???uQI@ Q?pH???(??????X?G$a??????m??P?):????Z)(?????cQ?????SS]?w?h??=? +??@?bb?????Ji?jC +_??ED`?o??h?Fz?j?EUUf?qAVT?U#?P?N??H?=?(?h?V??? +B??P_??1S?y?=????f4?3????v?#?Td?U ??J'^?????5 ??jaR;??,??? ??W???r??w??j*?b;?Q#??4n?????g??8N{?@ +A???s?J?dT^x=V?$?_??@h? ???S??)?J?????M??( ??????? ??????L ??Lt=?}9c???-5?8??i??????? 3F3F(?H16G(z?J???R??P?a;?*z?J????#?-D?T?N??=X8??TL?N??G?I?1H?dS?'B?zu?=i???E???E.(&3?~??*@r?R*" D?????? )CJ^)q@)(?[?cRP?pj5b?#??? )??;??:~(????:??s?8????dpGQ@??1IC??v5%#(a?8????U??N??@?(w/??*@A??Td?a?{??????~??i?? +-50??)??Nw)?????g?q@?Q????????k??p???SY w?hF??Fv?P?;[???Me?=?hW?*? ?ZC~??bN?????SYw?>??k???:D|??a??O??g????Me????CB?r?E ?;??V =?QN?2?w/ ?Z}1?S??J??g??)????A????????????g#???????Rf?dL`?j1(R@?^??3(a?MV ?s?oza???????Y???_????????;z?, ?H?!?=j???*??}?{P?%} +v?8@;?i +,g$eOJ??f?ON?|?q?>?`?(e??GC@?? +S P 9?R?d?nS?5?2?q?1?1HABYzw?A(?;[?:u#(a?5X????>?(w/N??`+??S?@ D???~??\???i???????+??P+v? +???dzR2???46W?????^S??? +!??c9+??@ +T?S?q?NV :???A?F\?????6=GCM A +?{Z?\?????6????Zr?a??Pq???|??jFP??P????1R??4n)?t???y?L?NW????C???r?a???0??d? ??E ??z7cH???>???P? 9??'??q@?(n??+?v?!??????2*??@$fO??*O,/+???0r???'`?'??e 0ECu???s?/??d'??0c?h)??,?)?Zn?q??*A???J????jG>??1????)?N?@|8???@|`???P? 8??G???H???5,rn?z??B?z?N??#0???TM?????P?0??@y??8?0?@- `???`A(?????yo???K@ +0?????Q2????{???>?hq??A???(???2qJ????S????%=??=??????x?6y??J e_"?\z??H?+?T????7b)??&??q???O5??U???M????h??????????????????? ??6T?Q?R????R2?#?j?S?????T?^???9Ha??R?n6????t?P?????????L?}*7?p?8?? ?6! e???? ?Fi???????2??b:?;[???X0????0??Tx1??{?P?????@ ???;? +?M*W???S??(V???? ????6=GCMm?s??Z2c???????g??=)#"???%}}(??$`????T?Z???#XI??????1^???.?q?N8#?Rd?J?? ???GjyX%O??i??F +3??????ja??~4???X????` +???;???= +88?_C@I?W?U??\?????*??????)?? +%[W2 +:??*r5b9C???P?Rf?Z)(???4P?IEA?4???i?f?aC??M???-??Q??8n?n??8?? +?S?2??G?6? ?RF?a\?S?? {PZ*??O??????J??????)??@ ????i0} +QI?Z(?? +UvO?qM?? ?=)???*???'OzQ2??RP??z???\???tv??$q?F?'q??,?P}??ZQp;?@?0???Z??P???d=?m?. Zdsg????Q???Q?O?]?7#???,?Q??@ E%QES]?z?4?(?V???x??~?=?0???F???Z???\?[?????(??(???w+??Z(?Hc8=;??`?M?0????uf???? TR#??J)i(? ???????gp<*?9C??????/?@?QG.p????????JFP??:???B????:?q?iJ?#????`G"?'???du??PEPzT$4-??MOA?y???"??eh?r?5*8q????QETRE??^???"?]?+}????=?????????Q?L??rG??_?O????S??IQ??G +I??[?%-%??F??;?l?CSPy?`?%5?8??)??c??hO???z?KA4 ??crw?????O??1????)=)???8???V*6R?z~#?????J>??R??\???@?"??#?R? ??"J????3????G???8!? ?R?S +??g???}??xT??????P?s??h?A???00j?EWX? ??}???{!??????U??~??#???Jh????zZ???e ?a?~s?????? +8?F1??3&>????V???7??P?k.y +?M ?H?}=)??2????0?)H???R2???? +????????*vh?S%~?q@ +??K?:U|???0a?C(a?{R?"??)U??#H????VP?z?4?????n+??=i?g#??T?)??j +?r??*?n:C@ +? #??42??C??Z??[?(M???r;?????(H????K???^??? G$ +?J???????? ??@#??@PF???S???w??&q???+?u?4???{?k('=???7???\????s(??G???U?sQ???*8q???:????~??h??4?p????S???v??????????)??C?????I?)?????)?S????S??GJZ???,????%?? #?? ??-F ??o????? ???Lgk}???$?:?w/ ?Z}?`?????Lt???x~????????*zS;[??5%!?q@ ?*0Lgk}?????J?2QO0???0??cH?A??{ZVP?????v? +????5?0?? +-#(lv#??V ?~???>??s?????Mdz???X???n??2n;? :P????)????z????????=hW??p???P+????f?q??0?i?????@ +A??FT????A??i?t?BR??P???????/cP??????D???@??w???y?c????????????D??????T????(?` zH??????^Kc????{? #?ZiR d??z?d??????g=(V +??qC??5?vp???8 +8??<? +?{R??XTW~?'??H??????}i??C??T?`?S??8#??O?8?S???L???<6??????????;???tm)?:w???????7?8????P??n?????;@)??QO?Fi?J???(Jd??p?7??X7N??$?1??8?AqL'??NW????&?F??????????3k?rG?jA^A?{????7?1QT????????F??Z7?0??ne?0??R?d?PA"???8??F? *v?M?}??q??9|c?t?pGb)??.r1Pn,?F?=?????M?]?! })??9q??j?!??? 4QEQE??x5%L?ZJ??s???28??*HP?zU?p?"?R?*r(????})?QEQEQEQEQES0???i?PFR??9j?(a?????+?N???????U??>???(??@ ???2l8S??i?;?2EKk?9>?)??S,*??SY?`n?P?*>a??)?8??? ?)???R, ?7?F?3?x(?k??z?RYz????0n???i at 3??>? +??Q?????P?IE-?P?0 =(??+?NG+Q???H{??@????????Pt?E]??G.??Vd(h????J(h????J(??(i4Q@I^W?QU??H?d?_J?9Jq?U???A?d`???G(r(??p?????(??(??(??(??:??^H????OJ?ES??*?r???i?D+???9? +]???n??????(??(??(???8????*?>??????z??0zUy")???d????8?=*??a?hh??(??(??k?u????????B??"C??S?({TRFP?r???????8???4?g?j??? ?9????08?5b??S???? +0?V??S?GcIW)?F??+QN#a?>??T??@? +?U?%=???i&N???IMtz?4????'??%??(???=GJj?S???5&i??? +:??3D@~W??(i?pp???b???d?a??t?Mt9?:j?c??}hJJZ("?"J???H`\c??4? +???(N??c?_?Ja?x???r)?JaR?+??? 2(????????:RS0S?w!?#???=})???A?-?????????{?Jx`? ?@ T?n???A?Jg1????2?? + nv???????? +-5?$0??&?? ~^??@???????YCc=GB)p?????I+???V 2(fU?@??Er?uLFA?3&<r??????q??H?$~&?&i?zr}?&??00GJw??s?*D?>??_k3 ??jQn;??R?zSyN????^?????NV??{?Q???H?8#???`?????1??{} ?E#(n?=??*A%:????q??*p????RFJo)???E)R???z?????P??A???7?t"???Jg1????Ry?N?"????G6???b??U$m?;?n?$~u$q?8a?z??????J?`???1???&1????i\????U`????0a?sHT6;?P??#"?%??=})7??????= +5?' ??h(FJ??(`H?? A? {?4?0A0??G?;i\???HeP??????W???????(??S?8????[??RS?e{O0?a?z??????ZP??u?? ?CC(n?GJCu?????e??2????0'??@ +???e +???4??[?J????\???81????8?F??g?{????????\8?B)2????Z>e??z???} +(`{??he +?P?`?iV?9?4?2??????F? ???? +?O?? +(?? +(??QI@ E%?RQ@ ?0???? ? +Z?e 0GR??P????H?s?i?m>q?R?0H ?V#?7?@QEQEQEQEQEQE??8?>?Y????t???? +??r5???j&??g???X? ?? >?= +#J?0T?|??}???(Rr? +??i?h_CL?9??5?)??z?? ??G??M0 at H0?????? 'r??????????J_????J_?????????G??$???g??i???sB?@????x??q?h +?????oAMh?0 +???I?'???6??`?@???j_%j_*1?4?????_??!Q??????????0Nh???5g??????Ws?? {???r???@ ?@?o??F? ????9???? ????oQN P?nGcRP&?? ?y9EMMe???@?o??-??B?N????33?{t?1?1I??A?%y^???%?1??r????? ?E"?l?#??f????pGCH?I*? +???:hb?+????#?\?Hy=)?1???})???{????????????;?IL ?+???(?X0??KL*wn^???????EH;??q?J?d~"?k.H ??>?T??z???W? ?0?N?V +??u?c.?s?:?%[??t2??x=??*?l?#?????????}0?rp{?Z?J??:u"?a??S????G :?CpGZ +?9^??*?a?Li?t??M),4d?FJ????????E???I4???I?9???Qw???T?H\???`G?? O????J?.2N???T?%zv??\p1?)!_??i?C ?\0GSJd?xoZL???)??dt?V??aKHT0???T???Z6?9^??(`??????\?8#???S9Ou?T?????}i??????F at 0??TM!~??????|P?.qN????j?U@q??p}E?Q????z?M?N~4????T??EM???? ih?? +???(??(??={??P???H?0?PQ??[????i#+??h?R?V?,?H ??? +))h??P?0?x>??J?CF????$=?+(a?U? g#?c@h???<7????(??(???.???MEC??[???9" +???H?????P?)"?? +(?? +k?q????? +??,{??X0?42?#"?eh??q?@QQ???????4?!C?:????@??????'r????'kp??-!???Q@ ?r??q?OV 2:Q?????^??&?&i????qN?u =cMW*v??i?? ???f??c??N????y?@ +y=*<?r????(Ad(???;??qNW2(? e?wZ~h?V 2)i??%????J????:?}FABYy??E +??A???%???9\7?u??0zT|?????E?2:R?eJ?#??+?P????A??{Zu#(`A?@ ?*??#??????)hd(?? ?N???*?l????????=iU?{??Md +???C@ H????\??o?N??s?????H?`?C8~??9?0????C;[?>??F??????????n?????8??????7#?S?~*?????????????&w???S? c>???n????????Bdw?????_???J}???)?C ????c????cU??~3??`?6????+(a????1S????r??#?)=(???#?`?NW???a?r(??p?_Zu=)??????W?T??:E|???N???8# +?@?j?? ???8?E7i\l??hJ?p????piC??qA?"????%*O?zr???9X0?9?\????qH??&Ys????0???(???? +?p}E)P????[??c????3601??XY?X?hi???,%?n*Q_???????PT?#??T????~???)^r????? +???????????*IS?L??= +(pN:J????8<F?#"?i?p?#??Hv ?CQ4??Q??@i[?S?A?h5??\? ??h????= +?8??hC??} +??FP?R|??|??? 2?>a?iC?} +?8????0??A?nGp?4?J ???5J???4#N?q????,m),? +r@?>nM??h?????Ld?t?*J(@????:?x?w'??$??????J(H???Q??S??(?X:?t??????S?@???>?J(??? +??$?;??t?k?q??@?5?C??RP??C??????????}jJFP?? ?`7+???Q?z(???S???q*FS?H?{?4?*5r?????????f y+??zS?(V 2:R? +?r????_p?=?+(a???C?!_??}i?`?(h?c?????;4??W???r?a?E4????????Y3?8oZ?g??4Q?? +??n????c??|??hv? +7q??9?@]????v??JfA??Ji?#:i??g??*D?1??@???JP???{???t???W???@r? +w????????????bm#*1?N?e?#???['k 0?h +r????X6GB:?u#(oc??Zi^r????@n?;?5['u?FP?^??1R~t?*p? +??toJu!???????*p}=i7????@?$?)iA???C?o????*q?=iU?g?A??5??I???Sv?9^????>???$?x?=?Lf at 2O>??H???8???y?h ??????? ????i +??84?`?e???_^??s??KL*A???;VP}????W?z?[<?;?(??)?A????T?O???x#??v 0OzV`?$?Q$N???{S?n>\P@?ZR?)?2?;??z>e???? ??X7N??A?) +???A?A?!@ ???= +(p???X7??? ??}hH???O,????0???BH??1?_???Peo??S?P1?R?)6?~S?????n= +?p????8`E;?=E??)?x?N?A_?????G##?PX?Q?qF???x?iUW9?B?bz + _0*D????? +p?#??8? ??g??JFG4pG??+??A??>? ?K???????( O????i????,})???jE??????y? ????V? ???NV*r +[??????>? +(?? +(?? +(?? +(?? +)){?E%f?(??a??Y???n??a?2(?9$(}?(x?d?Ze[W2 +-T??85a% +????QEQI@ EP?(?? +(??f?(7??#??*pE[?e0EUW(r*?H{?TC?=i??r4r??&?u??h??(??(??(??E?g%z?T?PNA?"?I??q?Nx??Z??T???3U??? +??8 ???????(??(??)C Z(??P?z??????S??A$8?zzP???EVI +q???+?QEQEQE5?8???A?????Y? 0??PRP????U?2????????hj(?????Z)(?d??~?????:??? ???%??+?Gkt???? ?@???)i(??a?????4' >Z???0?P?"????Gr??R@?_J}?P?IFh'???:?R???7??F?????%%D?2????dt??(??h???T?P@????o?W???I;_??@?ES0??#?>??d ???????P?Tyh??)?@RP`?E??'r?5>?bI???j???s??????@?I??"????i?IE? ??EFT??};?r?q?^??A?`???? +??{?Jz?a?ij2?????? (?#???w?4????2?*x ?????NS??????H?q????`??????A?ZaR???=h??=(V +????d? +??4????H????6??q@SYwA???8? +0???L??`?:^?j?;>2h*?d??z?]r????????????*~nG???6???Ddy ??P?2??y5W??zz???y???*>a??(|????S???g???9jC?v??*0???=?.?dP??>???;d??`{A|u~QFi3@ ?}?x???}j ???EUYYx=??hoA@?P}?????????5?=)|??4-?=?|?=??S|???)w????@ E&???:2=hh??(?????.??????EYx?????vR??@G.8n???Z?NI +{?J?E5X0??????(?4PKIE-?P?IK????$?+????%T?#??????nG? ??9? `??Z??P??????u??QIE-?PEPEPH at a?2)h? +?N???????V?5 ?u+?P????? S??4?T????-5?0?>??????? +????{J?+?S??)i?9???;????H???0???`%x???##qL?&H?_OJ??T???G?86??E"?n?{?u5?G +?)?v?_^???7^??????^??A=(???????#??0?????%}=)?? ??K?a^r?i?t??YH9^????pF??P??B:?\?J?????q\??@ +??G +???pCJH?L?1??%???|???2??p(X?Ns?????Ax?5????T? +??&????????.z?O??$n???`?^??4t? ?8????{v4??8#???B{??? 2E???N +8????2?9S???8a????@0?????\????????t? ???})?Ct??P???P??n??+??(?W??)??$b?`?????-???yA???Zn?n[8?4?????MTi'???%Q??}i?A?j??:d??]?H+?????w#?S??J@??:?^?QM?(???H9^????8?} +???(?4?(~?????(`???px>???A???O,????? +??????|?/_Zo?+u?R%Q?????&c??R????F +?a?z@?8a??S??FGJB?????B??i??q_?8??>a?qA?B????/ ???$M!??????*Fc???8?d{S????0'? +)?)???A??z +?r??4o?( +??;????R?A??+?v?jk???pO?)r?/??T,?3?^4?? +?"?"????{????K????CI???????JG"?A?i +????????0?x;??a?#???|??S _??*f???(??\1???"??1?(X?W??a?p?????Ab:?????:?? +PCt9?0=??jm??QF(??(??(??(??(??(???E4???IE;?a?F?J???Q@y??G????GEK????iK ~QE9X???R????`?P?9??5???Uj(??????O? +?I@?????K???:??(?G??????-?USK???h?W??_5?h?5?8????|????z?xP^0??>?)S?*??????`?0q@G1 +???#"???g4???+ ?K@h?P?(?? +3E??Ph??_?Rb?P?????)?~+?NV +??q@ L?S??w&(?? 2)i?????t???????3iNW??T?PU?)???d?^??|?7 +?@ +FF????>e????@a?r)i??d????_<???0???T???cN?h?E0???N??7JB??^ +??p??iP?h??# ?8??(p??f?g=(??1??*p`FA??aR9N???4???^???F????xo?N??R>n???N???? ib?x?}j&??N)?]???Z??Q??Q????A?I???N? +?h?cOH??'=??OM*=??UTp(+?A??t????zZu ~?0???=)?e>???s(lv#?&?????)C2:Q@h``??+?:zS???4?e?y_^??CrE???^???A?M?@1??P8 +??Ju `? +;?4?????q?(??}?s???x?I?r??G$????L +?r???hZW?*tqc?T??????* ?C?(J?0G??K.1????8a??)C89?0??2?? +0T|??4og??J????0GSvm$?#???~?? +5? +97?;~??1?P??!???h1??S?aG?????I??L????*????e??*:(??(??N)?S???@ ?????h?????)?[?t????M6?_-??h???4?R?o???????@ E.????kzJ(?z??J(???}(??}(??? +(?? +)(????Z)3Fhh??-QEQEQFh??3@??QFi3@ Ef? +)(????Z)(?????8?K??M6?v???????????@??????m?5??G????Q@?_??5?Je?:OQ?R3???4?(???????'????=?GEI???????EEEK????>???EEK???K???j1@vV?. + !C??L????Mh?5 +%O?????(? U??T???W??4f?&?@??h?f???&?G?4}???????7?????A????}?J6????d? jx????{O??kt??{z + ??Q?#?"???h?{?~Ty???*O-??h?????s????#0????E???:M????g?4y ?h?sEY?S???????*?S?8????FF?h +???E\?a?Q??@0} +.???*?ESU,p4?%??Z???C?)?!S??:??j_!?qV(???~?? ^G?;??EB??3??;?O???Y9_??iL??0???F??E8(????7#????HW??>?%#(a?8??&*??/VO?Rd(?# n?{v(?D?? +Ru?##qQ?h?W??? (?V2 +-1?7#??i?B? +???? 0FE(???u?/?? 2:P??f??)???&(?????????z?Es??0?>??#???Q@ W? +?7?cO??#f????e?T%#(n??( ???(??}?GcO??*P????????? +"?q?_CN??4{??})??4L?T??@?e +??cH????4??>?OZ}'Zf??+??? )??$???X7O?????o????3L?????P???O?????????? ????uE) rH?4??=?&?$g?S@??}??EFf|c4??~U E^??+?ys?i??#?T?H9_??X7??4?( +?????t#?.iC:ZFP?^????r=E8???+??z?~{?Sv?r????x?3H???4+???zu"?n?isMe??}E&?? 8??+????78n +(??g?8???8=?i0?8???zr?n??7%????????'!?>???"?X??9_??i???'??h?9<(??4F?rz{????????q?(???sO #??(???-4?9^ +'?????? +??v 0Ju!???????hJ?s???M?G???P??x>?????) +??4?y??7`??=?J>e?? +P??E?$b??.????@H?? +??A??;GOJm?08??S??0??Gj>???5)? ???Q???4?p>C?n?????????4?? +iQ?G?Rm???{Q? 1?@?Q? ??p`? ?G??????R?)>`x9???1??T-#J?W??@y???>?? c?????!GS?j]?~????? wj#"??'=???=8>??9?? +??xP???????@??4????q????@[v???f?E?yZO?T?"?? ?tj?0?????z? +?y?a?C?c@t9?n?? P???R????????>????L0<?C@ :?i?6???P?]???j?????Qy????9P{P?}0}?n??6????4GU?????????zP????p????G?HPv$j?I + +????$?2????)??? ?????!O??$???Z?E?? +(?4QETo|??Rf???P??QV?C????Ey?Fi?#'??L??-??? +:??9?& +????RQ@ E%R?f?Z(?%-????J(??Q@???y ??G??????"?W??????h????4y ?j\Q???_???!}MF?????????:_%}MJ???{Ph?!}??S????"?S???Oz????Ozk????EO@? +??6qS?# q???ZJc';????*??moJu#"?_????3!?r?? ???S +%????O?????????MdFx#???*p?;5IH at a?8????I??T?? ??&i? +?????IE5_<?????,? +???? ?oJu#(~?{@?4??8~??:??1?F?W????4?B ?-????_?R? 2he +?????9^??R1P>b1?@ ?\?hN???;? +???8#?0LCu?BK?{?r????????0??q??S?;p~??*D???? 9???9c\??????a???UW??p?zS?M``?r?y?}{??C L??y_ZPr2:R?##????^?jP?ph6??O?????} +;?x?O?>????p???2??"???f<)RnO?H?:}MJ?g?hX?A????\c???0???i?????KHT????,?{??(+????P?a?N??? ?2(iA ?>??G???4??8??h7?nG???9Sv?????`?)>e?9??yxc?? ???@ +?????^MD????R?$`?????!?j??Q??i???;v???jZiPNzZM?G?F?cp??,????)C3HT????R i ???z2??2=E(`G??t<CKH at a?3M?(?NG?????pi?6??jc????8s??T??3d?=jq???9j2??2=E0??CJg???t4?0FE- \??M?????0???8?????=???CpO????s?@?+no??V(P???l???PTO_jBt9??????u??@ ??E( ???GZn????)Py?>????Z?? )?K?z??M??7?G~con??E??~G?????9? +?Q?:7?A ???*0??F???zq?})q?????? @9}(BE6G1??@h%??:????;?OJljdm??;T???3@???;????(?? +(?? +(?? +(?? +(?? +B#?Z(?????P??c?????lp??Z?9U6R?sJ?<~F?-?MG8??N??4?Pf????PFh???\Q@ dW???x?u??V?HFF(?JW????? ????%:zTJ??#??[????CRPQ?1K?J(?? +(????B??_????+$???*??q?Mx??Z?????Z??ICpx5%QEQE?e 0G?Pw??9S??=&?????J?}(Z*?H??0?? d(h??1F(?? +?????jZ(???|???2E#?q????????@(?MG8??N??(???r?u? ??V2)??;T-C??*?Ti(n???(??x?w'???"Iy??5KMt0z??a?#?2??5???A????Q@4d????$???Jc???????;G????R?9R?E1? +?F?i?B?l???K?B ?@??v?\??=*Ep?????)(??y?N???Y!\`????``?(h??h?|??????A?R`??(?????S???dR??b???O???j2??)???%?p?8#?4?c?~s??)?;_?oZ???FQ?(?Y9^W???p?"?????v?>?`??6???f??7^????)???O?'Z\?Q?)?????p?c?wQ???md9O??? ?:???z/?@??????????3?O?????`???~?J3?O??af?< +x?{?h3+???????j???6?R|?????F =??O0?8??O d(????0}GJu????a?q?/??>???G????Z@?!X`????8#dSp?>_?zP??H??cJ7O??@??#??B#?g???????=zSv?????iC?\?+??#?????????q^??@ 62)?d?0??????FG"?M??ph??????????`?????Q??8uKQ??8???z?v??N=?P?????,???)va?N? d??P???S~e???O?iw??? +???Q@ ?B????Rm???{v???a??=?~a??&?yR=?PX?? +P??4?)?QF?8$Rl? ?Jr?9??X?*?????????tQS??1@ +#?b??z???z?iQ??}?.????a?F???|?i a?9??.?E??(??(??(??(??(??A$=??=K?i??s?U?4?2M???CI@z???UT???OJ??????(????(??????()h?? +(??R?@ ???2??OER?(?r:???????:2u4sg???R?*?9J`V?,?H0???^h??(??(??3@Q@b?FP?qU???=EY??)?Au???<7????+??? ?A?@(??1\?????A????(??(??(??(?I~z7?>?h?+)?,svo??e 0?*????9d?*?HS?OJ??eM:?(??)(h??) =(??+?^G+K?`7J??C$ ??}(PA?t??????jt??N???)(????Z)(?x????????=$???)?????@QP??????2QE?=*"?)??*j(???{?}F?;? +?H$*q ??hJ(?? +cF ??5>???s??j???`?2?u?=}(Z)? ??E-F??Y8o?O???g???)????7?|?+?????FA??4???qL????}}*JJPA??*"?y?????1???(??d`???????????=X0??5??;[??%??D&????g????b ??Z?+?@ +"A???v?oJEp??_JZa>?#??+?ii???zZu??x~=?Ju4?$? +B?xa??f??a?2(h?|????? 2 +!PNz7?? G1??N??A?@??1???iC?:???T???R ??N????@h?m)?:zP????h+???z??????c#??QM?Wy??V??v????8??*?x<zR??x??y? ??? ??x?d?tQ??Q???&??%#???zPXg?d???? ~????(??R A?:P?F??P???M?\??z?x9?nYO?e??2=E??x??????FJiPN{????(???qJ??1?(?3????P??????*3????,??hH |??5???^?K6~U?i?E??5D z??#??F????'????????7??(?:>???? 7Q?B????ja???@ ?????&?>??"??uP]UKg?@?*?9??@?f}????L??`.??a@P:dPwF???E?pN??|??JzZi at ON}?J??P?h*???@-?~Te?`????B?b?;???h?3??,1?]??|j??{????f??=??????????t#??8?4??A??{??(?=h???.s@(??(??(??(??(??(????(???F????$%rW??QU??? W???? +?A?84?? +%X?`? +???j?=%)?Q@??????J(h??-Q?(???Z(?? +(?? +B ?E-V??+????1?r84YX???? c????Mt9??(?T;?"r??( ???@ Hy?QEFQ????,?????????:?G????? ???v??fs?J?Lr?|??QUK??=(e?nA??cHg'??4D??Zq???s?@ 29?*nI?54j??>a????A@?7n??8??3?w?OEF??FG?Z?(????;??R,?6???? ) 0EP>h??K??r?a?ii?>m?ph?f?W?!??@?????w?????Hhi)?Jd?OCJ??_Jq?`???e9S??;?(?}} +-5?7^???????&i???N??N????+ ^??=zS0??G???YC}}hV 2?*u3q\?z?Z)?0r?????Cu??H???})??????)??d)?(^'??g,s?>?a?T?y? ?X?1????X??=MN?*????X??8???%?O?R?iNr +8 t?HPzQH?0?? )???q????-4?T????;????8n +:????QM?W%O?@?=??H9S?v?_<??P?????@=i?*?G?? ?? ?G??X7?>??? `?:?Fp?&??PxQ?z?+>O$P??????9b???#?T????z????q?{R?J??}E!b?FG??+??pi7???=?S??J(3?A????A???A? z0A???h3?????h?*=?i6?????a?@??? +C*?????I A?MB??9'?s@g??:zzT?Q????T(0?= +(`x<C@Xy?S??ECu??!_??0?q???8=x>?? ??q?)??84R??@ +Fz?i^?qG??Z?????X?Q???%???????\?^??????4GQ???*yS?'a????H? ]?u???iz?@=E???GbG???t'??q???Q?u??8'??zS@XI?- +?T??}j`r2:PEPE?????*M??? +I?k"?^???3P?xq???? ?@??(???"?I@|????"?a?ij6?rp?.i3Q??;_??(??L????8???e?E80n??i at N??z?}????q??:S? 0?S>d??_?S?I??ii?????R+??c?IMd +????????????FGCIL(W%??@RSC?v?????J?S??W?????e 0E:???)?????`? ?2?????O?2=E>??S??##??2N*???c??????@??? +??l ??R,?7OAS**?q?N*d?S????* ?C?)2T|???20G?????4??#????JZB??????S???Zq??7iQ???CNRdR?Cg???4?B??"? ???????@A?^??r8>??p?????8?? A??=???y??b?A????&???>?|??xPt????p??n???4?????\?^???Y76???z|q???X??????K?#?R??G??? `x??KHT0?RGF??)@NG???t?????? C??9?????QM?N>??A?*??s??$S???*r?*HP&??jtHc?+?{??&?????C?A?Fh???q??)0???P{??$W?n?PE( ?4n?????g?E)?+????sZ?#??{?P???????{??h%?`Jz?(?^>????&??)i???L??A?I??4???1HY??c??#??.?y>????9S??Q/?e.~????? ??8q? +Z? #?O??7??%??(??(??(??(??(??(??(??(??(???dQEWx?^G?EWj9"?C@?C9????G?M? 0l???J??R?EY??X8?4?QEQEQEQEQIE-?P?2?"?(????^EGW*9"???:???=*?J??C?U?J??%]???6 +????b?@A)h??JZ)(????c???}j#?EZ??F??#I??x5%WxH?#???+? ??E !?A???(?QI@ Qm?p??)?Nv???P????????9???P+??>??Lu9???M????%!??8????Md 9?????nd??G?<? 9?2?C????@?pi??:??pGzg??1??@TR2???;9????lS@J?:??H??x???HUy???T?QI??7=E:?PA?x??0?9S????8a?JVP~???,???z???(7J)???QH\?7t?????j6??8????-??)"?'?@KJ??}*T?/-??yk??;?2?9???z?O???( ?4????????P??O?G]??????????ZP????K@ + ??ii???8;??? ???=???4????>????F +1??r;@r???V.???; + i_??V#? ?=?2$U????jN?i????C@ +@=E0?r= +&?0?8~t????????I?t?????H?x?4#???S??h??p???A?E4?' ???q?EV??J?q??e???}H????????F????I??R?CKH@=E?Gn?0?r=?7`??=?~`;?<zPA?ih( ????A????4?H?????/?9???????4?O?@?w????????@???????*??>?0 ???-?P?IE-?P?o~z5>??7???:J??8js??P<$?#??,QU?b?7"?V ?Z(?QIFhi;QGN??J??????+?*R???SH?s?H0?9?P1F%O!?? ??Uc3????#??4h??????P?z?(???TrH?:??4P?FN?=)?g>????]?V4? ??RX?r1@?S?i?$??V?????G@?*Z?"s??P?;MY?dW?9???&?#Q?EE????*?????)(??e0EPXx?|?R#????a??S0?x?} +*??????u4?9S?M3(????Fn??0? ???JcLO??c?*A '??#??rjD??^J?y`?S?? ??_zp~???4?B???-?2?9_JU`??(*`?L2?0?i???0n?})i +?9=}i2??????M( ???S? 2Pw???)??{z?M+??p};P?``??w??? +:??.1???0=>?????z???)?2????0n??J?i???@o? ?O?P???g?Q?6??~?+??c7?B???{w4G????j?L !?*?E?P?8???@???)???4??????#??E&??p}????9?ny??8??h??????=y???=G4???????t???,Q?S?t??? ?q?z???]?)????~fv?C0??j????Gn>??p?3?( ???e??^=E(pN;??????aB??K{c?OZ?fi??????(?????`is?i7?~>??$x?d?Z???OnG?+?J?T??J)?#!???L??-??~T??A??I???z(#??QEQEQEQEQE&hh????J(h????=)(?d?????P??c???}h??9?????P?? +?x5-R?b?EY???dZZ)(????Z)(????Z)(????ZFP?f?(??W?????G$A?^ +@?2???e$W??????8#?L??^??~??:?Gf?(??(?QEQEQIE-G$A?Z}Q????I???%C ?P<%y^G?L?qN?y*r +L?d??Z??3??QEQEQE%-!?`??(?^?^???C??*?5?W???$W????U^6C??OI????=??????P?@??3???O<v?&?????E!??|P?*????BI?h???:?}jJ7?EX?9??`j +(S;?SL?{?(?c?F??????QN??O?N???????R??&? ???I?1Q24gr??`F=??\???I?p??? ?O??5%???E(??PY?P?x?A???JjH?????5? ??j?T?q???? ?Q@Q@D?s??KED????>?-5?\`???????=?,???JZ\?IE  ?Qa?$??}*\?@ +I?})????????2=EKE ??20G?T{Jd?????W +?}(?QE1?7 ??E r????0??@ ??Q?*IC???W?0} +>???P +r???? ??? +.qQ????KH????o1??????hV????5$???H????J??????p???2D?~o?R?v`?N?jwj)??? }!P?z??Ad??Z}???Zi at z??Q?????Me +???? ??,??????) 2E;?@y??E3yR=E8?:PY3?;O??y\o??Jq??T?S +??N=?Q? 1???@=zS6?9S?pi?P??} +-!??3y_???hJ?I??}j7???zS?"??G????8?z?xF??*N??Rz?)???##?R?C@ ?????qQ??S???r(?*N??%???=?H????????J???8'?-!?j???P????_??#???o~???2 ?? +X?T??????N?IHPG??HTc?)2??d{S??? +??#?R??????(h ???????v??j6?9S???/?nR?J(???@?????E???b????O_ZtQo????????@e???@?????@=E7n???R? +????(`{?t? r?*P??a?iz?(F???A`:?)A?????ZM???i?4??*p9=)?!?l???1id??*?`#??n?????? ???z?A??*;>???z?iQ??a??????a?????r?????Rn?QU?>d?A??>? +??y??LOz???? +)6?AAOBG?@h?4P2?#?????yf??)QV^%`H??j?)C?((??zH????XI?}*??u? ?T ?????2?????uQ?:?Q?????4?(? ' 6???`????????@#(a?Mi?t??iY??{P??d ??#M????5"???A?@ +f,y4*3t A??#?? c????S????S?E03/?z?x ???E4??P?4?)??@q????@@#?M?S??CO??48'??4?R2??)?t<|??????p?:???@ +)??8>???c??:?20FE.h??????CJ???4?f?T??v?RPw???^??1?aB>???>?f? 0i???s?????~>??hyu??U?B?zzP?68_????ri?0???jU*?.6?E?@??4?e?r= +:?@??t>????z?nO#????A9?}E?8<CK@ +?)?dz?p`?(?* ?Q@ Hq?zR +????hV +??m??N=??>a??KE???i\}???*>a??s(n?}i?Yz??)u +[?a@ $??Q??:tP?????r?? +???x?4?hLt8???b?@ x~"?0a??-!PN{??^(*?4n? +P??t>?? 0?iw`|?Z^?u????`?>?e?Q?q@????5??????A9??Ui??@( 2?????P?t?$a?z???t???????Q?#??0n??XFG?? ?y?4P@#P??&?BE??3??( ???????8#?C@h??????.hh??? +(?? +?? +?????g???2:????N ?@???}(z*??????r(sI? +%.h?%dTF6C?'?R???i0<0??)???#?Z????yhj)? q?_Jvh??4P?5oc?N??"????+?R+?E?d8>?-???>?'Z(??)?9C??????;\`???????cG??C@?LIpx>???(????T?>??yN}?(?h?????!%[??????@?Y?z?}@?3u?j?n:CO? ?8??e?!?????,??t>???B???f0?4%?un?} +:?P7=????>a??)?Pd)i?NT?>???Nq?(JFPz?29??2?G??W q??ZBu??S0?8???!?@??? s?????? ?5?.y??J???(??z?S$AynM<*?? RW;NG??R`?)???>??iR?x?4?>??z?(??+?O????m4??)0??r= +/???8'??? ?4??I?x?4??J?s?}i?a???@ +??xP1?C?ii???f + =)?|?N?= +Wy ????+??8?$q???s?)b?(?z?*????SM ??G>????QM???q@|?O?a??PAZB???????F?'?7?????}?*G?8??[o???????z(??????r?hl?@ ?@??ztq??q?CL?A9n???Y?!|ujPA??) +??JZB????~?????t????qG?J=??0#?KA???t??? +0W????R?#?9??)???C?(?S7:}???)??4R??ZcF???z?M??|dz?????C ????2P???M?H0J?4?})h???"???O?};??h???})???a?zQM??~a??%?Rd?(u??)?t? ?????@?"??~??E;?7f3???FA??4??8?E +"???(g?5Q?f?:???#s? +?8????ScC?.O?j?2?phc??{P x~"?E????J)9QF\~a@???n>???8??i???}???p!?) +s?}E-/^?)?0??z7????@L}?Ea??}?:?????PUU8?n?????2~??0>???8?}???9?f?t?@,:?G???'8????????8???????"?0n?4RS?9???:???L?q??R??F??i?.>r;P??@?FXvR? +??K@\?ZPA?E&??zjZ??!?F??????s@\t$Q??PI???:?w?"???$??P?(??q??~??T0/?[8?I??B((??>?`?cF}A?z???e?`G?.?cK??hu=????Rl?G?@?? F?????? ???????`?x?P|??5&?x????1????0=????*M??N?8=E[??>????{z +??3U???Hes?Tk4UM???I????? ?????:???h? ???) ???U(? >r??t?'???P??r??L??(??)C9??w???4??????RO???4PE??f??Z)(????(????Z((??? +(????(??????Q@??(?????Fi?[??4? ?A@????V?)D ???4??B?N +??????(F=??(????R??????"?i??O??#A?"?;????? +??jR?U?B ?T??pjd???MxH?y]?h??#'N??:HzJ}?P?IE-%PE?? +(?? + 0Fh?? x???G?F??85n???????I???>?%Udd?#F??9??@??7>?0 ???Q< ?????oJ??J?& +????QE%.h?PEP?T/9_???%@??6H?????H?`???h?T?(?i*$?<7?(9(?4f??E&h?-!???4D?r??Jn????sMt????9?RTx??H???>??ZCEf?(??????N +IED$e8q????8????8?E>??h??w)?i???J?=??0p????y???????9S?n????0??j}#(=E( ??Q@ ?/}???*?oc?ii +??Z3L?(????8<?? ?JiR>?c??8?@ +/??=?.sE4??A?}??S 2?FG?? C? +???)??5???R??\?????l???;??O?*x???????8p2?O?O?(???4?B?????>??@ +?????8'??N??@-4&T??h?A???Q@*Q??ma?[?4????Zi}??1?N?h?????P?n??&??A??Q@R??@tl?hH??h?})2???{Q?}>?????z?+????,?! ?V?wH=?? ?(????y??S?????z?hR:1?h;?@ +.??M????4??T?7Z2??4#????4PS????\ ?Y??Iy??z?????Scb)p????W?Q??HK???4n=?????>P +7Z7/???EQEQEQEQEQEQE%-Q@?P?IE-?P?IE-RP?EQEQE?4Q???E4?)?K?R?????S?)???z*??????Wk??F??MZ???+\????V?h? +?!???Q???O??y:???????T$?d?zz?\??J?\?R?X??0??????Sv?j:?@ +(3??O? f^q?)?PC?-0???)??s(????E"?? ?R?v??i?98???Q?d(?l%~SI??|???F?? +??A??n?Q????}??????? ?M???q???yQ? {?}1????}E)pvx??9s????????*XP[?vC?0? +??7Q@ +E?}??cF?????????f???)ih????=?8z)6 ?p}??S~py?jP??g??QI?9??z????zv)h??~?:?#"???8?R9In?????~"??M???,?w?VP???z?l ????SP?4R0 +?R#?????Cu>???0??C?GF????}????Q@ ?4R2)?9?!?F??????>?n r????h!?7?U]????y?jq??Q@??wa@??P??? +??(?q????!Pz?@Xu???8<}h +{1?.:??jZZM??s?????0}?ii?n??? ??????i RCqM??8?*x????q?g?K?w???Z(7??HT?Q? ?-?f?C??c at -?*6/n?\?i ??#?? C@ ??B*????}j?8?UXy???z???RS?P????L????ZB????????????4?QEQERR?E???Q@ IEQEQEQEg?-%8#t?T?S???Z?@???V^??ZCE%-I?Q@$??P?z)??\? +rL +???A??~?{?(?w$??PH;R?Q?E:?@?KE%??PEPEPEPEPEP2?"?xJ??"?Q@?*????}EWd)?q?@ +?2t??S???????@h??1 +???? +?9???JZ(?? +)(??(??(??(??)(?G>? ???QV(? +u"JW?"?x??????(??a?ij?$t?S$???? ???????J(h????J(h????J(??N +@?P??=j???+?????W8??D??+?T$??P ??'?????Jc???C@??-V??>?*J???@??(??(?????\r??????????????????(c???iG^}???'?%J???EFY??&???QOX??`T? +?O&? ??5"?{?T?`zR?F#??&????}j`(??`? ????????e*q ??K?Z at C ?K@Q@?Q?\??RQ@?J?8???ph ?3Q????p}(Z*%??8?jA??jZ(???E?P?5%??A?z??` +Dc*s??? h????m4?Z)(?dV???)?x?????(?WW?????{QHK?_?z?? (?un??@1?7??S??"?????F2~a?Q???/??vs?i?8&?????"D[???T1??wJ?2?C@ +Q???????PJr????0p????P??J*=????(G???)d?Zi at yQI??|?p??J +??Md +?C?) u??:??I??? ?????? 7QM???c?N?v?r????~?8??Z@A?h?d +??????U'9??3?L??c]?n??????????Z]?~?q?h-??/?)??CKM*????????HT?????7B +&?????\?U??S?? CKM*QH???=???A?I??U??Ra?iA??E4?T???-?u??(????#??:\?`z +C?t??1???E6#????'4? M??????,????!,????:?h?w??)wQ?????@sIHQOjM?????QEQIN +??4?S?/?K?7???????~T??4^??"O???(???*?O@*Q??5j??!s??8@{??S?@y???B???IE4F???v??(??( ???(??>???W)??^??Z?s???Q?M???2t??i?P??\q???T??EJ?c????'??FA??Z)(????@ E%?RQ@ E%?RQ@ E%?RQ@ H@#?P/W?5 pG5r????s?@i??A?x?y?)?a% +??RU:zJ?????,?MWW???@Q@RP?i(?4QEQEQE?0GQ@?8?y??????V????G?@???*?%V?>????QQ??*?L???*ep??uQ@Q@RP?QEQE??? +-]?+??MW(x?U?'??%V???*??C?9%e??? 4SU?????-%PE?? +(?4QE??s??%Yz{??84M??????2*'?W??Q?x?:{P?)?*??????(??(??(??*'?u^??-??????U??}(r??Ur at l?8?@? ??"????i?3O????m#7S????@zT? A@??f?3S?*=??H>??????P???2?5b??0?Pa????LL?1???&??@?@?dt4PE.(???0?R?????s? +9e?6????_???EC??????NY????IKE%-%-?P? )???r= +KI@ YT?~S?jJk"?Q??x?>?2??SU~??CO???(C ?L??????jJ(?Pxo??}5?7Q?aWO?r= +IE0J?????????(?c???Rd??+?)^EN?}*??????@??)??????)U?? +;?i?6????N???????A?A?QHQI?C?(?S~u=w +Q ???M???=??Pw08##?R??})i +?u????OrQw???bw6OS@???q?*m?9???9??i.?? +7?s??:??G#?Z)?0>RE????????PI?p} +:?C????w???K@ +?????Rs?ia?[?4????/~???@?*????? S?g),;(?v??M??ZQ???E E?@???QM!??l?@b:??@ + at n?P?j?x????;?`??~?()?Fi??G?4???EC8(?%????U?? +?I?=?]?????{s?)????????????t??7??N4???????Z?7b?@???E4?????zI??5A +&?4??G??jY >?`&:3~t?>????ih>@M???N??p???7????N? ??&???v??)??4??-?4QFh??3EQ?3@f??E?4QFh?Q?3@f??Ef? +(?%-D???x5.h?S ????[e 0j??+???4Q@ +??? +XICpx5Z??EWIJpy:???4?QEQEQEQEQEQEQEQI@ I?ZJ)??N +>????pG?M??G?B?w_??!*d?0??DF84?pFA???+9:??????QEQ??(??(?????I@ ?)(??????x??}U???~4???Z?y?^?O?@ +?t +??????T? ??iU????-?Q????jJ(???E?????4QFh?Q?L?Fz?*'?9+?T??W?=??R~??:??8??&^????EUV(r*t?7^ +>?(??(??(??(?????Z(???????2zz?Md9?dW????Uw??????I?0?"?'???wqL3???? i??z???f?x????&3????m#7zm???? ?3@"????L?*{?Z?H2?8$?{S? ?? +F ?}?p?t?SUcO??(?QE?E~??ZuG??9???7?R?5c?@???"J??} +>?1EQ?(??+?G>??Z?E??????{CO?? ??>??EC????W??E~??Juw?? +(?????QM????????Y??Jvj7??=???x???=EMFi?????S?@f?FP??Q?x???= +K???*z?P,???)?4???_?????zv?PNz??"8?* c??Y????a=??:?(?S?z}?,??F??L?\ +??????&~A????K0? ?u?Q???=h1 ?????4??@????QL??{????C?h???9????/C?zP???}??u??E3????????z?G??PFz?@?zu0?u%h,??r=E:????YCE1??~?Gl?s>[h?)?&r??C???(?PP???@{?{??h??? +8zR? `????QM?????S?@ ????%~???qE7,@?J????i??hx???T?>?|???#m??z??p;w???pA??[q????X?\?????hpz?zp ?M1?9?????h ??#???u^=E)??????2???- ;???,GU?QN???S???'9p;V???Hq@?1???? yc??,????hH??*??>?S????7k?\??4?f??T?v?=?.i8?????{`?Q??G???j????M&?-???'?x?@???Q?}?*@?}G?R???a?(?;??R?@K?? +7yQ???? +??t?????G#?L???P?Q????(??(??(??(??(??(??(??(??(??(??(??(???????>?#'Q??Y??S??< ??J?????@$??????'I?7?R???T?U?z??3Q$???RP???Q@ ?3IE?4Q@h??(??(?4????JZ)(?????2?"?xH??????EXx??`??.??zz??2p9?:?????Uh?]????p??Z?X0???D?x<CO????)?]O????%???p??????QE5?X????z???>?hun3???k"?Q??7?????E1dRq??u.i 0Fh??????hc??????4???(?##??c??;M&?O?2=E>?@??A?6G??{???Hc?} +V??bI?R?~c??,`G???L?sE7?^H???~h?F7?_?{S???}?B ?KE4!Q??????1?N??A????7`???j????)?@N:CO?dV?)0?89?4?L?o??i????Ru??;p}??ZW??v*GgD9 ?????%?y,G??( ?C?)TmP=)s@ +;???F?:?>???P??????JA?}P??y???N?zP\?p}?;?B???L?w????A?)?9??E3:6G????IS?P???K`?3???f?5p ;Pa???t#?)?)?PC?8?>??HT7P +&???@?? +??aA|uP?QI????R? 8"??w????u"??L??s?q??????Z?Fx#5Q????[^jZf??????hi??O0??????????t ?i?`b:??K?G^>???@?? ?4????h??? 2?{UXN%Z?????EUS?A?h??SK?????H ?????1?a???.:1????Cv#??q? ? +:????Q@Wd<??$???}*?v???2?y:?a?h?RQ@ E%?RQ@ E%?RQ@ E%?RQ@ E%QEQEQEQEPT0??????*s?QU?kF?9??@(?&OqQ?R$?????tP?p????T?A??|`7#??'??0# ?Q@ E%??Q@Q@??(????JQ@Q@Q@RPonW??PT???t`??J?????ch?,???=?U???U?? L???FY?Ri(??(??)?7A?2?2jqN~?(P?(??^J?*?????@T?8???O?SQ@?FN?CS????? ???j?????? T 1^g??VVZZ(?QEQ?ZJB???Q@4,??? 90??OMx??#?ZPA"???o???jrN3??? ??FA??(??(????hy?J???L?v??j`??A???a?2* /(??OEB& ??? `y"??(???I@Z???N?RQ@??????V 2?????*H4-?????)?E ???&?!z??o)~:Je?rNMI?5b8??y4B\d?S????e8u?GJx`?h??Bp2O?B??GqU????N???n????:4?'U????? W Q??G?????$??i???????CuQ@ +??[?C@?6???F3???i???????W#?P???S??u?M???b=?>??\????QN7 ?E#"????Sp?8;????r??V??>?,G?u?h?P +B???>???0??Q@?????i???Sv9V?C@????????:?????Pc?)?Pp:???y???S?O???J3M(??A?a?p~????????G?R*)???b?3??l ??G?En??zT??\v?@???????hh??A?4?0{?Zu??>????S???=?7f E;?????4?f>??N???????yo???0I??? ?R|??4???2???I???z???? +4??H?i at a?@?E-????#??y???}?:?29?????1????@???J?Z????Uy?????? Jr??GZ?7??8?\S???.??)???????????_?w??Q@Q@(%NA??I@???????x?T?v^??? tTi2????QEQEQEQEQE%??PEPEPEPEPEPEPQ?J?? +IEUdd?8??????^y^=?( ???I@V*r52L???z(?U$d???N?+?t>??)(????)i(????Z)(????ZJ(??(??(???????:????g???U??? +?x4^?Y????R???-++ +:??T?je?to??&???@Q@Q@Rv????4QEQESZ5~?}i?Pg???z?uv?x??p}h4???S++t5Y??^????r4r??&?????9?QH?rhh????????q?? ??N*6?GNM at ry4b?fc??I'??(??????1EP*E??s????y?,@?X ??>??FC??OIJ??P?? s?O4?eq?i?QEb?(????Z))h??'??*???rqVh?np?=je`? ???+t???L??@h?R~0????d?(????Z(??(?4J?'??)?Pr?%zS?`~????%`q???4Ur$??"??px4%Q@Q@?P?`??F&S ???R?@,?`??X0?9?????F"??o??&??Y???}jPC ??@ E?QH?d?y%-??P?L!y>?^?(????(=??}x?????? c??O???Q????=E*?????@???)?1?????}%3s?;???*)e???????????(??f4???Gl0??jA*?*}??QEd`?? ??}G?2?(? Rb?7"?Rd?J ?h?%D?d??:?G?QEQEQFh(??ZJ(??(??(??(?QE!??B??+?T?P3?^?U?@????^G"?]?????IU??}??%]??,???EL?????@?4?P???(??(sFi(???P???Q@ ?) ?ZcJ??O??j????#I??n*\?-9+????x?q@???en????J(h???4?Q?#?'?7#?R???}?Dpy*???} +8?Q<*NW?@RUp?E??*?????EPIKI@Q@??9??L?( +???(?8?:8???y?x??Iw??*e???(??\R2?E4+/?l?C@?????J???????????\?'?A6 +3??1FH?4????jhV? ???????R+?X? +>?f?S???)????i.??R |???B?3??`?PB?##???w??G???????,? ??<z) +?v?RSB???h,?????E4:???)????????S???i?PF?? +?P_?{?????E-!U=?7`?a????#????w?*?M\?Zj????d??????P? O??7??M!r:???>??$S??t????4?????E0!?~oP +u6E??=?78???P??#?(?M?E??[*???Sn???) ??Pl_O????0??@ ??????\?p?KEX??(???v????|?J??S?0j?!?#4R???#??zT}?QI@ E??V*r +L???5-[?QUU?z=*t?_???EPEPEPEPEPEPEPEPE%-?4?P??J(h??4??f???S???????Z?0GR????+?T8???@ J?P?i?P??[???*?=%e??(??(???Q@Z??R>^ +IEA?H?Oz?eV???O?*?a?s@ EPEPQ?H?????4dN?2?r?????i????v??P??C???-9eV???4?(??-%@pF????O??#???????????kF??????TY?:????+??:?p ?EW?M??(?>???)???aO?=;P?-?b?4???G??(???t? ??(?e 0Fi?G???i?P?G??{?z?q???M1??>??Fj?h?I?p} +:? +FUn???n?Q???h ?|???u????:????SJ?X?c@???>??"?"??y?4?)(??k???!:G?>??v$A???O??2?)????LP?)??X?c at gy@??$\??zuz?|??@???R?a??1J?U??h??8'??H@=E&???????m?tl?qJ???@?? H??????N>?^S???XL??lFA????9?Y?8n(Z(=:Q@Q@Q@Q@Q@h??(??(??3I?Z(???x?Fz??EUIY\?CS???t>?????#?P?*?J?1?{??"????h???PE?????3Fh?? ?2?u???Z9S?E?????c4?P?P$??8>??U?9S?E??????,?SUn?>??@Q@Q@ E??d??#=zUyU?p})^l?/OZ??R??N@??Q@ J?\?~t?H? ??G"??? ?s?N?P?3EQ?(???Fj# (???h?D??:??J?d^??&?uS?@???|??????En??Jvh&?J(??)???G4?(-?'*???L3?M>? ?????Q?})??Mw???{ +??G???J?4??????Ztj]????????EFU?h?~???(\??j??CN??=(? ?4??b??%%0?/?_?S?+ +-1?V?>??EG?pwzQ(??i?? )(???f?(?<}?T?]?|???)?P+?t4?k"?QH???}?+??&????+ T}hx??KH?j??K@T?i????{S?h??~???R?V?q?i??Cu?S??~??s???z????$S?Zu????Z(?2??{PY????O???)?>?????z?i?g ?}?A9??AN??????????? `??@??C?t"?@@=E'?;d} +:?hY?=???C??(???????3??I_?? (?|???@r>?????M?????hH??? Hq??U{???@!?;[=*l?????j? +?a'?8??zi?PE?????(??(??(????#?Z(??u??*pF +]?e 0Fh??/C?N?+u??r?=*0pG4v???2pG???Un:z}Q@ E%?RQ@ E%?RR?E%??[8?? +!?q?*?]&e#a?E?[???T?W??5et8??*?????,?}??IE%QE%u????:??i??C? ?QR?@ +Y?i???[????D?w +??OAU]??{v??]?????54)???{Tq???j?-?PLJNq??)??C??RQ@ +YT?x>??MeV??4?-??7?hJ*?0?.=?=Ha?s@ E?R????y`}?T?PE?2???K@ +?????????G>??]~?q?h?S?"?EG???=E(?{?z}!?#"?9?????????y??{P??0#?)???h????????P???Z???}hB??G4?}?#?O????.G???????A?Fh=9???????4?d?E>??????? ??}?? +(??n?h?GL???R?q?X???,Tn\s???N3??0?Y98U?A?sU??zf??k?>??)?X}????@#?????Ua?P$C???QE!Un?O-GL???RPn?o?G?Z?K?`s?HEG9g?J?S\nB(c??K?3??*?R@>?%%4?v?R~?t??(?? +(????JZ)(????Z)(????FEa??"??EX??)?VZ5~zZ??e?8???E??3Fh?f^"??? j??A?)j?q??I???:??@???Z(??(?????(??(h??(?4PE?????ZJ(??(??(??(?e 0Fj??T?????)?i{U?@??P<$t?PtR?P?1^"?W8??V???-?P$?p??Z ???'?.?rEVgf?i?9?v????2?\???Q?(?4f??QFh??3@f??E?? ???XI??"???s?@*3t ??[??????????????%x4$ +J??o??e+?Rf?.CKT???S$??? +ME ????QEQEQE? +(?? +)h????1H?r3K?3@<r?#??#F +]??+??Pt???z?%W???j'??W????KI?(?????1?S??O?>??2 ???*????4?? 0E/Z*?/o(?7?????P????? +:??J(x???8>??E3(??{?r??c????6?&?? ?U?n`*s?/? +??`?*}?????(??=y?????O?:?`??z?`????{?P??4?CE??L1????:??3??????I?*??[???? ?{?t??CFi?0?u?? (???t?~??@>?+?P?????K?( ?(???? ?q?A???E4?)??J$S?Zu???q?#??bBr??????b?*?????? ??H{{P?SC+t ??APz?h?4????M?:H~?S??|???JO3y~?\???/??=??{SLh????Q????~4?q?????e?'??-?+????;/*8? +G?p{w? t?????????h??P?QEQEQEQEQEQEQEQED????J???????"?)?S<'????H ??EPEP????& +??5%\?z*????=*e?_????EP?)(???(??(??(??(??JZ3EQIE-???4QI@ E! u??w???$??s?#Zaw=MJ?3??}??x9?Q@Q@Q@Q@Q@Q@Q@Q@?F~??X9???(?brz`{????:?"(??HJZ()h?? +(?? +(?`?????????ETe ??RU?P?Fj&?????h5vN?= +N?)???? ???? ?UU??????I???$??(??(h????4b?(??(??(??)??Q???Q@?S?"?????[????"Y?p"?WW?y?? '=G?0G?.?U?r8nG?L?eM:?J(sFi(??)3@ E&h?-?PA??J(?? ??5 VC???[?##???G?2??CLxT?? +B??Fx?"?-QP$?}?EJ?duTO0 ??????)~: +a%?I????%PJ'sJ?\?U?@????Ay??)????Cu??Xu?????h3?N=?3t?pzP?*%?N3??s@Q@Q@f?4??Eq??? B?r??1S?5#(n?4V??? ? +'??p?45?,??>??\?f?(??I@??Q@?*zpi??N?p?h?1eV???O?'?1?V?>? ?L???$r????E?"?`;w?#?c?64?????@Q@i???G?KK@lt??#???H8u?RP@<? `?4??T?4??O?7Q@QLYU???????ZJZ(??j??????t)?= +IE0K?4?Crh ?8??U;O?>??2?\0??8?}??6?&??????s@B2??X??B}MK@??g?????I@ ?"?P???J?????? +? +Q??????P ?????@QQ?T???O??? +(?? +cF??s?)??????l????~????????8?4???@4???~4V???????auPA?h???? ??E????????}???:?n??A????:?qN????7C?Zo?????!Wu?:??`gW?JO9s???%??is@f?????$Qp>???m???,4j?W?j@?tc??O??|????;??}?1;?}i???sA??-3?q??QM({3 +LJ;??)??P???\??}?IE42?B)?c ???G]?W???3?F?>6 ???????_k???4>i3E??4?P?3Ef?4?PFh?? ??(?4f?(?4Q@Q@??SYC?E:????????5?W??}EV??????ZmRQ@ E?*???*Uu~??J??(?-WY???EL?du?P?IE-????J(h????J ??Tm2???j?????,SK????f?i?9?vZcJ??J??RI?E%?RQ@ E%-QERQ@ E%????Z)(???????$??T?]ac???bU???>?(??Q?(??(??(??(??(?R?@Q@?`???#?9???? +D?b???`???+??=(?+'??5:J??j??E]?-TIY8?= +XI??C@???Z)(????Z(????4P?IE-?P?o????2h????#?S ????o?= +1'#?????V??????H9??E@??~a??L0????(???I@h?P??4Q@f????EB+??YY?*i&???jKOZq???O?(??(??E?< +tqg?AS?`)h?? +(?? +(?? +B3?KED???????j????g? {??z?n????r3?P?*??~u0!?h??(???PIJi??ZJ(6??qL???QS?@??? +<zSZ5c???(???"?'?5 +??b?7C?(????) ?$??j???????????? +zF?7?:ST`Z?P^k??_???+?i???[??P?T????)?0<7?$??#?Fhh??(????[???n?u?Rf???#????[?????j~h???0?YA??S@?- 9?????(???=E-??@[? t???9??FXz?7P?s?;ZFP?S|???h?T{?S?.G?9dV???????@h?@@=E4????>??(??_F?Q?0*}??P=??bRs??R"?;??IEF%???4???hiCE?? +u4{?55??P?5=?}E G^???i?P ?????? ?????u??h???t??4??t ?h?TbB>??)????f??u????Q@ +(??E'?G?v?()U?s?????FT?QT???Xu?g5Xh?@8???t?????U?F??SKH?S?J??`?{?>???OF????PI???PS?G?M1/bG????q?C?????????@??U??J???u?dw????????(?? +(?? +(?? +(?? +(?? +(?? +(?? +)(??(??(??(??(???+s??}U??????W??F?????????y?6? +(?? +PH9i(? ?n????0???R?*r n??f??}ja??@??^?S ?:hJ:Uv??N)???&?,?F??t~&???es????PEPEPEPEPEPEPEPEPEH??s?{?? +?????[?&?8?W`t??+uR?#B???Q??R??p???????????8??&??~t=??"?Z)(???(??(???@b?s@ E?(??(??(??(???xT/??U?(?m?W?9??^G"???y:????N?8???*?L???:H????:?(??(??(??(??(????? +(????bOC?O??+1??Q@???}jz??k??V?%Q@4??U?(?(?H?q????}iT?i|?>?a?T???$C?B?9?M(??????N?C@??1?????%??:?B;?????oq??#U??r@#=?F?(??(??(??(??(??(??(??)(h???4RQ@ E%?RQ@-%?RQ@^?B*pjJ(?N??d9T??~?P?I?Z(????? ?IE-?P?IE-????J(h????J(h????(?P'??T? ? +????pN?*??z??!X?7?R ?S???(??(?????G>??EVx?{????nzj?KOh?;dz?e?<?'??? +pFA????9?I???=?j3H# ???QE-?P?IE-?P?IE-?P?IE-?P?IE5?W??????U?(?/???J??>? ???=E*N???U?ua?j?($??v???? ?????4?)(????? + +PE%??Q@Q@RPMx?????(????QQ???1?W?>??G?S+??xYzr)?#?@) d?*???f??X??{?[????????J(i(???8-?P#??'?V@ +0Q@Q?(??cD???TO ^G"?Q???2?jd?[???\r9??G?9b??????g??=?Z)????3EQ?J(??(???e 9 A?????Pp????H?+px5!??*&?OC????????S?~~a?P????t4?RR?J(??)??&??W?p: +c??IET???`?=iaNw??e 9???A??L=??i??2?P?Tk*?|z~A???3@?P?IK@??9?G?cR?@y??2????+????S%n?>??*-?'*r=)D??2??%??[??PEP?Q?(?Vr ??j?)>?W4T???pT????` ?Eua??Tm?G??l??[p?4-????{????"??(????????QKEG???PL???%%0L???}?????Tf?A+?? (??x??)????KE42??R?F???O??A??7?o?,g???? tu??????????~??????#.??r=?Y???>??0Q@ ?4????????u??h??yX?J%S???@??zZZ)(??H?????? +u??E0#?????- ?~?%???aJ$C?T?)????J(i?(u"?EME&h?-?f??J(h????L??Z)(????ZJ(??(??(??(??) ????3(??JkN{ }hjB??MV29???@ ?:d?fv=????IEQ?(??(??(??(??(??(??(??)h)qE??R?X? ?Q??`'?*U?W??????????x???PQ?1EP???Q@ ?3IK@Q?(??? +(?QE?Sl??????*4l?G????Q?*?? +V???D??#?U?(?h?????*?85???=EH??????? ??R????]???9xg??WV?@??J\?IE.h?%?????E&h?-?????c????HPI?Jq???,?$QP?e???U^?>?b? +(???S ({`?S??? =?c?R +IA?(??ZcD???SvH?u??hZ*/4???jr?????h?QFh???PA??(???H:?G?j??>????z?@??????????c#???h??0>??????$W??@?PP?*4?J?N +?"? +(?? +(??-4??P)h?y)?#?h?????i?P??M(wz3??(?rw???Q*?)?g?4?????EPEPEPEPEPE%-%-PEPE4???*6??45*???N)?????,???O>??8??:??{J???jfMPEPEPFh?? +(?? +(?????3E?QEQKI@?????J3@ E%*??1???=bf??S??.?>?"X???zt??(??(??)i(????Z(PEPEPEPEPEPKIE-D???pjJ(?#'Q??j?D??ph????G?M?+? +N?? +V??/RUD??? +?&V??4%??? +(?? +(?? +L??@ ?(??4???ZL?EQEQERQ@ x???}j???G??4P:?~j????}?????ZrNG 3?S+??Rt?Kq?~? +\C?S?N??9?S?i??Q??>??~[)?_?CK?E????K@???#?*@A?E?Q?a?lj???F??\? +?W#??%???|????S??u?P?IE)z?B6??n???l?4Bb?dy???5$GZ?@4Y?=?.???RQ@ ??a?S?????L1?u?A??????h??????Z?t???4?_?)?IE0H?? +p ?"??(?I???2?a??S???? ?T ?f??`C ??-?P?IE-?????fA?4%]?'??S ????,?U?@??t?5^?????0?7Ri?PEPEPEPEPEPEP?EQEQEQFi3@ E%?RQ@ E%9Q?????u???JE%Q@Q@ +?T??'??Z???y?Z???x5:L??x4-?h?@h??Q?(??(??(??(??(????(??(??)i(????Z)(?#?TO???jJ(??'?z?j??Q?B??r(Vf{?S,??>?R???*?LW??? ?{?P??d??d????Q????SLH??*u????z??}??j??????7lQQ?r/?l????J????NYQ???E?QEQIE-5?[??-???4??z????+J?? ?"?S?2???<??Z????????_????MIQ????4?Ct9???(h????JZ??0???>??E3c/?~= +?^?{T?P~r? ??N+taN ????S%]?????G?b>??J??z?????zT$H<tm????@i)A?C?LPEPE??RQ@???E7?N?CO??#1??!?h???????!??PS???4?Z?g?=??T^??UlRP?E??3+???Sh????E?)h???Z(?Q@(?Eb?(??(?? +ZJ(i(?? +ZJ3@-%f??EQEQK?J)?6n?R,??~???H?? ?NQ?1K@ XQy?O????( ?PO'*q?P?*pF*?#??EL?c?9?5N?%f?(?4f??2t? ???=??L??g#???5~??Z??a?y2??????>G +=fa???Y?5??????sIEQE??(?!?IEQ?(?4RQ@ h??pj&??????Pe?????5*??px?2?ED???????N?U`Z3?S????:W?0:??R?bOzL?E??????m??OH??@?QE-%-PHT???????S?y???ED'??R??i??8?????9? ????0??E?OS??@??#?Z(??(??(??( ??(6?A?7G?*j(!8?!?l???1@??U?????2@??!?=(??4??? +:? +(?? +(?? +3E%)??Lh??c?N??"??~???H?ys?R?@??O<? ???+u?>?hJ*,??FE(?g 4%%??ZJZJ(????V??ES?>#??Vj????\?*P)??W?RQ@m?z6G???#?!?*J(?*7|zx ?4?En?i?v$P?TX?z???1??O??%??%C?Zp ?4???????Q@ ?3IEC:?~5Ze?????]S?K?A??:d-?+?????g?G?UaRQ@ +!?:\???V??? +?$~4%???_???(?hZJg?G?B=?(?3???Q?@?z???TRQ??4QI@ ?JZ(?4??f?J(h??(??(??(??P??J3@ E%??R?EPEPEPE???????@?ju??r}*Ux??8*???g?O?8??(?Q?(??3@??%-Rf?? +B???.h?????S?0j? ??#4J??????j +??@Q@Q@Y:*u?[??j(?Qdd?x?5:L??x4%Q@Q@ ?3IE.h???4f??\??J(sFi(?4????4f??\??J(sFi(?????4f??`????????4M??? RU? ?P?????i)??N?6?$Y]{?z?fV?????P?*????#???2?^?IF(?? +(?4RR?PEPEPE??RS^@?z?P????P????:??g% ??2?????=???????*j(5?????FEn?TmT???T???E8N???KE `??EQEQE%Q@!????J??S??I?U?sR?@ ??. +8J???@<?i?l}(?P????|?S????zJ??(?T?6c??????"???)i(????ZL?EQE-%PEPEP?Q@-%?RQ@ E%?RQ@ E=bv???R, +:???z ?*E???0 )??j??>??@???Q@Q@Q@Q@Q@R?QEQKI@?PP at a??????T?? ??v??a?2(?h??????,?N????(??(?#!??S??? +U??/QUFN????:?^ +IEPEPEPEPEPEPE?? +(?? +(?? +(?? +JZJ(??? +J(???FED?r?-Q???)?t?M +?N +W????uz?(?#!??2L????j(?h???? +J????45??2P?IE-?P???Ly??Wwg??(??z?j&??R?@ +???r?hT??? +???R?????4l?????n?Z? #?J????EOE5][???@RP?E???Z3EPE???Q@Q@??F??r8>??(????=?? ?H?t?En??Z?ga?f?Y?} +D???Nj"?pF +[??,?????Ve=x4%??dt?? +(?????ZBB?OJ*?'h?(6b?I???(?? Z???n?)?? AK@4 ?????!??f??fe??R,??????V?9???>?"?'??x?q?OY???@QH?????J)(????Z)(???P????F?[????,9SSQ@ 8==??0=x?:?G? +Q???CE at bu?)??:?0? TbU=?}??E2c?????4??-K??ES?>B}?Z(?? +(?? +FEn??????U?M?,|?S?@ ?? S???E+*?QQ?? ???YS?"?1 ?5?*??>? +J(??(??R?PPL0??????}?@??M????e>?>???D?[4y?>??????w?????????u?9V ??T??^:?Q1 ?? ij1*??<?4?RQ@ EPEP?IK@ ?{ +kD????ET`U??X?:??u????(9????2????B?R??JyEn?P??Tf??I?2????Z*,?;G?????%?? ???P?z0?QE +%PEPKE? +JZ(??(???? +(?? +(?? +(?? +(?? +(??l???J??:???rj@?O?8*???s?O?????PKIE-?P?IE-?P?IE-?P?IK@Q@Q@Q@Q@Q@Q@#(a?2)h?^?s?j?N??R2??2(?;A??P?T??J(?? +(???? G???en?z?E]???+'|?CS???t>??(?? +(?? +(?? +(?? +(?? +(?? +(?? +)(????Z)(????Z +%u???? +??S??RQ@Z&\???2?S%n?>??*?R??@?@ w??????w?????@ E%-%M +??* 7Zhv??(??(??(???FEFaS?N*Z(????~"?fa??V)?5n???YP?S??J??#??7.?r=???V??T??? +;4QEQ??)i)h??(??(?e 9???"0??t??G???PWr?????C????hj?#??V?R]?P?)?*7|zu-?P?IE-?P?QE`??EF`S?L??O?x??(5????%C?Z????cD??(???4b??Y~?Ro??2(j*12???x`?hj9?S>??GF?PZU;XCIE\?E63?_?--?P?@=EP H{c?M0??????"???4 ????? ?4?T=?:x ?????yD}?"?&?????????hjZ?L??>?????J(w?P?Z?U?]????????UN?B???? (??(??iEn?)?>????"????h???5-%CEPKIE-?????Q@ ?3IE.h?%????\?IE.h???4 g???????>\??T??'? +???'??zZ(??(??(??)i(??(??(??\??(?4f? +(???3Fh????(?4f? +(???3EQEQE???? +#4Q@??R??5R?`??FP?dP:*g????j???*7|zVUn?5@C@u???d???J??~a???j?????PEPIKI@Q@h?%QE??+u?vj?4?%N?"?8? ?5???*QN?mrJmO eH?5%UG*N??g??*??@?zK@ E%.h????Z)(????? +:???kF???????T???W????q?*j(!:???Y] 3??Q[?? +Z?O???=??"llv?L? ?? +??Fq????w???E `zK@Q@?f?!??(??(??(??(??(??(??(??(??(??(h????T?jd???U??]?r)sT??zT?8?p??P?R????(??(??(??(??(??(??(??(??QKEQE??(??(??(??(??(??3@#(a?3KE@??~F? ??5v??n?4J?????? +BAS?1@ Ef? +(?????????*?9??5S4f?/QURVR;?CS$???IE??f??Z)(????? +(?? ??3E?????L?@ IEQEQE1? ?S?@$(??P????=j6vs? +m)(sI?(??%P??4Q@h?P?X?j?q??{???????3/^EX???+w??4?(??(??3EPEPEPEPEP?)(????(??cD????P?L??=??O4??r:???[9??M ??????R,???V???4v???????5(?N3?? (??(??L?f?(?Q?(?????4PE??????}??)?Q@?????r@??;F1?@?2????e=x44 ??*6?????,C?EU??"?G???'???+t8>???QEQEQEQER?Q@-%???j?E-.h???s??|?????:??Vs?dT?T=?:F?[??F????X???t?EH??x~T5?un??@2S??>?????EP???J?:??h?`??EPMd +?S??Z~????X?t??8??(9?O!???8???cBC????(? r' ?T?WS??Z?ED'S?R?QE?R?@ EPI?ZJ?a???GS?>P} +A@F??????@??iNTja?OC?hI??????!?]O?? ?^)??M1??@ +?S?T ???C????????:??%-42?B)hh?4PE&ih???\?f?(???????r?????#a???????Z? ?1?Pc?M??F????w?:??.*l?P(?d=????"????? ??@ +??(??(??ZJZr???~u*????h jU???qS? +0)h???s?C"??~4?(?????*:?Lx????V???e??????(??(??(??(??(U???S%?f??(? ??ij??S?qS,?????'??FA????J(h????(??(??(??)h????@.h???Q@Q@%-QERR?@???? +(?????(???H at a?2(??!{~?P?+?b?P at a?2(?3??O?j" +????(??(?#'C??jd?[???j(?9?QUFN??J?'?q@?@ ???QE? +CKI@t?? +3E%-&h????(??Q?p*7?'NM@?\????-??Z???? +)(??(??(??(??*H?/??h6pq??T?Q??J??S??h??#/Q??E=de?s?i?P??[??????*?9]?? +?KP???0??J=hh????J(h????J(h?????(??((??? +(?4?QE!?ED??55?*22?????hT??? T?qR?????)?/NG?2?-?V?iMR?fy? SUn?>??))i(??(??J??MUf,????+?l???-Q@ E- ?4,+?o???Q?@???(?dV??? |?>????*?e?1J?2???Y##?F???q@?????*P?? ?v???G?7?{??EWY?u??YU?????h?Q@%-QEQEQ@????(??(?=EFaS?"???+?L?9,????HT7Q@,????&p?pr)L?5)S????(?/?_?Z5U>??j??@ ?(?? +(?? +(?? +(???ER +-D?????9S????D???8O???MLh??`?P$V?N?ZC??@?=h?????%C?Z}?????(?mU??UC?"? +??#??,-???OEPKIE-?P?i?OQ?S????HRD<? +MK@??>????u=F*^??????C????P?q???\??O?@(???EQE-?PEPE????_???S??VhYrG"?????Xr9?R???e???-?P?IE-?P?IE-????NA???q?????t0a?sER W?qS??a????E`? ??? +(?? +(?? +ZJ(sE%?RQ@ +i(?? +ZJ(??(h???RQ@ Fi(????ZJ(??)(??(??(??(?``??ZJ???????,??xb?R???? +tT?o?pjFC??h(??? +(???????Y???QPQ@ 2"??+???Y?n?? ??????J(i(?? +(??`???? ????P????;???@=*?1f&??JZ(??*HW,[?????]?:?(??(????3EPHQ[????!h??Q??*?Y]???????+{j??e??? ???N?|?Pi?+/|?z?ED&Ry????JZ(????J(h????JZ(??*??2??UX????????????-%A?H??CI?H??b?3??"???J??,H?MN?+v????6??J? ?%n??f\s?Z?2?B(???(??)i)h??(h????J(i?4=E:????? ?|?^????32???}???P@=EV???FsQ????Wu??hV?????????VQ???? 4T?h?Zp????$?? ?P????4?3Fh???@f?(??(??)i(???????Q@ ?3IE.i??????-]?e?r*.?j?#"??~4N???#??TDpz?QEQER?f?QE%?RQ@ +  ????f??)s@C4U H9?[?????'?-5Y_??:??1K@ E-???P?Q??? +J(??(??E%-QE?R?IEQE%-?P???Q@ ?3IE.h?%??f??E?? +(?4?????!?dz???3@h?O?8???Z&S???Q@Q@8???Y?0?>????.++t4?Ht?r0?@)???Q????@X????hXr9b??EZeV?D???>?? ??????(??(?????J(??(??(??KI@9????J?????*?F??@???(??(??(??(??(??(??(??(??(?4J??}??Pf????????En??*QR?}???8? T?T?90?ECE[VW??????j?fe??? SEn?} +>? +)(??%P?)3Fhh????J(i???QEQ?)(sE%???>???RL?G~? +QI@Q@ ?????^??'Y??????????? ?q?? tT 9???dV?y???EQEQEf?(??????)(sFi(?4????4f??i???Q??O?SQ@YJ?F)C??'f??+{jb??????][??????? +[??,??????@?H0?4??N#5Z????{?QE????Ua?Z*?.h????J(i(???J3@P?@5@??%\??? +3???U?O?W?????}??7o??0?????t9?????A?(YY{????*!8?1??? +???)M%QEQEUq?#??RL0?????9?jr??UJ? ?c??KEQEu?M1??u? ????8<~???? ?"?'?????MM(???A2jx`?5???i??C??EU?"I?i?s?f?'??)??RC?QKH8?4?RQ@??P???U????:?b( ?u?H?????I?~z(???5Q@Q@Q@Q@R????Q?(?P?(?????J)i(???????? +9????P?f????????? ?c?WiC ?R??{???%J??(????JZ(????)(h???A????????(? ???i?DA??[?8a?@h??????i?V7(???V??? h??(??)i(????Z(?? +(?? +)){PE%-QI@ EPEPEPEPEPEPH?0??Po??P??8a??HT7f?)QV ???)S?0h(??(??(??(??(?? ??'`p??????+????:??????Rv{?@h?#??4?Z)(????(??(??(???E?QEQEQEQEQEQI?(??(????$?P?"?WW?h?QEQEQEQEQEQEQEQEQEQEQERQ@Q@Q@ h?????hXt?T?PB8#?????F???N=?AE9??????V^??*????b???*?v^??Y???P???X0?4(??(??J(?? ???b???jVm?I?)(??(?????F?????y-@??-PEPEPM1?u???L???J?j??@)U?z??S??Q?L?8????x~"?VV?j???[????:?*U?O?>?:??EQER?@%?QEQEQEQEQE-V????)???ZmQE??%q??? ?Fx?~? ??*Eun???N9?G?38?4v??%q??Z?N;?P?SU??K@ E%R?Q@ Hh???(????? +(?? +)(???E???1?????Z(???l?)?o5ZQ??6?J(?M???*?'?R??? ?NG?FAPQGjZJ^?RP?+/???RUoc?U??@:?)MTWd? +?g?q?? ??0??$???IE)sIE??%QFh??(???R?EP?(?? +(?"8=hU.pXD8??????? +(?? + +?E ??T?+'QV????@(? +?N +D?2??Q@ ?E??QE(%O*NG??4?q][???y#?H?0??? SU~?>??(??(??(?4f? +)3Fhh??????(??? +ZJZ))i(??(???-f??\??J(??(??#h??p}?#??U?(?d??QQ?O89??TGN +^ +KEUh?:?=i?r??+v??? +?T? (??T}(???Z ?J(U??????En???Fh?Uee???je?X??}?JJ(??(????????? +(?? +(???(??(??(???(??(?H???/????X???@???@ EPEPE(??(????J(?? +(?? +JZJ))i(??(????}%D?t?t????X??*??(v^???QL1!???1g9?dTg?}*C?j6V^???(?S? +[#=??M?(Ry5????Z)(???(?????(????? +(??QH +-QEQEQEOE%?RQ@ ?)(???((?-f?JZ(??(?????(?????)(h????J(h????J(h????J(??(??(??(??J(??(??(??(?? +RP@=zTM?t????*?2?Sj?Z??S??@?)??Q??)?QEQEQEQEQEQEQEQE??(???ZJ(4PEPEPEjx???7^??????{ +??(??(??(??(??(??(??(??(??(??(??(??(??+ N?A?O?j&R?F*?!??N???;N?B???z?h??(??r?'CR?????l2?C?Z?:T?3?4b?b?????@?P?IE??PE??QEQFh ??4?QE#0U$?s???????I'?RR?@ EPEPRB?|?X?v??4%?P?5n?>??Z??#??FAAn??F? +?T?= F???JoJr????M??&Y??0?H7C??@8???-?P ?u??U>???Eh??(??(??(??(??(??(??(??Z(??'?QEUi?d5f?Hs#}h?QE- +(????5#@q???????g#??Y???J??/U?????4??OYY{??@??Vp~???????:?J(sIEQEQE??z?? +%Q@JZJ(??(????? +d?)???F?G?T??`??(?E??? ????g?Z?j??GZi?vc@??*x?z????{SH#??[??L1 ??:???*!8?!O!?*}????RQ@ EPJ:?R?Z(?? +)-QEMEUI?8?0???e~?>??ZL?@ E%?RQ?Z)(?-?P?QE-'j(??GJ(4QEQEQEQEQEQEQI@ IE-???QA?QEf??Q@ ?3IE.h?%????\?QEQEQEQFh?4H??}E?4f?+4,??"????Hz?E)?N:RPEPEPEPEPEPE??QEQI??4RR?E%???9?N???A?}h#? ???%PEPEPEPEPEPEPEPEPEPEPEPEPEPFi(???P%n?>?D??Q?V(? +tU?Un?Tm?O?@?J?T?)(????)???????&Y?????0?9R?H?@(??3???dV???h???(?? +QEQI?? +(???????T?????j?.h??? +(?? +(?? +(?4?]?j????x-R?EPKIFhh?4??????k"?$sQ????M?3@YYz?L??Q?j??}? ?OhXi?c???z?g???ECEZWV?y?U:r?????ED'??RV?E-Q@Q?(???EPE????(??(??(Q???Z??T?$?h??(??1@??b?j?TO??Z?@4???i?P-?O?j6??????(? +tU??z?Q4?h1+??{??8?!??F???????(???C?:?S???4n????????????FA?h??E?Ph??Q@Q@ E-%R?PFi(? +??Hi?,??5 +QEO eH??j?m???Y??z?Q@ +1???SZ?????? +?'?4?0y?tpz?P??H??\w???1?v?0?????/?N!??????4?u?-?C?Z?)D?:1? tT???????? h??S??:? +(?PEPz3E"J??#??I???j?~???2t9??I????%???g?QEQEQEf?): +ZJ3E-?????Q@ ?3IE.h?%???PEf? +(?? ?EQI?\?E%QEQEQEQE%-??? +(?? +-?QEQEf??*u????\??J(sFi(?4????4?uQ@?T?$TM/l?j?Fh?"??@< +0???PpH?O8??hXt??U??42?Q??0=?tP?J??:?<{??????j)?D=?z????PEPFi)s@RP]w!Z??Vb((??*?6??V?an??P?QE-?P?IK@.i3E.h?%?U??4? +?$S?h??Ni?XuSV?? +???? ?EU??L0)??@??u???????k@???cq?4d:??)???F?:@QEQE%-Q@Y:=*t?S??????s??KTU??qS???xc?P????d(????ZJ3EQEQEQEQEf?(???Z)(????(??JZJ(??(??(??(??(??)(h????(??)(h???`?MHH???y??8??????M??y?IEQEQEQEQEQEQEQEQEQEQIE-RP????8????????*U`??U(?:u? ?Uu??`???I?????EQEQEQEQEQEQEQEQEQEQEQEQE%??(??(??(???)i(????(??=*?+1c?y???(??(??(??(??D?S=?@?sV?P?IE-?P?IE-?P?IE-?P?Fh??(??(QA?????????(?Z?&?ee?*?iq@??M??????:?T??x4*pE%H?0???D?z?U?? ???-S????ga???EF?+x5&h??(???d??V???5^? +(?? +(???\K?\_?>??QEQEQEQEQE%-PQKI@ +1????F?u?:????:??????????R?1^????S?"????s@??? +???2????U?k"?Q@?*f?? ??"?O"??(??(??(??(??(??(? a^KT??6???QEQEQEQEQE??R?R??EQEQE???-%P;?E-'j(???LhU?qO?? hXt?? ??n?20zP:*??ON*6??Nh:P?? +!x4P?9@5*??????@EQ]???s?P??(??$??????J(h??????_?T?Q??_?:?(??(??????(??(??(??(???(i +PQE?cF????I@?=??e?*?S?*?(n??0?bED?Bi?fy?0?=3??GPEL'?"?YYHUj(???Z(?&hH????U at pr*?????(????Z)(???(??(h??)E%???J(h??? ??(???Z)(????Z)(????Z)(???H52NG +???(? ?????S??qR??xnEY???+???????????u??2????????O B*?v???0?i?fph??OPE??=)??U]??=?Pi(4PEPEPEPEPE?]?L?.?s?LhO??????T?QIV?ZcD????@??Q?*3?Z(??(??z???>??Y????z(?!?A?-S??"????@(??Tc?}?A???(??(??(??(??(??(??(??(??(?? + +J(???(??(?????????}i(?KIK@Q@I+????K??!????L ?Q??A??)??????F`=?h:(*??RP??:5H????AEZY?i?N?$e???-QP????*z????z}dQ@%PEPIKE%RP?QEQEQE%-%S%?>??>?R????CI@ IKI@pA?V????R???Z??(??ERS? +Z(?=8?Xt ????+?v???n??z?@h?$=???=?????p??|?h0????3uP?q?~T?*????-??N????(??(??(??(??(??(??(??(??(??J(??(??(??(D????{??:?^ +U??/u????????R??#???(z)"?ZJ(??F`?$?9?QE??`})(? y??Ee1?T?R?Q@ E%??JZ(??)i)h??( j?G?L0???P???f?{~?S???&VC????9??NT???+QNdd????*?2??6?Tm +??P|?Oh?v???PEPQEQEQEQES?V^:?zeafS??O?r*?*?S??Z??Y???T???uRP?E%.h??%.h?%R3?Z?+?l??X?$????@ Fi(?4QA??)3@ Ef? +)3Fhh'??!|?P?`KEQER???\??J(sFi(????? +\?Q@ ?3IE.i(???[?????????*?e?)?r??+v???+?R?}????/Q@ E??Rf?@ ?S??=??-N????H0???Ph??????(????? +(???(??(????@ E?? +(???? +????EIEWhXt?S +????h?a?C?JcA?:??y????(A ?i?fpj:(u???????P?*???????&n????d??!???$:?4Z?(??(????+??T?? ???-R???E?RQ?Z3IE- +(??(h??)A????,QFi(h???Rf?)i(?4?P? 2)h?^????5 #!??\????(?V^c??B?2v???(?4QIFhh??????f??J3@ E??-????L??Z)3E-?P?IE??PEPEPEPEPEPEPEPEPEPEPEPEu8?Z?[yo?K{O-O????ZJ(????Z(?? +)(???4???L?@ E%?QI?Z))s@f???L?@ E%?RQ@Q@Q@Q@Q@Q@5?[??4P-??x???J?F*?N???+r8>?B????@???R?Q@.i(???P?(?? +(??H???????z?U?Fh?9R?0?t8??pFhz)?"?C?S???F`?I?@ +??.SU?Y?1'?% +(???? +Q@ E.)(??(??(?0? =?WQ???V?v?QEQEQEQEQE??Z +Q@?4??????? +(?? +))h)h??cC????}???OETee?%C?(???(???g? ??(??&h?? ????\?QE???@Q@Q@Q@isIE?4Q@Q@Q@Q@??3EP%n?>?BG?9??? +??E[??????+?T? ??FT??b???E.h?? ?y??:??tP??[??E1???GEQEQEQK@Q@!9?T???Z?? +(4??QE???(????(??(????? +(?? +(??4f?(?%-?QE??PQE-%Q@y?)?$=????PM ?Z?? 9?)(?QEQE?#??? ?p**(??[?>??A?EU??J?EV?????Z????P?)?3?4b??L??E<???Z(?? +(?? +(?? +(???(??(??JZJ(?? +%-%QE??PQEQEQE%Vq????'?????JZ(????Z Z?SB??*??IE???????? *zdT?P&:? n:??4PL???@=Fi?$=??Q@Q@%PEPEPEPE?!y4!!FI??^rx^=???I?%)9??I?(h???RQ?Z)(????Z)(????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??r?/C?T?p??b???.C?\? q???974b?j?????i?QEQE%-Ph??(??(?f?(??(????L??E%?RQ@ +h??? +(?? +(?? +(?? +(?? +JZJ(??(??(??)(?? +(?QEQE??J(h????J(i(?? +?g???f???RI9=h???ZJ(??(??(??(?4RR?F(?4Q?)(s???VS?#??EN'S?RCU(p?T 3???eV????QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE-?f??5R?9??U(h????JZ(??(??(?sOh?{g?@ ?4:?@ IER?GC?J(E???G?H'?"??@?+??t????? +Z???????V?h?QEQERQ@ IEP(?? +CKA???(??(??)(h?4??RQ@ +?w!?[&??VX?J(?? +(?? +Um? +%l???????{??? +(???J(h????JZ??3I?Z)(????Z)(????? ?u1?Tr}*?? p**{?????)?Q@ IEQEQEQEQA?? +(?? +L?K@?P?QEQEQEQEQEQEQEQEQEQEQE-%PEPEP?QE-%PEPOIY{?{?(? +2???z?*?*?S?q@h??9?!?T??? +:?E&??^h)h)sHsI@??u??@%-%R?PEPEPEPE???Q@Q@Q@Q@RP?IE-?P?QEQERR?(????)(??(??(??(??-E3?mOZ?G??t?(??(??J(??(??(??(??EQEPh??(?QE?????? +H???~UdH???U)?#/C?Y??Y???R+?t4???PEPKIE-%PFh?? +(?? +(?? +(????(i(?? +(?? +(?? +(?? ?KI@ E????PEPd?V?J?Ve?Vj?QE?Q@Q@Q@\ j?Vc9?~????L0)?qRQ@?9???tz?:;?? +??Tm ?"?"??de?)?QEQE??O??v???? 2?????Q??-?U??;?????&??%Bz??O?h(??(?? +%/zJ(??J)i(??(??(?g ???rj?@??Z(?? +(??????x5f????rQ?>?(????? +(?? +(??'??(??(??(??O?y?&????ML?? ??$?rNM&i3@ E&h?-???Rf???I?3@ E&h?-?P?I?(h??? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +3E????G???uc??Q@sFj??/CR?????@f??p? ???R?(?4QEQFh?QFh???ZJ(??(??(??(??)(i)i(??(??(??(?%PEPEPEf? +(?? +(?&hh???????3RMU$?I?O??6AQ???L?@ E%??(??(??(??(??(??(??U??J??QEQE-?P??J(h????J(?#/~=?Q8???P?C ??ET?????^EX??Y????=(??(??(??(i(?? +(?? +(?? +(?? +(?? +(?? +(???J(?????J(h??????W?????j?hh?4 +(??3EP?f?(sV!9??Z????5?P?f?(h??)?4n????!0z7?Q?l?G?f???3V?)?F`???J??u???FAE?4Q@Q@($t$Rf?x??^i?q?PQ@???uS???? y??D???8L????@??z(??(??4???3I@ IFh? +?6???&`}j:(???4QE??k???(? tSQ??=??QE?RR?? +)3Fh?f??E5? ?8?rx^L?*g'?J??g???????(??(??(??(??(??(??(??(??)(h?%-f??\??J(sFi(?4???? ??(??&h????Q@h?PFh?? ?Ef??E?4Q@h??(??(?PFh?? +3EQ?(?4f?(sI?(?4f?(???3K?J(???\??Y?pyieF?8>???*r?/C?[??Y???? eNhh??(??(??)3KI@ Fi(?????4???(??(?4f? +(?&hh???RQ@Q@Q@Q@%??QEQEQI@ Q??W?=?*?z +??X?z?QEQEQEQE%-?P?IEQE??PK?J(h?~U561??P%n?>?B??"???*?GQ?J?y????=84? zah??(??(??(??(??(? GC?J(Q;?5"?????Q@3EUWe?i?9?!??OE1eV???>? +(???4??Q?JZ(?????I@ EPFh?PE%/z(??(??(???s???PT??TT4R?R?EPEPEPR?ya?QT???}h?Q@-%?RQ@ E%??Q@Q@z?EFaC???4?Njz(?????*?4??P(?a?S?????? +GE)R?F)?QEQE?8???w?????N'?????E????Z(?T3/Bi?fphz*12?????Z(??(?g??U?21?UXmb=((??;QE?QEI a??5=T?#??*??Z\??Q@ E%-QENNOJ??a:??M#9???74???I???4f? +(???(?Q?3@f??E??-f?4?Rf???IFhh??4??Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@PO?(8MJ ;z????2z?*??*4l?G??Wi???s?(?+@@???d?b??(??(??(??(??(??(??(??(??(??(??(??(??(??A????%Y?}?EJ??????#???j2??E[???? +tU???TM ????R8#?? +(?? +(?? +(?? +(?? +(?? +Ub??IEJ'=?jA*???j(?9??e?qR,?}??@?LYP????@Q@Q@Q@Q@Q@???5>Nd4?(??(??(??(??)i(? ?? +)???????E??3EQFh????(??4(??IKEQE???QEQ?)(sFi(??%PY??a?OC????bq??JaAZ?A??S???????6?? ????u?))h???ZJ(?? +(?? +3E<-?W???????O0??X??)???S??:?(?h???EPEPEPE?? +(?? +(?? +(?? +)(????4QIEQEQEQEQEQE?(??(??(??(??(??E?3u?TE????T?QE????(??)sIE-%PKIE!P?Fj6??qR?@6N??QM????[??? +?T? ??TD?c?@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@?P?? ??IA? VvxdT?*7|}j?r??????????&??:?CK@Q@Q@????J(?4Q@ Fi(??%PEPEPL???^OJs0U&??nbOzJ(?? +(?? +(?? +(?QEQFh?QE???R?Q@ EP???}OQ??L???QEQEQKI@ EPE?? +(?? +(?4Q?3EQE!P???cB????(?Vh?G???U?B??Fh?9??D???Je:?@Q@Q@f?(??(??)C2?4?P?1xf?YP????Q@3ES GCR??u? ???Un?>??A?hh??(???W9v>???'$?@ ?J(??4?P?IE.h?????Q@a??Z??????SPEPEPEPEPEPE%??Q@ ?)(????(??)(?? +(?? +(?????m-?????(?!U=@??-?ON +0?GB*z(?#/Q?6???G?T#?(??(?4PEPEP?(???Bi?fy??? h??(??(??(??(??(??(??(??(??(????J(h????J(h????J(h????J(h????J(h?????<|?9?)"??7?*z(??Q@Q@Q@Q@Q@Q@Q@Q@!P?f?????N +D???U?(?e?F9??D???9???J(h????J(h????J(h????J(h???4?Q@Q@Q@??(??(?=eur=??P??O^ +<?5N?1^?r?????*?????@??(??()i)h??(???(??(??+?_s@??m??**(??(??(??(??(??(??;?@Q@RP?EPN=h??3 ?? `?KIE-?P?IK@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@@n?0???!??+4L??=????r??n??*QS?*zqQ??{?(?PF:?Q@Q@Q@Q@Q@Q@($??J(Q3?5"??:???j(?9?A?U*r)?s`??2?JZ(??(??(??(??)i(44?=V??O???EPEPEPEPEPIKE%Q@RP?E?R?J(??(????J(i(???(??(???(??(?&|???????AIKI@Q@Q@Q@???= +J`???EE8?????Z??(??(??(??(??(??(??(????(??)(?????? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?????8f?$Qg?a?=-?P?IE-?P????Z)(????Z)(????Z)(????Z)(????Z)(??[??kq??????*22E6??%oc?@h?Z^???????(??(??(??(??(??(??(???(h?4PGj(??????Q?JZ)(????z?/CR,????PQ@?*?qR,?????,?Q,?z?j at A?hh??? +(?? +(???????3bM:W?p: +?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +????j?U?T +Z(???(??(??(??(??(??(??(??(??(??(??(??(??(??)1@ EP?Tm +?G-]?a?L#F*?!?(?a?S??Q?,:r(:)H#??%QEQEQEQE??P?IE-?P?IE-?P?IE-RP?8?j?TS????EPEPEPEPEPEPE%??Q@-%QEQERR?PE??QE%JZ)(????)i(??21EP? ?|??Z?? +(????(??(?????z??O???= +Y? ?4?PQEQEQEQEQEQEQEQEQI@ E%-QERQ@ E%?QI@ E%?RQ@ E%?RR?R??[?oz"?w??w?X??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(???7QFh??????z??I???e?V?>? B?8?P(??E-?P?IE-?P?QEQE???? +ZJ(??((??(??(??-%??Q@(%y???g#??R ??E[?? z=?E??? i?????iw????Ufb?I?@%-%QEQEQEQEQEQEQEQEQEQE>!??Y?`????(??(??(??(??(??(??JZ(??(??(??(??(??(??(??(??h??(??(??(??({?Q?2???(??QE??Q@Q@?H???RD?[?;4f??\?QE-??? +(?? +(?? +(?? +(?? +(?? +(?? +(?QE??(?Q?(??3@f??E?4T??\???I?j?A@ +?Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@??f??Q@ E%????\?f?3@Q@!P?f?4f?"h?"?1?????? +TU?????h??=?*)YYz?Ss@-%???A???(??(??(??Q?(??(??(??(??(??(??3Fi(?????4f??\??J(sFi(?????4f??\??J(??%f?4?P???rMCVbPz?}.i(??&h?? +(?? +\?Q@ ?)(?????4f??\??J(sFi(??4?P???Q@ ?3IE.h?%R???\??J(sFi(??4?PK?J(??(??(sFi(??4?P???Q@ ?3IE.h?%??'?8?T???>??#??(??(??(??(h?PE?? +(?? +(?? +(?? +(?? +P}?(? g???p~?????@?????T??G^??-?P,????R P????IFs?????EQEf?J\?QEQEQ?JZ(?4???4?QEQEf??Q@ ?C??PR0H???&\>{?? +(?? +(?? +))h?4Q??%??(??(?4Q@Q@Q@Q@RPE-RQK@ E-%R?P?QEQEQEQE???}??DB??5mT"?(U +)h?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(????R?IEQEQEQE?QEQEQEQE??[??S?(??Nj3?[??z?h?h??OD??#?P(??(??(??(??(??(??(??(??(??))h???(??(??(??(??(??(??(??(??(??(@???*F_?*?QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEZ^d5f???????(??(??(??(??(??(??(??(??(??(??(??(??(??(?????8?s???? ????T?un????P?*?f ???u? ??OPE<2??P?EQE?QEQE???J(?? +(??IKI@-%?)?J????ET<PEPEPR?E%??5?P????Z)(??E%?RQ@ E%?RQ@-%??Q@Q@ IEQEQEQ??(?"l??T?`u?H???U?)h?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?QEQE%-?P?QEQEQEQEQEQE?Q@Q@Q@ +dW?*6????55Q???????Mh??c?@h?L :?dy4?R?P?QEQEQERR?EPEPE%?RQ@ E%?RQ@ E%?RQ@ E%?RQ@ E%?RQ@!\)>?%62 +ju-?P?IE-????J(h????J(h????J(h????J(h????J(h????J(h????J(h????J(h????J(h????J(h????J(h????7??Z?U$?EPEPEPE?RQEQEQEZP5??i?OBE,)?CRPv?????J?F*??P>??bC????????{#/QMRR?h(??(??(??)i)h(??(??r?/CO?????&C??O B +S?t? ?Ua#???=g????j +0J??>???-Q@E%)?I@Q@Q@?P?y??????\?{???(??(??(??(? h??(??(??(??(??JZ(??J(h????J(h????JZ(????JZJU??? Z?a?=?c@?~??EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%dR?@ii(??(??(???R??L?E-%PEPEPEf? +(???3I?Z)3E-%PE?)QKED???x5D??2=??-S??2+u?0u???)???E6? +(?? +(?? +(?? +(?? +J(?QEQEQEQEQEQEQEQEQE????G?2??&S?b?a?sU)zP?*????=?E??P?RCK@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@-%-!8R?9?????EPEPEP?QE?(??(??(? ??,*z????X?-f??E?? +B??TR?@????1?u???Y??S??P*6?ON(?+B???FT???J(?? +(??EPEPEPQEQEP  +%????G?H'?AEZY?uS??t&?-?P ?u???z?P?RS??Z))i(???(??*c???0???@Q@Q@Q@?EQE? +JZ(??(??()h???(????)h???Z(???)E??I??EO?????? ?=jL?Q@ ?3IE.h?%?f??\??J(sE%??4?P??? +(sFi(????Z3IE-?P???Q??4f??\??J(h?%??4?P???Q@ ?L?EQEQEQEQEQE?Q@Q@Q@Q@(???(??(??(??(????J(??(??%QETs???p +T$?OZ\??J(sFi(???E.i(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(??4???\?IE(89i?fy??? 2???zU:PH?q@??b????SPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPd8??j?7??U?sFi(???P??)(sE%??4?P???Q@ ?3IE>3?????8?\????)i(???1@ E)?? +J(??(???????t?u5X???~??1?U?B?3@(?Xh????Ur0q@h?%??4?PEPEPIKI@h???RQEf?(?+??&?EJ'#??&C?"??h?un?R?JP?:1? ?P}* +?dgR?E@ ?3IE.h?%?????? +endstream +endobj +7 0 obj +<> +stream +????JFIF``??XExifMM*1>QQQAdobe ImageReady??C  +  +  $.' ",#(7),01444'9=82<.342??C  + +2!!22222222222222222222222222222222222222222222222222??w?"?? + ???}!1AQa"q2???#B??R??$3br? +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??????????????????????????????????????????????????????????????????????????? + ???w!1AQaq"2?B???? #3R?br? +$4?%?&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?????????????????????????????????????????????????????????????????????????? ????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(? ?(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??z?#?????5r=V?>^?z??????J?(???l?EnE??M?4K???"??]????&#n?"?g??????(????R?7??????)?.?{x??|???3Wb?;??????s??<?5??a??E*5C?(?O???????[/??????E?R ???]??~??f?<*???"???y?Q|??o??^?v?PCW??;???Ls?=?????n?!?V?S??????A??O?I???zYx??? ??0 ??$ ~?X??x?????O???>?G??W??|9?????v?pr ???h?????a=B???????_?F_???z?"G???????FM[?G?& +b???7B?1??__/??WZ?q??????2???"??T????x????G??-?|]EW?sQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@S?F +????Q?@ +?????w?t??3????~x?|l?/pFAh??~5?????_yJ2{#??"?k???Pc??? +?~??a?h?-S??y 'd y??U?|?I?SD?????????rC??T}5 ??g???~???n?p??aU???C?s at BK?jq??s?-{????v???R??8?????o?=?%???E??}???s?~+J??V??? @?dg9??+?sFh?????I??????|9?!?c???+??HO?kF???D?L??#??x?RQ??I?R???????G5??A?hg???*??e???G?3?kr?C????aV?????U;?k????b=???_ +???,???V?????h~d?EW??O?(Y???R +O?????hQZ,}??"]Z??2???+??/?sR????E? ??1SQZ?4??_q????G?a??-??'C?o?M?3??_??????????8????&??O ??.dc???jt????2????Q??K??^?j ?>b????????1????????!?/x?????d%?????Zr?????N?e?t???\??????????3?h> ?(~?p??q??&?-??#??P?????K^????????[? (t??1r??}?=?%????????w/O?$??????a???? +??????5?S????????? my???-? ?????r????8|'?????[??q??????%?j??0???yg??? +?t +=z???sZtV?????.?G???E?t?O???R?>?t??????Ej?R[E}?9???F? +????4?+T?IB:RGQRQ@QR?4???QN*E6?8?Gzm q??p=?*(jFH?J?h??(??)T??Q@QMS?K@ E%?2N-^K?X?s????U}wOL????S?????I/?J{#J??Z?? ?}???V?????eS??g?+?Y??o?4Xz???Q\????q?0?????H??!Z6? +?%??z-?B??+???57????A??V?Q??r??????|4??a? ???|???M???8?????5?????{??)X?%?????`??????N?&??????????e??????]????.I??? +??HI??"?a?3`??k?8??y?s_A.?d?-b?W54p??????P(??6_[z ??V?<2?????????????>P+^??>?? ?J?u??????"?>?U?u??????K??|????G?a??-?Y}j?3???uI??x??A???????xN??K3????G?i?t?V??14????????p???oH???????L????H?G?s???5??gk??x??????x??u??X=?5?,[?????G? ?????1-,??=K9'????????Z???X}fK?I?~??????O??[???)??g>??n?Z?.??h~??L?wI?G?????i?????c?????O?? +a,f;?}??S}????w????OQE???o?oO\}?U????-~?sXK4????-a?>??Q^?i???????L?Hy???+v??^????U??.?????Jr?!'?+??[????X?n'`??,????????| +?#D????c?lC?I?`?k??'? +>????E??c???u?????y:=????Zp|9?T?4?A?M%E?f??_ +??y???z???_?,????(?????^???r?_i??H>??B???{?zPEPEP?#???M%??Q@-%?RQ@ E%-H?v?L????? +)(????Z(?? +(?????Z(?? +(???) b?&???6?c?????q?*??#????$???????*?>)???NodkQ\???d??$v,??j?? ?g??\????r?5?-??5Xj?tut??W"?m?P}??O??X?A?$?????????JO?A???H????"C???v.3U%????????T?Z??????????E?M=??H}???k???V?????(?????????G?5??Eo?C????X?M6?????o?Wc?(???????G?????????Q[F???v??\r???\S?H???U???o??v?Q????J?0????rxF???????Ao???xF?????????]?2?,~??nK??}L??7?E????????(?????`?4WL0?a??/???7??=-V?Q@Q@Q@Q@Q@Q@Q@Q@Q@Q]E????rb6???$??????????????uM??? ?)YJ?V?I@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@<WW-? i?oH?,J???w???1h?????g????T?~&??[?tWcm????}?0?Y??f?m?j???j6?z? ??WE????'??-?O?c?|?? ?>t??4??Yc?"(1?????????{??)??]-K*?-??lOS??????f>??V#????&s???jQ[????D:?R?zU?`????.?X?b?(???T?V???)#7)=?QEb +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(???4??{????T?z?J +e?H????(??(??(??(????QGJpZ}???K@R +2??hh??j?1Z?=?T??-?g ????????x?0?????9???Esr??r!?'??AU???[??W???2???,?L2vM?Dj???e#:??0Q?N+??#?9?hP}XF??H??g;??5'?X????Y?~??E|SF????#-w?t??UN_?!?y?{????a?t#u???(?W????X?C?????9? ???P???O???>???b??wU???>??O??u?i?0????]??????b???????kI|08?o?;??u?G?????)?4?)=r??vtQ??JZ??????|)#?????y?l?????x_L??$?????????_???_??f??}JqiV??8A?*??j?? +?@)h???0?U?????QT ??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(???n?>qn??X???????} d?_:z ?b?:(?/?^??46w??????r???(FL?????????{??????L? +??-?"????{????y0\[?= *??Z??kh.'?9??o?Yw>?nrM??=?%??M??5?PL?|?x???k.H???K#?a?_Z\x??m????8 ??c^?=?deW??N????|?E{????O???[?c??5?^?9? Dr?[??\? ????x??????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(???o?j7x?=????R&o?)9%?cI??tWEo?O???u????DV????M?5? ???G? +s????_yj??????O??99???#_Q%?RG???_?:??^^?}???5?,? +???L????1E} i??B?ti?>?3???o??;??*a?,??f? ????K??t??E}^??>`? ?8?'??"?Zv????????=L,??5?D?0??%?^??\O ?ytH?T????8?|4???????[???????.:?,#?Y?"kZ???& +???#?K9?B??O +?)?W?,?atM9?g?V'??l?}c???]??????F +??#z???$????-H o?[????{?vv??o?P????b?????{ZKhEg??E?/????????kv????? ??`?4?????#/????>????^/ ?h?z('?*?~@yt???L?o?W? ??%?j??L~?O??????b=O??[)???^??#?????Y??v????5?u?zQEn?Z$Cm??ST@???w?!?Rf?4QE%-?P?EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQETG??j(??)i?,q.duA??N]cO???T??Ao?Y??8|rK??=?~???????.)\??I?y??m?I??-??m??????????rE??X????5???t????E>???T??????\???`;???Y??"?),l???? +}U??l??E?????a?+"???N?C[\'eq???P?4W?j? +?93he???|?W/w???q?\@??(`???;?????qd?5???d??????{????????????\?e???U? :?:RPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE*?c??? +?????zG?????????y = +????Z???Qs?i?1?,???3???<$????eL?Z??????L??*=?>[SK???r?[????o?z???wg? ??k?|?n??a?!RO???@?# ??????Z???D??R;???q???%?????-? g??B??M?????Y|-?b??????>[?C5????Q??R_??'??{x???l? ?|y}??;?PAZ?xNs???4?)o????k*??+?V/?T????m@?????????4????}]???j?[????_??G???e?c?H???QxDU??n??]??*?nM????U?(??(??(??(??(??(??(??(??3?psM??% +-CJ (Z)??E80=?h??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(????$?=M--R?V???e?y?S???FoXFHA,????s?B??iS?????i|Y+q?)?m?,Tk?k??????8????^kB?????}t:??-??$?.aR:????s?A?o@??????.A???????Q????K????????S_????#??l?!?E?V|?(A?6?}??? +???Zlx????|*??H???????\?????OyF>???G?g???]?????8??O[^H?A????w*?@ +????????d?4n??qqx>?S?{??=q?5??mW?u?????t?U?,?G????????P?sJ?qj??ZZ??????u?h??Q??)|???-?QE?!EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP%????JJu&h????6?? +)?"????W?f~?'y?8?j??????L??4Rf???I?3@ E%?????u??? ?u???Fh&??:M?I???lW??YW?a?{??:??X?????C?WR????0?0?OQ?qj t??=???dW?????7_"9?5???*?F??c??X?&5?q?L?????_SOciu???)=?5?q?=&??}cs?s@*?i:??M?????E?>?N?????Sm{?Y????{Q?{,?3i??_????????T?>X???vm?N???k???{0?????T+???*??????V??d?TL???VD???6???&?? +???"??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(???y?$0?#????Cv:+j??!???]??t???b??~x?p ??[??i0'??s?B??Z?7?8?+?m~?H7z?h;??-????mY?#???Kq{r??B?????i?[;?#U???1E}c??H????????B8????B?F?ck???T?h?_??'???|RG???F?x@?????M?????k?]cn?$`????Bs_P??)?????v????*?xN??y??`J=?: +4?XrQ[???6? ??H??,??r????-~?7z???"?/?I??b?????????????D?aR:?4{|?*?z ????g?Y|#??????.q???]?? +2"r?%Y??=?W?p?? ???P1?|????L@?.?=???t?UG*?/?7???5:ha??k9y&b??U??t? ?PH???kJ??????7Z????im??x???????QQVH???(??b +(?? +(?? +(?? +))h?f???f?????4P?IE-?P?IE-%P?IEQE-%PKIE??P?IE-?P?IE81??OZ???zZ?????`q???hh????J(h????J(h????J(h????Jl??????? +?V?????:?t?}??UB_Z?>T??k +??sT????SF??R[#????=??V??z????(X?I}???^#??^iI?N.^????_H???8?t???? +?6??C?????>o?X??GQ?m?7?=Ib??!?]??????v???G?q??)[??????W?"??v??R?}?????R??WR???????????iPc???BZ?b???a?1???S???????v??N!d???%?S? A??OO +??/??TRz?r????????/??R?a?????A??? ?n????????T=`i??O???+? 46???????G? ????&?$??P +??+?1QVH??? +(????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(? *)3Fhh?????5 ?x^MLX/$?Ts???@??r?4?d??y??(??(??(??(??JZ)(?-??4?RQ?Z)3Fhh????AdZ?q?i?Y???$? ??b?Q??.<?K? ?BOl??????"9????????Q@9??9F??D_??????/>?n"??w????k???SA ??hc?z:?@.]xS?& `?{ +?[?<~??s?j?y??'ue]???M??4???m???#??Y7???^:?,???P??`??_B?>??6???z???\?????3?X?ZT'?EyM?]|??d?_#z,?G?3????Z??O?|??`??_??1(?&????O ?7??S??tQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ@8kB?B??H?6?w.{?-??2?b?'a???}?Z?:?5?3b??YeQ?MmZ?#?\u?[C??????ck??????5??&??n?OdR???bg?:/???cM|S>_?????????Y]S?????M?K?????39?X?k?8|%j????!?d?????.<?n#??O??? +?X?_0?????m~Z?}?U??DQ?I5?a??B??cwvG]???A?{?V???????@*jS?????J?????ye??kK}?????GFuR6??oO??ouO??*(YU?6??????I?^??v?=1?5v/ ????C???+^?? 46???2z??N-*?ZC?r???j?????? +Z+?0?>c7&?aEU?(??(???E%?RQ@ E%?RQ@ E%??Q@Q@Q@R1??5?je??@Q@Q@Q@Q@Q@Q@Q@Q@??Jq at h:)???4??? +(?? +(?? +(?? +(?? +(?? +(???zpp}?:(j*H?N{??R??FIz?Z*????np?q??~o?Y????2!?YO?????\?1?)?SF??9l??+???W?????????%???*??F??r???v?/Di?i}???[???J??j3???????b??z(Y]9kVN^?>?%???f?& ?2???(??????|m?F#????????x,=?? ????Z??c#?8WlQ?EP)?Q])%?3 +(??Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@QMgTc@??eN:?API9~?QP?+?S??2??Z)(????Z3IE.h?????Q@Q@Q@Q@Q@Q?(??-Rf???Fi(h?????4f?????I?3@?t}:?>u?LOR??q??:\?^hI?;?????????%J?4??d\g???5/?Q?L?.????1?|??f???????~?u<-??T7?V-???Xra0??_?8?u?$???#??????|)??d?{??~???^?J?,?n,??GV(v?}*?}=s?~?????/??\????Y7??{???q?F?<???C???1]???t??&????^??mu ???C?h?????;?Zd?c)Q?Q????f??b?#?"??(??(??(??(??(??(??(??(??*????_-l.f??&#??'%v??{???????n???????*???nZ?$???P???F???W4??ho5??F??G??????????T??3?{O?%???@?????Mm??"?|?N?/h?/??_EG?? ?M'?-?!Wb???~??g???????Ow?!z ?g?Y?$?U??uyp????&?K??DDyz ?Oy?0???+???8?lq?/??S???i??h? ??8=????G??,????????| ?}??P????I?pr:?N9V;?7???5:hc??K ??'?`?*?Z.??m#?? +?????]P?P?????{?8????H??(%V?$????(?Ef? +(?????Z)(????(??(??(??(??(??(??(??(??(?4PE%?RQ@ Q3d?S?????h????J(h????J(??(??(??(??(??Z?>?:??Q??PJ??iB=?J(**\??S??EH?????Z*)n!?fi????V|?!?????O????^???IJ[#V????Z??-??.??W??~v?B??????q?4??h?'????]?5V]J???Q:????Vx{^????O??????_???Cs{?F????O??U??K??~??~)}???k?$????~??/??b???????tv????h^S?#??1Z?YZ???????P +=?:??5E?~a?F;+?*??+???? +???????????n?????!c?f??(?????9K?Yk?I? ?pn.?P??kR +i0c????[??Z?WE<????fr?R[?8???v?q?DP*J(???VFAES??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?{?HA???y94?3@ Fi3FhsE&h?:?nh?;4SsFhh?&h?.h???4Rf?Z)(???P?M????E-.i?P?3IE-?P???Q@ Fi(???????Q@ ?3IE.h???4RQ@ ?3ISE??????Ku?z????3??u??????????L~U?Eq?_??[?c?pJ??/?W?)oiz????=^?ih??S???d??u??y2???W7u? &??O????F?}R@`A??.? +2?6?,??p1?|?u?Mb?$?Tw???:???,2??%??q?.??????-????XO???#??X7??teV?????1???@8?^???;?rg?$??~ ??q\???'?????*g??T??]????N????{j????v~h????????3?R??I"?9?drtW??|#??o5T????#?WAa??Ez;??? ???+?Y?;E???V?]?`???m??K+zF???_G?? +?a??? \q?d????Ko? ?w???? ???S??????~? ??>e??O??0c??E=???+r??V?1?????. 1????xN???J????j?:??????????'?1???q????????z????????(??3ERf???Fi(h????J(h????J(h?????-??T?0(?RQ@ E%E5??????????i+?J?QX???M????>?????g???[??f???????a??5???6? +??U!!FI?????%?4???Pe????6??[????#?V?!\??3W?!???????~???????????????????aoV??~)_?I?a?G?k4??W????a$?[{ zbA??-?+?[`?A#??l?+N ;[l??E??/????e?M/D?#?o?y???-?M??M?`~f?<'?^Jd?????,???k?( ?????96Yk??G +?????#???JK?8?^?s????G?Wnc?!^?R?kr??Uo{?xtMwK???(^??~G?*?3?l?E{d?om1??~??Tr???h?E?u~??pn???b?!O????k?}2l ?X????? +???,oFm????7??Z?????u??)??Dv???J???9???e?z~#?*??0?)~? l?;?+?>??? ??I??7??#SC?]F????4b??EiQ8???????\??????&?`c?????m[j6W?6?QI??3?WD+S???c*s???E%??IE-?P?IE-?PKIE-?P??J(h??? +(??1??A????&=)jqNG^hZ3M +-QEQEQEQERQ@ E%?RQ@ E%?RQ@ I?(??(??) ??#?;?t??(??(??(??(??(??(??(??(???$jY?UGv8?6???H7?v at O????Zt?9%?Tc)l?*+?????D??????U???Z????S???i?N?nO??5G??]PM??????q:?????u<9???(???is??f?m? ???f???SQ??UO?R???{*q??? ??l???9ea??????g??u ?)kl?=R?? +?m?/?[???HGyX????"?(l1$k???S???????v??N l?M???E#????j???2?]??? ???Met??F????&_e$s?? +?!????????k[?v??-!B:???[????h??"???N[???+r?(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?2??Q@ E%?RQ@ E%??4?P?3E??Q@h??(??(?4f? +(?? +(???(?Q?L??I?\?E%???4f??L?$?(T??"/?0???7$??f??? ?X? -??????????G?????XKF;??4*KdtTW'? ?x?--?D.G??S?N?=? ?tj????J???[?}Y???t?M+?Y?? +?6?????V>? ~??????%??cR? ???i??534?c?[h????i????C??w?? ?|[l????????j/?J5k??ef??$e???J???*??l!??q??k@? +??c???;z ??????e%??ps????????*+?xZ3?&??R;3?X?????m?k?k????@\?J???^? ?l?y??!K?c?|Q^o????F;??? ?.s???v??*??z??8F?Q6????]???cg???C? ?uj???*??Z????y?C??R????d?,????5?m?{?7?1?Q?5?QW ? +Z??&X?????m K????-???n?????????8AZ*?.M???(?QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE??RR??IE????JJ(sE%????\?IE-????J(h?%????\??J(i3E(sES?U????u#? +?? +???V1?F??}B?~??????$iS?????????m??? ?\???|S~ X??Ol?? +a????7??~?%?4???cR??G?8?3kztz? ?O??V\^ ?nX=??)=y.????;XF?????au?g?YHT? ?G????gJ_ ??z????il??x????'??i??p.????0???)7f??????k?u?U MgN????1??[?5~?T???1i?QE?Rf?Z)(????Z)(????ZJ(????!?L??% zZ??1?Z)?OQN???(??(??(??(??(??? ??n?>??rrh??(?????|??????'??]??,???9&#??????LU_?.4?-??Erx?P?o.??!=6?v???8h?$?? Qi[`??????8KJ1r?F?Vk?i??gi?>?4#?s??k2??VQdB?L?M????E????uz??s?????_ i?&3??N?s???1P^z?????g+'?/????.z`o??R???mO???????Z?xm?l0??"???J>?R??????o?Gm?9??uz??#RS????~?o??S???????3????R+P?A???2 +(?? +(?? +(?? +(?????Z))h????09?? +89?@QM zZZ*?????|???#?0??Y.????K1?Up?_??*bh????q?9l??+?????/???T???? +E??O?d?????Z????j?y?$?F.^????_H???;+PD?Q+??$~k???Q?C????h????-????????????[v???pM??????????? T??v??g%'???1?[???"?o??S?G?&??8J?z??????j?(`??6CF??? +??????5V???=?c?E#???87w?U??? +?????k??c3??N??EoO???>?39W?-?PCl?$?}@?IE??Z# ??)?QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE???J(sFi(??4?P?IE.h?V????>u?HGb???fO??>.#?&????YN?8|RE????6?Er?x??f ih???????)E??uN??\?"/?5?????????%?4??Y??wK*F=]??u?????2??7t? ?}????M?????FGuA???Z???e????mN? >??O?7?k??^zI!r?.?Z???-??????????UETpTV?_?????v3-?;?????&8??7?:?DH?**???F???#??V1rr??E%B?J(h????J(h????J(h????JP  +UR??(??T(????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??QO?:?????4??H@=EAEHb?5R:?(??? +(?? +(?? +)(? +wZF?{??ZD??m?o?sXW~??&??X[?????+)????&??8?? ??iM???????.?CR?? +kNq?j|?(??????$i*??? 2 +a?G?M???aK??f?????.[v????[????????)}????b??WI??6?S???????J???+?Y???NO?,4???Y=???y?1??YW)???g??p?3??m?K??{????P?v???i??&?U?????l?b???U? ?????|?c??????????KeBzg??? g??Xa?u??|????5?6?6?k???(??OG?j??5V??????' k?????F??S????~?lhZv?l????????j{F???*?%?? h-?l??"??U-WbI+#??)?QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE?RU??: ???F???Yw.?N ?IO????3????5???i3\????D?ej@???Rx???^ ?y???C?%????c??o???O????F???ck?:? G????k.???q?C??_?????6??Q???d8? ??5?k??&?|?q?? J7???G?T?G??G?9?Huk?+cg?|!r???R???]Ky$n?I??#?+?DH?""???F????_???}aG??Gk?1???????S??k?M"???k???~??J?????6??R[??? +?l?$?}@?IIEtlb-?P??J(h????J(h???4f??\?IE.h?%?RQ@ ?3IE.h????@?N?b?T(??PK?J(i(??4RQ@h??Z)(??4?P?IE-?P?IE-?P?IE-?P?IE-?P?IE-%PFh?f?(??(??(??J( +)???dt???? #i*??i?!??TS?0?M??(??(??(??(??]?v7????9 ?"01?Z??Z???~?u duVa???L?m?l8????w?{?6?I'???????|;? +$???.h???z????4?w-?r???j????V;??Y?&??U??DQ?o???????????c????o2X?a?????6????c????f???d??????6???X?'??l?]??3???????n?|/?p???!??.????*?s?_??^a8???????kdY?d?gl~??j??^!?I????????vZ??=4?AaH?_??????m V??????l?/?1????G??J?In? Q[?Q@Q@Q@Q@Q@f?(???Ef? +(?? +(?? +(?? +(?QE??(?? ? +?Wh??H??{??i(???J(?????J(h????J(h????J(h????J(h????J(h????J(h?????(??(??(??(??(??(??(??(??JZB??Q@??cL ??=%T????1???T??+n9? ?;y??H?v?M??????3?R??#H???G]Q?4P!y?H?ug`p#_?&?!Kd???8?y?[???5))_??n?}};??m#?< +?v???M#?> ??.V&????'????+?l???M]?vpA?2??S???>?R?????~?qa???Q?{??/???????Z???+3??????????+hah?h???In??i?pF?QEt?Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@?Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@J??OZ#L|?????EQEQEQEQEQEQEQEQEQEQEQEQEQEQE%-Q@RP?IE-?P?IE-?P?Uk?F??w]\??0?S\?????2??Kr??@???^?f???g;????s??????z???Yw?#?t???c???>c??????e?<??!ls3yI???[?w????? ??[???????kT?>l?????/???%??Z=?c??????????+??? +??????J??%???6?|E????oo?=? +??G??T?$????R??????:?? 5;???%S2??x???O??Xa?????p?????uV????K??,EIu#??h?PEQ????%WJV0 +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(??9?(?? +(?? +(?? +(?? +(?? +(?? +3EQEQEQEQ?(???E??w'?P??Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ ?Z(?$($???9?????f??vU??3?Q\X????/S? +J5?9??jw-??8???8????????#?o?\?\??VI??????Q\X~lL??????????N?_?????f?a?+???2Z?,4]7KP,?`??yS??S??Ez??S?????Y??e?(??3 +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(????? +endstream +endobj +8 0 obj +<> +stream +x???il?U?`????i??X??????!:??Hd ??f0$?~"F????0??i +?2d???% ?J????J*[K?_[(?~?|??J??w??????9?>w????>w?-?c?4S??yy? + +>???7?]???9?9r??U???????W???|??p})?H??????-[?f??=?>x?????????}W??????uk?V?;w????kW6??? ???o????3}????7???1??? ??p???}^??(?????"??o?.???????b????>P[__4??[?G????????e???}?E]??}}??????;e???]????y?????Zs/?9B?3?=zh???????|??p??|?B?<?K?n??9r????z?????\SS??????ZQj$???iS&??]??????J?]}6tZ +&?X?-J2????7o??E;??\?z5t*? ?n(-???w?!?????????g?K????z???tz??3-Z?qw???e? =V????j????^[??????c?[z? =rpG??>?????/_??? _??%????u????????????????y???P?J???F?RPPPZ??d??PB, ?k??~#G?\Z?j????g??.?N} )?0??"?H??S&?]??7???NvI ???0:??y?? ^\?f?w?? +?x?I? +=???HFF?q?}~??-_U?:?%????x??????3??p????v?I? +=#?mRR?v?v??y?o(*?[u?I?cJ??@lK2`??y???d?? ?>?]?? 1'?6??w?Q/?h???-::Iq??Uy???yB?$????G?/_????9bGjkO??x?{?'??S??!??S?W?:z????? +?????.^l??? =???6y?Y?r???_n??C??t???.?, zt?5b?????t?????_~?#?\??f??g-'I???W???Yq?m??%???v???~x???W????k???xR += h??:?~??W?n????2t2!????[???9???5o???66z??B?Ln$5?]??w??7w??]?U????=K?Y? +|????????k?Z?L? =Y??????rr?????={?? ??z???r??????.>:3?BO`?$????g????_,8p???z?4_?? ????1f??7J?J?pZF?9 +?4?v???;%???G?V]l?z?'??????????r??o?5?^?I\?g9 at b???}(y?????S +W\?B???? %??4i??u+*?C/?$??S ???9h???7~??????/?:?WZ??g??|?????u??s?\?h?;??}F?????MGm?#B?@|h???{???????k?w?WB/??_BG@??>?????z????l??B +@,J?t??y??g???s????????1[???????XZ|4?? ?$t????????!/???}?????BG@HG?z~????}ek?8:?Z]f??????V??cu??7#1?+?????q +Vm=???/$???eiY?C???V?????KW??^u!:B@?D?v?>????=z??? p-+??]L??f?????????:?ZDJF?n??X?m????eq?P??-m???z?? +[v?6^ +??B@?C??D??????+????q7 +|/?qf@???????U?r???? pcm#]sr?.\R?????Q?zBG)?/??}`??W>?u"?b 1.t??TF?_?}??M???.?^&!.??Z???z`??[??C??oB/???d???(;V?xQ?4G?0?Z??yO?*,-??B? ?@??>h???? O????ZZD???H?m??io??r?B????? +$?????4i??M'?B?y??B?9???w?yb??m??????T?I?\R????o???n?}?R?U?U;??C|h?????y?[#??#?CL?~?=????M???r? +bLz?g??EK??N???^ ?????6IBk??;????? +?? ?I?FzF???K_??????JZ??????S???]?  +?:DW????f?????g???%?C??0v?{? +?@r???EDz?;???]5g?6?k YI??l?i?gN)???o??d?H?pK??t?????6?????f/?????????f????&?#k?3K???j?=???N??=p???>??? T?O?d???3f?ke{O? +-?\R'9?6s?;????C z? ? ??BT?w????????:?ZEI?'?H$Yc?????/>??c????;{ +??wKO???? +Hf????O)??&.?????13?v??#nde??[????? +a~?|?????em?FM_?q???????????0y??m5uWB@???X?????n?[?! @???$6?bN????w6q?)t$$[??????YC?y???J???,[????????E??q???/qJ?(??g??????g????I?)uZX???/??D?@?s? ?/???AO???`??n?8?F??3u?[??C?a???wnE?????}{????M?=??sC)wO???p?????_????????{???j??6 ^T????II??2}??CGU?????I:?$?v9NY????!?\????????t????.???5)?K?w??????k.??T??\??5|?K??? =???zJ??o???w???r??r?-~<0?????ZS???`???1{??K?W6:?? +h<?RzL???a_U??@\??+R??M/?RSw?69??E=???>Sm,>??:??\?{???>?? +?C?>???V??y???;??.?s?3??????9?l;?p????= +R?fM????oj????\??b:?????jB?(???=??%????^???Xm?? ???8?? =??~???9?D????q????|??M?I???H?3?Z_Vz??FT?]??}???????5? ~?????;??^?????c???{?^y? +7}W{5?P??I???i??fm?????$???%??{?????9?? ( ??G:???_?T??@bK???9??m?s?>9?"?>??v??????T? @?I?????L]??THr%q?v&?k??????X]?'?!????????GC?6?9?q????]??????v???b??{??????? +?1w?j?n?G,ZWy???0p+b?4[J??? +wv??)?=.?s??n???;9?????g?????B???PZoC???is7~v?)? ?)???.ys??y?\??]?6????~??=?C?w?DJ?>?R??=?=????KT ???o??g??o ??@??Z??"?H???????R??j?????[???U?5??n??v??Z??P??7?]%?P?>p???RW?@\?I?\Ff???7W?_ +???[??Nr)9???{(?????d]????QZ?????? +endstream +endobj +9 0 obj +<> +stream +x????????'??y?9?l????6hsZI+B?@????????m.?8q??/>`l??????}?LIMmu?Y iG???::????????????-??B!?B!?B!?B!????e?????????I?B9??H?7?????????']"B!?h??DS +?W6Cy2????????Y???KF!?E^?>T??1??}r#?????^_~????B2???T?<???R?????~?:????8?H!$?)?:f?H?CwB?` +??s??w?h&f?}!?\?:??B!V?f;?zT?/???Po???KG!?XQ???8?{??!Czy=4wsD?BH&#?(??%U?^??6{??iO!$??8mKm?_\ ?[???????P7?/F!$??????r.??g????c?'???T1B!???ik+s}k%??b>{a)?X???g?#?>;h?p?"!????&???T???*??V??:9M?U[???q/?{?????????B? +"? ???]?*E??????o4?? q?!???????x R???????_]?|???????]??srhB!BK?????2?CN?=??FNY????#??Ad???????:??i{?r??q?X??T??c<B!?????e?L?G????gco\C??K\\M!$???W??2???????w??vx??]O!$?(?r????M?y)?? +??b?z.???@E??B?,??????z6???:?(?_\ ?i?020!?????? +????MJ???Mg'"?G{r?_?e??rwy?{??W?BWF??J???P??4???????$L????&?n??9B? +????Z0??=??F?h8????}????z????01???? +???@!w??j??,??Jd????pI????V?zt???Q???????? V????????.;!?|?9?????t;?? ?5{???]??????V????~{-tm?????FZ?S?U$??{??A???????qTe??`?????????? +tU??=??R4??T|`????%??{DO?Ko??????WG?![K]7fo????????????g?g???C??? +???O???`?t??+?o?6x+?[?#?????@?:?]/,?c???9??+?v???e????????,??m B?l???$??n???????????V?5?_??@!?}4?~i5(G???F?/OF~1???/ +]?1?T??"+???;F!'??Z??7C?k???xt??????$/d?o????W???????<'??????r??A?w?????#/lG?=v??2K!? ??W?B??|??k.?o<?????T?:???pB??=?}S;???1???C?8?O?G?H???r?o??b??T?`??????p}1D?B?G?N%?9ge???X?|?/??D[ +?,?wi?????{~&???????u9?b??2??p??}$??~XYP&???7O{!X?R?N{wz??=>?#?Bv????g?<(?I7!??d?g??;????v??_????+????j?A???C??^h??S???M????^??G?? o +???.?????z??(??i??i[l???????????4z ?1m)???E?u????j??B??@?^Z5??<???R3I??d??X??vF?9??Z??????y??'???_? L7z*s???2?m??????xr\v??=WS??g&??? +?!?< ??68hP +?@\???????{r;??^??6??3??????}p-??f????_?Jl~????O????FN_{????_????#6??i?? ???B4????k???*?rF?-?x?"??[??Noq??v&?N???r???s????????:??????z???T?UT???=>?X?(?L??p$!??/:>wr?????C?wt;?i???N?r????l?H? +i{aI??YN?Xz,s? +?o? ????????(!?H?K??#'u???????? ??? 3.??>4???A?`??U?2?EA|?h????? ?H!D?????8?W?#p?F????gV?T??D????^?|m>(Ob??Z??k??f??#?s?|u???AP????i???uy?`?!D? ???#^o?e;????|?jt$N?B?M?<?????V????n??????m??#w????^?~?ht??k1?^#+`????E?t +???B?g4;??z?B???z??M?T???M?e3?k$gp?|5?@????Yp`???v??,"A[7???l?5B!??SQ?^?4j???n?????0>????? ??ODw{|AOZ?SW?4???ij??L??~???l?????B?A,`vZ???9s?????{?`????????b?,w?{?xi???bihn_?[???B???Wo?B????\????????? +dN?O???b?&?? +???l?h??????????0?%?????-?z8??BH???x?? ??B?y8mJ3O??6??1?{??????~??{??b????#?hB!2???7"??^^U??;?.?^?Oj??????*?y?????B9cu??????????A???8?>?????????=?!???HM?F?oO!???nK?C??%?8??]??U?o??R?P?>????B?+49???K??????gb??V????? ???Dz?(d?B?|????b?3?:9`(?O?o5Xk,I????b,d?~$?????B?&Km^Yz^? ?J?9{]??R??w?D?u?????????#??2B!w(?W??_]?<1?? +?+? gOK??????!|??0? ?????? !?? |??$?d9?bF??6y? A??3N???q????4?##??AD????????????mc??????B?D??b={}??#{??H??B?T g?Z ?c??B????B2??"???#????(??B?p???f?65c?*B!?^???I?????F?2B!??\??_&o????BH????M\Dz~&??|B!?M[??o?U???gb?l???T???&?f?B2h?~_???~???????F?wW?E1??B!'D?om??????!o2???i{&N????I?B??2???t?????6Bk?????????Ll?j?H#!???.Xv?.??F^?????[?#r}B!???2???#?K?FRG!??'tW???*?r!?????V????3#?B!?B!?B!?v????F"Q??6!??O@?B?PIIioo??????8???`?r???` ??n??V0??p$77???TAAaAa!????<????Oe?? ??{V?????????K?495?6'????e??ee??????? 6'c???j?????/??]? +?M????????????????? ?{??/?^Y????????"??? ?m|b +???????TTT???????1????????L?W?F?A?????? /kZ?6??Bn?????.????H??/nn?@?L???wdg??t?????C????1?`hdd 5??????.????|?T?Jw?k?bL????????{?????'??????]J????q +lA$???? +@[???????@-?w/????e!$C?cbh?-???Nssk?????f?x????>?or??E???m)9?????????u????T?U-(,?>1??`g??|VGg??)?n H????????)\ ???e?????????{????~?%"$C??????!???u????~????l=?}??D?E].j?5???rK??k"?(Z66> ???$?V??'??? ?)gH?8??S???S\RRYU]UUSUU +????T$???:?~???4yzu +N?u?(???^?l?Q?#?=????G>0?(!????J????? f_ ??9???MPx4?(?V??565???H@[7??2-????????????*???o???h4?[???YRZ????a??.?x.?oqq?? Y?????V#???5mk?@;?jI4e?z +!????????Qy?v????h??B????? TC??.?W?W?FG??[t???????olk9??????CC#?T?Y?*???? $?Q]SkK??3ldt[??????+?????8%?? ?#??q???7`h?rs???{??/??[M??7?v??.vv????Ik-C?? ???1M-C?Z[?????h +Qx8?k????@Y K????0????????L??]?????e?B? ?z?%Y[??/??] ??RdE??G? ??D=??K???0?Ywt?p?q??746??kj??>??7&klB??7< ???aH???Pyy??3<???>??????? +????4?2?k???U? ????+R?H\ 1?? *?:?????u?G; ?g???C#rn???N?A?r?c?Z??????6????T???@}?M?????????u$Dp<-klR??"?(A??7??|???QL}Mm??\?i~aYq?u??s???+????? C??s???on???r???-??b?Nw?????? ?]];$0?z?:R?p??la  +??B?O????GvED????c???????/?W? ???w??)? +e??5|7?.?0?B?.???J:??)CC#?????;??]??O?t??AZ?????9???h?pj ???????s???a?g? ??x6E` +???????rFO?p????????i??#NW??AD?aYyE?K???2?Q??N??s1^d????^??AG`????e*/???2(?aK?? ????Y?:?m???D?L?Fe?ZZ???-??'?m???jK??St???QiOT\Qp????????hnn????bH??`?]??_Oo?z?pd?????wt?WT?h@?j? H?,)c8.????!1F??????? zS\_?pj?4}(TM?c?e??? ?c%^? +????qI??go?w??T2?#,?ZhY$Y]?TNGi???:?S?3sz?M^?k?e?.???EdUSG?f~a ???Xi9? l??v?P???G?!QW???????!z2Bj?? G?v???`H_r?,??Pis1_???E9n???.wmm??b??2??@d?????z????f<x.JJJq?o:}????Vt +SkI????z???????__&^(?P??f??"????6??!X???:3#?Qix?0?KB#???+??[??p?EuF?&?n`?P???????0/RF!q +4?????????h?W??N).????M?_?mhl??%??V???q? ????fmj???ONNNj;??4?R???`??Y +???FDk- ?,z?Rn^?a>FZ?\)??shF:,?? b?e6??j?]x??X?P??[?.??Y?aA?D>x??X??e0??]?H?L?~?'?_??>??,????b"??u???#?;;??2????YVV7B?rE????? ?|zf??0??W +???,C-#$}-??w????155?H?+An?????C??????lqi???o???2??Y??&?U??9R?G????SgfJK?? B?????4* ;q?g??W?L??i???2?k???e??????????1???#P +?$?}?O??????\1??p???:?Z???+???|)N?e?????? +&?1???)??u???:???"?????i????}U???eK???e???Y?F?s??2[rX,????eF7 at y?'?L???r*M????R>8?b+?&???b?k?-5?T +?  +???F\V?? ??Z +?sh???v??x?????????yJ? + ?????>j +??e?@??????????:X?`0(?SEE?l1?8???5???:??=?Q???c??? -???ck?\xH?E?HeN)DAL_?p-C!???o????O?????E?^?O?????.h?iUV+?EE? W?:?'?U?(<4hjjFy5l??????????9V?=JT+(??EU??%?o???Yv??3??a?x?,5???6.[@>F??2<2vHbf??d???WM'}?5????????????A??p ??<??Sj!ir'Z?#?gmiy?????JyZ?6'_?{?kP???????` .Z?Y?????????l???k?\*^^a?????e????H-C?????EII????????;?2???=_????lSG???= + O????;wA??H??Q?lJ$E?f???kajl)???? n??????'~??Vm??1?"!f?????*?@?????z? ??o??`-tC]]??{l|Ryk????~???:??i???m-C?[Y?????2UT?@?h?Py8?T:M????J????(Zf?EFk???)k??OP?@?|,-C?I?J? +[*??????2?l??%??'.?Y???????)??Q?feee-,?$c2 ????q??6G1BF1? +???i????VN??( +!_`?D?`??M??ok??|?T???AF?~qiE9D?2 +}????u?btP?\C?F?&??K?nw[?l????hB?BSS J?J?#ZV? ?t??_??e?TP\????? ?Y???p*????:XH}?J???e??:?zx?????[??!:?iq???e55q?AWe?????????Wwtt)????????.((L????G?Q*|??*@?q??K?ppgW?pE????????'??hw?B?f????PQY???:22?Br?RBlw?????Fo=?x$?S;d?????xm?E?? [??j??sf?????%? ?E?0?>?3Od?q???73??,??QF??L? K??ci??d?S.????8?s?2??tF????k?8\7WX?#??e??/?+?+k[B???.8???o?m????{???JK?^'!2:-? ??m?^?AYYY%>;;o?s8??f?1? +)ZS??wv?n [jV???K.?????!??5inQ?????? +-?I?e??@????,z?H?3s????yz?????Q?$????????????????595??F +?`????????s8???V?????J??2???za9?o??????(k???GF???????u???????0?G?_??|4??\??????KYSc`???+??+???N6??'uZ?lM&[3+?io?4 S????????D????????88?]?????X$9??????3b???????????????8xtt\??&"?&w?:mV?%??:?m?-??(?????U?? +}zz???????O?????PQ???IC$//_l*$??I? ?e??p???Vl????? ???????????????(??????dS J'?9om?B???? 8?.???A?r??????=??C?[F5??'?jB?Q?l?????H???????4?_C??N??CA?????????????@??E??[tb?_?[[??]Z???%?????????%"??9???k?o" +?\?&-????\[l??3;7]??'l?? ??b?h?A??3-C?a????-?R??\???vRZ?J?r?R(?7L4?T~???Zf?W?`?? ??? q??-??????.??e?ohLt???'????3b?4Cg_d??????_???k??3=?: S????????? +?dp3H|????+????m??F???r?-C/??R??T/}b??b%??L?2?/??l??2?v[??????p?%M-??[?{?k?GG??,-? ?V?i[?[.?>? +??????????<???u?E??D? ?os?9???????(h-???e?h????????Y?:???aa?5&S????;??(? w?n? ??? +"????? sp?????(?????T?L??5????ot8?TgU?fVfV+xT?eP-??Tk?QEy4?,?i????2????@?? ???7?=??(??2y"?$?[<{?? l"?{ ]?|gQi?? K?`0?$?,?????S?3?Y&?)'??v????;?????6? f????-?GA? %2mr???????e??/??dr??;?#c??raD?k $?x???e0,??g???#?P? ??d?vt????i?I?M`?/>T??????%,43???R??{2U1???????????r??????0?Y????~??$???c +?" +??2?u?????<8?%C?\a????q?o??;??8?zo{y?????????=?3??a0?7?? <?O?k?????e?&`??C? J?>g??!???eh????v|v6?E???????i.c?h3%r??]??(??G???=?!?6~?/?_C?1Qp[h,???nVj??V??Tj?~?=;???!???E#????.?????k:??uHn?U?_x?J|?? +????Q\??J??? +E?\??@Y????XE???-? 6?d? +???Y|??*??Z??? ?`0?drY? AR??4?a]??/.(?Z}?y9?? +?????(L?\?jEE?????????&?eQ?" 9???\??Y??q??@??X??[''?C?????O{?-????l??vy?*??b??????K +?sz?xr?,1t??0-s?y??T,?=???W?Z(v8???G? +9s6?~?? ???ss??5X? ?hQ???!;{?==n??DB/;f&??b?J%Ex??2cv,0?.??m ?}@??_%?4:J%4@????8?v??6mr??z>?vJ), at __???%|&?E??,?R??????{aa1?+H +>;? ??pY?(?QI?*pS]?T,??G?? T???M?l /???? ?QF"'?????N???2?f?????????Pc"8??MO?:???M;R?? ???<.?????? "?+CC}???L? ^[Z5E^ i?.????c\^v4?R y??ss Q3'???0???????????V??<??z? e?w?e?==?8;yUQ????N?q;9???!?| |??HNZ2B?d^N~WW??????nww9??8??G??f|?qmx|.V???n????|\T&???*?O?f??h0?OpY??Vt?: +8????????ef?+?"?? ?7?h??pP??r??????D?3? +?,??!U????H????a3?????.a??{?J??Ti?? .???i<;;_L?pC??-s?????j?"o????+??6??h]?T\_68???A??~<9??,? d????????2LOg?I??y???T??????/??UGA??q??p??????fsY?????Gg??z?p +????>u6E?hN??V\v?,j????(W?!p"z???_d? ????"??????_?|?&?????L?09???\???*????Pp???  +;??9=???.???? +2?GF_)?[??N@?I???'??\????%??????7 ?????h?c%?r?D??l'?qAJ?Z'??Ol??722??<::f ??fJ??????8=??+??019Eo???qf\???????S?n?=?????'O?Y?????vi{?sF????_dV?yw????\\~??w?^yg6??&?Q*?AhG?gD?tU`?D? +X&?l0N\???3$?3 ?3?.?<W??? 3?+????xN?H??w=?u"'S?? +???4(> ?`0?,`???m???05=???r@'?????z:?:??? ?????????Pe??J?* +?e||???? ??N/??hll"???W????7X????2?i????<-3?;::`=? ?D???????|{{???.????*?ag?:??????p?@?g????N?ok{7????>N,??u????f???GoCX/x?????c??3x3c? ???n?I?i?n?w?y|?VV? +??X??L??eU4??7nMW??5:a????D?[??b?????V\q`?`0 ??`0 ??`0 ??`0 ??`0 ???&???z +endstream +endobj +10 0 obj +<> +stream +x???XG??? ?" +6???]l???(6?`?[ ?^c??kbo +R????RDz???v????h?O=O????`0 ??`|?hUp?????`?2U???????`?*Z???$G????lC*??????;?*+?????r?C/?0S?! ???w*,:?n?lC*???RX????? +a?&&N??0yg e[?PI4?L???)hmMe??PI?5Y?B????-a?&F?????jc#e[?PM?=??B ???T??0T??!?????h?lK?I??w????V?c5iF?T???????4?m C%?2+?L9?J??0T??3????R?% ????p? ???b??P??V??a??6??????W??z*??( :?C???26TU?) ?D??q??i??i[?*?"????)+?\w`?????WMg??4????U?w;?N?u???? ?m$?6??Bh?? + ?Or??MC?????R?& ?JF?ol?l{????D????5???S?9 UC?|?S?[??????DR???+$????lk??}?? ?? +v3? ??R????|=??FW?C?????? +?UQ?A?O???s??????(<?x?????f??]a?r??? +????D?y{k??1?,.?????l??L??????z?w)?c??o?9E??^??9??v2%???68??cJ?[????f???x???9N7n]C?Y??3.8}?G0?4???T>L?S%???)?^?????2I?{y?O?>?+B?{`? ????$Q??hT?0??/?@k????u?$?3?>?]?e}7?????mF]"?emq?????&}?S?JFZ??b??????\AE?e^f?iT?N???g??**?? /? +:=:t??n??????Igu8??r<`???2??}XB<???,?????n?CSh????5}??r\?MJ?? ?,K??????;v[? ??Bk??)??C?????A???W????X?ftw???z?2???Q-???Iq??\~??Z??$"j? iYy?H?q)DA????yXOZ?? ??k??s??b???;(Z"??~?-??7???I??+ ?"k ?d????W?S?-?P E5???2?BZ??2?????3t)???T???M?7???W??Mf;?3?UM?C?sXW?Isr??-6lJ?????? ???e|?????q?h??&R ? wE?(*???q?i?W????h????rf??iFj_?@??O?lZ?^$?????TZ?S?dCEh??|x???n?J????(~$?p?\]?x+/!we??P ?&?*?.E??J??4?*A 2>=?_Tu'????d?A3>?|????A??^4??8????J5????f5?#? +hT?????`?????O?X?C?M(GB??5??\??r?c??j??c??;X?_?z^f?W?????p?V>O%???B?Rc??5?n?u???6???Xf?G??UF?hAu???g? ?]???[6??(z??\?-?`???? ?1?????X??+?;??w}h'z???????5t?y???7l?g?^?Cr??<?ng/w?^?n??:?|?)3???p?R??u?@W???F?4???)h???????????+rM?:7?&?UP:?????????-z +???S?H??<\Z??|f??c???.????????m???eyk?b???Z???u[?"??$??????????pKm?1d????7??W?a?$~K?I&?6??{??y??#????I?K0???/?O{?; FmU?E??1???+???????o??m??o0g\????h[??=4??~S?~? +???7????(+z?????????m?97Vv[???%?HC??l?"?P?{Bl????????8P +??K?????????s?U?}:?XXm7??? j?mf?'??Uh????%?/?=m?'~????&cu??H?o +????r?7P)1??s?1Q??9????????q\???DD4t? ??hn?44In???x?_???7????TCRQ???`?s?M#??????l?y??,~Zri*[?*XC>m1????j?n?@?pQ???o?;~oQ??OJ??1K??4?.???@?!gr??&L?????8?A4?,????4T?|?}??3$CB?{TC)7?=???????:?SQM?j(9h?X?K8??`?????m??H??xg??`*J??i?,"?V4?y??)?;???6??8????fc?I?sr?[~???5B???T???@????t9?T??8?A?=*??[ +?[?qz??G?n????LC??w?????]?G]Q??&??H?U3???? _?8T????z???V???????????1h?+*t???wG1;???? +?? E???-?2?@[ a?2????I'l??? +??????7??V??E~?Cp.??????????1J??????????$*L? +?N????V?{'??U?u????ry}?r????$Tw????{????P?>?`???!?(???8j ??c?P?`!?u?h?5A?>??vtc ?bF=???? +y??~9???Q??????b??}P??>?Aa?i?i`??P?L?????t3&?/???*?????;?????y|??h?????K????AC? ??@s??.?g;? u???%???v|8??????'5P????T????z?3?:?(????8??8v?q??)???k'?N?l?W?4?X??*z>O?h?>6_????j?????i?"j??5??DCu??????e"9?kR?jh??@?u?G?/,???????i??N%??*T??s??S??>?1?3 +?~ok?^???U??{?%????N?S???[??????}???}rj ????S?>?4?" +??SL???p????!????9??3????O???eK1????ebq??:?"??4?F???"~CvLx????y?p)%? +?????iH?!_'??{Zk#i{:/6?????XCNHC???/ +mG???>@?!`????w??p?????;:}??jH??R" +g??FU9??o??:#|???fZ`?????Y?[??(u?3 +??5?A!???0>?6?yeC??\??k?K*&?_e?B?s????b +???d?l??n??p?0??l???????`u ??W;P?W???????g????{;?????????" +????8?N?q??k??H ?W?"???????T??#?[???4?e?4??4???r???B???MCd?????\t???B=??P?Y#??6??)??i8?????????LC??!]???k?}P??k????????9t??????P 2!?/?V?^??T?y +?y" +U??????P?_?2P???F???P>???4??????a??????{5?? ???m???iR??RT?g??b#e.?a +?????4?u??CQ6?G?w?_?v?6:{??q?oUr? +?p??????? ?2?X?jHm???W4?s^v??S?2?????o?I7?????G +??z?_p?0Uq????@???@?B?={??d?n5xOC??(J^?s?????!?IG?qo??/_Dz*???????iQw?f=????L???p?S?????(????\???}g?_\????$????wS Q?]???G ???9e0 ??`0 ??`0? + lm>>m?3?[????7??????????;\?>???/F?4e?? +???9?U??E?r?m?N]?vm?????K ?"????:V66?s +???r??}???&????&?(?I&?SR?????Q ???q-??7K????I??M??|???? ??;5?Bbg&?p3????_h?????_?X8 +i? +?j???2???????<]NCVo??f?UH?o?IM??/??~?TCj??????Q ?VB +??????L*v??4?(?Y?????E????3Dl$'a]NC]??V?]x???E?Q????lr.??7Uy??B?ju8j?.??\???????l?(XC?v??K5??[?U???????4?????v?3q??????=8 ? ^???b?????j?U????U????M??c? ? ?|??????????Wb??`?*????????k?C] atDT?K)??y +9Bo??a??Y?:ga:ws???F??'?????RB5?U]?5?r????o???;oCO|???j&>?e_??L5???TC???v????yy?+??%????o??m??2?4?MS?????????LQ]W#6???!???=2?i??\???{?.??????k?????,????????.??V??? ??"*??V???2 +i.?-? +???1$????"?4??8??????:?!?~??c:?!?n~q{??;6%???/8?4?j&??A?"??` +X??.??"???q???$??/O??~???k??N??????OO7$W?,??h??o?x +6?d?&>p?{???)???@K??K?o?? ??K??????????????8 +5???????????/??Q?%??w????????9p????????} +?B~M??:oG?hh-?7?M????_@???UQ?}m??iY\=??S????h4Z?Q4JM?!?:?????6D???\?ct?j??nn?5??;?? ]?HCFp??4Tl?? +??!9\??w?? +?t?O?e??>'c.?0?????$?$?? +?^?????U????.???Y?Qx??????c?fF????ZO?+5??0??CFv$??N?q?MC? ?u'?74?B??7B~#F?G?w??'[ff????G?K^?=???O???TU2?????????? =??????5 ?W'?|?????d?W??j???S??????????G?w??????D#?{?[z@? +7[~?????????>:?;$?u???????to +???q?????t?q?????/?6W????????R??????y??U.]!Ll???|?? ??w?.??????????&??`0 ??`0*???\?? +endstream +endobj +11 0 obj +<> +stream +x???1???Om /??g?? +endstream +endobj +12 0 obj +<> +stream +x???k??* ??j X?,`?j??P X??^????????|???BHB?{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Q?8???I???Mb?6w???/s"????g??s?????X?u?g????^Gw???^???????????t???g???q?~?Xj?O??|??C???y??5R?????????K??=}e? +^??|???y??1???(P?=o???aO?[|H???6?s?m44a,?$??????fC0 +??{?O??*?b??/?T53?3hR>???`?R+5F??p:?S??h|C???????=?6\I??M????\???.U:KoG ??>???G]?r?VS??80?n[??T????zG?[??fF?!??????CC???"/????8?GeO~?s?9c?1?i7???l\hO?EV??~?(x????T^ si?R*????sQ?t??????m]?s:)T?i!?1?a????????????J? ?q$G?*?Z??TLa +?y)????q???T|Z??CpM?8@?f?5Y1Sl???H???J????&?,31 ??9E6??lJm??d??/??R6???f??D? +?I????E??]?????? ?.??(???!???}?CI3?W???IM????????d??!? +???*? 4?y???)?(??{?)to??9??:Q?? ?z^?;?R???8r??^U ?|hI??Vw?#???G?G*Qh?I+???i=?S?&UU???w?|hm???G>??B??Cc???h+????)???J??WR7p??4/(??* ?>$~?:???[??5??C???l>_8?????^?C???R??P?W?\??j???T?g8?G????/}/?k|?x?R?C???F??r_???&?u6?R?XUvq\E?:'h?)??????'???o??w????hr?r?MVJ%?m???????????????????bFy +$???$??l?( +g?(????? ???qEgW???????R?/??c}hh?8rt"s?B?Q?%??????AwJ?i/,?4????:m???????????????(?$%??n?v:?k????? ?2?=c(??????`?????^?K?=v??z ????? G?m?]4?{y??m?l?+?> +endobj +14 0 obj +[ 15 0 R] +endobj +15 0 obj +<> +endobj +16 0 obj +<> +endobj +17 0 obj +<> +endobj +18 0 obj +<> +endobj +19 0 obj +<> +endobj +20 0 obj +<> +endobj +21 0 obj +<> +endobj +22 0 obj +<> +endobj +23 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 24 0 R/Group<>/Tabs/S/StructParents 1>> +endobj +24 0 obj +<> +stream +x??XMo?8???Q.j???A??] @????b?,;l??????!??J? +r?$~???y?Cf_????r?????Sr~1'??#Fe?q!XLb??V?4?x????#NVs3???????????|??r`?{?W???? ???%??D?T???8?iB?6`???3J???2& +?}???? +??4??.???????????L?I????"???v]??~2???n?,?? m?E???=??\?3}???7+???o?"r0??^?o2??'&??^5???EC?? .?#{???lUM.j2D???+?P=rMj?R?????j^OdT?e???~$q??l +M f??M?"s7??v?M??? ???????"N8k?JC???DP??-~?7??7?18??3F???]???????g?Sq?e>1???? d{?U?? +?+l#?<*?wv[4? +? ???-Z???]? {??n5??????,???? ?6?k???6m?`2rk????????????z?\?9{?\-???/X%MA?Aa`t?T?C%???o$???<* ???Q???(?s???BvL5?m?(|v?h?x?J|??M??lm_???D????????.?-?????h?,?4 T??tUA?? +??? ???q?v=?"???7 ???8Q????]?%?^??*nu'DeQ?????a*??j??>??n??m?eDw?????l?s??{~??oV???/q|k???Z??+R?y??fC?N5??]0??P????G??ooS?RS??J1T????E???yVU??s?F???????2[???w??????p??????n??J*???j???\??K??v???e?Du??qIY??????S?,s? j?? 7L?C??????'!?????P\?????l???-r3????Lz????AL??N? c?0?????6???????q}:??y?Sy???????Gk?\?8p???????[k1?[?????g??6??? ??n\C??t????$???G????[g?????? .???????}??B????=}1C?????a???-Ar(?f?"?R?z +endstream +endobj +25 0 obj +<> +stream +x?c`,???A?{?p?? +?? +?:7@????????? +? 8?n????Z??x7????w?\B??;???N? +? hm??????? +?i9?n? R*??TE? +4?@?%ts1 +7` +?q?K? +pg??a`? ?7??AN` ????@?Q5.YN.??g;???)????s??,bm????f;??@6??(????RP?Nj?N?X?6??? 9*?N?r?hb;?n??????0/????q??L:??? +???jwC?? +endstream +endobj +26 0 obj +<> +stream +x???1AA???;Pi?,??Db%????:?j?%H?*?_???1wf?????Ln??SUJ?}?6N????`a*X [???!???lf?r,? ;??J?0,?,?h?a?%??m?}k???v??w??????????}g?M^??~???H&?!?kR??li?NJFv??_v?????e?J?c/eY??N;??~?W;?? +endstream +endobj +27 0 obj +<> +stream +x?c`?((*????@die3j???V?Z1j???V?Z1j???V ??Z?????-???$?p?S/ +endstream +endobj +28 0 obj +<> +stream +x?c` ?????7?*U0?`?*?a`p?,?a?? +endstream +endobj +29 0 obj +<> +stream +x?c`,???A?{?p?? +?? +?:7@????????? +? 8?n????Z??x7????w?\B??;???N? +? hm??????? +?i9?n? R*??TE? +4?@?%ts1 +7` +?q?K? +pg??a`? ?7??AN` ????@?Q5.YN.??g;???)????s??,bm????f;??@6??(????RP?Nj?N?X?6??? 9*?N?r?hb;?n??????0/????q??L:??? +???jwC?? +endstream +endobj +30 0 obj +<> +stream +x???1AA???;Pi?,??Db%????:?j?%H?*?_???1wf?????Ln??SUJ?}?6N????`a*X [???!???lf?r,? ;??J?0,?,?h?a?%??m?}k???v??w??????????}g?M^??~???H&?!?kR??li?NJFv??_v?????e?J?c/eY??N;??~?W;?? +endstream +endobj +31 0 obj +<> +endobj +32 0 obj +[ 33 0 R] +endobj +33 0 obj +<> +endobj +34 0 obj +<> +endobj +35 0 obj +<> +endobj +36 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 37 0 R/Group<>/Tabs/S/StructParents 2>> +endobj +37 0 obj +<> +stream +x??W???6}7??G*?i?$RA????)?@?5???Z/???%G??4_???H??V( ?E?rf? +??????????W????>O'BH????F@?????A1?HX???Ha:F?g???? ???h????d?F??X?7t??:U`l?S?-??6M0??)~Km?????7??z???????[d?????*o7~? ?_????"?????v? Z???W???KG??PI????????R?????w?l?1?????4(A'??9?cg?Oi??? ????ay??eYD3????l?DR?O9.)??| ?c?*<-?,??uV???@??U?6??Y?? ???2?? ,\?s}??? ?p? ?X' ?Y?p?Z???O???F[R?N+XD3??DJ???Tl_n??ji????~z~?1? ?+?{???????Z?9j?@????>5??h???a????Y?v??u!?<5?????+?s?????}??????>?!??47??j???">8????+???*???G?l??P?R?$?-Nq?Md?)?$?n????A??*9u?X???u????e?I?-?>??/8?J?????a??$C????o??}^d??~????%,k?u?0?u???A k$?lD?n?bM? J??S?E??M^?A??'++bn\7?a?????p3????D??c +o??? +jUV?O???? q?%q??RA?n??Uc?????\J?>?F??????H?_f'/??oxdCG??D?9?b??$???[??]@???*U\?Q?Vr,????????????3T??c?5????? +z?? '?K?^? +JH????X(??hi6?#???t???\c??{8????/? +nZ????/?i@??k?}T?9 +??R? h?\???*n&T??=??=??O  +endstream +endobj +38 0 obj +<> +stream +x?c`?!?((*?.??Luc????> +stream +x?c`? L?? x$????????Y|? ?5B +endstream +endobj +40 0 obj +<> +stream +x?c`????p????M#?XD?v8?P;.CH??i???A?R??????????BJM?8c??m??IT1aN(E???????I2????O?? ?x?? ??{ +endstream +endobj +41 0 obj +<> +stream +x?c`?????????b???????!?)?.??S??U?~?????3???-$??Lp? +? +endstream +endobj +42 0 obj +<> +stream +????JFIF????ZExifMM*JQQ!?Q!???????C  +  +  $.' ",#(7),01444'9=82<.342??C  + +2!!22222222222222222222222222222222222222222222222222???J"?? + ???}!1AQa"q2???#B??R??$3br? +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??????????????????????????????????????????????????????????????????????????? + ???w!1AQaq"2?B???? #3R?br? +$4?%?&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?????????????????????????????????????????????????????????????????????????? ????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?????????(.???#??*S???>?G??%F???I?????????/I??:??????????y?U??t1?? i????X?????$??????????F8?4??8???4??f??x[N_?u??+???<5r?S?h??H???R???`?SZq???????.|5 ?N'????S +??G???o?G????=A????:???@z?????]?????S?#?e?7?#? +????????2]????C???[????G?J_x^???t??O??;???????f??0?????I?? "??????:'?UF???Uu??i?????q?#pFA%?C?s?J?z??'??0?Y???kN????+?????@?????8??D? +?eo +????1???????H???}*?CS?????O?4??O??????O?4??O??hh6??????*9Dt??????T??????????e??M<???r??? ?T?E??????Q?o?,? +?????"???|*??V??????_??<`??m:?8?????'???H[??i????*5???C?2???????>?g1??S??Q?~TXZ????O?4??O??|*YG?"z'????\?? +???????!?^B??s?????j???/???r??#? +?u???x?4?????'?WA?4:m??Q???c7?4?E?y1??????W??D?xR?8?DO??j???5??:hv? ? ?????E .W??>O?ZJ???V??J??NlF?!Z???u? F??cZ???? +??????"?????Wm? +?M?#?\???F6?V?\?????N??g??kI????+? ?!?S?`??????|>?=?J?O?6M???\????6??????6??nC???????S?+?o??^?????????X?????'?++???????7Q?Gm =</?P??????"?r ??1?~T??Y??????|)?B??????????)?????\?hVc????D??A?Qf_? {?????OO??D? +?????'?X???=????\!?m@H????h?d??J7n???????Z?E???Q?` +Z???3F????????????'y?|?z????4o? ??+G?(???w?????Q@W? +3F????????????'y?|?z????4o? ??+G?(???w?????Q@W? +3F????????????'y?|?z????4o? ??+G?(???w?????Q@W? +3F????????????'y?|?z????4o? ??+G?(???w?????Q@W? +3F????????????'y?|?z????4o? ??+G?(???w?????Q@W? +3F????????????'y?|?z????4o? ??+G?(???w?????Q@W? +3F??????? ???S?j? +??? +z?????w^??y??;???G???k???[yZ)?h?S?V"???/??l???(???^a???M??_c????S??6??o????)?C?7?^?????????)>?k???b????c????S??6??o????)?C?7?^?????????)~?k??0??b???}? +??iO???????4?? m????z?_?Z???????????1?b???}? +??iO???????4?? m????z?_?Z?h????>?j???/??Qt???_??)?C?7?^??f????????^?/m??/??Q??Q?/?b????c???S??6??o????)?C?7?^?????????)~?k???b?????????)?C?7?^??f????????^???_?????}???~"???A?.????4?? m????z???S??6??o??{?????/??P/?H??????E?r???_??)?C?7?^??f????????^???O?????}???~a???E??_c????S??6??o????)?C?7?^??^????_????m???E?}?.???<+????co????? ???1?????~?i??1?b?????????b???}? ??iO???????4?? m????z?_?Z?i????o??????E?r?????4?? m????z???S??6??o??{?????.?????.L?3??T??#ngk?+?xO?3J???? +???????co???????_?????}???~"???U?r???_??)?C?7?^??f????????^?o?G????}?O??????????9_c????S??6??o????)?C?7?^?????????(?}?????}?.???<+????co????? ???1?????~?k????b??Z???_????|??xW?3J???? +???????co?????}???~"???'????/??Qt.Yv<+????co????? ???1?????>?i?i????S}k??0??b???}? +??iO???????4?? m????z?_?Z????????Z???b???}? +??iO???????4?? m????z?_????i???}???~b???A??? ???1??????iO????????o??~???*????[ ?WZ??.F??(]M1? ???1??????k?FO????????????[??ZI4??d??/??n??#Sm3o?,???~?~??y????8?????-????????????:????????????\???Pi????6??????0?o??wzb????If?????????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??+???Q???R?5?????????)????^]????#^1??F?H?k??~?t????Z??aqM +0?+??kC???j???x?V?1N?9??a???V??%i'?G?@ ??V?Q?r???}b?????? 5??????@?,k???????O ??A9'5?xJC.??~>?????c8?G:?? P?!(?+??&?"??(???Y?O3y?c????1?:e?V?!?????,j??k???t1???p??~?Q?4??????`?I???L??s????????i|?y?? [:T?p-Et?S??rR???9WY~>X +?????>8????{L,???????L????????F????{?vf?? (???N?y?,??????????;I?8?H?L???kn?????3????#???~U???+??#?m??????_?{??-<;Q?????ru[??O???z???O6_??????8-/??????jf??d?????#Q'+?h?@?,r9???5???%?W??~j??????.'????}??G??[??G??>???? ?^??E0p???5~???????????????Y6??~c^?}4?|"?? kx?'????Z?H????{#???????!?c?te??\OQxZ?^????????Z???3n?js?=??.? Lb2??????s??I6???y??=??ar?H?t??I) +????y?X:???w?z??I%U????w???H/6?*O +???b??x??4??1??oeL?v??Gr???? %*qQIY +8??|o?d?q6?}'???????{?W???(????D???u5"c$K??Pr>??ti?TW???V?????J66?W?????a????4???BY1??H\???3)V?4?]\?P?j?0%v?p<???.&,@?O??|?????????<????/??1?????rX?xX????(bk???{,=??[??}??F??y???;???T??%=??Nz?{ +?+|+?F?X????c???fc?I??G???s+?3I??????"?J???EFX?q(c????R?RZr??k[????)y4?Q??N@?#Pj6????x????f??R*l???*Y>?} +\hS????D????M?R/ YAk?O +4P?9?PHE}????in?ib>L?IX???x???4????????"h??d?? +????y8??K/#zm??p^?&MB?W? ??y?Kn??w t?????If???????F?t????????1F??q_???j?G?? +?4>C??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?G??%F???I????W?? ???c?\???h?m~?l??????X???x???,??`????F????>?*?2->???b?v?w????????? +????)?jt}?C??s1?#????S?\?c??W4?????K???d?? +~??????v?????????[?S??{??R????w??V??Z +z?6??Z+?????ji????R????>?zW +? +NJ???u?>!?3\0????%??4????TW?[hj??&je?'_??f???????b?????f??{?y???q?SE??y?)sD\?????8??*D?lhZ?ep9??2+k??~??h??g?6?`????.z??$6???R??Gi?=y#_?zIL7??%As??v??-1?ClG??^J.??????g??.z???????_?0GE??[??????)??tA??v????_,???????3??k?FQ???V=+SX???lF?e????]??4?4z?^NV??B???}?Ay~L??r?*???(?F??M?F??LST?^?f???\?????O?????? ?s???????????????i???iW?}?0??????Ct9???g8?^x??2? +??We???0???????]:???Gg? ??????i???L??JZ_????#lD???????Q?,??(?+?T???H??u????B7??????????P0?e??|Rl????R??'????gNoW?????W?!????o??Q???9?????[E?U?k??X?uW???0?:8?:????} ???g%Zj:u8?????j???K?aVk?e?E9?????f??4?y"??????B-????y??c??!>f?B??e?????%O?^f???l??u?J???@???????O???)?3Q????h:v9?3????i?0"@>?'??????? ?=N?H0???W}?t??*???-G???c???%?H??yI????7U???????,}??B;RS?vL???S????}l\??jZ???o?_\$(zd?~??aE????#?D???? JU#f?K ^?y???????????f?E?6VS?EbG?=K????U? _r:?M?+vD(U?~H?m?7??M??V?r??RH? ?CFG?W?:.?9??????$K???????} ??i??7k?V6???'\s??2?|?[??[5JJJ???)??-Eg?QE33+???*k?????k???????*k?????k??(??(??(??(??(??(???V????}???E@`g'?@S??????$z????????X??5??p?\W???$z????????X??5??p?Y?f]??z?????Q??H"?B ?EL<?@????P?f???[??0 +s+?]UF>?O? +?????n?[????}?pB???YJ????o'???nE????g^??f?4?????Yz??j??????E?W?P????_?80? ?9?m?7???vK???a*?i9.???R?6??c??r]??\??b?G???>|?_??(I#?B???&?*?????????WFTd??i?Fg??????/??#?5??:?Wl|?yXcli?Pu?k'Pc6?u+?K?AUf????9????d?????S?edS??_Z????`t??%13?Ca??r?bn?`?X`?=aK????{??G?H?z???x?R?M?`?Xd??Dq??M,?=?Q(E?U?C?^??ojL1???1Y?w??WtS?OS?Mc?O?2/?,??????+ +0??!???9?????F?o?s?4?f%?l?q??7?W??-?6????%9??I?=*X??I?w???u?$?!???g??PQ??????ii5??r?V #A???(??>?dx??1??%?ah??o??J??7????k???~"?h??.T????pp?b?*?K?M>?q C???q?????t?K?(???<6W?A???q???_?????xv????l?u????N???|?{?<<3n?l+?>7?,?????B?u?????j?G?? +????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(???g????'??^q^??3?J???r??A??1??*?R?/??.m??ut??O?V?????????:???/?G??>???.??H)?dV???Cq???]?4E?A??v(?"1EHW4?jX?L?51ZM?)?p)??H??(=????T??=( )qJ:???Fx??????B?Sh?:??zct5.???5_?gT}OC?b?O?kG????n?????,?????:M??v5??f??O!????;???????q????;???????|?(??(??(??(??(??(??(??????)]???B?:??????W_????N??(?W?~ +?? -?r?/m??{? 7??Y?? 1??g$?.??d?????7??? ????c??#L??E??P??n\?Uo?V7?,???8????cN???h'???????z?y???A??g\~f??3? ?|^??l|???s?^?H?4?????\M?x???????0?H?k???????"]?*??S??@????j~(?Ut"8?;7m???|?p?{???&41[?-??/??????$?G?z?????????????$?G?z??????????%?.???O???8u??xv???)??Eg .j??"?#????|W?:?=??????Sn???4&??)?5?????x*??)?-%,#?Q?E,y9?\v?}?H??%8o^??~????9?????6?q??T???0??????Odq?[?????Tg??)#c/\>?????????K?>F#hwR}?5???%:???? +cZ????T???drwV??K?M???j????#?d1????2|J????o?+???????????C?=T???o??? +b{?????0e? ???w?+20e$0?Ev? +EY??T?e?z??M?+??????9c?G???!??????>??6??????*I5K?`5??A???>???????????^c?=M}Y?b?Vk4??????i?O/???u{X??W.v??i&??zm?M?????????????s?????6????"?@IH#=????????????{?????????2? +??D?$9?:?R??????9'????7q.G???? +??2}???????'?~_?????i?u#?????c?yn??t????A?3?X:?e?F?? ?OV?q?????y??????????????\?W?,????m'???>?????????1n:?????f????????????????nDJ ?Cd}M[LG? ??A????s?$SI^+e2J??f??P.?1???OJW@?&z+g4k??8?I)%o@???????]J#????8?0????UB ??w?v?%???v?$?m?j;??[yC??9??JF?? ???k?,8??A???a??I??3???????&??1!????{?S?B?n???81??j?23B??U??jd?vN?;M?E??|Z??/????k?? +n~??;n9??^??|????O!y"????????O?$??&???C?S??t????7l??m???95???v?/???8?Mu?6?Zi??????s? ??]?N6z?????????L?????xc????????b?????@???????+?*n???D?p???W?ye???`?u?E +'?T?7?g?f?????k+8?c?????*(?$??N????????(?A??o?5?????@5?E}o?q???},???_'?:L?|??vq?Ww-F.-??b +*y?? 0,???1??,?B???r???\??.??;y????U?e9??Tk???_?u?gu,I??mO?C???2???A?\??????2,?H?d,z?????f??2?cXbrLd?sUi%?K???0?z??8F?E?{i.?!1??5??k-)?#?^V?6J????S??+w?9???,??'95????Uw~?_??O?2?M,T?[ +?? +??jv?hyV4'??z??????Ky>?f??^????>??S???Z??w,??p? ???C????L?z?Z??????j?r?}n???g?qC??????R?o??????)????s??T??0)?????? u:?????<0H??(???????????-/?ko???(d\|??|?5? +??A]??k?keX?6??n??O???a?B???*????5?'?UF?bFU????p*???'????k?D???(r9???*????gw??D\??$7s\8??2??????????????v??s?????????y?x???XW???v>??O?iHr2]???"?*??<)?J????D?z?G/m?4??F+??J???#\??PF?9?????^:??Y?1ZX????){RR?'`???)?+ J??P?? +? ???.??85?? ???=l6O(*????????+????-|7?C5????~$?????^????-??????m*???g?C,?????t?v??L???????G{h???A???5z?M5tp???d??QE?2?M?"???^3???H???M?"???^3???H??(?5<7??V)?T?Px?(??{? +?????<???P?9? +$Mnec4o?????CE.TR?%d?K??K??!?#???o??(?I t*x?j(???kX???bY??? H?n??5#)?)QF????J?[??@??\??=?~?????~???CO.D"<`gv}jW?Y!m? ?`??KIaY?U\ T?Ri\=?[?d???(???,{??q????? I?CS~??4??PT*;r??????????$z????????X??5??p?\O?2!?M???!?p0???]??A?oH9C?*%?SW?|?pp??=??e?N?n????2??O$S?&E?'J??????????x??'??(?Q=[&?? ]=??Dgrp?g?\y?????tp?h???5??V?,"???P#?NEbS??X?SM??8??,U??h??((AY??F?b??Y$?????[?L??q????R?????H?$?cC??;?X?sX?+[{[;k;bv??1??????t?&O@?V????H??<(';E{8\?Z??;?]??+f8?L:??o{ ??w`???r??1??y<]4>2F?K?????q?}??x??OA?\??8lD??A7b{3??^?Z????`??y?c??Mv>4?6?}?H?-????????}:?'?}m5???a+n???^???G??uo%????2$J??9??~y?F8??G Zt4o??v???3??0??V?????Z??r?ipd=]?q??C?][?:/? GP?crk??#?"????W????M?=???}????)U? I5?????????????w\???Q'???? 3??2+?_o????_?????G??} ?????)?T??W?A??#????????C??????????????x?:??73 ???:p???8 + ?^????????????5? ]?j7Gb-RI-?UR8??r]????zlr2y7 +??;??m????? +? [_?'?A?O??O??~{V?lEV?????>??r?.??Z7h??????????I9?????#????P&??b$???????xO at +?i?:????^#???w??&??gE???5?<|?K ?????9?gS??0??)?T??;MGk?V0?$?=?????????????????1?????C?zS??=????W????,?@????_????>,????)? +? +=??+?i???q?8?xo???xk*G?j??U????~????q?^_ +]?1i6?????J?v??d??J????$?S?z??W???|n??Y?????+????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(???g????'??^q^??3?J???r??A???????^????=???N3?\????1Ie???????q?L??\???OU?}U)??`0 +~?Ma??;???U???U5[|M??[???F????VC??8??t????ycb>??E? c'? ???`??m?r\???????F??LY?n???S?? ?????sq??F=\C\N??????%?i?,[?Ut$??V????%?????V/??f????Ne?>"?Ee??&?P?,k#????????????5?s???N?t-g?????h?+pAb????T?|u??5?6l??a?O?/???%8?InvGK[J??qM7??MM?? ?C/?`RF:?2k?t?#??????/(?M_?3?&?`,!?e????4j?????))7??]7E +2??U???_}???Z?? +????????.2y?w???KMZ?J??u$??s????[??Fs?+???????????i(??q???o???H??????]??? k??????QVl??Y?F7?;????? +?9??q1?*)??M?1?~?????h"??$s??k?d;??)????? ?d???T?_CKD????????s?#??+J3 +N$!}?8???I?IhK9Q?!?+=??~_?>s????j;?3??@:????c????????j??J??9D????LW?*qn??>.4jF?n:->gI?? ????J??@?3???????C?o????v:c?>???!???J?>+??4???:+(??''e?????????m]ZR?A??I/??!#)pI??+wM?h?,?J?o%?#??$????? Qw???C0?)a???9??j??n?dkx?)~J??? H +I?:????L?DN]S/????$?qX????J?,??6]??g?N??T?Yo'r6?"??M?????&?????ARO?????????e8?T??e?w-[q????eD)???Gs)R!?F?#'?T?:??=?D?1o?R3Hx???S??&??$??'??j??D??????????[}k???????_??Sy????f?y{t ???H??P???m?4?u}??z??x))`?U?????9????????a?AKG?t:????S??x???G\?F?(9h?? ?=EKo???u?C?O??e??.x???.e$?Z????2E?rJ3r???ZE??4!???T??u>?H?b :"????O???1?3????{>Jv8?GS?%?1X??S?+O????J3??Q?,M???eXo????????????u??q?_|??|?u???i???????V?s?t???z?=7??6??????0????*??v??>???4a????~?????y???i??6j?V?iZm?WXY$??kS?c??F8f?? +?8z-??%??D|???\kpi????/?G4?2?/????Y?_3?????{?}????C?E>?K(}???????Dq?'&?D????5?_?_T????oe?N^??]x?????e/?+?>7?,?????B?u?????j?G?? +?4>C??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?G??%F???I????W?? ???c?\???h?????????*? +?- +?????????*?/ ??,~?M???#?)??iQp???p??????I?O?&(pb??S??? +p??-(???JQK?m?Q?(???%??????U=??M?]??????X????z}?L5$p?H?9H????V?????????)?U}4????:??????K?Q??Z???????R?J1Lyc?3#8;?R?%???3??g?J??R??2Zm~??sK???I% Z7?????et??TR?N????My?V?????E?fPO at M1mq7?e??x??R?h|?!?K??#?5ZI?&?????Ku.????+????q?{?C?Hb???)?E|?s8??Q?????a#f/?T??iu??????[Ki????????=+:???????+?? +cpB??b? +6??n?v??.??-??H~????????v;U??7??????s}l???$7?Y:???nTt/?[????K8l#? ??G:???????s?L2\?[??M?p?Z>K?"????????|yq0??G?????1Y???????u?????? ???s?5??^L???>?? ,Q:o?????h?~????????g?GTA?U1:k??ok3?nB??iI9R??Y?+???R2?? ??J???="?*?z???????I???:??5R???o???????X?????>?1B?hsTr?a???Q?n!?4Qy???????????U4?Qc?????????>?>n???#?7??????p(??[??c??Y??Ud(?g??T?Zj+??^he?(Y??0????&?????&????w?5????'??????(??(??(??(??? L?=M2???@p?????0???)QE?????$z????????X??5??p?\O???$z????????X??5??p?S-?t?5?xf?? ????V????WO??I??L_??+o??,'???g?????????q??K?81?Wr?? bU???????Q]????iR??pO??,K??5?????,W??S???,?c?L?.N%?]_???E???????t??( +>????4??Q???~??????Q??}????D?"?1$.kV??m???? ?P??k? P~RN#FZ?$gj????J*????????????4?sl~?????????!_?????????c?Eb;???|?W??n??+???Z??%?=/??t???0^? ]??????/?\?z??'?????Z?1??/???8?p????6?8??? +?@?:???@?'?? +i?j???????? }j?OC ?}?%?EK?????>E?<5} +???0H?%???VO?ZZ[8 +X??u??5I???D#?;?SY???j7&y??`? +?,VcW???????q8j?U?4??*??X?!m,??K????&?R??t????????x?_??;x?????+j????)???ux??@??4l?j?????? ???q%t{?7|5??????????q{??~?8?V]??w +rZ4$q???5??.??#h??h????oKws???l????k??w??MA?4?_q??xc???o}Z???q*FB= +\?5K?'P??h?y???o?-x??Mn???N???gM?Lcm??*d?n????U???|??|??_t????R?t????^?????%?B+?w?????? +N?M??x???L???????/ ^?e?M>?.&:??\?W?B$?U??.H?1??J??zx\?g?j&??????C?X????JN2??Ro7FO?Af?r???x?U?Q??/?I ?@?????u?'n2??g$;z +??.O??T???????R?z?:?r??????XqS#)??}4?d???U????4u ??e?0?rz +??V#?7d?g4?9Iai48?;?}}i?m"D??V???,?k ???RK???????U?)??????y?0)???lo?|S?:??{?????&_?a?R???i????x???`??k???SA?? ???????_U????+:?|!^y???If?????C?S????????Z?t?*??G?|????GT???(?R-??v??Q?-!??Px???3Hh??i??PFh:\qK?Q??E;???}7?E8?4?2) ??h??4?ry???8?F?1????5E??@?????????j? }N?Ufcq?5k????s?]?A??:c??R|39??????l??????!f??"iH?m?O?W?x??^???m-?Zi????????? +?|^|W???????B?z??\uPEPEPEPEPO!? ?s???O???V?1?kf(??@QE}y???I?????9????? +{?\?W???I?????9????? +{?\?T?f]??z?a??????????$??U{?:B???Uc???N?b?v'??i?j6D??_??w U?2e??:?Vi/???W ??j;?=?N?xN`y??Z??As?GeX??9?dW? m?????* |A}pk??A?sS????gZ?v?m??X?u5N?I?A~??D?bH?k??? ????S?S3y????u? +?1?0?????yb??c??TU?????????d?-???y?+???qR/8??#?????a?6,>?B?\FX???j????z???xy@>???g^???4?????Z?U?z????d;?????0?9?q?Sjc?&W????kBm???yE?K)??j???4???r?G?mk?hv?s?Z???j +q???k?.?X??i?????3Ypu;?^?? +?vH???a?}M}V (?a?V7??W???x?Ewz?r]???Y???$?KfR>Y?d??i%??v?@???5??I??-?F??O?? J???pR\/??lFE???Et?{?F??c)?????&?(??? ????????u???kO?_>)?z@ +{u????y???iv??~m???N-?s? +)?x????`?????R ???W?#?????q????]?9Dz???Epv??????]?@?f=?\~??=?u??)??R??8?????????Z??.5?? +V??????????????^?????t?co???j#????????>?1?J?????'?b??P????} +???????x????&oR?????.??-?#???????lxr?I??(?L?b?????k?JAU^???:\x:iP?Jpk??x?k?????????????\9???_????????~????????9???)?V?????g???R?????-???g?$????'?k?_C +?hN?????&??K?2??????/?K??O????T????*">A??5^?u??HU ?y???????????c???K?V????;mwIKC)??K?KzJ????$?S?z??S|!w?Y????^??/?;b7s???Tp?w???%??????B??????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??+???Q???R?5?????????)???g???$????????\ib?????%j???????\?b?`l)?5 TJ0je?G???!A???? }N?Tb4???? Nt[???jS?A ???R?1??-??w5??|s5???~???????O?W?W?????????O?W?W?fQEQEQEQEQEQEQEQEb-B??n??z$?*?E]?????#w???h?????#w???j?w?cS??????o???cS??????o??TP???O??7???????O??7?????Q@?5?????????5????????E]?????#w???h?????#w???j?w?cS??????o???cS??????o??U??O +_??U[KE"0s,?p??4w??g??Y???????y?c3m?}???_E????????K!Y?%???4xs???c???*?]????MkP?~=?????,Z???d???|?;??nz??????F???7??????k?X?gy +???V???u??,A??%o?K???????lj??????4lj??????5J???????F???7???????F???7??*(?????A?????G????A?????T?? ????n???????n????R??.?lj??????4??u]?t??????J(Y??$???QEQEQEQEQEQE*p??89?,?d???'4??369*@?????)QE?????$z????????X??5??p?\O???$z????????X??5??p?S-?t?5?|??x?qNo?i+?0????????_?f8?????S??i??)??J????? ? +?????M?^?D?x????V?5???Gc\???}E????Q?T??_?^},???*???????&J3???y?????P?@t??Fj9`N~??]B??(?Z?_??K??O?$??^?Qs??????F?c?A?????2K???b???+???.?%6?0;p???uKi??[2?.??D~????wi??2i?h?O?Y??%????r3?]OHU???v%???\c"?Uc9?k{?y?g???%5?f??b_?1??.@;m??9? ?7?'VP?????)X????l???T?_?\?????????9?E??$ ???58????)?????~t?Xt??"1?J{)c@??i???$? ??????????????????^I??n?!)=F??eXH[?s]?|??!???? +e?? ????c;:Qx?y??)>??eq??v?y??c(?:3M??W?k?c? +??Ub?F_??\??n}?rP??????%?`??+Dx?Q+?0?_?+???o?JTjr?]?W???4??&?u?$v?]?? ??V-? Ms?&???$*???)??Z??X???????6?`U)70 +?Y?????znQ s????p?+V?V????d???????F>w??? +|g>c??{??O????:??k?mWB???Z?3G??]???????&?%? +??_U????+:?|'7?? +&????-^I? +????+?w???O????!^?^y???If?????cC?:(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +????Tl???? +y?z????*6???O??>?????:??{?????:X?+??q?"N??^?????1? ???;???r?{?U?V????M? +-:??R?8R?AN?)iW?-7w?R?(???P??>???PE????u7?v?V??j???7?v?W(????g???B>???R?*?b3?O?????????????Ut??????u/?:c??/?G??lt??JZ???) +-%(?h4f??(4??Pb?S?Hh?P)????n39??U????? T?+ +????????? ?????????-?@eQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@QnS??d?*:?m? Lp?$w5T??QREP????????O????mc?@??????q???????O????mc?@??????L?e?????}?V?4??BP?/??Uo?k???,z(uvnM{????5U??+???xWW?_3???@??k??C\???]?w???J?u?? ?? ?9??f??4W??!?y????A +??2w?#??P[n? +?%?I?[#?obO?H?1Yc?c???~?N????W????ri ?]? ???;'?P?Q2??H???????m???.??>??)?Q?#????O?]?????*?\vk?a??9?{???????q]?????Q???*?~$?T?G??+ [r?????J.?6????x??st??????? +2?R?Gd???N???????????"??C????????k??{?^??4??? ?$?6L??sF?,w?????V+?\ Wz?9d??z?+???M8???~?6?3??:???c????t_??X????????K6img ?O)?#i?S???Y=/??g?qm??a:3M?~? +?/?-??????Z??e|??M?$??+Q??k?V???!y??^???RW??8xZ?*b????z??;?N?U?Z???? ????P????"?????V"?\???Q?G???:?"J5??+~??????'???"?yW?4??w?????U?r`8????k?_??u7???6???lFs??sX? +? ?Z???Ioi?? ????.A_?B6??x??0?W?c???b$?vM??'???o +????)??R????????R4M8 g ???$?"V??d?\?;?7???o8?N}????4?F??Xm???%?)??(??~???????=G?^????G?u? ??:??T?)lrF3?? ???+???c??Ydr?3?{G? ?-u)#??y?????x?????jO?p~zWnG8????m????|mK?0??8BMvg Ev????? n???\v?gvo??"????v?u? ??UH?????SKE??<#W2?j?-|I???j??V`*+^??M?)Yv?\U??~C??????????W?[?b??==>G??e +P? B)?$y?????W?F?????Qi????????F]i??v.j??+I{(e???_??V???|4o??=D???-P?#y??q\~???3k?M??#??9?}k???????????6?v?[???W??T??O??[??ju???g???5q??R??????-&????P:??RV??????`.???4=O?9?w0??*??DL??9??iwdB???????d=?Kya?Fv??N?????? ???!?dQ??OV'?Kx??????SZ.!=t.h#3???~?}Q_+h +????g?1;W?5?c???G]/?+?>7?,?????B?u?????j?G?? +?4>C??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?G??%F???I????W?? ???c?\???h??????????*?o ?-k?|o?"N??^?????1? ??j??*?w4?\?q1??)??((???(??? +j`9zR?/JZ)??6?:POZQ????hi)i(?i)GZ??????????uSO?U7?v?V?????^?????LO?O??Q?D~??U]??<"??[?t?*????_???~???i????#?-???(?h?8??(?)3?B3@9???P(?P?M:?h?}%&???? +-%?4??J??9?o?f?????V?q????j??QW?c[???? ????>??????X??/????????n???\??????xS???+?V?? +?e???}1???xcI?O??*?]?????G?|9??cK???<*??C??>???QEQEQE[P??uKl?!Y`?v??Y??>f?????#|e?4?d???q?O?[???? Q??u[l?aY`?v????<{???b +6?+~?^??oz?(??(??(??(??(??(??(??(??)?(iUX??6??,???????U? +|om?w?AR?{??v????4-f???h??#??7???+?qx?ab?TzM??H????.??sm +??????u??p 2??7?f?M??bUv?,&?u??"f???? ?e?J?#??Ty?M???wO*?#O?:zns^R????B? ?uL?Y ?Kl??Z? ?*?"???6o_?V-?,?????????\1?????r??????G'??????&?=y?bN????9?]H!??? +?pE?Wd?s???rr??????K7?R? +Q?????w?-?'?????k??kc????+??]_???S +??Dgc{???:??Hk? ??*ai?Y~?????,??? ?&???n?????s$??????? 1??%???q???~t?gs,?,N?/z??w??????C?????s?B?~???{[?f?'T?$c?wh?}???f?;?N??_9????M?v?{????a???%:??q??q??O????k?c?q?u3?z]?]???19Dr}?????e??9d +???Mc??:??+J?U??|G??q??????????????v??????G???z???????z?+gUv????I???5?G?|???????D??YGN??g?*o??{?4??????g?6?????????????_1/??????c??[?e??^???q??????5?7:??l)$f???[??f??:???y??????>????r???g??U??v?1?Q????:???(?1??Z?u?Y5 ?G?=?h=k:???cj7???*??0O??qQ??I?ww>??Q????)????Eg????+???EO??+6??J?y?2?5.?~?,??X?U'osQJ?lN&?e?m?|???L]8?????x??m??J??*????-???.?x/?w?q?v? +??"H?=????R?O??Z?????h?xG??J?????????f?Q?D??y??? +??zUA??>eY%??$e???????j?lL?R???s?8c5??????7???q??g?47????y^ ?W?1]?kk? +???? J@W+??Gqm8??(????&?2|=yc%YE??nsq??????????~???R?~c??P?:`????Nt??X??W?Q ??????c??w68S??4?I ?'w??V????zL?????%???5?T?v????_jA?? +? ???Me?%?E??g??X?t????1???+?y? +?U???I??+???????Z???r:i4????>?????? +??u??SwGu?y????%??????B????w???O????!Y?!?EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW?? ???c?\???k?+???Q???R?4?????I??????x7??J?????$k????????%c??j?#???u? +?{??:??7?(?4i)?R?N?@??0R??Z(??(??3Fh?P?? +S@4??s?g?ur?i??????????X????r?S??MO?N??Q?@I?~?[N??~??????Ut??????u?h???????E?E?G(Q??E? +(?? +CNZB4??4??BiM6? ?;?i0??%:? 4R???i?#?????'i?O????Z????&??!???V???u???????? ?? s?]?A??6O?jo????????r??f?????S?C??{I?? +????S?C??{I?? +???L??(??(??(??(??(??(??(??(??(??(??(??(????????/>?;?T?sXPa? C?????Q? C?????WE}???:???[??K???u???^????a??/S7N8????????Y?????+????????u??O???????1]?I????F?????{?4?`???????uZ???OA??????.U?????#g8?@?? ?????????b?MQ? ?j???r??Z?????9??~????4???Q????U??(??>?i????,? ?/????,????l?H?.?D???5h??P??I?zz? ?G??G~??????e????????^?????@??????,???&B0??QS*????>????l21?_??aSnJ????W"??A????????|2'???q????|???Oxo??r?9??k?0?*I#???ll? ?????????j?G?? +?:?????K5??????t?A?Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@z????*6???O?????g????'??@L???D?_????W??dcL?7??+W??f?U????X????????'?9?r=????i??Q@?@???&!?N??i?????@??OS?Q?PE&1@?74?L????)??????????j????????:?A?JC??yz???>^?y3S?Vr???U????????}????w?????C~???i????B?("??(QM"?Qp?i?9??8??h??E?SM4?????m.w????? +m;? ?i#??i?!????S????T?????j????A????k*???R????? ????~??????['?6O?jo?%??w5??|s4???????????O?W?W?????????O?W?W?fQEQEQEQEQEQEQEQEQEQEQEQEQEQE{????u????Ez?yW???u????Ez?QEQEq???j?T???|?_L|V??y??S?B?=QEQEQEQEQEQEQEQEQE9??Q??QE +(?? +(??>???$?G?z?????????????$?G?z??????????e?.???O???:??)??3?x?????K???$,??J??z?k??E2??e6:W6&???J??? ? +Vhn????'???a??p?#u{? +rVS???|K?=????36ef>?+?{?>'?F#???????r???y?_?9?%J?Y????`B??X??Z?=6x??,&c?ks????5?D????#???????H>Vh[tE?=+?2?}v??N??2RSS?C??4k??RY?????SK?? ?7[???#??oLUX|c???ea?? +C'?L??Q|??6pOz?????d?ymk?>??b*a?d???A???r??a????5????Yy??c??z??s?J????L?_ +]??-?X9fg#????x7I??|?$?\??? ?[?????O?\}????L???my??S 1?>?8??Q??}k?hE??O?????S???n?????^?( @??U?qi a?????]??????8?b?:?G? W???S?????????????:??c??to??????X?????{e ?psY???j?????x???"????O??\E(e?JI;??t???OA?id ?F\?Z?.??F?J???1G"mc?O??4_?,P?? o?????>??e?? -N??M??H??"j?>R??h???y?{????????7??5?m?+&x????}F?X\?[.v??3????.e??????dx??qk???5A???+???v^O???*???q??2J?\Wv????#????C?'??Z?x{QH?-???I?P??;3%?h??H?f??{??U!?C??W?1?MJe????,z???uG??I4+#b>Z)< }?>???4?H?k?d??^f??rk?od?]?0b????s_!??W??Ug????}?z?????E.??0???????Z:SN????~S?+?A*??$??y????@3?*??V??????Y???C???W??V?2H_?{??I???U??gm?*F?l??yq;??i?V??f=?s?/?SJQ?Mu?C???T@?J???0i?Y???S???9???l??!1?g?????-?????h?#?_?1x?%??????? ??+(qq9?4?@???aX?F?bTp??????G??o???0?? ????U?????Z?????:??{7??????X?x????:??{???????X?? +???j???t?G?,viE34?C +8S8T?????4???)-????t??*?1J:????RR??SO????????uF?>\?????]?6:??????0??x???????9H????U???????u1???Pi???????uG??_???"??A?)j?QM%!???i?LP(?+??R +nr?_~?b?l???i&?????~?9????%??j??-?j???4=+?7????M?=s]xo ???[?N2???"???9!??u*?\??????o?^? ??|]v?y??/?'?u??#??p??<*f??V?????g?*by7?1 ? 95??;?^?a?U{(??/?p?rGAS1??o@??t?u????\????N????+?=??fc???j???? ???B?B????K?2SD?A?pq??f?Gi??~????1??? ?&??c?p9 f +b?Q?????gk??.dVC???q +???c@??t`U?]@?a??C??,>?t???k?>t?V???r??????~?U7??w???v???^e??T=????7P??????H????c?YM?J???s?I$???c??????\?w`?u???VE??????P?????Ij???2????7???'?9z???men??y??:?M??_C_0?????`???????o?????J?M?????d,??"?1??q????j?G?? +?:?????K5??????r?!?EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW?? ???c?\???k?+???Q???R?4?????I??????x/??t?^????u???^ +??????KcUG&?*09?\?r?)???O^?1!??AKR?-(??????????>)?Kc?i_??_??'??+???i_??_??'??+???3 +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(??=??g?????|????V???g?????|????V? +(?? +(??8????O5??B?g??>+????$?G?z???k?????????$?G?z???k??????e?.???O????JV????? +?z/?????????!????E9???u|??????t(?II?~?N???k7CG??Q?Iy???\?=X:??#?&e??????Tm?8??????????????I?hdQ?N8a]T(ygH???pq???b?kIW?]H +?7W +#??u????;s ???J??g??????????r??{??f ?o?? 2?4?s"U??7??D????"????O?i??????[????????s???Q???????qm?l-???f;??W???????m?????|/^4????I???q?J??aSx?MRw????????{U?{?&?I1?&???????????i]~???qfS????/_??s???]??$?>???!r??sJ|j??!??_[WZr?g??????????R??? +?O ???*I??????f????x?#?7$W?r?R?j???O1?}]?h???u?3???+?1\???x?XT}Mz??9c???k????S???L?Fo?E??????x??9???2??$??3???~?}O_*?~5O?h???k?????#????????j?G?? +?:?????K5??????r?!?EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW?? ???c?\???k?+???Q???R?4?????I??????x7???+??o?"N??^????|41? +????H)?u???%????M?C???)jP?R?)qLA?(?OP ??1?@c@QL???)i??? Z;Q?:P;?s?g?ulU]???B?V4&????k*???KFvz?_?I??Z?c? K???j???????? 8?????l??????????^fu???_????1???&g +?s? h???!U?Em?F?k 9?A??????N0?S???>????&??~g6)?q?KM??X??t'p%A?"???X?d?RHI2=?=,?eU???F=k?y??G???G?|???U?K??c? +H??g?{ +???_??>????i???p_l?}b?? ??Q?c???#$???n?v????#???r9\?!? +g)$????@??? ?D???$P7?0?>?????Bw?,?q??Q^pN\g?=?|???????z????z?g? F&?=?:?G??O?+[k??d3??L?"c??J???YG??:???Ut??????t????i?????SwQ???:??n?'4 +QH)E!??E(4?QE?N????H?R??lr*i? ? +?X+???u????VP?T?#I?fh&????/?9x?,>e?{???e@????? +6?`M???MH??????U??U? ?B????? }N?X??t?????????????????????@?_???.O?I???q?????????KT?g???|????#,e??5?v?????t???,PD2I??=???x???????????O?rTQEQEQEQEQEQEQE*)wUI?,??FPr?ibVbJ??L???(?EPEPEP????????O????]c?@??????q_??????O????]c?@??????L?e?????6?$???H#??')????G?????W?:?y??7w~?? ,?t?? +i?K???Z|?F+.IG,?Y?ri?UB?!???????Il?6=^??5 (n`;?(????+OD?.m5DR???+? +a??)5VX?fs?GC??4'???d?y ?U???\???Rz?Mz?Z[mN????"??R0Ey????Ip?f?{???e9?????Z???S?9:r?"pS???|??_?A??9?t?a???+???:?8???r8??;"1??QY^??r'%dzR:?} ?????????????o?-????E?o bR?G*???tV?%?e?y????9???S??6?no3?2l??_C?T?o????#Q??q?5s?????????'?? +???????!????&??F??wWD`9??a^?M??)U?j????z~m?G1?????J???B??????????8?_???5??I????y?rO?y?????Y?Z6??t?Y%I ?>??????jh??i O?y@`G?y??x??v{????1S???j{?_?Ich?x?a????+?????2e?????M?????r3N?na[?+?Nr@?I?R?Ff???8_z????,??D???Wm>?K?????q????W??vL?Q]?:?+ +2 +6)?X?F^Q??J?>??\?y?V?3?XnYPq????yy?I??%(?Yy???UJ????*?:? +?????m?Y???r????$? .{{???r?r?|?????je??:??`???????y?????????=?^{???tgk3O???0Z???Z+??y_b?y????%??????B??-R?RR?Wp?_-??p????j?G?? +C>C??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?G??%F???I????W?? ???c?\???h????????*?/ +??/?^????5????^?????+*?F??4?(?K?k??!??M? ??< +????!p)? +h4????-74f? +?74????)3N?TR???7P?F1M?I?4_O8?o???????????????t???????OT'gC8?T??ij???!5?k? }N?X????S|2??-??w5?? ??v??c? [???k?'?$?e??S?J?wB??i??!^^??J?wB??i??!^^??QEQEQEQEQEQEQEQEQEQEQEQEQE?????_UK?'??#'??} +}1?oXx?IK?'??O?z?:?|3?[? ??}c!????E?"?>????/??iIyf?v1,D?????(??(??(?Z??g????_L?A?c??{????z.?-???.I'???5?g??U?????r????T??h'????^???T???]u?????$?k????6????G&?^?OM?}?W?T? +?WPqv???'??????E????c????z+???T{_R????#D?7rG??????Pq?J???)?H3?? ?QX????[:??L?{?+?-??.Kyw???#W?x?O?????!???h?x3?????JD_xoj(?n^???\??5_?e??w?X%?????&y }?j?<5?????????Twzl???W???4??70x\hI??t???W???????j?G?? +?y6?k??????? ???Y ??1?)?I$?4P???(??@QEQEQE}y???I?????9????? +{?\?W???I?????9????? +{?\?T?f]??z?8&?} +???eE?J?i?k????????%?????? +j6?T8x?O??~?U(AJ)?.?G???&????v0??????z}?ZP?Zv??l??>?My?*?!??S?k??p????????U???F?gu??t??zI,??)-?;cmp?}?W(r&3\|z??C q ZI5??? ??A????6?Vv?=H?i???????k?{?g??mm?s?? T???w +>Ws??U??f?+I+??j7]??c??????_OK????)????E0?u? t??u?!?P???{H~?G???G7????@9??????F????]} ?????jz|??.??(\?S???????(?`?`Y?rPz????*)?48????g??"?;???}???9`?9u>??n??~?? +?H??d?4=W????????&?w?{??`?l}??#?^??9????c?q??c?W?'a???|??\JMY???:qO?O?C?"??7?=S?A?g?q???? >??????]_H?y?t1???g5??_????g????$???ccV??l??f??[?????3???/???????|??_???}????????????xV??Q?????0S??V???M??7SH??/?{ +|??D^[????i?????,????C??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?G??%F???I????W?? ???c?\???h????????*?O ????{????I??????x'??4?X?\u4??5nM8+??)??)???i??? ??.i???!sN?x???3M?8hs at jB)(????`4??b?R???????:?*???????:?h??V3?????,????*YG?R<?W?8????u9?~?^?????:]N???K?Q??Z)iJZg(RZC@ ?RZC@ +4????R??Pi??M?4 +?????? J)i +?4?i ????}?]~?Q?#??~??o??????V?k?k????x???q?????c{o.?{l?????x8???3To????? +?-d????Cs??&9??r??N|? +e???????t/????B???_???>??&?f-??)]rJ?? ??????y??QH?(??(??(??(??(??(??(??|QIQ_A????????????(??'?????G?P??W????3?=????? +??I?g?{?????????)? ??{???????R~???????|?E}? +O???????????????????@>Q_A????????????(??'?????G?P??g???????B;I?,??E}?x?D?<2??\?QD??F?27?;?W=? +O????????????P\?!???0J?ox??????????& ?????:??????????G?)? ??{??????>|?????'?????G?Q? +O???????????(????I?g?{????????????????(??+???R~??????????3?=????? +?????????????G?)? ??{??????>|?????'?????G?Q? +O???????????(????I?g?{???????#??>K??>?b??@?Q^??? +p??V??H?S????0?<9??v???vrB??X??{???UQ@H??????Q???C\????p#??*@(??(??(??(???????=????s?k????????+???=????s?k????????????iP??j="?(??P`|??r?B-N+??%?? +?n{?n??MQ??x?L????'9?K}o&?.Ed??b?{p?w@?2??(???I??9?Q?)U?i$? ??N&?|??m??T{c?>P[s1?3?\?t??Er??G??;????? ?? + Tq??M#`??`1?K??*???&?4?Bi???H???Fn??/c?????0L at w??~?_????wc?NNdw??E$?B?B/?L?v6e???4??? +????\?'\?iXz??vm?V?Y??,q???W??????s)??.:??k??@?uW?q2?)F?9Y6???='r?u?*H???5" pNy#"?B??s? ????z??-????????W???+???G? +???????c??F???????j?G?? +?:?????K5??????r?!?EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEW?? ???c?\???k?+???Q???R?4?????J??????x????????%j????????? _?????????}?T????iE%(??8m(?Bd??A4??)? ????T???)E;4RQ@ E%???6??{?r??V?uj?X???????%?b??hn#x?,?pj??ZX?????A? +??EV?h?????{?V?) ??J?N????u3????????????GT???(?R-dK?L?4?S9G)?M ???H8? 'J3C?P???Q@ +i???@i?????4&i(4?qFrih??L??Tx????:6??T??V?T?1????k*?S??:[??5c????s?]?W??????????$?????.O?I????i+s#/-????????????V?]??|?B?SN?N#?lV{Q???5?\J|??pA`Z???wf1?Z?H +8}?_??Rt???~u?k?????E1 c????1P]G??L?OOZu??o?2???t94??im?????!???&?XP?b??2??Mt? ??????H? ????t?H >???c???U?)=??h?y??9? Q?7?Hq?d?U???s?4N?????]???????Cp}EJ#-,n??#???F?x?9e?*?R,? +7??_???`???f??????*&?W/???Ob|?=??_??" ???U???}3Kt?'?????*U?@? ?+??|)???p??:?a??=+?????u?d?????W?8?I???A41??g?Wz|'dA????|W???g?Oj??????h?fXlT??+?Rm%????T??vj?a??f????B?7????zq??????????????e-?????F???3??W???" N???Z??V_n??a'????7??f??bv???m???????u 6MJ5ef????o????b???K?a?l5!9?b????'h }??q???? +????g!_??? +???NT%{Z?2?ZI5?u? +????,?F?????8????{>?8?}???? +[I??U$?X?Q_?????''??????$??pQ?V????????t??z??q???{!????i?/f)???O???lW??u?W ??????u'???"?s?N8i???R? s?4?-T?s?^?? ???o??NI?\36$N3S7???? +?H???~??Y???#??c??? :?x?? ?vAQB????B9=?jX??=?j????????nRV?8?P??SpV"???~U?6?fh???R}?VI??_?W?G*???ZF?4B??u$?*??O2 ?hWh????i??T???H????e? ?*?? +?7?QP6?l-?p??[a!{??? ??X??j??S?Q??TP ?1??t???j?8?B?7???~?;?,?????????? Ph??c-???J" ?rz??FQxa;?IC?A???\?.?G2?u???>~#v`??9?T54w?=?'?O??.?k?????][???.s??Z?s?GN/J??3?}(X???n??(?V??*?8??~\?&??9???Tw?yG??:???U??????:??N???K?Q??[?4???sEQ?8?7u?a@sA4?d????y??v4f???P????Z?????????C? +!jic@??h?.i(sF?@qH_?8?t_? /?T$?MO???/????1[S?u%??S??S|5??5??w5^?y?$?M?c??5??w5???f??O'????;???????q????;????????2 +|l??x /NJe??`?????????$?z????m(f at 8?h??v??GET?QEQEQEQEW??mV,?|??;???????}'???I???t??B4??EQEQEV/??Q?xj?d?fi?E,??j?????G??e?K[??`?@M:I?6????++????&????+????????66??F ?`????[Z?????8??_". g?t#J????;???????*dL73????S???{y}0? >??@;????Tm??i?????? ?&?*?"??{??1?:?J*??]?o]|]?JE??+?:4???f?t_?V?p????e#?+1 ??=?oD????i??,??]???E X??\?? YZ??V??`dp?? |UG?N\?[?5=.IB[???UR???;o????N?7???U?j??~??w-%?h?=v????&???U?m???M??N??J}????? wi +?rT>?W?|Q???[??K7?? ?(???U?kJ??L??Q?????? ???z?????R?4Q?))??|?5????T??W |??#???q?|]?I??&;I???V?????[??'??k???[???H?a?h???\??R?:w???zL?K?&?p????????}Z???E????' ?)?#?s?0??????{K{y#Bc?)??{?/??YF??? ?LJ?v????)S?:npV?]????E?PQEQEQE?P??z??]?m?A???v;?~ k???#???5j???/??h5S1????q????|?[i??YO ??????????F?~%?L??\????Yz???????O2p????x.??&%?????????????u??P?]? ???_W?????3\????WW???u???V_??*???':????I????QV+????}'??}h?O???!?*8??G???u'??77?qO?\?*K????G_??y??A?/?j?????????B???i?=?????????B???????S???????>/?s?/??+??i?? I??AK?H??>?Z~?W?4?????I??????Zo&FG?aP??k????g ?I'???????z??3(??0??K'????clu5rI??N??E???? ?rGj?/?W?? +#R[c4q?c>???j???"&?6Fx???K?p??3??????Lp??V???Mz?E????/???-U?;?????T???6?,??G??z???????8??'????V3 +???%?9?j?????.QX????????o#???8???????/?we????f????|nJ?nN?}V??(F?&?t|^a?b???I&?;?]?????O?W95?M|?mR??6?aN?+?u?E?:???7?L2!?M?Rz +?q2R?????K??f?y????%??????B????]-???{??7?[??`G?{?w???O????!\???tQEQEQE>??????o??????^0??5????????????!?Ms??4??g?????gQt?R1d?~?G???Z???????h? +t??,??? ??T?3?????????M????B8|L)A?&?????D?????\?4jn???|?$}h?'?????K?H/d8IR}*??s?????#3??????-??\L??9=*???B???? ??E???@?<>??T?-?Z??0Y???r???0?????????]??j??-?G???p???g???q$???U5? K?U?m???-??3??C?T??is?5g<]x??5%????aw,hC? ?`OZ?'?e??`??"???f?u??lq!?%?4?&?????? ?A?>???)7?????????\??K??[?i?2N??L??7"?]4?7?%?a???T?L??s?v?3??|qO??$?]????z?????O?.?5??9?P?]7u-zu????p-????>Q?U?&?q??'?W??Q+ujU?s? +C%?VV??????????(r(??R14?.?J?v?O^?=?"k????-??V???iqm+ eR??svi???:m??o? 2???&?h??;?\ ??&??????v???bi??-?{F??i??R??1?L@?H?e????$?O???Vpx?o?U??????p??'????5?#???Se9~?????S2g?/??????L??e3?? ?"???n???w??!??w????~a{?????f?g?"??S?Y??W??Z7}-?????8Rq??tLEc????@???UA?v?j?>x?!??ap?u????G?s????7??E?,g+?Lk???r?x??*?L|??o?I?g?Y?J??q??}*p?(?N??3????-?D??????>?w?b??6?p$?n???fF=????o?69???O??=???????yo???,??????????cn?,?F6v5??? +???????x???K?Y?`[???F?g?42O?(L????j????!x>?]K?kK??-?*G???F?mAE???Lv???6??n?W?&\????????\?t?)?M???????[[?i,?yTm?&??g?????&???$p,?Wy ??zWj??_?j????:?O?_?P???k??????=?"???|????????~?????????G????????M?-?r??^?G???U?x??rk???xm?p?N?,&?????My?? ;??4?????>???)*?Am?gO??L?????!?eU???w????}??p?7{?0??S?V?wo???????yw)T$|??o??.Ko??6????\?^zV??ouw?o?>??rO???h?]????k????a?v???"?s?????H?,?+ ?k??ueu?^Im?D????EcN\??@?7?O^:??? ?$???A?????/?417???/[???m???)??J7 ?v~ +???E?KuyG"?P `z??X?3kh?=IARE p???T^?Q?'R6Q???(??QEQEW?&?V????_?????W???[??"?S????.]???Ti??????NM%p +(??Q@Q@Q@Q@^|??G??????z?u??^???U?|??G??????z?u??^???U2??O?^??Y?????(!?5?1?????.u ?HX?5?N??? +q??Z??Q????B)6?zC??????~????Z???????????????5?p?&}?2???)??5???GR1????c??1??????Xg???????xujQ^H????Qb???Z? %??F?@?66?j??????U+????O??G???S??!'[?'?5d?????7????_9?? }?N?1?F??d1]P????G??q???%S-???f_??W ?B??b?;????5??x at I#'v? +T]Z?zVmw>k??e??? Y?e\?v???A???G?)??/?N???J????:????M%?/?????Pc?????J??G??r???????????u???rL??_ZU+^?[OS???t??Rx??CS??U???????????n??U??3?=??G|q\?-??)?????6?s?>c?? ?????P`??c??(??? ????a??t$(? +i;?????c?w??/???m???? + ?8?x??l//??,X?????F??J???82g9??D???j???sI;=K6~??B?3?' +?????V???? +a?0:???v(f^??????q?i?0_L? ?h?? +?????9$??H  ??E?Q?,?0??=?2?(m???iUv?@???QE???????????8?ff9bI?&??,?????G??;/????[qc??o?????C3AZ??}Gf?U?@?.??? ??h?^L?2:U?j???~??J?,[?/???a?#?t??[??9?KW?R????46?????????-?????]????Z???sq/?.m???>l??=[>'[u?X?C???k??{:qT???]?????s +??$??Zo???oi?N?A?}????????l?r???^c???O???w?F?3?????^Nc?????J*+?=L/?UR????k????4??I???ah???B %?Z?#???j?;??'s\s? :?;6??? Va??B1???C????Wi?hz????3?k?X?j??????W?h?????X?N??_??k????VV?????????|? ?????4E??B ????'??#??)?~8????I????????d?G??~??5?m???%wX??ld*??D???????Q?Q?Wc!$1??0+????iw,??m R7}???5|O??*??(|??+????Mz)??? ???s>"??????? ?H??c??W% ?^????,&*?y?I????? +??7??Q????m????${??#Q S?k?????????+C"??3?J?< i=????r"?o'?#Ow?Q?alc??/ ]??????.#?K?T???Y|??Y??TH???t???~?>TXe?&??y???j??/f??[??????~Q??????Y?C????????????O?U?^?????????77Ld?'?? ???Ny?y???2?4?@??8#w?3^????f?#wss ????????r ??\#???gX??Z??????\N?$yH?9?-K +?c??m2{T??]?Q???z?-??$er??????m??Vd?????3?sS[?%?H?B?????????`J???; +??A??F*q?????l??b??????+?N?S?r?j??Ip????`??j\;RR^?i?]??:???*E+ g{5??m????J?~?V?????8?????_T?n"???F4U??b???w???O????!^?^y???If????? +????(??(??t@P??ojv?h?j??c?????]????G4??X??vXq??\??RMt=???B?f????k?????????l7??? ???????????`?=??K?"?(?????}C'?U????W??u??Kx???{?\???c?8?Zz*+?6???5^??-???????3?z???????T?R??I????~??N??h??F?7F#kTiQ??L?}? +???T??z?dF????li +5???6?_N???dP=?J?N ????0G??????cmk {S?,3?O??????rs:??Qv??~F5ZYm??Fc?????Zr44??J?H????x?N?+m???5??j???`?)5&??????F?Z????L??8E=)b???Dw?bc??[???U?c5??9\?J????d??kN[5??"? ????_?%????1????Y?[??s{?x~t??3?C??? !?5T?F???.??:,???Ss?Vk?G????????:`[???o????????x~t???? U????~t}?Q??f?????]/?K[?????c=?????????O(?????pwh??Y?qe?jN?? ??????t/????B????????t/????B????Q@Q@Q@Q@$GT???.??z=?????a?)??*_??+?pzR8 +?)?z??mQH???E?$????K???????E?$????K???h??(??(?;??/Z??Sy8%K ?_Z?#???????/eW???????????s?(?3?^)??m???baq??f???;?j????G???9@?2?GS???Bnn=????^;{s?? ?w??/, ?v????>??Z?????????????????d??3???_??.?N?q-?????uLb!????1??? ??? ??_?r7??>?.n[???? ???? ?&??@?F?2ps??sx??????v??9c????Yu??> +??4???4?j2??:?|o??t?F?dJ???? ??????t?oPoS??????Mr?X?{C?)q?'$????xbh?F9;??????????'h?-.:?9??6??????^K???1?N??i???|??8.{ ??u??I?j???eH????>?-uWA?{ +??K??+ar?? n???u????:}????H?;??t???p??5??+??K???D:|????|???c8?>"??V?5? ??xchC\u?i?ys?_}B??ETy\h?0o?y???5???E???"????y?H?[?Z?4????.zu?Z????3?6????G.??? +????G?????[????>H??'???7k??\?+?l??x??G??v?n?f?????|??f??+???4??c;?(???xi$?W]??QE?0??(????4??]?M2?^7:u???????J??????????TR??v?d)??? ,?+????~5?ks,lpI???HW?-?~????o.?????# ??5????f|?If?H?]vS$?YK?L??????kZ?'?i1&|?t??0U???u?~-?5BI |???T?=???5??.O?D]-? +?9?a??k??4-Lz2V_????WC???jg????l??%??????????F??Q???e????*???????H??|??????4~??????????? (????????/w?'{c?}????????????o???.?d? 0??????yg?J?h ? +6?"???x??q_%???/????X]??R?4?p????J???'???o +[Z +>[???|nq?=?t??A???W???0?j???mvFt?x????7%???E??Q`??????Ws?e??Io$$?$ ???-?[???,q?Fz????tq???i????z?%?Z7???H?b +7?dz5?b?{7????^?z_???$????Q!????+ ????? ????? ??$r?%??.?n1?ir????;;?=?3?R??.?3?? +?j???}=???mJ?a? ???Y+????Z??n-4y???3$?2rI?$cZ3???9??;????Hd?zW???N?-???_???a?????^??b???@????E???X?|?|??wg*ye?C?~?+?S???+I???+????{?B????C?|?y?r???U????????'s?t?E??t$?5L??J???{?>?2?\53?A?????O????e??????^cL????=+?u].[??pS???Er?Z??ZH6H?2???????????|????>*??4?S33??g*FW?(?GPOZIbxH??N??????"?X?ROo????[??????????7?,?????B?h|?EPEPEP??]??????!?T?A?T??B?V :?????K?D?cp?Vr?sO??mDi??O?6??\?x?.?Q???n?t??+???R?5E??k!jH???M??????8???}??{??{?h?b?H??????????????????]?rO?(???????X`?S??d??c ??????I???kQ?:T?7h??ch?m&t????|?fX????q8?+b??a pN?s?z????\G9T???_?B?(????:%??ZQ?QY??[?o?????>?????o? K?T?Cw??7????K???f??????0jI???0??n?????????;QSu??O???lv??y ?6?yy?Nj?)ygh????7??8??\]????^5?????$??i?n?]?Cve*B(?k:??>??|?:???.???p??Yx???????????IW;???Y7]\??a??cZr?????G????L?g +Z?'?GJ|?\??Ow{Z???tp<>?x ?? +G?????S\I2h?n??en??e???f?????L#)&???iP?c???????????q???$?k2i?4S??????[I7??'??j?k7N???e^kNY??U???????i?$?W?[[?j?Emn???Tu?? ??*??:N&?\????N?3??????M??$,N65????R???4S?E????MXr 3k??NzsU??????s??F????)?]B??g????'??^q^??3?J???r??A?C??? +????v?U??Iw??????A?4 ?????$6????})??y??????ow?]lv???O?????R?3?io?Q?????? +???)?a?S??q?^??N +y????m-?????Z???)(??o??j????]???tSZ???|?q??z?;??]Y?????O??tm&?d?*=?????v????y?]???? ?SJ??iY?C?????[??Z? +??5???Y?M????'?n??? +?}?B?E?X??????m.??????q??Y +#??%??d??z?s???v??G_I?"??we?]%???|?_I?"??we?]%???H?Q@Q@5?U]|On??,?6?|????? ?Y|?%[=???<]?8|Qb??Eu1I?????<?X??N?????????v^i?7f??3?,????c?!V? ??O????7?G?h??'9?V???3?[[8?LA?vf?E\?G? +W?-? +????`??F?>? ??%v?n?$~ ?E?ec ?9?k?????H????"HY??I?A?:??Q?g?v??)??g?^???5t???D?????C?O????myh?yq???? ?{{???? ?o????12???8??????-?G?r??,?????W???_???+^????@?E?????3|?#??w?:??????y????P???R*??zj???x?????????1???0#????>'?V?Eqo???}?qzW?O?v???$!8?]????j???d???w???O????????j???kH?}??+. ?????_+FC^G??G?#?k.???}??i?2!iX??k?????X???m=X<??vr?t????}????ea?H??usH???g???? +?) @l????M????F????Sd;? ???e??6???~???????,}?;???J???uG????uo??:?$??a?Q{*???5Xt??g;U?Cc??q?4'[ 8SW??4?????? +?]E?S???????M?0#s)?zV??*??#?h????,*??d?z???M????~TU?b?z???s???xJ?;E4??c??'?????i???g3?h?\???%?2b?H?????F+??????RH?{???1??B/??+?|c?>Eb? ??h3???y??-????0???p9????:?0?M ??2???+?s??????(J??o???O???nj*??q??? IB???V??`)?FGR????? +?o?J?W9???t??F?7?~??4???@i;???)?QEQE????????)????????Tl???? +}[?4??zl5??0??a??_?b????? ?Y?k?c?8?????-U?? +? +?cW$?6????GSK?v:? +?t"?{_?? g?jT??C???X?m!H?5]?????????Ma?3B ?2/j???????}?S ?g??  +(?????]E??????g?R#4??0?y#??P??B???3qE??l#???c +?8o35??w9?MK????@X?g0?c(f???(]"??q?*:???]???m?A??S-V?D???????t/????B????????t/????B??QEQEQEQEQEQEQEH EY>a??????????E ,??15?m}%??????2d?>?1???????@QEQEQEQEQMyc?#???(?R+??d`?{??Z(??(??(??(??(??(???ER&??????{?I?"\?(??H>A?z?`??W?|?%A??G?ep??????aX@???N???K?f"??5???+??D6?-Y???&??6??r??g)Y?2?4y????E?A?E9c????H??:??8-???:????????????B???G/?'??.|?QG????+o?m?xT???6SK ?1?U???z\,J??0Q?4??????B???j???????#'m?H???d?!+?6 +j= +???>???????Zl??? J??F2?????aw?o????????d?:J???????0%&????uA?}?O:rk???`T? +~??i????i???3?p)?\??d??R???{F??G?-?@?7m=?O?^????? ??o????3y?#?k? &????^???/??C;????-?+???1???b?;T?Q?O??:????^??-?4?!???gU???A??i?`1???t??_??$?#????8 ???6???????#?r]???Fz??F.O?kz??v0#H??;B??~=??????Z?????B?fU??P?)????????????s?P?Q??b0????????>?/?????E??p1?????????{????CZ?b?{?&?O????;A?8????,?3?U\??28]?)???R???????v??e???M???hH?2J? =?????~??\???2??J ??e?????Mg??VNcq??????K?? ?*??/???y??????E??8#??????e?b??????Y?z?~C???N?/1?t??;?4??q?O\WD?$??K???? +??=+????d#?y???????@?5?Q?Z?????4??????W??!.!?`?}]0?U|C???g??j?5Q?1\??~???~R??z?o?E??/ct???? +?W?f?C???L*|?O[+?+a+?Ro?????E ?O ??????Z?? +?O ?]Kv???q??g?!??E????/? +P?7???A&??????4?f???????5HW;?q?p??2??~u??u?s?[???jE?Y#?=????E?w?, }?Hf???~u????o????? +?[& ???O?g??Z?$RK??U??a????u? ???46??yG????`??z.??s????G??y???G?v?????L2;???SJ?$? ,?O? +?gs&?????tK?<+"bE>??>???X;?=b}n??MmJ?X??b????-????????????X?????I(R:??]X?? +V?2G??`:?|1??x?k??oT???|??O??O?R??'d?\??{?{?????4g?F???*j?;{??G?#???\X???kd2?9?q^?et#5?Z\?i??????+!?wX???UI8?&???7????I?m?s????I???u??+iaC(8???V?~G?^??I/?s??+Oj?T`????+?=@FA??.o-l??uq ??(?k???k?????R??^#?q +C^?X_?C??]?2@?3?<(?A6?z.?s??5]:??i}o9Dr???\??W?e??C?i???W??!?]d2?o??}?1???o???%AYJ????m???YH#??-as?d?T?D???X??u??2?6!???i??y??\o?u??_i?j?'??c:???"???7H?tq{?????*?b?}?k?M9??\w=?9T?? ? ???|?\h?+?A????gh???????Vui?r???QE???H????Z??}??????H????Z??}??????(??(?#?u?=3M????s?*9?sL?Wd`?H#??Hw?Rzq???QJ?U??dzRT?QE?????$z????????X???????+D?14e???1?q_??????O?????C|?q???G?k?)?HF#?8??]????~i??5???r? ????[&>!??-m??-wR???l?a?V??{???D??H???w??/?[?zm?c?$??7? ??iw #?%????P??h?????3??^?cpn?`?d(d@?Oj?G?ok]??d?lp{9}?3???yw #?O?6??k??T`?O?? e?C???v?V??ZKb??Z?$$q m??????yw #???BYs????????????:??E???B??7?:V???K?JK?(|????`??`??&????5[5??E?wD?3?p?y??+?? +u??Wqw^L???????? +?x?P?????-?? :?\?Z??+?????>RT>??WGY1?C?e?|???j?:/J?(??p?o$??7? ??iw #?%????P??Z??BYm?? ??L-z????? ?B?H??????Q?.?dx??([<? ????(??b&???0W?b?n?????????rZy???Z??????r???G???g??????G^2?????????"??I?|??t??G&tO?QVr?"?t?G?A?#?4??\???? ???e?j??s??0N???????.??H?g???;????I???rG?>??z????:E??o*??#F???? ?D_?????I?E??k???W?|]???A???W?qH???)X?k8K??n/?T??[?c??????????pf?n;W??2??7?s??????e??=N}>???U???4?x-????????.~??]??\???rcB1??Q +??2Z\g???&???A???)*??l???]??o???????Mh??3????M?cr7,}Mk??????{?e 2??@?5N????Y??Vr_|1???T???O??????wY?xu[?a?S?P???k?4?& +J?O??? o???1?|1?? ??&?f9+s?4?^>?[???9s??-}t???4??VH? ??:W?"??Tg +?k???|???"=??$??A]=cZjMY??4??(?Fx??a?J??w?????{?d~????7???G? ??W??????Eikz???}???r?8e>??(?i 6???t??$???)?1S?f?-iZ????5?Dl~????|?b???kV??wi???L?~?= +z???Z?VIig? +tQ??`?????????? +?????QJ5i??j?afs?|M?\h???\%??8f??B?U-4 ??EuF?f??A1??G?Z?????}??+?t?r\m??v?Zy~^????1C?EF???/?_???X???s?2o???a?????????1????oV?y??+???????q??9d? ?*k????p[????]H?????U??{MB??9??I7??K?RVP?v ?????o?KW????h??9 ?@?+???lt???A-??FU???\?(??????(O?R?EL+??????W?-|!q?H?L]K?P?i w?t?R?]??o?!e???|??,kj??59]~#H(???a_$x??F?[??????}cw:Z??q!"FrO`k?-F???????????9? +?QEQEQEQE>)?)? +2??jJ???L?Vd`T?GqT?FQR G????{~5??P>???$?G?z?????oB???O?t??? #w?????{?w???$z????????W?4?r0???L0O???????Z??aq??????K 0?w??Z?y??????.??>?? ???~? +F8Rq?jZ(???~?\?<^????YZO)z|??? +J=cO}@ii??CI??C??=E_??KmZW/??D??0?\??[+(-P???@OR?OEP_?u??i?????%xaP?G~ +y??Z??eqg? ?{?8s +??~Q?f?|??Eb???G????H? _?S?1#?k[K?[G!?????a??????+???Iek??&]2????Jc?2??????WMT??nuO???1y,A??9??wH???{gs???HX??)?=???]}g?i?w6S9e????I?9? +)?R???????2(?5-W@??? +??yn?p???????G?G??????%?????-?C?d{??d????Kb(?e?tPGJ?P?[???6?IH?"?? T?W??N??V?C??q??V!????=s8?l?y?j?oU?5????# ?3???}??}?Z?Y?B?R?d?mO&?1?X?????1?@QE???Z~???s??? +???s?1\,??{;?y?N????>?W?MW ?h?? ??yh ??"?ip?v??F?T???3S?cE??0?N??S[Cp?MH? ???h? +??[Oq????|?#??\U?(???-??S??E??m,??r????jZ?Aen?[@??? +?0OE?????j?G?? +?:?????K5??????|?EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP^??3?J???r??A?8?G??%F???I????QEQE????? ]?i??y?X at q??k???????d????L?u?????????uyb?y?_D?kx?E??Ae?8?\/???\?q???+?1???l?????(??/?u???????|v??N?}2???3???x3V?|Uc??o,?-??w2C?:?`k??F?Z?y??????C?Zr??[?1?Goe?? c?g?[??Cqi?k94????"?.???g???m?~?m??? +?U??O?>j_n?[K?='??a?*??7??W ???W?????(???5!????I-??* +C?m??^?E?????q?h???>YAw?^??s??>???????-r0p2=*????]?v{~????L?W??N??????Y|D4R"?c?????Z???}???i?0???Er3?!?? ?[?b???g?w??gN)6w?q???k?EV??QEQEQE???mg[?-b???-??,??c?B????????????a?0?v?P{Y?SE?t?.nn-????G???????J???|??R?????+\?,F.s?????A-???7C?/SG?t?sss?????q???;???????q???;????????(??(??(??(??(??(??(???)??c???3????Sz????@eG"M?FV ?ux???RhI????OG0h????*?-;U???V???9?a?F?\??(??(??(??(??(??(??(??(??(??(??(??(??(??(???*??:?k??e?OL??2[i????@?r?}X?J?????????????? J?"???O????Z????M}{)??V???J?@Q@Q@Q@Q@Q@I??P?z?Q?M6??~?c???? ???????????_?Fa????????%?>?????|?E >?????????????4?C?K?}??????r?????_???~???? +?/?????C?k??(???h ??????G?4???????????(??????%?>??????????{??????\??>?????????????4?C?K?}??????r?????_???~???? +?/?????C?k??(???h ??????G?4???????????(??????%?>??????????{??????\??>?????????????4?C?K?}??????r?????_???~???? +?/?????C?k??(???h ??????G?4???????????(??????%?>??????????{??????\??>?????????????4?C?K?}??????r?????_???~???? +?/?????C?k??(???h ??????G?4???????????(??????%?>??????????{??????\??>?????????????4?C?K?}??????r?????_??? ~???? +?/?????C?k??(???h ??????G?4???????????(??????%?>??????????{??????\??>?????????????4?C?K?}??????r?????_???~???? +?/?????C?k??(???h ??????G?4???????????(??????%?>??????????{??????\??>?????????????5?|F????x*?H???n&(T??}k????(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?????6?,???8?I??????????S@\???sH?????'??????R???k? ?SFO?????4?? +X??B???G?,?!?????4d?????sH?????'??????R???k? ?SFO?????4?? +X??B???G?,?!?????4d?????sH?????'??????R???k? ?SFO??????|??N?>?hO???????)c?? ?5??O??'??????G?,?!?????#???????_d??2}M}?????R???h?????)c?? ?5??O??'??????G?,?!?????#???????_d??2}M}?????R???h?????)c?? ?5??O??'??????G?,?!???????j?$??'???9>???S@v???F?R?U??;?sH?????'???>???S@w?ni????????4?? +X??B?|!??h??4?????AK?O???sH?????'???>???S@w?ni????????4?? +X??B?|!??h??4?????AK?O???sH?????'???>???S@w?ni????????4?? +X??B?|!??h??4??????)c?? ?4ni???????C'????h????#???????G????AK?O???2}M>??>??????)c?? ?4ni???????C'????h????#???????G????AK?O???2}M>??=???????4F???u[y? +??u?x???(??(??(??(??(??(??(??(??*????T?e??????T?????/?0?R??????m??????+\=????????~V??[~/???????Ew???_????????????/?????@??-????_??h???????????p?Pq? o??????Z??m??????+\=????????~V??[~/???????Ew???_????????????/?????@??-????_??h???????????p?Pq? o??????Z??m??????+\=????????~V??[~/???????Ew???_????????????/?????@??-????_??h???????????p?Pq? o??????Z??m??????+\=????????~V??[~/???????Eo?~6???/5[?C????VZ(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??( ??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(? ?(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(? ?(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?? (??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??? +endstream +endobj +43 0 obj +<> +stream +x???y|T????{gI2??????6E?d??H[??T?l?IUh?V~V?????)?R?ZQ???????AK??_?5?|rg???w??_??Lfn&?4O?r??4?t?H?????-c,??|`h??^??c?E% U???Q/?~?8? 7';-QW=???A?0DItwz???G?>k??['=2w?????????T?n???f??MV???% Own???Vm?????GJU?Y??p??w_|????}!?????O??3T?v?FI??$??;7??\??X??_???z?O??`??aR??U???% K=??;????zP????G4?$g??T???$R?0(I|]?xco?????????,??{?w?~??n?D??$??6r??e???????????O?z??nGI?( `8??????N??V???6???J??:?n?FI?( `8?4?????!9???]???$???g?a?$R?0I????u????~t????zr?.????(?% D??j?g)???????T= +L??HQ?0$???A?H???^???r?]????FI?( `??L?^?@???5?UR?5?W%???HQ? $I???qP?w?5Ux?????>J%??$?!H?w??z??b\??aw_?Z_7%???HQ?$??{P?0????n????LX??g?q?$R?0I??Y??Vn?9??=w????7J"EI?$??#?GA]e???(????'S?(?%L?$?!?t?.I ???|E?JK?) n?D???^??G{?$?k??US( l?D???\??V'??nLQ2?????~J%??$?)??=?;?c???EJ??u=??8J"EIS.I?J??l??~*???7 ?P?(?%L?$=?Q=????? +?=u??=5J%??$???D?????@u?s2 |??M4J%??$????7?[?C??5 + |???*?+DI`?$R?0?????]??)??:`?`D??:??6J"EIS-I????~??[)?Q?J?$?Q)J%?vI????K8?%???HQ?( @?K??????Q?(?%??d?>I??O???$?Q)J%???$?~?[R?(?%????*??P?(?%??d?$zZ??) l?D??FI?[???Z?????FI?( `? ?%I????'>?$?Q)J%?nIr-L9?!%???HQ?( @6K?????????FI?( `? ?%9???N~LI`?$R?0J??G?\?q?CJ%??$?Q??????|?(?%???`???( l?D??FI?Y??F?SS?(?%??d?$????????FI?( `? {%IZ?$??'?6J"EI?$?+I??o9? %???HQ?( @?J?_?Y???Q?(?%??d?$?a?&?????FI?( `? {?I???%???HQ?( @??'qy*}BI`?$R?0Jg&??Q)J%?VI???+}FI`?$R?0J???????\?SJ%??$?Q??????? ?>?$?Q)J%?NI?y1?n??(?%??d?$??>??w?$?Q)J%?FI??????9%???HQ?( @6J?i??[?sJ%??$?Q????^?3J%??$?Q?l??U?[Q?(?%??d?$ ?[V9?EIp?$R?0J?}?????*P?(?%??d?$????W?J%??$?Q?l???? +?\U?$?Q)J%?6Ir?p???P?(?%??d? $????^?J%??$?Q??;?U?????J?D??FI???X?(?%??d?$??]?!J%??$?Q???$?? o??( l?D??FI?K??#|??$?Q)J%?&I????T{???FI?( `? ?$????c??( l?D??FI?G???????HI`?$R?0J?M?4?8???-J?%??$?Q?l:???0??c?6J"EI?$?6?????$?Q)J%?s?Y?(?%??d?$???j???V?l\??yR??-T??_??5?6J"EI Go?[?t?{??uw?zV?V?3???1% ?{???q??^?l??T??e?oo???O?|9?lJ%??$?I??;??Yr4o??3???g?/% Xq?]?W/???[??????)?:n??8?) l?D??&J?'??O?<???? 3?*?4?d?$??XJ??>? 9?Zwk???????zhD=M?>????FI?( `?$??q??-4W??W?l?f?M?)I?BI*?????Lq??'g7???7^?#???) l?D??VU??Q??Y????????]???x?t,Q???????r?r??MF????????4_Nz??EIp?$R??????D??7?????????et??????l??R?m.w]??????i?{%S?(?%,(??k???C?i??<}????6?a?$?%IK?zx??k?v3?~???5???ggR?D??V?h???6?????T?b?hq?$`?$?O???z8?]?D???FI?( `??7??n?eP?b?5???,?$u?o3??Q?(?%???~p?????% X.I??O??FI`?$R?0k??n% X-?~????k?S?(?%??d?$?????????FI?( `? k%I:??6??6J"EI?$Y|t?W???) l?D??FI?sfb?( l?D??FI?T??X??) l?D??FI?T??I???I( n?D??FI?T?.??wO??$?Q)J%??U???? ???FI?( `? +%I?mEm??$?Q)J%?JIr?????/S?(?%? ?d?$i}{&??eJ%??$?Q?,=O????uJ%??$?Q?83????HQ?( @J?T???P?(?%??d?$-g???uJ%??$?Q?,?????k?MBI??$R?0J?u?$\??O??$?Q)J%?:Irf.j^?( l?D??FI?N??&???J%??$?Q???$??u???$?Q)J%??IX?(?%??DIX?(?%??d?$)mr 6MI`?$R?0J?U??m?W? wJ%??$?Q????;????'??Q)J%?*I???if?J%??$?Q???$w??4??P?(?%??d?$z?cW?&?$?Q)J%??}????FO?$?Q)J%????]??$?Q)J%??????BI`?$R?0??t}??z?g?$i?j????( l?D???Z???KU???v?F? ?ha?J%??$?????????mo?$?^,4|%???HQ?TKR??!?C??+?G?g???'Q?(?%L?$???S=?{??I +??h4???GI?( `?%?M?V?(oU?%C?niO?'Q?(?%L?$?Q;T??JggY2?????DI`?$R?0??h??R=??5??b???9??.GI?( `?%?~?\?(n{_????$?Q)J?rI?Sw???-ol??u (J%??$?)?D?????????l??NZ???( l?D???\?p??g??????`????&?$?Q)J?zI?C>q?N????:D^?mc?a]:4?ZGto?{$?8J"EI?D??????}?c|bR???o?qT??1??n?~ J%??$??IRQB??f?x??_?/MJ?????}7?Y?????k??W??&?$?Q)J?$???>????M?s?m??i_ ??7V~?i?\5?C?uSH*??5Ia>???FI?( `??T??\n?m?z?>?}h???????,?k??~??(?$?Q)J?$???????Xln? [????U???$?Q)J%?4O?'?;'st??V????#??}.%???HQ?(??n?h???8???8?+q???}V???FI?( `???~????J????????FI?( `????fE?ZJ? MQ??bLw?=/??GI?( `N???q??*R?}d*?J&QVX????P?(?%?????%???HQ?(?????K???t?????pJ?+?F?EI`?$R?0?I?i?>?=?`[G??5??n???) l?D???8I<]??G?????rD??_8%???HQ??&?????kmI?}0???+?$J%??$?9Lo?i?-)?;u??????????( l?D???,I?????DJ?J?ZgN??`Ad/?$?Q)J??$?t]?7?A?2??,??????$^?$R?0'I???????H?}???r/_??+( l?D??? II?Q?(?%,?%q??Tf?????:n?b?9?i??( l?D????????}?????;<]??W??O?Y/?WQ?(?%,~%q?]??e?V??0??S?~??(n?HI`?$R??????~?5??N??0????n:???( l?D????xJ??t????E????b/???FI?( `q*????CV?{?????i?-??%) l?D?????YW/??????,??7Boj??"??g?Q?(?%,>%?|??????s????A?7?? +?????$?Q)JX?J"??"?{^???*?P%6)pE?:J%??$?Q???$???2?;?P?(?%??V$qu[{[??& FI`?$R?0JbX]??;??AQ?KJ%??$?Q???$???w????6J"EI?$??I??>?0?R?(?%??V$?6?n?{J%??$?Q???$QGI`?$R?0Jb%a*?$R?0JbX?$?[?(_II`?$R?0Jb?$????K) l?D??FI ??????(_JI`?$R?0Jb?$I?_??K) l?D??FI ??$??U +?|)%???H Q?(?a????v|4w? +FI`?$R?0Jb?$???????( p?D??FI ??$?( l?D??FI ??DwG?ZJ%??$?Q??%????k) l?D??FI ?????C?~-%???HQ?(?a??????????6J"EI?$??K??????_LI`?$R?0Jb?$I??6?[????FI?( `??0tI??$?Q)J%1 ]W??nQ?(?%???.ILQ?(?%??FI??(?%??.I????????FI?( `??0lI???+????6J"EI?$?aK??gs???$?Q)J%1 [??g????6J"EI?$?aK?r??X^NI`?$R?0Jb?$s???rJ%??$?Q??%q?K????6J"EI?$?aKc?6J"EI?$?Q?"J"EI?$?!K????( l?D??FI C?$e???1m???FI?( `??0dI,???( l?D??FI C?????&??J%??$?Q??%??9??6 at I`?$R?0Jb?$?^???$?Q)J%1 Y???$?Q)J%1??0Q)J%1 W=%%???Q?(?%???+I??A?1n???FI?( `??0\I=4;?y??8J"EI?$??J?w?pSl?I( p?D??FI ???s??????( l?D??FI ??$???Jb?%???HQ?(?a??x{_??6( l?D??FI ??DOH??"`J?%??$?Q?`%1#J%??$?Q?P%q%%???( l?D??FI C?$???)1o???FI?( `??0PI?v???b? +%???HQ?(?a??x????[q%??$?Q?@%I?????BI`?$R?0Jb?$Y???J%??$?Q?@%??>?9??P?(?%??*??????( l?D??FI C???( l?D??FI ?????J)?( l?D??FI ??????1a3?6J"EI?$?AJ?????fl???FI?( `??0HI?#_?m?v( l?D??FI ??$e?????%???HQ?(?a??d??????P?(?%??)??^??Q)J%1 R??$?Q)J%1??0Q)J%1 Q??V?l???FI?( `??0DI??|?9?$?Q)J%1 Q???u7gC?6J"EI?$?J???~?9[?$?Q)J%1 P????MzO?6J"EI?$?JR??f??DI`?$R?0Jb?$???,??Q?(?%??(?yQ?(?%??FI??(?%???'Iz?4?6EI`?$R??8?????3??1?!??G??1?????????%???HQ??S=???!???4?!??????8?????;??B??EI`?$R????D????ov????????!????????p??=?l??( l?D???????v?[:p????w?????q?)w? +FI`?$R??8?D?L?????????G?O??z??)w? +FI`?$R????D???[ ????L?/???6)?m???FI?( `q+??eN???a;?DgE??L???FI?( `q,??>v?E?v`q;E??????FI?( `?,??6????? +#??e*?O??Y?y?$?Q)JX\K??????Wp??,Ru?V0?- [?7????FI?( `q-???L??lJ????R?#?/x????Q?(?%,?%? 'Rf???]?Y?:\???b???Q?(?%,?%??? ??J?????????????V??Y9?n???FI?( `?D??&G????r?????????I?n???FI?( `??D???????oaW?K??,i??KM?????FI?( `??D??&??p??????6??'>c??HJ%??$?9OM???}??spE7?=? +In??g?&) l?D???DI??[?[???"? ?'r???DI`?$R?0GJ??L??? +.????T?S??$?Q)J?#%???q??+??Y? +k?D?%???( l?D???LI4?`???S??????7Y-???xt?9Q)J?S%?N?}????#???JE??~????FI?( `N?D???p????U???????r?7JI`?$R?0?J?j4??????a?H9????57}??6J"EIs?$??Sv???py?o?fi??N4}??6J"EIs?$z??? 5???oQ7?s$??i?F) l?D???dI4????B?????f?????a?F) l?D???hI4-w??C?D??Q?(?%????????6"?o ?h??Q?(?%???hZ?U????????yft?`??6J"EIs?$Z?M_??????q?%RN???Y?UJ%??$?Q-?????=?:?~;B???gX?YJ%??$?QM/?xb +.??E??&$?(??k,?,%???HQ?(IE?'????V???X?? Vl???FI?( `??"?hrp9??????#?(o|g+6KI`?$R?0JL???i??'???D????9J%??$?Q??5???+??E???FI?( `??xz????'$&dY3????FI?( `??d?????ZO???[???HQ??%I?k??cI?x?G?-????a?????YQ)J?$?%7?{??m?????8??m[?x???}?????4????1%???HQ??`N????5{?????????!R?????K?w???\???H??f?Y2??6J"EI??? %?????O at B????4???W/?w?EI?( b?-JW??Q=O?? ?o????U?????-????FI?( `???$????)?{%??~?TH??GY???Y????#%???HQ???L??~1? ?$Y? IE???8??B??s ,qJ%??$?????g&V???????\?z@???5=?????????$???FI?( `?WK?wI??????K6U=???Z_?qI????bQ?(?%??$z?7h??B?S????U????w??S?.??g??S?(?%??>I?????????I??V??????/1?6J"EI???????Wu?'??o8?$????k??*J%??$?U]U?U4?????ys~P=?WU????o????( l?D??V??$???y??????y???z,@?fx??[??3?,vJ%??$????U?kf?OI?o? ??6?V??{?$??HQ?BHRxL=?M?f'.? ???0??!m??'???V?%? ?rK?????z=??:??????????e?/???.???|??|?mS~v~??O? /?a????K?????,?;??5???P??k?( `aIRQB?????,%??)I|???h??k??(%???????8??w???o}???3???????v?????w???{??T????hf???????tM??r??_}???>{}?????Kn?|???~??g??+??????????m?y?cOr????'_????????c?E?$I??}??w{v?k?u??O*?$??+????5C3??e??J?$)????^?@I`?R??N?tdj?????/??9?]?j??W?W'?????bd?_K????{??E??p?}???>??PPT???D?=n????h??i??+W?/5?L???+?i??Un?? ?????}p?9??????????gu?????????r??@?&_uoI$??K?a?~??8? :???L?z??nn??7?x????=???H"?:?????[=??$VYI??? ????@N??t???^?\H?m?J??????:?%??%???e%???@?tk?zq nk w(u?$???:?x?+?:=E[taJ???????????]T?????????\pgn?=Q????C????H"???=?Z???ya??HK?T?D????@?p~????\?H??Tj?? +I8%!=v???I??bI?? +j_m??T??R???r??fh?z??W?`?Ce?$??u????G????s???n?????>Z?????CB??s'9??Uo??????X?R????kxN?M?dT"?r?6???1a??????A??2W)?T?Iu?c??C??f^MS;????e?$?&)??? ?p??I ?%!j?X????Y??uo???$C)?~?j??K.??'I??n.?q?>???M??3A???S??>?(7 I????c8f?pv??v?K????T??1miI +???'???ou?~0???L??UHzF?(?????RVg??y??y?6 ^?0.A?_?J?????ue6_-I8$!?v? +3H?mK??>J???!?H??E?$?G|P?Q?$???!?E?g\V?_????@.??h?J;?jl?????;??c?e^????????????.-???=:?????A??"?y?A?QxL?D?r? Q????????9??????n?K74 ??H????\?J?$Clih?? '?$?N????eI??rI?nW?C???8w?GyIV?yk?K???????n?ETB +????lz?"???LE????[FE0??v?~4?{%????}??U?s??#-=:|???w?AC?D?T??U??z?OIu?g??|I?P???"????$? ?t?k??l"????D????n??4?j???,??V???N??zI??>???5.???VQs?O?{t? ?N2??.?A?{?G???B?@??T?????j]' hg????#???F? +2,??????%u?^3Y????nM?d?R?~?cn?w????l?????????V?]???\?_H?????MO ?p?KB??[?^?????|Y{(???l??GYI&?? !???}7???$?^???Z??H?O??{?E???????6G?[??I?1??????????????E?D??+???#? $?0+$a???(?&??AN:I|???O H?m?H2?^?Q???&g????m????-c???????t?HZn??????qw{?,a?c??????\L????NM???~w????{???????0L/?A?e1????U?}????4??ggU?>?|?1B??$'v?=???????Sf??_?R????iz ?Y)???W???j H?I'I???{?+6??,?$??????#?.C?S?ol8hh;f??T?=? +?q$??f?Z?|FG?Z ?khg???ca?????.]?xG(??8s??u?F?.Yp ??p???c?W? ?&.Y?v??0?:?!???????? ?|?v???op??R????@ ?N????_??`?*H??????P??C?@|?D3??;??_.?R???@lI?I0???H?ZU_b?% ??~?6N???'?H?m _ ??R$????=]-?$?t??????O6?I? +$? $?0?J?$M???k??}?????&S????W;??/??l+ ?[v*t???q?\d??/??@?@ ??$???f??$?G&B o ??C??e?|?|H??x?KU F ??$|?$fI???cn?y??@N?{?????b*??,?????+W???? ??4L????9+G?z?{?? Z??*C?I3g?h?????$fI??.?1k?$?te?? ?.?I??IFe????-D?3?M???q?q?`w??G?-x0? +.a?&?~??g?????$fI????vf]?$??p?B/;|.&I??I??3|2??~J????M?XIz?????zT?:elUI???]T>???" B?0O??? $??w~DmlI??bI??/???????D?????#M=?o??S???L?v?n??a?s?$f'IA i??_M$??9??J?&I0?BI??jO?.?{?7)5?????ii?J???Fu}?h????.*H?a???)r???*;{?$???T????D92?mo?????7???1.~B B?)~\}??PN???4j?7G???{???]Z??????Wp???8?^ #'N???{??_g?f??v?????}?z??F?????????????2:?}?t???????5?/?L???g#|h|'?jo?=z????5$|?? ??SD?LhU??~?$?@?RI??Y]?l?a?-??f?%???[?????#uw?\?????0??"?? +7??!??GO????{ +q??????,?}????c^???z?????k? q???S???????!2?????????-??z??[????9??ko-??????_??L?ri[??-??$fWI?%fYCR?aH '??X?!?????W?????+ ???Rn?|u? ?O=??JI???k?????^???V?0w?=Q??w???%f?????$?K????NOoE??%???a??;???-t????)T?????? +??Ws%QL?????o??????o?zI~?????_?&fQ?#x6p?$fgI???? ? +w??$?@?bI??A?n??o!?t??S??????K??u?W???$?*m??????~TS7z?????O??n +??n?$3+?$? +???3?s +?VPtnJ#OE??????5??]???$H??4?t_?*g????[???G? +?9??P??????- +!?sLl???G????C?N?????w? -???,z??H???$s??????M????I????9????]?x?w?S?n!+Ib?$?1I ??T?H??u{???>h????o??????f/Z'??z? ?K\?I?P??[?\x~?p:??DR?? +??6????D8???;?j??v?T???P~UTp'E??-?Q?/?d?C?r?a???'&??K2 ???? +V?15w??q??\4???O? ???x?o + +}?I^??P?{?:??7?$? ??C?7t???w??????H}??;?R'?[?K?61E{??/???t{%^ I????n?U??My/??y?O/????A?g??"?^o?%??+?"?`k??A???'?$/sU(  arg H?? I?}???j H?mVH???e?X?????Z.'???%m?l??U????H?}A? +O?-???P/??'??Xl?"+?r??Wu?h?]?V=? L?|W?????4?????)?$w???wx?Q?`?? ?{O??|?? +?A?\U?$T6+ ?^??Rp&~c?????b????{??+;#????Y??t[Ac/??G'??z? ??]???Zt??????T?6????$T?$(??%??%a??&????? ?p?J?:h??8;??`?%?t??????>t???;????}?0U?|???J??D?.?v?oo8{????~V?st???? FD?}????d??-#t(?C:L[?a??F? ???8?????k?!o8??n??|h?????h????%?VO??l????y?W'|???:???????v??>?u?u?HX??? wX?0?? $?0H?DNBf?? H??+??????c=??? $?6K$??( +????>?Jov??S??G?H?e???s??R?$?T???ICB|?g?sU?x6r?/)??e=?{p?S????i?Iyx?6q +"?J??b/??u?N_?S?.? ????k?o\???+???? Tz??$?0GH?6?M??$?T????????$?V?Hb??&/d??? +??*?<"???eDa???0?? &&S?|???f?? ?9J???;??B ?r?'x(E??????d{~??z???[??Xso"???Z0 +???R-??&Z??% ???????I8?????bPc??xI? + I??g??Z?I%R???5????Z?y??6???D?R??t*?????I0?Q? ?:??{??%H???5?83?????$???$d??Et?????J? +???t??r^?F?O??$?6??/??@?H??? +?=F$?6??/??@?Pf?!qD53???$????`H?cK????w?+m H?m _ ??$8f?$???N??W?? ??$|?$???5? ?r??x?J?$?6??/??@?J???7?V?? ??$|?$????? ?D???w%N ?`H?H?a ?Y+ [l????-I? +$? $?0??l!I??};??Ut&.??@? @ Ip??.?W??Z?p`??@?@ Ip?? $?^?I^?@?@ Ip?6? B"D????-I? +$? $?0??l$ ???]}?? +?`H?H?a ??PQ???E ?~ +?`H?H?a ??PDx ???vn/???? ??$|?$??$?K????????S?pi?b?P??7?$????`&?H??=%0*?[w;LcQ?>m???`H?H?a?H"z???S?2?s??TK???l?I? +$? $?0L$!d:zJ`T???^?????x?}tO?bJ@lI?I0 Id?g;zR`S??rC?l? `R?T ??$|?$??$??=)???;v??$?HgW?YAlI?I0 IP??BGO L??????????{?;H?m _ ?a#???]8?]???v??^??????)? ??$|?$??$D??GO ,??????-k??? /??@?@ ?F$??7??0e???,?m :$?8??/?????P.?t??? j?GUMp'??a???U4#?t?$??$H?????{U?Do???&?9e? ??0????????J?o??C?*??p????????}a????`N? 2??GO??>???v?C?KH?aXI???????"L{?????H?axI?? +??=I??|/??p ???$??$?p_??j?+?2?k r??? ?I0 7Ir??@? +Z?~?U?l???I0 ?I?K??^?k?j??>! ??J?`?? A??C???0UZ??????' A ??( "\b??z\??l?*?????? +?? A??@ ?R&y??????8z??=*???y??????`?? B^???? 'o?1?+b????/Oc?$???[?W????#???????.?? ?$?????*?i?????c7?????s?_??d?iS???????]H?????Od?$?W%????Ur?"Z^??;"a?A??-??????}?H??J??;Z???#?N????a|.?Z????h$.~??z?1?C?????/LSi.6c????whZ;??K?8???t6?u?A?Of?t?????????]?)?D?)????????????z-?4??????uoI?`?_?????Zrk?&?pi??'J?.?po?*?4??c??am?$?ku3.?????+k?d??????????2+89?,?????NF?_?KJ??? Q?+II??0?(g]???#?o\>)??.?d?????w@??w???.?????{?5??J?? K?=?&Fc4F?%?56?jb??""?"?;R????{?{??I~$??C?f?f????}3oNgdd?l????8q?????? +? +z??R?"????????=?4??B?rK8?!X#????FtrUF??0?e??<IH?o?U????(l????[7??93W?~W?P?G?????#?5????Z?|??$m???+???y?pp???V?g%>?j??z0???`???'????XS??E??jD????? *^]Sqq/?Ig~!????|?:U????~?,b?_tl??I?C??iHjp*X??,? ItA5??????i??G?P*Gs?i9?S2????Y??ap?,>r?A +?y|h???[?Y??i?????rf?F?H!1??:??Z[|?4d?y?[???Z????J???{=B??*??p?U???,? ??,I??????'??7[j????8,??????v???O?QN??`N?????????g?_6?9W?$?Xd?/?!?n?4d??#?0??^??E?9??nH??J??????>ID?o???5?????7???3k???? $?n??28qzc &???pQ????f@???????H??R?lY??$|}?V??/;? +0y?????ec?Z?:9:?jv2?????? +?&!fV?}????T?IY?????-?2??????^OY??-+F(u?????? +?????Ha~?q? +At??B??????c?B??????d[????1??=?%??f#??t?S?X?????[?MP?a??$ ?N??\T?? _?>IH] ++3!e??Q??W??8M?????8?Sjysa3?u8^?#8?>? u? $Z??fH?????K?1????x'2?hA ???#{???????9?? 7e???]?F?M??=????????\??7????j??K?R?Ka?.]e ?? CsyD[? ?b'??9 ?Ry??>=?)A??IB???4?'N ???K?j??F?3???bF???#y$?u9]??????)??6J?t?LO+]yk??/?d?h)6??\????S8Fcbo?j??2??Y????????n??*?~???:']?~?8dr??'g?Hz7(??}]j +?r?\Y?#gH"??????-a*?|??q??? +??E?O?D2??W?(g,???84 '??:??a???? x??,?^? +? +~N?\w???j +L?*?5???g!T????9L?d???c???`^??(R?g??)??/??tt????c)?`?^A??"iqJ???M-Iz%??????,?????A;???-???dO???$???R?,q?1&I??$9?M?I+?$??/?-?s?b'B?8@GN??L?K?avU?_??o????U????7?? ?????I?{?w?}G6K!y??:???~??5$?H??p??????c?\?;????N*??????4Y?YR???C????p?fu^5FK???$????bH???? ?3a*3?#G$????????\.Q???|?R./???#i{ O?V???7c????`??u???#I????` j??h?c?Bvz????(?c{???JT???????9UE???{???p???=?????gu?????v??W?????+H???? X?? +??%????????l???$@?????3???#?a? ?????[???)K???H?m?rs????x?/~??b??m?P1???0?{?&??r???n??????????YO?-?????`? ???K?>??E?O>??,+;????l$v?? ;??????\x?]#??]???c5?Q??:? ??pk?W????????"???fe'fq?????[??bR???~?8???K+I?$?!????J9??=??0?{?YNF?67?s??K'???y?8[s??q$@a???P?J*??_HP?_?e?jSI$L\Z?T/?'???N???i??R?????38??p??93?q'Is??E?? ;?CK??~????_ ???????? ??????[#??????!~uWC?rt???f?&?????$!??[v????R????N#G8 +Hsgg????8zDgk>e???b#dm??????#???<_??????? ?-??|?|?T?{???$q.~}?*??j????H??? C????!???d]??I4?????sQ???K7.d]??D??.?t?N?????\ ?G?N9???2nl?J?????t??OG?NOW??????\? &?????I?7?Vi?@???k%I?\?2z??sa|/???ot?F????j? +^E (I??j??<j??$??E2$??W In?? +m???&?ur???.?????????ZRR?K?&???????]??(N?????`??]????????`=??:^DH????J??qo??P?;???|???*?Y??W????d>c???$F?????A?? +???LQ?>???mU???G?,(@(w??hqiI?q??A+I??h?B???$wg??@?>?>?z???&I??????!??Qx??D:?-?H"? ?w??Xtf????}.?<'N?8??t?>??ZY?????c(???p?>???]????WYS? ???-?q???)?d[?1?F????7????N +????}?Unf/yp?!E???Gi?xo??@???$!???????+??r/ndH2?-?Hb???O??5??ry?>?]-'N?8??tf??S?????;>?V??3??{?????$?H~R?'7XWU{?/???3?K_?$D?Xi?????a?$?'z? +}.?'N?85J?/???,??O-??4???Ff????e8?RZ??-;?t&?J$w??#?&R?RG????Z??s??e???G?t?\))???$?7?D?H25]"???Ir@"??f????????(%??2_?vE,)??nt?F?+??r%??^?$??$??G?G????'1?Y")???$?8q???r ?w;???;???g?? +???Mywh?yPdd????$??????? ?#??r C7???$???O:i??$ =???I?O???1?D?????S??????^?????# b?y?kGF!??;##7????@???BT??c?_~?$???p???6?GT?6?[Y???Fc~??\??#???????F??1??????? +??p?????????????jw!?Z???w+??@?-]?#T1?/??| +?? +?MX?pA>{???????o?!?N?gC?P*???I?????C?%?K???0? ?????y??c????i????????(?5G??????$v?U??uq5??z?^!Rdb????R???;?Ss??????D??IZe@??p ?8q????????T??>?0??t?;??????N?({SR?+???XIT?=R??S?]Z???HB??????~#?IR??k?..?K???ab?:??? ;v m?f?1\??????^??L}??;????????R??????????O? +???????e!???t??W ?o??#????????6?&=???]?P?????????7???m6????????_y??%I????L???6nD?2?P???xW???,??~??T4W#???????E?0?R???????b?q????+d?F?l|)?W?P~???YYIVN???? +U$y^J???=?5k???A>iqF^????,I???????>??P +I?#?h?(?)?{Y??????$.WZ?[??o?^JYr?? _ ?+?T)-?+??W|b??DQ.?.?-?2d?A| ?%PG6????$??r?L??W[?~C!????U?Eb?0???qPW ???????'N????? 4?^??|?}0r?? ??hT????f|??FR|?CZ?,????"5I???4???d???08WmsfI?I??9?].???C??$???!??W?_#E?PM?CE????6???\??R? e????a?????9;2iD_??? Trv??U??Ue?:???4]z???_??F?S-U$?????????-YoJ1>d??7?N?av}??????*???=;???8q???U"??}?? ????u??;???0????(?:?ksI\??`?.? _T?5tr??2?6??]? 6?????+?4???? ?O????)C;g'?&?V??9Iw ?Y? ???bD_??#t?; +? ???j@?~G5I?$?WCR??????`l???8??"I???E5$??G???->SA8????`HR??Cv<??-^J:u0??=f>=?dQ???gHB'??MY9X????q?4*?????O2D?&U$??Ko??b???Y?* ????????j?~?(?>/|?_?5??.???G???[S:N ?f??ED|???u?8??V?7?H???|O??x?*ne??'lM????*??U+y??q???L??????,I???b?Hv???$??0?_?????gb1B????C?l&???A????(?A????7 ???lf??e?jjGi?>??[???????aZC$?;???y$?????aWK?Tmg??}???8??d?????aIR8?^???H???aE???p$i?bH???(???H?H? +??%?gHb4 ??2???]f????T?G?H?=?* ?3? ?t????%??W??"? I?j-l????X)M??#???Km?$?_?d?_???Q +I?#?`??$??J???p?1$??PC I?!?$9??eHR?8d4I"???????;sb"?;?G?????$sT?? +??@?#?1E?c?JG?f(?$????????cbb>|??w$?M?Ey~????????S??"??????F??Xr??????(B??????????5g??lc$?[?A?xU?S????*??}?cmh????$??n???5?F????~???????*?j??D7$I?B?r? ?$?/???Dq???t~??:? h?y]?k?gI???z$1??+.05"?@J#H?$?P I?X????<+ggg?7X?A??e?????wvv?~*???$6?`0????t??V?{4*K?FU??Nx:? W??Vi???*2??$?O@?o?????% ?????A?4*_?SC~?}?1??>Hs/??h3$?T?$?B??!?"?k?% ?i?$@Ov??{L.?j?$??dH?6?I????????z[??f????!IL?#.) GGGs?o??1???.??KRh??Gh?VF???t???V?[K????h%e +??Q??X?3??P??!$4?????i?|sx???)0??9O?>??m)=??8_;3????D??284??! M??:?]BC?Z?_?? EZ?(????m??Q??b?????u???3? +??o =?g??Gh{?\,Ix????v??tE??????je???`?w ????n%H?=??m?F??u?-?::?_????$r????%??L?@?????HO??"?o?5?j?x?@??V?F}???yDq?fv???HEQQQ?F?k?k??Xc?-b?????DQ?7,??;[f????e??n???1?????3g?Yf??)?y?M?w???SB???I?k?????????6?h?????Fj%??$D??pp?1E??}I???kQ???P??n??C???P???,;z??w?E?x???vO??hJ?0??I??S]$1Z*?H?Z??~?$???????$???????v??????;Tu??????t?_M?G???x?9????S.[%???f?8????????G???_Y-?,96????????H?u?O?V???_?y? +d7NcI????7?3??Wz?> j$?L8 ?H???W???l{Dri?g???????5?q????K$Alz???+HB?&?,t? +z???????????? ?1?8?4?v?????!\?!g??;??fd<=4?> q?e??!'?? +??[???s??2R?l +gR"?h??oI$???%???Z????N?s?Z2??dg?lK.>???$?G????X???a?hKr$aJ%?|{.d??,?E??D?QI???vh45l?n+??E?? 9A?N?Cd?M???????*p$0x?M?#&{G;??r??KM$!Lv?=w??? ??|1?Wy???TI?f????c???FQN????? +?W?$8?f?Q?G3??dy:??R??}SM?q?(???K: ??|x??????????$?,?X^???Q????!Z?????o??-;Y-?c?P???????|?AYf?[n4xbq?N??Ttq????+}???:y????l'?DL???k=?_?8P?rYu???x48???g??????????,???;?dg?????????A????[qq?U+|]??'????IjN??+3Zo???7?????^\??????s2?^????>?BJ?be??????????????4...?my?-???3:???,='???? +???ID??$???*j????H????;??o'$?o???2?/(657?????su??{?????xk}k?????t???p??-9?<5';?????=?f??^/?N???+i?=`???^b??????!t? U?Nm!?[}h?g???#=(?3$y???]?;; ???,???????????7?????+L?^?wA? d??^???-Y?P??g/??????????q?o??6g7ut????373?????9I?????h+??2s?OC?k?6???p?O?xs??%???N?w?s?iK????;?N?d?o?????>M??n?Z??????U?1U???[?u?V?????????[m??)???|X????3??k9?ml?3?;?%I??????&?:I(?v???Lv/??`??&????6_ V?jkJ ?1?????"???\?{?Z?^#?;JL|????97b???o???? ?V*??z??W}?;)?w?0b??tU?3W?????xf?V5I????8???]??eu +Y?d-4????h&I?Hf????K?^?A?#??????a(F?????5??c?'??? fIB????'??Wpoe??p?3?$?x?????$????OC?hQ????m6b?|?B?l????g?????U? Fo???r???/U3???v?e??(??= ??J?#ZbZPV???D?gU???j??s??H"??)4?M? ??!?.\??p???j?hm?a?n?a=?!??Wu +Y?$Mf??S?i?|G?H????NP#?? 3??????Z??!??E|??80?B?$??f>8j_??-?q\#?$?x????????@%???N????~'????e?? vDz?WTH#;?e????&?\W*F?W?N?B?U?g????n ??U(??|??$????5$?~#??R??&??I??u??@?6??D{???`???b:U??%????u=J?"?i?I2zV?${ ??R?$n\?@g,?K??????T ?K???K5!??@)??CX??????$??????O?'?2???G??6Y?????p?#?????B???'9?y??z??I?????D?HM?R?????Y?- +???@g +=t?I????I??$??I?O8?????N.@(?;Ks?L? ?? R^??%???It???????U`???W??cx???p9b????l/U#?.nL??$?{?m??? +O??H???%??2???'?)C??~???YP??$~;?X?$??[:\??$sY???D1??O?0 ????.??8U??L??Hr???x(^?8?;v;=??< /^??*? ??~??xT??P?? ?$l`h-????!?C????*??z{i?v?p?????cPz??-??e??l???jHB??6??&?+??????F???$?????Ij?v?e?s???>??O?(??]??? ????%8Qp|??y12n?;??z???)????????? ?n??rp????n?"?Fn|??$?x?????C???V?_??]2???HH+Yi???}!$?????u`?8??6u?DkJ: "f??????g??~???a?%CZC??@???????I8??=?'??_f?g=98??i???p?p ???w?????|??;??7??T?[3L??FiB^~?;?jo? +?o?Tz?[6??>?Y???????0????R??$!?tE* +??$i~D*=;??? +J?3?vN*??8??????+ ???????????K? +d?K#?uKz??:~e?>AQIP????<8?2??R???????/^??g??????I??8"WHs?&m???????O???C?y???N????*R?cP???? +DN>?m?6??,vW?{???1??$??>q????b?6??6?????UH?V??^?? Z?}'????A?j?????????????0q????\!????oS??#??0k????Wt?x???`-=ag??B???3}?O?m__7?/)|??.G4lG?l??4?8$]?????"????3??2???????Y??w???@y at M??:$4?6e???M?bi9??&??\^?x??G??MX?%-!?3?t?8J??b?QZu??! K????%?7??j}?????? +?~"^?x?????????mn????t?+???? ?/^?x?#d??????]>}????????C??x????oCH?/?|vNB?|?]/^?x??C??-t???T@?Z::;XT???5?wqlh??{?????!a?M??k???n??????????????>sBo??X?m?YH=?Y#?^?3??*?????=???????9??1"8x?v????;??k???->r-?????u4???ES?????? +?3??)?????????????k????K???=}??????j??z? +^??a???1?Wv5???z?Fl<ui?0gm6A?????]???:5??"?|g????g??Am6? +?5?~lH??5v?k????e?????]y????;?????+[q>??????x?F?????4/^?? ?^???{/|h?,?{?a???????-?P??~??????~s?QlB?*?-'{???L$?g &{B?pv??CU?4?fI\??D:_?1IH?i??9?QS??Q?f?;??B?qz +?5Y?????x????"]???=?~G??,fF}? T??O????Itg?????????s??xR#UU??8?D=?r?pa? ?/???V?????G(}?? &?!$??+ ??V????+D??????&???????? M$)?z^Y^?n?p?|???\????|17????8?L?B?]??$????2e??????7??H????Uf?M,??j????I??]I??%??B??b?a$!?B+?,t??IA???|S??$-??b%?????a<'???c??"??~5W? &?R^??8??? ????)??-=z?.$U^??U1I?,?ON????? G??z???j?a? ?.{???=M$????n?? s???C?wO;? T7w?)??/^_?4??%=m???*YkA7?C?|?????{ +$[?EPm.C? ?gw+??7?Dk$???????Z?Xu?{?y$??=B(???X?6 at z?|??I?}:???>m|&?;? ?}??????"??????gI%?kh?y?[????9b???9:u8^?}C?*??Z?k?D'??R?$8[4?@? ?:%,I???~}?z 4?????ja=*z.=?i??3????.??Gc?%???x????UI?4?&??xlG???Hv???W??????????mK?&?~?$6~?f?)?;+bYIC^?????9I?????>????2?t:\K?Oh +.C(c,??v?aP?|?}?8?K??Fl??xn??j??5???[?s?H??N??.8Igz +K?p? ?v?ty??Mx?|I?$ah5??I????I???!??{??G?????[=f?????I?5??w??????$^????{/d??JM$!H???4g?????IB?_?/??6c Q? &YzuQN?P? &I?n??D?w?C`z????r???@?$?s +???xUIvu~???? +?$??A?$>)j$??'U????|?@?U???+??/(?$Y7?????$?3335?+????o/?$i>??rSa +Id???T5I?OE???v ?????X?F????aD8?P?'QHZ?4?KI?6??E???????R?$!Ha?? .??)Lo1R# i{z$?k??j?]pF?H\?v??@? ?*?I?X???=?????o???v?At??~?F?da6?E#?j?K?UU?Wm??%I?/??? (?&]?$I??WC??s?1*?/by3F??????/??$?\?F????j???v????mc????J?y?L?e-??? +?$?{?????????l,????"????7H??RE`??V?'IZFq~?1??,?@??????@?S????` $5$!-?H*#z??U??J?b?c2h??X?h?5:9??3??q??e?lN?gC??Ob `?zE ??w?in???[?J?\P5s=?ir?$Q>??wx#??"Gj$??????V(?m4? T7w?????bIrR??tRd????Q???c2h????r??? G ?~CW??.?T[??EJ???iSw??M? +??? +)x?!?q??????GS[?|/H]8C?8z4md??Nh`????????"(??HT??????7???Y}??!)t R?H"\?D???uHR{XG?N?????u??@????o??????0?? j$???g????{Au????iL?????,?U H???p?E????NN6$]_Am??t???$?????\Y??s6?7>??W???0?????G7aIB+??[W?q??S8??? v!?'??????????$!<"?8????q?R????k?D/???????) +?[?c??xzh???oiTv?)?p???$?K?*???????x???Reqt?f?? ?-GLi^>??Y??2??H"??(C?????J?????u???% M??V?m?Khx"???]?$????P??m?w?_6?=??0-?Nzc`????H????>?A?????J? 8L???q???5?Dy????)o??x??r$?MN??????o?kx}???????heeLx?f?h????Jr??oV? +?z??S????$???B??BI??8??D?}?0/(?????????"8???1eIQ%??????5$ ?}@?a?;? +?2Ez??P,I?$I??T???????k????~???M?ww*?@c ??^l??_-?P-?&?d2w$h$ i??%?#Yq ?J|0?/*?$?1?U? +m-?X?????b???L?}??~?}??= ?,?? ? ???l0?K??sz???tjHb?Tr?^>~J?Q?.?i~?{??Gr???F?M?I??L??u?nC?!?[\q;zv? ??)???'L????M??-? ????+???????Z~?$? +???4@[I????i??P??????CM??8[?P?~-??(?????U??2?~v?GH??????S?]?????]?z??F??>?I5?~?=?00?NV??r z?s{???)????!?q?? +aJ?,v&3; ??????C?? ??}?C9;f?6????1.;;i????w?qM]{?7{?B?^b? ????h?*j?>E??B?=??X??U??[????>G?{???bQ?bEp@\??J?}??{7????????Wnr?ps?9?w????$?<|?(????^e?4???~????8?M1?????sE???N?"??Uw?y?z?2q??$xp??????=?h,????l???%?'7?,L!?1 s{T??o???@E??F?e2????E?Cn +??&a?G{?O??} +r?k??o? R]nW??)1Ie??=????Lb?1?C???5?s??G?e??T?j????ym?$? B?t?p??~! +b +?5E)Z -?@??-z??|$?{?,X?lB?7?']?IY?????&??&?D?='.O??H??| %Bk?$?Z?`h{7Md?!BDI? ??Q?RH}?:u??OG?}CM?W? }????????????? +??k???5I/?v??|>?????DJ??4c??9????/??????? ?MI[?>???w5????'N???,_?QW????Z??? +?X"a*o#???????"}??kx??eA?????v??9i?o???}?p? u53;??0I??U?????iY at DcW????????3?E[c?`2?(?s??Ih?????*???I(??;fv?????L??$N??!??F?+????c?X,?I5??|FT???z@???Qc?4?;???N2g?4Rv?5???????Q??&&9? +??3??F8??E?$?v?}kML??l?: +??x5??$]??0?L?>0?M??)??E?I?S??????????5 ??\~???D???:?Ihm*z?t.??tH?5??r,?&b?K??Fu??^?m!p??fK??????????d??g?S?)??:?]??L?????$(Ny?3?!??P?6k/>7?????@?@7?h6??zL?/?l?&??R?ID???2~????g??? ?$???D???)?9(@&??k?$?@??`_????bs?I?cq???Dn?V'? db&<"<,??e???FO???^U?0C?xB} ?vP8??0?zr&?D?s??1?\?g?  V??n??r?$????@:? ?${?TQ?Ih?:t?????}R??fq?~?=&9rp?K}??Gq???H0????L";?0????$ +?????E???C?BZ????$??????[?????cZ??8???VyE?8?N/x??1???_ P{~#?:P?7_L{????????$ES??6??A??u +h?7HC???r?}???N???'O???)`?{m?K? _???~?n????c?????n?=?(<???B???gPO*?;????????[?baW? h??????W?I?m?]? M???d,?)(J=????$ +uT?????i}?LL??9????a????I?-?-??1??I???b{??tQ^???a?Q???? +6I???AP6???$T?????3I(??????-bu)c:???5?g&?y??P??M&p?????utK??????????a91 ??=?g??????????c??}f?,s?????Gjf??I??uP\??!{P??????????.?>;-?T?????#3O?H??-??.?? +}t||4^x(??3w???~??q?-5Eyu????m?s]??0|??)#??;??"P6?????#??$???MI?9??kr?r??m??it??a?T?L?>B?? +T?wt??!????!e?7??? o??5?????:c??5?H8p?8[?Y w?9)? +?I(????Q???#??e*g?J??????H?k6??4z?Jn}_?g??1-q???T?Z-5k?Z??i$?'???????? +$????c?Z??(%?[~ ??J???"???? ?*???????????LR???0`???/??#cY???n??Eee???D?C?e??msB?}???{??m??[???0????????4+??r??D?N??<_? +endstream +endobj +44 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 45 0 R/Group<>/Tabs/S/StructParents 3>> +endobj +45 0 obj +<> +stream +x??XMO?H?G??cg4i????!-0 ????v??8`)???3??oU;?8i: ?????~?^U??hB???????~rBN?????'?q????+9?4'u>?????? ??pn???f???????????b??f88?U??? ???,S?$?&,???B0??U?BYRC???k??????/??[z?t?KZ#E??zu???Y??????????????+d???????,???^???.?4?????NKDk?N?u????"??X?V???y?????Wx)#fd~???h??(?}????? +?}??b?m&@5???S?K?*??K? ?)???>d'?eU4??}?Q?T??xK?A???b ?}?????{????A|???K?[@??*???p8??4?????u??l???g?H&e?? ?=????Z\`?R????(9g??K??2]???? a/?\????BG? +@?E7????$i??;?- e?? H ??????lM8?D??????#?ysp8H??b??_tVa?0y??>:???;???~d]+.?C ? ???U9s???_??$i?tQW.?&???M?X?6?c???V??U?n_F?yWD??>b8M?U?Q? w0????b?M\?n?X???d??+ax?)??????T??=Zt?"?L????M??T????YE???]kg??Uv??^2?jh??^??+g??g ?  +.J????JA?A?ntU??!??&???&??05??????K????r?h?R?b??m1??[???&?{4??@?Y??)??l??? ?LY~vt???}^?,?i =?e??S?bUN ??????k1?S7?a@ +???`e?F?/??z{?:[x??yD?xv??,??c_ ??{?????c?H0?6cho?X??0??/?b?) + +?D??[\?E?u????p?o?8}z??cK??n?????]H??u??p?????> +stream +x?c`,???A?{?p?? +?? +?:7@????????? +? 8?n????Z??x7????w?\B??;???N? +? hm??????? +?i9?n? R*??TE? +4?@?%ts1 +7` +?q?K? +pg??a`? ?7??AN` ????@?Q5.YN.??g;???)????s??,bm????f;??@6??(????RP?Nj?N?X?6??? 9*?N?r?hb;?n??????0/????q??L:??? +???jwC?? +endstream +endobj +47 0 obj +<> +stream +x???1AA???;Pi?,??Db%????:?j?%H?*?_???1wf?????Ln??SUJ?}?6N????`a*X [???!???lf?r,? ;??J?0,?,?h?a?%??m?}k???v??w??????????}g?M^??~???H&?!?kR??li?NJFv??_v?????e?J?c/eY??N;??~?W;?? +endstream +endobj +48 0 obj +<> +stream +x?c`??? ??p?? `? ?GX??c*??*?E??w???i$z?{q???&?#tp?$?Pg`XSC?9Fu??g +endstream +endobj +49 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 50 0 R/Group<>/Tabs/S/StructParents 4>> +endobj +50 0 obj +<> +stream +x??W?n?@}???G\???? RU?M?*?*???U??T p??}g;??l?*/???33?? ,>??W??'???_????'?{:???\H?-X?!??t:????D??v?Fp=??~1?|?N??? @???x{1?,?IP.???P @Y?b ??,??b?&?? +??*?V( 5^??*"?4c?_?O'??oMVl`6W???l=?A;? ??3?L?&%G?7?#?????>??? BFkfHkn??zO?q;???e=Bs?(??J?L?$??C?FG?2~,???????Q]??? ??R?"?'E??3???|??U??U?K?????????U??M[g??6]??hg??9N????0?z6?f?}?r[???L?G4??? ??? ?_????d???@??/?}HP!?!?t??X?B???A?7dt?????:-H?6?q?V??:???4?????r??8+?-?R????5B??????[~b??k3O?v???D+)?m???X??kS*d???FT?,?????Y?Q?)????@???]U9??2?j???N??R? A[;?|?c???H??-? o3????K???t?5^Sv?&r?B=??;=??????2??S?@E??h??)?.A?????q&?????B?y?J?????l?6?? +W????E>????D?+{? &T?Yv??@?r?-m8???&l7C???_?c +?tS??_/???!?Y$??~????p_?o??iJE??P???u??????E>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 52 0 R/Group<>/Tabs/S/StructParents 5>> +endobj +52 0 obj +<> +stream +x??X[o?F~G????sT6{?E??N89?J?i?:9}p?p??mj??????N????m g? ?c?^?!twLr?;?C%D???????B?h?+&????/Y?J? +??_??W u???`2h?obl??????5^?????t??????s?$%?U^?M?x?9s.\??ZX?????bO6?$S>!f?d?q??Op???N`??? ??i@???a??i?&r?? :(??Lj?=b&e?RJ9??{?(???a??Uc?xu?????'??JE ?(?S) ???!?`???z?M7GE?\???? ?????f???E30#?P1??????m?h???-? ?:9?-?u?????:|??y?r???p?o?/ +?Y<|?Q? +}z???!c?#M??7? +?+??4?????7~3?+?7???^?;???|??4??d??Och?M?BsiZ???|B ??2/m?RUg?^??????????i??_l??6??A"??=8Fu?%*?/9s??V?p&O??ZN? +endstream +endobj +53 0 obj +<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 54 0 R/Group<>/Tabs/S/StructParents 6>> +endobj +54 0 obj +<> +stream +x?m?MK?@E???2)d??#?(]4?Z!P%?Eq??$???l??T????,?\??? ]c6K?|U??s,???H?T?,?"d????m&x?L???M%???f??gX?90???8Ko4?j???*Hh+?W0? ?P?BX? +?}x????k??[?????>NT???::???q??M??6?0?>????l?[\?^3Fo?q??)??*4??r????W?eN}????9???? ???N???2~?}??Tv +endstream +endobj +55 0 obj +<> +stream +x???yT????/???3w???????$7?(???(?? +q?eRhD?AQ%** +"?L2??????EAQ??m9?^??hh??[{??>]u????_v?AAAAAAAAAAAAAD?TTT?????????)(??CKK????9??LBB|v? ? ?|?DGG?0????g??ka????@?+???b??/?3g?????d ????g??????3? ? ?????%!!??? ?\X????>+????]????G???????????hGFAA???????dJr??]?{??[[?G?L6??? ? ??????jb??@?50?? ?E??#? ? BDBB|"+????-???o&{???? ? ????????\5k?,A +??? l??U?AA*?????b?W=.hii +j`ts?????#? ? ?ECC??e??\5ur?SW????[A???3?? ??? ? ??qrr?k????J??d\pu?cML?(?"C??y~E ?3? ? 2hmm?????_ dX??????a?: +? ??w ?u?????zzz?}??d??? ? ?L+@????44??A???0C???????S????rlL(h??9???9? ? ?? ++???*?Q|bL?%????G??????!?/LDAAQM?%?????5K?? swn ?EAA?6@???}???~???k +O?&?SO???_?????~?XS_?0?????=F?Yjl?=.7B??[?=???n?i???v;`?????'????`??????????rrr|\g????????????}???? +%?7O???Y?? +???z\???$?`(??? ??? E??p?txX?e;???????3??6%9??m!.??Mu? ? 2???%?z?i???[?8_? +?wH+?}L????s????=F??Fq?A(??`ppT0>5?????Ge?K?7?\=w??zj?|???444lVS3e???;??????R??O? +????}?z?Y?f1^RP?wvv????y?????p??v qKKK,d? ? ?T?[X?i????????????c?f???x?r??????|lJ Z4??,???I?s?j??H?W??2{????????????????>G?3??s??????????? ??p????pK??????f ++ c?s?1?bL=#? ? +??Yj~Ol'????8?X??????'h?#088x/?"???}F+?u???~??%?3??9?9??2?B???? 2????'??????? ?????? Cx{{ {P???_?d?3?}?Sh???tH??9/????I?^S)?T??:|?iW{G??? +W +?[U[r?????m?u??????????)i?`????333??????JJJ?,6P)??feeUVV???????)?S??@/?,?????Ad&A?4?,?~ +i D??SC??g?E??B?d?9???o?y=#??0??????*??????RgM??d??R??F??? w?'?9c??p?n???????FX?%?>?e?9?#???:???{?G?s???0??????O1?^??"\y&?{?????D????A?9='???\???O?"o?{???????K ?MMM---/_????_??GP??A?,N???Fff&8v[[??7o?????y011?sO ?i?3? ?Le??-$?? ??A 9???'?M??f??2Vw?/Ao?)??%??OG1r????g??Qul?????g?(Fz c??O?p'???L????'w??'?1'?(?5?c?7????????'??V??pawiT????????D??&;?$??y??r???~???x^???jx:00???/????N?Z?ZEEENNNnn.l?]????/?"????RPP?s?%?M??Af0?x?7t?&?mnwe???!K??4??e"? +?????M|?M????y??0Z?i?c???: +?d???F??? ?M:?? ??`Oj7??????S??c?@?'"?"??=???O?? p??????>S??tFx???=?.:vF=??!ta???N[3????y?t??????l???{)>>>--?????????4i??T?]]]??????uuummmp,x5????p???W???9???}??7s???t?AdC???P"9??B?9?2ed?Z$??X*$?Ae?P???@???? ????j?gD?F??F?d,SS??B??xH C5???1M??'&Wy"??r?????M??Y???????56??9n{?uA???3?????m??*????0'gDm>h???~??????X0??????L?SSS???K???#?E?????? "????O$????y???S??FOn??????????m??Q??S?g?T?? ????`av Jp!? ?`???^?1?J???WS????? +?0dh9{?u +?G??&/Q??8???Wh??{?x)H2???|d???r????!?K|?)0?6sJ3<|??'?5??5??e(4?mOOOCCCQQQ???hs{{{WW??7o??{7&y?R@F?&?ah?H??,C? ????g]??G?x??I?????????????y????? +??qO ????????>?{??k? x???`??*??m??????????RK??!BZp]???S?%?????D??)???? /?|vr?.\?IN????@????T??Z???3#?9? ?????????6??????onn&e4??????$?y2F+t???Y?|?????C?? 3???<3?4???H???#??p?D? +?d$???$?Efx?>~~0Bo?'(z^w%f? +WFc?????anA:X1#?F +???CJ?m??????mxX??????222??b:?? 2? +i??????O?N???!?R????#?-?E??3?#} +??YH???}?r=?u????6?` ?7?}?vL?+?9?=}??[???`?=|??UC?????*4??????????.QQQ?t5?*???Ut?MI????m??+.?^??? ???8}zF?yp??? ?.y??%? ??Yu?????K???/???* +~@?\??-?0zM ?'?" |? ????H.d"? +??????} +v??e???3?TB???\?e???=??^??l?#?^????qrr?!Y??s??????X_?=???`?}}}??w(m?>?t?????;qqq )))999??=kkk?^">>>,k??????BNNv?WIx\qG????4g??Eo??Pwww?p8????Ad????R(????_??w?!??o@?T/]PG? ???-??<fI:4??9`?c???lp?I??n?c???%?S??????=??W']A'? +b<?g????`' +?!???8y??b>~????O???3????>?lE???????3??^?????k???~Ad?v????L?+w????????xV?g????U`?}J?333???KKKkkk[[[_?~?} ?P???OJJ??Q?$??????? ?K??A?q1jZ#q??my?Co?+?#(?VD? w? +??3u.??<n(???N??h??M???{?????????r[%???????)?IcL???? 0?i4?f?nP???tl?)I?k?? +?:?? ????)??????L27H???!2????Y???^?L^OO??????v?? ????jSe4 ?)w + +R???? ###-- +?]Se4??????c-?+?AFA???_????????7? d@?KP?G???4?'??NW??????~QgH?:???T? z??-?b?I??Q??'G??C?$?c???m???????4??????? 1G???hT??2J???7o????VWW????{?????*?A?????d?O??Qc???&U,??A????????q?\2y????|??H2???g??????UV? ?{*@??{^=I~8\?=?R??!?q???L?/???????{zz? +?gA???Zx???7?_??~? ?3C0??u?{|????g + +?? +? ??Y?)??A?/???J?[???A&?????St9.t?`?;eo????W??h?hw????????????????????5???????#? _($?? ?? _#?????6?7H?f&???d)?{?s 2@??P=w??a??????????????????????????w??}A?<??? ? c?$o???w??? +$???z???L?tpp???????????W???A??????SRR??????I +pl???v'??@FA+??o?? ??v?#t?H??8?u???????E>?%gs????b?????z=???kh?QMMM???????Q[[ -??????w??/??sxX??/AAd??????q??? +$?X?n??=] ????`T?#??????????? +????B???2????1g?`?YAA^CCC??? ? 2? tvv:??_{???N4? ?Z?y??j??????Gz????????????:x?? ??9??v??????6??I|'9??c????}??4~??? ?v???K?j/(?"??????3?:2{$???Z??!??????CA?????]=/??^_?Gqeg?(???? ?`D???e?gQ??0~?3????=N???=??!+?????v?????N? +??u????7of?????????<=???uv?63??b???=y?P????????m???O??8(*??^m????q??-[?l?po?:oyyoe?;7z??\QR??i???????????????u????o????pq??+???????\??.HH???g?{??????,p?7?MJ?-%un?B???????????ZL??????%??HIy?\ye? +?e??.^|]Z?SQ??WS????????.**N+W???sVV>??xj?:???o\?????????????TT?44???>?????}K[???a??q?????????Ym??VV?ML???????????7LM#?\I?s?ipp"?^HHVX?vZllZBBvjjvzzvZZvrrF\\Fz????A?????^Q?X???x/??F?_+G?O?????f{????CK?????z???NjG???Q?vZ??~???<?'?:?Y??c??-?{? n??\?u???}$N???g?;h.?m?F?B? +C?:?????8l?s??:????A?+????|?????????????N?O.??????u?????mmm?-?'; ?~'?e??%???]??~?W?? ????%e4233??jkk;::???I>?9%9????????s??????!??pww???kj?????????_????????w??=?? +??>?????c\???=KJ??))(.???????m?|???????{?w??????zz?::?????o_???O??juu??????;w???**????~??-[?TUo??PZ:BN???J??Z???k??II,_?)!??lY??d??D??d??????????/[??O???q????????????????v????Z???,?4?/??j%??^?f#??b???B9?+N??9)??f?r??O??Z???n?F{???!l?t??y??E_+???=?C????V?Q\?P???&f??@??? ???????Y?D6&????? F ??X??}Ie???nf??????2555MMM???}}}??=? ??????<?m???s??SBB??2?"???x???????]{{OSS{{gY?????????????]/??{#"?BC_FG?????y???????????????????????????p??V??.?? C[;l??G{???T?;v,???l-???{K?oOVT|()yg??JJ!??Q???**?+W?Q????WVPR??^?8z??? ??.M????^??z??U???????s??E?????y?_??Y? s???5k?W?J?Y??\z??Re???k?%v??GRR??W'????aC??N ????S5???[~?%r??????7l??1???,C??_~ ??3????#G???T6XY5?? +?N???$???XY??:U?????????????U?'_?T?GXXKTTKttk\\gu5??????o???#?L*o??6??Ud??F>I ??y??w???o?????a??a?+??8*????-??_k?B?z?r1 ??????????lKY?_?^?l?L?Zb??%?O??uR?????u????o???{|)?????7?S????H????4 ??? ?]-d?0K??A w`??"/? q?x????!?s;w[+????7Z?`?D??q?????<=???D??P?{x*a??R????+??@(?,Q:?h??{lM.?=???#???????D??T& ???lll?6SMs??T??$?N???.??MN*????q????????????????2??u???(@7|||?22?Ks? ??vKKKp?????8;?sNN????????x??????O?O?????{??_EE??????w????????????????7)??????7???????.]?pp???????O?????????????:p?B_?????????gm??~}????????o?uk???)jjY;v???F??e??&??D??'???Y?????)K?>????? +[?$I\<]A! +?v??'k???????;?y??%% %%sde????6mJ????????)SW?????????w?n???iS?????k?t+W????m??????????????05??????;?????::?o ???xs??yo/?????;77w2~?? _'=???M??%I??n\?g???w?????o??6ls\b,g?H??H?n1?2?Km????-???n??S??yR???? ?ZKl???j!??V??E???c?q??CJ?????@?????*??*???^?????i? ??m(?? ????D$???keu????k?V3?Mf?+?,Xf???~???????o??B??????|?G?h???e?,d??R=~a???????yo????{dsb?kr?_5?????!A&????????x??5a{" +M?m??Rr=$?y??tfffII hsss??/??%??? +???????w?Od``????????bh?="?>0?->?*"? +<0!?= ????2o?|g?l?,s?H?P-?$}??::?????X????c???????U???cf?Z????wo??u???M???46???{?????%??$?Yx??fM???C ???c?-?WR?????[??:M]=y??$%?8EE??? +27o?????s?P??i??~??]YO?n}?}{??v???I::?VV?AA?7oV98?YXUhi5????\????Q???M???o##?s???????R????????&?????????????????7==0?mmmG??A?/???????j}??ZQ?)?":??;???+??????a?b??????{????%b?????????gO?????G??????????8??????X?~}???3-??m????#%$??, Y?*HY?OV6FY9TN?????~??d??+?????????lo??/?5???.??"5 ??^B?M?" (??Di?? Uz IH??@h??{?"?|[?>??{??3????9??]??1**j???R?>??li???S?Q C J=?rS?)?H???|S????c?j??f??e???\???0|CV5??Q?aL??m????*6?$8$???V????'L?SH???.^?k????a??7^??????????=9 w??l??>{ \? + ?????O??9?T?q?G!9???}Z??l??&??o?????!?????S??IN??n>[?????bm???*?TZ:QT????vll??lJM?????i??i +y?x???????????????????g?F}|?|}?}|?]]{n??wwo??????[Y??????????ut,??k??40??????17??`7n?xy?Hd??Z??\]!'W##S?@$ +?[?z5???|.?????????W ??d1??+W2?????Mp8EP?^X???II???D V??H?bk??IL??L???h?????+ ?jc??? z???T}?ZMM??v??''>? Fkj:???m6;;?F??????^^??qq?/^l??? yy?D"35u2-m)=}==}????$??????????_??Ovv???,//?????U??r????8??? ???i??? ?[??O??????d? +I>?G?????V???I?+???g?O?????|Z,?b@????uZ?t??`Z,?Q?????@D??????OFxB|m?~?????h?NLlP??D?7??5\P0^^?H?????/_dd?$&?l??LIJIa?&'?ff.ef.dfN??L????????07g?????2ml:??8???X,??a":z<>??? ?w|????`0>???]~Q??n*t? 7w??k????7n?j%%???[ ???D ?J^????d???????x????????hk[??HG"?%%??????_?J :??7??? +-??%a05??,77?????\Z:W]?z?j(;{?D?????>???????????z?f??~?????????|mm +????????@K _??M????m????"??D +??IE??@??7 ???d?PPLJ 5???P'?v^?????x??ll/u?7?6????,{om??V?R??v??9p??_5t???|??1?4???j}??u?v?8} >-?Y?????=? +?????]?-C?)[^^>88?????3??8???????????? +&s??e?F?#???? ee????KYY????/^?GGO????????/VT???LUT? ??  +>z????ci??????c{y56a?M??dM?R?WHd??H1NTR4364???7#???]???Hd??t^(!Q-'??LV6#??xx?xx???9?R!?? p??4^^??+ ?O?|9??;??7???+R?@???UJK3tt????uu??JDD???EE???fk?~_?gg??C+??L??\??4IQ?}??HX?Ra?!?????7??Tcm]clL?????0]\???]??=??=??*,l???)+[!????@?"%e???]w?Qg??????????????????????? ?o???&X?????xk?h]?`I?S?R?:\D???L?? +PX???q???/?7?*????????Y??? C|????1:1;04?E??H+ ?~??l'?u??Sp????o??????=[??,??Y??c,=???????_3??3x?????(??L??5???&I?<~#7w?s~?6??VP?9;? +*(?LJ?????c??IH?uwowq?????\??? +?{{+(?%$????(AL?Z\??B?b??FF?w??? -px;???:ED??D)?Q?WD???,???+????SWopw???? +6??Sa?.?$?XP'.N;.?q?FF??????????B?ki???a?E???0QX??l??????jhk?????L3?^K?f=?r99*???4???6q???*_S???PRj????`MBB????4?rM?V??J??d??p??`??d??X??d??QZ?FR?v??T)7???.?v +???r??DAA[@@??8CL????#ps???R??:qq:????5??X????????Y??2??DyLU?j +?9AT?|??IF?y??T?????? +0dOO???%???ZYM??LzxL??;??>??;???????vr??? + +z?|?#RS9????hNa???????ts?Pi?"?????nf?xa???//?_???????? ??q^?{w8?4??E????T>?N?6?P??Q W?W?????L\+\R???u&8?%???jb?g??v???_'''{{{??? +t???/??8??q???U>?|6:??x?4??0?U?@vww???f666?L&8M??O??_Y?ue?ptt???e??????????q???????????O??lfe????FD???????????????v?|????ik???j02j41?`???? +rre?^y?N ?V ?D??F??v??|??f??v??b#Z^?v?6?.u?N--??< ?????????^?\?Tq???z ????m??P???7o6\??????K?(0MT?+??+??&KI???z???<3?????UT?TU?Q? +1?6Y?n5?Zi?J?QM?L??u???vGG??=???jj??????Xqw_???uwg???????R??T??P?????z?0F?E???B?9?? ?????_??eC|??#????9?G?n??_???s?}:?????Y:????f???q??guO??????o?K?????E????????????????????_????????o?h??ktz[RR^?*??^^??????????5?????z?6???5<|"-m!>~???__??}??#???Z3?f?=?N}?S?> +?U?f4??D??? +ii5hh?#?922$%?MMMm??Z?RU?72?VR???*?~???????+???/]???I?????E]?@??f?????#????l????y?DB"UP0???BAA??"???v?? +AV???????c?dY?z ?22L%%??Q??MU???????T??^w?v??#??v??e??s???????????O$6 +???N???MDGw??t?? +??q????d?8?6I?O3?,?????? +???5?zv?pe??????q??! ?]6 ?vfqll??@?}of$k????R??R????\J+i-??d?????????r +?Uqtt???9::???,???_???Y?S1??cn?T????z1?5F?????????=S?????X???????????{;}????B???????>a?g?iV?M$Z(?????]ZZ8{???????]X???????q?????????????9n6+k.>~:*j$&?'.n$=?????????N??i??ps[??wpsv???] g::????? + +????LL?ut8L??KQ??DF??Y%+?j`?b`P??T-&?"*?????`?o?????PT???x% P??G??#??????]?\~?z??+/~?????u?????]??U~?b???W??KJ?????????TT??? ??T ??H$^U?IQ? +H??<]Z???d??n???M_?\U?@CgfV}????????????????rw? ???b??L???>>3?!!AA?II???=???|}?II??????????L?.???b?wv.?????s--sL??3=4?zg?_??????_9'?????h?8JF61?N?8D?8 +???|!????????s$6J?0\?6R% ?!?*?L???ol/?w!??8>>>??ho????e???Q_U4????????&???s??7??LL?S=?uM\E?>??g/mAd??E?????sP?????]?lh?????????]?????????I$n???????D?|k?,?2WZ:??:?=SY?Y[?RZ???kptd???????????trZ??????0``?20?66?07g???[[w???54lRQ!++??PDee??U[???E???hiWQa???hk?IHT???>,'GE"+`??7^]?X??O9/??=???B`0?????? ?????I?? U?A?F8??F?????? ????!??h4 ???a +???????d??q??J??QO?aiI20 ??7???????? VV????? ??t?~?q??BT?\P?l`?\x???_??s??_V+1q??????=??????9????f/??,??p????,???y\??????.bb?#?x3?(%?H?8?n??N?? +?(???p???? +??3?#;?7???io??]YY???O????1:w????$?NOO?9???????YyH:?)??Y????? +???Eg;?aL\???????oU????4?|???w?T?Nu5??n??a2gX????u:}?DZ.,?XY?\Q1??_?????:>3?qr?nlm?y?????ln>ba?25ev???P?v]?>'????9???5???BK+_M???71i?b?*??]#???HJRQ(??t???YW?d??U?????5?d>???W?<<.?????????????H???o? +?JH????{?????-?VT,27???x?f%?fh?ai?bbR++['&?,'????UU????????du?Fm?>??E?kKK??e?????`????O?????-?????Oyz???7ST???2?????d?@xS[{?d2??y??a?N???_9;?]]]_??C@@@?????^?Z??0*(i?aV?r?1(l" +???C?? k?6?F?K2 Ow%??W'??q??????????`0????Dv_I???,?%? +?3o|??@q{>aF?CuRK??Kr??=???????CQ???=?? ?l???????%2????XW???}?????????sq?HAA????$$?EE???u{xL??????Mzx?8:?????T? + 8?n5????i??u22???{???<=Y at _ut?????d?R ?h0O=??Z +?mmm??H??K?.\??roj???E71)E"?h$n?????W@?< +? _????[???v"/??F?KH???? + ?+(t??v?????D?????????D???SEE[tu?llz???wv???????kk7???8;??? +?????????vw? +????????Y vs? +?JLd??l????????~K$???uw????%%?????KK?KK??o???! ?V&?m?%???Ww?#-c +?)r???? ???c?-"??i9??????i?????n?7?????7o???8NqY?????+? +??????@????c?????????Aj?????????,zaa?w???x{??????u&s?H???^&W(????w???`?????????ROOZxxKrr_D?ztt??{???c~~Cw????u 2?????WfdTo`@56n?}????V??f;???i??n?b????r??t??"?&??T 5HI???& ??:IX?x?z??+I\\3? ??B????p ????????#,?" ?/ P~?r?????Wi???px????w?r??0UU????KC??@?HK?1?????Hd??YB??T?????i???JJ?jjl????????!?^??|??4?V ?9????v???????????NN?????????Cm?L?'???nj??P?xvA?BU?fk???????????>N~?b? ???8G6??;?? ?Smm?+??P0IT0NU0NS???`?B?*B?9L5?2?k?qquz? ?_?????????dGG??c|???[?????'??[[[?? +?b?M?2>5?????QA{?L?5@?????????u?_;9>^_Y?_]=???em???? +??XY9??O??N?????????D?dE?@ff????????++'rscc????\]{???|}=j?????mrq?YZ??????u??-??????? ee??l??b?? +M[?hb?30h??iQQiRP?TP?RQ????45?ee???Kxy_?????,TW?B|k?B????q||??)????+W^\????S??M?z????za?&?~8??qs?=?A]]??ML?????ih??D$???4???JJ2???E?? +???YY??hGuuk???5??d55?5???e?^??Gqr? + +j +?????(-=????x???8?b}????jW? +?p???v`???#WV~9:???_?????????$??*V1 +f)?f?,??,??,c????gc{??????io????P??R?a??A?=c??M6o???w? ??9??cccct???w^Ml?????[??{???s?c??kB?PBU?t?KB?EQ?D?K )??$?@*??zGP???u}?????????}???b?????3 +??|g?a:????l????D@???????????~??u???L???~TF??w???hrf?;?S?u???1???;??~zk{???}{u?5???%m??~???;66@"-46.`0sUUKee???????4?27?F?=|??????.)?*+?{w???Mn?????XNP????D? + +Ynn???Voo??u??A??A??%????@`k?????x99??:][??r`?&U?e?II?????[~??t??4]]???FTP??????HG?;?#? + +d--&?ncC???UT???b????????z"-???K???@?T==??4?8m?Zuu???b????????o?04?"?Ph???????????:?????q????hcC??f???$%??/?~?qj<"?/"??????&]]sXl~>????BY???z33?vv???ss??????~??A??????L??t +R???$h?d?8???n8??\#r,?>??I????}f???~?zgg?xb +???(?????[}7 ????:A??????&1d??u?>L?)?n?0??8????????7-?j?pxm?????_V?O?6?T???r??f?@??c???:?1??r03?rrrx2???????JK?Z[_?????}&s??r??Cfr2=3??v?/=??????&?????!???TUi??C???))???Ngg???????M??'jiQ??(JJXyy??L?46?ik3?p ?$ee??d??s????????g??\!????? ??Eii??B??H?? Mjjy?*9?R9???/?)???RTlVS????O27?D>UR???h???????44???::?jUU??F??i??u ^?? +=>>?s~~ 7oNx{????Q?Vg?6[[?? +5:?=z^? + a???P(rPP????x?2?>??2??)//???????{[?????????????q{b?Vd?Y???w}?????z?P?I??0??qAz??o??,???Y????z'?/9?????G?U?m?.??(??!??`?bA??????-???P[$4??????8<?????i?R?????K?i?#>??fl6??|??????Y +?O????1?e f??f +?;??~u4??>??\_???AOr?Xy9??=??[???????[?Z??????>>4`???T[?~/?????[?:???nn\ ????k??`0??MW?s?? +]S?edD50?QW???dd??s???ee?N??;}?p?|??KU""?8Q? +lq???S~??????+W?>?s?T?? ERRRR,8??????????lb?\O/OR?NXs?<o:N??%?`8-?R?FC?hd???8`gG??/PU-37g??????89 +??tZZ?QQMNNMW????G????W + ??)?!!?????????.4?t?>='g?E????F??^-,???i??Q????E&??u??;?????kzF?????????\}??F?????yg??=?pY ^??`Zm?6??????SSS\.?H$?'8?\?O#&???] +?(??!?T4 +WAFC?n????}??HXb?ou?c?`????\`?C????!|$:?????1???? ?3??x?vv?w?????????]mh??????]?`??o????????9?=?%?9WV6??az?\M?D^??M??_kXX?????"??'8????ij:??????>\]??=??????8?YU??@P`0"? +???H??kuvv]?V? +e???????????\?H?B???Z??Hbb?/6?=?;s&???Z!?????N?n??c?????IJJ?(?55?TTJ%%?xWII Uj?????jf???prwp??????>14?43?#?$?ea?dmM?W???ss?A?fA?????vFGs?)*NK?ggO={????HL??????????!6?5???h??Q???{??????~?????????V?e?????g?????????@????*??Gz?#x;C?w01??kkkl6???%5 ?????????Cu????p?@E?pU?h5?X??u??6?????8??s??e??j??M????I?n??]=??x? ?h~;?#??K??=?????71?????6?|???N&/47???m???ho+'???G?z32??&?? ???7w???N?????1mm{F????_g:9??????????????W)???????p8oRW????u(???M?F)?.EE??r5?^Q???????S???hD?1??s?0?N?~???????~???;?;}????N(??@??p FVT???? **4??2NRT??} + ??;? "B???3??;ll8NN=??=^^]????zzejjt==??1???9,?.4???6??0?BM?P ii???++???????????11-aa????????~V?t~?xC?8??>>?77?rvvwvvo~?????????5?[8??\*????Tn?5?"?+?]`?? ?[j???Sl??6?~h?????&v?.???8?z +?.z??Q? ?Z?\?r??G??UI?AR?CV?H ??X??Y??_???????:N?>F?#?~???;?????????~???&|?w????????O?(???w?????????? +e?(mc??~???%??N"-??,???+*???'??????}?1??X????`?????;w8???EY????????,???^??H.0???I + +???522x11??????M?? ?8?r??? +??_?????/?bbug???:Uy?B??F??8???i??MN????ob???f??S???00X??2^H?,+???iZZx}}??C??]??)???dl?dbR?@d+*V??W???4??=??<6?G?fbc{??_????XpYF??????33???yqq??|??|~>???yn?????Z?????^mn????lm???ZYa2??m#@??o`???4.????????????s??3S?#?,#4.??V.0g?;?#B+4??imm????E??=t???rd=?v??S^YR\?????ou r5f?a??I??????????_??V??1?w?P?;????'???O???c?[B?l|?j*???P?#?????H??1X\??^????ln???2?,?rW?pM?t]?Z[? c??y??????????????????????????z"#?BC?BB?^^]??\G?QG?A ??%????lSVn?r'#?fb?y?*???dd????aj?bb??????Plm?44?????8II?Q?4???t??h?y?N????????_?zUQ???C?4?C??o?:1??S??i?????^EL?w?;???? H????.?c^X???????y????????~?d??z??n??v??q?H?UUU??t?~~&-?? 2??? ???W\n?q???T?"???????:{{{?~4h!07????,,????T? ??:3?w4@?????????????A4?(tE??r??q??(*?j}?^??'??g,9y??`>???B???I?~?hk?rt?a???????;?H??????? + ?????f???22 ?MM??)(????p} + ?=?????/:%e"/o?J?c????v????????QkullgeeceX? @?????Nk?C?????r???????!????1=???}N???EW?T?A ??**]??\YY????????????U???/??w?IB?")I?|??????? BBXQ??3g?]c??p??d#?&?VY?$#?.?t?PL?^B??l?**4--??^??r??NF??(?RRXE?j + +??k?=??66$??????MJ?OJ";;??? +xx????~?p??^vvwi???(( ????`6;;???'rrF?????Hz?bC?K ?????????0??]?????y17????fc?????Q? ???o-??????UhYm]k??|n??jt?C%>{iu?k??_??A9??????=?h<_WWW??QlJ?g????HH?iR??? +???H?@??<<^?[????[?K????N??-?v??3?N???X??????i #?? ???{?????????5???????????~N??#?!?????O????????? [Y]??U`1?????;;[kk+??/^,-?????o???3?Fs?*??F???C???))?))????????????????gKl,????EEa???Hdcd?xu55:?he???b?mA ??0WEeLU?????????:%%???L?S]??T???+)?+"????r ,cI?z1????+ED?_??z?T??P?? E?? ? +???f+(???J???p8QN?$/??? ?H??1RR??O??'HJR?P???????4:?B??????$]]???cYY????AA\?^W?a?^?????;*?GIK?ee5??????0?????'O????rr??g??7??.w??mll{vX???????>??rv?????kk.?k?????6wT?7??ZDU???w??hRQi??|.#C??g??`???&&?Ph??t?ryy??*I[?VK??? ??????D}}??f;A06OK?????wo?????P??????SII????AAm??d??????T?????w??????????G??????????C>jjeddkz???????7?????WW^????5????|S?}w??Vv?Y at d?ML?????Ed????&??#&f?_?????%@?7p????8===44????H????D?d???b\[[[SSS}(?E?l?x|KK 0p??`'??????`??? $???????iK#=?t?H??'???U?.????(???????o?????7? +?4? ?????????G?????Y?r7??P?L????,*?}?t??|????????4NV?HqqoB;8?; ???M??m???IH???k?????zl,??????????RutHW?buu?Ph??2?h? `? +^N?UI????A"??vv$?je???Q ?Y^?E[?SK ??V*-]~?J??X?????? ?9s???E??K??????/b????R??B??&^K?`h???O??k??{&?!?j??)?y??M_??R +?4;9uDD dg????w{{??????????u???;~?6?????l??;-????TFv6???????`?p8k???JwE???????????9`?;??[ ?VV?WV?,@???????!|[qP???2 ?r?H???????`?N???~?3 ???????????????H??????q8 ?t:?F?1?P($?x(??d?l:;;?l6???????_]]???rv?E????sp9e? ?>>i?7?L?a?3??0???gv]???+ROK +?t.????Kpw?BW???:*??}????????4;????39y??^?r????Es?.?UV6UT??????f??F??FRSG?nnt{?????????Y???iis???0Y~~???v?F?FSS?? +?56???`0??x??H??B1Z??[ ??*(? ??a???????? ??????][/+[??????????|?????S???OI?????%%?-???_&*?$'?~:?r ???????????????W?v?73c???????y~???TM????ndDD"????:cb?=QT????|?630??? +?? +???;&(4??u???1?7"??AD???????^???????47c0???T? ????????????ln?????  `qe??? ??:??%?v??]f?T?^???e?????%@?7?????????x?bcccyyynn?????????????P???J? T??|??????:?p??+??/?x????lCW'?$??e!??M? +??H? ?k?j???_?c?V$>v,(K?????S8?\.?a??????-/?tu??x??_MO?p8?,?????l44???O???????b?+*X????hfpp?????????????|.8x*"b $??????u????????????` uu????????P??E22???`k??J??B??*MK????cl???c#mZZt?SU???}?\??S9?N?????g?&??>?t?IY?QY? +m?B???tp3?*i?!???????#ijv??0,-???zzN9:??????'oPW???0??T$?x?j??k42N40?:8t?????I??-..KK????KO ?wtvq? +  + ??????]??=O???????54?wv???a2FG?????0?rke?`uU?????O?. ?,???qIo?8Y$????"?e? T? +*???????#?Vg;??y^~?FY????'??????5? +P?????????O??????<4??7(?7{??V?/??????????c$rF!D??$c???9?d0`0????9 ?D? ?D9????;?W?.???Y?w?L??~?ju?>????4???=>~??t???100??NN???_?R? ?u f??x?.(?+(?????????%&?{zv[XLM???}??$=?????????k???$3??{?*??????FF??T-?w ?%$??????????????0XO7w??0????? +%?????vKH???K ?J??Al???yyKo? ???b"IQU??????IJ6???KHT?????W???sp???u?&F!?????oXX0o??US?QT?)+7?`h~~????????v--,??rr???22 + +?::ds? + +`???}???YXL??;????????_** #????~?K ?vNN<R??]?Vsr6??tv??\*&?????????fa??r??f????eBB?????@??Zn?*??FP'.>(???????????Z??t??N@##S???61??s??????????????????????30???Q :??F=< _??/66?CCG???^ok?ol\?`???]????W?????????WL?s&?dk???????y? ?*s?c(|zL?cD?EB?]???"??"?!K?[X?8?1???n9O? ??*S?b +??t????z$??????w??,?h\Z?????/???{>>8?qyyghh??a??v??y?BaR( ??UU j +??!?h?}*u????R??)????P??????Z]???;`a1eeE??nSQ?HKc55?44?$%?BB$QQ ?3AX????WV??4??????? ?"(???????U@?YT4??+????o?)?~=????????????@???????98?TT?dd?||???E +??`C22??????$)?|V?\VN??FA!SC????J?y?5??? +?qq???????ah???0?????3????????>SR2????0?????b$'???S?????Em?B?[X?[\<8?????????x?7????W??A?o?~x?y*?)????"?????VvM? ??????/'???7??W?2?=bt}? +??-|?"??]}?KDd?M? +????b?p???????|?|wiikrr?J]???i?@X??ww??gh4Ju?pU?nw??????????????8??4???G???47??????T??5????????z???tt?**D??>???GN??????hiap + +ty? Y?999@??DDPPh???ha?.9?nI?A$?????`c+?~?? hv=O?? ??P??_???d??$??6???UT?JJ?rrX$?XD?|?n??S??II ? ?;w?FFp???*SMmP?B??M????+?n?????R??j??{6?????ao?4? +????)(X????qrZ????? tw_pq?qs????./?HKcDF.?P????v???::&????????/VV????|???3????,?e?????????(?|l?????S??{???M?^^?nn???DSS??&AG???`@W?_F????Tee??l??EYy at AaDQqLN? ,\ "R??[??S#&?(#S/"?$$?&+[?5?fa)?~?????K?*??}???/???:?T^?L^?t!? +Q)??D?a?R?QS???]??y??N??t??:??XII??IJ?IT??[?? +Y ?o?jTPl12?vum????4????hSB?!8:????zx??$$ DDL??.???????????7????im?el?l?k%7?J8?? +b???$??$k%%k$%?$%Q22 +rrhU?bii ????bb?h(? Q?|(w!? ?O2????WT??c?kgg%c???)vmmw???ro???ZY?\\||???m??$W?Agg?????}??C??=?????{??w????????L?P??????' GL???????e:?9???ta???xl?hd???O??]??[D--??!Q[?__\]??wHH?TT?&&??DUU??Z????(/OF ?%$?UTuu????Y\\!?L+?"?????Kj?mXj`@??qu?????4???B?????-?u???)??g0+c??~?????}82?/7???z?3?|?? ???ib?KK?????????? +??????? ?A??f?HEa9&??????????#?Tp?3??z ???????|!??????7Q??72??w???? +???0??Y????????L????K:???H LWU-UWDG?ff?`?????11=!!?'OF???????????F?? +??????????'[[??l`?ol???3li9oo?????@?,-)66m??4}}??????81?@t??`a?J8?ZY?JF?+?B?89??&@?? ID;_?????QX?5^????V?tI+?FH?v)ZL?EZ?(!?'#3??4??=??>*#?"!?%(? ???????? X#%?$&????,???I??z$+?2?~1!`??6???6?????f??m;-m/?+?.5u($???9JX'G?!?*b83c???????????3TZ?????????N???MU?n + LL?NL???w??O???57???>?PN&'???/.??? +M?,l?= =k??t??Q?????{??????q????????= ?/?'^XXp|?Q???j*??}???F5>??K??vFF?`Z9.T???+?T???C?>??F7???n??E??o_?~???fi???????2y?@??????a???????`f+*?EE#?????]]?>>d77??s???Xh?Tp???????????gc??{????no????gkK??kVS#??T???`uRR???E7oV@?EPh??0??dQW?'JI%?????Z/.V?+P*b\)?^??U?????]uY0??W?8?????nE9?D? ?r?T??W?p??o???vHH?+)a?y+? ?\?????-k? +X?h?x?e?2?*??>[??*R +?I?,u +???pQB????'??(n????:p??G????????G?????=3U???s?^?6??????????????????ua?L~>?$'??mk??wg?jT??????ldt??V??V??R?4?R +^(*R)$T!$T???*/?-%?!,\????V?????S?-???i???????b?77?.?D?hd"?0:O?T?@Ds?D?????UA?????+?????y,\??E???????f????? \U????|?b \7?],?g?U??+? ????????t v1???T??Ag????ss???L\?ph?xR?|Nv?O@?N???F??V??????????"CC??Z[???] +e???:?6Jh???O????a?-?]{7? ?3??@?1m?"?-P?G5??O??V?'Ys?GG??{L _:g??L&?i?GT???7????,??????0??X??????????ZZZ?x|AI?O????????w?~N?????9?????.4p?>?e????P(@????++GKKccT?&?|T??6VZ:????????Z}?l%;{!5???4E +F???st +?xz???????m????{ +:??F$H?$j?ax??\\:??;???LMq&&??n5??n? ??? +??$E?~-?v%?2v?:({?f/O??p??0???J~??]!)?w???A_)A:??????8?i??????U?BulH? ????*#?????K?_e/????*?????J?|?Q}???U???H&?L&?\?d?????jY?????????!?<?5???mKNC@???wr|??????874???]??b67o?H????(???g? ???????H??????2?????????CB?????}???? ;?Vi??iU?Dh;C????6?$W?a????ff?:????1\???????&v?????X2?rp?6?y?c??!8?z''??"_?u??Q? +??? ?4>>B????,R~????????44Jxx?????=$?"_? +?r?| ++{U????x3?????&???????;6?????????&c\(???w?Gmlz?????ll?????3))?!!??ja:-Nh????q??G"??hK==??fg??????h??.z?e?\0?+???????^?olO1??W r.????i e?T;???~r?PC?J?: +^?u?!?[???+?V6????>M??[?o??]??????7 ???????8????n? ?o?>J7???Y?????????|???????{%>S??3?g]???Y???????????@Et}?????????!? + ??dF=88H?????????????7or?#?????Z?????????!{?????k?p!??(d?????++?nn?\_??????5 +e??n ?$p ?^???IH????OI???? +?KM%?? +{{???O??M????s??` +H?X??G?$????>t;g?????U??E??y??v??z?t??A3?/h?]"?????????^H?F????????O???6???2,? +??Ror?|?%x;B??M?,F?-?????K?P??l???tE?????????????oq?????6???j.?u?e?>u?Z?| ?Z8??mNe[i?G?O?- +??{??????]p +v????=??]???ff::XSSJx8#5u84????????`??U?|???:??Y?Da?6?V??MI?|?t???R??{R#o???`?I#??m????{~?g??*;{k???o???????x'W?W7??_???,??"?????????2@?M5?o?~g?u4???????G?g}??f????uElw???????????)?'"???????<0?????f?+???5s?8S?{??????Q??46????????g?% +?n?3??vm?xi?]????????????????C????????B-??MEF???n????????????9???|T?Fv???gC<T5K?=[??D?????+???s??ug?????m??Q????#??,_X?F@? q?nW???yC?AP?U\ ??Y???s?b??*&qkCTp???!???Ds5??+????^ ?? ??q4?6????&?????K??.????\?]?U?p????????????????d?"???????+?? d?H?q?G?j??L???,?]:=????I????h??_?-??C????????fG??????????w?A?By?sI???}d_t?pl?TF>->??????"vh??????Ficmygs????}~bd??,??5ysr??"?????????~r`?"?0A?!??????o???????????g??????????+???9??~??'":?:4?y||x(x??xrr???|2 ??9?x?????gK??i-m?D???E?9??k2 +C??????K???66~??x?d?`2_???NM???mOO +? +eV??????MddL''??&/?O&??FG?984XZ????ge?lk{???????t,U??)?????p??u/F??(???v??q?U?!???????H?z>?6?5Q??I???Y &??r.]K??K?%3??c?uCn*?^?Q?*??5????u???B?Gsi??z??Y??I{_???????~??Ke?pT|wuY???p?5h;L??] ?"???A??U?_~H????W7S?|???,?gI???|??&o??j??j?fRi?k??t7?????????v???0?;???????`FBC??s?5pFu&???4???[:??7?J???SEE[?>?|H?mw???u:}ubbky????;????lq?????Lf??k??`SMa???wI$BHB]??P$ ???Wcc? ??%??d??)a=?y?$o?3!???????????6????0???k?[????:?dEu??ij?"k?Q;B(k?Z?:?3??Q???'o?????????????? ??vi???g??H?vP6U??q?????N0n??6???PK??{??.?rX o??o#$?To????????c????_|??????o??~???9??19?X?WXT???U?????A?bQ?We?4??F?????b??[V???????o???????b?5?8\????_??]o?????[??x +:??i?(u???&""?M?????????L?{ +'@?:??????.>*??jyq??????Mb?!i ???????????^u?Fy????5??f?Q ???????O?xk????9??g??W?j???3K?Ip??k?'??_??/ ???7?@?F?y??U?~?? +??x??[??_liYjk????XP0-?pY??Ap?/b.+s*?p%\g????]i jz???????.???|==?fr???????^????]?_????E???J?R;???Ky;??QR???????_????????????????????????pSV???{V????.?/??cp???g%?? ?p?\?u???U?t?+?????tc?W???"?y?B[??=?n?_???r\?GS?O?????Q???W?1?a?%????Y?a??? +?8T?????????3??oP????O??M!???E?? +y??????^?Uj?fh??? ?\??c???0? djoa?Lr??s??-?pG?6??x???T{??q +e? +ov/?j???????|????u??^J?????? +?G???????J?l??a&&?X????;[K???i???y???????\??_?[?uO????nD??,:?qw???k???j?pC?h[?T?3Zr?_T+?w????oI?mF????&???l??"m/?1+????s?????>?A?_???i ???h8??b?6??V??????g=????????S?Z???WX!???y??0Q`?? ??kj?N???zA???>9+??3?p?:Y?_??8??8\y??x???'y'O??=V?O?a?i?}\???e?t??n?g???KJA?@?Zg?D??? \?)V?87?S?^???rx???????????''_OL|????^??z*/?nw???U????y]?a??????o??}?b??o???$? ???c???O??? : +??????????d??K8? +}????W?????v????D&<-'?f? ???%?.?<5?]?????????A???e#?????([$= i??qsx????B?U??z?????%a??????????8?p??????????????K ???????Y???}???m????KuM?;??????QU??r?A`D?PL-C?3???&?q??)]?Gd#?? L??uKmq2????#H+j?-c??0?q????l?qP? ????5r?:E??K:j.?p6?~?Y|X[?O?b?f??S??oO??'???h8???????l??o????1P??/??Z??[?:?J???6??:R?N,??????2V?yT?????A?3 ???|Ru?b?,?f~H? ???????'gH?8N??8?dIR???m???Qg???3??)??k{?h??ML? IV??=?z{??|??7??=?&????r???w???@?l'?z??????????{KKK)#???NU???+?#????vP??? ?~????#?C?&?U???QY_?6?wE????????????(?/Mc$????Y?e???d???,????NfK{???r;e:??X??????S?kd?*?0?$?e?p??1wa?p?X?~H?yr?v[?%?S??????H??Z?{??;'?w????l,X+1?L??PE?uEU?D??P?q?I8?!2???e?`?V?F0??>??*3?k??4g???????-:bZ?????`X???????%~p?v??v?????=%?tx???G??????)?????v?? (??8?x?&???=?7z +|?s?35????N? ??JmP\M???!)??????V?d?l?+?Y?d-?-7? 7 ++8(Q????qE?X?????--/:;?L?=3????o???????$?4?O*?[wp{??T41J[?T???+?G?0YX?]????????v??O?^?~}ll,?????~??5U7??????? ?Zn???/???0?'???.z"????]{???/???]u}jj??_|s?????>\]?1z???|x5$Ji???d?T?EI?`?P7u??_]?????W?????y ?JO?%??QPrwtxAT?A?P??E?E??????Yu? ?3?)???????!7???t=S?I?_??W?JW??Ku??z?bK8C????.???,, /? ?f ?A|?? ?4ZD:f,r!???Z^| X?-??W????[??[???cx|?Um?7???v?1?3 l3h??mr??X?j5dG??'?E???????s?}?2??#??u??????=(c??3^???I????A?E??r"?c.?c??d\????Mwb.??????N*??{|?~h?????.?(??C?'??OZ??z%?? ???x?+Z??s????Ud??????og]?fv?5t??????"??O?^Bno????v??7_O.????????k%?m????o??a?Q?????7O?>][[?x?b&-?S ?u+?'C?K?M?S???????U???n?}?? +?? + +?T???Q???788822?>E?g??????q%??o?_zt???????nNB/?"+?U?3J?5r???????????????l???.(Re??`??2f?????"TQY?S?????]j?????]?e??2?\?q,?$????Z???? +?m?? !??M??qH??`???a +??boN?ah?I??)??O??'?8?^e/???5?!??|?q?????N-V?NPR?yt?TfZu???c??h+?Bg??=??LM?f??r?p?)0??!??Y?S???n!?3n?$?8?Q?????Q????2??R?????.?dn??M?j??S??}?Yt?y ??"?bpx(p????\??_??T??D?-U???qS?????9?+Y?k?U?????? , +?o+??"7?,=g? ????I?9e???????$'?%7???%?L| +????? ??6h??M?|??d????}n?_?????lU?s?;?V?>QX???/?? ??????????C?1?R$??w???????J???]?xqmmMm?o??y????????g????n}??????x??????!?v??t?g?W?^????V,? s???M?2\][^Oy at E?X???O???+?v?Ud?<$?8? ???E?Ko?)?????? +??V?j=?:7Y?F?G?%?5??7h?AX??;;e2???? l?`?iTS????h?????f?e?t???!]?)zS?Js&???fGP\????:??t?+?????F??B???^v?#?)?o?z.???.1?S?z?E???{??W??>?U??b??[\?);?????p?????]B/F???IK?????G??}??s?????R?|v?7k????N^? +? +????U??.?Zm???d2%>?r?UZ!Q??????2O2??q!??9HW+??Hp3?z?&]??^1 +??[???]?{?jy???_???+5]?JU????}?q?!?g}???????l7?x?????????P??2|?.?????<>~xx???K???S;?{&??Q??Z???????|?R}Z?R?~????~?}???????p?%n@?qAN?????<g\+I??$??E9???? +?r?g1??y??=??)?W????.9?W?????\???l???Aq?Q??`H?X|?d?Y??Q?hp!d?7A:? +???d??.PnL?^1c?Y`bUPq?]j~??5}\????l?p?5??O I??k?q?5?'?0?x?a?? ??$?Jf3?|e?D?I???E?w?bi?(-???? ??d??????Z??f??I????J??9?1??U???M???1?K?????|??V???ec(?iy?TQQ?????W??jp??9?vS(Nl?^l?Rm?"u?3??t/? +5?&?????"X/ +??$CWr?????G??????y???|b??.?o?g/V63?T9?7*?'???????? +?j?T???w?????? +???l;;?$.????????}???/?g???y???7??/??3??????a!v??q??????????"kM?4"???C[?X??}o?O? +E????1^->?S???$(O??+?k?8+87"?jgk?@`-s?*?E?x?K????;#?\??k?m?R?3>????2?'ka??yvh)?O(???-?)g=????????????JpvkB?=op???????? ,P??l@? +??????) X?e|?i???m?q+??/?I'??(u??SH?1fI)?(?/W(?? ?l?? A]?D???0?O??O?? C???1+y\?yC??Y????97?z?????C???!I?(1??}???e&gWq3l??(?R#?ag??:?+%?uM?fU???{? ??\??????x???????,?H?)?-?/?^?O???iY?? +?N???v???HM{?-R=V?]Z?I[??'?5???????*?E?r^???H??e!L?1??5?f#?CW?$?4?Q??:??Qf?3??@0RD/??,???x???Q?/???w?????????ZBOvl':??_? ??BM#?? +?l?:B??c=???{???N??-??x??~QM??J??M???@?j(*7~e? ??F????????? *_??)??G??Y?RMMM????~?x0v??K? ?e.nZJ????T?)???W??{\h?0??4?F??Q?? +R????8OI}?zs??f????????8 +)=?1?U???y1????AB.??.E?z? +e?|?wA?y?i???????A?#q?u???0?p????bAts]TS???\??,?>?e4c???O?O?Y'ey???+ +m????@?bO2????+7 G???`\?Yl?? ~?V?Y?}?????qW?5? *?we???l??t?8?I ? *?O/??q@??|mW?~]??k?c? +????I?*)OI?#???N??9??????~? |.??4?????@??????I?b?,<A????9Z?"??????????A?&K?v???\Xn?%??/l?????w^M??g??j?? ?U???[u???????;??v{B??lo???R??NOO??????I?????c?u???R??DVrOO???????=z?K?=??,/_?*???_???+#m???U?>??????????F??? &??? S????m\jK?o+rH??2? +sCJ????jv?"?+q&???????? ? ?????VH?8??(S???D?????? +N;b&1 +?D???? ??U? ??H%Y +BI?K:R???2V?8??falI??,???????_>7?4?*!?*??"??8???y?Q ?7?3?J7}?-w]??K?????Y~biH?(?L??%??r?????9d?????|??|?:?2.=???:??^?b/?F??#??1???2X?k~???1??il?3??Rr#???&??e??Z%????A??? +nrw?;?l????T??7???N?b?X??7?,?|>%A???2??YxU?u?5???Y??f?f????r??R?L +?mh?????kG? ??????w???|????poooeeejjjpp??X?s??7??????h??1??^?Z S?1?k???n?????l??????/??m?Tk?(p"m???z?$A??"?? *??J?|?7K??b??? ?????d?u??"???8????7?????^? "O?????? +???????-?=??? ??B??>Loi??*?Y?Lh?V??+????????eN?B ???????.f?+?@|k?,?s!9b2U?Pu?E?? +?Mt +???*?"???K=????]??*?bh` ?`Hb??K?c1|??V??? ?-??v?????FJIcH]66M?IQ??&Jbp???A??????)???l?l?Pu7?}???PM.Rs???EN?? +f??#????x?u???????`?3???H???Y?"?9??@\?gbIX}p??i???=[]]=?#??<}?pn???K?y??????,???U]?????^??2U?o????????>88?t?????????-?*t +Wxh???cYmnK???*?\+f?gd|p?????,??P7$?? +jcg/??????????i??O2?2yRCt??d4???#????????W???-???n??i?F??tN??m,??6?&??\??;??WM??{?a>?NNr??%nCT?J?z'?w?C?0?;?r!?([?-??GG??5A?vW:??6C???E???}?S?U+?3??u?|J?D???H?cC?d?????dRaf at Z"v??????)+???c???h||?`4???H??p??"???Dd??W +?Xb?L???^?j??U???IAejr5 +?? N??@?!w????fc??R??M?@?R?g)????#?????x;?"???????d??2A??s;???????"O}l?cQ?Zc?#?|??i??3???q?'??y??en?lb????#?M?.???jW?'?zt?G??E9??~xx???????S??????-????4.??B??BJ[%M?L[/?????MW??m?/?W??(????Qo?C????????%??=1?[???? +D'v?WZc?vW?~G??H?^?d????o?9E?`2mm??V??s8?Y?I??c?~?Ip<e? ???|j???xR?;1?k???MG??P]?v??JG?? ?~6$????n??????|B??????????=o??;???"??q?J?t?|?2j?D?i?g?80y????)4?Y ?6't?A!?1[z1O??C ???c?? +?? j????J???_?????A??? ?????q?! ?h?^??r??? ???[\??Q?4??\?ZU??<5 D?!???a????~Z??'O???????]?]n?._???h????ZeUG??7?zh?????????7o?<{?????????}???????????????????"M|j?TM?(?q??Yf?'0??.???x?$>?(l?:,F??K?3?)92]?2?_\??l???d7???/?+????+?;???z +???M{3}??n./????w?????id+?O??$S ?~?l?,j1C8?KY???8XG???v???6?????????&?c ????f**3K4?? +???????J$??x???{>.?????l???~j)??Jb??z?B>?v;???)v??/?g|?y?}????T?h$???-#"?????????????/K?????1????3CD~??????7?]?????u?? %? 4Rh?TZ??7?:}?b??*?c?Q????????4?????g????`?'??????u+?u{??e??2????D?,????-94 ?;??$*?y%??????? +)O?%???????I?A?j#?\ +??????ETd)4hY?????? ?????????S??S????>???r?zG?L?????????w?}?s?><<<88??????0???????????????>S???????.,?b?P?qLe2?T?cR??Z?J+?K&???2?????????????????????\?Pa?Hq?Xi?xY?Dy?XqY?zx????7G??b????????& CC?>?8W??5??????g?TG?i?q?q?U;?????t%n??}? ?????,>? ?? ?A??lT?'??????v ????B??? +jv??=? +bm?c???y^^???zt??m$???y???S?3??E??R?z?? ?? +6&0Z?lI?>7G0??????0Wq?/\R\?M??? +?????j+?n?_)%????64?p??~????? ???W[??????L??X10g??????????~j?_???/?q=??7'\????`?wI??p???i?????>??ff?8a?? +??????b?V???.?z?j7.l???U???????r-G?b?}:?_m?l?@h??~????/???????~??v-???????}?????fi??y {???QO ????????wo??y?????O>|x??]S?????v???????????+??3y?2eq???1??9???3???:2??s? ?CEm#%ce?????l?e?8???v)? ? +?J\@?k?? ?/??Nx?????K?5?>?@??K%?fJq9$T?9Z??,a4?p??Rj/??[D???????HZs?h?q?~" ??t?r}0=ht?5??of?f`2?D3e?????-??????K +X????WV~?Q???P??0???#??,%@/) ??V(HI!m?????k)??E?!F at I8?<?*?I???BVw??R?b?(_?N?@??I;??z: +?w?\Q????????`?9b?O1?p?9????]?"?DH?M??/TW?b.?V????&?????kl|???g?=???????!t#?ZX:|????^?Q??kd??mV?9^?5Y?3U?3?czg??Y???{??????D?@?b?.??1??M??M??9v?Z?X?h?????)?6X@?f?7?0&` D7?0?s? +4JI??????????;5??d??*?[?"ne?u,g.?U?I?.???#??L +8,>?V????gii????,Ru&=?3 +?S??&???l}<?d?6?R?hF??E?? ??[????`? +??/??????2z??^C???\???????g?ig,hqi"?H?^K??O?6?X???~?>??.pd?o_.oMX?i?????{<[???k?3?]{?7?.??????w???MYcR^??k??5Q?=?cL??w???L??????2m?????+ G=?/g?[??????v?-?? g?YK?86Ky?>??d?W??OZ?W? +^?????x?*a?:?1%????EK??9q????d?P?x#G?%?Y?n????Iw??&;?a?jqH??k?_???&a3?9?Y??]U ???????? ?aF8v?v?,??&???:D???I??????K?lgT??[^?l)??s?:s??jfo??????pas??9z????K?87?-.?u?L?^?{???Q?? +S?^Z????gj~??l???????j??|?Q???|?rbx?`????W???_?7???C{????*W,UJ'?c?s??J?g??g?2b?)?Qc?!?w???!?9?w?;????N??I??K??:%???v?y?r???p cz??`???T at 4?y?F????]Ty?:??3????7??????Y[3??hfg??v2:???????^?????X??'??my?Bm?s???????[??]?;?up?G?C{??yCO???UWM??? r??????????ww?z?u=zz??V90??!????????U}?????????????-????{??Q?+??u???&??B?T??,\NCk???6?VA}+ e??WI???????5O??/?,?B??^y?o?FD?L????????lI?M +JI*>>?????a??by?Z?A???:????1??2_?f???~???M??fa?v?j?.???Z????lp',?Hx???'??Y\T ?? +????h?[Oau?? ??c???????i?9?v?h?J|?????l?ks?????jJd ?1j?r#???X??!7`?={p??m(?[??&Q)????????????C??! c??d +I?R?W?"z?A??~?8???o7??Iu?g?P{?c?S?+ ????? ?J?zov??i???_?8?3p?^?yV??Z28??!1?? +????????~??}??\_??h?? +m??????e?Z`????????,~????????c??S =#x???eM?jI????>????%???\']kI????8?F? -?a]?_??_??w1%JJ?>?;?R??*??5?cs? +???? N??,???3??;???]??]?Sykz?R??B???_W????v? K?????)???H????D?????Q????@???:???M?p ?v???C69#?`?2j??P?r ??[s???,?X?NZ?????bW?4{Y?I~???C2w?F??S>???????2?F4?lC=}??P?a?Ugd?-???o ?f???B?6'}??{Z}?u???lw???????Z??C???Z??1?nK??&?F?;?X??.M?HT? ,?6?-^i??X????s{???4?????j?&;b?3??o?=8c???q???t?z????Oq? |??'??&??}???4?V?w2????+T?????d?58??E? M? +/??_?@?]??T???????Y ??s>??~????P?t?l???jN?aA=?????V? gP??Ai0?????? ???#??8?p??? V>|x?????z?+??????of??L~?????7??=?????+s)E?? -?????Z???????z????????*;???-;?U[??5q???d?=??????R|???L???? ????"%? \????'?i?=+I??/9????I ^?)t? u?m+>i??g???NX?N9%?`{$@?$QK???*?JB???;??/z?F]<2??D2?<\?|????w?%?)a??{??u3?F+T?{??c?5?1????????!??c?}??.??????}?dw?y??/a?`?????M{???!?|???W???[?>s+??\;??>??8???A?A/?Mz?*???6B?F?????'????q??A;X?5???Iio??? +?H?b??q?=??6# ?? h????3>?A?l??x??FS???)N??8;Db?Ia?l??5Z?]??,?qB??M{?7{?E??m????Y]W?5?$?H?9'?C?IrN?TPQ1???b?Yu]???,?0?ETD?Zk?w?{???A ????jz??N?n?_W?:Ud?8?????"?q?Zc???*???????6???????d??:????? >?v??????????"T?=?tR????J??????*??$)?{????(??Z???Bc?R +?? ??s"?jvi??6?}j?pfl?U?+??^m??????u?\DNw??w??????|SO?*??????????6`?Y?.x??Ug??f;??? +??????? ?7o?tvy|???FEYcC???]?}??Hw???;?;?v?5????y?????m??#w{??C????v????)??~?y???????????%?x??'o?????????6?,n ????x?z??Y??b+U?$???;+??*?1|+?z!??&?\-?(?w+4????8a?r1'????}?#???+?q???i~?{??v??x???:g??)??x +a?-t???QL>BJ=]??U?????]?5??3vA??????K??L???:i?f????.??8?y????55??u?$/^v???x?x??o???BKKK{?Wh)-?Bao??N@_?|?p???????um?[??????????Ww????sUTT?om}???????m???r??c~s??B[???'??g?IH>?g????z???df????*???_k????$?????4??? ^?`??{AV?i[??Rzk??W?y]4??5???w?f?qm[J????n?]K#N/???"?/?????Ku?V????"7]w???YC?????;??Ho??????????9?mT`????jW???+???=i?n?S?h??l????I?????y??b???#/^?_????????? ??(,~?i?e ????]????j?U_?=S`Ot?o?w ?????Y??"???:{?,?_PP@?c??????b????;w.???8??YKb??T? ??N? ?w&?%?t???y??q???????"4??,???g?=??z??z6?"?A??":+e??[F???=0?)+d9N2 at NoU??????????????B?m??)???-k?Y_/??v???!m?BuF????=sn?GK?]Bk???v?BI??M?j?m????h?@C#SE????#s+??[????>?3?? +?????9??:?]?6???O????? e?^x7+????*iWg?`Q?pa?5??m#?bD?J({???U5?!??#g??????w?wa?M|????kU?>???b? ????6????m?M??????k"//????????WHZ??????gq??T???E#?????}??~`??????;gN?????Ji???????|????77j????L?????=??]?U?u2>??IJ?g???h? +??$`&??Z?????e??'??nT2??[?!???V??\??br??6?? ?5?C?? 9??{???? ?????^?\i??hu,?6???????$?????s?2Y?0[h?+??p????Fn?E??&+??id ?-??????{???U?#Vt?/?]t???????5E???????e7o?????_?^???I_?b?????U?Vu????GR??? + ???? ????)?????????Bs?X??9??? z?5???X??_cysVV??????????????HX????QPw???"]?_?B??3y?j Zy??$?????{???l??+????s???pO???Ie????9+B?\^??$????l#A +?6?[LGC?/??????YL9??????f?LQ]??-?jf?%???)-? ??f>??????#???_}????%???uW(?Yl +qXk????@M;3?uK??Z ?(?Y~G???F\;iS??U???|?????&???V??z???[?~???~]?????????{?%??U????Tm???m?????3?f$n?????7o^?~??==/(z +W?iw??????????#??j?G???H????(x?Z? +?9l?;??b5D?hXs??f?!g?FC????h?#??*?t-pO"c???}???N/?^_?+V':@'?m?????????5I????=I]??~_???\?{???Y??;?1#?I???????? ??.'????"?DR;c??\Y?<?S?.g?[R??`??Y7?H;?? ??Q?*?bAR??????Wv?)??>?(??0?6?~e?aB?MV??i]?J??W?K?z???Hk +X???MLN??-=??-??^q????I???o???a???? +V ^??54??S|'??u??.??Z?C??U???F?+?m??T?uT!t???=C???,B< ???^ +R?@???K.???9?g??W?^???+?Rq?????w??}????5?>$?YDN_?????G??75,X}A?????B]?m?g?g????c??.?H???????????-p?vQ \??us????+?.H???#x???????V????c?????)??n{??~????b'N]j??[??],mS ??FP9i??Y?????)???h?k??mN?????s?w??%????-2?P???R? +?U????t??d? +??A?&q?~?,-??>?????^?y???=?=??w56???d?n?{??9.?? VM?????B?Q?gt"> ?Z??ji??c?? ?Xs()(k??????????vV??0??6???m?? ???KXI??????o???????????z?v_o?QMc?oz?sr?yd??k???b?\5?m????2?x/|??V?.?\???h??sm-???-j???-?2??]????Jg??3???izd?%H??&?w???2f????/[[[?LfYY?}???H ?c\??3??E?!X???F??q????????????? ??xUXG?w?k/8?????$??\y??ySS&b???:::??{?????Z?????v?>4??w?}?Q??J??>?|=???LkZw1?{?L?[]YW??(??????WnK)?3Z)(??a????}c??????Jj[> q??????vuuq??!?0??I_!)E??U????E????????_?!????%?a`???&?y?z^????????????d677c?-??{zz???o??????w?`b |?`???R? l?S??2?+x?????ws?Y??W? +^?Lj;??y????????744`w???G1????+???s + +?}Lh???????af`X????-T?U/??l?5?]7?&?3????}8?~?S?3??~LHE?|???y??84L? ?? Q?I?#???|!  +?u??'??3??_?????D?",HXS??T? ?H??lB|$)?)v?M ?:?J?G??Mm0}?q?????:??vRx ?????N??xOh?S%??@Y???-W/???)V? +&??w??????P?"MN?'????:?~???G?45? +??????? (,?,N????????(%?yP?u?p_?Qn4??7??r? ?QX?R?bG??&.?X?=???_?:????4\????q?[>?????$Q(5?gmz????7PO?m?C??\?D}5 ??J??X?j? +%?g?I?pE?)l?Nd,?uQ?????? ??'?????????? ?v}O????O?]Gm ?ZT?u??S????! ?R??I???[F?c=???z?b????t???????x&?s5??????E???]??!?_???a???B???????`?C|i?a2????>???z"ay???z?\?;?W?f? +?????o?A???} ?k?{?6?g?yrk|f$?\A??QX2?H~?.?s??%??7?????_???jr??'?0t?/??????;??-??Cn???? ?~n??J?Xz?E????n'??Dr7????j?(???0WW?7?|?X??z +???? ????????8?B??lK??3|??p?(??m??6??d??]b]?A????z??`}??6x??2???B>??$??%TK?_??j ?6?P?~u???~?Td5??J? + ??g}M?n?? +!?>???m?mwH?%?N?|?\???g??@??l????S ?jD:??y???????? Kl?S????s /?y??*W??h?g?Y??-? l??t [???Z?pu???)????~u???w?7E????6??}???7p? ?)???)??3:?*??:?dG? ?`@E??~???96`0????Z??????CT-???2`W?????Av?W?????/?ml?????u ??h?)?g\?`;??t?3E?3??m?/? 2T?f?=? Q?|???????-??o ???Osv?%0?6d??????H~??????y????????z0 Q????C^V?ZrseX|C +R??\h??b?s??G?1 ??o ?LX??????~d?-???????67!*?? n?[??y???/l+)???p??n??????=a?OG??4z?d|5z????'?=????G?????I???2?g? ?????EeE???%?%?E????e??d?d?d?E?'L3Ah?8?? #FO????#?N9v??1?G?;r???????3n???&?7YZY',!}????n=??%6C??q?#FM?a??1?????0El???XA?q"$??EE& KL?0E`?daaa?i? +2rJ +?J??? +? +rr +??r22?RRR???%$%D?D????'M?4e??i?L?1q?????&????g????/MQ?????{x&e{{{1??>a?^?.^a?>?n~?.?7?pg?0'?P'?'?P'l?7?????????????????????Zo??????????LLEk????h+ii??*??+J?*??H?ih????J?JL?p??V??*"+.? %?&%?.>M?$$??MG?????????b???R3?d?????U +U??U?MT???FJ?? +jr??6??Z?3TE?)?H??J*?OW?R???.+*)-&%-!%#6MZ|?????????????kTJf????v??e?tU??T????i??c?o`oh??g??5?A???4M???fjk???i?;?z?;??9???{?zZ?X?a???+??Z?`e4M?F??6j? um{u]kmKc M# eC+CmC??C[?VS?Z]?JI?LF????#jvFx|??????4aqa???S??? +?b?|*???S?&M?" ?/8u?????m????? vTp?? ???}??b?????b??g??c???|?X,v?E?E,?i??$/???:???{?S?????w??T?D??jTc)Q"U?V?hY??Ul???XzN?2q xa?? x?|qp????3C??{x?Y?|??_{??????_??W???/_???_{ +d?:??/?????G???W??????~?????????_???? q\?Se??????z????? ??/^??j?n???N}??'_~???~??X?2?IU??NW0??Z?b??7?XZZTJ,A??8???9h???Cda?l???#???????>?"????????c+6?mZ?n?k????N??v??o???x????'??&??Ot????i?}??? +?????{???0??{?i????=?}?[6j?0??s??c[n????u??U??[?J?v?t?Dmw?m?Dc)????????4?G?(?C%???T?Ad??L.???2*G?`)l ? +Z?#D?_?"S?o?|SHf?? 1?%???<??????S98 +? +bQ?d?AA??K??`?RD}??)?\????=?????/?????????ZB4[????????dj ++2=? ?\??????t?m^??c???3??={??3?w??'????n????????????.hs(tq???PX?/(?a??q?%?R?????R ?M)??\XBZV?_Z?YR?[Z?[VHXV@\ZH.(??`??Gc?,^???Q. +?AaY(????yh,oY??????h{2??_?0??| +?????4 ?\5????p?t??????Z*'/????-??Tv???????8PI?????5???S?? +?g??.10?[na?Ak`?tt??&R?ER?PL +?,6??$ ?j?'R?\??>??nK??u??fWYk??'???q?@????=?V??[??f????{????oo?8???h?????G???^?wl????????7?n?X???????Om:??|?o?t??????????z????6??;rv?????W?????3?i????dZ?h?%T??'2?@???t?5??\?$?2 u?\?!??8* Ge??T4???2p46??'?ED??a?4??&sQd??o?*K???B<]L`I I????2"K?H??54??"qA0?_F??p?eht]L?/-??vY?? p(?L?\?B???(z?sa1????????}???!??t???VV???a??]?w???g??}?????88x????>|???=?5?;655u???|??g??g??? ???r3\?$7:!?_,U?_s??BTa1??W????d ?2?E()%??( ?%c?T???bz1??Z????????*?!?`k?T????Td????R?R* D?2C +Be??|5_l?(,B??#??yJ]B??(L (?q?4???Q??JW?9"3h?=???s?d??@???uW?%?o????aK at HL ?!?SX ?.???k?{? ?^h?}??????????/?x????8u???+?????x.??w?b??????"K?:S?`??@?,!?!?1? ???e?#???r?P??"?P?J?|Q`?J6W +??1?09&G???XfH??{?B +O?}??*V8M?LU??U??7u? ?Z???@lJ??M???Tv?V?c?,WY% +?Dn?,???N?????)??X??+???J?HfJ ??"???2?T???]R?C"??r??????.?;3j8n??9?-????y????U????v???5;??870v}??;?O???????7y???????{???????s?o?????k?'??9xf?k?p0?ntfA?E?VgO?eW?wnk^?+??29?R?G?q* +n???!?5??????VAN??&3 at 2?Ia??L5??X\?Ua??&?Y?z??+Mv??J??)?v???4?*?M???u ?|kS?E??+?:?R#???<????nX?n?!?????i?>???>?b?-?|???O>??????y?>?hsgggGG??????? +?U'??}q/????????{?o????3_ +???r????u&???Z+??2?M??H4?J)78??????5@??z?Dg?h????1?4?6???Z}P?????? B?(? ??5`?!{rD????VAQ?#??+]????LQ?!??F?p?j???Q??8??=???_?n?5 d +ZQ?;??&A???O???Ap?:6G?j??mi?5e2?!s +2'![?bO??I?#a?G +???6:?Fw??/??l??puw??]??;}e?p?.T?????e6 YV?a?T?Vk???9`?8a????? +?+??U??Z?_???n???????????80uo???????O??????xkn?j~ ??w{???K?'?>??????w{???r=Vo?????j?`???U[??pm????kg?????T?#(d?cW???:=Y?+ev?L??????????uV???3:}?;`r?MN?????? ??z?????_?m.??e???????`?B ??F?C?5&Hm0??5????j?_??2??????D???~?sa1????}???cP377w???m?u????fP?????????????????,??8'n???n????x?3??C>???j?R?Z?0Y??_c??Ln%h!????@h->?-`???Bl?^??m!??k0?z???`??e???????m #??? ????-f?G 8lu?\??/V?????U?kI???r???:????I??u?2?3ew??????nlw?aW???Y?? +?csD??????????9??|p?????i?k>?rG8??T;?5?H?%?3r?DS?~]???[???j?Vw?B54T?,Gs???),??Z??z{Ze?v??S??s???;??t?lX?gE????ckwN?8???????~????????]?;9???.???????W??u??????8S??-?Y????W?5??????t?aCM??x???1??F{?????e?@?????6o??IZ~?8({??????N?????????????>?R??p.UT??????0?????==Gc?I??RY??7??q???????]???r-?x??(?N?V?@????Z?#l??A 9#fW???A???1;?{??????/??]???5???0???|Vg???[q?=a?%? ?, ? +t &?????;??e?j???to?j???IT?/o?????????68?p?y?@??? +?<???$??2.OjaQx2Pk_?,????}?5?y????^_??_? ???*?7?????*?#gwT?W??S??Uz9w?:?i?6?i\??q?????H??H??L???????????T?:8VO[JH??X?r???????BkK(??;????7T?m???f_[????#=?????|?+??yp?????F?pw???n???/??????%??????????y??????????|J"?????zR??~ /???0Pb_???:}e.9h??,?I????6?7`???8?*|?*O0{????X?!?3bq? {?'?pvf`Wv?m?$?M8|I????U?5v??~h????????S?GZ???z????gZ7??h?Q??3U??O????????|?????=?y??7?ybb????{????????'?1Pn`?????/???K?N5????_???p???????????????????W^?# +???G~??G33_???g?>??C>??[?~????\W??L??TE{ R ;?:?G?w? ????]?8a??m??H???8\)?#??Ft????YC?+?T8?P???wx?fOr?!W r% W?d??)K????g??=??p ??e??]??? O?8z????+=????????`m??XY ??=X???????tc0?H4???`??dC0??o????l e????`?1?n?'?J?????t[ ?????5?H?L?1?id???:???W???? +GYuc???S????> T??? +?'Vnn??;??????b9%"r?XV)?Gd?i?????s??|>???vTt?g??%;??z?7???5?j?????6???>|yn???pg??[?~kn????3??x????????sb?????c???u?Jk??D?????{??u???? ??/?_?a_C????5?l?:???P?7??????*_?????r?D???g?0???????Tj!??C?L0?????h???8?Q{0 C ??G\??;?%R?p????mf???4t?8y???w????}UwE??`j??V???>?????????[?r?7??????????V????/??baS?"??gO?^?????? 76b0????????+?????}o???????????c????W_?z???????????? ^?z":????????.??B@@@?????????W?I?-?Q?a?DCg?) !?'? +U|?V(????$???? +?Da^h%J?Xe?-R-,?;UFW~_4?V????`???? T[??????X$??!@ ?? !?W?????c?o?]?q\7m??M???$N??4q?8K]??????I?&q?8K?L?? +Z9m???f???D??;/???????????G??hT???? +?&??*??? +'_??+\?K?v?M>??+?9?Z?Po?????>???G?????C?w;g??O?qDv[|?z???1op-??&w??Y6{?M?%?+??<1???vX?+&O?????G?????????w???7?=w?g?w6y]?]?N?????K{????????i?%(??D*?Pa??LR?Y??*?v??? ?*?Ui6??&?? +???,r??2?$!?Y?1m@j?Xi???B/??P?ej?\;!?s??q??+?(M????????q?7v??n?? ??!Hj?r?wz?'??W[??x?????c???c?x??????k???|?????6?6?@??????~?????????O?????`RR??`???=???(?o?????'??fa?#yy?????????~???8?????^@?/????o\y???z???_??CM(???G??_???O_??l?5-M?????????????????????????J?PW?pW?Hg???o{???????N?h? ?7??kV? ?kp?s`?2H??(tZ??eh??>?Eg? O?????>??T4??3x?pRhc???q6W???\"??)Q?C?h?+?sU???????tL?ntR???# ??8&0??&???8???l,???7??Z?D????!??'7??V???W?&??q??#U?KlH6&??D"?P??$c????(?6?`???9RR?!?(_:???3????avk?pS?`s?P??H???+d??cbK$?H5b?]? (?a??Y?r{P??h?????cn????u0?v0???]??^??Y??]Z?????{???]?;????????zpi?#? ?,?0 &!=[??@??n?k??M????P???C???s??d +?2i[0YC,??9?`???}?[??????Xqh??h78??h7m??n4??T???A ???K????F???;??? ?@????l\???eC???!*u??:??????u??~B ?|/??/???????????'O>??S??????W?~?????/???????o8?v?|?????y???O>??xN?=???{?Dz8+?{?????}ii?IIGRS?de??????u???????>??|?????????>??S^??h(?l?W???????X?Q??]????SOvW7?W7?U?w?U????Q????????????????n?"?t????-Juk{Uk+?? +P??\??T?TWQO???.?#W???VW?W?+*????*0YB??E?k ?5??5l?X???V?N!??W5??[;(? +?????????@MGO???{????:8?>?h?? 5??z??=???A@ ??]??????????&?@{/???V??UU?VQ?B?n?? +qDtQ9???+???WRZ^RV^VI*??&????k??k?????????5 +?? + +? +??????????P^U U?oDR???P^]VI&?inA???*? ??2RM9???\????P?PJj V7?M??b$?,?F??h??^???k??????g????????/?K???~??7?x??W^???????7n???????O|??}????$??99?$~???e8?????q?w??grr???????JY????N??M?`)){RRvdf?LK{???????0? ?/?pKiiwo?v??^^?Ji?jr2???D~'-???O?>}?@????/k4?:???^??3J(???G???>????????Lx^^?D?PX,?-??" Py UX, +[?(? P??|46?+(*.(?o??#08D!6??/@??x?E????xdq ??$??4??WT?| ??-??b ?1?,tN*b;l{,=?? +??@?? ???"x>^X??;?"???? +??*#*?K??V??ILYUa xoP?&V?H?? +2? +??RQe +?????YR? ?'?J?(B?P??]V?&?K?H\??C#?Qy???,D?6D?vG??????5A??x,?C$b????%????""?/E????Li)??$?? /??bqyX??_ >)????q?K??z@_R?+A?Et1?_?)Aa??(-@??E??|l???????r +??Hx."?D?#???XT!?[?)*?[L(?????&?J??"_ZVTR?+?n???PT???qE(,?W?-?L??+?`???q8??????$???r r??2??y?HtF!6???/???k????S6?????>???S?n??_o +??[??k??]?p???????l???y????O?????Vq????W???E`????k??????IA?n??????g??o?? s??`GJ???????{?????u2-???????V??7RS?B"? ?/fg?'%???? ??????????w~^^?8???+Wn??J(???Qt????ryne)=3???^(??r?J?P??J?T!?Lpy|?L?T(?r?R*W?? O$+?J?R%?\?`R$? +?\)??Z&???R??????8j?R)V*&??1??D)??6Q?b?@.r?J?@&?KDB)?rW,??j?J%S?eZ?\?)??B??u?Z5W$?j?J?N??I?QC*W$?k5?]?D????2??I??L???#?5?@??K +??H? ?,9?3?? %? $?H?as?xB^|?r?$SB +?pA?R?P??JU?????I??h@????\??? ???_???? ?????P?? +D?I???*d?\???8\?Jd????[\?LM??~P? +???|? s?\?p??????/???e[?~???5???'???{?6???q????X???=?????!|?h?????????????Ny?P???????????G???!????))?0???m??]??x????sr?o??Lrn?W0?????Howv>???????????m?~0/?hf?{?????????**?@ ?9?????pj???????]?????}??u???K(?????7?????W??V?).?S?4t?7t6?w6????????nH#o??l??? +??Q???To(???(CC?????-?C6y\?P??1:???i????.[??9I???t?F:????!c?? ?????1Z??`3 @U???H?q???h?61?N?z??Mka?70????u??E????t?w?u???7???o?}l??? 6?.?????u??]]?zGE_cYg-?????memg{??K???????S??h????=????bc#?????Hjm?y=???P??&??f?? +?F g? ??BB?PQ?'??FH?.(&??????8?A+VH??????LTNf~?????zrx* +???????,P?X;=7??C???9E???D1???o???_??m???~??g?m?K???????S?N??????>NS(??????????mk?????II?22???>?????|?|??8 +????N?`?0X0)?~&/??M??~???;p? v(%?Re?????32?0?{???By?D:?HN>???qe??O>?%?sB %??[7>?t????=ClZ ??X??????mm????_????z?}????1Z?g?:>??X}??I6????F??E???wH??$?!cH;?Yxf ???0??A??M??L???:C+??? ??B???1t?V8?2?b?\8???d?2 G +?Q??>?????H?Lb?Q4jy??]?~`??U>f???a??g??k????r?v?_??? @?\?h?????b?D#J S??????{yub?????????????g*D??XCM?.rW+????q?????zr{GSoosoo}'??????zJW?.Jmo{Mo????ZM?? +mue??????^&}fq???????????????24?Z???12?8 at i?j?n??ze?*?6??M?????PG??;w?? 5u????:????~???\!???U????????\???'????????????frUk????????e?"??Hj"?+?^?@?'5VV7UV7WW?T???????zbEC???\Ij&?m:?YGn???????5?66 +?????b???z\??P?O-G}QO???E|??oT? ?p,???i? Q????^^??J(???z??O/??????t6-2v?c?Q???1x??|Zt.lP/C?7"?? ?? ???t?)???????.?bx\1?Q???4???? +?y9?Q???6??? ??78?A??fj?? ??B?cdp?,???1??????? ??g??m?C*t??;"??b??V????O-?itQ?????&eP??5?`??+Cz?OyU?W??V?ux?i?(???>?,????`???{???I?"?](q?enhi}i~mA2??:?W????n???????U*???@?????gv?*b??m?9????9?u?a??,a?)`rM;>` ?~?9?7? +Z?Z????-???Pb?C? ?0??s?5 ?l???????l??=?2??v??\1??? ?rv?c??]?6??&?]? ??? ??'2?@ X?=? H??)????? +N@Wh??2?N??MFb????)meJ%?.?=?????-l??????????K[????{??m~????m?????7k???????O>??????'?????~>{~c???t,+????W?????????p?ofdMN?`?`?/?`?!?HK;?D>??u??????}?O???,(8???##c9-?DV??{a?#??O????????Xj??????????\P?e ?iP?q_IJ:???(w^,??O?/L(???????????Ww.????S??61Y"?8D? ?!??R???@?????>?FB???QG??Li????w??V X??Qu???'?????F?}#???????.?q?Y??nlA?t?(??.8??K)ti???wX?7,??F ?? ^]?S???1??cnen\???O?1LNy?x????)??CNH???=r?T?T ?.?y?gr??=*?Dh????<+?g?&??Q{?B?5?'&???YX??^??? ??-?{dJ?be?????????%2?G +??}???i?OP???F??:?6?k?1?a???]???????I2?M?)?w9x??A????SVC? > ?g??T[?M??6NDk +?]s?CG?@??h?b?W$w?]]?9?F?y\d?Y"Khd.??wF +#S? h?D&???9??Ml?H??R????????? ??W???|??'?d~?\p?/6M??r???[?k!< ?3Oh??u???3? +N?'5??3&c? K6Xp?] IM\D?c?;F=vrn?)??{?wz?'????+?l?????}???={?6??'??m?-???g0????=???< +????bOZ????Xz????MM???qn????C))??p??????????JJz????HMu?`{`????g??Nm??a??ii?o??LO?????HI??????x?8??%Vz?s+3??R??sBlLJ]???i}@??W ,qDv??Y +?]?-d.??) +.??K!???q?,? +BK?Tx??W??)?~??J4????q?6/?.??&]P??????1?X????w#FC?dtA?9b?????:?_??K?? c@??;f )????y??U?}?L???MO &$$1?G:S?e??>??3??{???????%?$?C +**>@P?(??P?W)R?G????;,?k??d???:?}??w??g???????c?H??~ Kdf?? O?n???z?b*_K tt??b????K??5hn??-A??P??30Ev??c??1???8|=???? +?????Z6`3?W??5p?q??k?? +???st??j ,.#4?T???!?fH:???K?-?????????J???1Nk)??B?+?O??/???7???26???3?h36X?????????1???????????;[[;^S3H$?????^????k?VW????????*??{??]rkm?{?_??k?????? ??/_q???6?N&???Gjj????7????lF????{????l?\???7?d??Y<H;?iS????u??????K??Y???*??s?7????g???cW^???0ML?O???????vz0?GK?t?Kp???????? ?????????=??)?str?????D??zfvjd????????|??i??U?AC??pxR????~,D +W???H~.??Q>*?Ia????*?>?w???> +?M?#??=h??????H?A????7:{h??-???????G6^??~E??Z???Babb??{?|}???b?K/???????????????HO?]???u?lj??_??O.?x???E !?Wd_i???@??????\ ??E??pv???W?>?hQ??????Ol???????????355>XU??????]??U?\dr?????%???+?7*?????^?????y.??^??j???XE*?@A??0??4??;??:????Svs?<???c>w?.P1?JZ????7j?+h??T(?kh???????y?????r?5J\?#?a?{\Q?7???w??*????a ???B????Z?P?q?-?dH???j?}Zn??'?????????,??R?PjA?vJ!T;??y?????xA?VJ?"??Oj????*?8??S??}_???Y|-[??EC??[``-03:??L??/? 0G????W`?Y??|??Jlp??????pV?[D??>?U$?0????U^:pm??????????~??????U???????=??????l??S?u???3,?1b????-M??L?i{BI?9??j???????S?ZZ$p??B5M?S1??^W???f?????|???????x.?? +z?~+???x????#??KZ?~]vc??j?n?#?*????:??x?? ?????G6??9s????=????E??? 4??;?6????6??}8o??????ryb???jl|?K_?w??q! +\_???.{????????r??-?PG???Z?2H ??y`??;???\??Lmm??#?A??? +?X?????.??????r????e???????? +??????S8\q???MM?x????sUTQE}????|??/?%#?????w??:???)????????;Cq???dHZh??)?]??=4Q???q?L,iG????a?G???????a?[??o?? +X???b????;h??[h?V????????b +jo???p?7 +?W ???;??+??????]Q06S???P?????'??h??(?????'???????????6/??@?f????6?????:o???#???c??k??r???kk3$?A??F?A2??%K?V_??e??q????????o????Kg??n??}u?????????1???K^????????'W????Ak` r???Y????6?9???????]??te??n9????Y??d????????????>sP +???????? ???>3]??????n?????t?M?%ws??????-??+?\??????J??9r????Ml?F??}?\?y???G?LUU?`?s??K??'??hj:?|y??J? Z? ?XMM??6D ??f??K/???;E$>?~??[?NTU?????????????VnA?N&?N"??H$>?e?[?\swc??U?~?u????!??E?x??Y(z?L>X[{b??.???'?????uEUT??Y??g?????%?3M?Nut ;??gsPj?iw??~???&?a?w???=t??s?????u}??;????ul???????????TW7QW? ?D?????"?D?,_????\r ?r?HC????u7]?t???x0? D???'u?n?Q?C??v0? ????_o?F?a? +%??l=??OoR???`?*??$r???n???p:$h??y,6c,?]?? GX%? 703~44E3A8L@???E\h??(D???Z??t??? %|?????O?L6?7???=??`?p&`???1???&??'}??????#?P????}zC?l????????N??5? +?~????:?L?? +??AO?muZcCQ(?????H&H????'??9??T????u???p??O???P?PF?>??? /f???? ?| BTB?V??~? ??t?2??Wz?P0????}?F???;??}Q???6Z??g???\???q??.?.???\???v??6w?b0k\A?????l??gl?+????Zke?FEQ??o?????|???26?T?_????z??bsY?????#???GW????W~???$3d?0?d@?1"???????y????????.=???~?????Lm???W??q???j??J??????????????Go???w???????*??s?????: +??t>????C?x6??????p*? %Q?S?p??.?f??h?I????h<)?e3???$S??'? +????p4]?`??3?H,08?@??G???x(=I?e?L?b?pf8??G????p?RX?sv,?+ %r?4??B4??fGS?????7?*???Btp,5????"?b,Q?m4Y?f'2?? ???XzW?? ??H<7?,f2?Ih???p????t.?D!?9Y??r?l"=??jR??NO??Xz$?,&?x??pp4????2PSvf$? L??? ?3C?4z?0?U????p ???%??n?j81Me??B?? a"O??0????0SL?3?U?>u:?Ic??c??T4;??????m1O? +?}?7O???\ 6?zd2?y?2:?f??L02?+Nd?!r?7f?????? M?f?O?N?????W?)?'??????6??7?y????m?\???????7???????l????M_~y??????b]]??"??????Z?????[?*}?@????? +????B?$????"?????5k"x?A???x??o??"?P?&?$R?HL?p?????t?Q2y?L??W??}??+V|wr????:?ixUTQE?Me~?i? +??????? ???+?? tpd-???????????????{?a?@Ej{zu??CI?/i??S?"???Y?/?(????=??%????}W???)?? +??y??? ]$???Q????a],??BM?????h??)4?{ +t???ydr???-????????\??Sz%?[??)0????>3?????????? ??B??Ghfc.????????Q6??????7?J??q??? ????X?{????? +l.G?R??8^???????~k/????nl ;???ga?Nc?q???D?n??'1U{`w?cCa?O^?e???u??:|??R!???`?g?????s3C? ?9?c?e??8?n??A??o?(?8??le;K????????L?Q??RE??????? +?G???e'c m`?1?U8?y???????????_??@?o???>|???z???????-T~ +???????s?=v?b???7?u????Yi???@u??_???M??d?A A?!I?pn"?E $??g#=>? +?]???g?D0Qe&J(k'??&???t??c??bCl???K????????FF? ??)?V?3?? ?pG&?2[o???Y``~?~]???!?XR? ?6$???z*[G?h?T?????A_??#?rf?@c?z"CAo??C'E??+?ErAo?Yb]??????/?9??????J?<;<(???F?r? cy?]4??+E???O???|??R2?o? +8???6.??O????n???J??R6??l?T??%0g???????p:`?Y??U?-C?HzmaC??Tt?U?l%??I$?s?luG??Q????????0?$???N???"??????i?~?n?V?g??&K????u?Xx?????K.?w?? &`??_?????l?????>??+????????O6?u>?~?????l?W?|f???77{d?@???m?_???????? + +??????????:R???*??s?O?s???s?B~??{???q~fBJx?f?(=??Y??/,?J?,???(f???a???-?7X??-?3???????c?E??w?R??????????%????-?E?'@???!???<#?3E`? +??X.??E>:mas?t???N?H{??D/!4?9????. +?AC[h?|?????????s0?????A??,wJJ??_???$????????????3E?????Y[??]?!?????S?~???K??ybb?P(?9s????lT???el???~?????~V?????????v??}u?#_|v??Q?1?1?S??!"?`]??uu???}??|m??__q??_?J???7??m???wz???l??? +?3?? [???HB??O????9}`ZE?P ????f???|f???r?.f??%0???/??fai ????Zx?l?g?Yd??pn?rG???2?|Y0???????Y?????|L?W,?gpb(j ????A??Q0~6??????Ubi??tR?5b(??c6_??? +???lM???9?t?, i'S????? =????~}+??=?/r???9??W?G??l????0l*>{?l???;?????????g??:????G??=U]?#?38??? O66??x??W????k??q8???-[?????h?? ?l??=2L ??D?m+?H???*',?9??v??W??&fI????w??}c??wn???M??^V??????D?V(?????z'?l?6?L0H?0????X???`????bp?????? f??c !(D??=+df?f!3??!c???b?w?Q_0f??L@??`??O ??w)??h??4? +F??hp|o? +:v?6??g?Dl~??7???>?a?? ??n? c?3 ??:??? +?????e/?Xqk^? +A??_X?r?? ?JG??Ge2B"@:7wOa??L?A ???}c???LvwI?gW]??%?@??-zm??????????? +_???+?|r??pN???TJK????????L6 + -???n???????p??*???q???????????Xz??>=?kpv?>? :??N?m$?=F??b]l?m??MD??]=???E\?#=fW???? ???I??T??*?I=4????aN??????V;(?vJ?{??23a?@?????D????` ?t?4?s?:/g?%?N??2Z??? ?Ip??`UiAC8?(??p?)??V??2?`1 +??J?????/g????h???D???FO??T? +ya 6??????We$??)????,?N?V??`??XP?m? +?x?Li33??!? ?H??=?s v<*?m???\??????%? +??!?x?}Z????*g??????8???5x????? ????<A?[??X????L?[??P?y???????j[?????v?????u???5?* +?J?F??M?ev?>??g???|?]lxx??????asZ??~??W_5?X???T?????H ???rs????KK?2?AX?g?t???A?`?? 7$???$H~x??f??????????????????????Jw?????D?TN?????3f??????-^|OA??K/???LO?L:?Ye?UV?O?sl???}???Y]?????? +????R??Fp?Q??[5|U?M??v/?D??C[???9????^??Y?????2?2Q?E;??b2??>'?(??s??q?W?t ????`???n?&???R? +?a??Z??~?|t"??7??? +*?I??xR???t4?@0??XL?????N95???>k-x?^?t?U??Kz??K?jW:[???fy??6???!g???m?r4u??:l +?????M????V??v???*W????P??Na?I???f?9???????????XR?w??=a]?/?h??)_F]4? e?Z?kWIqn?G%?}N? ?,?No:K???nc?b??hzc??????j#?W?{*k???tn????Nkl.???K75?nP}??M???????sdwv????Dl&Lc??>??_?:???f????#???>?L??/??????3?????f???????????I????R?[ +A~~???]????3??1???K?=??%K???????s??z?R?T?????#??d???????HFd?9//????y?F??@N??e?>\???9s/+{|??#K?~O(??????:COkVYe??)??gy???Iu?w?I??????+Z????W?(??~'Ji[? +uE????Y??!?.?????o??=??????? \-o?/????~*P4s??? +?L????~`??B? +P?c?Cm?1W?Zjz-??? y?m??uikq??Xx?.?mp???u???W?V??}??R?has +???0e???=T?l&5????6?0-? ??Q?7?Y?=???X???A??? ?????????????z???-??65_?????~?s???rn??/????????/???]w? +?v??u26?+k??9????O:t????{???,[v???????Y?>?????.?ss??????????k?}e?????pn?K??????~l?|_N??ee??Ys???D?pX?H????_?????????R?_???Aj??-? +~?AUU??????LSa??CDho???@???????pF????{???x???-?????????x{?~?g?4~V:?U??Y????;T?yc???KRL?P????????????#il~??G^????Y\Y;???m4?e?~?_u??+(???+??a?? + 5??????/~a? +?Tj?H\B??;g?????w9???w?4w?DA? +A????7>?l?n????+?f?????|???????{?W?[Pp?L?????7??3??cqq<7wg~?`nn '2q??G???'??9?Ye?UV???~???/?Y?????????M???<?????g?)?9???s???.?W?7q?b?????L,?g???Zil??????????_{????NN?????O?N???o?)4o?s?>?`@?? ?yy???p^+???RR?^?}??K?R??dn.? .Q#d?5k????%??q???????%%z??d?/\?@Y?O"?K$?.^????O??? ??C??{[g?88s?'?????K?s?;?='??kx???*??????'^~??x7^s??????????????)~v?v?G5??=,N?l?????\~?4~?#7????d??a?C??3?~<}????vM ????V+?s?????Lx=4??3? A?x?8?|?3???gp|??b +q??|????Kz ??? ?%?T?^???? ??U?lRa +J??????????N$??h???1????? +?X??? ???O?????{??7?6???_glN????[????Z????:??????,*?H????a????.?x??Gf?6"H2???5k??9yycEE{ +?s??EENA?`J?o*.?J???F&????`S"???e?l?????o/(?????????????????y???=??;???}????*??????????.?\??Jf??Y??I??E=~?p?0?/?u?QO????QA??0", ? J`?C??!??6?(?9?/?[}&?W6?? F?|Q7?E?????v@?????xp7??}Q? +;??F??????????????a?M:?!l???aG?C??yg0?D?.I6???`??w Q?????????????G ??? +?$?x(???B??Qr?:1??:??7????? ?????O>?d?????N?)?????b???????}???8~Wq???]????SEE???~?????cW^???k????L??H\?HF???R?A?????t???????p???????}F@????X???+?[Pp0??*???Z+.~y???,+;l6?K +>??LN>u?????K?-{1d?UV_+=??~??p??p?F???p????z????? +][?]??>??U7?nn????'?E?o?n??????r?z?B?L?^.?????P?O?R???:??????1?~??:?2#?OG??)????o??zC?`?k6??>k????m?j?q?Tcl??o?V?1?3ip?O???]bP???M?62D???????l?????*?Att??Eq&W;??f???5>?E=??7??FZ???-J{?q7Y??????dD??#?;L?Q|t??*7c??`?c?wY????:0??YHU????P}|U?*?1zU??2??-??R +?c??8?I????a W??wO???pY????m????? +oC=????U?[??*????;69}&?k????M???? +?Pub_?-?T?G????)????r `??}?N?fq????????^???~???????w??f???\rKI 9g?.''&??j????/?????BI$;??^^??7???`i??K??v?$ ?i?\X8YV?????`??  t????]X8??GK$???a?t?L?/??`^?????7o~?x?FVYe?UVO????}?????J8L?????j????-u???u\??VB??u}C?? +=[{?5?Vx?,-U-??-?M-??`7?p????????*&??@ZDh??(&>????? +??_?nm??? x\??svO??x??????????9~?????#|? +g[??X?6&??F?=?:??y?v?:hub(ltw?Q?h???}0+=?? ??mtu?\?|?h??? +??u???m??;c????\?i??n5??_???U??????f +?2?]??:?l?70??"W?? +??'h*???????o[C?????`w??????gs]????-??[???6om?b???f????????=?S???+??k??"?????O??????P?????6?Kf??????O???????? ??^;????5k????(+?]?|????Hr???7+W???L?3g?;kV27?????jy?y?????????.?g %?M??4+???????u.?F?L +?6?g???ES???##N9Z????:?m?Z:?yL\y0m2d%}??iO?x?????L~??z??m??U_??*????c???w?-b3?r&6?Kf?? ???gD?}?e?V +^t???`?o???7?tw?T?????h??5 ????uV??|??r?c?%??{?????!???E?[?`<7w?Droi?s?V=?x?HN? 4?P??????/p?Ye?UVg??????W??1}sOuCw?b???osS?f?]c?5-??[?j}??????:3?E???-m??m?r??mfT?? m??vmm???MW????)??ei74??al@??t[3?`48i???wg?F???/?E"-?vZ?f1~5@?dG????`;???`?5?=????Z?lt?????'n?6??}!?????? +A??zU0?:??????.*???n?g?z??n?]?????jG?.??? +`Z?=S!???fF?? ??gQ?wW?/i+5????l30+???MO?5y?B1?t???w?{|N?5j?j??????7???1????]??.???T?a??????6?????j?o5?+??q??6?????-.#???? i?.??????Z???YY +?zt????n?l???l?V5?q??i???z{?7:l?d?????mY~?b%b3P?C=???^x!??E?????~??p?f~???7^z???^:??????}???????~??????O??????7TTX?????u???1???k_Z???J + *??RX???U??{?w??F???T:?n???????}????UVYe?y?????|???f?ihxp|??????xhb??t?1?M??M?????qs????]#c;?EOL??N{,?5:?sD?????`u???cp?|p(????c?,??????113??????q???????q?????]7???=&?N??av +c?pN N?0????P??,?Y? &???C?:??/???:qL???i??4CM ??????=;3?C#)?????(???6????????? $; ,??g???#|z N????,?p? O?>?=?:?{fp??)q????g??*F???????xB?$?`??S?C????????o?}4??:??????????*>|?p*?J&??l???v?n?4l????g?N???}?)??j/(xz??'??OJ???????Uo]pA4/o_q?.????+Gssm?c?w??~?n??]vw^^8'?????????????>???*????J(????????;??UC???S[??????N??5u????us?Z??m&}??o?2V???????A{?A?eh????H????r????8??P?*???|?{???c?A?]I?c^????????y????????y??) #? F??%????A?y?`,?66?c$?#??7u????j?J ? ??k??7?gz??J?9?????????u?ZS$?a8?sH-? S???l?I +;?9??kD???Iw?????x?.6(?V???s?7F{?/U?????R7????,?S???l?? ? 0????b?~??91D???R??p??(7?l? ??%L???Y0< ?4?U?%?s +??J?7GPP?qA??i??55?]h?9s?VRp??|\?R??]8]???5:e??C;????1?rS??\?? ?? ?3?G?????c???sz?RU???U?CKu?Ug?????k???&f7?? ??sC?K??\??|??~?s???????-~?Me`??}?Z????????n`?y? ????B~????~|????????????o?{??|???~???7s???O????????z?;???????? |gN??Z?d???H??????+??3C?? +?g?????g??Fz????q3?;?#?????j?SW?Z??rVP S????????????T???????????e=???,5?'f???^?-?L?/??w?p GG????%?ih??~@?q???? a?? G8??1?~]?- ~?En???&??????\_?????qTk?????sbx~?3?3+?Vz)???Z?????i????? ?? i/?$???6X?V???~????????S???l??2K*?~.??U~? ??,?)???????\5?z?%?H>??s?5&~??f????.??`68p??'?<6????K??????6??O?v????f??s???-???????G?cc????'??o??????Io????d???7???? w?????????4?2?%?!Gp?cfT???sd??s#??f?NR"??f?:??:?o6{??G?&?9??????9???6???Tv??2??'f7?s????&??m&o ?mZU??v???0rw?ow??????s?????????sV???,???"&?O?_R??g?T3?3?$w????s???1?Q^v??Q;zz??tE(?,? +??0???$????-??G??1?1??/&? m,????h^e%???^?V?????F??Gd?b?~???7??W????????vB???O?v?m?Zm??'????`???????g?w??G?>??#_??????????AW???u?/?`D????G>R????q?E????/????%K?,??????????????????JG?+??sIGh????9??u??Ig?J???K??????]/w?7(????????5HF&???`??J?@?T??Z?~??NL?&?Y?*@?B?4i??J/?Oy?6o???;yg????:???3 +?????"?B?{??$?`??????0??8r??fk???A???????H?????v???j?`?o???o|?????W^9?3???_n????Jg ?eewJ????rS?J??]?3??gG?U??\?a???f??`??TE?????UH\I?h?A??? ?~f?? +?3)e??????{?+??uo???[ +??????2???[oUUP +a?y?@ ??r??????G?????w?y?u?]'??????={?????? ???*ya??%Kg????;???G/?X??j? ????Lp2.(T"$?P$9??d??X???S??R?J???b???f%??d?/Q?B??2S??t>%V ?? ?b?66?H?? +Q,-??RXu?+?????U???P.?U\?h?j|? +[\?@?T?X?R??????=E?Q\??J?Hq? ??P?????????!?!+M??q?'??44?????9Bi +p?Et +?'?????ukA#s?f?? ?? ??`?.?a&??+?\????k????|E??r? W +R? ??d6??Wi??????j!???*??v???1????[??? +2?Y}???%?????#?K????R??? +R?l??1RL?t}?\??Vj????m??Y?f`??z???{????g?96????6??B???O??????7??b??c?????????0?F??gt?XCF???gK?,Y:?????w?{?4~??R??7:5?.k) +?j?+?R?]??R?????rKV?R?W)?9?U@?t?RYl?!(?MAi?J[T:???]^*?{????==??u?+?JjW2???)?=(#C??J[R???q?J??]i??ThW???r??n?:W?J?W7+?F???j???[??F???(Xi??y???????Z?v???^? +/?js? ?Z? ?????\T{K?jKm-??K?????^???t+M??Rm?Ap{??^?V????Fg???jw?^oV????V??\k-j'B??R?.i?T???UwWj?F?=_m/????X?W??B?&??y?^T?5hWk????jO???p??Z?1_?[?v??;Y?H?~??? +/??sRA???1?o?r"[?Hj[P?????E?'|??8_I????M?M?????/\?v??0?y??]??7?|???o?=z???[??7?t????? c??p f?E???^z??W?!?d????\?_??? Y"?GP??C?????+?j???d??[????-?L?b?9.?+????u???9[???Z??pZ"?q\?s%????1%%? p"???6?15%?E????? /l?{sv????2?????c7?; ???k}0?{y?t????yG???te???i_????????S??|??FwV?E?????0??Sa? ???3???B(?\?.'?????8????\?9Gk;?' +?4X??????6??????J??F??Q????9??+5??]V???????[&??b????q??{???l^J?? +?|??x-??\V??$???C??k?M??fR?\v??????????]?4?w??[??/l|?3@??/????|??????.36J!l~??,l>??V???:t?k_????B*?Z????{??????SO????3??G?????d??%K?"?????W?????Y??ll????o??[?~?k?T?g?A?25??L;u? +????^?.o3?s????;3????ab???cn3'?????? > ???9k?????? ??td??i? ??S>????JG?k,4???0?3_ef(W?? +?Z9pm^? bi?,??????~=??^k???25 4VzI?g?3??`????!Xm?X5ct ?u???H)i_n\sv???J?k???~????????f~4??g{d?-??~p?????x?K?%????YX????????????[nY??h?????6??2vK?1??w/03 ???;????'C???????Ky???a?Q?`fc????d???7?^??????gov"5~?nt?$5~????1~?e????7k??]??\l???=?Oz?5~?????8??oD??4????????U???g7t0?&\??????O?>??\???N??pB???%?????????Y1???c?t??2????V????i.??saz??I?q? ,,w ????9?Q??5??s?-Fj?S?Z[??T??#???0?T?E????mh?B_n????????????dbY,(%g.???.?|???????N??#2b?n?G?c??hmfU?y???????V??m?yK???{D???3??Cd`?u?]??g???F??l~??-l> e$f??#??????S?lw????`??/uc????,?H?? +??2?s??ht??x?Xu]?N???uG?U~???~?k"???+Q???v????YG|????????3 +??3W ~?? +/}e???????????3????X????w?}7????w?????O8?l?w???,?d?a???0??^E???;`4a|?*????X???pCz??~????oU??d????? ~????S??S?k??????'?i*2T(l)??^????#??l?+9O|?;ix+??:?Nlq'?zR??y?6??=???f?M? ?@???|????f35?X??US?|?Q PS?!0????4?r?-??? ??6???9_O +??`???{????=?+?RS?S?I??????a??B?G??r[0?.uD?)???? +\?KR?Gmp??6??X?_Kp3?6?+???????B3#c????rC1G??:??Z/A????A?\?9dx?X??V????????D? ?Z??1?R??hs??????]?O +?>??????j???T?u?p10?????1+U9?Okc +??????*R6??sk?r??????L. +??j???? ;*?o??5r???7/???fl????IhZ!???g???e???oee?H?:B^???F1?s?=????e?hX?c}???g???????g??Kt_????????~?K_2w??>?,? ??= t??7????????,Yz????}?2?? 5? D??8??p? ??B%?`???8A??RA,?q??W?=B???l? $?@???B .R?WX?N sI>??#?)?K?I ?7?(???QP?)D????r?b,-FQ,??bY??L?s??s??i?[Y1m???bY)NV?@?y)m?? Q6?W^=???aR"?]???????4%LI?K????J ?W:?T?? ??l??S? +??u|??X}?R??F0W????B???*d)???\L?*^oW)%k2*????RZ??B,'DI9??6 9??qL???9L?bRL??|??i?(??8GJ?rC.?(\?#??f9N*I?&??&???h????9?Z,? +i.?,D??,8U?? +_?s?0%9m? eJ l8A?t0Nc?L?#? c??Fyc?t? ??2????3?o?+??????fv|N?~?&????6?q??^????????????@Q2 ???N?_??}?Qc?????91???#??b????}F???3???_???N?[?.L?Ay????? +:0?{??w?i?5{???t?~??d?????????$??%?????????Z?s?&????gN?5?? +???gr?+=?7iF&'M4??&U(?F9d???U?(?????j^?r??g0Q?????{1????4?Bm#????!=?!rw?$?>??R??;????z?????\\??????jO?k??k?0X??\?6??3?w&?`?????qv???????b{s???????{3???_?0? ? ??f??k?F??RV??1? f?????R2??W?;????*2?L????L??7??V????q?+R?c????O9gb?+??5???????U?????ltF?*S????|k???????????bqe??7 ??e`??????????-l>K?n??~?+?_? +7??~?l???&f?'?O1?g????_?????????o~??g?????-??O??tt?F +? ?????????F?<0??3&??|??????c????C\??|??????????H????v?b??????9?'??????{??^???O???A!4]??h?61?????n z}$lkZ???S??:a????r?>?]???RS??]??:????gJJ??8??C???3???[ #g???0??????C????(??v/f;????;?y8?w????i?????????io??????????????'<_|????O???B?4??%?????~M????10?k .J?6fq???????K&??6p?[\???G[??b???A??y??e??d?M?[?<??)m?? +???3?l?Gx??????3??9w?3?{?^!?r???????hO?8R[?6 +???b???O???Z?s???`+??q`i}??>????I)t???S5%???w/?j?.*O?'&Sc??(2??A~N???? +???^????4?e?a??_ +?l??\(????\?5???e????~]i??C\??g??L??x???n? +lyy??f???? +?.?l???t??_?w?q?u???????w???????N?@??N???;^?Y??/9???=?,.?????.?????????????}??w?????????????????w??}????_}o??????{?????}????h???????O?????????3zMc?? ??L???????_Km??]?e??7,??????????? ?L?d?N?gFG=???f????? )vv??????}v??2I????knM8?b?9O?IW?*W?Jg?j[b??a?9Z??r???2????Wz?35??l??^K?3?? ?3^N? +?????T???O????? Hx????&??0????N????y????Z???&?~J??????i/j?Z??( ??????I1\? +? +ul?Y*]????n?T?h?k???Y??^lL_?h??:????1?'\????=+M))D?p?2Rl (?????n`v???q?Z?Ji?s???&??@?n?E?????*l???#>?????d?R??s??+??>??>?m??u?M{????U???3??_??????w??q?]w!;6[;k?f?l?????????Fb???[??p??7???gx?????Wx?K\??\??}??P????%??j?z????????????????_??E???w?6????|??+??g??O~??-[?=??????????????O???_?????|??7???h?! v?????E?Y?Y;??_?E3N?/?d????hb?9???u??????g????#?r????Pf???g[??????-?;?/?{?????[??]???[???  +???????y?????}??[??????????ov???_????h????5??uj???Y?B?l??J??4N???e???N???.'Q m????tD0??js?????4 ?;hW????f ?x9 ?~;j?[?,?n??a?UtZ}^??N????X?????9???LN????>?q2mr?'????)G?d??+????C???e???Y?&??l????a??l? W_?S?????Y????F??@?$M???E???zxX??o??8?? ?9?%, ?raH??w"??!h#???NX0???e????I??????9??af#????b????'N?P"w??5h"??I???_J?i#c????N??`^;Drv??i?>4???v7??ZK???[],?????w=z????O?ql>?v?~???????->d?I??Z????p??????y??G6l8?r?}K?>???? ??????NK{??????????M?????????-\x?\nD??L????))v????????^??2'????\>??zx????,?????bN?????w?1UCTUo)????/m???4f?J?7 ?b ?F??Q?Y?xq??????H?W??]_???t`8????]??o +=X|??????a?9????????N?????86?????O??q?2???=?????o?????|???3????w???pV? ????/[??o~??3?0?P?h???/~0-?@~???V?????L?]. =}?\~_n??6?"??t4'??? n?4&!a{r???gZ???ft??C???????/~|??_???????a"!?,?@???????=7y???SD????8Y???,Eeq??DF'??c0???????`Ki??(?S?C????6??Arz'?? +{??'?3!?n??;aamX}`?K???[??>?+f????????69?I5?(?j#k?t|_l???@-???~J???????$?E?;?(????]%U=?JUaMoIUg)a1??vC????J?5??-?????;??p?;?7??03?????s?=???I?9Z?!?????J???/?e?2?3;????????????n????? +????G32?e2GB?????rs???d?ee=??soj?+K???5?????]4?PY?????]2????#????t???g?\Zzf/??2)$??{?f???b?wKq??R[???J???t*???*?????}??!?|:??] ??????:?????u??{n??)??-?=|*?{ S??pi) ???H?;???u? +?????=~^/??6??????s!?s[,??E??F??B?:??N??."??yKM?g??%?V)???4M??^F??vc????????K??????B5,?o*?????s?7???wsS?T~?*8????)[???'?_??n ?<]??p?? +?k +???eM?????=?i?A~?????l??"6??? {??956??????g?N?_vL?????}??X???????w????3?????<2?? |z??/fg&$?2? V?"H at .?????????????jH?>}O~~H?xw???\?c??????[?????@FF8+k$%?W^????OO???E????????/X?7)?/???r????????s??q;?6??J??v??????T??V?*??/a}n?G??????,?RS$??elx???V[????9H(5?q~>??????????{]UgQE{1n? ??,??5h????6?>`;XD???u?o?G}??}??=????s?? Rl?n+;???????}?????|p???V??_nKIys???[????? ????rs_???&?{????????8??d7?xD??0??q0+??<??xs???gd?2 ???d??W?????G?Ny0;??U??_?t??ge?8w?1????????f???????????????^~??&1CU???????9R???5dgY????u?????????FU?VX?E??????2V????{~?V?V?_R?????F??R>.??fT9??;I???bJ?z???~?NH> B*?EG6?????U?G?b?F?n\M??????z?? ??Aw??? + at Y?????W?,??????]?????'??l?? +??????7??1??A_???~?S@[???AoZ3???C?8W????????3?????I?bR??P?N???S?7X?Z?bR??-??????9??(????FS???Z?^?W??76?6c??W5^Z??F?%?@q???Z???? m??m at h???????3n_K?????~????????]???e^??)???????dT.???+?????{SS?Y?????? +?61qwJ??G???????????\?VA?????N~v??{RR??B2?v????dSb?Y&?##?????????????=?????????'H??/$???>??7??_}?h6?????u??nkEM?&???5??5?%j?GKt?X ?R???^? +?(???Z??*U????l?U?????}u??u????K?5??5??JO???????,*?i?UH??{0Vx)u?M]????g?a4?M?*1&??j7?Y\????????V\ir0[?????X%k#?? B l]???dlT????5???A(???xV???????Yg?????p?7???? ?U??zqU'??? ?Z$?o5????l?1|???6??dg???s[Pe;???N+U??jkZ ?????z?P??o?jM*q6Q??3=??zMe?:?? + +?g?????R? j?(??D?N j?A???Tj?J?W^???????o??{???????????rM?v +,??l????B?3???c?m????El>p????? +?? -e???dg?_????q?????s??6???\??+??^j?A?e2cB/?=??`'??????5k?_??Z? ?ss????>?????$ +??3????=?q?l#?v?LD??Q +` +6`?@?'q +?N8'M?Qo?#F?D4?}?3sV?et??E' x+?[L?=?H??l?8?'?8m+kbG'G?????GG$????. .???G???tT??v>??>????3|oo>????^?9????s??????^?Q(>???/???????2??L?BA?s??.?? ?/!????c???^q#????????HM?w?$,???`??.Zt?B?LL? HH&?e?PJ????;?Ou??fg????????,sr???,?b??Wg?????????-nq???E?y???~?UUm???J*[????7?&?$:?? +Z????????b??cl_??b?ywWaUwaM?:???um?ZPM??????????M:DR?7??8H??0??M? ?KKY?H2??????h! +?????t4LLln?*?#?fCU$?y?\?/ yu??6?????f}E???M??f??7???5? 9!?M??&C +8->?!`??????@c????RBS? ????A_-m ?? ?g7?? 9c??;?X???????RR4???W?j?????SRh?lwj??+W?????**KN~j????$wl???f?Of?KL?f?.?fd?6?/??Hn????????????j????Me?%?-?+???YGu?G?Y@????1?SK???ge1P~?R ?Qh??t?E6&?Y?????GO??U2?s?i+???x(?3??79i1^?S?????PC???X???l???s*??hA?~?mn???o%?a??I?O??&C???~?J,??9?a?l?????NX????m?_??FEG??????M?!+V?fQ@?U??SO??K?Z???7?srD\?? ?P?9h?U#l*??gI? +Q&??,?%???X:??H? +????Q??????~.j??_M?? ?`??????ulp???1Z?!???l?ql>?6?_???9??e?ovn????>??d +??????????ge????2wn0=]/?9?N??l`2??yyO???v '?)(8ZPp??????;32^]????s????d?pj*??xwv????))@?/\t?'???sYY??#??KIy0;{{r??33??7????? +???#7?@i????q?[?.0??g?Q????~2??]????Z???L?~n???t???,'?_?????$???p? ?A?????Y??o?}w?????#dGf?o???????Lf????%??~?E???Lb"p??Y?[NJ?x???>}G~>)??MM}v??G???????fNL?B??r?[??0k?YY?]~????>9????????????_?|?? + +??]??????|o???-nq?O?????:a6????+o.?T_T?\R????1?:????8???B???&u???J??? +????7?}?)?n??3?E??????0bZ +?s?~???(???F??????@ Z=??=???~? +?[ B?:n8???v,???"?[O???'??I? +M?)p???l?L???????????p???-???I?l?Y4????\R???6?L?gZ?g?#h??????????|???H9? ~6?)ueoi?jCMoaMwquW)???????????????4?o-?^}???'?x?????y??????h?? ???~??????????c??_HQNJ??? +0 ? z"7?7???e???||??\~h??grsMO8??.?????LN???T???P?2?Kyy?OM}s??G33?9???HA?CYY???;??{??O????3?t??????????h?????]/??h?Qc'"s?B?X??`?k???????? L??S???8??:?p:Ldq?$$?f?t? ??a|???!Y# LN?s??d?????4??? ?% +?? +?m'??ENE??Z?g?p?#a`4????Lr??X?$??Z?/u???G??X????%:)?q'??????$i?c??????`???p????' ???????_??b??xb??m??????=????????Bn??\?`V???<:9?A:d+?SS]ii?Lvt???.?xz:?%)??E??]?"??|??iY???.?|oRRB?A?U(???)?&%?r??????pf?????b???t?Lv???~??7&?E???ii??O???????g??u??????&?g?u?]??d?y;m??7m?q????e?F????m&O?a?2/e?3f;? +?m??7Z???X?\x?O?H[??XAA?f?c>?'?a?dD?34?e-?}???Q?0usx?S????????q?A?-d?? ????uY?c?,?A?!???0??C? '?4??????x????uZ?06??l??-?A?7?v??a??VG???z?n??????-??????D?38??y??!;?E?BH????=???:Jjz???U]?g2?Y??{?m??&c????h?^&?km?37??ql??v?~?G??@?e??o???/???V???9?????/;??k?|>a??_ ?r???w???????????l?B?O?fLN~|? +????????? +??u???n+k???? ???|????b ???u?YO??c?yJ? +??i??0?El?3???-h??T o??????????J???AQ{` ?????PC??-?P?U?5?#???Wx??6 ?#?2??V??r?? +??b% +?????Y?#??????(I~?E?oH#{ha?`??^??$[`?1??P?m?NC??=?X?9???7z?u??#?{aP????7"1??Y??C???7&Au?~]E???????Z5?CP?'??8ca??[?????5???????? ?^??????uC{(/oKA?????99??????6 ???????*???2?O1c??????5me5????u?????w????mY???_??[E?}#?P?f]n??o1?c~?????>?*??w?YDh? +k???9}???^???"C?W3??????-?d]e>????|??u??%b?????>W~V???|???????i/?z?g"???tl????6??.CS?j??m?a??k?????F??hbmtO????M??:??Yl???X/;????^vz???,????O????????i??/=??+'N??B????????????p???f?.????QR),??RA?? +?R??'N<8}:?t?@?U\||??}%%vQ!?PRE??|? +G.???J-??????S)(?&?'YZ&???L??H?),<8i?N?"?P??h?'??0e?cCC'_~Y?b?+*????Zi?????u??j:?kR????m?N?.]?[?9?s???????Q???b"6????W???mSA3???lU?&`??~]??????"?????^????????S???????????Q_?c?0??M?7??ah??)?????seE{????1?J?5k??X?#7?z`?mw3[?)s?ge?????^?X??_^/;{??)????|??o8a????*.~??KN\v????{ )?x{??)?????? ?L?????[????,y??{????-????Z???~?????\???Q????u]CWU???I???w??q????n?V4?*Z?8g??vh?n5V??*p???????????d`KE ?f?9e{m????%K???!R?f??@?Ux?{e?????'??? +Z??? A +?bP4?aFC4????D?h=??6?]?V??=?:??l? +T??Y-??Y??7??:???Y??7?;Uh{0??Qj ?6[??@5?=q????%;?DG?????Aw?Q?Z;???????v?A| ? ,$?v?fw(????4??#?A +?5:h?z?C?~J??6??c?????>+??6?!?????????cT? ~/?#???-??$?2??F?'?0d????l1???x'D??l??[??zhd??,??????_W?W?|6m??-??[???h???+J[7v??????u#??j???mw?#?K???/???2?]/???U8?p???)??S????w?? 7?%LF?^????`?z|\ ? ??B ? +????3Y??? |J4??'? +??q??<?n?? +E??c???Z??8~??`??X???`22p?f???D?'?? ?V?/?C??h8?p?A8t??P"???C??? |??wP, ??Ax(??, m?-???A?va?+???????]*?E????????`?\??? ?&_?O???d???????gu?lF/|????b|???!M^?`??=>7??@?'???~>?E???@|`??x/g??Q?/,??0?9????????|??????&?!??!&w????????r?* ;????????e_p? '????y?2?:?-??]"??T ????x??IH?=?Y?g?~?_??????f???iR<'?zzb????H?lka?????2????LNt?????/Zt|? z???????,X?7??)??;~????p???99?Tz????O??[?x???&??$?????/*:4e?o??????{V??,??Ye???Oi~^???.??[O??Sc???uhl? ????????h?8;?h???I?8?wi??ZW???x@?x?o????CCty??q????#U`-?-$X?40j??i???-$???yz?>???????K??~???z??} ?H? A???)??Ac4r :???`r'|?3?c~??qj?)??^C(?sz ?13?~3?u +@>+?71}&?7?>#?+?9>??y??m?r?5P}?????&Zc???\/???}q??bz?'?3?#?H????mf5????????`?/p*?h?t???_aEV????????????7?g?fN#???c? ?u|?#|?YAN?????(8?*=???? t7#PT???\???6?n/??=^cP?Q?;z?B??a?[[??????v???m??$??X???a?W?U?a?IXU??N?:]??s???mw +??+wz/????/\???/P%G:?}????wYo? ?? ? ??!b???~????#h?~??K/E/??? +?D?J$?2???bV*???u?=2s&&?N??5?0????\?_S?/?7?'???~?zF??q?S|?/?T ??>L????k?????:w?? R?V????FL?0?jCOe?s??j?t???n??,N????6?4xc/V+Z +v)F??M?j?q6v;?M*Gsl(???v?j??J04:??|?b??m?q6C?k]??F???????9j???4?s???S/kO???H?????R???~?36??6?8]?m??[????:w??F?m???????fN??D?V^?~?????16??y?e????? +l????u??M??^[???p???nKe?????+T?`[?SJQ+a??+??_ ???)?ed?n?LJ]Y?aC???A[Y?_? iZ?~my???????????}??{?l?i_?????s_/;;1?< N??~???]?M?$g??}??C=?k?????bP??~????= +9??A????uHjV?8??q?N,Xp???w8?? ~y?5???.)?h???g?J?pF??_??u??>sf$'?????????c?[*?,??5c???'?A?Zs +?x??#?\???eG.????????????e2?L???????????7// +?????'???^?Ye???J????c?p???G1;pQC???????uJ????U???kz???KS?V?g?7f????i~f"???77?? n?TR'?;??B?J???)/??V?'8??>@???ZK???"fo???h~6??C?? +L??n????T???7qm?#Q?v +??V???p?@u??M}xK??????.?g???5??????(e?aR???]-jW??Q?aU?????v8j:??=1?m??v[u? +??`??????1?v???zP ??;cC??y4????*????p?oq???uiC??l?1?R?;H?xC???7??L?8r?r'?l???M???????a?5?n??}se?????5}?L??\?+???????,'E?9???n]?fC???QWI?l??k[???-?p~??^??????0#w?Z?*????e$?z^}???}?*{??????w??}??z?)??~t}z?z???#???drw?OAD~???_?5?????T(?l|b?????99C???r9&?? +????????H???K?paX.????O?_????????o??}a????p???C??}|??/N??J??????99??3u~?|@:'g??e?}?????s?uYe?UV?^?????Z??W???J??]e?=eJ?????Qn?????^ +??-?W?y?9?Y?)~YImwlT9??.??>L???s??n?P +"-??L~??????!#???7j? +??!Z?l7@??????` +????q??P?Dk??6??F??????Nk???L[?????n???Uw?????Ng?o?'???????G?*W?h????R????????O8?0??[??\ ?????F??vK??? +?????l?mH???????gF???????J]`3s9hS???LYS? Z?????eu}?????U"??i?fY?B?]???'k??fFv???????z?_??>y?> [??-??a??G~??'?}??^xPy??H???;!x??IH?????~????z?0{6!?*?YX??H?"?d>?,???u???\N!??9'?????? (??H7?*?@?S?n?0a?B??? ?w???&N|??hX*?!???5?D?p!?A?R??????????ha? ??\?`^?=????F?????e?UVY??+??I}??B????g?R????&?wZ?????????????c???H??f??i?T9????^W-???G??;j9'?oI????L~?51M#`3V???uD ????Ca ??#??Z?????`:?U??h??>Wc ??x??N?jH???(?????v6t?M`??'c?A???1?_????n?O??P?wcc?y$>??}Q?9?9????fK +?P??w??'??5vU???\f???ge?zeU??*???????s?Z??:]i??A~>??k?'C?[(??;ds?s%%???1RPp`??G?????S99|N'???G???????<h9"? !H?Y????>6y?pN? ??5???K_???C'?4?????&o???O?|??e?UVY}?t??o?6???4?7(Uk????7+?n$8?????g?m?s? ~??V?W???D???l??-?????N???V[E?uC????Q???0!?'Hj??~? ??!?????qhK\K5??g?????l???????o?`J-??#?Sn? +M??D??h??u?.?#?(af;Mt??l????!???mI??`? + ??5?b??`!??~?h~n?){??P??z?E[??sGt8??l8?d??I??>?.?91??? {"?????+?1?.=!???b at 5?pPxzm]???????}???q??@???7W??Tj?(u?J????=?Ci?qm?59???????l???T6??????XR?\?[^???AS???v??? ???xZ?c/???R?o??}??e??=22?]/?+?S;x???V?V?x4?Vw/t??w????'?????~??W^y???_??/~? ???x?y???'?m_??X?!|??? 4???t$??? wH?b4????%?i?%??o?i?w A6?????*????P???<?L._?M???x? ??Gq^??.??????~????H??'????$?ly]?)?8.?'$ ?????????P?O?:? Q?3IGXO? +%?NP???^?@P.<?HWhP??@??t?N?p + +zRA0?s?A?R? +?<? G LE?`tH`??'H??`?O:?? +h????PB?=?1?????????w!(??n/??=}A?S??Y?@?KsD:N?!??h"2?O???????????????)Gx???????Jb04? +????$ ???(`?a?J???+?r !7??T???b?AH_2G?2???9?rA*???i>??~???xQJ?zc???????c????+?C?9=1#?^?WXb=?G???-? [?uUb?[|6M/??????a???BN?S??k??U< Wt?!R:??????;v?'O~r????NH?5u*?P???B??HF??wyR +?{/????3????\?#H?@??&L??????_\y???,y??H? !????iON??K$???%?????/M??!'?2R)??????????l??/~?????k? ????????*? Bi~?? +K1?a'???U?????r?jM??fZ@?Lou??j?+???u}???e?G=????ZmY???N_Vo(?}(0?V&?_]?/? w`???X??s???}x?`?My???@\?????sv?]????5 X?RSQ??P????wP???(u??:H?Z?N?i=???g?t$???g5I,`MgJ?g?F9[f?8??????????U???M?j??t????e?:u????5???y??g????c??f?^6 at rv?? ]?ztm?Lk??o?9????C?9r?????? ??u!???? ?6???AJ? +??y???N?n?I?b?g???h??[ +?99???A??????|?3%%?????h?c?_?Y??TP?=/???&?-(@?? ?Cj?????PN/?rr9xD&??K???Y???|??)Sv??=RXxw~?uu???]???{??????g??_g?9????Z? ??????mD&?S??B?3????N????????3?????2???x???LW?????????3?94?"?T??A????Fl??O????=~?A?????C +?M"????O?t?B????n+)????^v??.|???? ??B??\?L?s~i?????????H?????L??????R)??????/\v????=YTDI$p?? + o/.>?`??i???????=v??p?U ?|sI?S????.}r??_?UVYeu???w???????l?'????????6??g??y???????9?????YDh??!?'???>??srm??s???k~6?-g?3??g#??~]u?VU????W??_?N>???y7?p??U???rex??????fj?????;???O?T? ?s?%[?j??Ev???????+_8??.Zt?????f|?????d???????e?s:???????eo??y?z??T1??^????zt7????zt#X??d?Or???{???sO???|????????7??7-^???q????x????,??????????q?+???H???A7k????U???`????I?_??LEw?S?????W?7?L?-??3P????iWX???J[? ? ?Sa???{d???G??u`?X??p?U??pv +8{?! D????Aw???G?? 1?C?D??7???7dCH?-?'???`?W???~"6r?2,jTo???6Rn#e?n?`,?z??V?????Q?????7y;}?8??im??N:(??l???1;(M?}$? <~?7`?X???A&??14??A???/???!???|??O3 ????nV\??E?????E?6Z ?b??$???]? %?M?????B1?2?w?O?%????BY?S??J#??#J?@ +?5???? ,?(?7????(?? +y????C9??????e?"?? 0u?????n???7??U8{???M?AU??'?g3?3????????O??Gw?$????????{?7w?q#????????????+?Z????????|????/?{???;/??|??'?~?)? ? J?u?_r???K???o;???.u ? v-_???3v67S???{N>??? ?ON;m?%??t???]????<7??G? ??????[?O??o'???~?z???W???4?PC3???7?{?)"?\??U??0?/??????G'???M??????'6???7?K?M???E??? Ng?cS???B??@????Q?B??x???c?M?-pn4???2?y?`??BPx??????Z?2Z??,OVFU(fjw??4?r?lMplj?8???|?yOV????6n???4????C?@(?j??[=????}?In???W?8???????I9????W?b$?f?>?3?t1J??c???K?`???U?qO&?@B#`g??????4?#?w1,?6B?vQ3y?m????T/?????3??M||o +5?PCG?]|??'w,}???p???t="u?D?.????a???FdZ+2?????TE??Cj?r_%?6??? ?x?!u???? ??"k;???~?????%??^2?V??????x??D?Ao????j$f $h.?">m+-/M?????? ?0?l!???)???R????????-?e#??J?Ki?????4b96???????A??R????@ A ????x?e?x}??b??????s?????s??c +?-?I#)??D?s?G?!?:?Dm?W;?:?X???puq??????.???????m???r%q???>????\???LS?m?A???WT?L? ?.????u=????~?a7?PC??'???_>???.??R?3n???(?????u?L?????kD??????:~>??*?? +?J??Y?8????X???????6ZY??v?|f??????????)???g???4]???B ?$????~???X????A?GKy;??8????U??i3<X????Q??g(???>-?*?~?C???{2L?????=?Ag????pL?3?? ??????????gj6~??s?Z???LF?rw ^r?b??????_??????h????z????????63???S5????3?V?VGsp??C=?{????{??G?o??/.UcV?=?Z??]?v?-Z???g>|??????O:??+?t?y????K???? _:??????k?7.]?????? ????????W???????????g???j??7?'?? ?? +RVw??oy\????K???NAW?????k7?}?=T!??????I??+8p???`????=??*?o +~n??/@/?}??O?????/[?`??I4=??v??C?? 1??Ct?~???^2?A2??i??Fb[/??rt?)?C????+?|?? ?????Up??k@?? 10??????RV?^??-?????Hv4?????f1{UR?)$M^??!?:EZ?X??8]???*,3!r3?u????y3]?nV~??? ?E?,??z%????r'W??r?{>????r?]]u??#?t?:???z?????.?Ge?? l?;d?V?H???CF???*V???7]????^??7?K7???%??^v???????n???-3??????zt???o?z????n????7~z????Ip????.??????^x??/?hj?b??e??E???m--??l^????t?I'?q?I[/??'??_?{n?G?I?eW??????m +?)]??`]???[~so????g?????????@?Q????~^#l???>U?????{???W?D1??????I b}+?g_?f?????g*???3W????d0?????tU????????7??4????:?o?I???,M?,??2?z?? ??????J??Y??I??s"???????,??T???6B?6n??X?i??W?s?*k?"?P=?M5K ???????3J;?6sU5?G???x??h??9? +??i~?L?? +?$? ???i?b?[8???g8?????~????????????9?q~?????Y????C????B??%{8??????"??wC +5???/~?? O?,y??? U?7???L!????3?g???Aw??3????A~???HAd?g8???']?(Q??h???Su???? ????h?????q? +???????3p?????g?\)????? (4W#???X?????"&(?????@?? ????;???\?;1?????z?????-n????xl?:E:?????a?0"7???0?????\????U????l3?f?6??????;R??\??7o???????????^??wo????Nx??s?Z?|??So?a???v??M??????0??7?I?j?K?7???'_x??W??.;??d0?AH%Y?"#v#?p?C?d???/???M? I*?&?A?m&L!??^2 ?8?p????????*?q??? ?72??` ?m?L%???l???p?L 'C`O+?E1 g?D0A???kD0?9???JV??S?"??? ?t8?8=v? %}`3???F8? ???C??????B|?Bq????^?L?G??V?rB???j?&?)?A?K3$E??D,?4%? ???8B ??d?T N?A ?i?w??I??=^'?D?Q? 8???`eO?i0T??D??&?.? ?|?A?l???&|V?")???xptw??23a? +c?T??8?l?GE#?'@?n+?c<_`?0?"6?1^(???x4dt????G?g-???????????Xj??#???????????????D]=?={????K???sP??Hu???????#?????#???h{?u??Ju???:?D?E2>*?T?4?.??Ni3??jJ??? n???J.F_????o8}??daf?F<B??{6c&D ??? +4??J??0????? w?;d?v??M???7???.?O??n?+??y?##???? ?@??k?}0??3??5??1\??[??^????v??????H?0????????????^?H??7x??????????!???;??I?>??c?=?????>R5f??(?????T? ??Z[????'8?????R???*?>1-???'U????73??z??=?Y? ?Q???? U???X +???4?}???AS?D????????}???*?T???wJ-U??rR?????v?+???????) %?????@P,?uw?^??upW??]????&??~?W??#???h???^54?Q??? +?^?0Z?8Uu??p???s.F]$@e????g?x?:???&FE????L??b?4"?????C?? +A]rxLmu??xk y(?FS!?Dqscv3?tH?4Q????>???:?]??x???m?????S}e???>?z?y~?+G??Y?? +V?y????v?????? +l? +q???[?W????[?W??8??.o^??????x?????'FY6????R?H???? V#?p?F?bT?]?e?_W(????8-?b?~?A????2? +6???\H?W s?L??_ ?(]2'xR?????Zh??=???$fDa&N?m}B@???>??I'P7??1???_???p +0?B?C8??kZ?c???[j???@??R_??????2????{e???;?{b_;?????????7?|??????==???v?z???_~???_????;R????Y?N?;? +5?PC +?>???p??#?*c?g?p??PvQ?>?"?U?Z?e???Z?g?r??? Bx?.??????????m?4????? (?J{??? +?????s]??}Q?ci? ??? ??????"???AP??G??ZD<?j????{b???????mW?N????m?d?b?A??????l ?????;eWS&???????{??Q\?%????tu}???AK??+L?@?=???eG????A@??R? +??????B'?-?? o !????????9?C?D.??FLH?08??8W???9??F/??D??????P??!?d:?N? ?5?5h\ +??[hn????o?5n??sI????R????F?^?oZ/4o??2i?????)?n????l???+????\??\1??ntK??{$[w?;??? +~?????~???O>???????@?+???????8?Gw?:>???W^y??g?????uC +5???XU~??????F0?]?? +v???;hm'`-?m???U??tu:????????N?]??v"???!??U??0???zTP???!X???z??e?t?ZSi7???x???????P??$?p1?t?>.??"5?>A?????k???? %!u??\)??Mvf`?>?????H??????t!???6Rn%d?\j???Q?w???\????????????As???Ke?T?t? ???{L(?h??,Z???E:w???&KL$C?kNL????(? +bQS???j???2%?Cz@??J???Q?1Sa,?????w?0???JJ?????)?M{? ??T????=4C{I???a?x???i[{B??BK???%?tHm]rG/@e?q??r`????L%C??G?pwK]rG?????y1?Gh??G}??4?Mt???ko"???9#g??~C?R&??????o??????ko???qU??Hu????>???????%?Z[w????????_??_y??b?N??`?E?o??3??j????r????]v?v???T&?LE??h"I?bv?%c??p<?g?g8]?;?6?Z.?G?W?B?????????x6????????? +1??;?????g?????,??"b?q0B??4?????UVu?Vm{??>?f{???a;@??0?`H!@????@H$p???H??J??mo?????{???;3w???:s??? +D???K0??5???Up?"._? + +BS????Z??>?4.???6??CQ??y???z(Xx?w?}v(??????}\(?????z?4???B?????C??i? +??N ?W?5?PD4??/???YI? `????|V???H@?<????pz?BC^??wF?|?5}!??E?? ??5?#??[h??8C???`p05?F????a?? ?J?tx????tz?.?? ?N?''?B?s[5z??? ?? '??+s:??/????Z?????????M?-?y^,z? +I~N +x?????(??`>??W????????|g???_x?3????.}V?8??+w???RS???o??7 +??????>?K*?????/??o?aw??????Lv???:S????v%?fqP?????ULkl?j????9??&?v?? [d3??6???UL??iU0???5h!,F%????9Y?jR?;?l?? +?\?f?D??"???t?-?j?\k?k??? aq2P??wklr?S?????X?.??Sg??? +?\??????k?7G???F??C?;z g???Wp??S?\f??l?&k?????/?d}*??+:????b?:8j??qq??]?o??ho??????ea?q +? +????????~???x'??E?TuZ??Dih???H*}!?t??????VEQ?@??MYy???MY??*nU?? m???4?p?4%R]?T_i?P&?vr?? +???A]j???Y??.i??????? ??5???z?????*??*H?1???+???-C/ro/??x????Cw??s'?9?o??"???????s? ???l?????????4????pN??99?efnLK{t??????_??? n=??w?????~???i?OI???|?z???????J*???????????M\?sS??[??M??????~?9?V'?3@qk"??A#?%>?H???Kp^???????a?? ????????|? +?ap4???O?3o}?3????t???t]?]??4 +?????q???5GF|:s???|???6??9??????u???c?????Vy?????????? 0??Q}s???M???L_fqS?K??*=???Y' +? 5??????~ +???g;??????< +?k&??c?-???'?13? ?O?3@ oe?dmx$ ?:??n???~??Y??c???Z?"?????,?K???R???~ +??'b~>?a?d}??~*?Gm??sx?; +???g?t>U??mP?????4KY?????????:u<?kJ???????V%??,S????+w?-7 HF+??J????X?L9???X?h????u??Rf(o?BW4?????:??\0?g0{?K'o?,?i????????E?m????q??Y?I??I??}?}??/????O>).?g??Z??k'8K?s?PMX^?-?,??S???o???[z?hv??3?| /?q?9??T??3o????_???????e???X,[??~?8?G?TRI%?u??>??????-??] +??3??????????&?? Y? ?z?[t?2}? hHW?:q??o???P??|nP?H???K?F5@?z?T??O?Y??,eCl]B??"?~?x;???G?8????7? ?#g??????:D~l ???B??h??? ?i3Uu?5?t]_ V?c~5??B?h?fU[?D:@6?[?????#????l~S/^?(????-??????+.N?g?0c?c*?N0a??`k?}??^??????>???5T;fV????,??z=???Z? +U=h??h???(????em??????vMY?????\ s????G???U=1Z?1Ur>?t?Ca?*??2???] +??cE???EW?????????Y46h20j??T????\S???_g?$?3f7??3w?????????F??p?????c@?"?~M ??KC?j???L( ??+ Co?M?????C;?????s_??????????????????????????? ^??ww????JIy?? ^{?o?8?F22~?l?????8k??? +?q?S"?5+?%?lIO`??????????WFF$-??y???????cNI??????????_=v??????v????ZQ????N???UYL3????J????m????? +?4?.???p??EX\????1???Z?&????????????GZ???g2?P0?p???3?????^?H??>??????K?????c ?6???;??#?H$ {]>c&??vn??af' +5~ +N?~~>??[P???g~|???.[?1#cgn????I$?????<4?HFF?8$?G??~5o??????b??? ??{???F32~?`????????k??mii\J?}?????wv??????y('????zv?J?D?#3?????W???x?????{8_F0??? ?{{{???G??:??w???G?V???????$?'???N"?_s??&\?z\^??mvz?/? +Xh3??8????????g?>?'?6? V?:???~x?}?%],`?0+?y}{?H?h$?WJ???? ???(??~~??G???E???@????e???v +@!???A??UC??mbP? +??(?Z?*jS???%0? +???k#lz(?*o???v??a????8k,?]]?~Q7q?gG???jn???????k???)????'%?#A?%????x??d?7@?y?n ?????F?????=p???v?UWa_?????|??W??Y^?;%????????.X?9==???k??'/<&?? ;$? hJ?????yy??????????8'?? ??K?????????"H??p],e2Y????9??????& T????????o{?????Fn?/?@?RO{+'??L???;'? <\?TRI???_??~g?a????a~???g????g???i???5 ?????.????d???T?RU???g?TU2a1??}???|??u1B>???G9???? ?M5?w?R???L??+??^?d???&??lsd??aZ??g???1.B???Y????eepE???5????????#h?@?+1Y?qC??LM???.???_?DQ??,?V?-?}X-???T%L)????h@?4? N???Y?H??3?Hp?S?8~???r?Y??N?Gh?g?7??#t%??X??M_??-i????4???a"??G??[B???)?S?\?*???????????? :?K?? +7?Ry????????gz?? ?d????i?BlK?Dp +? [M;K6?s? ??G?Xl???K??? ?O?p?O???'??1w'(?????g:O/?? +iL??p??????~~z??ms?????????eg??[?J$dJ?]"y y?Rkz?Cyy?Y??? ???{??C?]??EmLK?#?/-????^X??? @?/,]zh???/???ZSR?g???.????|A?$????????.?g?????q????? '??NH?0??a?pB??QL??>}<?A"????P?U|?B,?P?x??:P_?"?AM??}????????J*????|??W???q???a??Y?sk'??-??"??? ?????????7?n???o?n?X(a?7??cVt??Y?? +??v??l??&kC??~????????k??:??%2???s???=&)?g)???????K?????f??? ?AO(???)?[]T??h????4?????~ME?uZc?Jh?xO ?????????2TD3??F>kt???]?fh?V???n?z P|V=??=:T??@?/??1*?r?Y?}~???y??E???->CZ??/k??6k&?3k??7????? 5k?y~^V?,??+'?sI???????u????o??<|?MzO?L??S"M?e?i%??%LL??2N?A?~R??Z`???S?)tC?r?=??^???!H at O>??Bh +???B??O??*6*? ?@???^?)>?;?_?B??'?x?1u:???G}?n6????q??w.????^?}??????SPpOf?xj? A?d?!;??w??w?????p?M?f?f????8c[f?33?KO?6{6?uA?RS[????+:o?=-?)??r???\???g??A???}??w??8RR??<]_?????3%??"dB??3??m?X +?? ?H????????>?/?0z?>8>??$?M*??N?>??????#??oX[???????????%6??y(??T?7??d\?v???yp.??1?~?6?J[??? J? ??|?:??? (?N??`t@?:qqJY\?{?????Oc??c??????????????K +??l7U?G?=???X?i??F?{? +?tp??????k?3??L?%?=???7?5?-m???L(?.o^W????????k??e9?U?-k7t? ????(??K=a?????9?b???TK(???|Nf??RH+????c]'???`? +?????## +?g,??A:?7|;?8???j?j???e~>???+?o???{??V8???o?6U?C?h???utF)??m?e????*n??k?????S?T?(??-???1??????PN]???~?O?v?m????=?c?TI$I?Q?r???Q~???D?v?????????g?F?f??m"?? ??Z??s??{B?????I8?b?????9????N??#?Pz???.}??s??????:$*?I4+???????}??????w???????<.3?w??wh???.?p??/h_Fb`?08?>???A% ?/p???{?/????? ?????Gg???Z??L*???>>t????s???????A?W??[?!?????TVI?)???u*???qj??=?????????y??hY?Z??????.C5n@)?LS.???k+d??V?? +5??U???}?Y?n????`?Sk??? g?????Z?????]x=?E?S????h>?IJ?^s/?r???v?R?????:??n?Vn???Ut??M????F?? ?h???cj?6???*?J???FZ????????R???????V`??e??MQ&S?wh*:?U?!,?.]U??Zn??A7???j?????\?dC,?t??n??eN??`?AY?H???:K?Q/??jv??Z?5? ??6?P?mN??????#j? +?YK??p?`??E?????j????X-T???k??z?z8Q???v}%?R(e???EW??-oT?5(J??>??B???AU??,???(?????}}]??~f?cs??]?????^O-??? +?&?\?????+?? ????PG????? J??J?_?7??P??????pQ ?6N?N?????R???????????g??fg?????????/???g???E??n???????},'E?????UW}v??ge????w???+????3+??Hvdg?j??????? 5?l?????9???<??h?k?i???2?7?N???M[??????O?m??|epr??42q6?8]v;g?T??&.??f??n????N???2~???a G7?v$??h'0~?q?? +??|?8??[? ??????m??;cu?&?v$8c??_?????????p??38w????p?W???c64?q?p??S(? +#?H???xtd<?????????e??i90o??E???WJJ?_S?HU?#?--u??r?+??b?Suu????????ZYE????O????????+??z?/?,??x?5k???????v?????(?K?????W?Sc + ?+?y?????W_?z\?nYO1?z??{D?6?hVlRm?}f?%Vo?l?l?5???>????7???K ?%?F)???c??N?n??[%???Ibj?%0?? +8?0n14??7Qa??e04[???Z?2lg??>?kY|J??7 +[??m#h;????j??89?y?????6u??????????j4w?&C?????Ac?0?KD???]R???WN?<{?V=`r +?l}s????St?,%????R?H???.s?`?f???r????h???{??)?R?;r????p^????OO?N??h?-?????_???? SV?2/??d +}???`S???u??f??2?dk???m ??????L9?^?????-?NoQuJ6t?6t0??%m6?P?E???bray?!?O?sLr?/?g???G??8@ y??ge?????\?????????e?p_I ?0?/?? ????^???oVV>?tiH$:ZQ??????=?h?O$??????????.?????????zI?~?s?TV?sOI?7?,y???k"???kee??????????? xy?? ??????jp>?n????? +??????6???0??u +?,?;?h??' ?RS? kt?P???J?MR?V??Ijj????2?$G??? ????t?C??a?9?C:?5lg?o?5?(???????Q?}?73"?ZW??:??Tfx??[c???,}?????????G??tp?;?Rtw$?;???Kf?!?z???@??DI#=???4?~??K?u?>?rb????(????YIv?X~f????????Fz$???m???lr'2!???Y??o?????R????=???P??? +?H?:??OW??????fcX?n +???C;?k?9??=?-T at o$????uIn???6w1?7?(?o^?6 +?|????????6y?&?|???s???qE???MX????p>m~?Q???i?Frc? +6y?S+Q?`;??~?9;g?|??;3EE0????Z?`?H?`U????TQ? A???!H??$XZJ +O,]?????WV?? +???q??TQ??????v?W?B-?@?????D$?D???/????\?Xe?????z?????@p???~X[;#E'?????????????:t??@i???`?4[??'???j#???->??]~???*?;??9x??i?W????N?????3?? ?8BC@(CZi=4v?+?r?l?VU?tc???l????k^=?3?9P???G??????? ?C'??hQ????c??f??????|?wjjh a>G????K?D>?? :p +a?X? ???V???%??D"=?<:??W]???K?;???6 +???L{??G???????????Q? ?*????mR??]?/n?{LY~???????m??????~|?????? +????I??c?? +????Ax????{?2k?8??vrJL??d????U|2??2?ch????hP$????C??1`l?KF???Svo?4:Q????Kf??@??gW????2??Vw??? ???d???VQ;8?el??9??? ?`4?N??S at F??3??lN5?U?Np?????KOG????????i?Ts??x??|fN????+??S??eg?'??K???????+???1W?ju????Z?4???M??D??O????6? ??????W9?m????w????` +\???sT???%??r???r??T?3????O?tU????|??}$dB?[?u?f??vvS?S t?eD?I2??????????????xuuD,?+*???Gkk???K??? +q?%??X???p?s???QZzO]]???HY??/Y???,UVf + ?0 ?y<???kk?]????\?? +o??=?x?????K???KJB"Q??4%?`??',?!?}UU??^?????;;???;?? +V????e??????u>??vY.???7??b*??&?.???:<??\~\??8=??!????!B?w??N???G]~??N%??]?????Iw?p????????*O?t?1?n38?a*?QNTkPzBV?I??+h??1.?`??5?K??J ?o???p????j?b? +s??6??+ ??5S?t?P?nP??6???2Y\F??du??W???@8??&??4}7?j??n1.????#???????y[????>??????I?????z?iGI?3K??t?????:?|?P???"?AB?+k???????????.<\]??_???????|?A?????JgI??wuu???#~??bZ,v#??B?????_??hi?w?,yq?????Q?????????????xy?]7???G??yM~.X? +V?so'???k??LE"1w0b???N??=?t?d f??`???l?O??)[(A??T8E?2v_????G3T$m???H??8???;\???3?vp?M???????M9?i;???cro?vS?Ip:?dO???n*??? +?J???>?????????C??=:E?x?{?????3????c????+?v??t(E?? 2???Cg<9??N{b?P4H? +???{|?I7(?????;2Is?N???P0??O??p??\?NNE?agl?u"r?????[l??h???IO ????'??~??y???? ?e?V?y????0?*????6e?78y???$7??r???h??e8??$`mTPI?p?i??.?Z?O8??{C$4??)?HF?M???2K??r"?!5Q?2?sN]2??) +G?AC?wK?. ?9a??g?2?o?7w??;&?*v??$???y? ???TYw*??`?? ?2|?F????AvRL??????vr????b?y? ?c ?f??e3?????JN??o??>^J???#?'vj?F F???S???\?l? 'O?${?F?????z???u~?(PTt{q??????U??b?AbC??xx0???????E???u?e/?\y]? ??FvT~.X? +???w???k??x?M??HQf?a?Pt??Z???c??1?6??l5?F?-???i{[??;??%[????n%???kZ=?}??o??o78lK????\?X???????o????:??E?~Y_?xu5? 1???5k?v??UUa|??%%??^??????"???RY??u??.^ +?YQ?`iiZ,6 +????]Td???^U????oTV~???^???{???/+??|??cuu?Y????*?P????="?W]???#\?F?? V??}????????o<~?? +7R6???O(:??#??cj????? 9???e?Y???~???? +??2?A?n??M????_w??8?5????Iio???rK???6???k?9?6O??K?& ?N{H? Rl@?M ???rTe???'sh?u????Z{??????. "_??nn?[??X??IO G=;?????[O?h???7F???*K???P?c$e???k'?d-????Tl??Eh??b????vV?????Y????Y?G?gS?.??+*HY?.;)??7?v?.??>??n??n?????7Y?M??l????j??m3?n??J?`?????~? +v6?\???o?5??/?USs??[??z??H?????????P?G?;KJ????w???CEE2SR??K/???z|???n????+?|?TQ?c?V[?????xq1%EE"??????????t???"????!Zy<-???(-}????????????OH?? V??}? ??W9?l??????M??,???? NV??s????O??@??i?????3pfW???8??s?,?;O?????!;4?YE?6o??#;???h??`?C%{k&?p???A????M;????????N??2???~n??9shZ???]Xv.??????o???????/>?pa\ 0?%f@;S\L +?{???)+? +???v??:o?+W\????)????^_??????;2o????????????_S??%K???VV`y<%??|??????'??^???o????q?;~.X? +???<~?9ty????(??????P???7Lxc????????p?bw????s??Pw?pf??r??Oa??Um?T2=???????$~??a4r?YFtN?$?*s??3q5???????j??\~???f??)??%6S_?81???sl? N?g-???v??.Pb???z[????ZY??31E{Cf??LM[?o?{???n??g?cP??z???;?'???????;??[r???n?)N?????????U???7BQ~U?{??=????`?ju????????~X??K??[??k??w?Q?.??q??`??K~???OG??s?b/?g??RB???J?8????{h?2????VM???^???K?b????$*??B?m-??E???"????9?h??.^<)??D???)+???y??p?V?: ?????o?[???W?????+*???Nn????`?L??????????v?z??d?1?n@?????T??X???N? +?Q?? ??y??&l.??S?A??Wg???'h?^k??Yv???z?n?u?rkPBm? +?'h??Z??1???C?6DzT8?C?#???6??4??8-3j?u????Xvj????F???NoR[?C-9??F?.BO??(h??!??>J?f?m???q:F)??d?`??\???:LF??? +????;46???N?~??;??FL?0??Q??9??O????N????f?z?6pm?>l???m?????Zr???9C5????g?F?????1w? +?y?: N?},??N?H-?T?9Q?????pZ?G#?????'#b?????? +???P??????[?Im^=8U?ND??n????X'???cr??Oj??u +kv ?{5f?J/??h???*%????????M??m??????`g??????{?J?_??xa??????{JKQy????+?????`u??W]????? g9V[??u??|???@pGi??U??^|?????????kj??F?Z????fr#????F??)7$?P?u?]0?? ?GO8Y??l????*w????dg??}o?M?58g,?????{????l??}?0C0???\?t ?M:?&??~????SpN??qP??L?p?????+???????L?? ,?,?e?????de???/?e}??b?A??_X?*3>&???2"???#?C(?_R??d????W????a??hy????v??|f????????*/?? +?\???k?y??.??3???]?LYZ??2???k???K/eG???g`??????? ?J???????????`?e?y??m6??*?=u???%3??Lm??37???Y? -?8??U????V?????[? {l??"?UD?????ti,;&?{|aJk??JG???s?=?2?z??^??/???;u?N[???O????t*1???34e '=*r??? +?*"{L??}wN? ??7+?{hf????:????k@m5????L??=?RV???A??=??"???g?????}???i?????}0r?hj_ >?'??f?ES??D:??WB;?7?zvk??mr?GT?{SF? C?sf??';???& +?An?sC?MN?\1S?SI?$&?v???#???R4?n9?)??A?????e??5i?']??? ?*???????m?VN?'8?3nj2?????R?{v?i???}??|?c_??c?PY/*???=|?E_/.?o??w?x#;????/??Bk??[?????,?o?tE??6???cD????5?|f?%Uo??g??n??UM??? +L +??????!??*E7??m2?Y????(?4?????????lU +??C?????p?????????GH?m ??E?5K?*?t???g`??tLA???9?m@???7????*CjvQa6?Ym????jWM.???#=Q3??i??????I??4?n=?d>??A?$?b\.tVQ???=??]j?????|Z{???2+#=???Q?i????d??1????.'+9???????r? '??Qs???K???? ?,{?=???^? ?u??????z?c?? ?5?,M?q???Ku?%p?????????p??]???q???_???l?x?&??i???????W?3[?cY???t~??~? +???ZT? @?B??J??Y:?,?g?e? ?????B??3V????J??`??Y???????????????A???D???l +?>*~?:q???M???,?? +??`[e?Fn???a???s??Y=?V +?M?Ey?\?e????-N?T?ye?????? +?+???o|???S??? !fz???S????;1???G?? w??a?'W]???B?B?????K.y??s??kV!???{???????????s?o??????????K??????n?v???\?2~??????3?????A?v ??De/S???q ?????31^;,????=A??'?*??f??6??5?A???B?b??XT??Nm}2I????k??UN??uD?????A#?&??@??%0???;??? )?3O?)?Ad??J~>?&????????9??`_V???Idp???????6a?-??}????}??????DOuP???f??!???/??; +?8??"????/?bX F9 k0???N ????(???`?????`?D)????(?D8IcN?CSN??o!p?L???/?y?b8A??0???? ?d??H???;?$??2g0I'h>??>p?$E?o???p@?!FhN1^??G????????~??#") +? +???9&s?"???4 ?@??O8?)???Q????#\ ?8?IZ?V?Hk0????kAg(?N]???)!??8???.???:0S0???(JpQ?uz"(?;??z???iNW?r???-? ?? ?0.???????7?ou???36b? +???G;~? ?}?? ?:Bx 3Z'????s46>?zu$/????`q?W??9/???/?y???R??k?????]?U(Pa?mN?D?8?_?^??u??q?9??,@?#J?????g?rwv6!E??q?Sk?>?h?c ?YY????nY???K/}?????]???????'}?\?R*??-?w??????NR~>1??gtes?s???_>?{??|?= ???? ?g????? ??????,?YQ,?Y???9^x?s??????t?2?1?????^sy?k????Q??wTv?u?ti?w?o?????I??'??~c????T*?p??????????r??u??^?A*#?8??C?%?U?!??d? +I?7DHW?? +S?`??$???p???F???|n1?'?'?aH????)#-??{dW?DO???:???f?]??? +????cf???m???~?32?z??? ?*1?@??a?q??*?&|?CB??Q1?????52?1?0O???$???f?p?t??DR|Db?D??5??q~????????x??????A?{8P0?rQ??????1??7B?8???B??3?????k-??V??k; +Um?:h?9s?????K?+?{Kn?????l?"????RH{E?9~?|e?f?M????u=??????bW??t??????s??K???f?j?k?gt????????r???????v?????tw?]X???uo_z?? 2??????J?????????J%c?B?feM?????s^9???-z??3??{V?O?????pwqq ??g?V?j??!?????=???yy\VV277??3?T??? /oWa?m7???T???d?}"??????/rVf???Yl(M?!????m??b+?_!?Q=?s?K?j??????????~????p??k7??#t]?]??%??;?[9????=?m??????;\>??H?C??y????|C???~??A???)'?u??9?D8*?go???c0?Y??1>?j}1+??n:?{b?@?1 +4??uTL?????)?????X?H?I?????F"B??z5^?QO6%?Cf?C??????F???i??.*tG?2~??;???M??v?e:?w?; +KE~P=<s??"???c?????&? . ? jZ??h?M???Np\P???Ce?\???l???5^???'L?!9?R??7???M B???>ke????T??-%?F'????x???????????7??_?{????9?t?3?SfN??B??fN4???|?Y6&K?5?~ff??y ???H? ????a+??N??Z? +??5e?;????????s?YsKA??????????y??3`/pT?S(???I???*???DY/?Fk4?ZQ?? +?*E=?t??? ???Y?n&?VG6L??????T?F??Ya??MM?M +?31|?:???P?5??r9????y????Z?V?W???@??DPS?????&@?gu8E{???Y-l}2??I$ +?B7???????T?l0M?_???????g??(? +? ??*???l???!|?0? +B?: +?????@??8? +????=Q?2L????q^???P\???? ??KM??B?[T???,4????,??@??s????R?o??6????R~???.Rc???n??T???o{p?+qj??-??=??? ?~????5p?S?7)*??M`?o???+.??]A????|??v V???-?C??!r?C???y?X???3?b:\??Ye0B?O??`????? ~?????~>????z??;q?{???yy[???k?y??????_>??>?*,|??????R??%K~?ti"7??????8??3?8q????e????????1??]}C?fk?v[?n{?????????i??a??F{mtP?e??m??????^?o/?'?m?????l?U??x?At*O? O?? +??yP^???$?S? `j.j?E~???&?u"?>@????tt??hTG?uP*\??t+????D??-?s +??Xe Ax???m@?-6??@?? +?(???i?p????????X?2&?7??????;?;9????~???e???????-]f???zm?}?2????w?(???p????T!5??q???K=@p?y??????, ??L??m??Gw?tx3???V? ?<??F@D????m;??Q i?????9t?? i???Gq$~?&Fk??W?^8fq:?h?y?'g,c??t{????{??????ws:?????g ??x2:6??k??s????]iQ?nE??X">Y???McN?'#??{F]^????i ? ?q0??????C?/P?????6??3????`?????A?=???# 0????K?C?????yZ???$p???w ?????"Tu?? ?p??b??ds??D**?:??????? ???? T?SPy??C???0*?#???v +'R1bo???????????????{~?%:????3?p?????ch{????g?,B?s??)?aY?R)???9~??6???!?SLN;w???????????v????[?c??Y???+99?_??? /|?? "yyw????_=????\??l??E??????_^^(;????o=??{o?????O??3???e ????????? ??q?A???M?m??[4?F??? Y?Em?????]!;( ?k?5P????Th? +?P;??X?k?I???I?????z?z? ?H????@ +s?q?,?7?x???l=?2p?#??? Z?B?????????????????B?.????[?#???'???????^})? ?=?)??4??3?<?Z"??g?^{????&????W\?^???????_??? +? ???? + +???n??{???n^?????o???/?u????????? m?2????D&????^ ??????=e=??nuY?????p??=??|(???B?~?N??P??Nu?-???2Yv?XJ?1???XJD?Z??J{bV?G? R?E,?? ?E1a?+???+D??t?? +S????Q?G&?Z?IX~X????C+?????h????Z?!??R?a??G???m????jp?e??A?C?A?? ??F????n???Q??bl?????L ????Q?O?? +??*??*?`?????u??Z?J????iW?????d=??N-T Q6 ??????f1??D?9???h?O??T????x@?????n???=G.????n?7?? ? +??C??1l? ??7e?? ??\]??A?,bNB??Jr?A~?a??R?g,?4????AS?zs??%zbC??m??j?????O??R?a?"??CY?b??H???)ny?TZG??? ???JN????Y???q??9?f??Dv~???????>???o?????????/Zy??W>21????V?|????k?y??K?996????????7?:?C?X?2????d??$?3??pk?? ?oL?g???????7? ]r~???3??6??dT ??$?*)?3a?7L???$5?T?d? +@?X??????TSj$2??????R??6F??^???R??Z??^???D?????^????Dj??;???(????cZ?dSR????'h6??:??x? hMH?g0T `K>?uEd?v?)???? ?o??)????hu???3?u~6S?|NlaU???G]?#?q;?:?????_+??$?^ +?@?(?g??~?-????E??@?a?t???!'?B~.S[?v]? +&d?XK?fs???!}???????]~?#5|?W???.6k? Hw??? ???l_O~???7?????.???_?????~??O????`????????'?-;? ????Af,c??Ia>t???_?????]???=e???.UY??s??Cc?~k?~k??w??t??????c6???eS?\1?Tx?6???syUA?"?#?3?M???d???&??Qu??B?:????^??????\?????B???6sE????\?f??P=?w???U??+??:??????Q ?o??W?Pp?L?:???l ????D:`e[?!???3????]?,??!??S?>???j{??V6h)?6U0a?YZu??/6R?????????w??m??o~????b???0?X?U??k?N??0PSl"??H?G?v??? +?8?????L??Gn??&~S???Y|???d??=B8?4?5S?????>|?_W?????7?<???PQ???.???7|???px?X?2v?[?|???8}?? +B:??zJ;?;J:w?~???(?Ci?J?nk?vK?~K???gg?^??^?u=?-?????oB??@???v????l?bjhW?????????? +?&?????^??JXf?3RM?? ??????*g5??j?????*p???v??^?<1?G??p??v3?{Mt(??l??f-??T???UL????????LQA?NkE'R???@?R @:?@]??;?@??|?{???^C6i?-Y?x????m?5 at z????9???????a???l??n???6W7??i??#\??x??4??9?p^?4%?g????s-xV?(M? |?=g???:*?sA??^!?gw????I????AK??p +?N??Tc-?K?.K?nS??y:???}?}????o??T?_3Q? +s?!(??7?H?ch;??rMmiY????0?????Y???d??=????3???o|)???O??=?????#??????e,c'?????????????P?2~???%?;8Bx4Rx??le<|V?n??N? +"??3????3SB?s??T51^??yT?Tv +???/{g?#Iz???# ?^V???k?????????#++???2+????????3#?????3>vm????????Vf???c?H`BFfl@?@?ODTEgg??????????Ro|??7"???O??x??g?]l??)~??????????b3?uv?W??`???????)s???it5Q#???????"???e??vF:??$??G7?vG??????G??B??vY?L???a)?S?J???K?sY7??s?w*?N?????L6????????pe??O?D??g_V?!?_?-?????????_P???Pl2?S:????g??~?????e~?k?F/?????????|????????????/???? ??\?(?I?F???hnY?(J??K????Qa?0??i ??????De.Y??TD????L?,???w+??jL5`(}DP1?I????ox]???4???3???M?o??/??z;c???f?@??,??&W??t???|PYG??hu?{j????IK?1 j'??'??#l?n??3???????g?G3?x????>?j +w >i??@V?h???Q;{?? ??%w??????.???w ??Rr???~???2??J}???o??5h???????(Yo?`????uy?(???]"6?V +???zyt?k?PLJ?K??op?tS?9??E???|c%W[?"+???!???h????^?~?????????|Yx???/>????????g_?|?zz?_????????$E?v?#??|?0???Z??V???H~Q?(@?c??????l47 ???J?????;7?R?6???H^??p??? l~?V??????c_?y~????]K?j?`?' += ????????*?,1!?C????????&8C??????#?b?????2?? ??)b?????????g`?w?S??g +??gm?q??sYK ?u>?%v???of??,???O?gV??L?s]<?w+?????pv?=??v?s???????I?V??????????5???_?????t??F???q??)NB??z d?K?z??6$?O????????[??k6???d??3B????z????/_?|==?????o??? 2??3??#??P"??? ???????;l??D?7???`??1r@?0w?(w??p=^?!(???k?? '??????|??0r=V]??]??K?-,Q_N"??U?T2?=a?]i?t]?J??E???0??d?? +~.R{Y???r?:?????L??Mp?X-0[??yj?[?5V????xc?g??d????s????T????(R? ??F?3?N?mH?I~?M????N? M??\?"?? +,??K????????\?????,?k?)tC???_?B???m|?5? ?ha????????V>??????????w?????5????b?S +?Vvc???r09??*&1I??S7??B'/??&JI?p??z$s? w?0?o!?R8*?p\|??x??8)??V?????he??ae^?jl?t}T]???A%b??I?FI??8? i??2Y/?A???9????????VS??" a?@?Mp[??[v?:??? +????????|B?d?P??6??XNG#?{*[=f????5?:?X +u??k???? +s??y2?B?l~?w?D?!???Q?nG????Q??2?\~????????$T???? ?"?]?7??~&?????Lm)]?OU???uu at p??A?#???j??om|?K???0????????????|????????oo????????GI???`"?u4???????????????^?????`?XT\??arf/y}?}=??!j8?#?k?? ??k???na????X gC?9??UeZ?=.?5?.?*?.L?? ?A? R/ ?????m6/]_???B??)???(??(Y??F?:p??Z??"T???*q??*(Q?`?Rc?????P????r?*f??d?yTZ????ko?>?????x???>??z????/_?|==?????????x?Y?Y?v?oZ=??7????1??Jg???????8?0????@??? +?R?C +????h??V??Y0v?????????????I*????S?rp??S?P ?Siz???6IFW?????Aaz??%P68?B??Q`l{l???q7??/C8? s?"? +g{??)?x?!?]U?I?/????:n?2'?p???w?/EPx?7??????]???>:? /m??;V_%i?8??PI1??>????vG?/??{???M?????`<??>?J +?C??+?]t ????Bqo`??b ???ml?!??4?;??1??????{c??H???K?2>????s?????O?????????|??????w?????b?c7??9??d7?N???^b>???,A4???r$??,?C(?????A~9?D????%?#?}??4X?;(???K?z???E?:@??iZl????)?t?Cte??S??1?v?????????9h? ?5G??? +N3??/??($n8??.>>??1/?[Y.r??iUN???????i:t???&'a|??>76???6RL(/??p?????MM +P??x?s??z?1?aN|&??? +??;c?'?N?!????A??O`????????#?Q? 9?/2!?,?~?? ?7??$???|0???u?'?? +&f&?? +???%fC??? xv?;?? +????^??>???W? ???v?k???I??2%#??|?4?? +L ????,?a???p +?d0N/?r??{??????a}-\[?????1|?f??Mw???1??;m?`A?Q?{????Z?s7#??p5?$?5??S???1????c?~??KS +q??'?????yh???V`??@;Pw?8r>KLtp????)l?s?? N?<??_??D?=???0?o] ?Sil}?zW?Z????,??Z,??s?zn??Y5A-??,?r????z?Z?? +??I ?Tu9] xV;(#T???di.Y?=)-??+???R-??????]?>8?? _??{?????^???????/R>????????)~??????Ftv'6?? ???M?2S???.???!?3???~??3?,??_?O???yn7c?8?Y)??Js?f?*-7?&?L%V???????F^???zA6???6?_????wc?????? ?58???;??'v?c3???w?9?ou?w????Y?hNG?????u??o?YV?`?????KU?!????8?\b????"v?G?\????? ?o?y.0?????vS???2v?y'??}?0?o?=?lf?M????H?y???ki|U?p?V?`?d%S8^QMV??0B??Y?_8??kYd?5??4#?R??I?=???Ty>U?K?c?_e?H???n?E???O???9??/ ?~c??????~???????????y\????/_??M?3a?.l/???9??K?O?????6o?C?k???r!?|>??X0??N??va????Tg'M?Jn??????0A? /?q|?2y~??P????? ?=??????{??b?8@?{????#??qwl]??9I?O?s????? ???x???????????y"4:?B?h?&???.?y???????Kak??w?`+??1Z>????7???? \?x??k?????*]?????=?.o5O?.?W????De???,Z +???????_+?????}k??/ ???;}r???s???o????????W?q?r???%?>??????????9???B?hp??????&??????????`??D?f!?z>???n???? ???4?3f???'?2???????"u??L????????????b?z??}?? Dj??????????? ?'wN?]???????~y???El???y??3P?=? u@???s?A??m_?^L/Z???l~?c[????7m#Y?D?, +?????G??$?T5?"t?]e?????????? +c?)?.<??F????'f??O?~?{??????q????????{????c] ?ekKp???{??g_?|?zz???G?}?A?U??6 Jl?2?6???????? +???9 +?a???C?* +???5???yNEX???5FC?'?D?ob0v??`?]?M???F?@4I??????k? +?? ?E8 4 c??????`???!)? +(?B1 +?n?BL?0?G??$\K?}?hP?E? +;%????]F??W?4????C??$!g[??WWK?.??SHV&?_?bU??0??@?k??Q1?'Z=??*a*N????d5??p???,?I???m +gSj??E???ir0!t??(??j??jS??-?N?L%?zGl??fw?vH??Qm??I???j2U?, +6[&?2p??U?&???&Z +n??l?A?dE?????{???j??U??6???kO*???|?K??????|????g?????'S??????A??, ?|?M?f?????xRw3O??(??*?????Y?????(????K|~????/_?K???U??T????????U? S????Ja??m?H????? +??2 +6??A?K?NL??9???? +??sM?????u???????????{?????????M+???k0???H?n????/??}?!??c ???\a????2???wO?o?#?o_????jc?7q?????e:cc??????s??t?!E??n??D??e?q????????k?Z. ;?,G????RMH?.]\ ??? +1),E ????hn1???t +?3???Aq>ZZ???J ?A?j1V\???? +??h?VFR??Tu9??@W??>??????(/???02???P??r????|???|????????'????0?&w????w?????????g????'Y???[??r??$O???~?wK?ZP~~~?9????? W?w????/_?|=.M??W?I~?~??x?iu?4??0i?????Vq??i?J??)~? {??)~&??????????????????|w??8?18?7\*?t _??Y???????c,??qt??g???#t?32?E?_?r????61????j(??$?????????fe?M>????????v?nM6Zg?Hwl???T?$B?S???1??'Xpp?=D6&+?JG,????j?5>..y?/-I?G????r???9Q?p)????????????T?pP]X<,-??%?N??????{?o?+???B???x?????B??????|?????/??yR????????o????.?z? 5@?@??8Hy??7?;???uwM???)????G9?3`C???{?=Y????? ???B?w?I<~??N]?????[???/_?|?z\???????y??3c???g?Yc??)?]??s at w???????~??o????.??5??s1???ls???~N`?)(}??9??s ??????3??w???~????q????+~NN??A%`??p????K!?????????~n?~??? ???"x???+!?????|??>(.+}?j???De?[?N??4_=)?'Ks??|??p\^??:%?v3 +?>?%~??????????k??;??_????E????8?^?"??]??????EhoB??????~?????k~*~v??i???s???z?????y??}~????/_?K????U*?????p}???Y?A???"?????'?^o?>D???5??+????+~?/-???? ~????!??c >?rs???T?K??g??s ???p~????vT^>)/&K ???s%^?KgS????|????5J????L~ ???????O?l~~c??3O???~??????g;??.LN?Sgq7?????=???[<"???8?b??~ui??l?!???y????????68VG???j?[?Yp???D?u????!?B??x]P??vF?A}???g* ???9???????S?????]????P 0???????o??Z??U1?????Pq???1c?s????b8?/ &?????? ?P-??gJ?????????j?"??Aa???/??K ????'X???N??b????o?H?????v?)?7?[?^?'????????????d?3???.?zM????S?|?)???8\???o?p??Ou?.?????m>?????>dM??}???????[???7???8E~n?C?r?dc?xe??I?F2+u]?t]???P;B???`7?'?Xw??s??QrD:?? +Yg??T(jt ? +k???mQc??{g#[V?w??,??,?(A?X? ??Df???{W?KUu????w?o??}????cc 6?? ? D?X??R?x@"?$B + +H?x,O"???;?V???~?7 3?????????:??Su??O?????Q.oib? +.?x}?q?d%'4?0c????LW \?w???@??LA????\ +??KF?????Z???`??? F?h, B??'?RNF?t0L??m9F?a??????)G)?oj????KE9????b?????4{?{?????r???U????.?e)9?M?L???bl?)g/???7? +qF????7???m????n(?'???M????*????X9?qK?IK??Q??????C'>???????_???'?"Pt??& ?3????Y??g??NW???????.]?t?z???~??????Q???????_?yv??9???s?g???q?L3??{?X??z??q???m??w?G'C??n>}~???fh? ;<:????JP3???????,?@???????3}tz +8?|?wn???????6?f??B[????^oV??:?>?o=}?????[Amx??Pje @V?Gg???[?':>1,=<??o?>???D +Nf?????x8???E??Pw??+?G?o? +??) +?i??\h5???7? ??s~|2dX?6|??P +>}]?????'?o?n=}?{>??37??g??z?C??A??_???Y???S???s???Z??[?nM???? +????By3?|??????5?8?v?ru??H?8?K?.]??&????e?????????2R?J???| ?H_8?S??b???sF?{??n???[X(??o?[l???WG,_%?1@?&VF?P?Q????`?? ?Ma? ????"??v?Y?k=9?Y??)?u|}??????Y?????IeJ?xo??L????nFD?????PLI^?I???c?????(e???8cK?????tYh?a???(k???O??DY??0?????????>? ??, %z?g?????AJ?D)??Y!p|?0????m?mo?T-s)????i???el? ???]???B?9?["?5BX"?????F)\2???P??#W[?P/]\ed?G+??O????Q???M?cAV? a???mJQq?Vr?B?????? ???w???S???????????o?o?5????????7?????[?J~??W????&??~??g??^???5?9???&D?}????K?.]?T~??????S?????]?7??E?Ja|?\????h$?$?8D??{???/K5????Gl?>?^?;?R?fV??U[vR?.?UqhX3?S??P#m9?)m??te???[???v ???F4?J????|rs??vf????????Tp??m?w??tO7???n??L?s??IJK~???b?v(-????=? +oi?W??y??C?[??7???'W????!g]0?????o?/??????????????K?[??A??_?~???F{?n?v???VK??????*?7?Z? ?P_i????'???_?3?.x??y`???????K???o??3?6??????5?o??%>f?/-k?lR??P?"?????3?,*8W??????5k|? ???w&???qh???OQ?ix??g{~M3?D?lG??|??m??h?+?????o???V??0 ?u???? ??Y;D??U???????i?)???9??r??{??F?e??y_??????[?b????3?R?R??? >|???{?m@?????e~?N?N?K?%?n?F???:?p?????????#?????????gOv??????_Xi??????[???r??+q????s?p??4)'gPY?????????M?6F?y5??nZ@?,H?,#???wx??]?%??f?????o?????u???? ?????? +7??h????J?g]?t?z|4?????????? 'S|L? +???%???8_&4SA?\?? +.T?R?L??\Tp?B#??hW??F????Z?V??2?On?E??r??W?C??fO?r?W2f?nv??T????!????Qr?Dl ?24 XkU?'?G???iy8???|?X +????=Wz?N?Pl?jg??=?????@h??j?`?s&??m5(7?$?r???;?tG??i?sV?]?u???iex?i +?p???V??????f_i?H0?????G??? +8T????(?~?sV?Xr?????????? +??}Rn?D?R?Hn)??^kTn?wN*?^?3?A?I?}\V?Uh???@hJ?N? =?b??kn?zK??}???5C??V?G?? ???#???!=???j?????1??]? ??0???P? +?>Uig?G???B}????~???????????t??????9???D\??0? f??A`I?Q%.|X??P!0>?U?P?` +/??SI????? ????Pr??>K81?HjI???? ?Ni???????ZLl??{??J???????B???CWaCkO?????T?NM??*?9 ???A???b?/ +N[>|o*c?Y???y?Ezqs??Fy[?1{???!?? 0?U??)?I???>?7?qc?lk??????TJ???0??Is&;D??g?????t?w???u6????????!*:???v?_????`?'??????#??8?/???Jm ? +?T&Dg?7?EH??`??SB?R?FtAhd!?{h??s???S??R?z?????????O=???g?Hz? K:??z????.]?t=>??_??\?H-?W?v?UphL?l??y?Z=H?}??j??&k??M"??@??6??r ???5{n-Hi?7?????{??p????qp???f?YE??=8??$,???-??z???)?x?EyJFyd-??E??y???XLTX?f +??J??p?j??Ax?P??TB?&?!?;{G +??;??q?>?????GL:????K??#????r +=????@?g???C??U?????y?Z?????? ~N?L????* ?|?r?F?????*^?#~????B_?gGPy?O ~?F?P?#??-?!~?L??<??????B??Y?????y5?L??>??Y???m?Y~&??9t? +?X@?2??-??|??u???|W????~Q?g]??t~??K???G?x???~??R?6?:?4?g??g????]????U??E?}???9 +???????eSb?k??r??X?6?,0b&H?2|?2?V-?5?A?`M?Q???`m???JwX5^n??Z???u ^{n#H????~? ??(lj????????n?Gf?S???}%#??????-k?<~.???3?=??8+Mb?p?????h??)+??s?0??2??,|??f??9? v??5??U??z????w????:??zt???.]?t=>B????#?? k ?H? ?g????gq?;U`???k??9?^?H?:3????W?S??T?w0?????? +?mX??????P?g???)?yk?p??cJG@?????w??????G??>????V???3?z?;?!??6??J??=KF +^???w?M???? D?=???#Qh?3?\r|c??G?$???cp??Iu?q??yo&a`????4?? ???4?Q??24??,???? n??9>hM?j??QF?-?????]T?u????g??Sr?"?}?j?3?^Z???5K?"%???'-?k????d??F????=???{??*????>?G??u=z??Y?.]?=???~?[??????9??) ?B?Qr1B8?? +X&f!??Q??L????'?b?r???;?x???s2??1????d?|?N???T?"?i??2\ s??8?? ?b?M3?f?c?1???9LHFK??z?????????kl+?iRHC#^??K?1G?L1?|?tQ?"???H??9????[?????p?5?|"?'CY?=??ic(m?lE:U ????+?? 6????{?v?w??}a??????)???K?.]???????Xx?J?a?7??;?a?w???$?7;??a?w?? A?!??F????}x??`???4?????vw??)lp??C?? ?$M ?;??& +w??j?!?gw???(???K???T????~???{???C??;,?? +? +?wO{4K5{5?h????\tv???v???x?,?y??????3@??>Iph_ ?????;?I????-wq3H??ne???????n??)x???I?u\ ???MI??? +????fm(???^|?G??]8U??V? ???$uU??z???R??l????F???a??Bd??^???}??nl??^^???9 fwn??v?y)p??i?8?f???????I??g}?m?E???7?f????????r;???pM??uOj??????+?6?I????J?G???&??Xw? ???T%?????3t?D?F?Cl?[?GWl??z_(??]????+??,????'>???s ??z???GJ'????^??u????????W???? ?g{????^4??????B???????Y????r?3_??J??w??Yb????1??4r?X0???S??z???????9?J???B?P~?9e??????Pc?jp?B9&7???E?3?=:82????i?m???I?????n???O???i<X??b??`?i??????:?:?RKl???2?? ?W?[??????xg???5}??4?Gh??????????~W~?_F????ta?????s&???uG| +????+?? 3ip????????\??]IdG???o???????:C?q??<f?F??????&??&E????Cp? t +??2???J???{?mo??????:???G????Y????>???k" ^x?????~}??_~??????z8??????????????S???K?#?o??????????????????^???/h??? F?????|p??m*?k?? +?_?_??y?????'?~?W?joi?????5?uwO{?????lI??????x??S?,4iW???-!?b???lU?W#?~??? x?>]?n??q?} +?#? ?3?o???i~?v???@fc???????vg?\??R???f?WA??08b????ma??Ug l?F?s?H???f??B??????'?? ?[???0 ??????K??l8?a????z?????S?????????;?+?????/?6~?????|??_u:?l{??r?}?k??/?????????)?k???????????*]?t?z4t????m?g}??r???g?S?B?bB??p???B?????.??U???2??8W??*Q"??? Tq^)q???"???D^?????u?H??Q???Z????:.?I???tQl?|??,4(?,&?h"?MJl0??)G?&?F?M?;,j?hIu??r +??6#?q?-?(?AKmF???" +XA??$XjS?@??'?BB'a????rC?;\??+\J?BIu^?6>3,??PR??L?-I??????:?j??J????p)X#X??ty???)W#Q?'5am????&?W1N?*Fn?7I? +0!? ?.V?????o?:??ly?&??08?c[???eMK??????%K?$K???????q??a???B??? J??P?j?t????G??B7??H7VT?@??}~??9?w?9?\??????{????e????2 ??? ?6??('??Ae?E?uO??xs???AJ???&o?f?M???0??? 4Zt??3?wt???7? ????&???=8y????????J?[??r????6A?k1}?3??m??w????.?U??%???>0??n_?@?y??? ?????/?u? ??O?81??~????qcv?Jn?????efOK;?m???[???;?v?(*z??????????? +?'{{?_\???o~N*?????l?.lxa??????/??M????T_v~?????{ + $**t????}jV|????L??.??A!]2????R%?????M? ?t??o XD`Z?:g?U2A??.??t +? Rp ??????F??J$6??5???-@#?Q???r?P?r?D??,??O??/I???*R??(??l/?0?0??F?u????n?MB`?N0 ??????g?h?("@???F?\?|{?M_???uq??r???? ???(??8O&?&?I??????M]%B???r????s?M???e?#?ghe24????????B`??????????? +-q#!( ?:?K?\^???J??????pQjZ????$I?XN??5?p!4?@???n?3^0L??#??r*D?$? Q0H? =(????[?n???1?Z? ?]????h?rdxV?????nev???Z?C?g?>V?B??????9o? +e?H??????*$N???1qE???j?g?a???V@?o???l??H???s`mQ6??*?R9Y?q(4;?6?????????1q?lC???nl?H??Co? ?H???+?!OmS???.d??F?jS??1?ZP??a?9~??2{Z?zZ???.)???????@???d(???w"O?r\y??????QD???>|5g???L?e??Y?b????????h???R??/???????V?4bh?Y?s? +?Dr?p???V?uA"??????H???I???r??Qr?????o?<9??9??m?|??p?|zZ ?g2?"??/?28T??@?????f?f??=???A????????8??##[=z ?gA#???SZ6?? ??x?-??[????}?*?g^8 +??oW?Hd?x????x?????*???}?Y?????W?>{~??{??j4?]s?W?o_??[???????t~???;??"0?[MO?[V?f}???n?!;; y??[v?^?????????m?jN??wdg???{(/?XV?[uu?hn???m?q???????X_????Sii+p?m??/?x??~?{h0?'?F'?TR_$~???X?D????L?5?^??????{(?|??????k??j +??????Q?~V??n??????g??m}5??>>?? ?@{????;bWzt-15c_??? +?|}???? +T?}???s?IB??,??%\^_???k??1[L???-:r???C'o=23? ????E????Tt???P +o||???z)???Z}?? +?????w ??y??S_??,????o??zlm?fE????????YY?iiS0?????????????=???ji???w???aNM?9+???????K`???o?Cs??_???}?N??O^s??YY?iikp??p??23???a8?????rrN??????g??y???[mm}?]X???J*?/????[?????????`2?&&:?????? ???q??I ?La????a?L?(lP?k46q>????~??r???.????O?u????z??[]????V???`^8??????\\HO /?/X?????-0??;?I ?]Uu<-??}g??w?? + ?0 ????I$?x?jj %?G???54??2D??8?rD??[4?)?-? +??y? +w?X>???2/??u^?? q)????O?W,'N??C?^5!??????VD?` =??~??????|NZ???????????>?T(?????*?????TV?R_??-????lA?????RSm0?: v= 9??~???????-??~????????????#7w&%e-#????????????I%?TR_=?_???????/5?qj????r*?????\3???EeE??J+??VWNhT?^???k??v??**????{??%?k?????(,C?U? ???T?r?>??(?Iq?@?jB-W?+C?b0r??QU??R`q?pR???.CV??-? ?)T +??? P=????????UK?+? +???P$?BhA?#uD-???k???m???ZD V??j?j[?bHd]UEc?l+Aj??\5??/??/D]???n??LM?Uc?5?P??*$?QW??O*?? +???*d= + 0?Z?U*bg?(?n+?Ux +?zeC]1???,??B??u0??p???^??T??s?FGfZ???z???:`\'!27??o?j????????s$?????????Z???:????l?E5??Fa?????? ?HI????/????`?%????srn??G?0????W???o?? ??30????????????m??+/"?6-???:????|?????s?v???????%?TRI}???7?9??O? +r??`w????????du??`U??@uC}M#p]MCMUC?vJ+?U?!?cS?e???5????`E# +?? i]]k???T???=jP?kkQ?5:m +???Z?ZC[??bXg???5???? ?k?47?7?-???,??6`4?N?`?*????@e??n;?M??S?dV???e6?ON4`?? +-h??:?A#??,?`ai?????(qh???72??R?20???t??GG???mN??B?!w`;:p????)WL??T,0????l??)'0x|;?????x ?e4?5ZP??qq????C??????????*jPJ???v??~???|???o??>?????S?L?r???? ??? +c??'?.??? +?$??T }A^????????S:????oi?g[?#[??eg????23B?????{????5??zSV????>??k??n???/h??Z[???2?`?????5qoF?W???p????ln?Ck??? = v}f?cW]u<- +?5?w??#???]?????#????????yd???$?9??????????????Ef?f"sl????Eas?\6? ?0??-|????El?P???rny???j??N#S*?#??p??t??b?X?? +9}N?`:?3X?]"?tdlLo?;????^???;?? ecL?0???;?X\^? ???R^??#??/?_??s? ??%?X,???x?)??P?G??|!????x??~?bb"? ???(''A???2??y?i?Vgd? ???Av8?:=?t????u?A????2?LPf?mu8? ?Ma??$l3????u |???????????k???z?Q??@_?{??OX?/? ??MJ_?K8>~????~w0x0=???{?-*?F^?o?/,?B}?????????G?????_???k??;??Q???k?ml|*//????????u~????_?????{??g?5##?e??;?????\??TRI}????o?T1???l?????>?YX ???VXC?q?%?0????r?hxX<2????V?{BA??-W[???#?7?y????????/?o??3?eJ?w?_?^XZ??D?~?~?S.??/??,? +???{G?????d????y!???-?a?????e??o_??+?)??Ls3?0?/???????????????Z????=1??????z??.?`k???\???9?b?ohx??+??l????/????A?????W??w???\?,?{???? ??t?o????/.??'/?????-??'6lx?????T[????j???????????gb?p?0R?!s?T?D??`?????\![*gK?l??)??b??dR? ?"??1?f?q`T????Y?  I"???1.C&S*??l??? ??t.KU?JN3IW?? +?B?i??4??2?l??d?????9??????b1Wb~+_????D?` ?l?)???S?\???????????a?P&???????RO???+u*=???|????J}=????c?gv???w??=?{????????O?????????????????????????!?? U?F???wO?9t??S??z?????????y????:p???????0D;Ier?j??e?E?X????l??e6? ?L???` =e???"????g?w? fhC?? a?0??? ?^f&??300p????@2 +?????%L? P ?? Q?F?????JF??L:C?)? ?}??c;wO??3?g?????????"??????????Ks?????~??????kg?????W?z}???--e.7?bX,?Uih8?x?]???Z????kg??~?O????n???%? ?iiy{??????;[ZF??[?????O?????wx?????,?f???V?~??????????? +?\??????57???,?bM??~??????##??V??k????L?????/???G?E?f"???i?"?Ebp?u??????6??jSX?`??&5??F??`?? "?V?R???.D?)E:%R&e,?B?]21O.?+?B"R???H#?<_!?.?\\M db?T,??D????U?|?H(??eR?L*??f?"9?(e?R)S?j?Q?? O$??Ur?N"S ?@)?4?`#H/??Z?b??/5 ???a?????&??:?A{?k +x?a?F???}?#???d?N??S????>????!C????!???/??DR~?%SI??T8??#?d,?OWF??2?e/??"???????????#?j?r??\???????????.??' ??D*?J??T$??[?`?D??y"O(dR?c?????%??H??p?$*??hR?Lr?A?2?A?7h?O4???????:08}???_?{???z??_]?&?#?AXSM5?t???7~??+??8p*???6???x?I9??+????????H:?BJ?1??(*LR?d??G]?? ??>??it?uv+j???F??I'c??Ce?V???T????<R?? a?C?r?{%P,??d2` "????b?5?eU?tr?:?F ??3?t&??L?,?????M??D??7?|FgPg ?W????\?T?2F?{?R?PJ?Jd?O2?B:?W???O???[??x?!?j?????P +$??d,H?!"?O?a?, +????}?g|o?8??=X%F??? +N??=r(??t??&m?$m????S?fD?C?Z?F-?(??F?t\??vMS?T?an?l??Z?j?T??(?.??]????xB*?"D.?+ ?b??ER???g-0?TCdb?|?r0??U?6??)?z???6?&??l2X?a??o??????1?<?J?D?????}`j??b?????kb????_??Nv???7k???7????[?????7N?? +/Z4??????hl|h??W?????y;8?\y?????r_???+????r???}MM?Z[??r?Lk?Xkk??!8?.???N?XQ????}t?????J@?,??s????^??????U?????}\?XK?XC??W\?????????\???e????>?????k5?TSM????????1???K?thmV???0d:T????j?1??e??D +?'`F?R,Wv?~????R?(UU3Ll,?$k?0?M?(j?:??`T? +J0?W?&??i?{tf??? +F?T?????D????6?|?=??L/?R??/?? M??7?'?;F{?b?(??,]*???t???)????b$?0??Z???r?>G?o?y,n????x?V?????~O4????cd?`???4????Gs=??w?????08??L&??no e??z?5*?:??X%G?rT'??LgU???E?p?????? +??? +?#?@$??D?X??E}X$? ??x?h??S??????t????/v1?????)???g????B?-:?????3???o?\?????e??uuQ???0??zY?????O_s?tc?/????6[?F?\oj?Z-???r?=n??c?z??+??a 1???????4L&??7??DqW$? G???52y|????a??L???f?N'?h???/???T??U]"?@*????)????RfS?A?@?`????, +? ?l?[`?????xl??'?;?o(?- +?L???L???8n????h?*?+???3???t?????#}?{???x??20X$?h*'SUx??$??P?`3k?:???7??:0??A??>??Y?:????ER?|?x?w?*???@(?????H?2S??%?Qb????;<1}?p6E?B[]!??g?9?&??????5?4:?B??Q??j??Z???8?P???T)??pC ????\????|f??R +???%PY?Je|D??IJ?D????2?Vn@FTe?kZv2O??^??o???3?y?h0? ?),??$H,N?q"?'?Q?{?A?????\~???a,?c$I?r?Jo??X??????/j?}?????q?Bi?????I?E???:?~~????mOS?7?.=~?????+66?[?h???PW?`?v????????????W?????P?lk{q???-Zc??,V????????o???U??uu?5;o?3+V???2??2,?????^??fim}|??? + +C + +?????m?pr?????_;??wm?USM5]T:???O?????? +?(1??"??C,? yRq?D?!?w??R????H)GP?L???uJ?^g7]&??b?9?????? cf&C*DP!":?!?)*O?#1'??0{(?G? +.??j??zD???uLF???5?J%??????0X,z??Z????j?~6?&j2*`??l?E??\8^??3ve?PN_.?U??(???}?H????{?8tzf?????$?K?d??`??v??v?????ZD?9?!?b?F + + .??J(? $?*B+% +f?)D? +?r?????De`f ?"?Qcv?>[???G????%q?z5SX???4Vu????T(? +F????H????.??f7Z?(?hT??EQ??&???vz??0 b? }?_??????w$???^~??PX???Z????=???`p???{??? +???????MM/~????????!?byY?4???b??l?????????T?1r???C!????%?_?P?b??uu/?Y??M?^???=?_?b???/????f?`n?????~t?5?Y???????s?????95?T?E???{?????Iw)?R??C*???e????ul???u??-??~?-[n??m?m[7w??????o?*?j?;%???W +*?X#?j???P?N???<~??? E?X?K???0?3 M????I?? +?@s?????s?????w?1Bcq0??Mf??I??'?EB"D?"?\?T??J????/R??????xb?/o???????w\??b??\???w?=[????W??h?E????\????|??? ?uu;???_??{??????D]?????l????K?8???????2????'????????\cc????? _X?????G.???+??|?O??{x?? ?S?r??\?_??O????Q???j????s????K/Z?? +???i??[n?x??M?m????}K??[7?z???l??yK??m]???v^???m??L?? ,}??}??c??c??? ???B?R(P ?"f*????f??apx-???r???H?M?b?'B?????C??!????T&???12'? +Rw0??a?`???Q"??#D' q?#2?$8???d?Y?:IS?2??~??c?\(B???J?D??d*Wv?B6?*??????:??W|??'?{???o?<~?@$?????H?g??-????][???vA?????[??x???S$???)?z???1Y +6??0?????E??bad|`????]t?`?P?0^(??2^(G?@58Bfbt.?+? +Y??M??x* N???8??$h,N?????%??@?? ??(??D":???v?s??}G?~??{???/??[GN>????ly????f????:?5??&?Y +????z?^ +,????5???F??h?? +v???C?(jA!?Z?Z? +E=z??l ?MA?5?}N; 4??@??'^F???h??u'???bQ?zF???T??U????<]?4J??? #l????7?|:??:???h?? R?^?6??:?\?????????R?T"`?"d????n? ????@(???h'O??)???u????Q??/?tFf???3??g???k ???|??????u????3????%K???#?&f@~????pv?????:??LU_???C??,x???_??g(????~?5o?_??9?f[???6|c?????T]???K?^??PC?Cmm?Q6??f???7??y??\???k?}?????-?????j??t???????O~???????Gx?oO???"??t>???3g7l(65?64????=??nk???N???/?{??? +8???K??/}c??rCC??.?b +???q8??!????nl?????3??\~?3?^:Y_????^??????,???????Y'QW7????? +???>u?%?]??f??????????j????O?~????S??;?? ?;?]O??5?F*V??r?H9??@?T??h?R????J?Zf???Z???D!???T?b>?!`>?! ??tr5?D +?????e?c?\?o?*w){0l ???+sGqo4????1????;???????w?z?- ?wD:*??@BR?XW]??v]???kY ?k??X??k??Z) ! ????? ????g??s????2xy????????Y????2??????O? ?D4%-wr +?ibzl\?????y???/J?;??iA VJ?yNq?>#???????????'???3???[?????S&????Qa! ???????B?`l<???Z? ??07???~y?@???~??n +???fgWnf? ???k?_??@??? +?cn~?D?`0???F?f?P[q?77%?^??m??5????^??A?Q?????I???+?LL????O? 22r????t~ C??r?s??N?????d +yY????x^v&???Q?x????????????? ???l???????\?$?#? ??.Y?b????W??-?+??? ???%??i?????u? +?EE??\TT?E9?|?P=+??? +?=Sr ?a?@?-)?????BQA?????\? O,).*?d???g?[?W2?+*?A?O???"QN?p`?%?IQ??qN?P? O???d? ?y??|1OO?$?@?+??)??PPT?]??/???gKfL??? ??o?t??ib(??S\?/(????bO"???D???|?_???n?? W??g?s?2?E\?t?h:'???]??+??g??3? u97?'????? ???7~????F[?D~???@?????0?*?;<~+= +N{(0????k4? ??6???? ??d 9lX????Tn?T?T?\vJ??vJfz*7SO'#53#=###???d?9???,=? ?????,6?42=M;??? vvVVvF??`?$??? >_?v????VY??qN.p??l?F_? ?g??r?E"?$?'?? +?Y!_$?????r_??????Q?h??<`qyz?%.:(4?C???Ho???vk????? +g??????n??f??B}~?73 +K8????*?l???g???D?8| ????B}???mB???`k?F"K)?/t 6?`?I62??U?????????????&????? ??D"???]????@T?p???-X?f"???8? ??}}c]2?g? 2??RSgO??g?/????.6a???????h?????4q?D=I?@????????x????$??'?$??Xp'M???**??p?????I??c??????Xp??c?q??c?????S?B?r8????? ."?????lN:'+????es?we@??e +l>/??{T??<3????[???????p???,'????M??Ne?S3?i????f?)zR8S??i???S8)Y???Y??YS?D???^??II?NI???f?M????4?I~&?Pr?2Y????l?(iJj????q??Q1!???#????E???????EDEF?? +? +f??????drg?_4c???????q>???????C??O ????B??????~'8x??`??`V@??????????c?????L??'??7(?7(?7(??????0=?????z?,??|?j??????}??/_?????o??;r??????c??]*???@??????/??m07?+#?H{?? +##`nW?`wlm?!!?(??d?s{{???E;?]B???..????H?Z$r5?J????p?q +???p????oa???0c0?????v ????/?????hu????/?o???W?l?A}L?????|??+q?{????????a||?????????Ro&???C0?????? ???d?H??????/??????????????J?{0?=G?{1?<=]?=]???>,????\nvqQqjj????(???????E??2&?0>nBl?D????? ?Q?aQ?!Q??Qq?cD???E????:."?7>|??( 1JhdDXdd??????zz{9?;?;??9??;?;??;8???Y??[?:Z?:Z98?9????V??????1?1?+???F:y:Y:??@????m?m??mll?mAjmommgmmkemgimknmkimg??RWbii????????????`k???????????V?????vV?vf?643+?????????Y?????O???R???????[}E'?'??%~j6,???????s????=??msp???>C .P?o??????P?+&&????????11mvv[??/Q?W?_???k??4????li?_????K/????p???ZX\'?/?'I?50?:8????pH?m3?Z3?:*u7????v??????a?d?A??(???7?N??#LLh????f&???l???L?,L???????????"ksK+s s3 Ss3s KKK? ?f&????????lbF15????C=?&&??TS??)?fgc???;e?d/;&z???-?J?A?M,,?-,-L?ML?P?V???N?nnto&???????e??w????t?(?L??t??||Y,0`2|?*????p?????$ ???P0 ?@????100P??"?X4 +?A`? +???PX<?kT??t ??@"1($?B#T????Gbb??????}?d"???0?!p ??A ????$???SM3??1X???faB1?Q?????QhE ??}?4???nB??P(d2 +?F#<?%??D4??!PpD +O??08# ?2?yH??H???N*?T?J?R??gF$ +?b ?43*??J??????(??B????h4 "??hljnlnE?0&?QI&d??)??P?? ??Q?hT?1?hL&?>C?FD?F???x2?@!?$???F$??DO?? x?E????<.4,:???E1?b?X?@2&(D<?5B` ??%??D??F??(,K?cH02?X +?C?Q(?G??(A@?@?(4?????@??x??@???a??????????Bk4??????? +?>?[?u????????????(?Jl?CV??????7??]55?ZZ?|??r????Y?????H?t?'mm????D?V?PK`?e0X "OS????-ht??????I??0?Wht???Um-???? l23[ +??F V"?{?#?OR(?????????????W?c?A}Tz???????S-ml??lml??????\\??8?8;:;:8;????]]]??\???=?\=??\?/??;????qpv???..????M?????'???:5??HR?????`??\]????L:??I?a?<=??]???===^^L???t??????xz3@?;? ???????Jg?2?|??????n>,??+?k 7?p???:?;;?9;?????? +?? +??Lo//???d??0?Yz???^,??L?'???K???;? +?????3?Y??>!~>?>?? ?_??H??q????!???Fp3$H?wH?ox?oD?oX?Ox34??O0?Y!A?0P?7~???????????{?????{+O????????c?>~??x???S?T8qj(?~?????'?T???????x?????8????????V??]y????=????????{? 8???r?????'??S?K??_?t???????~??A +zt6+????W?|8??v???; ????w??????Zo?+d?"l?n??Uh?"?:?&k????U??[?p??w??????LL? ?t????? +??g????H??pp?#D?2?)??feu??Q???Ouu???h?nc?k?}?vdD?1?6? ?>*?jS?Q?????????3??=p?L??????i?z^4?H??????3????~iGO}go?z?b???????tf??GG7?????{_?4???????F?t?? +??m??A????&]z??e??m???f??????/U?_???????%???:!?s?????}??]?Au5#??_?????-????oC?@???I???Bz??nxx???{c/?~???F????No???_|??G??????ysf???D??????{ ?PB ??G?WAA????8?Zj ?9? ? L2 ?[?D???NR(m +?u?V?vBB?????p??76 + ?9;???Nb?_??KQ??0?N"?????F?2g?~??'??W??m:wnx``?o?l?A}T?)SI???25@???v????5??jE???FGo?????_???z????u?o????~[?J{Z?qE?S???Q??k:?u?zk:z?}R(?V??i??m???z??>???2??7Z4U??:E?B_?}??????YO]G?-?????*E????r??j??j??z?e??????>w??9-w?4??\U?IU??????T?R???T+k?Q??t Tu???K????K????d?:EK?|??]??#+????>][uK??????mv??*@?z????^=X????s?M[??/??U?????Y??Q????Wjk?n???+?:T?J?J? ^ ??????h?:?U??j??v?? +um??N????Ba?'??QQWi??EE?W?Y?b/ww???????B?H?~?B-B?v??|???h%q?J=bd4??B???~biY?F?[]E???b??`??? ??t8;_??[?l?Ad ????Y?}???A?m?u5?? ??U???????*i?Joz!??!mW^?w^iW??n??l??yS 41?V6????????u???????v??MS?j??m??x20xR??3g??u_}?Am???]??\???*;???u??un?w01??A???3???C/?? +???I<~D???`GE??'????W^k&Ps??P???k??????\{W;?p??g??D???j?k???'?;???6??g]??= +-??6?u?9???M#m???V??AS??sSLo??E{??????tq??W??%???????z???SV+k?????i????I???]?????????G3?? O?0??]?????G?jm?ZS+W\{?v?Y?????????3yj??????,}??Rc?????^w?I????F????S?????a?????3KMni?-?)-??\?SO?{???O??9 `e@??'?8??aR?F?4j4?????^^??? +?BB*?u;??3+?_y??gO?e?]????W?H???~:q?\??R?\?v???& ???DY??? ??D)?????L???BJx?"?V)n?b!.Y???????>k?S?E???C?1??g=)V???8'??:?M?2??????(??????A}?M?d`l???cJ?]??Z?l?KfB????k??CF?7%?E??c??????O???m??qS?w +~???!?????j??!V???f?&?r??2?RP?e??a8qv?? +??L;e?? ???YcY??i??~4p??K))????V?]???+W#????i???i3?l???????[l?B(I!)?d@M????b\"J?ZU????&4h?b?/?*_FNK?k2?yVi)N +????#6%j?????%G???3>??9???????f?4?C??:?M?[e?o??? +a??e??y+?w +??x??DE?W?G?-=????Z?i?'????km????;g???S???z?v???S???p??@?WR?9?Gc??:r-???7?2pF?[A???BZ ?`Y@??2??3S??!?2?5???F}????/???E?c+?hs1??Db??8'3???#e?"?p?B?!C?????(yQ?????u_??\?{~???GM??h???=?????b??g-?H?ZN_?|:n?g?'?%3,Y?}wBf???(?+???I??$L??8??e?Y?k?.??q6???h?i??&x??*Ey???a?3?????[??N??;D?[?z??`Kn??Y??Vx???`???y????yF????q?o????????m?m?|Y??? +?.]??[??????i??6t?t?r?~??O>???!taa??v??B ?]??R#?6??b???vZyV{???Nr??N?:?Q???`8??)F)???n??T??.OJ?????????b?y?|????Y?,?F????Y)A??v????O????????????2???S??L +;?y???????? ??????{??&??1?????s???O|??????B'O/?=z?????m??}????X?9?????? ?8j? ?p?L?p??????uGt????Z?r?? +??19?P?{?a????)K*A?PLkBT?x?_???Y??UHWpE^6u??/????????2?WI??Z?Wyq?????h*$W?P??Z'7s?w?c? +:*^????5???8w*!??Ui?????&???????k6??x>U?o??1??????i??%? +????a??t?h?E?uG?L??m?!?? Y ??4?NzN'r~???[??z^h??65W~?v:U&Em?C&?3!Gi?????? +??7??/J??]?Q}?^WW?i? ??v????7v???????:?t????e?????3????R????W6l??^?s????????l??"?#?[?E ?R??Axop.?(???-??r).??2???????c???h??U???s1AX??Fr??-S???|?? +^?,??oG??IG?? +???`??????3???????`???[?/?????V??=`???a????????+I????3?C`H??????/]?`????o?tr????t +????-Z??q??F???wo?C?????{???S?`YYpJ?<???/p???:????? Y[!c?eX=?fZ?t???9 +?hqVg??O ?j#????,d????&Fl??m??????G?'3?R"?????x???w???S"N]I?>76 ??!=g?_??k???c??????]"?6?CP?%??\???????????C?9+7$???>|??????7cvp?!}??????kw~75f????*?2-%??a??1???%???????????Q??/ ??sz??]???z9?_?9?I^fb?J#!????+Pp'?j(??F?gM????G?????z]\?En|?Se?-7???xo?7??? a$??s?M?:?d?O?]??kp??????UH?Ag??q?6??8(tl?????????9??????uP??m;??{???????gp?a????@?.A?S"N?i??E??RSiJI?)????\q%??v?>1 k?I?dX??3??|ZE" +????R????????k @????*w?N?&Q???????I=xp???'f?F5p?]N??#????h??o???K/?Y??v??$?? +,??????{p?????0?v??^?q@??i>???$??-??????I0?U?Rc%?G?????s????xjNAJ?]ab??$#?r?yEq??,??M?\????9o??M?N_?Z?v????K?N????f?g?bz?h???B?????O?????w?M?1f?Nb?~?????9j?????'d????o??e???03J???:u?????q?(>esP{???-q?g?b? ??(??_?li????6?R? #?g? +??2*??P?????+???|????d^?T?gK?s???t?G??Bl??P$ +?%?\*N+?L??FB?>z??#G??????y6??J3s??1?f?0f??c)?d}??/?4&????G??cl?&????]?u???? +?Ha rle2#?D?R?, +??D??(??t?;?" %?#??O>?4?6???Nd?F?J?s??69??Hu_??b?n]?B4?1?]sss9??#?UE???[?n y?n?oIVR?????A?}??e????E??2??????? ?N.????{??!EEEv?&V5???Inff??S?j5? ????5??R_?R?Y????,E?%?X???w?q???r????? 6?[?!????????:1? ??aW9Vb?)?^?B???*??Y??V7?@?????T?]F0Z???9?4???'?N;4$'3Y?8?N?3i??? ?????N??L????U?0%[c??S +??? ??I?E?|2?_3?R???????/#?|?)??ZV:iK?)%?l\h???&a?G M=?7l?&79??? R?W?08??????Cr????:]j??????dFAD?f{&%Lf?.audI&?I?J??K??d&FcvfR??9jp?`b??wV?????,%J???ZB/???A???bFRd/p???1`???9Z??F:?iiT??????7"?0??]?)t???3??U,.Fu_?????-?? +???} +;wW-?g??5??%*??Y?g_8? P????.?]?+?s???|??G???\??IVm??9m?????k??l??X??v??S????PN)?/????? ?p??B?[$()Ze +?y-K???@)_?g???????B?i????y?IJZ??????"m???B??xJ???3??2?v???????????? x2??Y?M???7?? }???^?????f???`? +??K??\(?0?+h?W???????g???H\?'$??\??=' +z??a??T????? +Q".9?gc?0?D8h???K??Du_????:w?=?v??Z??{???]???m/w*Q?{ +?@ ???A???-PG???1?=????XW?,??|?-W?e +K???s???????1??L?J1Z?sJ??*?U????4-?(?XM???????0?J?? ?$f?jV?L??y???+?dg2,??????U???ll???[? +B???G/??J???r:??????6??!S???B&??u?*:}~??m?r?WS?jK?0?????P???{??????[$??Q???c???????? ]????sw?????~?d????'>?????A???Y? +?<%+???3?~C H???KX??0?l?3?@ ?????g"???bx[?&?????oGY?? ?B???$?mu???g??P????????0(-(?????????O??i?'o??? +o? ??-TZ#h?h,???[?Q?3/C(9??qL?fTZ?I???Z??1????d???K(0??????x?V"? +?????P???\r?Kn??{S???J???RPh#!G,b????#D?KJ;/JWx??????a??*Dl?? ??ua???Q?f?B ?????3?,3;o?wx??x?z0??????3;y??S\a/?8?(?u??m??-|a?2s8???Z????&??/??????m?R?"-?i)r?????~?dF?0s?\??Q??T?4?QAE????O??&?o?9?M?2lS`%??;K\pFx????????p_c?*MVJ?3^???c??????_???d?d??????*???;???8?_K?21??G?????p?@ H?SQQa??|????]?a??????U?????(?^????????g?55?2?@j#w?Lu???/!v?f&r?`Q?~9??$I?????)??d2??????3g???????3?-?`???Y????#@ ???`??O????v????????%tFG???+%4M???U???????8?h4fddH???????/_?p?????N?:q?????????????m]?z??????]?br???#H?????o??}u`?????!R??????t??/?}??^??`???????T??&? ??????????k?VXcGhT`?4?b?v???+o???3?d????????H?V?????c??C?z?<`f??m??J???????????????w$??????}?????!?l???????vQ??5?-l>&6?B H@l>??lR???9?-?????????1p6imG]`????^??? ?\y9x?b? +????(??????????~?8.nP??????? G}???:5?X??????????.:.l???K?@ u??jm?jTd??S??;?5?[7?"l?\?E?????+>~????+? ????o?????????????^??9b??????-h?a?;'? _??B HmG??*..9?C?i?j???4?????p@??s?????}?3?.?3?+???l-22?7W?? v?>|r??? V?7 N?~]??n?2??'??\????*??q??o?s !?V# +??h?q?[m?????0???s??n??{?&!?=? ???0b??????yu?w?t????C???u?"????Z??(,??????F?t???u?e??*?????R???I??|xPx?????#gv2?<??????@?????????,??gV????E????l??Y|Q???^?}?????????A?k????????/ ???M????n0??@j/???v???we??6?g4?w?? +J?^??j5>}?i?L?????E??&??o???o??\y???m?*g?E|??? +?9)?2EQp?????-?z???]?V??G/o;1??%?@ ?Z +??[??rf????w#??w ??????JJJ??? ?Z?J|?u?5??:}?N??1?]sss9?????b?`????? ^?????x?K?@ ???-EQr?d??.#Z?;Bf?\?a????9Y???!V?2?O8*???%C???`??? +1[pR\?????|?????????M7hP?!??>?9??????kD??3??kE????Ajb-???m?y?W??s?c??S???? +???C???(?/ +>zv?? ??!j??`??|x???]"[?;BgvBP#?V +?Q????n?L???7????B???y???Z??????0??@j??X???? ?G??:???ctt??%h&?????}x\??????????l????}?,?????>>\?y???0??@jb?5? N???6pvk??o??)????(??c0?:wgfe0 S^^??#f ?X6???N??R]?oE?K?\B?E?R?3t?fv?>?m??m?="??/?S!5??c??l?}??#tf' G??????C?C?}??)?n?r:??N??y???b?n?I]E???????]?o?1z????o????n?? T?d2}wp????!Q???UN_:'?B?T?{8???#????W??? a?#??f?? ???????????B????=???ls/?z;?~??AE??.--D????????v??N?B?b????%?.>??$*?????? '???G???O?L?I?^]?V?a +?h???M?"s???????????B????????i*-aa???;>5h||????hA??? ?K?|?EL^b?8?A??C?b????r?et?u??v?1???] ???RSS?TS????3??g??;z?s??????=?yG???????L?$op?????9???X\Q?!??lnK??=??,?z?~Q??"??h????VU??w??q???2??s???0?C? ??A???# ? +4?T??7L?n?;n? +/??)????K??$??????K??s?:::???q?n???T4?,?.&?Ut??E??.?c AN2d?????Xw)????~?[?)?????!BhkkSZ0 BD????V?{G????mh?KKKxO'????2??I;]?v??G?x]~ q?q??^?^0???{?XBA? U?????B??;f??1??V?3????3?HE?L?????m??@f??M?!???Mmhhhuu??w?C?=?NRz???6?5,??Y?R5??bv]????L????S6???q????7??Hdv?\??????????2AN&$??L?b??.i??=?????????c?]Q????*?)8??(B??:????466??E????off???????????????????????lG/9??\? +?%??u?O?qg(`oa?9Neee[[???AN2_?|Y^^(??{????y????_??Z????X?#??? +?????~??455??E??????????????????j???x????? +s?AN,d.??????f]k?G&?????^1??4??????C????f????;? ?? ?????/o$.i~^??"??? ????X????7????*???2z?UVU B??z?? ??+++?%???????1/?u????P????A?_?|Y]]???Ly??JN7??C?[??#????[?D???g?>???V +?~w,?h?Y?3Y?_r???????? ??t:???`0*++??l%??o?*E?r??.?,a?????;1#??gKg???????:???8?????Y&I?-U???f + + +CCC???x_? r!?NLL???????_Tu?M?,/?EY??t??f?? ????O7d????%?????/h?i?????????????9L?G9???|,???????:KU0?j?w????& "?????y?c?????????r I`?y?a???[?????455????M^?A?,?t*??BY?????4\??*e?5??8?9\??????:??\][?3w?b??? +v?X\a%?d???U??w?.J???d? >AC9?$?J?Wb\?r?G?T?????????!~fcc????3w??#?'fa????h?M??K?_JJ?wtt? +???&f!??qH76??????????????~?V?i?-??t?a7?d??wE????J???///?m??????`}?{?o???6?fx?7??]YY?? ????tcccjj????}I??????-]?? +>B????? +Zh?P 3w??:P3wc???.????6?????i#H??-U]]????????@? ?o??Ff$????i?*f????y>?U??k??&8rp?P2?7V?J???????????>e?w????iu????K??b??(3?q +H?glN? ? TGMM??????5?GtK??J??b??????W?{????R????X???/?]d???6O^j????g???V?M??%X?? ????` ?>c?1??L?m??`??-S?V??+????e???????0)???A???633????????nj9?4?zL?????KL?N`"????????I??????f? ?h????)??d?mB?Mx??w?????c??O?^d?9,??`j}3Ix?????I?5?.olr?????SsB??xd??-]????N555??? ?|R?cll????]?[Ecq}??????J????????U????Ks?6?W???R?ge???9e???????vTeW$?-??! ??=1?!)??m?g1???/??.?&??6??L ???N?i?? +??A???X7<2U????*s?IKW??? +Rsccc?!? ;B?H?#?,$????.??Tf??????????NN?????n<3?h?-??????UA?OP?>xi)??? ??1(}\???????????Ui??&???2?|????????? ??-`b??????;::***,??u?n??=?U ?'jL???zL?>?|?????????y[??Qo??g?{ ??_?< ???r?Ar? 1=??`???W??D?-H??????\-Z????jq%>)????????=?E A?[????=>>???RVV?e~??????sZe?%?iyc|r{??4?????Xk? `???:?g>be?\?H+??a??]?a?#??=k????? ???U??O?,??????gggq?AAd??D????????????w???^?-?h????#Kx?X[_)(K??????J???h?1??=,<9g??~=#?Y?E??+3??#L?E8{?k??O%??k?????????`?x@??7&:9 +O7?????|?_?H????ukOy??h?? +??S???????????gvv?JAA?????2>>?????r??ZF??!?h+?????? ?p??4?p?m?{D??q?,(?mM??????/p?????*???V??????LH??????????^__??1A?P ?8???GGG????????_;?? ??U?A??=??h?O&?0???8????Hp??S)???[??Uft?]???ho,???VE???o?'??I?'''???p?2? r(@o?????????????????Rc[i???}?>???A???LW?/N??g{???_'?YP? ???%?h??????W -?p??H???rh?O?T? +5-???????*?[9?q??????C2???V?3?y.//omm%???!? ?z???Q]?{? +???#mfggWWW????k??2f?O??h?]?z???8=?l(8?-?+\I?B???????*?cn?p?/??????????A???????mmmUUU`?????]4???Wwww?????~??+d?m?????\"?h?S?????????l??3? ???????mll?U?????u?0??7???ap?B?;?,tiiip???? +?0U?( +Ze???;?q???Q#2??)X??M??VP?????????% ????,??v*?M?|S44?7?3Sy<^kk+????A9??|?????A??*e??]4???t,???!???????PSSSYYYt|??? +?`E?(MZe????C????nL?/?F?G?;?f??8??"???V9??????KYuuugg????yFA1?9?x?9?h?????r???????B-??`?wL??X???????????????Tu????2??:???ON??N?`;??????7?>???n)?????]??Wy?M??Q?M?e??-b??r?O)<;??s;?????????n?|???? ??!??? ?yV0KM????ljjjoo? +???pt?uoo???????@??????????q?????w??2F?=bti?c???zIe?50?Io?=????L?MEf2?E???? K???? +????d??c??gY>???o?OM3?k??????3?X??jZ?o?iy34?? ????? ???oll?yFA??????I???y6a?(~?!:??~??qvv???:???X877????=v@$? +~{ff?????????$????9????J?Y?n?)????C???EvNVEEEkk??????"yFAx????R~av????o?????M????????B? +???wCf?? +????[ZZx>?????A9 ?Km????-#????????????~:)?=?k???t???(E???^/}??i|???????r G 3???=v???.?X??4w*?????jm?[???9???)???????I>;?-??%????????N? r at H? +? ????8=ey*??????4s?J)f?KD?&?_?T|eu?$??:z?{???? +???3FS?y;!)???????T +??gA?P ?E?R6????6?~N?-???:9Z?? +???O???k}??WRe\)??a'K?o?S???N?|?#?OlZ?????????b????)?????????????????&??@A??????R???w? +?8?????S0?cppz@?WPP`?i?f~?1X= ??>?????t}??h??X?8?iy????v??????tln? +v??,??????????/YO?X,0????TWW??????-..b?? rpH????T)?Km?M??????!|:??}?vtt???'$E??^c? D;?h&1??o?'??8>1d???m?,h??yie??????y???Y??????i?O???B?4,n?&??i?ggg???NTA]?7????Foo???? ?I?N????????o??.@?y?%L;$??>???S??O}:4???-[/??\??)????5I???xr???gP?%?$E??R2s?2???+--???'ag2T??K!? ??o???????V$:???h8??????@U?k??????T?d???h|)!?{???q? ?????????te?????Bg?}???n?M(+??.??ZmG+.h??j?!?B%?dg???7Kr?w?U?%??????U?????????n??=????\$+? +?2 +???>? ??t???H??]?o??L??!?8s8?????????!??a?A9,v+?AwB?s??6??` ztt?????????4//?;?N?????lP?Uh*?&??-?d??????O_gM?????Be7????a?_?h????%bh ?YY??+.?P?x?s_?#?? f n?Jr??L?vje???t????[#??w??=??#???????R\.??????y?>?[?N?q?-R??1??5?>??*???:?-3?8?????wrr?d;?DA9?l/?!??SZF? ,??_?@??????`KKKUUUqqqF?ku??@??4[??g?o???$50?y?zm0!c?* q???????~$????? ??C??+?{a!KS???:?>????[;?5??Z6E-$y??o?>?x????s??/|?1??w?? ?j? +R??l??+? +??Z?-?????R????.m??m?h-??????E??K?]m`i[ }?|?g???g#+??????n?GFF?&?$???E A9??R??f?yV1?8??6? ?onn?]???dooocc#??+**JJ????????c???>?????K?E1W????|??F|??{???#?P???P*?? +???3Z(??A?!?*?} +?R ? +>????;?? ?gj7?c?;?C??C?_??3U??.!??TX?l>Wp???@)e??o?+(U~?[[[t??I?s@???????e?q? ?o?????i|b$)O???<007?p? ??l ? ?)??t}E?g]?G"Qjc???R?cccpt + + +\.??? 4?[???E*(?&??=}b?**??eD????????!??`?:b6v????????????RQY?5?[??{???? +zT*?[p??v;B?y{? +j ?? +?????#?'??w?????7<??CO??F??????l?m??OoJ=?O?,??~?d?sww7?DA?:???!m?;?y?tV~_R,*?6? ?????2777<'??\?5??7?pE??B?P0:?=*m???????,?!?K?'??????w???`Pz??>???~?[???p???????[???bR4?0????p? 9AFu?K?A:??uuu%%%????H$?OX;??b??K>G?b?????)???8??t?????hz??y?u??S??78sX?\~?xB????_???4t??`Ywf?e?7?H9V??^??i????^k?r??X?mS?+V??A'mnq???o??cs}????/???(?9;???4>?Sd(B??0??OWOFD?????9?????~WW?J??6cl:???2==M?811?Q??~M???????J?\.????w???N?L?}r?c??H??q??????]?????????6?7?$t?\???q??`_?????????H_????~?=&?[b?A?s +V?>? }?L???,????%/6?;??a???,.????xYC?????"?????m###???[0gg?#?????=m???Co?5???G ]?%%%??????88s`8u??[>????,?Dq``????n?t????MOO??{v???>?-??N?=?w?._?????????l?YW8?G?R2?$??oY????u?#?2??F-?????Xn?:W??L??oP??{}?????^????j?QZH'????o??hZiHQ?3=???????5??c9[C??yx +F????-F??????????????? ?.???.??s?_??M?]?ct?T???????BA?x???????????}????????.????<]?N??????/S?#??'??8???!???3?????4???]???xT#???G??P\????=??????V=??oW?q^?}??????2??+?|Yu??y?????4:Q?$?C??H??.\???C???????????????Z.??????wa?????o????n?;f?}????#?Cmm?~8l???????Uv??????/^? 3??} ?{?5?]'~#)|TX?P?*??H_AH?E;???cV????4<%%E*???O?]?G4?4???I??Q?^'??4uZky??????K?.????MGs??^??????_??:`'u& +j?????Z??-1z?0r??w???R?uuu ??--- + + +$ ???>?N???????????[c???7?y?\x?x?Y??UFLzhdrP???Wo??h?????g??o?}Q?kG4??+G?)?{?"?4?H Kp?^n??l?U????zuK??m!???o5?V?`?_u=?? +?U??B[^???kI?????????Z[[??????GFFX???4????G???D????,z???-??s??e-????^M???ud ]f????????????????bt?tYm3z?? +??+??f????????????/^ttt?K+?J?BA??L&??2?T*?H???B\?:o??g???c??]?8?q???3?X??)tTjp???~!?{???????yZd??????????V?EH?h +??dr??4???3??*??$?|Ti#\?P??%??b?A?X?E??G?9?ywh!??????.x- +n?z]??+????????k{M~??1?E???tj???J?? ???9?(? `??????????? ????'??h?5??Ypu~eO???[???ydc??|O?t?? +??l???Z???M??o#??K? ??n?W?K??j?p??P????VG=Mz~~~fffrr?\??gooogggKKK]]]eeeIIIAAAnnnfffZZ?!11?Qx??????#G->?u?7?v????????_?CH?g\f?{?:&-?Q|@@??c??Gg????X2af?????u?%???g!QDX?? Kx?wsHX????-?+??q?B?`?gXsS?#?P??m(?g?sF???-???t>?E?=??w5C??????l??4=V? -??DN??????>{?bk?b?:H??~ eU?hf-?,?Y????A??????x?.W????????~?B??a??,B???/=66?R???????Z[[9_??????(///++?S?????k?7???????????Q?~k?.??|B??Ez?g>E?4?Y???????^????/?te?f?n??p??l????E/????k?6???y+???#??????V/Fm0?0????"??S?6???????]?(????A:?H????O?g??'&&VP?k???n??+?w?e??[?9^?^???%?i???????B?4???????p?5??????QH???d999?5??????????Q[8??WO?n?t????7?.8?ZB?#R?????'??/v???O{??*rN??U?%?d?E????????EK??L??|? Q1!oy ?]2.8? +"~o????a?????????I?'-?>c?-? +/???MOO????)????????????%%%EEE???"??>???nz?Q[:?9e??????&???p?w?z?!??????E>),T/??9?~}?? ui\?+M:?????e???%??H??z?????i]Q??????????7??233?Y??n??EhM? Y???joo'????S7j??:==]???? ???a?bbb?o????????)?j?66??g?????????GGG???H???%?N?A???$r?????JJJZZZ????? ?1!I#U#a#m+--MNI4??*.???J??DF???????}R\\???4444;;??g? + ? i)?\.OJN8a? +?>!?????#"?~QQQcc?????? ?`?C?F?F +???T\\L +}??v$r?;~?yv?ZXXX__?n??A?M+???`cc#)t?$???N??????????E??????MMMA?6$o???MMMr?\*????y`bp????L,??KJN(,,$y??????\XX??? V??????????????^g]n?U?9???r?LR%)EEE + + +}}}?g?M +))4?B??????eeey\2w?:???????#????e?UK?T*?????8m? ?y?9T*U[[[yy????????v????t?????? ??Gz0??zH?!??R????????????????????G?f???#?n?=?=;???g????$77W?P???NMMa? +??=N???????+..???????t???q{t???}u?Db????76?DEGH????"?R???5222;;??>8?crrr``??????"???==???@? ???J?>wW?FF??[??cV??????q?ssss__???r6>6xt???Y?????/--}??yjj?O??C?[?n????0????[|??c??????-??kkk??????gff??????SSSCCC555EEEYYY??7n9???f?????h?????m!s?O??J?UUUmmm??????g?#G?????kii???$o???$??????8???~????v%s>d????????e2YEEEsssoo??????:?_?^XX???}??y??????}?l????RjtF????3?v??/|?n? +???????gdddzz?? ???&??A?H??]UUUXX???????4?? +?C????????U\?W!??v???????8??=zF?'?sfs??????Y?p:[???hoooKK YtqqqNNNzzzRRRP??y?_?????Ho??W??H??n?????VN{???%&&J$???lzF???ljj?9? X4gt?????????????d????????gO??]X?M??=?1?4L,?? 75w????6{?9D?DQ??Ri^^^IIIMM +=#??gk???? ??????????????????&???????? MLL y?|????m?)?f)u6`??N??ts?a?O?Y}nw?xP?_BBBJJ +?9''??_YY??????900066FO +0g?&?E?z?j~~~jjjdd?????????????E:33S"?$%%=?z?????n|??????5q?NK*?o????G?????e???????=?G??VQ??R)????H?P?????????ONN?????0g??pRwGOLL?T*RP??????????L??????d? !HbIeY??l?o?\?? =NA????Z ????iu[?]?)?& ??+G?}.???z???????tjO~~>??????I?}????????8:??:?I?^?"?d???????jnn???U(r???? '''333--?T??6111>>??6?? +'?K?&$???? +????1m?V???`/?? ?T?T*?z??? +???J????????????I?%m????????',???????????????Poo/?jKKK}}}uu5I,?t^^?????o???SSSIw????~???48^???J?Z?.m?m9;;;77??_\\\VVVUUUWWG&????????????Qj?>?? ????Hs?4?*??????????I,?tkkkcccmm-??B?(--%?-***xK~~>?uNN v???ZN?R?LF?i-Z??@fN[?m644???0???????T*2yjw5/,,p??l4?NiN????#?e?"???????&?nooo}Kss3?u}}}?6h9}KeH??0?E????ik?M?2m???j?~fj???&??|?^XX`????e??????? ?#V?TC?BKh9}Ke?$???X?i;?5?aVf83?0x?+???^?j?v?????? pa?dA?a?????"?] 6=?e?V +endstream +endobj +56 0 obj +<> +stream +x????r?( ?y??fgoc?_?@ ??of??`$tj'??:j???S?p@??????? ??/??]??????? +_N??I??H??) ??@ ????_?????n?.? +??(`???/:1 ? ?*H????z?-??y?@?!v????F???,f?'Q???.?/v?? ? ?]?_??`????X?K?Q??ig??}$}?#??8wx8Wp??Z?b???QV?,?$??U???s????-????!?d???}Y?2??/?B]?o(??.(y?(?T89??3??~M??>Ln?]i???Dz?>Bw?Z/??c4#???]?J?4r??>??E6?%???y?pNa?d?|z~?P???????????3??L???+??; +tSh????3??S} +to??q??{O????e??????UJ!???7M?~??qAfM)x?+???UX?'?Fa???F?j?m???I?????\?d??g?z??C?J?{??W??Z?BG?)?Y +?nA?F???????b?D?|???'????S+}]?%??'??y +?g=L/??pZ??Z?kI?@5a??z?[?z?q?e???[ +S??????,????3?iE/?|_?(??4?~t??????????x8???R???U?Z3?2C?nY??Y}??????c??@b???0j??m?>??????$T??b?t???????>????I??c???x?Hn???????j?CM??_B????????R7%?1]#2o??o????????4?U?????c??,? ??`????*??&? +??9??(???$???0 +?}??*-?4???? ?KV?s? @??q? ? c??R[??????T +? ?3?1???e4??????U?"?@?????US/?H????????C??B???[???B y?W????\W?F>5V??;? e????????\???6?-???J??duMT??4!????M???se??n?b?^????v?-??_?q?l?? +????U?????++???>?t????@??-????Y??:??>?????@+p6??J?B? ?g? ???J?$?? +???v?? +?? _a????????????,oI`?/o??~]??? +??5??-????|4??X+#??_%?7?>l=???"??F?U???O???L??*???t?YZ;?x:?/???f?? s??l?V??64?l`???e}?2/???y?J???)???w?=??2U?? +Y???Ku????3?N???]??Rw5??????g????e[?P +sM{?d???u??????vf?`w???;Q??}?ii? ?i_?EJ??wR?H????X????W"??_ +L?????I??o?????:??9?8??F]??Mu??}fm?U?S!???Y???X???(_a?E???3??*???t?3??? +??! +??w~'@???h24=????_?w0???V???x??E?)l???@Za??}3??????Y??X??l?????'y?la?1 + ??Mc????*?? +???l)_?Q???!????p???T??????[@U +??B????e???*a?z6?+?8?4??T ???1?+?8?4??T +?????z?=(??eNh?? =?}???2'?g???`?????b???X"??C??9u???Y??X/?????Xd??,??s???s at Mu??As?|?I???I??B???kX?b~h?!L???S?#??*r?\X%<H??De?O?3??Z??xP&???0????x_??@?c!a???@R#?7?HD>???? ? +????????}P$??0O???o'??a???&?_????(??h??`??Z?ON??B?Y???KN??vZ?\%m????-1??yX?:i????,&Q????k???K??"??? ??u +?e???&yN?e?:?&yN?e?Z? &y??e?????3K?'???????;?C???|6Yj??u????#?|&Yl??v???L ?I^???=\ ?????Y?????*???!?1?? E????He,N?N???x?. g??&k??B????????I???? ?c???5? ??#Q?W?]v-N???$?l???`?/??sY1z??Im?;M-OZ?-0?#??X?]n??~????.I'?????w?$?? +???}4%]Xa????:?}?G?7x??7?^?o2??;??x?Y???\??k?m ??H??EW?x?:L????L?KI?8l27?#-P/?_??M??[?>???'????iF????s???????f???&2s????C??;?}0}?B??w?????R???X$?5??kb?f/??e??X~???C???Ix???????y??????2?7???????????????Gj?????@o??u?? +?(?-?s????F??F n???????w:VN????<???oJ???(n??-h?uK????R W??T:/??/$???I????'U`??*???????S>uF??s0??R~^???????p???C.]???.??.rI05??c??&x???/s=?W????????e?e?'?U?oU!?G?????????\h??]m???E?????W?d??.????\? y`??????`^??d???rs?{C+E???7*??_??Q|??5?>????gd{??? _w????????Q??l??`!0H}??????y?u????U?J?'H?ot????^?5?S?R?}?%?K??+?????o??[]??? ??$??{Qx????,?? +/S????H??|?-????h????U=Y??R?oj???D2}??g??>z?????jr9Zd\Q It??^'2l?M???\???{?d?N?L?[!hxk?3??xO??R??.n?B?kW??c??R????}m????e?,??&???O??,????x?]i}?9??z9\9B?8x'?? +%?&?????l?%???t>?:?t??!d?-D)/Z*#.2????s??jz??B??yq,?p?3???l6?{??u0^4?^y1???m? ?ry??__???j??/?????M???? +??o??????g??F???+/????/?=? +??s'??B??.????tJ??p?m???U????E?u0?o!p????j??????}??? wG?z2?? ??^??U??}?????????Ku? + L??_w?e???a/XzS?3X'\?o??????/????_`??f-??m??`c???ha^q>< ?j^? PMp??U|?t6p?????Hg'???w???????0???w[Hk?(s*+}$?????2???FbHk?(s, m$?????2???ErHk?(s.?\$?????2???ErHk?s. m$????????U???t7t%??l3?F?5? +]?E?(m? +iMwC??@?>?F[mCZ??Pu???T?[l??v?5? +U??????$??????P?w?j?`??D??t34?SO???s??????????????? ????m? ????C?/??mHk???????6?B?5]?X???LZE%??.e?v???V?3??D/???c?v??V?K ZD5??.?Zlg?4 +????6?b?5]?k??????'??f?5??UfO????QF??iMY???]??"~???U???|????h?????GZS&??k?~??_g`g?#?)??:j?R?2?r?5??XV?$???UYC#*???Ct#?i??{? kh at E? +??u?*d +???1d?Hk????;?K?ZEp1d?HkZeQ?k???"s?n?5-?.???? +*U? ZD5??X?h??t5?2-?iMSVg??*]Au*??Q???Rl/< ?.A?!?(GZ??=?u?M?P?????Ct#???m?u,O?P????1??FZ????Y;???*T-? ?iM???u??$?oyA???FEwE$??P;@e?&jQ'?????tIF?2?Rti?7.%3E??A???E:n??????-?>???-"J?oLjl???~?? +?2x????U??dU???1????|???????v??? ? ?6`??;?nK??T?g&??w?????u?0??$/E???:G?4??????$??I??^????????D/+a??7??K??|?P9????K? aa??S?T?&]X?V.??Y??0?{??)??m +Cp(?F??l??"?]\?Xr??>1]p???????????.?|Hv(????t???I??!u??4???m???}?\???n???y???=??C'?3YEe??x???I??`?4%~?????.?o0????_?+?(???p?4?8??g??8} +????88I??3?_???R?*?????b???O!?M5Bw????Zz<9i?8?M5B_?zD?\~0Qy?8?}5 at G}Z?e?1???B`???UO?8%?.?3???H`???U?ke:t]k(A??;??jY*$]p,')??,??5?9?L,O6q_??@?=?????M@?X????1?X?"??k iF-e0???n????5??x???/?a`g? *?T??d????YH??4v#?P??e``?w??z- ???`??*?? ?k!?V?%%2?{??k??Z@@?!??8???k??Z`?D??&9???k??Z`????i? +?;t#-?+?9?:?O??????Q]??G???3??KT"?p????N??GO??O?????? ??/?u?????m8???x$?sjr?9\?o?N?ni???J??"?l,?o?:?nwcYt?7?????ke'?X?Q?E??'????n? ?)?7|^?????{?5??5??'u??D/???N?5??'q??D/?s?>?5??'m?"?D/???.?5??'ij??Tkj??=?????X2??nW.???Q{???G??? rS +\???N?5? +???^G?? v?i7????P;???\$???????}?%f?~?!????*??W?V? ??Q?:??G?|??!8??r????v;??[?I???Y???3# ~????>??O?c/????ani?c??=?W??o??? +)?;??C?L4!9?u?Cw?~?????1%????g??x^?v?N?????+???i?(?O??????*?}?0???????]???st?/4?Y;M????/!?Y>.?2?o??\e??7???-??D[????s[?|???W?????????????w??+r]?p??W???G??^D???y???T?h?????B?`8T????I?? +vV=?????[? +i??k?+/??????R???????????????'?K???0Q??'?ue??.?F?gr"??5?B?????'??q?|oE??y???}v??~??R!~F?????????p????}5?Bn??*??5$?@???W?z_??#p???????5?2?????k???+?f??76??j???^???&???Y?%?????,f`g??,?????[??K???????9?????`-;?Nu?&?? +F?Ksw?V??"???F????]?????h6?(BZ??t?NW?8m?h5Hk???????M?\?iMw?S;Y??T? ?k? ??nzj'kx??6?s??5?MO?d +?S?&|?????????.???wO2?g??)?(EZ??t?NWp@? ??X?`c?-???t7=???V?o~??????????Y"??n:j?+H????????o???I?:r??3?3qcM ??n:j?+H???c?$??G???,????w????????????Ph?> ?X???G^??~k??"??????????`?Eg? ???.?j?>?Jg?S???O&?? +?? ??!]??cI????E.L? ???2q(?@?X ???7~(?k?> ???o?D81>?{?GHGW?/??3?%??[e????i????3??6?b??qQ=K??D????????|~?3?yu????;??U?>??:}?}?????{}??J?|$?z?L[kni?W????{?? D???|??.??Z5?Z*?]???ER??g?@??\???o01?z*o?t??!?? _ZN???I:?=??e&???8^?w????C?????]?/????_s}???????o???{?R????LL?D-|?D?.?g??o??G+???6~?[?]???j???k?21m??I>>??!?c??{ ;??q]?-?~_?A????m?9D7|?????1\r????? ????????<?p`?.? ?4???? ??q????W??}??ty????NP???1????y???|???EV???]?;(??7Z`?????5?????'RO?????M??{???@??K?p??s|?'?W??????s??Ye?**??&z???_N??o?????qL`.?h?O??-?????i &?8kA??"[ ?4L+-fA??B[ +?4L+-fA??B[ +?4L+-fA??B[ +?6\+?eE??R[????9??????J?5????????V"??nN??t?????????w?7???nV?H +>i???\|??d?t? ?Yh#1??qu?&???i?????y;???? ??P????M?7[???t?^?v??? ??O??????o>?? +??^6?i;|????u??< +???W.>?o:??i\?_wxB??_>? +???]??_?? ?X?G????1_?7?????:d?iMwsr??#???Hk???k?)??DZ???\??Hyl%??????OG?c+??t7'?~:R[????9??????J?5????????V"??nN??t?[6.&K?$?Q???`9?n??4???x0?qU?:;?_???Zf|?>i??`q????,?? ??x????(!Ll?!?(?O???__]h??K?s??K40?k?q???O???W>??d?2?<;??d???Fi\?s}?????? c?O??Kh3???K?p??????v????+)?Z??jni?W????s?- ?g?z?+'"X?????W?????????f-??]XD? ?(CZ???=b??j??[?5??Y?CO??????5???2?P??D?jX???\?zJ???5!??5zP!?H???O??{c??^??@??"A_?^?Z?C??G? ??U?b???? ?H????c?s?? ?W?j`??N?A??2Q{?? +L??J"hPS&*%???[ ?j?D%??,??c??v?@M??#?e?l???)U?v ?vsm@??2Q(???V?P ?PX???u,1?0 +? +?U???G^L??j??X?i?? +?W????u????L?????=`?@|???\?p?????????S???????!Y?????????.????#???CK?s???l????*??%?a???I?2?\? 6? ??????u +?Jz??ce??2??_?Jz??bf??2???J?????F?W?2TWY??F?UX?o`M????h??\?UWY??N?U???????e?U?[dk[??_?]????h????????`n??">????o? +???"?? +,???R???C?*Q\c ?{?`??????<???+?\c???K???! +??*??? +?o???O?.? +a????e??:???7?@1?4?? +)??_ +`?`?B?}??X@;)?l_????|4`_??h?'y??????Gt?K??s???v???????%???5???????nF???&???fx~?(0?]O2??F +?>O?WqU? ??P?????+4??)??? +pa?????o????F????T?????V{!??{?????7O?g???2???No?'?X?L??X`?h'|??\??X`?h#?????????s;Ase?/???N?\? :9?4???N?m?u????c??LY?+x???0S? ^8?=?Tu???^??;E????????R????????35?;?@?|?E??t??????`_???&?R??[???$F +?}A????z??0?q?Q?q??8?QL?s???Qk??)`??Z?D1?/???f1Q?Q;&9??J9jC?4???J?????RE?????M?I ???????=:0O?K?7??9???96??6Q?V??gF????3??Dug??cG????C??Dqo?R?G????K?Emw?[?DL1??xk??EJk +??`???{???0RR??]?|?KT?-?,.a??? t????Oak+X!"0?X???1?=,??_A???dek??????7???$?? +??W???&$???~????m?E??x?U???M?Z?j?m?? | ?6Y???A7?R/?=??D?#?!7?N+?I?d{SRn?3?i??G????}I??N??? w?0v??h;?JzJ!?it +[?/?iy??Y?(?Z?h/???X?)???f/R??SX?* ??"?f4G??U6t+=?f6??ce?,?Xz??l????^Y?????3??????????n?\?PY??+???Y???`?f@fMs;G??XCC[?hf^?h`?VU??????3???,???i64?m?@?`?????????X??9?8???1???0????????o$=???;???N?v??c???s??????????HG???=?1?7?y???|?`??w???G~5J8?[?:-???'?d?????!?????? i????S????/???57????????C+e-?8???O??n???????A ??7?????????b?~?G????n?em??4????n?>???????j??ks??i?sf?~f +p???? ??Z>??#?7^:{?f"?????????~???X???q??=?C?????h?????q?????>/XObject<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 58 0 R/Group<>/Tabs/S/StructParents 7>> +endobj +58 0 obj +<> +stream +x??W?o?H~G??GS?????B +??rR?? R?{p???)???]/???PTE?????????Y????x|?e??@?dB?3??p@ +(??s????(I?>?~ ??????"?r8`dy2?4dT????????????H?2R$???#???"?8??x?$?L??? ]qx???*!dHN?@?hD? ??(??D0??W\????aE?Bv?0??X???s?????d??m2?s"u???C?8?0R??? M?K??,2|9???????? o??6???G??.??g?{:? x??)?????5G2????>Bb???H?2P???y??o?:???????#?A??JJ????_????$\? +??[4??1?&???I?N?????4??????g?~?#???x??-.???3?? ???F??2;W?$?S.N+n???r&.??Ny??ck?+0??kZ?`WblU?pJ?N|n]???n+:?: $?Y???B/KU???ee?G??????b(??????]\?6?f$(U?3M_c?oaH?sPbPK$?O]???K6???:????3??$??xW?d??????C??;{!?/?d?U?o?^@???@ n?????,?W5??+?j?*??T0????,j +N??M?r?=?E?????=?M|????9???~???????p\???p???????[?\?a?????qS ?}??z?/d&o?-?9???#ib????R, +Y3r\??????l?]inF????!ziN??,?G(x???3Rf?? +/??FT?, +??M?1U?]??`??.1?V&??:???B??g?eb??t=?????????? +m??^?>??"Um???3?Q6F????(????f8?? ?????????^??G??>(??????~9??SG5b??????T??K?????E????? g"`N/?NRi???UQV??u??W?"H????v?)?LRo?/??,?}/E9?*?@?? ?R???CQ???yG??h?HoU???XQ?gR?7yY"d? ??2??????o??G?=??`???J?if?Q???C\?O???#??/0?q????f??&????K?Cb=d??-^`$??]????5Z???????oZ6?"???y??R"??S?Sw????{????Lj???g?k^??a??s?Y$?m?`?Rx?/i?_*b??????????????v]? ~?????K* +endstream +endobj +59 0 obj +<> +stream +x???yX?u????+nIef?ni?K???iY????N??Unii?f?`??B?????[?9?????%? ??(??s?}????3?3[?7??u}?s?g? ?{_?????O??-U??/?zpo=y?!??Zm%=???'??2g?l?????j???;???[??????R????7e?`????S??????era???V????????r??b???ZC?i/O?Sy???E>^?/???P?3_????9rt????s(??W??kI?ZR?6iZW??Q] +???2wdQ?>s???'qK??!?I?Z???????????JR-?(?T??Z?K]??.?\'y??,|W?%[f???s???R?/)??????????]???4?-???>???RW?}????12???3??rv?:??{U?????????z!?m??????F???IU?(??????]K??+???WdL_??|2H6????U????o%!RE?G?/? +Q??????_???,??o??????????Z +?Z?Y???Pp#?QUmty?~i?\????}U?^???????*'#????Y???c??1o?jIwdn-??????92|?K^{z?????.mz??????\]jVS???4??M????2u?LzU>?/doXQ-???rv??Y.)e{G?!??1?????V826?/o???????????'????2?v?g?????????{z??@? ??*?Z5UZ6??!*?[??3??????????rdQQ?????*e?Dz????????"=k?????????oFz????By?XA?f5????j/=???o?????????'??ra??=??L????????:??0?|r?%)?mnN?f9???^pv???^?=?0~WN???N?????; +? ?$!??y}??n??F???1T?T???Z?^???U???l??d?Qx(?S?X????w/???__%.??T? U*K??E i$#????epO?????^?]s???'???%e????? +s~~VK????)?U?~?[?J?-???Uq??W?k??]?????@??.m??VM?ecu?????6Z?}????{?;????yG???)v??????8 +;?????????]????3??R??T ??A???4?????j??{YF? ??m??r?rz?$DJB?????9???y??W????]\s-???7????U?g??(????????5???g;????2o???S?1TM/k?] +???x|?1?mc?[????mZ?Y;??t?#C}:??.A?R?? nXU??????????????2??|??LzU??"g??0?? ??rIZ?>/???E??:}wg???Z,??.=c???z?#????k?z???wG?tm-????-dl_?dPQ?O?????Yrh????_??????6??1??L???????_O~????s^?9??r???=??2??R;Xn?E????!E??|:L????d?|9?H??RIY-?W??U????????xl?9?-?????=N?NW???H?F????Q?BQ?%???????m???/???!;????$j??-???/j?????.}d??O?'?X/,u?b ????{??n??m??wnFzO5?D??*??P????e? ???????rl???R?2]K???4{w?????Cm?????r???lw?????w?ym???#g?X?-?{??E? +R??Jpuy????U??$o???????3u ??p9?X??\K????vZL?c +??)H??:????cI??????????}^ +????>G??????}Mq? +Q????(??V?^???.-???*???5/_?'a??O????*I+????6??GLq?-IaZ\9???8??????wY??S??<^[?'??#cS~?G??i?{??z??????|9)w-???Z5UZ4?=T?u???d?d?>???$f?Z?6????gm??{O7-? Y?-?$?kq??{??Z|?+?+?w|N??B??9??{?z?k??w +??/PBBI??????j_??OyM"'J?Y???^&?kUt???6??;??'Y/Dhq??<????+G?R?o?w???u????%i?9~?????m?.m?Q???T? ?+???????-?Bd??2?????????U??VW??~#'????gni????Z?'??R??^XjM??Z??]?*?+?U????r8?vX???1ogm????Ur2B??k?|????{:? k?TZ7?????'e?s*S^????ij?K\(? c??p?/o??o:1?~????e/?T?5??????P?|N???v??sf?)83?t?????26?K??\I??cKd?,Y9UU?Z??,?[?;&p3+_NjT?*??????-!?dHOy?e?W?y_??V???$D??e??????K??W???^???oK[??;?Z???w??d??|v????? g????YI??????X ?s??u?}I&?N:{KU???(?????I?*z?n????$???~?:???=*???????2}??V??K$y??].????gm????????3??????7?]?W^7????)?{??L???4'L?=?r??% 1???U?p?l?4S???}d??????????Azt??????V??A??R??,?????o??6?????{Hi????9~???{?????M???Z???~W????s^????3?=?cIr?lW?ON????DG??PY1E>$C{?K]???ro=??9JR?`?US???6t +Qy?)??????`?????????Z??V?:??Y;Z??0?}Ppf?????vdm??r????%?????6??W?a?????r??????$???%?X??Z??L~UU?????nW ?$Y?pc?TA?Je?D?wy??Z?#C???u ?s??F?-?m??$?/8?y???v?(?Iuh??.+?J??W^???WWW??:???Z???????:T?\'?W?S??(???????_?x?!?????}U?8???6?z,IZ|NC?gx?j???z%?{?rn???8CT???]?I?wrz??a?U????to#?k??0?NW?{????msy?????N_??J????BE???Z Q?Mq?[??m????1n?qO?)??9?????Z??Tm?827$??;2???MI??????0Y?????_W????[????j????ArG?J?:?N?=T??W+ ?D??cKT??R?"=cs?+{?k1e=??%i???????##?w?n?S?r??M)??}??M%tj??:I]+ ??&??3d?P?????k?^h?y????j?7??H??j???O?|?????z???K?Z???;??e??55????S????????]????]?>g??????j?9~?62?4.???!;???NW???a?L{????M????y?.??T?(?j?C?Z??(????=e?`???y?Z?rb??.uz???s~??%?t?-m?5e?3{???W????Z0??(???????pc??Y?(????RU???y??2e?? ?$?#??J? ?KF??Q/?U??>V??J?.?????%?Ps?4???Z????T?????67????s??dg?G?&??)yGdni??C??t????U?1??????J?u???*??z????4???L{y??j??$?f??&?????I+?i? +???`<6?vq?=}???r?k???t?F???s: +Q???M??????K^)g??S??s%r?L?//u???p????( ?*I????????:??~???;??w? ??????????xl?1?m[?Jg?-??D?#?kO??zwln:?M????G?&??Ey??Qx?C???????(???&??-??}??:???:?????????#??@??O??k9?@?LZ?O????>c???c#???vf??_??6?] +???3????=~?????z!"????]? ??Vb?Q?Z???{EF? ?+M?J?`? ? +??~???Z4?'?n????N??????l?)g????gni???I??~??I??w,????Z???~W??yE???(~??kM?????*mde??\B???PY1E?????N?????~x?dj?T?w???_]?????Ef ??!??\m?rf?\X#?W?P?v=l:?????????=NC??~I?? ?????sfk3?vq?%????/e?hU?#1e?_"??T?GGNT7_??E?)w??VxU????&P??????S?T???#U?FK????u!?w???? ?%?z!??????C???_?C2i?Y$??H??t?Z???zI\?]?%"??????@C???t?)v?ag??????7??fJ??2 at U???H?jR?????_?r??FU??WK????Sj+????r???Yrl?Z,paM?v???^???????O?Z?-??6??????????????????6??r??'dGw,?)zn??~??3]0VfS ak-?5?:?I?*z?{?swKH#uX?s y?I??d?$Y2^?}?V +h???z??.???????????D-^{??5?;??4???827??'?N?3D????J1???5W~?Df?)??_????~?+????:TI?~ ?. +j??r??tY5U~ +????!?C?????C???kq???R?????w?%%?????#??h????????t??cp1N?????Oe?t?>X??,???G[??? +???????i]i^_-?y?E?W???f???%z??^& ??}Qivt??# +???_Zo???cI +xm*?Rp?]~??????????0????q?^X#?????Qs??????a????5?J? ??L?????S??[????*k?????3??????g??l<>*??kj?3k????????????.(=>G?? ???Y???y????G??Y???:D?Q?????R???~&?a???v?7?#m?Uy? ?h?L~UV?n)??!?+UJ?W7D?7Qpv?#s????%?j??7????1{,I?????r?????b??wg??S?:udy???n* +?pp???\Q??????xX>$?"????[?SeK?u??3sK?+??6??b:??55??{@??m?y>?!?w??m?n>???????????1;?S???]sd?$u?????lG?????~D?%A?????y?6?J??????^????v{???????1? k$um)?T??`?????\W?>?a????w?eF??w?|?,G?&????? Q??q?]??????!2?ii?? S??T(??C ? ?TA?T???:??t;y?I?3B????N????y?R???d?ha???;??0???\w?/ns?? ?????M\T +?kOw???.?*???)??K????`???qy?1i?\? ??U????)?v??S??W{?|????????????2???????]mM'?+H????v?v??_ +?????, +?=???4xm??K????d?+?Q???O??B?.i???%k{???4?-K???3???(?%Y??m ??Z????L?$?????'dGw,????V?c?)L?F??W????H??j????rEiZW?)?BT??e?(??=u.1?[??-?vL?0????????{????~w??M\>??m?X???i=?M???+?=yyc???????0??c???W???R???b?f??|9???v??V?????~?????????3???#??]????_???+?=q??'?O}bMYlIw?b}? ?#3?s?????}\O??}2L?L?????????x??c<?_{?f?#???h?,:?????*?rz^xs??????2y???J}????Qg5H??&?x???>?????0^?f?)?K?{?????K:????9???x???????2i??^hD??? ;?? +?i?,???n???:J????Y=??2q?*?s6&???*??e?VC?E??6??*y?4??X??0????gK?Mb??vhI????R?w%?a?p?g???H?}??K?v ????]F??c?V??\?j??(?Pt????????*e?,??X???~?????]H?Mgs?{u`S???N??i??_??qo8????????+?@?r????ukK??h?XZ8??/gs`~?Z??9?OV??OQg?rO??N[4-?L??TV????5?.?rP&~*??V^xsQ"5???c???o????:??e?????/g???C? +?????3 ???????????K??MZ4??VQ?&???5??9P?????O/N?B??????.?f?a?:@%c???z?2Q?s\qc??BQ2"?0?]??L??d ???l??=??????PQ????9???x:??qc??P 4mD?P??lU??)???tv????/????I?0[q?#??]i?Av??????lV? +??E?cQg??R?????12?6?_~WN????A??????Je??]????????g??1???3??Tg?????z?cg?H??Z?.s%?v??C????K?]7?)I[?????A??f?]???z?^??9?~?C~m??\k??"?([?? +?^G3i?k????i????NS??J?Z? ????/???79^~??w???s?M??cu???Q?2?i#???????M%??]??L^R???Xx?(???3c?`R????lV?Y?n(?Y??LZ$??+A??????S?????l?YT?@T?d??????v??????????`???*???????)3??VLeu??K)!??{??#??W???5??????Av??N/??8?M0[ +2?:C?[?2y?4??(????~??-?????IQ3wj????p????'???N? e?L?????;??T?kQ??4??F?????e;?6?i0???^T?F?P&-(?`??0???%??R0??Y?s??8U/9?JY&??+J?d??0?H?.??i?@j?? +?(ge{0ju???g??Y+??wl_(??X?z?????Z6_??O????C(u?=:??S????????;M???+??X?JT6?d?h-?,?2I??]q?idwQ???.???}o??t?4?- +????w?<Mr??????]?J?W???4?M?)V???]???|?????}?????O[?.j ?`??Q?F???? +???*v.na?K?ZZ???*?2?$m???N??SV}???M0??kTm?AvQu?_?'J??v??6?L??????7umK?T??w?<;.Of?N??v??????w???Jz?un???a??pV????~??2??pNoY??S???f?? fu?E????8? F???????T)+??o??m?x?????fV????E???w??On?t??X?W?????Z????????[?\]??1y5?!????4w??????K[`j??+?K?z??&???h?B??S?`R>? ?@?$???pe?i???A??0[??~?J_?G? ?^??????w8???w????3F???;T?kQ????%6e}?X????6 +??A?6?K?}??OS???=>e???T?6{K???1??#????M? o?x?$??3?h?|Z?6?)??#??(G????????(?@?P????R3wz?y??Ei?8???"6??ow??????35???? ??6??f????@?`?m?.??:#???t??????c?B?_?? +??-?G?x??/P?z????O??(??z???????????;??? ?????O?/??c???W???-???????~a?F?????U???:?}??e??Q~?2x? +?I???ch?{l??@??????%??Rxe?*y???J???Qg?d??????*({R??k???I ?Q=E???}?9?>s$ +?JZR-?? Py?N???tii?P~???BMQOVW? ?h?, +[E ??e=?(??sV?zDW??9?? c??4R??y_??b?Y?a???s???C7Q????w?h???E?hL_?|?????;?*-?iQ?P~??\j??????F??????[??k??????Z??zI?}K[?u9?M?d?:]0?????*s?=???*e?,??(??y?M_^D3h? z??Z5???U ??? ?w???IC???/?C??????z?7????;??^zd??U)+ ????x?.??m*?\??|????? ??|?S??a??A???? i?k?}?y60 +??w?T,(?T.??P???K?0?f??=K(d?|CWwP?~?T??|^?G???????{?%iM?? ?Yu?a +???F?U?o!??y?????T??t#???o?#???)???;????R?9?????5???Ej??-n?0??0?????>??c?????.??U&/?>:bR&??Sy_Q????]?I??~?Sq????????/Atfm?G?a??^?P]??w?T&"??'M?:t?po????(?a7=:?????B??K??S?P??e?????????&y_B??? &c?u}?i??????????t? ??] ????P??P???J ?w??lJZ?A?3F??I?9??b?f?TWg??Q? +??W?o?f? /?K?Y +R?WK??????6??rO???Jc?8?Y???@ +?????a=Yb@?;??q????????'????M?.????M?+K????P??N?jJ.?'&&?/??)??t6?? ????=?????? /+f?]???5?G?,Z????s?E??}tD?8O???,?w???d?Iv/?O?$??,L??C5k??v(G?? +?@AAA\??#G??-p?#?????:l??wOOOWWW?kPA?q?!?4?'????OQ??Sg??K??-?4T??????4?Xo??Z +??_P-X4??????0Q +?????,7f????yb?+@??;????????>i?????c?*@?????7??i at W??t?lV"H????;BY??Z????5???Fc??4R0?y_???Y?V???LTg??M? o?`??f????????WY?6|?\j?x?Hx??}?.G????w??*?+?????1???5?m???,a{????????%???b?T?W???l,?b?dZ +R?U??f?}??j???7????Jc?8?ti?tym?????(_????4??P???Jp"?F???t??????????????????`???M?ms6k}?@Z5?v-????0????c??????4?7??E??x_??;??*???7o?:r??#???N??????(?? +??;ukK??????=??4a7?9 at Ybw?????I^???`(?kL???YuV}?A?JY.???`,&?????9??F?P????:?oN?;????~?/????td?????0y??:??]~do??6?f?L???K[????LsO?????H?]???6;??J??rs ??@edV??%??I ?Q?l_?????2?????X4T?#?)?N??v????mA;?<3j?_??^^??????? 8?W?Z5?>?????G??9l?i?~?wP??u????W??0^6)xg)@??,Z????????o +???;???|????o?"?6??r??0??/?!??5yf?????gx????Y??3m??J??S???w)??@??X+??E????e1??I J???h?dZ +2?U??f??egQg?#?'???HPf?Qj[z???4i0???? ?????P1?|?? ??????0p??T^m?S?v4q?;?5????`???w???S?,W??eR?0???",j?:?(?Zr?ky???3e???t%?B?????S?6l> +???????t?w??o< sl5?Y????h???i????2),??'6?w +?O0?X4?i????,???????V??)l????/ +U???????^?r????h}?C.5???g????O?&?????M\O ????V??z(n??f??????f??Ng? &?X????L?'???H??;? +??~I??C???CKj??\]x?!?:?? ?????????>?-hG??????{{?D?;TO>/?}??F????|????yX??z^x????(n??d????x?^b?hxg???:?&S??J^*???`?^?A????i?`??? +v?r??r?A???C???Y?????c??????]??h}?*?A=j??z?c???&???1_?????)#L???????y???z?y?????f5F9?`OZ(???H??=?:?O?g?Y????7???x?$?7?w +??y????+?V{?6}Z????Q??6????1}Yi}?:???v?YW????4??2iA??@???I?`?? ?? PN,?,c?e?bitoG"??1??f?/??f?{?????P???wT,r????[G?[?>??P?4{?:z??????n/b?o?P?Q? +/b?]?_??? ?h,????P?lV??P`R&?3???????X?t????{?i?0??y? +??7]?|2}??N??S???Z?? +W?-???????}?????y?!???zv???L ?N>+??6???o????z?He?RM?I?*?3*?f +?o>b? +5??iK??#???g)?????8???????K?.?~???4w??}????U????a?v}@w????\La?)? ??tf??*r?*c?????>?j????pEV?`?I?e??fV?????`?????G???O?]??;??????????3~g7m??vf???nnQ??@{?F???ch?G?????o????zE???????y???zi?Q?n?U??ZX9?"?YmV?*?(??I?????? +???O?N?z?#mY???????L????+W?{z?_?W_??P?.?b??????:????'???NK?K?P$}??U??u??Y9#gT?q??E??a???|_~C??A+???????o??`y@S?:P?H$????c>'6l???? +?U+??=~??m???A ?E)G??Z? ?#????\??0??????A?????q??*]??\1???8?4?Q????????I??XM ?F????s????w??y?*???+k???hG}???BK???=???|_'????'????[WdV?,? +?Y???hb??? ?V?/??? ??E~??C????????ui?:? +?h ??'??[?mg?I??????O?s????_???3???^??*c????Q?a?KY??Mg?3????n88?4?(]?????1?F +?GP?.?u?,?????4G&??? 4???????W??*???j>??MwN8'?^q??,fz}?~M???t? ?g5??A?*???KB?? ??C????(?XH????Q????\?@ \?H, +;???d?r???lj?4????L;????|?ug?????/?2W?SM?r??"?7@??j??$m?eE??????7?8o?im???M{?G??:.U]]{??o??-?J???????3m??a?U.?~?z??4v}?????n?[?)??i?ui?e?M????3??Y9?w@?g??j?.(??H???A??O????????|???;??K?:F?&@??fe?q??L?>}?v???,??F???e??? +????????]?U\1????"?E??h??R}U?Z?#??Qy???mZ??7??a?Jy?uP?T?C6hzo;3~?D7??h;?B???]????:??|L?o??????|_?d?%?/(R?kJ? +?h?E????b?X??R?&?H?=?$E??s?0`?H???G1??/?4mNi;3t?p??iN?=Lc?mW???=?P?v?Qq???+?z?f????*???um)g?e}4+??|}U?2}?4|??-;??|????h???b??w@ ?:?????mg?o?!,?>??i?????????c???Oy?A??8 +?N#??????z?J8?????sF??u7E?\??'?$???d}?4;V?3*M???oY??*?v?e?????Q? ??h7?????f???:???????w???C?{z?_?Hp?w7??h??RZ????#h????fg7P?*:???z????7'?2V?E?????|?(g}!4CV???JWe???|???;??-??????_?c??????4**????u?7 +n?>t?p?|od?????????0?g??o)?e?P?3???4?Ee????S}?????r? 3???iK??#I????]s?????m???:Rp=?C?hqjk???S????v-?N?64?/MCkg??B???o???ze`y?'u?;?????r8C???e}14[V?d??V?/??? ?? ?P?!?q1??|?z??H????E3?L99?W????9???h????hG???????x?7?N???$?sN?????|Y????H4kKY_k?????m???HU????????[??"??3?.1?t?G???W??Q!?????E9rt???h??tmZ? ???????9t|%?????9'???*}????????-???Y9?@?gT?8?%??e??????n?P???C???ux?????cbbO?????`????}???h??tx)]??? +w^??U?*}? +Sm?=?????"X-z?Zd?????????? ? +???})dl?I?F?m?[??:jh.X?L?V???]?x????]?vm?-?m??vS?|s?/?F?????t??rN:!?^?S?^}?m??]%g??N??/ +??????U7??K??#?m??~?q??????? t??$??4 ??#?}?????[???????^???????i????Q?????3y?E[??3hY8???.?KBT+l????\?O{????h??????u, ???|w?q?????S????PZ??]???9?|]r??"i?????\??TV???Shq??A?H?F2H????Kq????|?'???<@#cW8??-??{???&????g??g?~????N??/'????T$?Q?~?U?j?8C +?? +?%???f?H/ q?Q?????3?]zy=??u????3??-???[us?8?Vm?????????/???>+(|%v?xSi?e?m??,?j???dZ.?Ek??(SI?? ??m?A?????J??R?g?i??:X?? +?d2ee??t???????|???U'~???Fc?7????ta3?????z???k???L[?-?Y_??Y]???X??-?Y-?U)?????(l??????+>l; v??:?hl"?888d?????g?j????_hHo????T?^L?^?u??????u?$???`???=?Tg??U???b??xF??n n{??Z???I#?????i?xhAXG?,I$??7o9rt??U?s??9n?U+z??F???w_??m|?S????D?Y{????+?,? +?????HWqE??@:Dp??K???1????@S?:2p2?,!1??q?s?????+???????s?^^?)x???[M??P??E~?-_?L_?? ??Y?C??8??\_?):!????Z7[??S|'v???pMI?????9`???????????~w??7_~?l??y{??q??zy??+;?\??????|????5?=:dx8?h??\?~??,f:_?^`????*1??uX?eY?"?kI?@aF???????C?NC???Y???X?????f?&\9?u|?????/puy???]?wv?_7?v???!c?#??,?oUr????#?iK 5Q?????+I?J9W??????x?zkuG'???$?????HsL?]??????????dw??5OG??p?????_trq?i??YS?)???}\q?9 ??S?I^?h?T5?/b?-???6?!0??,?A U^W?(M?+??2????]??7>?x?=????-*q?YWk??????Z???f??? ;^???}]??????/?????b??s?o? pF?A????????]@?]?G=h?L??-???i +??1?:?X?\v?@?/ ?N???WS? ;????Yzc? ?g?(p?<7??U?? ??Eg??kK??>? ?- ???CW??????d????q Z?15?FuM}Y?o ??w|g&?y{?3?Vwp?E?$q????$c}?%2`1?U???'?q?????o?V?.??%? +5??Y/Z.+g2???iK??#????&?u?p?5??????? Z0??54CV?l???+3??????f/i?{??g??{Om?? +???? +????B]?I#S?c?/~??w??ol??a???8|?Jm??P? +?j??H?T+?"F ??G?????????b{?Z!???u? +??^Y?????. +\?ylZ????Vwt0???5^??O?W?[-&?Kl2L?8xs?????X?>?'?.?????4?IY/???H???*r????St??6????????q??(???:??&?b???U?????~Y?vpR????vq$???{??GIO?W???5???z?M????4re?????%?f?'?kx????[^??i|?w{pF?Q?????>?xV@?=?0?^Ckg??1?? ?@?: ?&C[?'??V}8????'? +?+_???M_?R[o??f????P+?????\?'?????s???D???,Zpg?7???_KB +H???R?!:??fN??n|??ia???2k???BE????=w|?K??6vk???)??????f???}???r?ZYp3?oV??v}???uM?=??JNj???{h???Y[j??R?.???c???m????u5????1?#tpV?ISu?:?Bq??\?/?~?x?z????????Hmu???a?D?}:y??3???8i?????:????"?h}y?u@??h???K??#$?????b?}G+?????_7~?)@??:TF??I]????d^) +???????^???:?`O?q?(p????I#?r????42y???/?????????#i??? ??/h???? @3??j??$M??"qvePoi?h/?ZD????#?s{?? ???:r??c1j????????6d??!?????s`\a?i?]I?^Y? ???N.?e_?=?U?????6VwH?~???Z???W?^d5k?U7)?%?/H?g?P?.??5}>???NO?>?4?vs$???????n?e?%?Fu +??{?I??)?J;?}j?? +?/??????m?????u??<+g??$??_? 3+?z??`/8Cq?t???J????b~?? ??>8????+M?N?Pxmm??wb??????#9?????/~[?~Q[??zq??????????l?e???X????????T???uR??hY????JW?/??? (b??R?CKh?$?F?>??H?2X?`+g6??j?*??\Y?ylZ??aQk??]???s????7~P??tr?I#g?Dh???Z?4G|}K??)??????????4Lh ?????T?/?F??`?s???}?i????h????X????b???4?????4?7b6????#?)??^]%?????g?8h??\]ir??o??????}m??C???'I8U_?????W??qF??*B??@:D@?=?4??H[g??Wh???? +?? ??c}?s??]]?!I8UpeE??w??|ku?????r?fUD?-?5?J,5?%B?b??U??? w???????l??????I??????{??,z????"?I? 9??C????|A?G?????XW???g????W??, +\?y???[?9?`??R?????S?????X/?_??q????????o??j???A?3.?d"??p9fm?????4e?-??b4i??I???++3????s????8?`O;8I?I%?mT???>+g6?k???w|g?`?????CS?AU?h?o?,?W????7?E|?=???????E~???,???????8 +??@?`R??'H???A3}??m?Hv?O?{O??(e?M?????Y??!??BQ??4?7??b???>5???Ae?-????:??6K??T>R@?????#??KS??????c??!??C@3d?,&?\[?W?q???G?OSv?????;_?{}K]i?Y??ZL??? ??^Q\?:??5{?$??s?????jI?Y?b???L?FU???d????/=io?=???4c?l" +??????>C4V?I]?Q??s?u?;?>?w4???`W?nT?????46?QS_?* +\??5???'y??WVHNjk +X??~V???WE?|I? ??S?P?w??zm????Y?7Z?? ????Uh???w?J"wg??#q??1?{:?`O90?0`????Q]?;???? +u??w??K?9???3}R??b??y|?%???R~?EWi????XY1Z@?=??/?e??;/??O?>`?`??M?^YZ?u?$rO???????Z?Qpv=a?????U?U?ct?"?Q?zqM??V????????????b6????^?C?j1?Y?????1???'|^???{??>@g7??wi????I?? +? +?s????:???8?,???3?'?q?????{????WW)?oj%???42 +g??t??> ???q????l???:?1? u????????????sh??4v0=???A??3?k1k?*qL???w??O????????????;???~?(J?(A=-@????LT?~!???????u?&??????8?4???????3?h?/?b??????????~\L?N???????`????????3??????U\??~P???9?????f?:???S???ch?XM?Y_??????D??:?A?????uu?Q????? jm??}cr???$??+J8????w?qU????????VZV?e???2Yf??e6M????L?{??)??R????X.??VJ*?+??,?E? ?MV/p??{/w?????o~3M??????|?o????=??8???R???? +y???c?\??Cn??F?:[??????W??K?0?E?Y??a??j?'???P??????K?`O]?Jupn}I?E?]??e??.8??????? +???????>QgF6??.@??h??R?V?Kn???FJ?R?6G????`??+Dw?Z???p??a?5????????P????%Cb??r/]?????;?U? ?\_?l5??? +x&???P????}??uHX<8}???G???$5=CD??e8?Z?.?P?]?t?^?1????J3_????????\.?G?U?I_y?Z?}Q???_?!q?]????.Pu0?Ny??F%?2m?E?.?^?????gK?????'U??R_??W?Std??2?R?T?4Dn?^?M?7O??&<# +??=v?C??i?_e75?4??????em3i??3 ov;`O^5"??Y???-?Ul?p??a7?*TQ?????9=????N?????;??9?:?6M_??:??e????1aR?Di?K??w????m??????????{???uz?????Zs???"???]?v?i??? ?>VlxR??(.???-/^\?{??)'??pr}?{????I'WI???^yL?_??]t7?-=???9?V??P??????Cr3?????IK?KzJ?k???@&z??'j?-?9Y|di??o%-??t=a??9??W$l?'??eN?Mte^p X??5k?D???ISZ??v???m??k??x???5? >-????M?K?Zy?.?{?y_Kg7H?O?^????Mt? +?S??? ???hi???;Z|xI??W?V ;=?z?????????6??YWi?EW?X???P??????r???3W6=??w??L???Fe?D??'N????4oW?>]??_V?^??y?}?d??OI?? y{??????S?u?????????Rl7?Z????,????$??W?. :&?QS?0-|???H5O?????]????*m????????i?i???G??H=?????_???p??L?????/?g|???e?????^???r?2b?Vg???v?????8&?Udh??@Y???%C??x???*}y??X'? x???/h,?P{?????rc??0)l?????!7?n???=}???m????/?3S?>????=e?c?j????M?StY?f???LQp ?? /????a??U?????@?0????????gm?N??V?'???4??{?? +?sZ??T?X???;Z??'i?]??!n/???y?`?]q????5? +?(6>%?Qf?-??G?L[o??]:??=???????1????Z&-/?3??V ?G?g2\*???+:s?????K]??%??????=b????????????U??dlyQ??kJ ?'g????p}E??"??8m?:???+??? +?U?H????O?^) +??=v???? ???zCUvmvL???2?|??gw?????vdAdH}I??b]??????????d??????oHZ1Lu0?6?pcm?? +?v?MU?????????????I?4S???????[ahQ?g5??a5??&???????'?^bWlxB5O?????am]?21k???????p??o????v???K?.k(S8v?E@??=???n|??h??F?"}0V??@???S'?M0??s~??j2V???+9???????z??,?7??9??e?kz?(?NKZ??????????U?????????????f??????????,i?3??wIW???@?=???9?&}yzE???=(6>uf?-?r?]Wt??-c??k?????c?????x??o???S???E1??^4?e:*?????????>:\n??F?:X???4???{????(??9O?X???=r??????~v??o?????T.??`?+???Q???]??_??xp??S??v?+????].??P?I}????r3?????E????g???Btw ?????[????I^?p????r???eM?Dt????hR??MO??{.??:)|F??7??P?}=??FuAu?????_??p??K??*?^?+N0?*E????4?'?3???up??W?pjm????!?????/?K?\????v?)~??3D???4?&?oo??)?s???v?R_?P??L?*g??????,??R2v??????? ??b?????a???d,???>i?????j?cLu?\zw??!??|]??????o?%M{Qz?N????f:??be5???)>?8???%??{)????8?????il????s???????????[???Yz|???? ??ak0U??[?????=)\???4?-i?=?o?H^?D?????? +???P?]s>?0????1g???????y??@PC??K?????b???)?q??7??s?????:c?Q???????h?:?I}???=rO?G.?>|Ez?A?????N??'H????R7???e$z?????2M?????Y;?%,7??;???{?5???NtA?W?Fm??9)k???zMb??y{>??aT????Y???cW|)????? y{??/?S?+[??n5?*k?T???????{???~vG?7?T+?7T?X +5?k?C????%I?????? ???????^????????X??&????}ee?'VI??H?? ?{??MtO ??y{???/O???A????S??????"??)?????)kw?}????C "Cj?G6????%K?6#????{?9??= ?O??4X????>??D??-????????rv?OY?h???n?M?}???+N?4\???d????I+t?U??xP????'W?+2??wU?:?.?.ybe? Y?r???\i???1H=?K^?D???_!z??$???uy?.?????v??????p#cO];? 2??Bj?\/? ? ??:????u?2^?AW$-???@?:c?IS*??????'U?4X?????? ??#?????8~??a5??euyG c?oz???????',??????H???am]p??f?W?????s????_2$c? ?'V5??v??2????r??=5g_+?p?????*)|?4?%i@?????? #??3TfU%[? ?/??????C1????????`i?X??b???Z?5?????3??u?-??8????#??oW?????d???R?:[z?ii?mR???[C ?%h?I????cu^??9?&??~????????W???q?b???vkC?"????a??Zz???ry?&Ce??T????a??hR4?U???????E?"??!?n?????@G????pXM??3eq????U#???~????,?Wd?u? ??YW?? 4??????# ??dE??????t???8???E:?RZ6??$? +WK>???@@Kk????N?f]??8???5[^L ?'n??ng?fmy?oXhC?}yz?? K???T]?????????????}??f,?fU!+co?9?NZ?????7?n??????V??&;????M?l??;??S??,? ???k ???f??]L????rlH_??????7?^u0??l???k??????K?????HCn???\ x??0?:??:?6?pa??????????Vn???b?r?t]???-????4E??{lP??y=??t??Um?.????r??M?4?%????????"??4?t4?U%??????s? ? +??????????]??L?????N???????fl{*?J????^?>????/?K??o:??${?i?T??G?3vN???k???f?o(ST??.??'y??????[1)k/8l??n?? ?????*6????a??jWb??????????7J?:?n?m?%???P?[qvK??I?kG??^#7`O\zW????9?Lu%v??E?g?_???TF?L^9\^???PP?????4?s??????)?f????T????k|??;cC?vc?]?qta?|?????h??t???ru????????wq!?N??o?????|??Mv??????5ju???'Wg???rxlH_?{???3t? ??i?m??x:??Z=_?q??[1??N??a?y/?>t?w???{5@???T?^?Q?(??????3?nq???G?????b???? 6\?e???y?Q+6F?????G?{l????H?A?!c??????qta?|??F?? +?h??{\h?c!?_O??4???k;q/ ?? x(cu^????W?,k??dP??9????}p?wW_???D?? + 9D????p?????G????{?4???????|M/??????o??P??:??.P^?>????1?{? >? +???,??@??=?a5?,L #?$??9??X?N??Gt??StC@ z?8???"?W?c?{? ??9????}?????%???-=????a3F/Pl|J?*{p???=>????;_?/?w??=?????[kTn\e?9???n3?????N^|???FtZE?*{??? +O?Ze????G??{?K?`??=D?)?+???b???V????%?*??`????????/???It0.??a/????8Z?*??Y??y?w?`o?_? ????????P??Oc?z +??6?o|???????DG@]qb??????6_> + ???}?+?? +???#????????TWR??m??????p=f???????>???n8?????????l???&,????????????U?Gy????$:K???-?{????X????~???sC?? ??P??i?4\H??=)q??2b???U?E??>:??Kg?-Ot?????W???)6?????1?W?N>hu??`???5??Xe?y?????????????5hDG ? +???P?????????????H???)????g7V??7?s?????????R?9???0?cy? + 8?a?O^?r??^??E?\?G??????r?1???????Mz?w`?>~ +?????V]?q???s?km?????u?/%@4? ?i???'?t????uE??~?'??????????Z?1@? ?c?(s???}????"??7??g^?X??,h1????|fOw?????_(?D?p????????_Xu???"e?|?P.??]???x?6?}(7?I?? +endstream +endobj +60 0 obj +<> +stream +x????cNw???'$"$!A? Mk?^??V?Jm??F??&??PZ???Y{??????$!K?????uWd??}??~?q?u}.?>??????????@.???m??K<<?????>???c????+??i?3???{???S???????JS????f?z??/Z????o????,.Yz`gA???%??k=???c?????K?????x?/??X?y???W._????????I_LL?????}???/]?v???7R????H_X??l?2??;w~k???7DDD?ed(cM?!I_d????????>c?l?~???? ?qkt???R?J??}?????=??=K??&%}??-?|f??????{g??C??????b??9dU???F???????iii??T?o +Y??,T?B????????W#???)?t}???f?j=G?X????>Q.?:(?e??*??6???????*gk)]@Ye??????}????LE|O??9??F6???ck?P?~?K?-??? Kx?u?????d???\l??? %???f/[??????s 9v?????^?."?????_k????K?222?g^????{G?N?????L???S?H??C???c??@?Y???????iz??H??d?_vn?????[?F???$?nA~??\???]!??????u??????#Gn< +J?C???????+tj??$]ZS?Q????#W???????D]9???G????K `\fV??{O?????O8 E?n.?????? +JW?????m>n????=?>0????=????e??O!?B??V??>?????it?????$> ????ZU???:hV??M[Mr??? ?i???fNj??9?T??k?????_???,>Qz???"?|?gj??J2??5????~??e{?\???80?3?????CS@{9????+?>x??"=o`?aw?????"????XZ???????7??$=l`D)???=?E??0? +ejt?2j???"#c2??E?????????=??@+??q????g?FI?Yzl??/?jP?^??a?J????}?s???x^????????W[?M??oV?D??? +Y???G???#???8l?W?v?K?)9?^????9r??]w???? L%???>y????????wvn7????O?? K??.0??????? y???sS@??i?q?''??IO?X????gwl?O??ZV6???jN????1?,q?????k;???t-b-]??\???????}w?G???K?VL????tr???r???|t?????7??????N??^%?@? +4??????~???'s???1o?|Y?9d????U?Y^?o??&??I?yr???^+m?>??*????m?? +'??I??JN??e?????+?VJ7??s????"???*7} ?????K??+ ???MQ??}???y??]?q????~_,???%??dO??-????????D?!H???????c?*d??E????v????P??G????M?H???/??????=s' ????OO#n?_?A??v?K?\e?????I?`???:u`???n?+?o%j?j5~??????d?yeJxt??9??????P??={~?a???,rC?2?|v???e3?z?]??u?v]?????q??J????!????+?W??:??l?7?wy? %==????u*?(H9????????qo????;'7???V??Z@!???????????$HO (_???/???W??? ?ky?????Qw??? ??qd???6y??h?3?!???z{ j&?gPs+?????_p????h?uH ??zq????KW??~?}7?nVT????u??5y???oKN?L???m?*F????g6???LQk?????9r?V?S??J?zx?P7g?????|??? ???W%[7?:???1?P??G>????t??Cf??{???T???t????,?}74)??C??~???^?dk)]?????Ku@?ju|s?????&JhI???Fw?? *??????:?EKUh?q??=?????5?|?? 'GNP????=?+/??*P?k?q7^?d???V?'?|=k@?J???k9?c??4??B?n??n8??a???????xpC;?P??{?J9@??????7y????Y???J??zm?.?????/????????k?????,???}I???4?WU??%/w4p??u?oU?d?3????A?????6~?8?\? x?????H+P?????N?3`wC??????k?E??0??g?2 +?8Uo0{??+~O9+y?u???~n?9DE5?R u???7?>???l?|?????9d??`??e???a?O>?y?qk?`?O?~7yDeG>DS##C0???[?_????????o??6??M?LQ% u? ,K??n=?????i??h]?D???sz;?/]??? C?5s?*}?{n??V??:??|??A?? a??a?9?X??[?5oF%??U?y)?????w???%?(#?:?%k??G??{# Z?G?m?!;??y?B?"??I?/C?mb?)??f???_?OL?jNh?????|?"?\?DK???????(Y??????r9 /-.t?g?????e?E?P??U??m???GR??0?[????z5?^????d?Z?1u?N??^???y???2???O?E?3???(_?[??;F?J7t!???M??2?????s?????-???u???! L#??W????u????z?yo????KI7TD?h +???a`??O?z???n0?Gg=?wp????t??? ? +?V????~ +?e?L+???g?j??????t??!????1????kzto?????[*&]???????? +??p???????sv~????????.d???wd????>??x]?X?OWv???f/???j6:??????????p?S?M?????gt+U???`(?%m????3?*???U????H?%t*#??U??W??nh?ta???GWv??7k?f??n<']??/???i??0??6?h?}???E???r?? vw?????+?)?O??Y?%.?w????????6?I??:?Y?????kY1?aT?u.?????????(?o??>??5?Z????:?+-???b?m?T?????8%]^?=??5?n??t??c??f??\{?G?.=??.*?]????n?K?;LI????????|?n?????.$??????? _????K_AxPW!s;W??s?\ +?e?V???s????9ZJ?tJ?&?????I?q \?4(B??YC?n +??t(??? ??h???g/??7hP??;'?X??tc@??[A??xF?????{??????????#s7(&?????A?xPW +?R5??????oP??{??w???? +??M?x:??#??@;?{J?t???U???6n?(}??L%??5??K?{0,???8]?%g^?a??_?>?HS(????,?RX?Y#??.??'??v????t ??C?R???X?cN?Y?-?????b???N?=9-?w??f?f???t????~|7/????O?H_V?????????^?a???5?????v5{???'?@??v???t?&"?o?????mg????????;??W?Br?????e?[0!???-?m;?J?????I_6 k)?7?wP????NcW??&????tf???%??P7?>?< +?~???1*P?g?G?ww???3?f?[ gVkPV:??nh????7,?????7?6l?c9``?? + at O?Y?Vi?#??n:?????#?,???,??,?v??I?9m???er?r?????^??????Ig?I ??a?2??@?t0 ??s[XK +1? ??C?o?s9?o?A o|??n?s9?,?k1~?????? Hr??gc?I????$9???????;???&9s??Q???????I:AeH X???t;@?I?( /=|??2??y"??????gV?nC?3?4%???l&??`?? +Ip`H1??C?U@?????H??t???|cM????&???)????JvZ$?????]?S??bh?t?&?????t???H?,`t?O??I??????0???3???n30:???'%h[?1??? GF????? LF:u#H???N??????0???o???+05?? )???Z?=??0??????H7??`?2b??*?L H:????? ?B???5???B:??J ???Q?o@i?????K?^??P"?|?+-dS??? + +%??@??\??~1?9?????`CWk?Ne??j??b?O??9dI:????o???9d?tb???a??t{?jH?6?)??^/$??&?? +?S????1???n??R~??o? ????C?????TJ:??_?????s?5?~?9??\7?Nu?Nr?]z??~??TO:??k?~???I?h?t?C?2??i+]????}J?_Q+?t???H?:t(???e? 4F:??3?????a ?t?CO??XU??@??z????"???%?????+KI?:h?t?C?2?^\??@?????????t??H?=4,?? ??4?#?????tu?~H?>?(??G?|?? +?"?????????I?5??t?CS???l+]??K???x??E??@??g4"??0????1 +H +????t%??I??]??????b??4??e????????????t?~#=?Nq> ??I/??s*st??t??Fz4 at eR?7?* ]???P??[sX??$=!??'?ZI?+ ?C????;???I +(_??G?:??????e?_YV?HY??P???}xe? =1?T)?)]?????"P???? +K?" ???? +endstream +endobj +61 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 62 0 R/Group<>/Tabs/S/StructParents 8>> +endobj +62 0 obj +<> +stream +x??V?n?F}??G*?V? I?$?? ???!?E?$?i?'??? IW?hV0????.gf??9?0???og_??_???|?8????W??+?r? ?q!????H?# ??3??K?t???G?Gp?????l|X?G??h?k???@??? ??{t!??G7F?8J@??gr??o?????7?:?o???v??L???v2UN?Gqi?".'?I?&R9??{????????(??????2]b????L(t?7??W???I ??Y?[{CT?????Li%L????#???L?]???!?9????uq????}????? ????4(?a??l+?I????_$m???hy?:? ?lE??'EA?YJ[?)3(?x?{=???@??-?f?"?H^?j?eT?bf?p?|aT?>J??MK4?9?,??:?E??(??2??u!?|y=?? +?????_?dm?P$??9??g"?A??&??????@(??{????S?6.u?}"??Mf???? ?fkk??x?ErS1b w??+?}?5??17,?????I?????n@?8?L???Z??????Z??QO&k~[vK????2 +?>N8??Tn??cNp?????g???e?+?;?y???**??S?????Oq(?@?C???=?z????????Y?c?l??O?T? ?u? ??*$???)???]????N|?R?%'~?j???? +?m:%?K#??F?'2[7?F??f?/i;??Q7?>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 64 0 R/Group<>/Tabs/S/StructParents 9>> +endobj +64 0 obj +<> +stream +x??VMo?6??????i~????@g?[???q????fl????????!?Dj?(r?ER?73??3????&???s????o??p??3????GI???????O? +?/6??u????p??pw?[??Q9?Y +????#?!PS??,????.Xt?U??BE?????{1??????/???`y???!??T??? ?q$??I??"???=????_??; ???# ??|?a?&3?J??b?+.??2??<6e at s?????C??G??R??T u?J?V?Y??U1?t??h???a????KK7???"???~???1#?3?d?5*?0?$FF?c?K? ??????S?0E}???%JP&aPf?|O??4??r??D?c???2X{?)?[???A?F:??C???6}Li?n ) /?OEz???E?????E? +???GB-????[??? +?>??p?c4{? Bq????kZ?mB? .??u?{?Xf?d?-??n??????# ?5???E/???H*&/???=?#? +???7??x????|[?Zs*i???B^?????p?B??h??%H??Y???]U?>??I???4Y??eY??c?&U?>/Font<>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 66 0 R/Group<>/Tabs/S/StructParents 10>> +endobj +66 0 obj +<> +stream +x??W]o?F}G???????{??U???t????uv?@???%85?T???c`a`[Q?`[??;?~?] ?????????~?]]????`? !$????`Z VM??????????3B)T???C??{??n???S?RF??'Q????????}?Nt??K??=Oo??FTiJ????i? +h???tB?-?????)?(????Q?7L??!V[??=? 0l4?n?5dh9??-x?????!?%ZV?G/>?K?????>v;_??e?}:?1+_Y?s?O???r=???????\????n??,???0?????/;x?dK:??????{?=???H???]?e???3???@2????????,???yM +?????x5??n???c??n??m???f??Rr????? 5'??? +??7?6??V??i?E??=?^??Hru?`A?5???]\ +??????,?? ??{???u??V?+??'??/}V?o???? ???r????K???VR???r??:0=?)??`??V????y?c??h8????????6?I?M??N???!????????????????c$???Bs?i8[M|VTT;??\?$???J'?;?M????9X?X?rM?w?U?W?j??'??"????~???y=SU??????M6??B?Z&7?"?u*?KZ???2??N??6A,?c?Q?c??5??}?R{??????wXV?:???>???$GsV?AnLH?5O?????]y?t%????:???????R:V9z??/O?Wx?@sp>?=???$??)c????u?W??WO??4Q2??????- ????9?Cx?P?K??T?Mv?(_?????6??{?N?c?h=P.??f???P??l?4I?X??z??'o?7??VE#?x??Il?I"??L?/?XPsTR?Q"?o???Y?q??????d???"As?K%M??e]??????????}???fK??n?T??K5?'???????;97?????w??+?g?N?K +h;??k??jL?k\???H??o???J`???\A?EH1(~dS?b]??[/??u????;2??P@??j*??h +??0I?+8;??L????X?fRk??yo??????????*???I?+??)x%h??/???X?+ +endstream +endobj +67 0 obj +<> +endobj +68 0 obj +<> +endobj +69 0 obj +<> +stream +????JFIF``??ZExifMM*JQQ?Q???????C  +  +  $.' ",#(7),01444'9=82<.342??C  + +2!!22222222222222222222222222222222222222222222222222???C"?? + ???}!1AQa"q2???#B??R??$3br? +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??????????????????????????????????????????????????????????????????????????? + ???w!1AQaq"2?B???? #3R?br? +$4?%?&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?????????????????????????????????????????????????????????????????????????? ????(??(??(??@??????\??c??u#???????:|?UFz??f?????\w?F?o}3??'P??"??j???I?v? ??W<7?????|?? ?c???y?#????V?o?qn3Wt=W?^???3?j???@? + F??Q?.@??? |???9? ?7??D?l???x????0??W;\???$ ?(Ox?W?-???+?[\?6 v1???p?????=??O>?????????`e?m?h?) +??`B? +??\n??"???[???ao%a?y?4??p>^?z?9?=z ?N????)D????#?W?.?RD????????$1??[???*??Y [X??1?? +;??I??'?? +0?1^???????wVKy$~l7??????Mu#?r???d +?*?OX????n<=s?\_?d +e?s??'y-Z?A??o???I?6???0??K?A?-???????}??1*? ??6? +`?Y\i?????~]??? ??6?RC ? ??Wxp?m)?H??Fq}?P]F?m?????@8??q?yQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE}K???Iv??m??t?Q???Iv??m??t?P?TQEQEQEzo?t[????N???u[i^???,?cfX ?H??D???_??dw5O???A?4PCgh?y/#? =???a?#.e`Cp"T?Q???? +??Zl&xL2+???  ?eVr??A???????w?B???/?KUC?i2?S?????s??G?}??kB?P?]Y?m??}?5Y ??,a??e#?H8$`?'???????;u{,????t?)?FGH?gsJ???9??M3?^???,V?f??+???3 ?T???19???Y??5i?^?x?t???}?????<?"S??=?? h6???kw7?O|????H??I1?lIT?2??\V?Mj????Zu???w{q}:???D??Hp????1?p??`3f??Z???of~?p??#??]?`?`?????>`?Z????^97P???r????.????Td???4?u??H?H?c?^???Q?? 1?y??Q?%~H?S1??6?%??VWZ???l????1??? &?"lgf?Uw??????????? ??&??'?$??y~??8#?qN????VY,c?q{0k8?Ym????W??q?u? +'?Mq?%???'???l?JomT?^????????m.o?V???[??%b? ???????[??Z?W????y^w??g???n?c;s?zg????Z????R?{`?^??????$ais$A??? +???`?^n??????}??g??s??}??????7;??>s?P?????'???? +?lkl???2??229?*???m??.?????????j?(??(??(???????P?#[?????e????p?"8f?x???S??"d??S?^??Tt???>?i?$?????l???]?O??9?d??g??Q?h?6????i\???3P????{???uy?????ky????AO??J?e*9??????m?]????\]_[?w ?Y +?%vladM????W??Ew???1w???B)???B????$??@?? ??8????????d*B??9?_?s????_?\?? ??i?I$??D?G??ZA?H?"?f?????]k??I[p?c ?L?f?0??l;#`??c +??N????????????pCn????????&v???#%????j??????}}S?n????i??h?o?????A?ps?)????u???????A{i +???G?r?~U?J?x[h?]K)F?x!?C????Sqm* +??F?;$P at f??D 4??!?gF?????|A%?w?S???KG?X????????\1??~^9<_??????????& Q}?????x\?x??????????}??{?,J?`???f??{v?m?P?l???s@'????"???9?h?X?T??pQ?Q??-???#??[?#?a???7?k?S??# ?ViW*z?? ??q?????c S/??'a;?j?? +?{??N????8????]: +Al????7{?,??Up_ ?!?Fpk???M?.l.???m?hfM????dpy?z???????iM?E%?3??????4?l?~\2?x?s?k?(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(?_???K?o?o????????K?o?o?????>Z??(??(??(?|+???????tV?K??J??,v?e?2?^BF|?'?????? ??xGD]* +1??;E?y?I?$?8???s+?????\??ng??a3?a?\?`AC*? ??????m?k?B?F?x??X????[H??b? 7?????u???? +?Z??????l?????g??`sWc)?A?#?>$???6?/????d|??;??O?2:F?;?U8-??w???? +????F??DSB?]D?????H??????+?D ????F +V?? ?xgG??????q????Dd?H ?????y?,c7?-jT?|???K ?.c?Em?ay]??s (P?c?|C?e?????[v? ci#?UB??r Ebp?#??uz???{_ +?C??t?[y??a&-$?Ck???6r?1?6??xq|5??h?i ?H???? 6G `??l28 ?p4??$???v?mc??? ?m?;)Fv7?a??wGlW7?????????,???$?;Tp2I?$?I$?F?(??(??(??(??(??(??(??(??(?????5??t???o????H????pp@??R??-?????'?PM?????????G?"?!?????r?d?Z???x???:?????-?????'?PM?????????G?"?!?????r?d?Z???x???:?????-?????'?PM?????????G?"?!?????r?d?Z???x???:?????-?????'?PM?????????G?"?!?????r?d?Z???x???:?????-?????'?PM?????????G?"?!?????r?d?Z???x???:?????-?????'?PM?????????G?"?!?????r?d?Z???x???:?????-?????'?PM?????????G?"?!?????r?d?Z???x???:???????x?8?????^??eQZ??O#?6??+??)??}????[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9????E?C?@S??? +???????uO???(??[??????O?? ?+[?o??T??9???/???!y??u??K;????I$?? ?(?? +(?? +(?? +(??>??C?$?F????:J(?C?$?F????:J(??(?? +(?? +(??=????????[??B??bV9YF~?78?k??????????H???zM??SU????xJm???????.k???????????? ^??C??S????;#g???????J???k???s=??<?Wuy?????i3?W??n?YWagVq?????)?7*YA???E?O?&?r??b???M?jZ??dz??^[J?E?L?`\?98??? K??`???PxgH??????T?P????????B?/????????0???l???v>??m???8?= ??F??????????>??y?? ??.?I??R?5?p}N ??&DW`??????"S??4??,???aq??*???w???\`z?sW??6c:q]V??????i?tX????If???rKd? ??> +?}?B???*??$?????????H1?#?Q?M?M8F???? +???? +?y????T?????????*??:)P??20A?V_.g?9?qY???t???9??'??4X3????U? ??????s'J???#?o??N?O????Z?????<"U?!*?o????c;?n?z/ H$?@W??1?'&??*4????????? ?F??????Q\??F??:0? ??] +??M ?H??>????%?x??#??)'?? +4e?/??xoA????68a???????4?Ga??? v?}j{?u?yn#??????????0?6??8???ui???_r*E??v? d?.???I??PDZ|J?u???uv ? +?`??f???fW?Id???4?$??S?+>i?;U + +]A}?????~????E????:*???y<??`$??a????6An3???.??G???I?]?f?0TF[??U??????? ?[?kv??1g?6y??K&;???O4??{ +? ?G&???! +d?????b??E?+??????YI??????&??AY???[???Zh???U???U??PmE}?)l??4{??2??????$?S??4? +?6????????"?}??????8^??}??#%?}?5??*&??z???\N????????.?<-+? ?G>???~??'?[?j??#z2???3???????A?q?8?V??\?*y?????-?/??C????i?????= +????Xn9?1???]?*???}?[_ xw? .????n?Z???O?&???? h????7???]?'?????????5?6??b k???kNw??n?6???????1??8A?E?C7??I?V???M??F?F????g?!;P????2?`??O??????=???,?#?$?4xO@???U?oxU????`? ?s?????????PXmd?Q?I:??????"? +|? +??V????a??G?????~=????T??F?o??o~??????!S??W????5Nl?8xodT??}?/?A?}??P?|?3e??? ?s??d?ws?c??|S?????>!?? +6i-.N??[&2I ?f??9zL?>???m???u??\?????D??p?r?V??]J?????K?o?o????????K?o?o??????TQEQEQE{??"G????o?*??Vv???x~?,?Xm?Y#{?????? 8 ???????2/?*??.?J8X'%{wG????YYh???????2/?*?? ?????]?X????F>?}?f???-t}??;????FYnT??8.????V?????t?? ??????????8m?-??;??t?t??e?i;I?v?3?k???S???7u????J??8?? ?&X~?q?L?dO5??0g??? +???q?jZ??$???????!YQ?U??,???s?????????????=B??^???iz-?^?K1?i8???v|?Q?X#??? ???x?A???m>?-e?5C#??;:??@!pV|q? +7y??7????X5????U?S??c*ev??0=??~@x???x?????m6K?5HM???@Dc?,Rw?v?lL?9\dpq???@??K?g_??A?/n????n???m?q?g?QEQEQE{????It?p???H???T??? +G?p?2?:????4????Z????????????H,+??wg?x???z??l?/ +????Y??Q?O?g???u??8???Nj?F??????N?Q??=A??M?]????o?Zv???eU????????????fj?dg?kN?G??[???@9?H?sDb???t$???/cP ????\??, c/??rG?~?&??Q???JL?Q?? ?6???f^0[????>lUi?G%?Fu???B? +?p??????I??????^5??????kr?EI??i?d???3???m?[HX??V??4????J???z +Wg?? ???8????WZ????n? +.=??.&????c????W????J?wh?J??(?j??$?p???(r g?P.?E?????d8E95vi ??O???+:?-? + +:?`s????-??*?????I???{b??? ?1???Z?[?6??????R????I?j[O??[?OV???714X???* _nT?L??j????&X????(??R????K.??1??h??>U]s?pk?F?!??g??q?U? xPW ?????45VT?g???#\?f???+BI?? ?#???s???Rv?V9???(xeq?09?mJ0.?\ ?m??Y?e??????5???!?uq??/?\>H ???~$dL??OC=????Q???= ??n?t?????`$???yr#?{m??lPEPEPEPEP?x?a?~hz?RH?I?|?A?h??er ????E???????'??U???????0Ap?}*[f???R?o.H>I?j[5?".??^?j?F?????????????yn ???b????J???X?S???????K/L?[l!??^?????3??m?\r???v?j6?L???w???T???}?@?o???OsY??=??? ? E'}{RqVj??R????? *????1??ZF??H??' +z +??+`?? +e?????d??k?]'u???1^NHS?5Y?7????????5T? ?u9?L?Q??cud?Kc???-q??_?TV?&??????x?? ?!U]??0???L?sjT?U?UX?????P^?0??I?c?????q??&]GOQYZ??Ku*O???=>qJ)?VPt????<*?+``? ??L?]?1??R??? *????i?mI`q??*uF????nl%?????H??!<`-/?;??o????+?gm?????ZwZ??"??t??t??B*Gm? ???????Te??O?g??????5?E?'I??? ????C??1??Tv7? ??L7??????BL?J%??;2?d;Tje?a?9S??????-???Y$?I???r??`??\c???9?9?]$??fV9`?Y9yd'"2p9??x?;v9*z???UTI#F? +?E??z?JH???WW ?b??????\?p??Z????Y YT?wz"?x5 +?.W?1r+????z??am.?r??#??r?I?X?@<??i#?s??;???????u e2?c|??:s???+I?X????u?+[????!???L?????9?G*??n??t?7&{?T?,??;y??3\??????? +?Web??6??a???P???}?????[@?$? +????#< d?????????=??0a???SX???!?wm????w#??}bu?????????-?0T?1??9??{p???9?\%???w"?N?8???F6m3B +I$G?7&?F????t2F?}??#?S?????n??F8?j?;[%H8?R?????R?[?I"0?x???rG??-6Y?"I4??-FA???T?????U???AO??_??Z9'}?????I?4R? ?Q????C?2?{??xc?????\???????m"??U???8=0s???9?&l????????3??N??+i?FzYcK?K??o???'9J,?R?z??#??U?P?6????P????????????????? ??n?I???L@?`??9???????????.?w?kVz??????H?$?UlJ??Fy??R??/?m???x?U??`???=z? ?$T?jl?r?!??G?????J??bV'`p@'4^???@??p ???????&]? +?????????V`?R???s?????u?4?A??????T?bF?5???:"????b\es?j]B?#?T#???Z[+?h`???pN?????b???!2?C2??qF?Rs?1?H#uV?r??wp?0`?OL??????????R}2?X???ND??;q???)?n?n K??"??Eb?Jm?%G? ??=?Z?6?E?R?C ?????9?A'u??Q?????C!n??T??q4??3r9??zr8Y?`??8???? +?+??&??P?&?2????0??ri??? H??V?? +1?Sd?F?????????Y?j?? +@?{TSj?T,?`?????C?;?>Q??T????h@?????j???(?$?{?? +??Lg??+???^??K??1w?????,????z??OS??4??BY??????? +h,?a????t????????#+nGCJ????R?? h?6?\?#???ZT?????R?????????;??N3?J)??????zx?Q?QY?? ?yj????????@???^?6?0g???9=9?WQ?Y6g?????].Q?.?5?????P%?8??e? ??W"Qq???I?J???'???S]????H ?8N8?n]???????;*F?????T?) ???s???G+?4?(??/),?????ne?_1??F?{??vl????????W'P0+?T??d +(???j7?By?Z????uq?M?Y? ?&?e?-hw?W?????-???????b???m?I1??@$s?1x5?g?)F??4(???>??~??????l"??xO?????8?c??j''"??hm????C??E$d;?94?yY?m?21????0?7g#??3g??tM-??@6??%??b?????Fv???U??QB6H?&??\=???????M+??N;?v???S?O\$???V?8?];????^????g z?Vt??R?1?v?T????? ??/?3? +? +@??&???dUB????z?G(???????a??L?i?GW???.?y???Ri`k[?So"???????A?? ?zc???9?7???????v??u???????d?*p m???|?P????MQ??z5?????????lwis4'p;?\?!???S???V?Y?6??}??=i?f??z$???;W??1?;>x+?}*yF?XI=}*0G~s???t$?Qe#gQ???j?Kr?C???????????z +KY?l??rs?B.WH?%?q?2?>???? ?????b?lm???????Ze?{?D? s?J??K#:??!n?$??c?b??\?B?|????] ????S?85??}??h?l?v1???T?0???l?mbv??@??w??^?`?$?V?Pz +yg/dlTz?s@?M.???`????????v?h??Ry?6???@7c???;$??6y??4?'??a?^k.?l_?????yFBs#????EB?1??? ??cR??c???7??))?X????BH?T?h??]? g????&Ed'??O5t 9???????d??%?R?y\????@??j-??Ny3G???J??C???U????n9l??)GtU[?I????-???? ??N1??????M??:? tu??? +c?M??????'E??/????d +??9??'?Oi??????U??????`?????5B ??,?2 *li??dmm]?Bv???????t}?H`z??[? {?L?P"'UR??:??= +R9? +??V????D?D?q?&??L?h?v@??%I?j?-???`>0??q?? F6?#????J&t??$???c???=??????j??Y???!??????q?ml\??T\????`H.%?o#?????n?m?9?9??L?\-????o????t??[??l\??ar???y??5??[h?-?????[r?~?cu??? ???[?>??sz!V???A?V??.????s1z u?S??Qr?\??qv?3??H<??,?=???]>???bn?????{Fh????= ???5#)??L??G????'??A?N; +????3?tH|?l&3?ZXn?U?`xS?Q?W??[?wPB??g??%??b???P??_??????{??????^p 8????6???I.-?/??Z?=?????H??CF???;px?N0y??&?[???y^Y?b?H?Y???$?I'?Z9???v?6?????Ou?????] ????A??1l?? t?R?_?Hu_????v?\ +z?:g??-$??????&?????q?E???#????.????????>??.?????????j?(??(??(??@??????\??c??u#???????:|?UFz??f?????\w?F?o}3??'P??"??j???I?v? ??W<7?????|?? ?c???y?#????V?o?qn3Wt=W?^???3?j???@? + F??Q?.@??? |???9? ?7??D?l???x????0??W;\???$ ?(Ox?W?-???+?[\?6 v1???p?????=??O>?????????`e?m?h?) +??`B? +??\n??"???[???ao%a?y?4??p>^?z?9?=z ?N????)D????#?W?.?RD????????$1??[???*??Y [X??1?? +;??I??'?? +0?1^???????wVKy$~l7??????Mu#?r???d +?*?OX????n<=s?\_?d +e?s??'y-Z?A??o???I?6???0??K?A?-???????}??1*? ??6? +`?Y\i?????~]??? ??6?RC ? ??Wxp?m)?H??Fq}?P]F?m?????@8??q?yQEQEQEQEQEzW?5)??3????=??????,?kpA?G???t??V???r}?J??I?R4??0\4A???n at eL ?Q??xj5?~?61M??Y??q???2??eq?u?p5??Q?k?lmo?{GI#????A??a\?R???3?*????xs]?-??L?u??4???"??????q^????_?6??shrN>????<d????(a??eB?G????????V?????a?7 +?0?$?pzW.0l??? ???[?SW?????M???*.???J?? +r? +z??V????T.?r3?}qY???ppA? +e7vw????oF\?p?}(?uX?=?P??KKw?c?@?G???m?8???????D????M>?Y?H?T?????SKm%?????&???Y?S? +??\+(n??AZp?? +????????0#???K4???/????_b?????y??f??0=?Z?#??)?*??x?.?H?qI?E??]?h?@D??~?Z??V???3?????"{b?`m???????,W at ea#9?hJ????-C$I??c???S??)?@?)r0wd?+???*Q???9"'? ??)?L??????3);T???92iF?x?ex?V~?6????c???+h?????-E?BN??q?TE]????M???e?m? ???h$V?q?Kc????k7?o????e???m?n??U???{??e????????eK?Vgg+?n?0?E????0????g$vR?~??q2???d?q[+p?By1????????r???c??X?7?????????!?\?c?'????u?O?)??n???? +???[??e$??g?J/Q???ckM?G ?????Vu??V??ii? +v??????A?i]?F)??8[??F???????y&?imLx]J??e?${???????????W????.v?0K?+? Fj +E?H??9?V?????)?9?+2??0???+??7l????(?U?Rq?????9?\4???v?????4????9?0b???[?|FU?V;???C??6:?.?A?=?????j +[?6???0?>???v?K6?d?w?R???U\?Kv??='y%?I$c??h?Y?3?????,c?U??O??\(''w??b?/?]I}?+?@kR???????? ??v??G?h??????Ym????y?S8??3?dW??$????Mjm+U?????]yIP?t=???? @?IHu ? ?W??9???E?J?`?m??p?8??{0?_? ?A?3?ql????W?I?????????? ???+???????U?N??0?????'gU??A??o???*?????.????????>??.?????????j?(??(??(?M???g??????ZY.?m+??????l?y ??[ ????N???t?4??l?O%?v?'?P??L;c??nJ???4]r?A??kM?? ?EppW!?A ???Tv?:?x?]????^???v?b +?bB?m#?]?p0???r?h??7?hSj??;m?0???!?v???9]??w????????????n?e??????%>H????iT????5?u;??{??%?"lWy?m???????o????-s~*??4K????]?????n E2H?I?6rp?9T?+N??^?~??s?????$%?(;?;?/???}??wh??|E?;???y~S|P?cT?A,ybX???rO-?dQEQEQEQE?x ?E?????A]???a?K??w??fH???*???7??h#?r???]???z?? +???s,y"6W??py ??? +{O??q?)V?A???i +D?-??rBX?dQ??n?,???&?4uwg!S??Y?f?? +?0?:????# +@????????x?u????\????]??%??? m?5?uoq?'`??2/???XZ? +z??pX3?8s?M\!7c&8nVH???????Gc?Wnq7?*gxe??9???????u8 ????1?W$#'?T?s!'?(?V%-*?? 3rB??t??????^??-????G????\?E??????Y7?Ex??&??[?Z??2?}?????G??pq?qTN???F??.z???b?m??????6u_1I7N??;ju?F?r?????N=*+?H?4?g?f4 ??1V?7?????? ?~U?>?k??"?d????z-?b?:j[?#?$`?????.&X ?`w??-?????i>?z???M@??????j?????8w???????Zm;?) +(;GZ?-"u???.??=??????8?\u?y?L????? ??{Vt?$???F????y'G0?;ca?_Q?K}?s2?I???2?S?d??|?*???G?*X?????%???1??~??:?G????????????X??Z=?t9?W??aS?2_?5???" +y ta?I??v??on??b>mYr??????-???VA??? ?X ?q??????01???m?B ?R??? h???V?j?o?"L?z??bP??dX??????U?a?HqU?cK??I??!?((?9????eE?I9 +]????-??h??m?$c? pA??j?f??????88????? +???z????P??+2bAV?"?i +'M?tCj7s?$?s*#0?|u??)U?? c5/??????? 0????????????j+B'??q??1??V??d?$d??N{U??J??#?1Intv??j??~f==?P]??????Y??$$1 B???i???2????6g(E?c+\???(?????p~??????U'?? ????1 +?3???PF??fm??)?Dv?g???L/eq??b???R%???cN???]??;????FUC7???'??H???'?uKyc?d??????cKh?;$?U??+??Auq????NI +~???a????T??8=??my?`?{???5U?C????s??v????????z?h??\,2?+???+?2"?8Q???J?T?????????0n???z??G-Egsw{]??aW?n???e ?????V-?lC??j;??V??e??|?X???"?????????+z?q>?5?[?Kh??+? N+Z??????1??2??>?Q0??2no&bs??s?W???P???=2?0????Y??F?s?r?5Ur?!??T?Pii*?Y??4?x^?Z?N????V????$p??n>u.??*z 3?:???+????W??`??_???p,J?N#??"?W# ?P?gO4_ ?<#?DT? +?????}???~f????k??y?$??????)??J?p?^?:???D?k????????>?s??3???5 +?*?]?7????o????????K??h?????f'?????n?;} +?????[v??Q +??U(/?2v7??=Fy1?*FUW?x??>????Isq???@%???P?#?????<??;Pm&}J?[? +??*?,,??#?G????2?&?K(>1?y??????}n?S?n%?L???? +?Z%??4??1?9,5i? +?-? jWq?? V???+E????2?????Xe s@qEzP???.4?K?B??}Ft??m??$?&??`?25?Xs ? +?)??O Iml?Q?y?l?/"? $E?o/c6Hv?>o)?]?EzM??<;?_&??{?Ai)??p?;"??(?????C??^X???QEQE?x ?E?????A\ +z??}B?K?????Eb??yE?.A???i?|??=O????5m?????T(??3<#j?????p?k??-n??Za??w?kp?teZ' +?T???G?5?u{?????c +????|??3??0??A??6????Zsi??M$M? ???F???u???_?~_?`???????[?g? ??8b?#A?????M^?:TW?2?B?2??L?r????Xm?g?a???XBj$oH?kn?7???U????_??????[???#????????s??f???Pc?4_B?o;-?K?r?`?i??e?crX?yx???"? +??*??????v##???4{1?9?@Ed?t??????/)?C???m?c#s?V???'??>????:?H????j?)m?@?{???????????.o?r3???4K.?1pHa?P-???H?}?=?+?4????????yS3T??jx??G????q?S-& ???q??w?F"????-??????/}]7?E?????*?Q???=j??????2I#??#?????C:)?-?W?zO?Xm???y'??bh??B?D?I?=G^i]n??,??ZV*~Pj????Wc??j?{??5?0c???p???@?z??}3?k3??7??go_?Gw/r??e +???U?d???"?? +? ?=?-??[??8=A?i?A*? s?9??????R?????\??7]???? ???=x???~Vb?r:??Y??$p??nAu%r??zR??PQZW2????9??7J?!y??3KnZVf?X??? +?[|?6??o$??UZ9?{?Gine}?|????O ??pq??)?01) ??[???PG\???I.?786??Dc? +l??y?????p?&?5?s?Q??qT????(??#??N?m???I@$??????????+????HS?8???1???{??7,_]F?-???F??<}kE??KbIb?)? ?dV>c!??>??C?C.>??+H???EsAK?G ? ???k??LfV/??? +Wa|??epz??Z?L +`Rj?A??>???.?OQO??fs?????Myp`?K,|??}j?"???Q#?????=j??l???????i?? 1&[?W??{????.`Q3?????H4?l??_i+"???d`??*phE,??????ps?{?????#?Q?\????????a??wQ??]??'fm??M?b{A?r?????%?????0? Y?I0>j?K'`??7"#I?I$???}????K[X??v?9??q?[???P????u6?r)T????0sZD???v/?QM??Q?b?Rf??41\?$???*??92???<G5?O??>#?:e?H?Y?Io???R??A8g?W??L?C$??2????6v ?? c?'?|????<5?????4eS?????h????GIE??h????GIEQ???Q@Q@Q@H|/?*??????]?J???1?X??H?'7H?#??QQ???#s???1???h???>/?*??????Z???Q??h??2 {??`"gi8?3?k?8?VL??N'??h^?2????*e "y???!?#?????3?G? +??wq?O??7????:??-'????.?mu6?[[?b?FyF4?~h#??'o8{EQEQE?|$????-?????????????_k\ +??4?n??V? ?|??????Ka? +? ???:6<>Z??(?G?Iq?1G? ??n??????;LM?maH????`r7??Nc*????%y???m???SUU?#(?y?????\Jb??$? ?W?? ?;???2Y]]??g????A??nv:???s?d?????q?z??????~?z?A?XC????B>R1X??n3?M??1??Q?S????l?p dc????????1b??=r0G?j????t???G?Y9????M???8??M??????? ???3?S??2????[*?"?-?*YX???z?KI?????????w/?s?@V?M???|????_>?9???{?WR3???hE?????n????o???4,0F`?????l? ?n@???3?????????Q[w.U?#=?ljF2|??P?9?F??+9^3?(h)????2?7?Tc?????? ??????8????6*zm?O#?f????&????\????$p?r?:??'?2?????????Q?\??S??3????gWuL?H#p ?pA?#???????q?^????'+3?-[Z??+??o`??\???2pN?Y?d?p+????R???T +>???\r??.????????d?-QEQEQEi4??4?5??k?c??LcV?????2??????M???ym,?n"?]??13???? +?C?^???;s??.'D???o Q:oY???^Q\??9????????a??o?$?0????b????????????I8x P?Q^?cii??l???????G#??*??%??B??b?f,|?c?0m?K+X??? ?Kqqb9#?6L3bD?>??????;?)???Z??C??iw?Qo?? wq????????????XWV?Li.?g?sc??L?s/???3tU-??NAX?Z?}?Oy?o??????bUwo???mVn???? ? ?n%?????')$r)VFy?u?w??m??l???[s??,\z?????(??(??(??S???$?2j??j"?[???!???}Mk?G?P?k/????+????K?y???????U????FN2u?????#"???=???u%?=??upl?$??r?p??e? ?x??J?????J?????????????v)n??$?I>????????x?+p??y{??#?\?????$??7dU|?@??Xs +K???9?W7 ?g?a????????? ?E`G\?? ???"??x&d???? 7??!?s?3Qcx??????&?-nc?q???SUm?K4P) ?r??V5?V??9????I?ES??\?>????d,????s??\w????m??U?)?f?U?u?q?H8?zg?Y2^Iuy"?+$?? ?G)>?[\?%??j?F??A?9?}s?PF?\@2?i???$???????n+)??>?7V??jZ6??-A s???^?q?l?Ya?1???y??Zk???a>C???'???m?0E?????[X?]???gZi+"? +?(= ?T??t??f?9r0????A[D???NC???????Q?,m????x"?8?-?y???"???bw?? ?4?ry??x[??=?????[Kkm5??Q???l???e%B??????Xw6?.?????.?????C,???60?&???T???"??_?????Sn??a}!n???????? oNs?V?u}T???l5?F?? ??kG?O?!H]b2 !Nw?????9??W~/?.C???qq4???M??|???- ?$z?[7?????>??x??mh??">???8???????NJ??nS?3?{k+?sygke??oah?ex??????+?b2w`???9????t_?e????,N|????J??-.'???~Z?5+?y?Khu &???/??2m ?????>M??_??V?\?E +????i??|??H?)WpP;@4????O?W???_?g????3?~??????g?g?v~Z5 +S@???????[??l???n???p?-?`?7h????:?V?\?:?K*?`?G?????6???k???:????[?a1??$UL?O,?.?? ?J??'???(??(???_?1???????j<_???T??????x????_?_???,?*?7(??t??"1??z??8??????'?????CDRXVr??pk,M1?.~??~r:??????}3?O:| @ $???m SJV1??@?X +?9?5?i?? ??FX{?W??(??pi??]B?`?ed;?F +q???Rs?????*p?? ??VA?+m.???{V???\Ii>g?v???Y????q?GT?H??)Y\?O?Hm?? ?????j?a?K?8Dm(m????s\??+`???i?9?? ?;)?E +z +??????{%Y#>S????F(???x?V??????99???hR??`9-?4??t??? ??*|??" +?}}????????x?? ?8#?X?r?*?? ??Cr??%?o?c?}????3?NSW*??????Nb??????W?p??1O??I ?)y#?9??J?Y=s???{?2???????rz??h +I+????+?5VDf????b???o?c???*?? Iv?aH?7k?T???? +????+?$],I?/?????C??=O?????????*??s?????????3?J??)??85?Z?q?h?]9Z2??s?*#.?IQX/Th??? ? ???S????w??qW?c?|?k)\m???p2???d?z???z?`??4a??x"???6?;2??Oz9?tU?"Y#? ??p?????[????D??n??ck????P??6B~c?? +?c? ?:7?????w6d?Dcb????XKo?N????g??u??)l8|?=}?Y4?b??]??F?.x#??zSQ????"?Zp?!?Ry'??[1?n??=1Y'P?@ ??1?Y?????QK?y2??U???sr???*??????E?Qul?6?Or? 2?>WB?py??z??}q?h???z|?}??+?i9?'????? +rX?I3???go??^???????%?2??7#,????'?x?=B[??eTl??*?N?is??????'?O??<#?cM????p????I?`??$????[?B|!??]???%|!??]???%?>Z??(??(??(??(??(??(??(??(??(??(??(??(??C??&:u??????8('F???3v;??;?B6????J?/V+?Fm?^x?fPp8 +!?????|???????j??6?????a????5??????G\J?)??????,z?PI? ??<5???c?v-?n?? ??F?'.?$?slg8W??????????????Nc?&??W?JZR??FV?u%???*? +??C)8>???X????`???=~?n?L??A???i???]??#?3??=?h??$????u?s]?7???4?2"C#??R~??M'YX???&7#?;Vm????t?x?[?YQB?V'?j???,?R?MV?+??FG]??1?*?????8"??`???_??s? +?1?7(#???P?%wdC.??8S?z??M??OZ?6?;??A'???B.=@??J?])8??? ?????^I????>V=?Kx|?ZW??1@????pOZI9??V?OX?dU???{?a?dn p1??[?WqFx9??(?b?9?b???2g?8??F?U_8\6q????w????Rkf???????f?+?%?M??`???as?+?n:b??Y>Uc??`??fA?m??jocf???n???{0^??2!??g=zV????A??G?@??E????-?KHA$?{???g??????????nZ8?G???z???KC[??????v??7v?ec?$?t?????m2c????$R$c'?A?l?"Cl?r?t??~? ?n?xc?J???????Td???T@=N)?=I?^GiNX??nl??b2?:|?Sc?jYh?a?\?c??W?,3??T/dGb?C???H??Ot>?PV(6??G?hi?Ub?????^"x??v?B6!b????L?{?,Ko2F??1"???r>||???eYV2 ;q?5Y-.]w????4??U#cN?\?eC8??q?Z??I$d#?r{v????? c?x????"?2?q???????[?S??SP]Mq!d'b???rj?????O[???f??? +??>??1???W ?+?E?~??w>l???????c$Q at Yv?? ?*xV?F??;/?AI6\????w?#?Y????????' ?\??? +OSF???? ?D\?M??]U??p+??a???:L??la???s[r?s??:L??? ???:??????$ ?? ????T?h???u+???????:.^? ?Ia9!?????g? 6???Z?m??[???^???f??#?|????H???F r}??>??z??q?UU?Z? M??`U???m?!??iU#)nx???????W>??????+L??? G??l&?????H?Y#W?9?"F??[? @$g?>??4????-???K?Q??,???????bO???$5???+G?????W???????B??)1#q??;1?Td???>7|P?y??Y?*? I?$t8?U???"?2?????h????GIE??h????GIE1-QEQEQEQEQEQEQEQEQEQEQEQE????<;?a;o??s?7??????????M>?d0F]?q??O?T??#???'m??V??G???????x?????L2Cl--?j!?,?9,F9$?????=s?>'???SR???_????JY?i??.?0? R???Cd???"??30??+?[?????I??.?F.B^:($??R?`??o???I??W(???v?) ??bCb4???f????Xd,?????{?j???????G?_6??X??o?`I?tT%Xd6??Aq  ?j?[?1??+6?:?;?3?:????????y(>???8????? ?Nh?oq??qn???????T?j?4???I$?9?Mk??U?@Y? +W??)??*??58??Y?r:`t????q??????l?0??^???J??.d?? !??????V?C*?????Uk????P???A?*???to?^Q gi??[?UH???@0r9?R?b??y??w(e???c??W,GL????b8?>b'??lj?>????JZ?Q\???+2M???W????kFcG??t?&?;??e-???8a???1?"??@ g?kf?????-"?zR???qe+f +???r??a?^????????J?%???\??????JiDm???\?<??C4?????85v[?0?????L?????k??S?????????J??7|???d3d?7??y?QEi??%????? ?????V?c4(?l?^???-uB???q??s=N?^*?l:|??9??F8??????;8????8?w3?u8)*?i#??????l$i?????V????r???GZ?ThdUc?~S?+N????Ps???.?pW?(?`?3zwj????mb??????d?W?,l?v?0?Z???%??zMS??9g?>????9?9 KR?H?:??U?Z5@??A%v?????E??J?M??9?~??U??????wr?CSj ?^"?[*????=j???8.d?s?V????$??: +?m?uVR?U?q??!_?Ow?? !??w?????????$(?????? ??j>1?????????f??????bN?zUO???/? ?????<?#??>??I&??m?#????'s??Z???#?????????(??????????(?????(??(??(??(??(??(??(??(??(??(??(??? ??????W?h?:/S?.`??{?y??( 7??`?Z??^sXW?1tVI j???5????R]d??cm????z??J??*?X??????rz?*?? ?U\ +r=?y +0?j??YO2?BG?V?U+?+?w2?+??????k?W ?????u*? +???Fm?rMst???@?1?2?A??p ????sl????q??+\?mcS?m?ks?n???|t???`?+*????6?????d??+????[?c?e?,??8?\?*???@T?;???H?Kx??????????? 3 +?e??m??????v???'O?(u?G;?u?????L?tv???a??s ;A???:??? +NJ>?:[ ?x???????Z?}??d????6??<???=j?K#????UOo??t?A?A?V?c?_??? ??H??6???EW???{?d????{7pj?U???T??????9?4A?4 A`H?_x????i?Bt???^???:*???.???1???`??_d???!f +09'???$???c??0Gw???ic? c?????`??}?` FsWW<7?_?1???????j????>????w??5?[?????;???[??*G?n$????j?? s??7??_????y^O?.????n???c8?q? +?#?o???K?o?o????????K?o?o?????>Z??(??(??(??(??(??(??(??(??(??(??(??(?????????]?}?p5?_V????d?e??n????NA? +??h??dB@??????4??9?m<2?F p ???(a?5??N ?(?z???????????uY??`????%Y9?_kF@????x? ?????@p3??Uc?Y?T?vF???????v?? +)?FM-???l)%?fv?? +,??[:]K??8?L}9??E?Y???,?????????P?!VV?+7U?E????fs?R??B??m?dc??5Na???qDI>?6??LWE?????Q????dur??>?s?v?g??).??)c?????T???D?\'???D?)RP7m9??v?*?E$?f?U?????S@$Iq??k?w0$????8???i%???I????? +BC?????kF?H)????-?2?ts??o?lF??H\??v??????O??r +???P??G[????j???? ?q?i?F:?{?y4?#??(??q?V??????V58??cp??????F{?????%2?y8n)n??%d?%?&?????????????E?#?M ????&?2?H??]M??Q?E?????m?)l??????????Oo29 +=r*?(?4a?W??|U??3??`??V?k?QG9?R?.)X??D0???????????W{???73?????JI?? ??T???????A???I???8??I#HN?T[Mr?R?IP??>??~5?u ?BCn9??EM*?.H??T(?S_[4??UYa?19\?dp;W?N???S9???U???"?T?n?l?z?Q?k????3????p?o????l? ???E]?-???????N?Enr9?9?z????R?????rH??}O????ctl?S?*?x?"? +: +??J???WgT)??-!?]?#J?swIdT???a??f\>??J???????n?g???y??ni???????>??q??f????b??ByS???S|F?yE??????Z2????'???%??t?k??-??iq ??G"?ZZ?????8?\??A ?y#???(/!?4) ??s\?#ftB?Y?kr?,sE???\?5E??._%}?l???????qA???.n???8?$???oK???`???u{?:+?d??O???????????UC?@q???C2y?A^???%c +??????Iwt?l +?4?}?????@??n??;??U[`??|]??? ????4?gQ?\/V=??1 $??rH*??s????*F?A?kr?Y5YT?3 +0.??#?Z????Y\H0??n???k +??????+3 ????o?[Wr??4K???X????Y??,??z????U?H???g??????F-#?8?)\???&??6Q??b3???kY$????????~}}?????K?B?bN0:????&F^ ??u?+B?P??ecbH????rX?$??*?h??;G???0?? OLOj???h'??{??!.?? +i#O0\?y??~~]???Z??9'??x?1_??????-???]?r????[? ??????Zl??plu???4M?6A?Y6??pNqS???+?0+?V*????x????gf(???Ng&3?E?????KteM?R??FG?z???"??pJ?g=???T??#??vW?)q???5by????/R8?ih'?1?N?? U?,?X?:????#8?zV3???:?F ?I???}?????/???z??,??b?#I?#???P\1r at P9?k??N?I?-?Hc?q???U???5?)??grI??M#?a$? ????A??W?(??rS(??;um??i??????_?5???TH?(#???5??i)+#H?m???{??]h?k?????zj??Z?????D??C?gUC?0?w?1?u0??{? Q??%???????-??? +??Z????H??_'?????%??????W?GX??i??~3yW[?h?R?zd???J???@=k??-??{? ???^q]R?????+[????L?< ???l??????]??????q?$q?WYn?D??]?#\#WvjG&???R/???]\i????M=?+?e +K?????^?c?`????V?????0????\???Ei??m +%??/eI??E?NCl_??a???#?$nL???|?+OKc???Fy??????Z?k??O5????????C(5??zm???X?:?u?Y??F?[f??C!?L??????a??c ??ks?? 9??h?????ZjV?A,71 +?L???????? *??::???k{??/???&???C?^{????vo??j??????????b????J??F??4w?Eb??+?(??.A? ??Y?M^??Y???????V0??? ?c????1??``c+???q???H??4??3?????[P?QUw:t???g<7I*n?|???? +????R#D.??@?\q?wk?????f??!Q??nNk?m????_S??U?1?o"??*? +e?X?'$??U?3jF??6??BT?G? v???k?C???pFU? +u!?.RT[/h??? ?????[5?ka5??e?????rz~??nwD:??$s?7WG ?m?|@uHp-?Wd?I??q??9??? ??1?^?i ?M???????9?d?rNE?n{???Q?FR????|M??[F?T??????????? ???$?#?????u??Z?X??????c??>???N??+?(bpI?v1?6??2Q5?&?????/??%?7?????QG??%?7?????QR#??(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +??_?$W????;R???W?I???????????W??].K??.d?5?X?+B??????B??|???????q??E?=?yG??+?]B?D?y57G?(???FT??Y??Z??O4?XB??$?d??=>?B?Q?t?X?P??z^???@?c6?.?CB:n\t5j??]????p? l??*=??X^,?t)T?i?????g?&??n????????????H?{?E?+3???k??.'9?C? c???2?c?3Q???qr?????0g]F}??%A? +?}f?B?c??%???g??m?>??W\?mNG=????/?#?$???#????0??vDsIks^??2,?R????j??Y?????}?/Cm???$??"?? +??^3z??b?o??$?Dr.?ds??>(?;?I"?1????????????O?u??F????X?"MN??????|?????;('?Z?????D3???????\???3F????F?v?[??Y?j?4?3??:????o?[?Z ??????C?^zm|????J??s?U??O=??F?PG??N?????yn-??ynv????QNf???q?_?????XA?A????:??^W|????s?????(???4?F??a???K#V??{5?E??c?=???{??[???//#`???7=???Y????/??'???????j????&e;t?????????????4??Gg{(???A?%r^L??w????2D???}?*?!?Lp???s{???*?d?ypD7?=?????%?J?????? +??R02}?%T?*9?Vf???????t-????7?NF??O?q??????kI(?>??j?6????p???.Y????????j!J?.?l??????????!?\??^?i#>???????s$?r0?rp\??y???.!?????N@\??W?F?d cH?)??RL?O???v??p6????????Jn??C?M?Uw?? ??6?%???x????0?Z????7?n???j?G???j9;!?,??p +`?q??r??y?!?r?|??? ????? +???[MI???Q?D=I???x?\>?????????3??[.VBY???q?v?-?.?u???C?????H?v?"?j???{q?y??zp#n??_8??x???{????????z????Ny?L???????????(??????????(?$?j?(??(??(??(??(??(??(??(??(??(??(??(?? +???;f??[y/6$\?[??n3??so????s^{]???$?U?~??Gi???/?~?????W?\[H%?H0??W( +??x????????1?!N#??3^k?3?2O???????s??.m??X$m??#???]p8$?????H????JN2?GD>'???g??2L2??0A??f????(????x???R?(mJ^????????+????d?9???m??T??_??????zS??1?ueim??? ?1?[=? +?????H??3??wF=py??w?? [??#kAl?n?W`[k`?j?a??i +?6-?????u96??02 ??Uoq??+9@_"!?IB)8?S??N???D???H" +c??b?e%??>?zAdv??0?X??~???^E>?v[???ll7D????h??^???x?U|?q?A?????????m?*??o?#???~???&??r?0#q?5?B?????D?s??R??pVq#?!?????e??/?c?,?????5y???"?`??Q?Ms?7????? ???I???'(?&????UM?U??>u?T??????Z?y?B???"nb}?????v?NIo;?s?s?~_?kApq'????Q?{???4c??C?D??? #????WMqg??,??y????WO?e??0 ???3?}?OU???? +? n>?s???#f??V?B?"Y???^y1?8$u???65???????Y9??R:V?]?????.??y?Xq??R?? ??r?"PPds?j???F+dQ?5?ih??V?>??7'???:????@??#?tKq ????`0k?M7&sb???2|c?6?h?????????;??-x?(Y??4Y8?lWO????Cr?@O???e??! (?b????\X?k3? ???z?r??[???o?????????p r???z?? +?l?vOb +d?\???e????? +c +v?SYb?"B?@1????!A? m???m???A??J?3EHZ??1?????[i???}?)'?A?y?w?.$?? ? ??N?u +j9d??q?W??`x?O8????)G?6c%??6?M?????z3???O???p?????G???????????Y?r?Q???{R?)B|??W?C??o&Q?UH???jC{wE#???????(???2N0j???Cc?qJQkqS??5F?!T?????4? +#.:qG??Y?i?Q???8=?>??]Zhm`Y??P????z??/0?E'??-???c?f%???Yjs ????!?\^.?????B??U/Q??a?g?t?Qi6?Z??I???B\?u????!????+???B???L?O?{v???D?(?j??{??z? +>yhr????c??pL??B?~#j1??*U?????5???F ??=9m? . e??P: ??[NR??V?,*efP$????M?4?j?V??\????^G +?+???coE @??g??OEx?????+??y/,&?//(?Q]?Q?9V*M>?k1?W???j?^i?X\??N81??B>?z???%???M??\??C???=>??x/Q?W?a[W1???&F????~g?\???????q???y?J???Vlg????Q??? ???sX?????:Lr Rz???p?=???????:?h ???t]MCQ?X-?RY?S?r{ +???????j??Q??s+??m>??+????N??.?g5?????Irv?#h_??r;q????g??y??X?|K? +W?????????c????? ???z*??Y?lfwH#??@8??w??d3??1??????tZ???1??9??F?%N73]????x +i??l?VsK3n'{??$?'??q????j?/???x?Y/?n???{??w-?u7vJcS??????2|6?'?3 n}K???Iv??m??t?Q???Iv??m??t?T??j?(??(??(??(??(??(??(??(??(??(??(??(????U???k??E2d ??f???g,94????N??0Q?0?3?k94?u$?wzl?y!?h?MOs?????{ n???????P&H???t??R?In????????q????u??o??????U?%??k????x?h?-f?.?(??0?'B?I??(?JF9D??}Mq?x?W??YHdG?2??n^?W??l?0?%\r????I7??W&?N?g$V?? ?H ?9??8?3Y??*mV??MW????1?+?Q????"??0?1???li\?KQ?Z??-???U?A?+(? s?????J?pPc??#???vKq*F?????z?????{bLhZB????"???X???????T[???7?q???F?}?O??D?????)`?N ?YKi?2D?ls(o3???t?-?????4??&I$Q???????Y?t??? ?T??2Z7???6 +H???e??In??h??.K?y#?zW???}?0w?`8'??*=?S3????`rp=?+??GVz?_4I??????Z?1 +?????iu;?m??????T*??6?H??H}+,B?g???c?????h???J???/0?%????.?????LhJ???g9E4???u'??Y???2H??FO????t???!??}j}N1 +?j??????*????I#??NX9???6???Ki??C??????}?zM????/bQ??.????\=???G???????+??N4hW`??c +??q~? ?6f???$8????c\????q??ko?\D??A????????????????cF?!?>??? IRA?1^A_3??????~??.????????>??.?????????-QEQEQEQEQEQEQEQEQEQEQEQEW???????w?m??WV??!h??w,???%X?1??9??+??[Gu?rgh???9[[???(????????????io.?w/,?Y??&????Nj???@?u??R?lB???T??7?????@??6?$??K?????=??hs???h?#??rw2?#???Tx?g=*??yj???)???&?Gq??????H?r???tS???e??!*X?`g????d??\F?!'??Z?&D????+??z????m?r?"?Na\R??6i&???,b}bIn?Z?5?r18\???>?{??}???? ?2p ?y,?????7 kr8;?i????? K?/?????$???Y{rwv!W?????5???St?Q?n>?g?`?:?D?8 ????????9l-??Jn?1??y?K???M??W??`<{?~?W?????S>??.H%k~4-u?X? !#???t?(??H]C.0z?j]D?q?W%U???c?? }r?j?? +?????t???tT?|???A??'}5???X????q]??)?gki?J?,?s??3v?P???+?(????V??|?b?N??}:W?S?;jQO?L?o?? #h???Q???J?4???l[?r??\???????9? ????H???N?.d??:?9q???k|BwMS????gS??\E+ +?A?x?Yz?0?1da?Ri?^?????"#L??f????S?/?{?$????s?dWnQo????x??*<,????Ub??Cy$Xw9??[d~U?????=?[????L?6v??V?ck{ x??H?H??q???A^?`?O???????h'??L???V??????+:D??WH??????G?Nc???????CZ??%fy?5??Z?? ?H?B??q??&????x?D?,? `0?J??>? +??????P?I????????^??!*@`?J?????n*??rD1?u$l?Gp??u???M&-nN?]z? @?n`???WFpOC?8??V???????clrH0F ?J!???cr?T?j??X?sU???A? +;R??;???.?????????j?(??(??(??(??(??(??(??(??(??(??(??(??;?4? :??2?%?l??,?I$??1?D?qk-????@??1??s???T$?@? sN.?4&??zE???e???J?#l;GJq??,>]"6[Xr?!???}?X?q?S????G +??k??>z??BQ?A??G ?-?iH??f? +TH??sW?????????0q?FT??"??fKH?5??Oy??????s?7p????K??s\u????V??N????z?#??h??V^J??????~&?t?????0Yc]??^{??????T???t9?L???u>o??????R.cx??V??!?[G?Hu[pL?y2^#???:??l?;y?C?q4*UD?TB??.W???[??5??iw\??;??????+?h???]4?m?FK`3y???W`?.??%??????!M;?6?8x%Xo???*ca?z??????gc"??'?V??C???cp?W?r??\??????c ?1????f?=??????:|?Il??2??^k??T?w?Aj?+ +?e9f?????s????H????Z??o?"?I`K???????O??#?????+?av#?C)e ??o?????uxc?d ?x?k?????~??B? ?????J?[9??{yL?????9q???????1????W&????U???????????s0?s????????M>??)4?]??3.:?NI????????R{Ku?h??d??????J??26?.???$????%(+?Wim? 1??????????[>r9?I?NX?q??g ?8???sB ?$zU????m?? ???1Q?q????Q:??R?z???w???@9???v????gj?Y?m `l????*???x?B0??*}?z ??? v???????+1b?FN?LV?H??????~^D#\}=???m%?A?_?r?l?g36rT??Mw?m??5b;V?(?M??[n(????5R?m?Q???}1??????????????s??Wh???Q?B??p?L?ma3?'?\g8?U?H??_,?q?v?d +l???????*1?ds???????5?%?cB??m*g$??BW??????rS?9?XpX???6??)A$@?????? ???wyrU;N??O??????????:Y0?2[c?? ??B=??V-Y??.?=?]?{??du?<????f???????*|??????s???K? +??c????:?gyL9?(P?m?*?wQG +?soN??1\???,?E?E1??#????????!lg?y?]9F,?d?gh???4?e??i Zl?m?7(??j?W?5??? +?0f'???O??+??r??????????k? v?H????&ry|??(??XOdyv??7Y?+l?[?f#?$c?????n????a??^n??????????OK#? +sY?W?6????f?????*b????rXt?h??qE:?E????=2}??u&??8?E?D??\@?? `2y??**pw4??yL?t?b?M$l????kXd? Vd1\??PA?????=".6! ???=?G?t????k?W]??O?'?r??K?hg???ou?,u?Aoj??R?????????m;Q??5?}? ?#? +?O? ?Wq?????^=???&?k?Z?3[?+?k????a?#IS?????????? t`r??W#?????006??????R????t???T 2?J???_?W?W $??s +X????%?????Jc?F?f;[c????C5??+;aC?g?????'?+?I1??????z?q????V?q,?_?HQ#+??B?Ey????zt^?OB$??o????>???|d`?6?'??`???~???9??[?Y??? (?kM??}0???.?$?BJ?~???9?Y???V7????E?3?a)V???q?G?\??:??F???j?}N?S??????c?`?q?EG??-?@?????9=p=+??W?G?}??f?fx?????A?1??x{????j???^?f??FN&u?g???q%????I????V????=????4?EBR??5??????,?????8?5?Mhq????????=???q???h?,???UmN?n???-?m??9???+=F?q??i?}'?,pH?T??W,%?`?R?}?9H??+]i?qdw?W???}6U??I??A?8?+s%?4?rv??z0????? ??ls?;I???G??L +?C??V???]TZ??????N?N???o???z???9as?.q???^?????2[?2??>?v5??}???M?Mg1x?y?z????[?d?????u i&??8???d?$esb??@#?ph?T?U???0????_3CPi?H??X??V????EC??v??????W?$X?RL??????????v?v??????k??/??>:?Xn?? +q??k?????????F? +?1'????p?????Z???]?2?2U?rr==??l????y?N??P[??????8{???m?bRz?=jgM?Tz*F?{???{L +}??*?:???0L??Y??Fu9?KETn:??Z?6??????I?\???#?|???;???1????zr+S?H"????1\????3"g?Q?{??|9,mh? ??|?O?G?uQ?4?pV\??????x?Q????? +?e%#(U ?q?R?l????^0jz?#??U;???&?R??Td??v???????5V??????}r?/n?G??#?=Os?}+??>x???? N?o$?rBoX?????? +7P?(?? ?yp|?`?????]:5????%??4??G<?"??$:???&E????1???c^Ua>I=l4"?:??????P??I?OV?5?"?f??|?"nd??zV??u" `c8??WfZ8?b???E}?-???0??j?S? ???V|+r??????d0????~??f??A??????hT??s????Bz???E??I?$?-?- +???y[@~\{?u???????V ?5?j^?#*?d??@??9??I???6?v??R?zS??N???,J?m????>??5Z???????=N?=Fk?m?!????R????4?r???9??????j?Pi?P2??TI'WY?G?4h4??*? ?????j?Q?????-??s3#\??IqP??#?$????#R???NOJ?????7?W?B? +??v????oc???Qq#???{?$Z????vx?\q?????????kj?nDw???S??2Z?8' ?r8"?-??w??31,-D??????~u?z{[?? +?????+???/p?5??&?u# +????0?}9#?? ?S&?! +???=k5C?J????*???;?_ 9??5?^@?A????"?t??m???c???s?#?????k??U=?nqBR?_.??j???m??p\lc?????:z?}???Z???? ?????*$?7 at d?????F??^n????? ? WN???pU?????F???bl??.-?|????8%??????e??????F??4?7v??+??[),T*?w??T??v9?q?j?P???Q??0bT;y??x??h?q?Z??U-%;????|W???;p?9?d +??X?? a?E?O?We?????E??jlfL?=?u??S?t??Xg`?i?N\??X????H??%Z?]?{?D???u)??ZYHL??b?yA?=??z|s?_`????Q????JS??e)I??3D?,?KE?8??J??\????Fzs???&(?-?I??1?c?????S?????????z~?)N??b?? +?[^????t+w>?j??\???????????V??6?u?1???b????,Yp??P??9-???u? ????????j? \E*??d???3???1??G}*????jK?????8?z????;?4?m?"?=????{?5??????? +?|m?>???dy?(2xeN?jh??(?[?Sf??? t?A?b??+a?yW?W??PH????L"C+ ?????????d*~a/?x? =~???kI\??%)EAn?k???k?n8??H?????]-?? +?/??=6???[?_P?R???L??v?rbe???F +??E????aa???a?O?=????F1??8>???,?c9A??Mu )?????Ri\??3?`?j*?*bB?^???I<?????R???F1Vn??N??aXw?R?$??F?M???:??k +?*???E??B?]K??????5?O?[?????H?? ?j????'??_?? Ia?EkO??%%sM?? ??g?B?8?/?^89?{?5??????Ibj???,?? !|??????X??~"?]?? +a????EuP?(?????Z>??"?.xOM?b???m??????j??]x?H?$????yX???6?{???????MF+??K{w.]??9????t????????Ei???????Z?_ +][????.??????D??,??????qX??\????????!?'???Xc?Y??ar`??tC9????w??? ?c7iu???*?? ?&??????{??=?x??Z? 7#???K??????9#?+????q???7W?"?p9'?T????q?kGX???%T?Ns?T??b?iAsE?V!?;???N?;h???3^????(??-tq?????l?ri?$?G?????2??_???OUt??P???m'???h??????v??q??????g1X8?? +&???{?Y?:=z?V????=?????t?r??ry??[?im??aT'?{??)a??+????4?^?}?k?F{?.???????-??o??????WP#?_???K?o?o????????K?o?o?????>Z??(??(??(??(??(??(??(??(??(??(??(??(???_?1???????j????W??O?`???$??=SJ??L?|a???6????V?? & u????p]???G??\??.????`????Z??`?&?L Q????=???/??u?V????v?R???Gl?C?3`??????>n?5?C???%??wq:??? +=0O??\??l???*?mK????8q??@?? Yfn????U?? +0?rw???<$????iK???n???? +?\??7? +?O&U?@?=O?a??*C??o:???qP?aPG?`L? 0???P@?e??]????? mJ???#???N;t??j}=? gbN?1oQ????+W$??/6???>sx^?? +? +??+??G????V1?[?`G??.{g??m&?\???????=7???K(????r{$??i??R$??H??S?tF??dh?yR??????????rtF?+O`???|?c>?M?]?R??????z8?k.xBHe +???????3?)???s]??f?? p?X)???????c?0v2x?K?)??%??.???;v??V?? ????o?u ?+????H??Ww- %??`?A?`NW????n>?)?[)??qN???? + ?W??K%+???5(??08?????$,v?????$?C??2??%Hd?J?????Y!8f?H\????e????B????_c+?\G%?6????=????Mc????mu?C!c|?H????h?mqa'??wtc??pB?8?=(???????.?M!?????? +?\???SEU?_??'i?????xj??=em??&X???N[?&?~?l???@??b???{->? ????pB??t??y???PT??+U?,?????v?}=?????&?hw?{??N=}k???9a1y?-?}?Wt??j?0???RZns?7fZ??????A4I?0#$????}??am +x?wV?IwS?????V???=???&?F???=N? ???{ +?q"?3\s?v6?a ???!dq?=?Ke???E?@???UOFt-??Z$??n? ???pQ??{?:???T??\???????y?U?< ?RqSU?E?????= ?Y???#' $c???X?? +e?Me?.>x?q??~?w?? +?????ZhZv?0?>?vm\?Or{?u??q???? +?9?$??~??)/q$?"?- +??9De?i=sP?>T%??oS??|?.2?3??6@??*zTru5??g=x??F??e*pk??+?9Y? +???(???u9??}??4?Z?|#??)&x`T???cC?? ?0?w3???V???)g???G??R??+?u? ; ???|?VeP??????'9#??_xb??]???t???x??y?1?=r?t????Kf?q?????\??8??_?3[?;??7?D?\ +t>6?????a????=^qg????h????GIE??h????GIE|?EPEPEPEPEPEPEPEPEPEPEPEP]?????>??I&?z????;??K?bp?Gp???$??A?@?6?/??????:L?0?j3?b??w??? D%?c??j??4?SA????? ??~??q\F?H?,???@?qo '>???I????Mv??;B????????ORK;??k???-?Zz??~??#?< ??/????`?G&:??>{???]??"?? ????/,??b?bv?r:????????q??????R!!S????W????Z8"??u%?a;????d.??9>??w??Hf??3??Uye?V?~???o ?w?k?? ??????uZ??x??_8S)c???O?\K?F?j????Nn?\g?I?#????V ?2 ?5?t?i?r?e??RByc??Nk??????Vb??zV???i5k?x?mhX??Cz?v???:????tDX???BpC ?>???????P??????d?6 +????_??kS????zR?????MsZ?2?{$R??G?zc????k?HL?I ???k???R??(L.??ua=????k\?/s B?@?0???????W????i??Tc ? +N?8T4????^H?J??,cfy?WtGe???S72???????=?????X)Q??+??.a?X?`a?yn?w?=q]???c??*t?f???B|?M??G????8O?????-?FUv???ex????R ?1?+?~??????8?C??;?f?}???Ep?)QdC?0?q???E????'y8W^??:?Wye ???cV?L?il??1?>??iMFr\?Z +??s??????.?~`??????G,????B??:?.?0{ +??rm?A??*+?9???g&8G ???V*3i!??\,??I???Z??=@?UT5????1?8?k??G????XI?r ??z???sT?Y?F????????????????*>???{R?f???q???m?XC?=???? +?????#?? ?????Ub#?F.??.?????B??3|?$????Ka*,u6?ih|??d?T0+??????1X+?3?^?????V???r????{?FgE?? ?'.i?V=t?MD????L?|???70??_????????W='):q??_???q??+?0??????TM$??|?37?K1???-ci$;?n??5SN?c??h???ta?P{??L???.yk????gu????????+??????]F?1????? +"??r +y????;B?EEEl??????eVM6E\y?".????????j-yNjI????H?????p???????Jw.z?5??F????????iQ>G8????Q?g?0????n?g??N?F +eIy=????y'?l???z??&.P1@?}MT????d???u?B?>X?e???P?V>C3 ?J?eI????c?M9E?)?{ +?3??>????y???GbT???#?K?r@s?;Wci?Z?@>Ey?,????\S??w:)K??Z??????F???u]:h???Y???9N?~???d? #??c??5?sW?9B?e??G??=Fx?Jp ?>%??UC?w$g???.y?s/Y??)nC?}*}:???????2???1?t?X??? ??F{???l????q?Z?P??)?~i(r??.?1???,}??v??W??Rq%???y???i???3?W7?Y???!a?????*?Qq??lA??4??^??}k?u?O???+"H???????i? ?? ?`f2?a?U?r?g?Z????gk??????;V>???i3?????????z ?5?????K'%??A???g??Dj?+GF7nf??s +?????[#???XF??b?U?d`b?! +?zS??9!el|?Mv??l?1M?a?8?8?C???\v5?I?ER?l?#7F"?]F4??'??G??898-?>???o?B8Q?E/* +????????N?z? ?+??[??P?%???nXd=1?? +??S2???p)$????8?f?kx@?z?V?)??9S?c?)N\????x???HW????????5?m?Z?UG?=???g"B?H? ??????s???inf????)B???s?V??????tI"?|?s?????'?!????>????+.??b?????V?R3?}OO????m???????=?5??RA?9_???I???4??3???2Z?v?E??V????;w?????_????vF?Q?pr$8????ky?T=?J~???I7v-???I???H8??X?^??XG$F? ?????Y? ?G8?? +?|??s??x? ???h????KJ?'???:? ++?E?3?}j)n$?????6?H???c"?9?'??sY7T?HAT????????A??g????-w;\??t6(????U`?=???=zWAo??? ?Fp?x???*???;?T?l??E??>??Z ???rOs?^?:??4?y???Tm????mQS??}@?M?????o>?????@?$???8f??????am-???; +????`????3??????Z????M??mx???q?q?~5]?????,?)-??c???jwlg?y^A??>P0Gc?m[\?kk??????{s???j?jI<?z??'?$?S(q????s??L?P??a?????g??$?kU???E4?????E??????Y??k?Y??,X1??X?????H???x?29?????X?ET?i?????8?=???(???Z??-?9Wp??)??? ???\???]@4SF +Jw????0Iq?< +?'UJ7???n2?fM?v +?{?mm???R??? qq6????oqZ????N??_?I.???RM??Q??E??!?[???OO???I?f???y[?7Nn??F?????|n ??????5???U?j???oS??I#??? K* ?Y? 7?s?g?{?f<%???????#KD?8???Q?????rz +?????8Uf??"?.0???5?{;?t?????3R?a,??.?????????j?(??(??(??(??(??(??(??(??(??(??(??(???z??F?e?@??Y????T?0`8??R????]??'???? ???6e?UP?C??@?^N+>?E?o?????WV}?mg.K??#8by? +F^??i???8x???FS?(???o??i??H??UY?V2m? ??0?s`??Q??v??mm?i????zIq ?rN???????Kw??i??i?Y?oRo'??2sG?n?}???m?a??GC??q'G????IB????{???'+???QU?????YC$??l?????Z??m??f?8???{??!??j??? ?M?{?mT????k1?OE&D]? ?$\?9????%?k????Y[@?ZY?`ZY]?i???g^MR??i??}??{?s??aly?N??\????u?-up?#m'??\v??[?)!??in?T??l?cQ?yyezq?+??[ck ?"\??42#nXd??*?F?iWe,??y???eBPF???H?gG????\??iwc#?a?,???}??Iw ??b?'?e?2??? ?????g???v5oN?-?\??n%??????/ ?????!????Z?c?5;???+G?????^{?Z??KS?F3Z??\?o8S?I|???????????E?t? ?v =???nj??m>?y%PDM?Q????*S??W???Ij??m?R?T7???LH(???5????????D????W? +^?$\???Q????m,a?G???T*Cg?#?,M??T?r+??????3?z??OB?yRP?T|?_Eq#????NI9?????k +?i?{j\*?+&\?^MN??'?\mE??? pF?rGJTr? ???>EsFOC???VvZh???1?'???GSC\??dc?3Q???????C?1??d???EM()>???-;l?m?ou??^3?????9? ??\?pk??5T?H??C?'?9?x??d?(??U?>?????????%9?G^?u?E??Z?) +?????T?Tb?m??-?u?;?i&%Or??????kR?9?????.^???u??g9m?? +<q?[????n>V?H?d)?j?5]!??*3????{?8??????Lc,?A\???qJ???tFN ?t?A?ie??c???? ????^???=???e??? +???b?7??w??#?ID?T?w???7?Z??i????????r?+???=Xk??YI%?QH??d?(?"?hW3??=?????O???.??P?P??0???????MJ?????j?;3???s? wU +q?V8'$??.?x??Iy1?+ ???@=+????u?????I???t +b;]6 at a???fA?c??b???V|???????V/??????N??? ?7?>??k??5?f'?$??d??%???4??a????zs?#???Q??AV??%(?0JLF'??5?h +???#??p\???aX????? ? ?????%?+?Y????,?1?????5??M?????t:??`??|?M?yK?\g'?{??????-}j['%?=??{V???E??q.W2n?z?????f?'9/??%NrW?U????????z??/{T"???jre???M?r?d??#< +l???X?????g??]I??'??x[??6 ??0:??8j?????*????7????????X?w?$???????q?E??Is|]b.?Q??X:+d!??g' +?n????/??Y?c +????#&?????*B??J?u=+??bI +FO\?2?#RU?? ??[1x??HR?S?=J?*Gs???|??s??0i?8??j??E??K>??xp??$?????????x?B???j????r????:????\v]6? ?;??E?D??7?8>??b??E??????kU]????^uy?P??Q??-??l|?? ??U??=q????Oa.?vm??Z'9??P)'??]?ks{?b?G?8?????????? ?3?????SC?!;s?}+???Y?s???~?????F +?Td?Kt?j??[ +9??O???#?????Cu."???Q??K?D???\@Y\?9??????-???m?? 9?+*?ks???6?2=N?DK?B?F??Q^oyk?;G??7???]?????U???a %???????x??luF????;/?I8????X?.?4o&??L?K???2?`??????X?;?\??}?x?*??,??d?#?,??A??'?????*??$]?????Z?j???h?c????-??KOH?2!?r8?kW??n?????=+o???????|???P????C?u?^??f???b;?C?4?????n?????????? q???S?knD???9??0???w????|?? ?Fx????a??N?????kV Y???T????o??uK??F??HYO#<?r+:N???B?@?g^?V?G? ?Ye??GP?B??q?]*??;????\y??s?`??5???r???????/?y:Y??{s?{'o??^%C +?gi?????? U +? +?uf??????*?9?s????[k??*iG?? ?F?????G?k6?o"8B*???s?xG :4j?y9?????f'; S???c??]\?p][?? ?)?-?]Kit?I??????e??K??dX?????s?[?? ?,???C?$?F????:J(?C?$?F????:J(??(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +(?? +?e?_i???wR??I?0O?Uh? +???:????h??ni?J?=zb?h&vL7t???C???V??n?z??>? +3JPQ???:s?????????_JT??`?D9?&?`?D??Xp+??5 y'?7???3???J??OsC?v????'U??p?4R.{?1?q?WI*`??.?@k?mV3? ??j?f ????]??9n?J2??????9$???y +h^Q?L?c+ ???Fkv?A???6M?????y|??$1[? (????\v?0?T? I?,OrK???c?L???/?z??T?:?]#M=??dQ?T???:??dDH??0; +?U?iBI(??:??t??{`??i?? k???Kgab????????7?#nB??67.p23R??&??o????{??YD at EE.????hc????8Mma??kguI?ZFh???YH????9????O??$????w2jP:Im???24?\2?TD$?? #???????I?)G??'??SZ ??_??l??\?v?*?L?6?? ??7D???I~????g?tZ??h??L???z?j????1????????I?!3J!FpM94??#????y?<4-???Kv,?f??Fa???Z??B??UN5]?oB?????96R??????n??K?|?-`??H ???i d?????????d??\??0??.43i????$K???* ?????? :F?q??dq>??tFPnU??'?|GK?QE[(??]??F??Q???w??????VU?????E|??W[M??????=?M:??w6?X??[????nP?2?e d ?s???v??`???????1Mb ?a????nC1??? ????ze???Co +? y??ei?,?(ey???\?y???z??Z=??V'?$m? +bP??(V?'?????_Uai???? +1ud??????j????r??T???Yh?-%???b0???$?(+?????H????Q?hu?T?[H-?cH?,??d??H?2?7 +?\????]V?l??7 +?{b??oE??2?I?? ???j??P+??y??`?????VU;3??g???????? ??????????ndH?9?pWWe??(??????E +J1i? ???)?xcQX???|????'???O????????? ?>??L+??V;??I?)*???????????4U?kH??h???l0?????!#w?8??/???????????MuS??g???v:v?VX?U?????! R )8??????T?L?A?=i??-??C0???????4??????X?^K?">b ??'?u?+??uA???'?X'Da?5??j_`?+!&?N%Ld}qT??0?,-?$ ?]??r??^}X?$?z??E???%??=??V???????N?]E??jY6??.1?u?Q?B\y??V?#??4?? ??2?1????~?Q????D?S?=?e?"Y#?D??K???Z??Y-"????pA???XS???f>J;1??y??T?^iq?J +?5??\???? zrk7ws???*:MJ??W???#?F????????G??f>Q???n?0[Un????*??k?i?T`?X???*??#'??????+??J6?#?'??5??4??V??x????]?l?V???-???N?D???v?_X?????J??7<1c?]??y? +?????56????????$?s??????zp???q+n????[?G?oV??b???';?~\???? ??'d?w+?:??H???tQ?>?J?l??E??R3/?Qc#?????V[FK????$??G +?EjEl?a2??8 +?@I??8?q\???U???%6???X%??`?6??r~?O???????l/`b?3???=~??t????H?`x?nH?Bk?? +E?/??U????qw????b???2?8=????????$\ b0???Z??????k???7?????????*3?%}EeR5^??b??0 ?rq???L?&???*?>?$?D?C??`8??v?????i.^Yq?p>?t????aJV??? s?^y??A?$d?]}??wv3}?(?U+??`??3??o4?d]?6?0H=k??????k_c????L{(8q$)*?AdloA ??8??cW ,?WEF???=*?T??Iw"[FN??"R}2????X??????????-????d ??#*a???u??j?RO*Em$??Qd?<?k??i9??R6?+v2????Wq ?T?=6?????n???e???????dA?m#?=?? ??q?? +????/?x?S?6,?aE???6F??0p?????&S?M+#8?JN]????{.4?.????Q?K??\?u??g?+*????V??y%r??v'???????(??(??(??(??(??(??(??(??~??.????????>??.?????????j?(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??????te8"?En?M-???:?u?%d_A?Hm???8??w?n??1is_Miij? ?Z?e??rFFG??????????JG?T?????+y?3.??$1??=?9?t?Z???J7I+?c???y?????k/??2??N????E6?w????d ]????}j?????/???7\ +??????I??j\[O&?py?tw?I???nP0q???t??[?P???h ????>x?'?w?cg}r {?i!i?vC? ????Lz??<]:?BG +7??C?m^P??g?%????p?>]?????o8N??????:???^c?+?}2?h%????;?I?????B +xmv???????R??n??l"?nB?s (???????#??x?l#?q??K' p?? ????+?????7???:p?M??v?x?{?[B????cB??`x???#8???????mV?z???rz???rC?????uys{+KuZ??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(??(V??Z??Fx??-????L?????8?>???]#?zt:i???X????Z[t??!?8  ,?????Z)?N.?M'??c[?+G?6?????.?#`,A(?$?yY>"h(???_???r????{)?{i?)T??? +????;?5???????9?<?}?1? c?Z??>?v???wC?F??????????+??????,?m??????T?$$?munU??c?H ?3?t? ?|????1?g+?y ??? ???]At??U?????G? +2????|s?????6I :???????eV?????a?}?O?H??J??????? ????????+?????H?O??kwp?k?#?y????\W??}???F???????Z?x???*q] ??47AN??3???$?20;??;????M?+5???o?$?:?q?.A?^Eu???G?W? ???????????t?)??!?8'?????w? ?U? +????????C?$?F????:J(?C?$?F????:J(?? +endstream +endobj +70 0 obj +<> +stream +x??? ??8?a???sMt?E+HJ A??"??? '??mL??h????? +"Ti?????E??D? B?*?4??]???oC?*?P!@? +"T?B?D? B?*?J\?????-? +? +???P!@? +"??Ls?i?[????s?~?/??f??|??????????y????/??v1=???'?0Z? +??B?????????+W|L? +???+????u?G.xg?n?+??? +??fU?y?G??e=v3?x#?}??~?|?? + t|z?hc*?????.????n?????? B?*?P!@? +"T?B?D? B?*?P!@? +"T?B?D? B?*?P!@? +"Ti?P?pU? +ki???Q??"????(?GX? ??z4S??`??X?T? +???8R? ??@?K^!??K +Gc?? ?P?-T???E?*n`?B??i??????r`?+????_?:/@??????Q!??>?D? ?P???M?'>A?? +9??}??7??F?_?z? +y????q??;??A???V???? +?WFg??T??????t??m ??? +?E?wB???y?~?F?????V?x'????/ ????{????:?9??o?9?@???L???B?q?? +?2???P!@? +"T?B?ut?K????-_????B??? +?.??/|T(??8??B=G????cF??;??WV!:??n???B?q??????B?_?z*??r??O??????S_!J?jQf?r?@??*?????? +Q"?'&??j*?{9 ????j*tw?\?????? +]w??u]r?3z*?~??=??yf??2??GO?n?q1?gV?,??T??U??? ?%*t?2t7?gV?+;?\????:?b??????????O????B? ?9??w??? ^??t???_v???;9/x??????.??`??J?c'??"??%#?l???gZ|G Sa???? +?^???l?B?c?4a?????B?{w6??2?????????t/????B???o?W??? + +B?D????sn?? + ?T??P?DD?r??5m?v?9?> ?7????????U?Y?y?k?j?????????[???@;?? +?I^?Z?Z????9?2:?????nx??:Q???L??Rp???38?????Bx??:?? ?N?q??????BtqS7?B?N?6h/?B?*7?m? ms??{#?}#7~p??9?M?+t, ??X?>???h?X?.j?P?9bU?`m?Wh?$??t?? z+4d?XQ2p T???l??Wh?D?_]??Vh?x??????B????????b5??Z????/???\C?^(??g?|YM??Vh?:???D? +???)???U?o???? +?^???????????S???? +??9TI?(95??@ ? r??? +?m??4:??]?3??r5?T?%?X!????e?????x??93|?XX"q? +?^s??i?v?=x??_??<1G?+N??B7???r????*4t|@?!FZ?????pU!??D??;;???8#?????????MU?y?:?h+M?H???+?f?U(~/??B?g?yz@? +??? &?F?|????,?\!??????B???????~@?f?P?? +H0]+????|?I?|?W??3?B??H+?B6??v??9C-??B?~s' +??=stV???? ?t7S{?]?l??d?R????B?'???^???&??O???R?????????r???L???H?E?S!Th??8???_????,R~Q??T(?Xd??S??CWQ!(E??.???????????R!h?L??"w[?"?n?%??@??M?M?Fc.okZ????L*M? +??MUh???K"MT(??*?2o??H????H????$???Ba?fL?q?X??eh???Q?%*4g?X??Cg? +?24[?B?g ? ??Q!???B???B???B?@?7*T???g? +U??Q!?F7*?????Btc?qSZ????R??????AC?T??U?tCG +???)?P?,N:?q3?*T5????FQ????P?0??:?q??W????0?=4?????BG???Eq?h?P???=y(?m??B??(n;M???????B?'%rq?B@?l?U(?????Q???Z*??!??M??={??M?? +?=t??M}?fOJd?F????i????C?l??Wh???G.m?+D??M&m?+4{??$?6*J?Mw?f????:BF??R???????C?T?4Wh???O"lT(? +?%?F?? +q??P!?%?F?? +q??P# +jDa?B@?(l?+D??_6??=lh?Mq?f?*Ea?B@?(l?*??m???35?_?f?*EYS\!:???)???YC?8k?*q?????3]??E??=\g?TU????JO?5?zh?XO?5}?=b??e?G[?f??yY?h??H^?~?U?a ?k?U?a?3ag??P*??? +;D??K?4V(q???C?d??V?????*????B???C? 5??=k@&??}J???? +m?????P???=n?Fm??B??????P??? +??????Ba??*t???3? +??\Z?B??D???J??$?????EO???Y??(?????? ? ?]?z+D?0?????Vi?8?????`?Pm? +?!b??K??Gl??B|?L>b??C??Gl??B????h???UR??m?V?}??f??-P?y??????U(8x?{h?G,?? +?/C?y?Q*a;??????C?D?NT?%???B?3?6w?&?A??[Q?*+s?R??*T3????,?w?9?? ?$) U(??V??(r?*? +"? ?(??D????:ghm?-u???? +?Z)???y +????? V?T?\v??L???\ +?v??ki*T?v-??d?SO??l?1?B??+)?Auv???g???????????B??k*?@S??H???'??????>?Q????????i?8????nK???P?F?J???4???N:s[f]?????*????\*?PVn?w?? + +????*KE?????q^W????`@oD???4c3?????} z????lKR?????P?*H???????gQ?w??????H???Q???I?????????ow??_??P???r?@U????.????B?? ?#2?2mK-???B$vT??j?:?]??P???c;?CA??J?j!T?????????\?V???B??%zd?Lt?q????.T?????P?eo?vT???,???_?s?Bl?[?sw8???BJ???jE]??/?&>/Font<>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 72 0 R/Group<>/Tabs/S/StructParents 11>> +endobj +72 0 obj +<> +stream +x??Z[o?~7????U3?s yH??)`???@???J?T?d??? ???^vI???AY??\8?o?k?g7???g????&?? ???+???#?2???+???]wy????????? g??t?????./??????c????)??KMJ=??????????J?zKjz???*?j)??J?Zj?6?-5B?9?R? ???^y?????J?T? ?#?UT????$?d????}H??? ????%w ?Q? ?Q??'??? ??????|x?=????????n?w?0X??D??g?b?????f?!w?\^???j!Qg??}C??GG?r?t>j???FC["?Ke????}b4n?p?$B?3?Z????????!??3?t??|??? +>??-???????V?{X?f??????|??>??i???&??v???]v x?tKX?1??o |?????9~,:?6iC{?_$??G?1??T?IM??T?R??i?}???POr??ko??C???w?|=y>Sq??:?}5)?????u)d???^Av $,??? ~??#pV] +??I 9?%??????0???G?c&??? +VHA[Q*?4Z|????S}^?????R??m-?? ;"k?? +.: ]??2s4???y&\??n????????eV{%&0?Kd?K?'^??E(???y?? +5 =p??|?D??????????U?8??C??8? ?? +sb?jE??z?S)cO? ?j?`Q???*????jIZ9A?&????"`-|??Ea????2?6?@:?8K?=&p?n?Ib?? ? +?9W?? 5l2??~ +? ?3???D?? {???.?$_-*?w??S??# O????@?A?C??6n??>?\??,??M?6??PW]???a????D/?0?z\0)(????&K???M?P ??M?uF????$?>??"M?X?{?L?\?? #?i6? +FZ??,N???:???????_},6hw??,z??????)`n?#r??F3"ga??TB??~?PKr]?/ZB?HF???'???D???U04????V?????DB?AX??F??!Z?Nf??=& ?f???'?6x +W??%???r=??4??8&? ????????|????HrOm*?,b??Ng}?'???8?6?????v?(?E)q?> +stream +x???yX?u????+nIef?ni?K???iY????N??Unii?f?`??B?????[?9?????%? ??(??s?}????3?3[?7??u}?s?g? ?{_?????O??-U??/?zpo=y?!??Zm%=???'??2g?l?????j???;???[??????R????7e?`????S??????era???V????????r??b???ZC?i/O?Sy???E>^?/???P?3_????9rt????s(??W??kI?ZR?6iZW??Q] +???2wdQ?>s???'qK??!?I?Z???????????JR-?(?T??Z?K]??.?\'y??,|W?%[f???s???R?/)??????????]???4?-???>???RW?}????12???3??rv?:??{U?????????z!?m??????F???IU?(??????]K??+???WdL_??|2H6????U????o%!RE?G?/? +Q??????_???,??o??????????Z +?Z?Y???Pp#?QUmty?~i?\????}U?^???????*'#????Y???c??1o?jIwdn-??????92|?K^{z?????.mz??????\]jVS???4??M????2u?LzU>?/doXQ-???rv??Y.)e{G?!??1?????V826?/o???????????'????2?v?g?????????{z??@? ??*?Z5UZ6??!*?[??3??????????rdQQ?????*e?Dz????????"=k?????????oFz????By?XA?f5????j/=???o?????????'??ra??=??L????????:??0?|r?%)?mnN?f9???^pv???^?=?0~WN???N?????; +? ?$!??y}??n??F???1T?T???Z?^???U???l??d?Qx(?S?X????w/???__%.??T? U*K??E i$#????epO?????^?]s???'???%e????? +s~~VK????)?U?~?[?J?-???Uq??W?k??]?????@??.m??VM?ecu?????6Z?}????{?;????yG???)v??????8 +;?????????]????3??R??T ??A???4?????j??{YF? ??m??r?rz?$DJB?????9???y??W????]\s-???7????U?g??(????????5???g;????2o???S?1TM/k?] +???x|?1?mc?[????mZ?Y;??t?#C}:??.A?R?? nXU??????????????2??|??LzU??"g??0?? ??rIZ?>/???E??:}wg???Z,??.=c???z?#????k?z???wG?tm-????-dl_?dPQ?O?????Yrh????_??????6??1??L???????_O~????s^?9??r???=??2??R;Xn?E????!E??|:L????d?|9?H??RIY-?W??U????????xl?9?-?????=N?NW???H?F????Q?BQ?%???????m???/???!;????$j??-???/j?????.}d??O?'?X/,u?b ????{??n??m??wnFzO5?D??*??P????e? ???????rl???R?2]K???4{w?????Cm?????r???lw?????w?ym???#g?X?-?{??E? +R??Jpuy????U??$o???????3u ??p9?X??\K????vZL?c +??)H??:????cI??????????}^ +????>G??????}Mq? +Q????(??V?^???.-???*???5/_?'a??O????*I+????6??GLq?-IaZ\9???8??????wY??S??<^[?'??#cS~?G??i?{??z??????|9)w-???Z5UZ4?=T?u???d?d?>???$f?Z?6????gm??{O7-? Y?-?$?kq??{??Z|?+?+?w|N??B??9??{?z?k??w +??/PBBI??????j_??OyM"'J?Y???^&?kUt???6??;??'Y/Dhq??<????+G?R?o?w???u????%i?9~?????m?.m?Q???T? ?+???????-?Bd??2?????????U??VW??~#'????gni????Z?'??R??^XjM??Z??]?*?+?U????r8?vX???1ogm????Ur2B??k?|????{:? k?TZ7?????'e?s*S^????ij?K\(? c??p?/o??o:1?~????e/?T?5??????P?|N???v??sf?)83?t?????26?K??\I??cKd?,Y9UU?Z??,?[?;&p3+_NjT?*??????-!?dHOy?e?W?y_??V???$D??e??????K??W???^???oK[??;?Z???w??d??|v????? g????YI??????X ?s??u?}I&?N:{KU???(?????I?*z?n????$???~?:???=*???????2}??V??K$y??].????gm????????3??????7?]?W^7????)?{??L???4'L?=?r??% 1???U?p?l?4S???}d??????????Azt??????V??A??R??,?????o??6?????{Hi????9~???{?????M???Z???~W????s^????3?=?cIr?lW?ON????DG??PY1E>$C{?K]???ro=??9JR?`?US???6t +Qy?)??????`?????????Z??V?:??Y;Z??0?}Ppf?????vdm??r????%?????6??W?a?????r??????$???%?X??Z??L~UU?????nW ?$Y?pc?TA?Je?D?wy??Z?#C???u ?s??F?-?m??$?/8?y???v?(?Iuh??.+?J??W^???WWW??:???Z???????:T?\'?W?S??(???????_?x?!?????}U?8???6?z,IZ|NC?gx?j???z%?{?rn???8CT???]?I?wrz??a?U????to#?k??0?NW?{????msy?????N_??J????BE???Z Q?Mq?[??m????1n?qO?)??9?????Z??Tm?827$??;2???MI??????0Y?????_W????[????j????ArG?J?:?N?=T??W+ ?D??cKT??R?"=cs?+{?k1e=??%i???????##?w?n?S?r??M)??}??M%tj??:I]+ ??&??3d?P?????k?^h?y????j?7??H??j???O?|?????z???K?Z???;??e??55????S????????]????]?>g??????j?9~?62?4.???!;???NW???a?L{????M????y?.??T?(?j?C?Z??(????=e?`???y?Z?rb??.uz???s~??%?t?-m?5e?3{???W????Z0??(???????pc??Y?(????RU???y??2e?? ?$?#??J? ?KF??Q/?U??>V??J?.?????%?Ps?4???Z????T?????67????s??dg?G?&??)yGdni??C??t????U?1??????J?u???*??z????4???L{y??j??$?f??&?????I+?i? +???`<6?vq?=}???r?k???t?F???s: +Q???M??????K^)g??S??s%r?L?//u???p????( ?*I????????:??~???;??w? ??????????xl?1?m[?Jg?-??D?#?kO??zwln:?M????G?&??Ey??Qx?C???????(???&??-??}??:???:?????????#??@??O??k9?@?LZ?O????>c???c#???vf??_??6?] +???3????=~?????z!"????]? ??Vb?Q?Z???{EF? ?+M?J?`? ? +??~???Z4?'?n????N??????l?)g????gni???I??~??I??w,????Z???~W??yE???(~??kM?????*mde??\B???PY1E?????N?????~x?dj?T?w???_]?????Ef ??!??\m?rf?\X#?W?P?v=l:?????????=NC??~I?? ?????sfk3?vq?%????/e?hU?#1e?_"??T?GGNT7_??E?)w??VxU????&P??????S?T???#U?FK????u!?w???? ?%?z!??????C???_?C2i?Y$??H??t?Z???zI\?]?%"??????@C???t?)v?ag??????7??fJ??2 at U???H?jR?????_?r??FU??WK????Sj+????r???Yrl?Z,paM?v???^???????O?Z?-??6??????????????????6??r??'dGw,?)zn??~??3]0VfS ak-?5?:?I?*z?{?swKH#uX?s y?I??d?$Y2^?}?V +h???z??.???????????D-^{??5?;??4???827??'?N?3D????J1???5W~?Df?)??_????~?+????:TI?~ ?. +j??r??tY5U~ +????!?C?????C???kq???R?????w?%%?????#??h????????t??cp1N?????Oe?t?>X??,???G[??? +???????i]i^_-?y?E?W???f???%z??^& ??}Qivt??# +???_Zo???cI +xm*?Rp?]~??????????0????q?^X#?????Qs??????a????5?J? ??L?????S??[????*k?????3??????g??l<>*??kj?3k????????????.(=>G?? ???Y???y????G??Y???:D?Q?????R???~&?a???v?7?#m?Uy? ?h?L~UV?n)??!?+UJ?W7D?7Qpv?#s????%?j??7????1{,I?????r?????b??wg??S?:udy???n* +?pp???\Q??????xX>$?"????[?SeK?u??3sK?+??6??b:??55??{@??m?y>?!?w??m?n>???????????1;?S???]sd?$u?????lG?????~D?%A?????y?6?J??????^????v{???????1? k$um)?T??`?????\W?>?a????w?eF??w?|?,G?&????? Q??q?]??????!2?ii?? S??T(??C ? ?TA?T???:??t;y?I?3B????N????y?R???d?ha???;??0???\w?/ns?? ?????M\T +?kOw???.?*???)??K????`???qy?1i?\? ??U????)?v??S??W{?|????????????2???????]mM'?+H????v?v??_ +?????, +?=???4xm??K????d?+?Q???O??B?.i???%k{???4?-K???3???(?%Y??m ??Z????L?$?????'dGw,????V?c?)L?F??W????H??j????rEiZW?)?BT??e?(??=u.1?[??-?vL?0????????{????~w??M\>??m?X???i=?M???+?=yyc???????0??c???W???R???b?f??|9???v??V?????~?????????3???#??]????_???+?=q??'?O}bMYlIw?b}? ?#3?s?????}\O??}2L?L?????????x??c<?_{?f?#???h?,:?????*?rz^xs??????2y???J}????Qg5H??&?x???>?????0^?f?)?K?{?????K:????9???x???????2i??^hD??? ;?? +?i?,???n???:J????Y=??2q?*?s6&???*??e?VC?E??6??*y?4??X??0????gK?Mb??vhI????R?w%?a?p?g???H?}??K?v ????]F??c?V??\?j??(?Pt????????*e?,??X???~?????]H?Mgs?{u`S???N??i??_??qo8????????+?@?r????ukK??h?XZ8??/gs`~?Z??9?OV??OQg?rO??N[4-?L??TV????5?.?rP&~*??V^xsQ"5???c???o????:??e?????/g???C? +?????3 ???????????K??MZ4??VQ?&???5??9P?????O/N?B??????.?f?a?:@%c???z?2Q?s\qc??BQ2"?0?]??L??d ???l??=??????PQ????9???x:??qc??P 4mD?P??lU??)???tv????/????I?0[q?#??]i?Av??????lV? +??E?cQg??R?????12?6?_~WN????A??????Je??]????????g??1???3??Tg?????z?cg?H??Z?.s%?v??C????K?]7?)I[?????A??f?]???z?^??9?~?C~m??\k??"?([?? +?^G3i?k????i????NS??J?Z? ????/???79^~??w???s?M??cu???Q?2?i#???????M%??]??L^R???Xx?(???3c?`R????lV?Y?n(?Y??LZ$??+A??????S?????l?YT?@T?d??????v??????????`???*???????)3??VLeu??K)!??{??#??W???5??????Av??N/??8?M0[ +2?:C?[?2y?4??(????~??-?????IQ3wj????p????'???N? e?L?????;??T?kQ??4??F?????e;?6?i0???^T?F?P&-(?`??0???%??R0??Y?s??8U/9?JY&??+J?d??0?H?.??i?@j?? +?(ge{0ju???g??Y+??wl_(??X?z?????Z6_??O????C(u?=:??S????????;M???+??X?JT6?d?h-?,?2I??]q?idwQ???.???}o??t?4?- +????w?<Mr??????]?J?W???4?M?)V???]???|?????}?????O[?.j ?`??Q?F???? +???*v.na?K?ZZ???*?2?$m???N??SV}???M0??kTm?AvQu?_?'J??v??6?L??????7umK?T??w?<;.Of?N??v??????w???Jz?un???a??pV????~??2??pNoY??S???f?? fu?E????8? F???????T)+??o??m?x?????fV????E???w??On?t??X?W?????Z????????[?\]??1y5?!????4w??????K[`j??+?K?z??&???h?B??S?`R>? ?@?$???pe?i???A??0[??~?J_?G? ?^??????w8???w????3F???;T?kQ????%6e}?X????6 +??A?6?K?}??OS???=>e???T?6{K???1??#????M? o?x?$??3?h?|Z?6?)??#??(G????????(?@?P????R3wz?y??Ei?8???"6??ow??????35???? ??6??f????@?`?m?.??:#???t??????c?B?_?? +??-?G?x??/P?z????O??(??z???????????;??? ?????O?/??c???W???-???????~a?F?????U???:?}??e??Q~?2x? +?I???ch?{l??@??????%??Rxe?*y???J???Qg?d??????*({R??k???I ?Q=E???}?9?>s$ +?JZR-?? Py?N???tii?P~???BMQOVW? ?h?, +[E ??e=?(??sV?zDW??9?? c??4R??y_??b?Y?a???s???C7Q????w?h???E?hL_?|?????;?*-?iQ?P~??\j??????F??????[??k??????Z??zI?}K[?u9?M?d?:]0?????*s?=???*e?,??(??y?M_^D3h? z??Z5???U ??? ?w???IC???/?C??????z?7????;??^zd??U)+ ????x?.??m*?\??|????? ??|?S??a??A???? i?k?}?y60 +??w?T,(?T.??P???K?0?f??=K(d?|CWwP?~?T??|^?G???????{?%iM?? ?Yu?a +???F?U?o!??y?????T??t#???o?#???)???;????R?9?????5???Ej??-n?0??0?????>??c?????.??U&/?>:bR&??Sy_Q????]?I??~?Sq????????/Atfm?G?a??^?P]??w?T&"??'M?:t?po????(?a7=:?????B??K??S?P??e?????????&y_B??? &c?u}?i??????????t? ??] ????P??P???J ?w??lJZ?A?3F??I?9??b?f?TWg??Q? +??W?o?f? /?K?Y +R?WK??????6??rO???Jc?8?Y???@ +?????a=Yb@?;??q????????'????M?.????M?+K????P??N?jJ.?'&&?/??)??t6?? ????=?????? /+f?]???5?G?,Z????s?E??}tD?8O???,?w???d?Iv/?O?$??,L??C5k??v(G?? +?@AAA\??#G??-p?#?????:l??wOOOWWW?kPA?q?!?4?'????OQ??Sg??K??-?4T??????4?Xo??Z +??_P-X4??????0Q +?????,7f????yb?+@??;????????>i?????c?*@?????7??i at W??t?lV"H????;BY??Z????5???Fc??4R0?y_???Y?V???LTg??M? o?`??f????????WY?6|?\j?x?Hx??}?.G????w??*?+?????1???5?m???,a{????????%???b?T?W???l,?b?dZ +R?U??f?}??j???7????Jc?8?ti?tym?????(_????4??P???Jp"?F???t??????????????????`???M?ms6k}?@Z5?v-????0????c??????4?7??E??x_??;??*???7o?:r??#???N??????(?? +??;ukK??????=??4a7?9 at Ybw?????I^???`(?kL???YuV}?A?JY.???`,&?????9??F?P????:?oN?;????~?/????td?????0y??:??]~do??6?f?L???K[????LsO?????H?]???6;??J??rs ??@edV??%??I ?Q?l_?????2?????X4T?#?)?N??v????mA;?<3j?_??^^??????? 8?W?Z5?>?????G??9l?i?~?wP??u????W??0^6)xg)@??,Z????????o +???;???|????o?"?6??r??0??/?!??5yf?????gx????Y??3m??J??S???w)??@??X+??E????e1??I J???h?dZ +2?U??f??egQg?#?'???HPf?Qj[z???4i0???? ?????P1?|?? ??????0p??T^m?S?v4q?;?5????`???w???S?,W??eR?0???",j?:?(?Zr?ky???3e???t%?B?????S?6l> +???????t?w??o< sl5?Y????h???i????2),??'6?w +?O0?X4?i????,???????V??)l????/ +U???????^?r????h}?C.5???g????O?&?????M\O ????V??z(n??f??????f??Ng? &?X????L?'???H??;? +??~I??C???CKj??\]x?!?:?? ?????????>?-hG??????{{?D?;TO>/?}??F????|????yX??z^x????(n??d????x?^b?hxg???:?&S??J^*???`?^?A????i?`??? +v?r??r?A???C???Y?????c??????]??h}?*?A=j??z?c???&???1_?????)#L???????y???z?y?????f5F9?`OZ(???H??=?:?O?g?Y????7???x?$?7?w +??y????+?V{?6}Z????Q??6????1}Yi}?:???v?YW????4??2iA??@???I?`?? ?? PN,?,c?e?bitoG"??1??f?/??f?{?????P???wT,r????[G?[?>??P?4{?:z??????n/b?o?P?Q? +/b?]?_??? ?h,????P?lV??P`R&?3???????X?t????{?i?0??y? +??7]?|2}??N??S???Z?? +W?-???????}?????y?!???zv???L ?N>+??6???o????z?He?RM?I?*?3*?f +?o>b? +5??iK??#???g)?????8???????K?.?~???4w??}????U????a?v}@w????\La?)? ??tf??*r?*c?????>?j????pEV?`?I?e??fV?????`?????G???O?]??;??????????3~g7m??vf???nnQ??@{?F???ch?G?????o????zE???????y???zi?Q?n?U??ZX9?"?YmV?*?(??I?????? +???O?N?z?#mY???????L????+W?{z?_?W_??P?.?b??????:????'???NK?K?P$}??U??u??Y9#gT?q??E??a???|_~C??A+???????o??`y@S?:P?H$????c>'6l???? +?U+??=~??m???A ?E)G??Z? ?#????\??0??????A?????q??*]??\1???8?4?Q????????I??XM ?F????s????w??y?*???+k???hG}???BK???=???|_'????'????[WdV?,? +?Y???hb??? ?V?/??? ??E~??C????????ui?:? +?h ??'??[?mg?I??????O?s????_???3???^??*c????Q?a?KY??Mg?3????n88?4?(]?????1?F +?GP?.?u?,?????4G&??? 4???????W??*???j>??MwN8'?^q??,fz}?~M???t? ?g5??A?*???KB?? ??C????(?XH????Q????\?@ \?H, +;???d?r???lj?4????L;????|?ug?????/?2W?SM?r??"?7@??j??$m?eE??????7?8o?im???M{?G??:.U]]{??o??-?J???????3m??a?U.?~?z??4v}?????n?[?)??i?ui?e?M????3??Y9?w@?g??j?.(??H???A??O????????|???;??K?:F?&@??fe?q??L?>}?v???,??F???e??? +????????]?U\1????"?E??h??R}U?Z?#??Qy???mZ??7??a?Jy?uP?T?C6hzo;3~?D7??h;?B???]????:??|L?o??????|_?d?%?/(R?kJ? +?h?E????b?X??R?&?H?=?$E??s?0`?H???G1??/?4mNi;3t?p??iN?=Lc?mW???=?P?v?Qq???+?z?f????*???um)g?e}4+??|}U?2}?4|??-;??|????h???b??w@ ?:?????mg?o?!,?>??i?????????c???Oy?A??8 +?N#??????z?J8?????sF??u7E?\??'?$???d}?4;V?3*M???oY??*?v?e?????Q? ??h7?????f???:???????w???C?{z?_?Hp?w7??h??RZ????#h????fg7P?*:???z????7'?2V?E?????|?(g}!4CV???JWe???|???;??-??????_?c??????4**????u?7 +n?>t?p?|od?????????0?g??o)?e?P?3???4?Ee????S}?????r? 3???iK??#I????]s?????m???:Rp=?C?hqjk???S????v-?N?64?/MCkg??B???o???ze`y?'u?;?????r8C???e}14[V?d??V?/??? ?? ?P?!?q1??|?z??H????E3?L99?W????9???h????hG???????x?7?N???$?sN?????|Y????H4kKY_k?????m???HU????????[??"??3?.1?t?G???W??Q!?????E9rt???h??tmZ? ???????9t|%?????9'???*}????????-???Y9?@?gT?8?%??e??????n?P???C???ux?????cbbO?????`????}???h??tx)]??? +w^??U?*}? +Sm?=?????"X-z?Zd?????????? ? +???})dl?I?F?m?[??:jh.X?L?V???]?x????]?vm?-?m??vS?|s?/?F?????t??rN:!?^?S?^}?m??]%g??N??/ +??????U7??K??#?m??~?q??????? t??$??4 ??#?}?????[???????^???????i????Q?????3y?E[??3hY8???.?KBT+l????\?O{????h??????u, ???|w?q?????S????PZ??]???9?|]r??"i?????\??TV???Shq??A?H?F2H????Kq????|?'???<@#cW8??-??{???&????g??g?~????N??/'????T$?Q?~?U?j?8C +?? +?%???f?H/ q?Q?????3?]zy=??u????3??-???[us?8?Vm?????????/???>+(|%v?xSi?e?m??,?j???dZ.?Ek??(SI?? ??m?A?????J??R?g?i??:X?? +?d2ee??t???????|???U'~???Fc?7????ta3?????z???k???L[?-?Y_??Y]???X??-?Y-?U)?????(l??????+>l; v??:?hl"?888d?????g?j????_hHo????T?^L?^?u??????u?$???`???=?Tg??U???b??xF??n n{??Z???I#?????i?xhAXG?,I$??7o9rt??U?s??9n?U+z??F???w_??m|?S????D?Y{????+?,? +?????HWqE??@:Dp??K???1????@S?:2p2?,!1??q?s?????+???????s?^^?)x???[M??P??E~?-_?L_?? ??Y?C??8??\_?):!????Z7[??S|'v???pMI?????9`???????????~w??7_~?l??y{??q??zy??+;?\??????|????5?=:dx8?h??\?~??,f:_?^`????*1??uX?eY?"?kI?@aF???????C?NC???Y???X?????f?&\9?u|?????/puy???]?wv?_7?v???!c?#??,?oUr????#?iK 5Q?????+I?J9W??????x?zkuG'???$?????HsL?]??????????dw??5OG??p?????_trq?i??YS?)???}\q?9 ??S?I^?h?T5?/b?-???6?!0??,?A U^W?(M?+??2????]??7>?x?=????-*q?YWk??????Z???f??? ;^???}]??????/?????b??s?o? pF?A????????]@?]?G=h?L??-???i +??1?:?X?\v?@?/ ?N???WS? ;????Yzc? ?g?(p?<7??U?? ??Eg??kK??>? ?- ???CW??????d????q Z?15?FuM}Y?o ??w|g&?y{?3?Vwp?E?$q????$c}?%2`1?U???'?q?????o?V?.??%? +5??Y/Z.+g2???iK??#????&?u?p?5??????? Z0??54CV?l???+3??????f/i?{??g??{Om?? +???? +????B]?I#S?c?/~??w??ol??a???8|?Jm??P? +?j??H?T+?"F ??G?????????b{?Z!???u? +??^Y?????. +\?ylZ????Vwt0???5^??O?W?[-&?Kl2L?8xs?????X?>?'?.?????4?IY/???H???*r????St??6????????q??(???:??&?b???U?????~Y?vpR????vq$???{??GIO?W???5???z?M????4re?????%?f?'?kx????[^??i|?w{pF?Q?????>?xV@?=?0?^Ckg??1?? ?@?: ?&C[?'??V}8????'? +?+_???M_?R[o??f????P+?????\?'?????s???D???,Zpg?7???_KB +H???R?!:??fN??n|??ia???2k???BE????=w|?K??6vk???)??????f???}???r?ZYp3?oV??v}???uM?=??JNj???{h???Y[j??R?.???c???m????u5????1?#tpV?ISu?:?Bq??\?/?~?x?z????????Hmu???a?D?}:y??3???8i?????:????"?h}y?u@??h???K??#$?????b?}G+?????_7~?)@??:TF??I]????d^) +???????^???:?`O?q?(p????I#?r????42y???/?????????#i??? ??/h???? @3??j??$M??"qvePoi?h/?ZD????#?s{?? ???:r??c1j????????6d??!?????s`\a?i?]I?^Y? ???N.?e_?=?U?????6VwH?~???Z???W?^d5k?U7)?%?/H?g?P?.??5}>???NO?>?4?vs$???????n?e?%?Fu +??{?I??)?J;?}j?? +?/??????m?????u??<+g??$??_? 3+?z??`/8Cq?t???J????b~?? ??>8????+M?N?Pxmm??wb??????#9?????/~[?~Q[??zq??????????l?e???X????????T???uR??hY????JW?/??? (b??R?CKh?$?F?>??H?2X?`+g6??j?*??\Y?ylZ??aQk??]???s????7~P??tr?I#g?Dh???Z?4G|}K??)??????????4Lh ?????T?/?F??`?s???}?i????h????X????b???4?????4?7b6????#?)??^]%?????g?8h??\]ir??o??????}m??C???'I8U_?????W??qF??*B??@:D@?=?4??H[g??Wh???? +?? ??c}?s??]]?!I8UpeE??w??|ku?????r?fUD?-?5?J,5?%B?b??U??? w???????l??????I??????{??,z????"?I? 9??C????|A?G?????XW???g????W??, +\?y???[?9?`??R?????S?????X/?_??q????????o??j???A?3.?d"??p9fm?????4e?-??b4i??I???++3????s????8?`O;8I?I%?mT???>+g6?k???w|g?`?????CS?AU?h?o?,?W????7?E|?=???????E~???,???????8 +??@?`R??'H???A3}??m?Hv?O?{O??(e?M?????Y??!??BQ??4?7??b???>5???Ae?-????:??6K??T>R@?????#??KS??????c??!??C@3d?,&?\[?W?q???G?OSv?????;_?{}K]i?Y??ZL??? ??^Q\?:??5{?$??s?????jI?Y?b???L?FU???d????/=io?=???4c?l" +??????>C4V?I]?Q??s?u?;?>?w4???`W?nT?????46?QS_?* +\??5???'y??WVHNjk +X??~V???WE?|I? ??S?P?w??zm????Y?7Z?? ????Uh???w?J"wg??#q??1?{:?`O90?0`????Q]?;???? +u??w??K?9???3}R??b??y|?%???R~?EWi????XY1Z@?=??/?e??;/??O?>`?`??M?^YZ?u?$rO???????Z?Qpv=a?????U?U?ct?"?Q?zqM??V????????????b6????^?C?j1?Y?????1???'|^???{??>@g7??wi????I?? +? +?s????:???8?,???3?'?q?????{????WW)?oj%???42 +g??t??> ???q????l???:?1? u????????????sh??4v0=???A??3?k1k?*qL???w??O????????????;???~?(J?(A=-@????LT?~!???????u?&??????8?4???????3?h?/?b??????????~\L?N???????`????????3??????U\??~P???9?????f?:???S???ch?XM?Y_??????D??:?A?????uu?Q????? jm??}cr???$??+J8????w?qU????????VZV?e???2Yf??e6M????L?{??)??R????X.??VJ*?+??,?E? ?MV/p??{/w?????o~3M??????|?o????=??8???R???? +y???c?\??Cn??F?:[??????W??K?0?E?Y??a??j?'???P??????K?`O]?Jupn}I?E?]??e??.8??????? +???????>QgF6??.@??h??R?V?Kn???FJ?R?6G????`??+Dw?Z???p??a?5????????P????%Cb??r/]?????;?U? ?\_?l5??? +x&???P????}??uHX<8}???G???$5=CD??e8?Z?.?P?]?t?^?1????J3_????????\.?G?U?I_y?Z?}Q???_?!q?]????.Pu0?Ny??F%?2m?E?.?^?????gK?????'U??R_??W?Std??2?R?T?4Dn?^?M?7O??&<# +??=v?C??i?_e75?4??????em3i??3 ov;`O^5"??Y???-?Ul?p??a7?*TQ?????9=????N?????;??9?:?6M_??:??e????1aR?Di?K??w????m??????????{???uz?????Zs???"???]?v?i??? ?>VlxR??(.???-/^\?{??)'??pr}?{????I'WI???^yL?_??]t7?-=???9?V??P??????Cr3?????IK?KzJ?k???@&z??'j?-?9Y|di??o%-??t=a??9??W$l?'??eN?Mte^p X??5k?D???ISZ??v???m??k??x???5? >-????M?K?Zy?.?{?y_Kg7H?O?^????Mt? +?S??? ???hi???;Z|xI??W?V ;=?z?????????6??YWi?EW?X???P??????r???3W6=??w??L???Fe?D??'N????4oW?>]??_V?^??y?}?d??OI?? y{??????S?u?????????Rl7?Z????,????$??W?. :&?QS?0-|???H5O?????]????*m????????i?i???G??H=?????_???p??L?????/?g|???e?????^???r?2b?Vg???v?????8&?Udh??@Y???%C??x???*}y??X'? x???/h,?P{?????rc??0)l?????!7?n???=}???m????/?3S?>????=e?c?j????M?StY?f???LQp ?? /????a??U?????@?0????????gm?N??V?'???4??{?? +?sZ??T?X???;Z??'i?]??!n/???y?`?]q????5? +?(6>%?Qf?-??G?L[o??]:??=???????1????Z&-/?3??V ?G?g2\*???+:s?????K]??%??????=b????????????U??dlyQ??kJ ?'g????p}E??"??8m?:???+??? +?U?H????O?^) +??=v???? ???zCUvmvL???2?|??gw?????vdAdH}I??b]??????????d??????oHZ1Lu0?6?pcm?? +?v?MU?????????????I?4S???????[ahQ?g5??a5??&???????'?^bWlxB5O?????am]?21k???????p??o????v???K?.k(S8v?E@??=???n|??h??F?"}0V??@???S'?M0??s~??j2V???+9???????z??,?7??9??e?kz?(?NKZ??????????U?????????????f??????????,i?3??wIW???@?=???9?&}yzE???=(6>uf?-?r?]Wt??-c??k?????c?????x??o???S???E1??^4?e:*?????????>:\n??F?:X???4???{????(??9O?X???=r??????~v??o?????T.??`?+???Q???]??_??xp??S??v?+????].??P?I}????r3?????E????g???Btw ?????[????I^?p????r???eM?Dt????hR??MO??{.??:)|F??7??P?}=??FuAu?????_??p??K??*?^?+N0?*E????4?'?3???up??W?pjm????!?????/?K?\????v?)~??3D???4?&?oo??)?s???v?R_?P??L?*g??????,??R2v??????? ??b?????a???d,???>i?????j?cLu?\zw??!??|]??????o?%M{Qz?N????f:??be5???)>?8???%??{)????8?????il????s???????????[???Yz|???? ??ak0U??[?????=)\???4?-i?=?o?H^?D?????? +???P?]s>?0????1g???????y??@PC??K?????b???)?q??7??s?????:c?Q???????h?:?I}???=rO?G.?>|Ez?A?????N??'H????R7???e$z?????2M?????Y;?%,7??;???{?5???NtA?W?Fm??9)k???zMb??y{>??aT????Y???cW|)????? y{??/?S?+[??n5?*k?T???????{???~vG?7?T+?7T?X +5?k?C????%I?????? ???????^????????X??&????}ee?'VI??H?? ?{??MtO ??y{???/O???A????S??????"??)?????)kw?}????C "Cj?G6????%K?6#????{?9??= ?O??4X????>??D??-????????rv?OY?h???n?M?}???+N?4\???d????I+t?U??xP????'W?+2??wU?:?.?.ybe? Y?r???\i???1H=?K^?D???_!z??$???uy?.?????v??????p#cO];? 2??Bj?\/? ? ??:????u?2^?AW$-???@?:c?IS*??????'U?4X?????? ??#?????8~??a5??euyG c?oz???????',??????H???am]p??f?W?????s????_2$c? ?'V5??v??2????r??=5g_+?p?????*)|?4?%i@?????? #??3TfU%[? ?/??????C1????????`i?X??b???Z?5?????3??u?-??8????#??oW?????d???R?:[z?ii?mR???[C ?%h?I????cu^??9?&??~????????W???q?b???vkC?"????a??Zz???ry?&Ce??T????a??hR4?U???????E?"??!?n?????@G????pXM??3eq????U#???~????,?Wd?u? ??YW?? 4??????# ??dE??????t???8???E:?RZ6??$? +WK>???@@Kk????N?f]??8???5[^L ?'n??ng?fmy?oXhC?}yz?? K???T]?????????????}??f,?fU!+co?9?NZ?????7?n??????V??&;????M?l??;??S??,? ???k ???f??]L????rlH_??????7?^u0??l???k??????K?????HCn???\ x??0?:??:?6?pa??????????Vn???b?r?t]???-????4E??{lP??y=??t??Um?.????r??M?4?%????????"??4?t4?U%??????s? ? +??????????]??L?????N???????fl{*?J????^?>????/?K??o:??${?i?T??G?3vN???k???f?o(ST??.??'y??????[1)k/8l??n?? ?????*6????a??jWb??????????7J?:?n?m?%???P?[qvK??I?kG??^#7`O\zW????9?Lu%v??E?g?_???TF?L^9\^???PP?????4?s??????)?f????T????k|??;cC?vc?]?qta?|?????h??t???ru????????wq!?N??o?????|??Mv??????5ju???'Wg???rxlH_?{???3t? ??i?m??x:??Z=_?q??[1??N??a?y/?>t?w???{5@???T?^?Q?(??????3?nq???G?????b???? 6\?e???y?Q+6F?????G?{l????H?A?!c??????qta?|??F?? +?h??{\h?c!?_O??4???k;q/ ?? x(cu^????W?,k??dP??9????}p?wW_???D?? + 9D????p?????G????{?4???????|M/??????o??P??:??.P^?>????1?{? >? +???,??@??=?a5?,L #?$??9??X?N??Gt??StC@ z?8???"?W?c?{? ??9????}?????%???-=????a3F/Pl|J?*{p???=>????;_?/?w??=?????[kTn\e?9???n3?????N^|???FtZE?*{??? +O?Ze????G??{?K?`??=D?)?+???b???V????%?*??`????????/???It0.??a/????8Z?*??Y??y?w?`o?_? ????????P??Oc?z +??6?o|???????DG@]qb??????6_> + ???}?+?? +???#????????TWR??m??????p=f???????>???n8?????????l???&,????????????U?Gy????$:K???-?{????X????~???sC?? ??P??i?4\H??=)q??2b???U?E??>:??Kg?-Ot?????W???)6?????1?W?N>hu??`???5??Xe?y?????????????5hDG ? +???P?????????????H???)????g7V??7?s?????????R?9???0?cy? + 8?a?O^?r??^??E?\?G??????r?1???????Mz?w`?>~ +?????V]?q???s?km?????u?/%@4? ?i???'?t????uE??~?'??????????Z?1@? ?c?(s???}????"??7??g^?X??,h1????|fOw?????_(?D?p????????_Xu???"e?|?P.??]???x?6?}(7?I?? +endstream +endobj +74 0 obj +<> +stream +x????cNw???'$"$!A? Mk?^??V?Jm??F??&??PZ???Y{??????$!K?????uWd??}??~?q?u}.?>??????????@.???m??K<<?????>???c????+??i?3???{???S???????JS????f?z??/Z????o????,.Yz`gA???%??k=???c?????K?????x?/??X?y???W._????????I_LL?????}???/]?v???7R????H_X??l?2??;w~k???7DDD?ed(cM?!I_d????????>c?l?~???? ?qkt???R?J??}?????=??=K??&%}??-?|f??????{g??C??????b??9dU???F???????iii??T?o +Y??,T?B????????W#???)?t}???f?j=G?X????>Q.?:(?e??*??6???????*gk)]@Ye??????}????LE|O??9??F6???ck?P?~?K?-??? Kx?u?????d???\l??? %???f/[??????s 9v?????^?."?????_k????K?222?g^????{G?N?????L???S?H??C???c??@?Y???????iz??H??d?_vn?????[?F???$?nA~??\???]!??????u??????#Gn< +J?C???????+tj??$]ZS?Q????#W???????D]9???G????K `\fV??{O?????O8 E?n.?????? +JW?????m>n????=?>0????=????e??O!?B??V??>?????it?????$> ????ZU???:hV??M[Mr??? ?i???fNj??9?T??k?????_???,>Qz???"?|?gj??J2??5????~??e{?\???80?3?????CS@{9????+?>x??"=o`?aw?????"????XZ???????7??$=l`D)???=?E??0? +ejt?2j???"#c2??E?????????=??@+??q????g?FI?Yzl??/?jP?^??a?J????}?s???x^????????W[?M??oV?D??? +Y???G???#???8l?W?v?K?)9?^????9r??]w???? L%???>y????????wvn7????O?? K??.0??????? y???sS@??i?q?''??IO?X????gwl?O??ZV6???jN????1?,q?????k;???t-b-]??\???????}w?G???K?VL????tr???r???|t?????7??????N??^%?@? +4??????~???'s???1o?|Y?9d????U?Y^?o??&??I?yr???^+m?>??*????m?? +'??I??JN??e?????+?VJ7??s????"???*7} ?????K??+ ???MQ??}???y??]?q????~_,???%??dO??-????????D?!H???????c?*d??E????v????P??G????M?H???/??????=s' ????OO#n?_?A??v?K?\e?????I?`???:u`???n?+?o%j?j5~??????d?yeJxt??9??????P??={~?a???,rC?2?|v???e3?z?]??u?v]?????q??J????!????+?W??:??l?7?wy? %==????u*?(H9????????qo????;'7???V??Z@!???????????$HO (_???/???W??? ?ky?????Qw??? ??qd???6y??h?3?!???z{ j&?gPs+?????_p????h?uH ??zq????KW??~?}7?nVT????u??5y???oKN?L???m?*F????g6???LQk?????9r?V?S??J?zx?P7g?????|??? ???W%[7?:???1?P??G>????t??Cf??{???T???t????,?}74)??C??~???^?dk)]?????Ku@?ju|s?????&JhI???Fw?? *??????:?EKUh?q??=?????5?|?? 'GNP????=?+/??*P?k?q7^?d???V?'?|=k@?J???k9?c??4??B?n??n8??a???????xpC;?P??{?J9@??????7y????Y???J??zm?.?????/????????k?????,???}I???4?WU??%/w4p??u?oU?d?3????A?????6~?8?\? x?????H+P?????N?3`wC??????k?E??0??g?2 +?8Uo0{??+~O9+y?u???~n?9DE5?R u???7?>???l?|?????9d??`??e???a?O>?y?qk?`?O?~7yDeG>DS##C0???[?_????????o??6??M?LQ% u? ,K??n=?????i??h]?D???sz;?/]??? C?5s?*}?{n??V??:??|??A?? a??a?9?X??[?5oF%??U?y)?????w???%?(#?:?%k??G??{# Z?G?m?!;??y?B?"??I?/C?mb?)??f???_?OL?jNh?????|?"?\?DK???????(Y??????r9 /-.t?g?????e?E?P??U??m???GR??0?[????z5?^????d?Z?1u?N??^???y???2???O?E?3???(_?[??;F?J7t!???M??2?????s?????-???u???! L#??W????u????z?yo????KI7TD?h +???a`??O?z???n0?Gg=?wp????t??? ? +?V????~ +?e?L+???g?j??????t??!????1????kzto?????[*&]???????? +??p???????sv~????????.d???wd????>??x]?X?OWv???f/???j6:??????????p?S?M?????gt+U???`(?%m????3?*???U????H?%t*#??U??W??nh?ta???GWv??7k?f??n<']??/???i??0??6?h?}???E???r?? vw?????+?)?O??Y?%.?w????????6?I??:?Y?????kY1?aT?u.?????????(?o??>??5?Z????:?+-???b?m?T?????8%]^?=??5?n??t??c??f??\{?G?.=??.*?]????n?K?;LI????????|?n?????.$??????? _????K_AxPW!s;W??s?\ +?e?V???s????9ZJ?tJ?&?????I?q \?4(B??YC?n +??t(??? ??h???g/??7hP??;'?X??tc@??[A??xF?????{??????????#s7(&?????A?xPW +?R5??????oP??{??w???? +??M?x:??#??@;?{J?t???U???6n?(}??L%??5??K?{0,???8]?%g^?a??_?>?HS(????,?RX?Y#??.??'??v????t ??C?R???X?cN?Y?-?????b???N?=9-?w??f?f???t????~|7/????O?H_V?????????^?a???5?????v5{???'?@??v???t?&"?o?????mg????????;??W?Br?????e?[0!???-?m;?J?????I_6 k)?7?wP????NcW??&????tf???%??P7?>?< +?~???1*P?g?G?ww???3?f?[ gVkPV:??nh????7,?????7?6l?c9``?? + at O?Y?Vi?#??n:?????#?,???,??,?v??I?9m???er?r?????^??????Ig?I ??a?2??@?t0 ??s[XK +1? ??C?o?s9?o?A o|??n?s9?,?k1~?????? Hr??gc?I????$9???????;???&9s??Q???????I:AeH X???t;@?I?( /=|??2??y"??????gV?nC?3?4%???l&??`?? +Ip`H1??C?U@?????H??t???|cM????&???)????JvZ$?????]?S??bh?t?&?????t???H?,`t?O??I??????0???3???n30:???'%h[?1??? GF????? LF:u#H???N??????0???o???+05?? )???Z?=??0??????H7??`?2b??*?L H:????? ?B???5???B:??J ???Q?o@i?????K?^??P"?|?+-dS??? + +%??@??\??~1?9?????`CWk?Ne??j??b?O??9dI:????o???9d?tb???a??t{?jH?6?)??^/$??&?? +?S????1???n??R~??o? ????C?????TJ:??_?????s?5?~?9??\7?Nu?Nr?]z??~??TO:??k?~???I?h?t?C?2??i+]????}J?_Q+?t???H?:t(???e? 4F:??3?????a ?t?CO??XU??@??z????"???%?????+KI?:h?t?C?2?^\??@?????????t??H?=4,?? ??4?#?????tu?~H?>?(??G?|?? +?"?????????I?5??t?CS???l+]??K???x??E??@??g4"??0????1 +H +????t%??I??]??????b??4??e????????????t?~#=?Nq> ??I/??s*st??t??Fz4 at eR?7?* ]???P??[sX??$=!??'?ZI?+ ?C????;???I +(_??G?:??????e?_YV?HY??P???}xe? =1?T)?)]?????"P???? +K?" ???? +endstream +endobj +75 0 obj +<> +endobj +76 0 obj +<> +endobj +77 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 78 0 R/Group<>/Tabs/S/StructParents 12>> +endobj +78 0 obj +<> +stream +x??Wmo?F??????T?}???"? ?\S)??A???r?B???9???Ys??8(????<3????????g7??K?\\???~O??R)a?*?P?~??X?{???Ka?f????=?t3?3 k?~??J?0?B?mC?*06 +?&K4?4F3F????B???>?????????{??_??C??@S?}????;?bkB?;?-????U?lk??J?W??B?Y?? ?!6?????2?;?em????i????zb}???E???(XH??kOf??W?6??=?Wx??????T?c? ? +N??E?c??/i?D?>3]??Xc????)??*??????^???6? ?2????p?=j'G?????????2u,?d ??Y??O00?2{??? ?????u??p(????w?sN???H[?????\wM ?#)d???iI?????`?????&*?6/??zw? m??i^t??R-?4Z??i??$?.?'Qv????zd??"?.?]XE???y(=??h???x&?+pH?z?????R?F4?G6?u?%Q?????`h?!i???c?&v???1v????????c<\/????b?zS?V??A?+??.?+????8c? /??z??|V??`??nH?6^G????,???????x?fK??)X??t??Z6??&?M??????$2?A?v?J?_~?_??}???k?? ?ok_?b???????2?????&?:E?d?????GY +endstream +endobj +79 0 obj +<>/XObject<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 80 0 R/Group<>/Tabs/S/StructParents 13>> +endobj +80 0 obj +<> +stream +x??U]o?0}G?????*??q"U?V?X'Ue+??=D`B$HX?*?????BJH?T!?q?9???c??????@???f8???J(??s?As +JR(L????n??zT?l???bJFem????????????#???$;cL(??LW??n'F ?????8???J??iH?C?I?(?^?"!>?G?p?1.??????a|????Lp?W??dnmr??DD??H? R??a???? +E??e?3????Q???=????????A?\?,1x??yV????????n??X6; +?J??C +O?=jI5h?????2E,m????V?!??2???5pY?1PD?\T?X}N?/kf?L}?M?2?3?m?O`?X???#|?Q?_? +????N!Z?H??(z/C?u?"Lw5??v14?4Kmd?????^Q?S;?4???"_??C??]W?ra^?N?P????8??i??????????Gz3??>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 82 0 R/Group<>/Tabs/S/StructParents 14>> +endobj +82 0 obj +<> +stream +x??WKo?8???Q*j?oJ?a`???E??M??=????#+?H??w??+V#???D?3???????f????sB?srv? ??G???R?8??N???4?x????#F6??P???M?w??????\r??????G??Jn?( +DF??D??4I?????I4??"?'?4?x????d????q?%,S1?h??_??R#z0rX??Eh???? ^?vRN???B +V?jB?s5?K??tv?????i?g;?h???2v?????S??hv?|?k??=????G????'??y?S?"??~???:O~???x??3?LP?Nq?;?9??Cx?E at h???Y??*? +B??NT???q=#us??[c??5?{?U?Cu??l?l?ZG???????]?r`??D ?/??c?}??*?D?`?K?_i???"?dp}Y??}m?r[??Mc"???a?????WY?f??&t?b???Z/B? +?????(a; sk!'ha?W??e$?? +?????,%?nqHdb?%??=???e?!m(`? +??n]7v??fc???O???????S:F??2?m??????b%??n?:??V ???$???Il?2????ms????0M??q +? +?q?????3????'lZ h ??-R??f?|??T?A????;'ZMlN?~?S}??`?i^A9?Y?Ly?'43P??YQo?B%%?n?;?????z????|(?p)"?L???z]ku?? ??4g?b?r??MD??w???wO?+uY??1wU??`???#?{X9?XH)???'u( ????0N?jW?e?? ??i[f?~?3?y??????Rq???~)??j6S2:?d???*?V???X??C\??H>?w?}?h???IP??I???r????|(???Q,???n ?b[j?????F?????#:sg??T?@???i?W??[?? +S????G|C~???'?%P???????????????????M@?? ?6???| +?4m?Du?O???{D|s?P??3??HUW~?^??X?i\p?Be???a ?rYde$?????v?A???? ???Ha???>1????pC??????:?!??"?'?????! B?[???94?.???????vm?]z?8b??#d%?????0}?? +endstream +endobj +83 0 obj +<>/ExtGState<>/XObject<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 84 0 R/Group<>/Tabs/S/StructParents 15>> +endobj +84 0 obj +<> +stream +x??U?n?:????R.?/??@???ro +t?v???#DW?8_gD??B??,$?9????70?M???+??9\^-??x??3??????K??PD?????Gv????\w&m??G??G?y?8 +??j s??? _?????!z,0??w??5BN?S???W9?i?:Z)?????2????V)?H???h???(?w???&?;????)b???vn?C?5?Gh?????L??u??%DH???p??? ???BZ\vi +nM?ws_??yg?/????AZ?or???v????u???-?'?~?U3??}E??N?Cu???l??Q?c?f;{>/Font<>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 86 0 R/Group<>/Tabs/S/StructParents 16>> +endobj +86 0 obj +<> +stream +x??V???H}7? +?"???e ??L2L`?lb???????X?F????j??X??+?`h???s?NUW7,>??W????k??_???+?2?P??R?8? ??$??O'?/??N?O6?jFe????t??to??N?9?? +???cBA?g?O'??|?z#???!??g~?V !???ZbZ6P?h?@1F?!?????]???????H90~?X??,??Aa???j??8H????D at J??H#??? ftq??YH????7???????Wfs??????X??N?"m?>?q& ??}N???D???g??^?????1???u?v?z???z y k,? :fM,??\ +???'??+??C?p@????>?>??$??D?78`>K?+|??>??u?q??q??"?EoOy*)?}?????$??(=JBFGjq?c?h?*c?w?rg ;j?l}N?@|?q?[??wg?}?^???avT??e?A?9?-??u|Z????H??=?c~ o??8??k_?A?(?>?y5 ????a6??j???fh?YJ?/??]???9????2??6??"9??;?v)???g??U????????X9TL?N???*??o)?;>N??6???2??'z?????^,$?T.?5?0??\u??????[??6?}?????o[_?)x? ?`.???#?nk?|???????u????@b at f?1;??/.?|??d???&uE????34?M??:+BQv?|?]????????x?`??????yO??dm?>?????????? +endstream +endobj +87 0 obj +<>/Font<>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 88 0 R/Group<>/Tabs/S/StructParents 17>> +endobj +88 0 obj +<> +stream +x???]??@??I??6u?O??&?n7?t?%I/6?08(????g?U?H?hL???????? ?????u?2????1?u +?PJ?T????P??y??0Xk( +?????u???I |anJ??????????&Y??(W`3??0+????!???s;?@?????,????;?If_?<1???1??LFv?5???J)?????,~[?&?O???~LJ???^?? "O? +endstream +endobj +89 0 obj +<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 90 0 R/Group<>/Tabs/S/StructParents 18>> +endobj +90 0 obj +<> +stream +x???Ok?0?{ ??9Va???I??x?u??0Ga?a?ZvP?n????X?$??I~??? ?Q:/f%hd??b??c??U??X&??z??1??v???z?b?V;:???.?L?????m}" +endstream +endobj +91 0 obj +<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 92 0 R/Group<>/Tabs/S/StructParents 19>> +endobj +92 0 obj +<> +stream +x???=k?0?]????i??I'Y? ???B?)??C)??4???????N) ??=?$/???M?.@?9E?o)??HC??%4?oS|I?Q????l/h??b+???zd?????M?C?????^q0?>???? I??F?r??f???}]I??l?M????Y?eZ??ZSP???? :??R]?T???RS?| +?2????j4??y?1 +endstream +endobj +93 0 obj +<>/Font<>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 94 0 R/Group<>/Tabs/S/StructParents 20>> +endobj +94 0 obj +<> +stream +x??X?nG|'???]?}???rX?l)H;?L??% +!???={_?? h????????? +??????xu??8:9???3?q?????????[?g???|&`Sb8??????|?a>???c???x%D???P?<7??r?p?Y;'???#+?E??(?SJ???l`?????e????8 ??./?i?-(???b?]!?L??puK?s?1$hX?p?r??E?^?r??]??6????o??O?j{????.???.?Hv????O{?V?S???I?Yoo?? ?<\?????v??;????????????????0??_-?O?]???6?l???4I??????0 ???/kgd?L???Y??>??0@)<#W????p??*?9???3??8??z????????? ??~~4?!??????0??.???t?J?j? +2?????|v9??%?????iKLF?3y="?z]??Y???????Z?m?e?d??%h?!;?z|?&??=NW?M?s^??M6????z$T?? $*??b??(? {`??i??????]????QlPg????t????$w???w??68?7^ 4?????U????"????`/??????.]???f?c???n?0???F?? +)??\o????5?Z$G???????pQ??????mr?W?`N?KV?B'????9?y*|?bI??iK????dM? i???1M?U?????89? ???"??????D?5????8? +??????d??Z?J???&?%kr???????'????#?q??j?#??i'!???????i7-%?JIl???t??Sb??X)?5|Q?P=&B????X??`?b?O????V(B???? +??TkYQ*}?E???'#oP??c?,D????)^V?9"??C????{s??:???Hd???k?Y?2??$??4?C?;????$Q?c??l????J??t at Q?}h?L?y???$J7???x/?????k?>??>-??v?aL?0e?S-???X_????4??????]?dl/?MS?FY??A?> +endobj +96 0 obj +<> +endobj +97 0 obj +<> +endobj +98 0 obj +<> +endobj +99 0 obj +<>/Font<>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 100 0 R/Group<>/Tabs/S/StructParents 21>> +endobj +100 0 obj +<> +stream +x???[k?0??@???? +?'??????a?d^Z??Ud??/???@?I~'9A??v;?F}P??n??/?????,?$M(R?M??????/?(?+AY?c/?`?.q +DJ???)?PUg??X0???????Q????:?5J??II? +??P!????[8?7]u?R|???Ya????p7q???de?oe??%??y!q?q??b? eQ??????????=6????????W???}???)??*?`??&?n?!y????S?t??h?u%??????{???L?5????EtY2A??????? +endstream +endobj +101 0 obj +<> +stream +x???ktU???! ? ? ????_!!B?????E)???0(??]?C?8???9J=R?m?*( ???1::NG????r??3?q>?/???=o?~8yd:?????{?=????`$?????{?9????{?9??j????}????=4? ???)???$z [?.Y,???)y??o?????Y???9}T???Q???[? +?3g?v;;1gx?.?$z?H??s?Ljj +?E??~???9{H????9}4+;??1A??C2w?\?_???????????@?I??$ M??{?n???7M ???? Q? +IJJ +$??$??I?L\?D/?$?????i??c???? Q`Cr?w??????C?IB?AmB-?d?"?$z?$1????v?[w?????x{\7??$??H#IKK????$??Z??D$????@?I??%??c?[???K?????t#????w.?1????^?x;??[?????t?o??`|?g?:? ??????p5z??'^x????F?^?XM?55Q8~??#?????{?bf? ???$?f?????t#???]C?"??$$ @2#$???????NH!I?5?M???I\?D/?KQ??? +??^??YY??F??????xM??j?oz????tEzD??M???z?# +?DiFn.?724?-$ @R??d??y??? .?$??Z???? $?^?K??????[lf?4?W?????^p?w??? +??$?/I???y t/$ @rIb#I222 I??@???uIRYSj?E????????????3Ljj??nE?????w.??_?^?f?tW??v???????AI?0??????$?$?$?k I???$????NO??"?K???"m?~? +?????o??*C?d0???K?????^???3 X??8?9}?~?^?'D???h,K??]?/?t??????B=???x??DH?h??&???x?i????F???Kmf??5??????[????x??f%??????????)4?$?3;V??????999?HH?!?$z?(I?Z"?A?V?{???o??z?6 +?:~'}I"???>`?C?!??Yw??.?e????offfnn???'?HH??$z?(Ix?Y?^?????D????aY????"??9??????#? ?n?????=x^??R?>???~y?#???$?$z??L??*r?UGJ?^:????????n~?????}??$@B B?Te??????W ??? 8"?c}??|???????$?$?; I?#5I*kJ???q??5Y???\:#?y?????I@?QF??????h?{?z?a?????[???I?'?v?9???,E?^?????????4z???]??bEGUS????>???P??f??????[?>?!pe,p???]?$?$^I??$???q??n?+???deg:_??P????w?+??KO??I?$I?????N+(???$??)???;UJ?c?}???w.?Q*??degn~hT.????1??????W?u+ ?U??7 +?? +???Ww5?????Q????N?Q.~ I???C6V?#??N?+???yJ.?aL?P?6?,4B???Q3+?dEt????Ex????9#?{?y????'??Q[??C?`$p}x???Bv ??:?????{? w)g-?p???h?S??????????x?x??E???~ ??alV?(?m???$Q?D/aK?b?~?4?\?C ????N?z?_{????s?^????????O??????_??? ??D???AG%??}??n??w?????????(?????!I?k\?9Kj???X??Tzh7?? +??U?S?EG}?f?X?q}?F???i???Zb?2?[ +Y?$?"?4?+???'S%$?2?A?GO]kh????'V????l??f????{p:?,%???????t???W?????-GCu??[|`V??(I??h???$?I???% a??6?4.z?r?\?T?Y?KM]gt?QTV???]???0?6?Vf#h? '6# ?T\D?(?Jc?MA??L??H???T?E???7???$a_??:??0?$"m?*#???,^Lo1zY????1?$??s? ?H??$z?$Ax??6h ???)?K???XR?kL????-??*????a+V??Q\??;?????F??$l?g6????*# kGa???M??=s??C=??6?+Ib\;c?? +'iW??+?? +??3??%???z)??D~:o?#? $ ?H?@? < +?]?$????Do???Y}???????+%??&?G????U?Bw??X\\?b%:??rX????r?*??s???????D4????A22;tI?,Z??(I?{E???J?D?$ A?$? $ ??????NH??)gVN?b?j?'b??????E5?????X?Qdz??k]???S????t{???r8??? +Of?3??=????SBE??S??s?3;I?,r??$?,??ek9??? ?$z?$Ax??6 ? i?h:3MK????U?? ??v?!?=?Q??W???]?a???0????t +??????Dtxg9\2?????"??{?X ???????$?bEL?F? w?n [???-GH?[!I? I?I??(twm@?|Ri:{??z?f?????P?cp?]?>Z7N???mj+?????d?}?!{Yz?$x??;Bu???D5."?e??!M?;?)?MDG??AE??????Y?8O??f?_??yQ??S>??$?ny???n5V?h?D/?$?Bw??( +Q??b?6%?C??=y?[?q?????]B},-*?0???{X?m???0M?0.i?7V?:"????lH?s?$Q$ ? {?$?E?%???:?=?YbX=+??6b???@????D/?$?Bw??!???? ??A^????z????}Y??????????tqW}X??0?p???a#=????69??;tw?????Q?GO=?D?$?&?2?????$Ib$L ????J??@@????Q???O[????"*?.;?q L??l???)?~??.?????y?O?p?>?'{??m Oz?m???0?????p7??8DL??????8:!???2?$?Z$?r?5?=???r?l?A?`????$?i???5?r?&?? ???"? ????8??P??M?????dz?@??45??qyN?????.gB? ?X?I?^???5??.?????5????QD?D]?-?M=??AQ5??bQ o??Qj?,??$?RDDU????@"I? j`Rl?$^??S??????????g??????????????$????????Wn8????????????k??O??t???IK???<=?1?\'?M??E??????g;v?????A"Y?<?XDY ???@??@?X$I?H???;Y?O??b????????F??^?}?????&??j[?L??xM_w???`KrZ?>????0I? ???87!sn? +?X?Ml????????5o&?4v??S???{ +?Q*?$?U@??opQ?|y???????W??????~umC????????|?pJbL??H????J???????|u????JJJ???W?l??????\yU????+????VoW]???'S|???*Ir0I? ?w8?!sS??kd4&/??|e??i?>??&?r??L???\???g???~???????"??_ZZ???? +???x-??)((????J?6=n?Jj?'???k??I?^???p (Cx??????????G??M??={?v>|????d"_ ?#?????L4 :@?X$?[?D???QxD?3q".D?>?]I??$t?? =]?SSS??N?P??B?|?????????G[7N.??P,???a4??G???UVI????H)I0I? ?9}??[???????Rf??%."J?:?DFN ?2!VS#7!a'?????$????$ +?D?\ +?N?????$?|? $I"z]???N???4???p? +6h?AC K???? +?//????z???gT?q?S??)% &?zA?B?? I????7??{v???d????O|?bf??????%5-N6? )-??b?????????I +$???1$?i?"I????g??RS??0U?t???Rk?$?'????u???t????? +8???$+? ??P?vu????????L???DUyS?Pe?U?T???TL i?$q25?$1??% ? +?N7????&? ?H$??{w?$"??sEx??9$4??3O???+?(T +TdU?+.i?d)))%?zpL????? +????X???2??n=P??????W^? q?F?X7U?>FY ??H6 I?O???<MI?9???????|}???=???iaC??\?d?(e??{?? ?? ??DJ ?4???G?????Q??G>f)%???f??O?x`???????\^Y/?os??(?!Nj??!VkdbU-?y??@RII"MIb?/X?Bh0?????'?'*?"|o^???????*?>hO??U"WD ??????2???ROup????g?6o=P?j?I???2??!65C ??!?&? ??8??q???^OP?c?# +?*? +?i???oDJ???r????!Y??Ax???t????S?(?"?????K?y[????u.??*b_3?]??3????H????C$=!???????@ b?C???h??g'??9q%%rss???D????b?>??b??u?&?@??.\??!?w_?E?"?8???9???%3?z???!??bHl?tM????T??5b8?NMv?b+ +?I @??BO?= /?????????-?'YR? Ow`?????`?D??l??k?g??"?B"???j?+??V1]2#?/??~??? ?D???t?? M??f?t6????????}UU?{?Xn3 ?$\ Ib?'?CM??%J?< ??0?;?k??Hx?f?D?????????6????m{t??????6L_?????] +/??4???I?$I?H????.??~???o???~??s??{o? +?-ZDC5??HLcO?}??7?'Y?u?m)??gd????8?????+"????8?????ul?i???????? ?j>/X???E????+`i????k??_Z9>E5?x?|>??_ZZZQQ?q??????}z??>?0 I???Vn??????$? I???n?e??????c??{?W??u4??? +??J?Y??W6v?wmn?G??HH?hE?}?w_?.1`H?xyS`T?'????Q?$F?$]/h?6b???J???t?"??????ExLnUWV?$???7?????l????e?L??P"?J?|???????%??}??#??_-}?)?O????rE?|r[1~ ?n??I?^?? L?????? ???}_[9>U?1V\jYv?j|n_Z?VI?|ZN?????X???g?Wv?T5S???????t?q???b?Mdg?y&?0??K8YQn?????m? ?cM[??zK???????v6?????/???r?0?C|6$ $??lC?????q??Qk??E?}???????SF?$??IZ???l?????F/????b: +?????????)?????{?F??????tn?????V?????e??G?N?4?o?|????JJ?? //???8?:??6J$?????aB??)???%????%E>???-V?%k'???z?U"?&????????i +????$?$?y~??D|q ??8'u{???!?????Nqk?v3??}????N7:?$]/h`?q?9/e~au????W???{????U? +?V^?????F?s?,??$9??9giM???V????/??????F??+Ki??F:?k:?8?-?% gl ?9???XR?1fU??c???':o??????nK??????]T??DA?$???%????[?S??5???w???'?i?Nw???5-k?sHu??Xt?L????FL?? +?*?l]3q??R????A ?="????.??? z?????B??|??]l?oJ.?dt# g?F??????5?t7Ch8&???Jc????????4m?U=?SXU"&;?32?????Ux?9:H:f:x??&?%?$?$F?wG???H(N8?u?????x???b?M??g?L???.1?B???Iau4,???SK???A??7??n>?E+????5?G>??62;?mD?r??V??DX?#H,?%?g-?mv???m??f??????0????LTH0??c?V??O" ?$??5JEyF???`????a??????%????W??????B?O?:????????Kv{F??)sA}R?|??????0bv?R?RE?G????Y???f?[qt??J?5f?!?7?F??]?^?VP??p`a?c /???l??p??Y?{??SQ???????????L???J?l? +???^&????U??&M]?0?i???h\?=M?? + +ms?I$1;???fI%????{?>??1S?4X05??t?? +????_I?j#??E+{?7R??)c^]Bf?i?A?H?mF?"?0??]????HR7A???????????=??Z?Z???5????????]*?p??!.????Y ?W???w???????5?????_???'| >?d0gJ" F.5???y????k???)] +??$???? ???O&?H=%?? +????_?????f????k??t{?i???U???? #<*.??T?"? 7$?????d-??L ? +????Br?G?E ????X}????EFOX ,??/???N?????X?_????P$???? #???????;g?kxg ?l-\J???L??-????????? l?=%??moU(H?y!?F????m|',???U??>Pta?]{&?`!P?Hb??t? lC?m??($s?X???h???s?b??L?WgT???BiAJ??)K?7)?[?l??y????? ]|@?????|???6?)$???Hd??N??7_? +?#?R&?????i??????W????]?^?[}?Ji$C?U$??$??8??B??????FB(?????@?`?L??F?$???tq??? y?;$>m???RG&?{UPV?-Gp???????????? ?? d?H?8??8??{????Bf?1?A4}?? ????o????$,2:?I~YO????N??,? +?j??I?r?J?,xW??H?7$1UHP?rww?E??!?$?d?I7??&?l-u&?6?? ????#A?Y=?????D????? +?X3///~_????I??????v ??f?O?).?#??? ?oQb????/HaLF ?L?e???????:???H???BB?3??a?$??0?3e?9Ww?0? +??B?/L???? +=u???m9??????0H$!B +????G??qN^s?;????L?tLb?$N?k?vL1=p??V????~5up?@???D?P$??$+w5?BB?9|2???$!a?[????L+???V??tq???????.????$?*7w5DZy? +j?j=(H?qA??z?d,?kV?y?@??r??#|Y???i#??"?????&?????????????N??F???pj?g??4}#R?D???K#?????1???y?5?I??F_`w2?6??Q:?a?6=^R?2 +??>?n?}NL_1=~??+0?w??????????+??LY?*?mn??R????,?????'?\ o +?G^???????V??W +??UA?3*j??????J8}I?wb??????8?U??J?e{?QfL&K SBf????w?0? ?:P?..4???_f?@?K????>?#??Wj??u??:?`???H$?o?7q?Huf?Q??? +?S?*???????_?eI??]a???#C???A?E??_*z??eGB?F???=t?Ptl??a?I???!?q>??????'f??????L?_????(???????0u?9v????O5U^y^_?dx???N?C?:?AXXXTTT\\\BB?(#IF?????>???????Zmpp0\///??q6A????q???<??c*.?? ???????X??5w8?l(H????gs?`F?Fx????_}"&5?T?5??????AB"?=??????6]????n|*?^!?T?d??a* +?^ H?%?????k?2M?? >?X11?[ U0l?????q?E=&??0Ce??r????????J???????G?g???L???MYD?????/'E?No$????Dy??pR111????R?y%u??q?g&?{?)#??kf ????t?oM,X6???Z +?????i???cVB;?X?s2? +p??XuP????8??f???????=??D;??7?Vb? +?????????\vX1At?}B?u)??y)???X??>?u?v??????;??z{{??8m???????&??u??mf?????? +]??t??? +??c?BCC!?G?~????E>'? ?3?????????? ?????i#??g'K7???vr????:?(?A?VW??o?6?I?s??8>??MKCA??????(a?Rf%2?????e=?(H [\?o??;???G?????QU2=5)CA?????Ai????3+?1c8???qy?Mw? ?N?a +?0?=bl ?466:;;3a???5!!??????3?TH?o?n??AB"?)???4?e?? 0?go&?!?q????h?Y?? +?C??O-f?Atq??" ??b?y??? +?~=??[prr?d????????5???/T???I???-g?S?FFF????k6? ???e???+?w????m?tv? +????TqcU(H????? ?????????,cVb???5&??T???7?|5*$?@??J???PY_$????HG????????? ???? ?$????K?????G? ??Md?l ???"??C$Q?}P?+??Kf??d?? + + +???H???m?N ? +PYY$1?@8??"?/????4Q^4H??????09??~!? +!?q??'0Q??i?9?f?????$=!?x??>?+??? + ????-[??? &*{?I;??%?D^?=??L^ +???5j???O??_(?_??O6?e???????z{{??R?'K?????YxW????*n? +??B????l?J?T?I?{>??????????`p?\\\??L?-]$???:?W? ?ct?Hb??????n?}m?8`?&m??i?`???L +X$??? ????'??f?/?}????s??jHe ????6?rC????E???Q?F????G??Z??JG??mf?{? +?"?@A????&??d%?lzK??L?x&*.|?Z +?)?????C??60?? ????????"??m????3?g3UT ?$?,??a?!/_?/????N???\8k +K&?Z???=911Q????????Z?_+A????b;;??(?????7c?????b?V?l-??B??0???????3???X??????+UR{?????&"??c?`5d?$?:"?X???????W??H?_?LL????????o>????"????o?&??x0??Gp?bY?Xt;f???5/b2Ia????GGGG?S7??}7 B(?( 0??????X?? +?>W?+{(H???aZ?g??FrNeXX6k?Mv??d/???h?ui19?R*6e,???????????]?a?R"??"?@??? ?%!??G???D???$p#?????$L!??/?)?????/????I?V?)?????<<<111#+?b????WR???????????U?zX???????RDz?YT\.???g?&?w?=???V?k=(H??????????P????^???EK?Z-*$???+??????q? ?\?c?S???uj]k{{? ?I??? +-?? +?$<*?k+ xE?d1H$?E$????_??????I???[)??=W????9??IO?-?c?1n?a?/???xo??{3???^?w??}?+?M]{p??/????????K??|tO???V?H8???Df/????(X???i<4??/??? +??q???L_? +x%?AI????B??J?????T???????:????????f)(H????^qV"9o6w?????j?????0\???9y???????UHJ????].?k?~???D???smL?$<$? ^$????" ?????M???EE?$??W.???????#? +?O\}??ma???????^-???yZ???????????i?????^`xY?M?X??o%?o??H???W???#F?? +2?/? +wx??s??G?????{?;??f???|??? Wq???????Z??y?)????S?AA?????I??F?c7???  ?7?%??J?b j??W?$?mOR??????U8??W??c?`V??????```HH?F??j?s???^R??LLLLE?"??????,$??H?_H$??E|?$_???~z?D?dq??????9?i???a ????K???}???#?9??_?[??p?_???_??;v??O|?\?N????a?}??w?:?a?\????o?]\\????V?#?R'??{??? ?7?G?R?u:?A????6VE?a?? ??D??B"??.?`?]upB?dZ?????0???????p????????$.?j?Il ????????RG*??w????;?-???w?????w???`?%q???.???H?weL????"}???W??OSt??+ ????g??W?o?x??????Xe#?9?????????ml?????;:??=????|?C?u p???L*;?'7Y&B??(I????$?^?????nnn2?D^??(HW$r??xH?d??{?h?wG +?7?????X???q_|??U +???*?V??p;???9?Fd??????Mlm?b?1??$??H?_H$??E@?????1????54@[z??6Z?????$?z?????? ??7???7m? ? ?QRd??!&?[?'/f>vr?jf???rE?A?????3#>~5U??PF?5^!?/???d/y!,2?TB???3? ?W?????????K??`B??6,???A" ?$C8m??/&?DF?????k???? ??????????={??N}??????w =G? ]i?C?????????=? ???_??,?2.v??0?J??;???? ?? +n???t?#??g+?????M?B????e ?7XSu6?s??:o?@!I???????{{{{zzzyy???>n???d?6?????????R&?b!??D??x?l8F`t?v'7/?o? +?I$??E?W??H&??$?????+a?c???p????|??????06????O?O?[z????]????s????vW?n??p?J?K7#??6y??"??6b?6?????xnr????yEnvrv|?'?9???s +? ^?I[??????Wt]B???k?V??R????n>????|????{???8???????????????A0??K? ? 1?&3??????c?iDr.??.QI$?,}?GT?; +??5?$????|???kTH ???Do?.??R?7sv?? +]]zw?????W?k]?m?????'?~j??????m??g?D?I?]?V}??t)i?|Ul???l9t6m????O?OK ???Kd??????z?L??C? +?`A?v?S?p?nSb??O?q??U???(?Vt?`???Z??$jf??E??$p?T??%z?:O???V1??????~!? g???p{?L0!?S?*iB"?H<<<:w????@????mB? +???#YU?5??|????H??? +0H??$d??9?[??{?A??Dy????g0H"?S?????I6?oK??MG??}??e?|H ??uw?W?K????C?????h?$ ????.>??????:{??????p?k)??`??????G??A???:??$!?3???A?? ?6%???8Q??  #?? ?????Fd?g?K7? ZxX?a??????????:n)g?2p?: ?i?xV7{ C0??-?? +!$?&X????:? ?-0M??k??s??}!i9???N?=8??I??????????0HB \??$?)oFZ +I,6??Ko?ss?????`?????E?+??6??-??y?H?IPj??0s?;??&?[????.??9 ???_Z]|?G?o +????,??H? +I)???$????o?E?"]?e??>?W??%??I??(}?&X?b?B3??????s???v????#???1 ???I????D?/?hHr?x}? +????????3?xC??ap}??S??-x??????L?Gc????$HEp?y!??=??d???W?6?t%'?6n+;Gr?`~????EC?O?????/4??????"???~1????i??7%??????,???Dc?V=?K?X????? ?}??!?Q????+???n?@?K ?5?????+q+t0?T??W/???-Y???*?y?+?????????? +N?IX|d???????Y& -J?j$?c???????__????+4)??8?-?t??????? +??"^??????U?y?%????=?d??cV<8?f?_,?X} `:???$2????[$1F8?t2?B{?>?[??T ?wE??$?k?3Hb"H"z?y??? ?Y? ????/?$!??????sL??i[E~ +PFH?9??u??;"??FBBC?????D?$??\???pv0OH????????? = +Q?? +??\\?T* +?J???[???L? ??z??|b; +I???)B?????????dc??z????l??}????n$?V???Fj?[?Cc???????--?$(?????7?9ER|?&????l/???4N&'N]??Z]|??F7??????N?????? ???p^m{G??4b?Rsx?j???`??bx??b[iKY???.4$?B?-??f*?"$??y???? I???Y"',?H?z??????aN?yK??cr?????????w?????}?[? ???`?j???f?`lx??Gdk?#B'?? +!^?@?CwN?f?]PHb}?$>?L^??OF?+? +?P???**?]xOyU?r9?????@?o??3?i????zr[???g????$6n?????H=u#?$F +?H??N[??`S????yB?B??2N?W???????}G??S7s?-F>???1M+&!ii?Vm_J|????"??/>>>??k?p?j???`???'???F?????GF{?$??Y?F\H"?H??????kW77?.+p????a?????????Q??????O 8]U.($!???G?Vf?l?0,n???ns????;?????????E? V????&?>?H??Y??e? Ihi?|????me???:?????MY?vn?{????5???EC?O?J2I?y??-?7 ?W6D????$1R8???QVf-??1??3[H?B???c?2%???S????wlf???Ee?????6???p?'!Q?jB?a`wqq???? ??7[???g??##?j,Bh?.??3???X?&??l??????76?_??$?T??I??????3???????J????OS?6?'. ???@?O 8????|?? +I??Xy?????2+3{ ?L ?I????ns????????????????'????VE??O_?S:?GH? +? 9Y? ????c:??Ap?!?C?A"?b???FJ???p??t??4z}cak?B&uHB?-Vf-????????A?bA????#??n??N?OPX??iZ? ??_??cT?2 +???]3??Y??}? ?????G!?I??????K???9?}?'?h?1i??????''??B????$???? ? ?@g?? t6; 8m8y?"?&???G??????C??y?@`??_?$?F??G???+?2??`????A???fHRs?9?c????U?2u?y????7Dg V???@?zf????/?B?IZ?????h[fL??q???????,???D#$?S9?[??`S?Q?????2 ???? +???E?$8??0l????M?>~?Y?????????'IN????[:Y??? +?0Y}?_???????G"?R?|T*????I(B???`?hwwwR???????????)/???4)??e?[5 +??2Hb!????6d?????#p?O??????jh?A?b????:y^mb^Mr^uJ^e??>????5?]??#{??B??????S&???? i?:$!???Y &0E:?JO?Y???7?g$??]??9$??T??S +????????>???qx|???$?z??zz?a*Z?]T??h???m[?.? ?! ??????2??`???Q?!#?m??C??Y[????_???8?%?t?J??????&?????3_???$&&?_]RRB?????F???Y?F??!b???N???du??;4dt?)QC?B?rE?\??$I?#??#???w$Q?$$???H?Y???ZO??!????d?0H??)????A???$d? b??????9 %??????.T?V????>88y?l?g?m?{????????o????"?{V???D" ?????Cl?=????:?(??B? +Z0??B?,H??3???O??@GU?c<??n?0H"?eb?@ap????wt???U????eM??i???:6??,X?b?=??Q?p??`?$''g????sCC?L&k???l???US*??F???z!N ?r!?#?&3????cO?"K???]?????c???}!??p????#g?}??=z\?xQ?3a?D???y???x?????} +????a3??9w??? +Q? [???h?-?W?^}?1@>??6?D7?$?a???i MH??R9A?;???8[:P5m???????m"????[:u??_??? ????$!?" }E?" ???X*{{{:!?tlj??U??p!????@???F??????a?Dh???[l0$Y]u[??????Ue??:??(?$????G????H??????og?2 +$A??,$???/?\H"\? +?V??;????`????"???z?F??1 at W?4?W????;? +??hV$??H???O??? Yw?ig???!$??I?^?????H?&??X?{p +C??>?8??B$?i????Y?b?QN~ ?'b?Pk?$????CH??:?jt[# ?m?v? +?YUu[?V?????U???r??QK??D??tV????$?D,H??>???)r?????B??EC!??yM6v):?l??"??`???'O?|Z5jfa?".C$?? HR{??p*4$!#y??N??n??#?????$$V_???6!?E{???w??%,9S??I}I*?GTEL0/?B?KpB'D??-B?????N??-??$?Z&?b=?#!?+?????[????J??/??AIDQ ??p?h?AL`? ?????dF??????? ?????#'??]*?b?AqM??$?k?2N??$dm?i%8. ???F?????4A&?,?????4df???????5??pRI?C%???di? IK?: I+???4????$?4????U???????zD#$y??7]Z???e7 _Pr!?????LM_b?????$''?|?z???D??$ ??G??w???X?C"??{???|e??W??bU?b???VH?????L?S? MHz????V? ??E>Aa?4??`?5m?h?g?z???D9IX? +GZ????????.r??xU?Mk? +e?????-n??I?U ?$ ?????YW?S?THB??a?8!6C?o???#i%\\\i?????&? =?? +Nw?!S?IVt3@]??$0Zr???%[???  +?5?w? +?|?'??????+$~aMH????Es?J?4?LZ5 +??i??6?????:??G ?? ??$??b????[?????R?HH???/????\~????_??$????&e??Y?wO??@u??6?IO???????b???????/?k???? ?2?1Hb?2Hb??z?|?gY%$?????Hbp ????%??x????zq?g? ?????L$???G??!aOr???Cq?I?o?_?p!=???*?u?? ?? JC??? ?Q?F? HR?;S??`????0b8w?????u ???F?`?VwwwWWW??5?$$?`??G??H?y +7#l?????5 .26???????gP????>y??ZT?9???'??cV?}????l?s|?'t?mk?b???t!?N??%.>B??o?@???B??A#?AI?S{??????.=????U?d?g?/*!???;LyTIP8x??????)?#????/_?ng?$/^??R I|}}????Ri?^?? +N??Zk???_" ?[A??vok?????-n?r?,?u]t#?F! ?????????A!x4*?@??????h?d??*??wd4???Q$???atx???W??n??0?L^E?24j??K%!#?;?? ??o>?'??+?3NG-3?>? I???????)??'(?????? !?FE??^??Q?A +g5e????I?h?? \];{s&???g????d?????6??0??$1X$1Hb????I ?Yr?']???%??-?wc??O???I???A??k???x????TE?? l?\?rE?IR???????J???????)? +??O>w????[P??q??????p?A?????)?[X?33F[,R?%?0A%???????#hdA? ??s? +?`??????;??F? ++?(?????/8:}?8E??r???Ik`??7??=N? +??+~c*??Z?NK??? ???ZC?o???#iZ]\\H?M:M?iz??3Gicg??70@>G#???N??S? +r?l????^r?? +qD???d?2??I?????,??!vM?LD?????????N?PH?wwwgggN????? ?a?? +.^$1? +I H?????6]???+?}??{]??$=????-C??wp +????we?M^?????????A??t????*OOO????gS??E??G??M??Y;????????x)L k?Tgf?(???3?%$?????#??????GH?-pF(H???C????J??W??????hdv???V??}?Nr??ib??Q40??1N[ +I?????]?8n???1 ?$$???U?????????L6q ????)?8'?????K%?>Do???c??FL}?7z'???o +Y?x???.???H/?tNFGI?2 lp?? ? THbX ?????>?}?????=???>AH"z&1+S??$??z??]p??f???p??5i?r[?$??;?L(8????Wo`?????????G????H???6?5?:&?{?(??fV?FHBT??8?Ffe?-?????????z??7M-????,???D?4???????? eh??????nQ????=??&?????=?[?q/??"(%?C'w???a????????4??????A? +?Z??b??$j>?6?{?????s????????e?[?AH"z&1+S??Y??d???>>?`Xr?o at p??????VO??I???$?rE???+???z ?????s????O\?? ?>????ilF??)??????;?KK?A???? ???-?#$9?q1 +8%f??'????-?$?????sd#!???p^m??:?Fz????>!!#?2m?FHBt???GG/?X????????y??W???>??&$?a??4??;|BH?~0ma?V: ?)]P??H;?? #V?????/[?9?"AZB???d?9????s??~;??8??;?XA|eg??? ??A?@?????/??N?????o^??? E_???!?? ???L +H?f?????=0???s????I??2=i??t????PA?\??$V????????????A??bgg?6:999;;???1 ???????Y?k[??s?B?r??????!???????A[?_O?D?S??v7??VM???mP??{{??>?_-4$?+??y???S??|?x?qh ????fC 9eq @Zk?>????_? +???'???igG?E???? ???'$?=?D`J???m??Q3?ed???]???1L?5\)?s +?+&?`??#?w?}?????d??????]??s??,?v?????? +.^Z1Hb????? w?M?????????????$)(???G?AHB ?[?z/???`?K$?T?(KX???B|N??q ?^?????p?z??m>?B?*?OP mx???|????f???#????p???G/??;g???????X? ?5?u@?TG? yu?;w??i;????%4b???dGAQi????,???G?h ??]%?gl???o?????Ff??_? +???????????4?nIzY?t:M+IBB????xG>I?G?O2!w +??s??????E?}#S0M+t$?QpsHB?$$cq??r????EJQ???$(q6y?y?Y?I?F<U?]??:??)[?? z??I??? +?>}?5s=???P?????? +?$?y?J?/?5?p?????? ?????E???l??k)/?`!????Z?pH??SI?b?o??????N??H???/HRZZ +???z??G6???O??+?9s?1??:$?j???v,?U??W_???4N???$?Cg??\=?????{ `IDQI,Z9?????%?4lLv?#????8??S?3p????????{???''???1`^?j)g???<}?H?VX???N;6?b??>?? ??d?????%g?????bM?D=???{W:?n?,HbX ???_i?l?|?z??_d~????$??Z??2$???6????sg?a?X?q???????????.&?Gf??U666I?l?'?f?????A&??,\__o?1M I?&UG%?????????Kz??K" +:VY?B?J'tL^???fK$?&e???U??S???q?)+I +??,N??a????`Y?A?HY(????o?????n~?C.$)??T8?@r#??? ?-?7p?: ?i?v??i??\tGL} +.???!1Z>?xZr??J??C??_`?F?A:?L??Kr????(???\W??cUgo?>????{Y92?? a??r!?o`???-@?y;???Y????yo~?U?I?}H"z?????BN????K[\??J?ROOO???K3v??)=I?\??/$?v????!$?V#-!???G[,vBSf??H7?@p?\???i????goa?DDe?????????`?sR????lY?o`??????????.?pp?????~?s?;???q? ?????S?4u???a?-???}????}????v&!?.A?i+?????/???B?{ ?+???bc?-?????t????n7?? ???#t???6?????R??b??)??????$?4/???4?k???? ???????3?IC???w??B??Z?2Hb????k?T??9>i???????eq?7_'b??>?????G??((2??k??2??=????Y??G??]7z?=F??[???_?oW?'j??nk???apZ???>\2?|?????.R????A?go??5@??Y?z???f????'??$!7M+?^??????P???????Ka?9lL?!?wj????!z?F??? L?}IN3?:WW?>?????g???????E???M??&h:I??kA?tlBt+*???Y?]??????>???p?F????`??y? N?:g?um????"????7>???r? +????ie? ???????5??uQiYO????A???}??T9????.}K#?[??c??4??;|BH?D??`?V: ?XV +???K?g!?%n5NN?????8?$????Z?-??D[??>???wH??J?? _???6????O?f?+?_????:???'I?????SD?d=R?%????x/*??w&?JmeW?~?a???E??J1?48?Ih(?G? +????: *???h??![8?"?;`?m?)&?[??/?!?????????2????????Ix???G5:???w??O_?????A?U?tg?5HBLn?d?????5@>?x?B?? `???D??$sg???????7?P8???????lv??YJv1*cg???JR?? x|?????C??j<h??48???"?$?{???/?B????????$rE?Gw?(?E?,a:???$!?y????[?????37?s??Q??lJ??)??=l????%?IB????????Mz??$B??%>??a??78/?%'!?????-??d???|?M;???9???y?Z???}#????-Dc????i??s??@SUoj0??c]/< 1?aVr????w?M? c/?k? ???+??H$?????5?????4??n?a??sZ7u,????]??p???????8)*??4???n>??%<?n>?k?]'?A`?DDe???#["$!?"Z?gYY?3?????????? D?#?WAQ? JQzS? +????4?A??"@?1?&j, j?L??FE at c/)3????7?f??23?u???????V?Y????????iw??{????p???K???#G?Xt????????_?[0#??????g38"|?~?v????}FD??O??E??'x???r????]???????C?@>KDp7?u]??)????Eu????~?????????OWIB???????|w???W?|?C%???????7?rE?\?`%E@|lp:??=bn^Gt??{0t#?N??F???}????S?%4?? ?mT?(?r?(P?E<###??I?M?JH??w!????????=H"E??????4?????v ???#6?????M?C?????[ph$??:/?z???????!??3gtvr??????!$p7??????,???????$?F(??????uw?8|?F9{???c7?? +c??|???Q$A{?m?F?{w???;????^R N +??q?56v????!?l??/??|?P?S???Zy?n??crl??/?o??>????;50?????I????F?&0??\???@?yY?Kb??v???$y? Q????|??'){??C??O?Y?:??? +_RG6?_??'??w?m??o????z?????g???t??_???O??}???????????6??\??K????? ??????M???9?????#G?D>|??c?R`??????<?? ? ??????A?f:B?p0?+??ob?4=,???d?!?WOCx ?????=?????qs?7s?n??0p??w?1?+?A?h_?$0??????N??e?I?2???q???q?eH???g)?MOW????,HB???F?tjj????(HB????t#F?N?^1n?~????'??????Z{?????QY?????6?;?Z?>?i?????/???-?v????:?????_GE???6Hr?|??? f?? +??dv??????y????;?}>g???qv.4!?'J=m??%$A???Zs?1n??L'k???gn???????,?n6U?m\S?G?] +?\?=B???????h??u??????: +Edm??} U ?n????????#??h????] +,b?[??Q??Wx?l?????_?7?[???N?Xmm?hjjj``??}?t6????W????pA?????YXXXYYY[[??????M????[?(??b?e??$*B?A?4?9I????++]?V??[?e +*?[s???c?????oh@? ??9??X?F????BR???k^L?p?d??F?m????}- $q +?;?^z??mZ?E???`?????????R????????w?u?????:???yW?>]?;?;?U??g???3r<=X???Z$?$D???p???./c;$???j???G/??K?Kn?m>Yw???????X? &????U$!???????I?"? ?+?Bz*?cA??p?;z?q??7;?B?l?&$?AE??E{???@ +? ???U??$??R?f,.??3??????.IH???U?_"?A??,?? ????.<'p?lll???a??!????x?b!?+K[??$R$n]???(Mb?>M?|??????u?F?%??F?1??}?p{[?????]u?T9???Zy????g??{??|???xU?_?Ae????:??O +???d?Az?: +??\??.s?0c???~ +/??$????B?I??&fQ???O*Y??????V6??fT?C?+as????F^??????^B??<>\w???)??A??I?u??? %?+)1 ??)?;X??R??????v???????9\[< ???'q?{X?d?4??cA???hP!I??????Oy????/&???????f???$??{Y????????KB\???E?k_??V???????????K??|/???E^ +W2???o???L??O??y??>??????8?w???y?wr??_?8?idQ??????2>{??$D?5???????MA`?kH??????????~ ??? +????wv}?-?]??????o??n?m??A?? 4?0r?M?x?}?(4??>:???xc?333??` +l?kU? +_?????????2?????R7?g? ?}8_??????[(!Q??\??r:B? .? ? +\7??=?ti/? $nU???H]8???(]??}???qRyK??6H"?%??.s$lh?1d???Wjm?????OU_??S1????a?O???f??????'???.??F"? ??+??=???$?-?BHB?>Q?%??Or3?c ??j?[????r??$?s?>??ij???5??>cY???Zm!9??= +?x? g]?????_{8d(?1????R7?A! ?"+b??????,?S???H??$AHB??@"t?3????9????j?S?:L??;.e??idd?EU???y?{???#??*@?3??Z???????^1??n?ZZe3t??z/Wx>??e???+?nc;??/??KK??!I???????9?#\??C?rk????D??'?%??????o ??F?????H????S???????1V????$????`t????0??qWb?Aw???2??$???u?????[`?.?????a??????+?C?$$jj?f4d??? ???VpI9H?d?E???%?&???(M`?~???u????w}??D?5?h^?? ?6f?M8????y?*??H?^?}iY#\:???!?t????G?U???i???? G?s?_ +????_???;;?TO?$?Mt,????W ?0?b???5???m???2?H????5 ???:?l?C _??????? $??T??4?Iw@??H? ITI?-=]???&,?!?' ??^?$?o%???5??????????m??F4?a???? X&'I}??70???Y?A??? ?-p??F?P>?\Y???Q?l?Bg????w|+?????????1?t???U?_?I?|V^????????O?>\?????O;?????????,??~i?%??g???H?`??>h??????I?????? ??????a??7??((????bH@#c??'?5j5???{?Tu?)?Bs:{?p0HK???c?74??? +j???5$?=$?#<% y???[?$Lh??rl????"$??Mp??U?$-p???s?D?v???5P???q{????????[v5%????D?#r?????o?"ZZv7?e???H? +?b??Sd?r?:?F?s?????5yn??????wi??U?~? +?$8%,???cr?+?u? +?????? +??0?+????T??p?r?-\{N?????$+h +??????1Q3??Y?????9H?HB`?X?U?F? +?$???_ALF?f???4?? ?Z???>?L ??Co????Y??C????!??;??Tc8F??[)?MB???h?M?8????????5??Fx????????=?~V. +3????C?rk??T?\???????w???????????=dzd????=~????I6????Oi 9???????( +??L???$?X?n?(_????e\?'??u??e??XD?9i`hL???&??g??FM?t??w?Kp +L???m????+w?3?\????B????/]????@k?k??TOSI???M{Lk??[???zZ????[???????u??|}??{5$Q?*?HWx???E?RF/????)???wD??zQ4?Y?9?&??3?e???g??^?;.?????h??A?Y5a^???+?? i!?? }2N??????d?@?&??_??I??P ??H??S???p0?????????g???]b ?9?''Y????dy&3??0U?PH??$dc?? ??! \?K fe-??:5???KVui???]rE??$4????!T? +\????~ +u?? ???8?$?oV?I?.?8????????$?????7?r??A?5-??f|?? k#?Q?g??p=?k_g????y?{?u????E????^???_?!S3Kd$4?6?v??????$?*]'?3??l??u?.???????^B?"?qf$????Q?????? ?_? +??N9@?!6.???2??p?t??5?3z%???^h$??E????2?455??U???p??B ?0?f?.? m?!|??v_zr?*? +m?????????$J?[??&Y ??]?E?F-????AB??$??%??????? ?,(?cH?????s*??~?q??? +?rN4???u$?x???????????yNRs?1??2??????c??x?dS??B????O??Y??u?s?8????ML??\?L X???E??vrypQ]`a}???*!?'????! z? ?n?$Q>$a??a? ??U???*??Jv?6?r?#w'V?_?} ?SE?X??ml(??.g?K???,+?,??*W`?]??y??u5??uV?????????^1??????GP???r???Fp??iW%?$$' R??6?AY I???I?:s?v?d"4????T?58?????~?5??????3??8?"?????????J?^q??m?:x?? ?t?l??H????????%???X^n??\|<Y???d????*gu'Zs???A?????4? u_????3??r3VDw$???2t????K8?u&B?gU +9V"?????l?<?Dd?C? GH??N?;2?V??P????A?C)?.??H?.b?uQY????q;?(?Ng??W?/??k]U?h??q*??y ?#?\A ??E??????a?O??ihhh???/r?.%[??j??T??^\'??v?O,??? `?UrX?,Bs-D"HH???y ?z??t?# ???d(?!?????7*q&d???$?mHpMw? I?cl(??u????n????B'h??:??S?j:??eh????W??/`UP+??????qx??1???t??` +z????{G?-,??????>?????????m(8_???O???'!???AI?.?? 4!q[??w?{?NC#hC?+z??;?qf???IXg??=????s?3?~@?f?Dj??p??N?G + >t@?C424Dq + +b7Jw +??}O?U????z0wC /F?? ?,wD???e??t?- w<\??????I??^?x?^??(?nuG??$1;ZEi,?- J.,??x???"fN?V?Ji????rh???=???K?T9^?3??\R???rw&!c?t5?4?+G???3F__??0H9????R???P^C???n6????????\z?Vd?U<??'{E?? g??P???&???m$??3Bok??/?vVb?Gd?4?EN???|????????? _? +?)?t??W??*??F| +???9Idi??$$Q???hH?&,?[?0$??I?~???5??????x?B?.?U?<??N{??t?S?``?kp?p/&?q??s]?2|VJHX?????o?x W\???2? ?:q????F??{I!Rt,???m0??3?s?_??Z#3K?f,>????????7}`?`????q???`Z;L +Z?a?8?/???9*i???KA???_(MS???S??M??(f??????V?l????s? +?t??r9?%??????????2?|#z?Ur?s???X?????C?MLL`?E????K??^???tJ??Kna? +??pvp?h?b!`"h???v??H?3??Rp??????$??N ?????[ +r???$?16z$Q?A?? ?P????0?b?f\??q??Gv??,??8A??F?v?h????!Kc?`?!??2??? +bm?????@????$?j??$$Q???+ ?r +???+?=GH????a?u???+u?? F???%L??!0?x??( L???T??qX??yb?8c??q?Dn"I?B???:?'g ??)s?B !?d??r3?W??[????-??<86x2???NV?]0???wi?[???D?c%?F?a?A??????????8`O?O?????g '??????????P??400??;??? ????HI"?5??(F???`????[? I???????g+*?&W~?\????????????b??????:????:d??t???T?1v??df?M?d\4'?? ?d---t)?Q :???????s??L?????`Z???W?+?-=uk?????o???T???4?o??@ ?k?? +???????J,??l??eee??#\?x?c0?k?L?????unC(???dT?`?8}x??u@?m??A?uAE?*)m#k??D?9H?A???(? ???cF1??b??&?~???A7?Z?B+h&B?q0? ?#??????q??NJ?I|???5???,??Pt?DL??????i?? +? Xs????'??h?Ly.?;??I?%???6Em?????-????T????I?>M?|???Qr????k???W~? )?????/2>YQ??d??~?q;????n9?_Q??r ??k?J???.????q?Jp???---???ll?'? ???????K;???y?h?Y????????I?2??W9!Q?? ,??u???ZRe??X??ac?@???*??D?rt?4???'?k?h?8 ? +?z?7bd??De?????F+?p"JX??0a???\?K??b???M/????|T?????-w??!??????DF?$??^^????>B???????n?????G?7?Q ??^???J??IV.??H??}?cz(?????_??N???AZ???EK09? +??&HN??????Y{NB ??# u? +!H??"FLMM?o? p` +?1?''?#,??5? ?tV?-??L#4B??? ?CW???*'$?G9H???oC???g?*NC??$8?B;sIar????X???M??????r/??1?8???$?????|=???3??$??'? +????=??G?1?$? ?_??d??xS?y^+????99:????7?,fjU !?;x????vp?9??3????????????Qk?F?&I0?s?a`2?v???IF??F_,\}????)?5I?.NrAc~Vp????????v?H?gw|?x??;??;?O???>?9v??{!~>"??mi???>??r/js???7?$T2@,$ ??@??2z?l?w $???$n????x?????- ??w?m?$W~??????????????q???V9??????/????*?-?=TKO????6???N +??Ek?J???????p??. t?i?&?|6???XA BVF??J | |?????????g? +?)?I?$t\?I8H?Ae??(m??* +I?V'i??6???????>?_???X+?dLGZ?3b?Wj?~#?i?Q??n???3??BH??????In????????????+NPQ??;W}V?8?I46?$x?Ge??{?%?aO +I#??t?8?Y???`??s&6S?F??9? I# ?pq?I?i;????{? +?2Ip????:!dL??? ??"?|DM?????( +a?~????76Fml?$Kv?]?????Z?w5%?C??+?J???~????nbpM???????bt?? ??x??o&??Ev???ZC#Yj?J?C`??????s?rB? ?x??d?????9???!?UZ???$??P6??0?)?wUrK??8H?A?(????Di?6?S??;A2?Bg?)?&?#?? ??+?t?E?i`??$????s??{-??????9ZYYYXX`?t?$aE? /q?DF?????\x9?? ?F?J.????????"????FBlT???gOZ?#h?(S{W8N??=z?j?8sJp?I?((??!iZ?xBK?e?V?@?tzo N????F"????A E???P#h?Q?G%?C6}??1??,??X9???GKv6??|?Pv?????]????OH`????U}?oN??=?????h??Ni????G??"j?J?sj\???H?3?&??h?E?/:??"o???A,?"?J R??16B??$}I9H???oC????O?! ?_??2 |tc???)?fA????t?!?M4.????kN?????s???{??^k???"??????Q`B????4?'????1?/hE?wD 9??W??"?????m +7I$a?DNgC?D?]?4$??P^?M??????3C??Q2??%?oDLT???I?w??O?C???a)0?B?E?? ?i?j?,Z????????C????QH???A^??]?{??tf?h??w,??=???fn???_z??????#??"?? ?? ????0?3?2t?%=?yEHH??@pA??`?#7n?????GC"I?A??oB?q?????[Yy?????????ye??&t?v(?8?y}! +3y??a1??}?m?i?p&????FO????y?,!???r?-K?P#]??t?2???f?G??2M????0????N?#5?1?%M???@(a6 +/??~?MTP?? +?$?????????Fss?/???}?v???]?B??~4?k?+?G?P?I^!???$p;FL?r??????????N?$???6??J?:??$*??????f^H???????H?????F-??k)E?iEW? +/??q?d??;??h?n?m?{c?\??j5$9??i?????C V?e???c?d{????a7?? +?;?&?u?/???ipx[???AI$??'y`dd????O]q ??#c??? +Id m?N???k?:I7?6? =??c'/Q????`?u,?????'???x?5??H????L?1 +IL:?D???u?M??? +#??!T???i?n}x????b ????????V?g?$=?2nT???I?? +???e?z6z?Z??$????kB3????????w3j ?????????????UU[YI??????????/E?r?|V?y???????C???? ?[?????7n????eR?$?$c?D?v??)h??????????~~~Z?????UIF???L:{ $??JXlr????????I7?"&???DHE?GfHB3 +?? +?fdd-?J^?XH?/????Q??G?[?W3?9i? ?bE? VQ?lO ??3V??0?b??,??9?t?????+K?;?pH????<6??????1re??????:???????????O?????L}???7??L[h?????f??????3??????5??$a??A?l?rm?m??'$?????{yy5?B?* ?l???i?C??I7??I7>]???#NB??qO????3rB?N"????????????????eX????w????74??0??>?????????$?d ?(?HA)??J ?l???i +?$6??n??A'?????0Y???b?6????g?D:????edzt?V?n?-???7?#????dF1Hb.HBg??D?0w?????"?Ye???t3?N? M?(??? ?tR;$1Z????|]??5??6T?Dc??i;?-?$-m??*+L(I??nC{0?D??j?{?$???KJ?{?? +??J*?????+)5?$c?My,??Y?? +]V1|Y????O?^?~???????f"B????jgg??????? +?a??Y)&??A?nU?1H?L??$?@?????to6??J?8~?t??.[?)?$?I????|#b?U[?X?C?q?)??$`m????c?H ??\??~=NdL???wx?0?$\????$I[vCK??z????????KIV?U`??|??G?[q????_f"?pC?p{??B???????+?0???,???? J?` 0IhX?D:Bb?H?U???Lk8$?$????a??? ?t??e??nd?$V% ?$p????H??;:z,f??n?O?q+??O??-??????L ??|0y=/{?????????'?ob??C?X?Uw1V_????_M?_N?_??$??IV??o????I??!??s??LD#??]?v?a?A??p?0???"a??AK2?Bf??@????Il?????Xep/C???I7a)S?I?a?D:?????F,&?22? tt?U???7B???:?:??[[?W_?5??nO??L??tV^Yv?qI?o?F?G???...??????AaQ?3????????]?????99V??H-?J]vC3??????2????@???????~Z~?????]?? ?H +IZQj??5?+Iu?C???aWgm??=T[??'+??&=??a????????p"C???j}}}?t?7"a??4????3???H??????_??R9??V\?Q|uH?E?$?^??oG~\v???????}????g?DBH?}???;-?G?x"~?G#N??Gf??`??_Bk',8?HBW???????????b?????j??@???Y??6???RL????sH?:?$*k??I7 ?H'?C?J???IoL?9????D4????%??.????5I&R? +Z??w{`?e????e???}???Y?!I?#t?|????m???~~~?-E??0???'7?-:?A?????2X2g?R?*???f^??(????? +???????>j?$?????6??$?U?Y@?dTA\?S????f?`/| +?=x?N?@D??)?nn0Uyyy?l?cM?6H???????BS????NHl$a? Hb*????riN?????I7 ?H'UCFxG?899?X????DdYGO???hE??j +dU??????%????p?B!!?{?^?wjFHBs?w??????BJ???u?50??TC????k2XgU?EiE?fV??Sp?G?????w?*??)B? +g??LD?A6?2=P????(2}t??/U? X??9t Z?????V??????Cp:u?+/7???Cn5rqq????y??b};??$?TH?^k$????L?n?pqo?:I7s?M?a?D:??`=F?G??:?????8 3?Kx?`?V???Y??P?nO???IH??UI??,??? ME+.????7?????i?!'?q? ?????? ??????OJw????????$??? +? +)Hr?G????U$????$9?of"?$L?=(?X??????'???^|???l???????0;$n?T??Z?Xxb?(?H??_?* IJ?????$2,???I????????:I7??J?dc?D:????=??=?F-?bTt????I??????????????:Hr?-??G??????;??|~_??;2u6??h?V?uuu?A????\??o?|?a??k#?=??????????S?q7?? +?ImTR?TX?Z?nF +$????^?W??o??????H?3?A????^E93a\rqq?????%??^??yf>7?v??A????<`??Am?FmjD.&!?????$'m???? +y??Y?q???6y?????????????#??DI7 ?H'5B?`$%z?r? ???w?}#@ +?{$????NL"??L?T=n?????1??1??Yu?d??S\ +? +?n#?$??B___?&???1?M,H????0???@??u???????N??????/?&?PIUbaEJ???5?D?????????t????????jH??????h ?05VA????S????'g????1?e??;??????????C?2?.??y +O?ji?????U8$?;n???'WW0c&?VB ????H"??????????4i??vvR$?? F]??mn?` ??7=??\?????v?N????mh t??f?$*?)?? ??0HOu?d?????w???&$?????cEz[?h?X?:????? ???????k??? +?$??\??8?J,?H)x7?????m:x??m??o??~???c?$??????? Sc%E? +????C???? +?*??v??? +??w4j?,??9??????y Z2*k??RTH?1?M??????Il?z?????????`o?DkL?R ?}zP?X]? ?LXv\HH??:99A?m??A?t"?Gl??>? +?&>>>?&??vp???+??-??? ??2????}?=?*?$p?~??? +????????@/????Z'?????X??ar??$X?d???BB??????:?O??y['?t?? I0NL???????8????'?????!??{??-?|??+_=?????"$YWv???? Sc%$?3n`,???x????s??f ?a??_"!I?) +?1H??Y?????&????????C?N???sbA? ???? ?????5?V?d??,1??kD?t*????|qW???t?P_???;??2?N?)77rP?v?U-8[??C??u??l?P!??G???;*?-i?+A??????$?L?^??`A4!!?R$bJI??? ?wqq??? +????(?]???X}?`}??f@%?q??D???H?t??i???W?^???9?>?y??!H???f"?$L??D?m??`?4?gZ?6?{t??C??G??;;???????1?&9?4|` ?"??j???H?6)??iRjgg?T?9??$??)X?%rmM?(V??&????qw[H????F?V??????a?on??:w +H?b&??5?;??YjU5Y?? +???8?)?F(aF?0????G,&x???^HB +??@Hl$X??????w10 9Ir??X}???x????G:($|??Mx?)yo??.??W?b?9??????\ ?$ w}M?"x??????X??'????? ????3???$aj?$?x?&??$ $?????x????7??>(?2???^?w??q36????? ????X?<+sES+m?nmR`??n!????{o|?UI???*K1?[a?G??v9?...0?G?M?(??k +?z?$^^^0??p?#~D???d$???[??????V??r???+rw\VT;i????3e|Pp7h+???\????*?BIp?%u?Q??:k}??? +5J??%??:?t? +&???u?U ?b"?A???x?]?v + + +V???`???DBb#$?,?'Gg???1??? +???. +??:(???f@%$?? ???_??_?b???/??????#$Yu?7f"Zv??????? SC$Qx????p? ?????? ????1;?P?%.<3??^???EE?i ?V.??o??=N%fq??H?*)??y{?K6??????+?Y{Ve??o??;?Z-???$??A?I7?6?EkznY?N^R?79 ~(?8?o?1?W???3??#????o?????en^??q??J?????wJ?8???F, +?CV4>>>?%?????? +?w i\???L:[Z?1 ;???Kr???=Z?iA?"????A?????? ????;??+!??>??| +apj?n?? ? )?/F&?yo&??7?R?????L????;??;????4?W?-???????? v|?????????J????????8^???2?4R????r?,b??^1=??7bQ??????BOu???1?dwYe??????z??]??}????rw\????h????:`??W??????? ??? +??`*?MXuj??.?K???I?y?????([&??V?Z?,??$?? ?????L??DgBl???go?,???^E+?pM?r??6?b?????g?1vzI?q??3?E H%??F?6?m-?/?#?bf??M????3|?!?F?n?wT?????????6?:??erKK?D)?np?:*^0?????ht8?D?N6HbC})$??qI?"M?????F?&fphX?cKB#????$>? 84_??RpppXXXTTB??v???9??gs?2???n???d???3??? +??s6??QL)????G??x???:??Q???k +hh%h+h1??EQ?D??E??H??O?`?8??F??N?)??O????=?????eu?! ?????#!_"/(?n|?tK????3?D?Y??80?8q??W?&??%?)???Q1??????:?#'??????(????Ic"e?v$i*?`???????p??F?C?@????hC??b ?7Rggg#O????Fx?\9SCD?4???)I?7n?;?t0 ?n???U????t?p??,?F]??2ICI??yH????s??x?_?;?5???????'??2-???N??pb?L??|??m???$????[???????CHRx?Gf"?P +?d??? ????????????UT7??W???E?5H??O;???9 ?#c??f?T???;???w?WZ???_??]J????HXp?G?$h1BH???U$,?ZJ?C??X?????kX???d;x??????bx?C5??e?7K? ??f?q&?????'?O? E?!E????F??0??OOO?DH?R?????`?e +3W?????n9i?.???~??=?Z??b???+K?Q?4???????%7?????FC?l????R??(??3)S????#S%???@)y?n +Rx???'?xX?: ??Jyg?.gy??-0x??????????? !??kK:,hL$??? ??nB&???: +o??1;????kJ?Lp?w????ZX)?Q#???y?????????I?!<????HS, ??rN??b??&HSI?~?R????qqs??{Il\??XOoO^??#v?jLLr?,????N?#?????u???3dy~??F?????!??-??6?{?d??g?pwf +$??A~????6?i??.??????????n?k??s????? ??Lw?;??'?? _/? +-?I???%/9????P&S?%y +%?>??????h??H?x)???????Ipo??p??;??E?L?h????%xR???????y?{?-#??2?b??????+kZ?????@?m +?????{S7?!?D???2[h?ap??- ??^???w?_m??????g??z?EK[?_???f?5? ???RfCH??[????"?,a?;'O?I??R????:)?n?RE? 9 ???x$g???????"HE???E] +B.????c???J?R?>???????????#?X[???t????4o?F?( +??J'???L??&?]Mm? +?? + +RxjcZF_O?!/$[Xr??D?R??? $???MzT????????,?P???-'''a????N??8 ??e??????%?#$?\z ~w?????i??=~4y??)??????n?^X?O??m??'>w???S6\GH???;9m??x????P|??k?HHt??{?!ON^?f????I??ACH2t??o + +!IC?2?u???X??i???L?f?1L???????, at jY?[?T???B???????????????D???????4???rVK/_/RlS?OG ?Z@ `? +n?X??????M???????nM~?B???}'??=???D?i?/???_v??o??#?s?$??????????"??? +1@??g??????|???]t???[?? ???????? +?1?m6;?@???}OI??g'?db???8'qlb???y3?f&o??d?e2???Z%N?>??%??????>??VK???{?????:??????d???H'!x?? ?Jn?E?? +?uI????2???Y??WSV?i'??????????d?+,C(?}X/ ?_??Vg?.??g???E7N??b?R??????R?p? Q?p5 +^Wp???|?]K??n??.6?$??;?dg?o???I?b????\???G?????k%?$|?W?m?????_???Wnm}yE?C??o?[?????R??^~????01?|~????G|???>??$???b4:??*??" n3????EKzY?I??h%OJ?bD\??3"q?Y????]\?????? ?.?????cGL????#?@????????F?l!p??n??;????9?a???RRR??s? ?bA??pkM$1*???l??"g??h~???K???8???I6??+?6y???^?|?+?d"?w??????&??i?O??[??=_?"???k???at???*??" ????S?]P(?$?7>??N"?s??D???f?????A?????gS%+F?B??b????? ?2)%???"I?)zK4?&??????b??l??e????!??n????+h???$!????+?/?{????x????\???????*G?" ????y????u????$??+?? +_?PV??q???1??Q???????-?????A!c???'TH?&???@G?o?q??f???C????L$??(55?v?iv??T?+pV$1????-k??G?]???????&???qE? +/{????Z???z +?#?1?+F?M?? Y??(+???^???[(????o????Y?&)S??S +/?`?9?T1?NR^?Y?X^???)?D??m?i?$BI(HW????{1m>O`?W???V??v?yz?41????f?M??%?p@?/??????H???Z?pi\$1?lNb???????4!?9"b?k<"h?(??y?s??z????o?????}?"??7~????s%????????? ????????????A??e?)? +????aT?$&&bC?????N2?ja??wy??l?i]a7?H???O3s??:?r?P +?????xW?????W[?mr?d?O?K??\? +1m1??????7|?n,????`?8???Jv????:>????.v??7'IkN?)|0*&>??+""?k<P$Y???? +I%w?>k'????????E?d??3???:,??XZZjYn?????8?K?? ????E7?l??c???????X???7?e-???]6???h?X??]9&?lm?????? +?????>??tFS? ?5 (??|?o???????????+????????????^???(U??[??j????]?1O??Po?e2Em?o??T?p9?ff/?O??D??P????Y at QV??h^'?-??;??8z?G?$????? +??Z?????\]???m?x???~C&?u??" ???D?#8?$?#??#???????????"I???O +e????T?khz?r?P +?????|??0~^< "2e? +QPP`>df?????yi???? ?(X ?7?!dE7??????<?~/!9|?~????????v?H?? M\?N~34?f?J?+Nr??x$?H???m????[+??????k??$???k2 ?#?Hb +"83?dz?ZA'???:??4L????K??j??Q?????D( ??B?>lm?~Y ] ??b-K-?fggCp??H, .2?2s????+??k????> ??_?O?g?=?{E??????aW??3Zv????????4?g?-0sm?&?s2?M?c?bH?$4?^???"??gn???????????+???E?_?{2 -?Hb?N?t?7=?t???`????Cfc? ??/??P +?????|?<?????c????Ld?E?????h +" ????n j?n&e?R ??/?g?8???{?$?$???eii?i:m:`?I'???(z?G?$?O??m??nv=}}?SWV=5,?l????Ih!D?H:??Z??`????1_?#?$?? V$??Qo|~R?S?$BI(HW???3I ?X,C?l??!233?V'??"??S0?~X?????m??????E?3???{??D +?D???.^$??I$???n,??=??O?L??I??NBh??#E???o?????????#??E?m???LB -??? +?FO?:????II????H200p????$QG?\M=m?E( ??B?>| ?D^??????===?%?? pG??j????K?[G$X????M??Q\???n??7?^[p?qoqV?bx???`:??{0e???LHV??$??#E???n?????O]?z???'?E????_?$?Ev??FOL'????$:Ih??H.^????oX?F^ +?^'%BI(HW??f,??? +?1??o??B???1iii?:?#?[???aC???????????????q.7LL(???zKviM;?)/??MW??4?HrJ?H$A'????[-?NOb/?!??IZ???[?????9?y?????H????%???IL?z\??N?h????I?I.\????gX?D#???}KYu?(?P +????T?P?>?u??X?Zde?D??(???)??#47??9P ?????W|Y??1??s????!?G?D???o?+?YP?" ?%???I?h???Dm?B??W?}??"??G????O??D???\?P??XIB??YEY??c}??l4?NBh??#?H?h??0?7???|???]o=9?~????"?_?????= +??h.?Z??:I??????L?:I?"??s?t????$??? ]]h??? ??R??|zzz??hG??h!?/B?mc? + ????/?G(??OHm?+$?f???????Fx + ????i???L?n?I?>?(+fO?O>?CQ????P??#??6{? &??c?4?????c?ZN^m;?Y?????$_???6Z???Ws)n?Si~qi??7?$???D?hP$?_z?$?? ??8? +????$Xc?y??&?J??\????L?Y?;?K????FX?t?N??g9&????[nLI?'?o??pF?????NB??^??1AZZ???G=?$=7?????c??O\m=?Y?????<"??W~I&??M$.??:???_ +G'!?$?I??(?P +??????L?"??b?_?"???x ?h>B? +?0?? +????????*kB????;????????3? +?????m??J"??????It??E??[?P$)[??????Q$???_?Ihm?IL??RL?E??tj???G???Hm?$:?r?P +?????kVj?w?????????5,?i???]?w~sTE7?? ~??? <?l??L??{??W??$???????????.????6????A????dgV???0?7l8~ +??c?M???????OI$??HbI')??!?$????$?3#IB" ?3(HW??#???W?{k????5??Pt????E7??v???????/????? ?*?%/??U?e?D???X,x?D??2j?d?G'???P??#|?#v?_?? 0?7??|??khCR?`??+-??m?+??{? 2 m?"?)??{?V^?????%[??????H??6E???JBA?????!!?????Cr?QJ?#`? +6?\x?]? ??????E-? + +`?J? +?.?E? ??????=G: ?????b????o??%qZ$Y??d?xD?_?x|?c??`.????R??????'3e?A'??/]? ?Y8?9B$??h??VO?4J"???tu???|?ADFFF?n?I?I)y???E7E?|?M??o?'?Ut#I?????? 7xm???Sf7??a??g 22Z'?)???e??Nr????Ih? e?k<"Lng??-?????????c???zl?????c??I???9??6N??\'7&?NR0?u?????o?}? +??zhu?H?ES??????$?? ?????3q?7p???7H???n0?8???????j{4??ItG? +X?p?w_??.?????????4E?F?NB(???!????????????c??? +?{???c???}?zW$Y??2 m?"?)?Nn ?$?????????x'?????#???R-??;e??h?????D(??B?/ ??X??[?Y??"??FJB??????????d?8[?G:?r?FP)??Y???yk?H2~F?Irr?'??$GL13)??P?#??????Kv| +f?&??????LB?D$1??1L'q:??:I??sYe?' ????~T4?~&?V?E0???H??G??m??P??.4???Z"`?=i?$/Do?o?6?????a???W???o????nH$? +?H2?e?wG??]?I?H2~F?I?&??$???EQ?????x??4|4?p8?????}??????????Z?s??????a?d?sw?$?V?4"?)????L'?V????v?\v?B??????.m?{?J??ju] ???)???s??(?P +????_????? ??*np???4B???9Ky?bf?????$??w8?^????]??DpK???????$''?5E?I??0)?x?q?? ?O??2I?h?????D(??B?/ B?f????x7?L??@ ?"x|?M???????;I)?`??$?A??Dx?D ??X?V*?????#{?n?F?$?NB????>?????[~~?????????p]hv????'(?,{??????$??*??Nb??q"????????/????{?d?p{?\?p???O"?v<???AA????K.vl +??Wx+?'tzz?P?V ??/?)?Y?St??P??It???U??Dyt???uQ?>?*3z_?O>?nSL??v?$????x??@\? ????.(((?6?v?7 X?p??t?k??;??E&??!???t???M?s:????o?m???9?}??? ??GS???4AO???? ]]h?????n?en?B?w??h???z?JH?????{?)?!?D7?I*?]?PG ???I???? +????????????50! ??GVg???Zaa??)S?,]???;]???\?D??d?L"??O?c?????yyy 7??? o5[_???u?D??<v??o?-B1(HW?`A7?n???!)=?"5iE??%??O&?D7?I?m?L?: V????gg?U???7?i?Bz???:???-(((--?:uj??]-G?`?o?&??&?H$?;??e???z???{?????????x@??????????mnI????c?I?? +????_*?H +??bv??? qF"??K?Pt?-s!@?R???h?%?????H"?nn???I$QA'??:p?s +r?':?i?r%$? ?H at Y?n + ???g???x??a?o}????"&?????JH??o????????: ?:?????~I????>??P +????_*????????c?n??`E7B?????l?q?I$? +$??H@??L??1???3?y???l7??z[??z?0H<L????p?WVV?I??.,??Z?????A??e5??? f?[?u?????/]??K??$??|t?(?P +????_*????j]`?&????%Q?????F?j????p?????????1?7???P? +! ??G?u??n?????G????'[ ?'???YR? (??U?????~?"???Ow??????H?h???S?m?E(??B?/!f????>mI???5??????y]{??H?K???Vt3?a???y?W?:????m????1gU:??\?!?Dk?I?V??U????????(*?!?????u@? +????t?,?? +??4?F6~kv +?x??N?I YZ?DH???2%%??1OPK??:??>????????c???$?w+?????Xj-?CfJ)!???^&bOg????u?N?????????????????7??i$Z???D????C\?????H?z?????~??$?WMJ??? ]]h????[qc???4*??! f??N? ??v~=???uFB?????m?B 1?H?4?r($??u?????:??>????J?{+]???]??;???]???r?$-?:???/ ??o7?)Yq[?(???G? +??I????(????9?Xw?????%???V?????N??{g??(((??)--?? ?>????[??Z"I__??Y??l?bX??8??'?????tu???\F??????J???A$???mU?k????E??????ID???O?W??`?$??&??????wl#?!??J)!????? ` +>?G??UL[???W??K???k???1?????=?n.????s?`?X? +6?????M?>n??Y???0wK???l?FI?$P??.4?2A7???$???????yyy??L?n??v?/??I$^{?5XM\CD?"??0 ?H?:??:????/W?????>?!?????|??????o????g$?P&??wl#??/?a?????X,?y??k?????c)???#&?tJ\?????????? +?aJ Z???:??K??[?}??V?}?????O?]??F??[??????W(?P?B??Hz?????j#?$??%<0??[?$P??.4?2A7??x0????/1//????i??? ??TX$AN?8?_??A$????*???????Z??\}?]???_y???????H?4&??????(??Y?O)IiM7?????#_t??N1?2?????x??)s:??????`??R??C#SE?5*$?????D?1?Hb??6b?P??.4??!T???O7r?ja??J??G177s?????f????j???I???I0??h" ??I$?u??????????SH?H????B? +??)ts +?R??UE)%?????"?u7???%U?Z? +Qn?????#???0?8?m`?`???Bb"?D{?![,?]?.??t??20?;%F??B?/Tq? +B?P*?h E???G????>g???s]=?eI^{?5?8???z?Y?~8?;0?OI??H??B?D?IP*?M>???$????????!^jj*9?)%?]J?M?.st?7???a??>c6ne?? ????~J%?????`b(?????A???)???? ? 0?iH??~?!???????D???Ug??N??? ]]h??c????y?4[?j??J0????|????????$a?HA?d?Q???QaL???J?d? ^$Q}??D???????????7EM????????1???7??E??#????Rnnn?]?u +;L8d8???l +?G??F?s?Dx??z?Z???a'%b?P??.4???G????????d??G?????Z*??????????????g`??H???????.3?????R????N?]???>??????m???F?D??7?JRSSa??Z?p7edd? +5???| +?`?H?v?D?H?oV??i?+?R??_*?gj?#???;??w_??O +??$??H?????X???&;;?#??$u%h??W}C?H?W???????a^%?M TG?N??U`?0 x?h??t?d``?iX???????Dh +????_n????? ?????bJL??W?]????xJxR???m??KC???J?v?wI??0????)%??6m5E9?4???3Be???? ??p? +???????`?qy?\??v?????~??$????r1?V????:?? ????707b???u?b??r??9??Iis_S{? ??$???_5??g????RK??Q?R????)?>$?????(?# ???gdt ?????"??nOKKc>??W?u(HW?????qQ???L?H??????S??0QC"I\\?A?l??N?N" !!|d'?????5p??AS?"???Tn3??]?>???" ????OgW8?!O?<E*?!???tu??W?????RSS=-?'??{|1?rJ?{???}L?UT2????T7H$?\X\?ek??,w?m? P}??]-?p0S?V??H??!;8k ?HB???B?????}????}????4"??$?r?t!?$55?j???v??&??7????QQb????E??$??&??D%??v?Cv:?$??CA????+???}k??t?}k???s:?s +@"??????A"?RJ?????fx??????T?!3I%??D? ?H?P& 1(HWe0?u +??????[??S ITg?? +It?R?7t +X}?U???&1@? +I%???D??z?c??tu??W????[S?R??.0?'S?V? ?D?qV]? ?Dg?W????7?? +/?dVeN|`b@????DRI$??$????1$?D($?c??tu??W ?}??f??NX4?<:? ?D?qV]? ?D????????N??I%?*;I%?Ah?K[z?D??Db P??.4???}k??d?d??x??QITg?? +I?? ???o?5* %?l0E9I*? H$! ?$ +?$?? ]]h????n?????ur?O2I??8L&!?\nH$Qq?U7H$?7B?M?F%>R?L{????R?:Q*Q???`P? +aH$?P?q+1(HW%a?k?*&??4????:Y!?D?qV]? ?D???? ??????T?P?V? ?H????? ]]h???9??0L?v?]L&??d% ?D?qV]? ?? ?A*???ARI??Z~????!?$B!???? ???0_???w??m]????m?O??mI???;~??pm?u????????PW???????$e?U???l?*???]  ;??? ???"?t????????q?????????S???$???$@????F,?Ib;bS ???????$X?H???CI?s???9????md??9??J?????~?4????F8UR I@? .?tx??g??@??? H? ?_#??$s???o??R??}?H.?$??o???H?'?@??<9U?h????9w?\?JR S?58?K???)8(?e?"I????????`????????E?-[?ltt??W?q+??t?`??bN&???h??*??#?#"??J?P@?h?gHr??x?o|???????P??[?s?E???f???{t?????????G?s?{??g?i??O|?n???????$)7?T )????? ?+?KZ??F????98U????? $ ?????ZCCCKK ?v???zzz???????,YI?+ I???????G?m:?&?N?8?)????4$?Y???z???jkk?"I??,.?~\?q????-?'Qn??N?(????I?1g??!??e?H??AQ%?s????XL???K????w?w?]??H,?$ (?????F>??R???:?tww??? + + +A??????4??]w]?$ ??t?`??#?I???????Y???i\[?LRH?.I??{n??<#[??E???f?1?N??~?????VD???$v??|?rN8?????!I??*?f???bQ??1?\??tqS???58?]?? ?C? +UNPn?q???s>?y??tgggOO$?fY??q+? ?z???9??????t?v t??GO??O=??Y?!???{{{{i?D?Ej"??4$???????$qn??L? +?????%????4\?>b?XBcO?5????????ul Jq?aC+7J?#??J,[I??~:?>??#?-???s/?R?}??-<{???>??|?????.???$@????O???????j???!#??%_a?$???L???>?U??\??????g??l? +?4?_?U???$?K?(?#?? ??kp???tV???ym???v +??3????HPV???8??i'?g?u?#???Z?6e??{z???+?9??{N?D??,??c??-???~?VJlNPn? ?t?`???\t#?N?M?K???+??? Z??=?wj???/+????;??tk+Bt!??zT$I?o??????$?h?"z4~vv?dq!??#7w?kp:;;????s??9?p???$[2 +??????b?,??'?)?{w??`E$?K???????? g g??L?????t?D??p?zWu????h??????w```xxx???K?.]?ei6!?-?b???? ?????i-?????#?%) ?????J????R?DGGK]Z??????\???????? H? ??o?k?(?imm?3]?""S????h"??X8pX????Y?>?? +?????DV?l2?1??p&??8X??"?5&V%?vO??????????????``@T?? ? ?????ah?I??D??,t???'?????Ys??????Y??O????G?$?|-?[??@?????k+/???????????iE7?Pt??? ?5k????/|??c?????]k?}???9??U??$LI?t/??U?$ ? ??%?-????????????s?????^??V|??-?A?p?!??t????%?F"=???:?#Fd_?~??iSSryR9 L???e?$|7?;?? i????V t???b +?Y???????H???????1???S?q??n???i?d?|??i?0$?`J??????L?%?$`??#,???MKd[??8J???????x????r?]C?X?d?HP@??!???d?C?f?C???%?????????}?-?[???@???>tz???d?F????,??'q?????+WF&???? +?)I??????d?/???r?m@? H? ????k??????5???????Cc?#????n???????(???n|?x?Rc)??>???????????o +I(?????$????MK,m???+]#?K???5?n]?v%LqH(????A,dHsF???d?Xff?!r??D??????=??????B????693??B8?6?lB?uTf??R9?8?0rI ??F???n?z??????7???p?Hr???A????o?i?? +]?2? ??o??9?#T???g??g,-??????N?????S +?.??ln?????WJ?:bC?|[?????4[Bg-???m??'?9^?????EzI:???@?V0?|5???/??6?I5????uQF?p?SD/kl[??\h[8c?(?lE??9-D??{L?^x?)??~?]w????o????????)A??IZ?$?d?Ht0?????$I@?X?qJ%???????w6_?U????????3U?&?_???TZ???8?c ????1???n!????2? eL??mel}??'|H?XC??,??C?+?B?lE?h)"&d&s?p?B6$????5*$??$??????3?? ,?yG???M???? +c5????2v?8 +?Y,^??X}?Tg??-???????U?.?o?hA?K#????}?$?39m??'? ?4zU?q?e???\???0??7?db,721????:? ???p)@?$C[v?? +2????d?+?;3?C"????\????-5?????o at d%B+?r??3??Ha?K/????? ?-?!IrI???????5?X???$`???%??K??[F?\??0?h???L?9ldv5??31Pn??;??  +?~2dW?xd?{?l?L??????/nfb??r?!J???F3??????(?q?"E=?????Oq?G??h? +?;??#?M????FrT???$?????8p???+????t:}??a?H I????? +D??"???V?BG?5??P??????5??Bq?:??Z~w?7F9???Lt????9ppF?????$?????a??Y?pzINa?I&?kZ?"7D?n???l??qM67`y???9c@??:?D??E!??O????????????=YW??0xS???#?AZW???1nrB,e?0!JrHKKKa}?o??? 7q?M????KIb?m???????jzs???7??B??p??D?m??'s??U"???U-?h??y??\?????2??k ?z;ab???I +??74?]]G??Gg"??PhW?? ?????A?:??/Qn????H??3?3??^4e?e???W;.??R!I.??d?8?????????i?Z??5?#?x????r??}?X?f?H?? +??????c@?0??E?rz???U)?Q???9????#?*?xYc??Z?^?e6z?Q9? +??????$1K??E n??N?+??t?:]? ? ??n???;hw?4xK\?;j?{??????? v??qiBf(C??Z??.?$@????0{????I*?U?M???4C??BYL?!?B?8??L?@??O?????Dq&o*?D???~&9Cc??????[)??'??udIR???? +??$??|0"t??"?=x\?? ?Wx???????cd?h????g??|??<<< Ib? H? ????5-o2+ovO2???EE]Eh????]1eH8?? +I9??$?ab?L?0G?3iiiq?&n? ??????_VO{??5?????$?LWF????d?M???I7??$??9,-G?????????n??1???>:%d??,@?$%?2???fBpn??/??????w/$??xA?^0?E?.?7?????d??@??B-??_??c???d?.???9???F@?,????L8?T?L?6?SMX?p'X??$/sb??????S????q??????w75?oj??L??R???f_M???&I?; +97??`1-(? ?; ?????~^of?+???b?V?? ,?f?2?$?*????61??s"???? +????.? +?{???ya?????????s???h?'e??lX? +Vv?C?????;d??H?{?\}?+ at p???????H??z???.?S._?rx?;B}e?;t?(???xEh???:P?%64??*fC?}H???? I('?h??(???OD? +???Ha?"z????6l'?6???,?? ?fG?f??o(?Cy?Ew(?C?.?G????`???69?$@??? `?$t??$????i??0 '????Y??Eu.???????$q$ ??t?`?K ?bdO"??I?R?I:?;+V??7Wu?O???5?u???7[Y?Q[=??w???H ikk??m??% c???.=????r?C??i??\???4??kv???(W=? +b?y?}tO ???oi IPn?A?^0????+&???b?x?y??\p?????t0????b1???[???\?xa?gfH?$?K I????_????+?)??K?t?EI????U??#?RR2J???IT?7?C???H?H??????NY?tttp???q} +H? ?$?????~??????]?????? ????KC,?F??/l??~v? +$?_;??????>?????$?????/adOB'd?h?lyC4nk4????W L?? ?"?R??#ac?0?:??d??P????uS?#r?M?h?"???@bG?%?_^9??Z???C??????A?C,??? +Ip 0?@???K??????c??\y??w?s??%?Y??????$y? ]/???GX??NnQ??7????D-???PxXm?????`???k`??I??(F??j_U|s?s?T??\#??z??P???3??$????O?0:0x?#?=@;(?@ ?O?B??o?????$??xv?gU1????4??W??????B???@???9 ?{?E??R?W7?q(d,7?hEv#??pF?????t#??M7u t(?#?T????[????C?x ???????fCB-uC?#-h? +?IBK???????  + + +K???,Z?h??e????'I?~?!Fn?????W????}??c??????f???WH>/?~???A???? ???%bw`?R2g????tf?c??Q?kK,}??+??"??2[??mE&jj?Tg?F?:7"RG????# =??@KnH??lH??????]???-?????$ ???e??h?D????^?\H,X?`pppddd???+V?(1Ir??sW???{??????C?~?'???ih??L&??;$ p?t?`???-??I??+?\???c?#8=????????X?? Q;b?D??Lw??\????m|???k]?:?{??????x?+kxc_?#J?,?]\I"????s I?????b?>t---??????+f?$???}}}CCCK?,)1I??????y?'O? +????188H/|???;???&??8/?~???A???Y!;?RB?^cc#]???dGG?P%???u???u +?w??Q#?SL?Z?x ?????o o +?6??Q;?????o?+5??? +~c?MHMM +???A??KI?C??1Pn???/&?D*?j??????????h__???P?I??>G/???3?{h????s????|p9o????!I at N???_???DI)Q?o?????k???(?8??6 ??c??D???$;2?zC4G%???q$?Cjv?4?54mjJ?J(??8g????MjD???,c????+??p?:???(M q???r?Q{`??????% 7$?u?S???????g?@?? H? ??B?RJ??8Y?p??d2?????%?$?ok??U?q?M???iDo?6\?P?VO_O?J$&????D?t??F???????eW7??> ouDE0$???|?"?p??[Pn????!$???N?8~???xF???MCB3?'%Z?B?? H? ?8??X??%,Lb??(????---???{???5? Q?Dd%ReeE F??| H??[10|<I???????'?}??g~????|??r?3??O#?!??$????+$ p ?t?`?ANU?rK?W? +?V???op?p r???!fb?D?&+?K??1?MAA???0?0??GF?????~{??9??????;?x??????????????!X??6?g??^??????????, +?8$ ??t?`??K??QJED????t?ev>?R??Ze $ ???????o??????????}??????????????O?????~? z????????w^x-cH??emH?Qn?G?????????M???W????'^|???~?1$??, +???$A?V?????3??H??????b`?{???W??x?????/?y???????S??'6~2?G2%6g^}??????!?.I?0p ?t?`?A??0k???c?}?o???????}??9s???4^?u??sz ?G?E9?qH? ?z?? ?@?9z#??xK??/|??O]?} ???y??x????Go?[(????_?????[??2??~??kSz>/?uj??Bz???o?PT?T? +????4?e?????????|???)%??oN???o??=?E?;??W!???!G? +??t?`?\f^n?O??q?G???n?q???????????3F??5???????O????? 2|%IYW_;?ozQ?h*?????|d?#?%W?#???????Q????????? /?????2???9%???h?dt??:8???Y9???)?x>??D??O?????u)I?vBh???C??Z1??$??YZ?Q?f ?w???%?~?I???>?a???????1?7???t/I??Yk8d???(??$???%????@p???9%???0??pKS!G?f#ay? ??lZ>?_-??e?j???m?m?q??"t?_?y?c|?q??m??L\J??!~?Y??o???#v?[>?|JL????f??$'?7????;I??Ei?|d?y2?R-??$y? ]/??Jv&?mN????9x4G?61?9?T??????R7[??,??7I"'????;??W~???D,+t?vp)I?J$gO??U\?9??8??????C????}???L?h???QI???8???R?$h? +?A?^0?.?n?j?( +(I?,??%??I#??Ps???'I??i5??k?'??$??P? I?%?!?+[s?Q*UI?-?A^ H? ????[D?8|?n?????a6?m??? +E?[?/c??$?????o*O^???52????C??$s5?7???xJ?(???????I@A?n0?.??$v-A?z???h?v"r?h???=I?g??U??????=?}?yX?'??$???QDZ?x@??;?J???}O7s5?7???,`?P? Ix?w???Q*UI?r?????@p)v??????0o at c?*HRm?(???????Z>U??D?E??\?"??? ???????|V +v?+W??O?a????C???#?????+?7n&?D?|P?? y5nG??????T???[A^ H? ?????[?$???#'c???n~VD? +mB?????$1???A?l)????t?`?\J??????d7.????xK??/|? ???? ???4????? /?????Rb?[!I +8K?C$~???hA???g?F#??7??}r0?6?`?????????%????@p[SBa??=,?< I +8Kv???$B????????I?(??(?N ??.h? m` ,hfbb?;? ? ?l??`2??????l0??b???&????r?[?S5????>~??tO7g? ?po???~?^YUbQ2$aMz.??UI?????????1$??*2N??TbQr??E4?????U?$)}w??? F?K???[o???W??????l????}\~5xIy?.?=~??????Uw?W>$????M?O???>C_U??E??x???>{??ON?8?5?^ +???ze????G??~%7> +stream +x???y|[????.????Z??????&Kr;d! JX? +N?R +L?????0???C;?)R> +0?? ?Kh;M???? ?yK??'??@i'L?03??|????{?t%K?d????wq?z?G?K?7?}"????a???? N?H$?E?l?3?&????E?w??M?????d*Iep? "Dc6$*?H?8a?&??N??Y??"??l +??S5???$? ,1l?k?bDw ?JA? -B? .???f?G??;?Q?8e????8^%?#q????E?F??????????? +?zR??7^Kp\???M?????d*?2????=??~??-v??Y??n?`?9.?9W2'pf??? lwwWWggg??=????V??%??????jj ?????b?&?~???@2I?LV:v?:o???~????p??-5?????q?-??W???8???8u??m???`???^??]?r????p??v[fY??T???^"?c:1l?j?bDw ??+???D??????@???g?j??g?f1?G?&?qw?????r??$f??b`???uy??!??&NF???????Z]V???b? Vo?g2U ?????H&??? ???xL??9?"W7????|#K?I??Y`3?f?+s?E?$ Tnw?1Bq??",?]1??b??+???I?]????$Y?h?F? T|?H?U)-????[????M??>? ????p?:???q?1???fl??0?G3????,P#Y?1???@?J,???T????T?C??v?E?i#?*??$S??????.?N?&??J?cP]w#????@[?B???Y?3Xg??????g3?y?y?, at 9??,???T??Y???????h?F? T|?H??Ju|h~?M????P??t/<VZ i??????NBtZBK?/??*??w?V?`?.?h?F? T|?? +W?d?R???z'???'????????t?L????;?Jsyt&H?]$B?8?Rk???7j?r???a;???d???;???t???==37?X???)D??????w.?G?j??????N?1?c??3AZ)?t1?v j?M????W??E?6?+BB?i#?*??d?(??????Y?C9 g`:q???? ?}??:??I??c????Z?i?tZH?J?L?5?%??=f?? ??n/????|?OzJ?8?M?.P?Ew ?\i|5.?>???o,,?8??B??Jj\???9; +???y?n???S????r??5?F ??F?NI2v( +????P?s?)???6m$?@???,G?k?\?.8o+?d?`S?????H????????z???]??xJT???bR???I-8j\??????Zl???M?$?A?_???Ox?Orl?r??????)U??/??c?n?L??2gm?????r??>;;??j>????(???I? ?? 5???D ?b??L?O  +?5??d?????}&I? ?C?_??U8rk/?O,.??B?!??8??T??y??N??iS??-V????^???hx? a????k???Ri?:?j?W???????????c5.?K??8?NB5#u&1l?u????x?+?je?-???M??3??eI?.?c??-?)?Afg???f'8c=??u?????=???}??]??V ???z1l?Y??ew?6?RQf???M??3??$s?T? ?>y??4G\g`=???Y'?#???????j?@RX??V??2??X???7????_??'w??ic?v?L+*?k>??k?x??=?A?? b"I1H?)??!?? _?l51l????p???????7~??g????m?r7ml?n?)?R?8y?x?(???????^N^#Xk????Rl?SCd???z?V??X????n????'/]?????z?zU???66i???L?Y???B?< +g????x/9????A ?NJA??:a??2?Qb?k?74??r??????cSkc???????n????>S\???Oo?;??,????"???I?8??????5d???Yk???zYB{*L ?b??????????wLNN??W??h/?}e|,<?E?=????(??1%ml?n???l??????,??{7?N?5g?! ???@kl?-???????? +z???54:y??G???? +? ?G??8??3?A7ml?n?*?d??????d? Y\x???3"\??k?[?$$[????????????js?????c ?fj?C??--m?????O?J?)??M??W???udz?@?4????&??`s???p???~??u"?Z?????z??a;??N?VSc?y[{???}??z??????F?>????/y?M???????ozf????dN????). I2??(??y9Z[??N??i????vro?j?RS[?jj??v4???F?????? +???%o?ic?v??.1?[?o?;??6?????P???ka?1?p +Q?VK]"?f?.e1l??V!W????4???-z?F?3Z] +m]??#???????",????~?J??x?19?p|~????0$??????,??g??\?e????!??e?E?2?f??i??k? +?J?3Z???"?q????R?6ml?n??$?o?M???kl?g?Z?k\??????y??????\?????p???`??4J|"?R??1 ????>??66i?_I?Z??k??2T??[86?? ???? ??5r???O4?">!???q?h]>b?N?[0?*5???#l?6wK?@?p??A]?7ml?n?"$????e?o?p?X???p???<?k?5Wz?dqH?I??;?$?`?an?????9?~~?????6ml?n?4??DT?3???zv????k?;??"?>????<$?k?T???Vj ??d?Dl?QS?jL????q??K*5n??&??KN?L?{????.???q??Fc???`??|#?nd??F?~??????r?\q@??J?`?UZ????s?????&??KIq?mH??,.=?{6a?!?F[??x?`??V??m??????-6sVI`?p[?????'?? %????&??KC?PY??iV??:??????ac`?Z?9?-"ju?|#?w?DE?fR?}Arf??\%)???9??Z???w4rp?????6ml?n???????i,???w@?H ;??????@<I6???L2?B???T?KV9a??@?M?co?"n?[C68l l.lf??A ?? ???'}??0*#l??m??(s?? +J???{??_s??ic?v??'???????>>?3?h,?d?8?5?\"? viI&?\???J??Bu??;?;?fj?6i0?U>????X?????? n?u7?????R??I?} +?sl ??e??"?}=?D?{?????I?D$??]bJ?Z? !MMM?4?W?d?v???????u?????6l?????G7D??C>?Y?P?{??????PM?p?66i?_\e'????l?????;?e?? ?92`???[???g??????4e???'????L\= z#W????????;)??'?K?A^????'?????? +?8n???M=????R)??M??M?Z?????"K????3l??Q?C?????z???-??J????j???;?@4 +???t? N??r? ???>km??4??'?7??5?-(n??&???"!?6L?O-?z?????3c???? +g"v+^7#L:2`????[??tXgv=d?UI?2?????[:?}??u???/?????? +6?&?]Xq=?7????k??? ?ml?n_j?M???#?v ??AL???n?vl??????J???? +??#[i?2?~?s|m_\H??????#3?????a?i?????F?;?>??ju4v??r??9j? +?X???????A?k??('??M??K)?lE??;???c??c?????b?f"?? '??????`>???n????'?[?s??L?'w?>0l?L????.;Bw??Q{???_?2:1????:? :??????H???? +????:?&>??K??????M??K?,&{??;D???`_??? +? E????!?7s$uo/|6???????? <sl?5?uHE`???????FC-???+|Q??% +??}b?`D?x*?????  F .??{??????4??????)?-??_??td????eA?V?.??U??va????Z???gd?:?Nw)????I?}?r??R?E?=??? +??cQ.???n???x?c?? ??'H???]?'} ?::w?D????[1???z?;;?????`?????????o`pxd???????????+??$?L?????[????V???F????I(????5&??w?J??_??@?M???')??3)?l???> ???f!A??cl?x?Y?\V?}F?????g?????~??;L??????????].''??U??x????[????o`hd?gw???x3?k?;2?:?-??,/?o?^lb?????V??Lab???E??S?n???????/?x?66i?OJqdI??L?Z????z???? ?y???b??????U?]?????????[? +?u?;v????l2 ?? ??d??Xmvg??????????^?_|9??_???;?N"????M?;??&]????????20???K?????u??P?????-??? \^y?x?66i?OB???????dw??<.?y??j??.u?p?? ?)?7??GTp??!??:w9l?a????'?F????h4mM??Vo0?-6???C?? ????-?u? ??????i?!}?E?6???F?_???kc(ZK;&??M??$?Z??>??N???;7??? +????O=??"l??,????????/?Mt#??!tI~?! %??m??????J??????m???[?{?????yp?S???^?*wp#+????wwM ?????6?? +???A\?S???]??{?z'???$??a?E?????&??W-a??mO&U?Gvx }??????XD_??]F???#?e=???????? +"d?D??U?9\UY|?,bw +???n@??ozW0???B]??P?gK5??;????P??P?w???QtY????F??j6????a??t???s??G??Xt?????Q???B????nv,?q???9???????VIhu?L???\m}a?{?|H??)9R?66i???x??+iy?????????PT?A.??Dk?(8???????H??y?h??4.?Y???}???o ????z? &???m{??o?u?q??&???_??'y????p +/?l(??(????Lv +N????|??h?v?!f[Lzd? o?'??Fo??|???! ??p]x???_??Jm?H?????O??!??GO,??f??j???g/??Eu? +ml?n?g?????h???3?a??????????L?P?N???N???@O?????UD??K?,&??P??4C?c????u??FU???2??????0????AI9b?T%ShL?????????3?S)??66i???0?U??D???c??!??b#?z{b??!?%>???O?b??H2?v?A'???a5??Fo????=??????w?:SR_?w????hw?M???;?69??W???I?J??g?ic?v?9o???"f???????.?F{??#?l?x??v???X?m?e>?)8?k????sYM?0?%?U?{????&[}S?gh<???"?? ? ?L?u???^ ???????? +?$???G????7+I???_I???~Dt?????!?a??`$? +???7$% ?s?????-???J??????Xn???? +???+????5?t??#???p????x[?m??jw``-?J~???$ml?n???l$??sO?????an???i?#?u????y|?+,8??o?X??!?G8h???????w/8p?l??????X?S??>=hNe????G???????3l??R??????;??????ic?v????A??:?????????-&?bd??????R???*?D6??G?KS???~8?????W???;??]k?{???c??%???z?}YP??w/?|?@?m?*?u?a??d +????[?O????6?*?hc?v??e???Xy6???>?f??.??o?, #??hU??%+k????t?w??? +t??xhS?0?????_[?P86?i?p????R at d?]?C?????Fk??4??}?o?.l??5u??a|??$5?M???O+?,?=?e?g???? +[RtZ?]??#?????|?S???1?_? +? +?:Z?????q???jj?????????K er????o??4y???>I?'>?.??&??f6?r6?@??=Bs?p?ie??fL?o?&Fz>?Y?? +m?)?+????? +??8(yD?? +????????82K???M?uz?4??P?&`k +??b?o?(?m????~?????8????l? !?6 at 4B?2?A?j??????????????n??b????^??P?m??????m???????C??u?A?2????%??? +?>????$ShM????0k(?H??? ?v????|??O?>?? Mz??%?&.?-??{u????L?;/??`g???6'HJ4?u??????u??xP??????+??m ?}t??P??1??Xqv?g???t?k??&??????y!?>????5<:??l?*l#Dt] >???S???J,r???!??+??? +8??dH?[gr4???????O?p?? +2`S??f5??a?????V???F?>???~:v?66i?? ?#???~gl?q[?u?5{%b?d??*+?%'?? +?/????K?D2?5X?m???f???W8n??:????????m????=??`?k?o????g ?I?I?ic?v?X\??P???? +8?????\6?FH?-)?K@??0???l?9x??pPb??? Op?? ?`Q? +??????d????? ??,kn???s4?sS?&ic?v??6d}??(???Po??9H??b??/x?????"C??K?C8(1?Z????&?m?R[????9???6+( +????xN?????????n??&??9h???O?K???m?&???2?????W??(???????c??M?C?????r???Pq~??????j????? R???6B?X\G7??ltq?M???K???????GK??:??66i??3m???3???}?]????n?Vn?? ?????W?N.?????ws???H}K?l????6??T???h?7?P?????^???????????-?MQ?+{???Z?m??n???3Ec?m????>X5|??O~?????h?????K?~ya?????!????{t??jDe??????RC??{??????x????[??~.? ? x'-?5{????????.#?n???~??4?U3??2 +??? @{????s&??????m4Z??? u6Y{$j??8sP??]??????]?v%?~?2?JSk0? ??Z??h???`0???=??n?7?+????????????b??sF??)? +???7???f???i1?L????^?????w???P?mo??????j? ???^??m??nE ???P{???_Y?j??2???sB]M??,??*R.???a???%??a???Ylv{???????????{?????qX3????n??x??W_s??????^S???W]q?????`???~}?/?W??nA???U??D??9?%|?B +`?`?s\?G????GN8?? +???vs1??/l????wV??ju~?4?r??g.S???s{=?T??????????F????????????{E????? +Mm???????k????]??^??????pO???p????y??x=??%]+?`Cg???????????m?????wQ??AQ?pl?}???v???f?????/~?`?/ !???J??R????????]?mNOS??=|w?x?]B??pm_?? ?N???/?a?%?????_???K y?q???k?????N????]??%c!??aN???"? ?(??,U?m???????JaC?i???_??N;?X????P? +???9O?g?3"?Km?s?64#l#jg +5??Zo?9????????E{??%??YmN_???? +u?45$b]A~f???3?f_Z?Gw?V??h?Z?&??????>?C?_??q??4?h2??F?7???n???????B^?^7???>rt?|?]j?5?&????0iLJ*?fo??$?????l?????>?Q??????o????M??w?xl?Z +?.l??5?e?L?????3?+?&????????T*y???&W{??cI?zf?d???????*?NN??o??^?[E*U^?.?Wl????m9???)??m +#??????Za??;LZ?J?i???v?o?9????????9??P/?)T?S?V???9`???8?5Y??g?\??4?o????[o_?p3|?d?1?+?J?& ?k?#??Y +%? KK6d? ??2? ?B?h?$U?m?;x????5?G?;?pl????e?S?v?`????dV??'m?Km?s?Bc????J????????D???#?Yo?>??YEp????R? z?????? +???c\???$??m??? +#u?8?'?!?+???9I?%?aY?f??M????????w'Y?|]q?+V/ ?m#?de?IO?K????N??????}?Dv??-?R???????{?#???{?[?%M?8?)I???????'?/?????m.%?? ?SBl;??Z??$y??}?xG?ur?d? +??\??????_???;o?????6???7??l???C#?\Z??f(????6+&?dos?Bk ?????\5'??{???yHJl?G_q??4}_??$?x!?+$:?3I?J???|,??^??fBQ???+\?:w???G??;????????b?w???g~???????[x???$????h ?%?J]?'?7Y3????w?z&??????N???6??dQ6a?PdDQ?]A???cqd??b??????4M??Mr?&????????7?{??;????p????~?m???%d_??W%3???22????T??q?J??t???"?w????b#'D?%{>??y@/???P3?6Z?X?i???p5[*??Inv???}=vgx_b?????%d^???j???;??q7mg?,?g??W???[?Jw?L?2??:{??6???B???4?nmB?f?????=%?{+?0kw????r|x???a4;?B??nkg!?Z????@???B1 w??6?3z??8p=?u???E +??T?.?I:I O????9?!?O?????v???J??P?? ? z??x$????J?????? ?&d]???y&?!>???lX5mg?Z????yqw?.?? +yj@??J?7 I??nP??H?f*?&?m??????? + ??[{;>? ?c????L,??,]6?^c D??$?c ?f?mOj:y??!6?q?????2?A?#??NDq?n?5?g?h?pEP??$????9[U?)???ag??9@??T? B?-????????aT??\??]??? +=?????+/'Z?C??*V?g?????dqE5p4??C???I ????????Ss?v?V??B?|??[??k?-?.??h~G~ +P??zIY7&+?&??"nV?b????$?????? ?????8???5?h?6tVfj^?i?????*U\Cc??E???E?:?m?[6mC;???q??1?rlzm?va6k????????K0? +?I~??????U?X?????s:?0?Tf?r,s?4m?? `??6??$?????G??aj???c??a??-9B??i?'3?m???????c?? 8??h;??j ?te? .Q???fr$:? +???????7???????"???;?s6;$??]????H???8?|62???i?6????k?#?|????u??e(E?????????j???=_?E?!!??hZ+?{+?].??D????U?x|dtb?K???3??? +G???3?sF6[???H? ?|?6????????$m??y?G5xlf?? +??M?N%U?hf?Ml??0)?y???????u???6??!??X?|Zf]?>I??C ?Ym?H?l?p??hd?&?9?;gl??Yj?????M?I"3???? +??????G5r??|???t?(+EL?6'?&?Y? ???L??_[?gW?\f????do??y?/o??3?c?`??S??>?-?\??{???x??o??%?CC:Ig?j??n8?&??h??ig|r#??m?LJ?????_p?v?:??R ?&???7??????OT???8x_TY?e??????????G?#? ????i??f???uu?T??0=:??????c; gv/G#?$?;j??h@?&)dr????s?????i????????ay*?J?m?2?sl"K96y??/????(?????2???TXjoI???q7???f'h??? j??r(?????Y??c???N?????v@??^?F&?+5)???U?K??? +;&?+V??{{:?R?Y?????/?&????|0+???H???>???96y?I?zs???tZ?????????V??=vj~{"??s???? =??cT?????d???w/_=9:pw? +? +?T?3???1i? +Mm?? +H???$???[???=??7} {?\tFg[???i?-Pu???%?TYy??h[?cSDR +?`?L?T?+?J??????m??-?????? +?}'???\4??"P?Dm?t??H<?t??2?H??1??dm??t??qVv??6??$"????????,??n???*=?????J?m?c?%}??????/???>???A?DaE?y?????y??x<????????6??T?? Q????3????<2??("gv?q#?$5??5"m??????K????h?n?WmuL????y??b?+z??X?{?.Z +?????C^{?Nc???P}?m??hw{??N?????????&?2??*?/?G?h5uy?????-????????,>r???????@E??Bf09????Y? x?m?N{O??LN??C??[ +)P-??R*?=?? ???????eiD?.?$a??v????iZ?????_~?sslj]???Lva????PO?A?Rk +?"??L+?????E???R)? +?5?%Y?? +?$???1??U7m? +I?yT?"????y?E?U???nS??iD >????y?&?L$Id2???????WM?P?P ???M???dc?$+?7@??4m?Ytyk)??Et[?]????-???W4???hc?p??x,??y6???q?,???U/??`0!J?Z???L????E\W?)?~?K????m?a"o,?;q?l?mWe~????c?x?X?`??b?< '?????>?a?4m?L?i?????0???????WU?? +?MG??????????Tsl0QO??????PiM??=u5??PT???I??? +zQ?!I?????q-???-?????Y???4?D5A?????Jq +:?T9???n?]?`??$???w8%\V%??b@FG?y[)???Z?S???2?eTN?MN???????S"~gN??mW???TXs??j?8??s=?????????????o?L?8n???5? +H????4?E???6?6??v??+A?Z?G&m??E???jc??K??2??:I??YtfmL??]????L?W??:????e?x??vn???d?M???N??)??w&??~??x???q???h??x$:I????????Y????e2w??$?R??v???3?Vi?m?W??)????????????jrl2i?6>?q'`?2?B?}e||??????Y?|?p X?`?U-?a?mW?????$?a9nY?I?;??fo@&J??h??G/?~??M,f"Q?4mC0???FR?"L??????^?{???\??y????!?E??Z~???]??$??v?m???????c???k?\|?? +,*???!I????6??j?4????W?}????%?8??=???????2sl???#??Kxu?VC9??6?@?"z?%~?N??{?E????? Ii??:???&o?x4?F???i??W??>c*?,),d??r yK??j?4?????h??w????W=?T?n$?f??e??A?cC??#p?????????:???t??? d?Y!?Im?6?+9R?h*?>?=?/y???oph8??_?????7?KJ1?(??--6???4?6b???x,z???\z???b???qh;#????O?>6YW???q??x?????????? ???CW ??mrWr??6D|R????}???_???sX-6go?@8?????^ ??St?]?I?6?t?g,j?i???H(4F??????-=?&%?T??v96????????.??~t????EY??r???]??$?o'??;[~?z??E??B?:4*??????F??x?????{?3???]8$Ic??v/h?????????????O/=???-???h??6??????[???A?-?IK?z??????#??-k{ ?=?-?&y%GHH??????H????S_????????N}?X,?? +??/?,??8?????Bb????M?4???]&??????@????D??Kr?z?'??1h???J???B??SK,?!' j ???? +??gG +?Jyp??? Q??c?I???c?D?@?$o?]#?q?|?T?5u??%[?v??za~1w???D?Q???????^?&D????g?K??17??t????dN|c?6???$x?mtx?o??w?[???6Th6??sxB?\c?8?}?????}e???7??????$[??v???F??|?D???:?D ??6??n?+.A????:BB?m,?D???s??x1??U???? M???6?UE? +Zl???[???"?iL?D?et??a????5N????TRI5(-???Z??R?n8????????[m?NR +?/?*4F?????W?G?Jo?\?s??$??????$b?Bc???%???pa???V??????C?\D???m????4? ??i??@?#? L??p:??")? &_n?>S{C??+? +H?G?????2H?5@?????#A??U??9|z????m??G?B??]K?N^U??h?!?$???T???^?v???7?|?e???7?o,h??!????an?65???d2?Rk??]K??+_?I???h??di?-??=?}??M????c??@???? +?(uRK??h??3??????^e???m?????????????X[??m8j;X???6?_~???????????nT?????O????B?????z??v????????u?Rn/|???7?????[?????)?G>??_???,Q?Nep??? 4=m?>u???o??j?sk?'G????z??[{?????n???u7m3?8"?:|R?FT*???LcvzC?????I?j??DL??YH:U???^~???h<:?:-Zy?x???1?zs????????7??a???Z????.?kQ??^?:-????2??2*sw?}?Dbjrl$?p?+Yg??'qK????m???;0<26?>??C???????J????3??U?o?UG??P?R?B#?6"4?<}???C^??S??? +??>0?????t???<}?`(4P??p|G????E?3 +??~_oO?Y??8?`m?g??d +?Jk???=?M?????????X?'I?K?K???????&?%\?X??t'?Hd????q?J??&7qK??J?m??B?@?????MF???n??{,}fj<>???W2?x??X~ ?(???d??h??`??,??X?]+? DT?R*?2?H?I?6?????bq2Cw???i?? +??????q?2??D?????z?C(?0??Q?K$???????8?N??? ++???kR(io?I???'???DLD +[?? +~|??? %?]?.?_???K???4B???h5E????"h{?K??zO????s???z???au?x?S]b?/????z? ?`???????.?S??9?)?????xab?k?PY?,6?<|??mg?????[?1/8??x at bx>?????8*??V????P?>??r{I?7???K?%??|??s??+???????hrA_?lJmzTR?@?????y?????|??u?3S?L?+??W1??d???????}????]???6???O?Kb????????]?N????????x??mP`????? +????"???^?/??????????,??p????T??ka?}?????A???J +?k???$??8kR?de:Iw??Jk??ej????t?E??????6I?/[7;?w*?a?b??2???g??9\3mQ +.?R??????U7o??=/TE?K?I??q??X??&ojWH???4G ?Zz??1D?[.??? +????/??n~z|8???????????A$?t6?`04??y\N???$=je?E??????"?W? ? )tu?$?J??????? F0uzW?????????!GV? +?G????^???$??5? :?uv?;??N?y{w?k.?F ????=5I??_?4????N????$??D???????r+?????4??????????????Te?? +DFW?YX??SW?RN?w???/?N? +x?jhRR??m?I?+?6gOO???j6????FcVV?h?W?Y????j??iA????T* ?2??%?V??F5m?ur???? +?8*]s!?70FL??%X82:6?????>???5??fum{.???_?G??&??R?X?3?uWB?0>???`?tG??b;I??@(?????T?????????&X?N???)n?????B???}?yvK???X@??y??? +???? :;?G'VO???_???q??MP??q?? +???[?07;359 +???Q#??-a?D?,?+#p???G?i??.mT???V?vQ=I7??L ?H?Kp35?=?@???3o{?^??:?u??????+???O?AA?V*??y?\??@ )&?'? +'Z?[l? +??n??z\v???!t??~???6u?.V'?N??I???&??+???$??E???Zq?p?X?N??F??'WO?????????_XX???????]33=59???????b?*eb~?%l26=?d^?b?W?zF?????? %*K????T?????%r???? |#KSr???i??7?\????&????e?? )?J?????K?I???~X?Ek?b+g???M??f???????n????R??? +?fX??k???#WV????)??A??????ew`?M,(g???n??? %k????????C????x<: + +???? +????<?6Y!????mS3??h[-??%?????????St?_??v?j?2^????gV????I??rM<?::?R??xHT???7z-???t???l)???Q*?R?V??',??w?? + ?N??hc?Mq??MY?!I?W????/O???? f???F??:,?]???????????????????]????a?kT +(????????d??mS2??h??????c?L?o?|????[(=f??o??????M?????xm ?v???S???F??Gb??=???qD??Sn8???-????/?X,I5?>?r?h?E???&???j[?|^?J&q??????????N? Di?B????FS??b?Z;;m??N??b6???V?Tx? +?*;???j?j6?rX???;x +0?? +yjq?P?8|???/????k?g&????z?????_8C?ND?.?Q%Po>Hl?o??@?Vw?/?(?BZU!p? +??it?s4??r??`??f_????l?N?F??????????2???Lj????`??R7?????????F????}??e?Xw??? +???t??t??:u'?+?????x'????E???? J ??\?? H???q1_??Cbw=;???L??)???? g`Tp?p? +1?????????kx???q??z???<75>?z?V#"m>??+Z]k?@???????$J??%?q???k?P??m]?4???`? +????SI???J??I?Jj?????Xdo???DJ??V???????gZ?M????m??-T?{C??????3??N?` ????[M:?Fg????????@??????)ee?6???W??C??Q?n@,k??xV?d? (???W7$;?t??{??7-H5(????YB?W?&F?78Z?]??i????? Yc??? ?Uh_b????v???^??%?:?$?sw?,F??]"??G????e????T?????5?G??:??X??U?ZE???o?:U?VX?C???nPV?????r???[???+?6%mC?`p??=t???o??:PC??te;V/q?-?)X????J! ???`??Dgy(]?+?X,??q?i]?/? +???N?5G[?!??L?I?WXr?*7q??,?????a? +I???b>?bY?f??UI7?;??$?L?e?q??l?^??Y?????UH?hy\Q?]`5X)_??T? +?????? ?:"0T??e?L~????B? c ??" +8dA??r? +??? |or(?Z??e?x#??b??0n8pn7 h???AJ?T?9?c? y?j^???e?C??We????d~{?? +uCmn +5 ??n??m~????6ShC?E?EI8?????mm}?%n? l???????Y:FQ??H???a?b?Th??|?$?8?p????(Jm??+d$?????$????W?nnW?}?C???????K~|l????? 1HRJ?6???&y7??C??-????HF??z3???? +??t?? ???? .$u??????W?fc?'??i1%Y +??6?? +?#&y?`c???D +i?E??]??}6u??L??8?fP.?s?)I????????F??X &?7??????a??U?kSL?X?R?L?C???*?$??6???5?b[?M`?$?g????. ??? im????/_????:#????{W?H??Q??i?m?}????t3????a +i?Ma??????T??W???????*???W?f??\?????+_T`????*??zQ1?`?I??'YZFy?????6?7??[?Y?0 u?-iB?d?????Q????'???????d??? ?0}[f?????_$???5*?.v??d??BJ?y>??ZhQall???!?8??<7/??T?v>L????9??O ???>?n????B???2??{?????cKJn9?????} ?_??|.??x2S?N?E?????Q1??B ['?j??h?E??????V?byia:[????m|z?;?????*?I????&?.?_a{?}2M-2?=|?3Uj???r?kG????/?_@?Dc????-??}3R??&C??o?:??N??AyPYi??h???????6 r???O?????ra~???m($?t?? I?????L???JH??M?Wt??????Gccq-?R|!ijnE???z??+?j| +??j?.$?L?????F?????A2E??M?70 ??,puP??U=?????o5?D1O?s???W???c?G8^s?GM??5 ?i??M???*?K=??`M??:n??]?e +4?}??0?t?P?/$??;??????^7???K?$%0???c???o????$? ?????Hc???????Mu??YU??3Yt??C??0W?jl??q[P??????+L +F?? ?u%??? ??;T&???c??:???Kb?wD???a_X????[k?M????5???|????]??L?$?x??yoi???"g???.???%????[;???k|???B|?&?r??ya??H=?n?????;?-????I?O?o????2??I?U?^?????T???n>q??B??9z??7???????DY(?? +??J???I ??ML????y??M'??n?R?Z-k?H?8?58?NN}??It?.'??$0??,???D?0ISK?L?3;|}??????ED?k?7?~??K????#?????????g&?C?a???S???/VBS??t+????Fb?*IKG?50M?o???-??]z???? +??d???????@???6???FH??H?8????0?:?c&v?;l?+?l?? +J'?Ph??=??cjvva??????????W?>??gf???? ~^~?L???&???}?h?9??Yo????YM?.ye?? +i????????G??????QO??|????????M7???Rm????Pd09????[X\B? +?}????v???g??8??v???3?O?~??7\__[=?????l:? x?V?F?H?????9?o???m????J?7?????or??0??J7^e?(?9z????pt0?L??f???????8???GgV??#?/????T-*?0J?2?J?????????z??W????Q?????'???^?Mq?Oo??[??{????$??0I?? L?R?J?7w;?pk?S?t?????????{umm}}? ?B???u}mm?5Nh???LA?,????g???Q???p?nh +?m??>????????8 [0??6??m_?f^??????/ +??Ov? N{?/?Mf????????o?P0????#g??????????K[???c??????=z????VJ? *i????????{?c?7_?{yn4??V???a?`?D??/s??.???S???[??A????C???'??gf????????1????^\\?????????{918????w? +Z??S??O~??PX????l???0???? 2LR?fe?K|?*i??d???? f??? ???s???9??`??Z?"?Xl????}?A?????/z??4W???i??v???f?|???sw??? ???????0 VL?P?H8????nM??d?A?*_o(??????tf$;:666>>>11 ??@?=>66:?? ?? Hh?z?^???m6?4?uK????9??????6?-?u"_?>??$e?J?>T??W?`N{r?=? +&?????????????E??n+?(?K1$?Z?x??~ ?I????????????w>~??j?sO??nui~bx??Sv????Z:T&%??l??$????1?*t_v???n??? +???#?h '?c?h4??!?? ~Nht[L?V?R?e??? +??9{.???n???t?z=?? T+??P=_?+?s?kkk???J( +==?[r??????\?HAeTS?#lPI? o????`fbv?2U??t???#??t?????j_Z_[]??79???0}~??? ?`b?$?? ?l~??d?U? +%bot?2??kw???p8?N???v{?n? ??????m=???h??4?.?B????U? +Kk??????\?c?w^8/??$W???M????q???C??8??ef???2??????"m?d7%? 6o8????_??T?? ?]O?r??v?@??%??4=?I???Fug?9????[g??????W?(?A???@A+m??J\?????"???L????????t*Y?}):?]6h[i/?}??e?0Iob?Ij-L?lK?473q?"?57??????)??G?y?N&L20 R??O?+,K!? \W?)Wi-??-c|W??LNN`?~?6????G???? ?? +??d??;+?2y???g??}2?y+u/?????W+;?k?5?;S? ?nK???K?\??K??? W???v??$?B???p??X P?;!?*@??(_0???]fwd?w?? ??3???zRC??W?m>?3??????B??\C??du?????9??h?????i?}???&1y????)?&W +h??>?>????l??y??yx???????0_`??P???,??=80?????P5?M??????$???Vqk?^&?j??a??3j?????jo[??@???I?$??oW +?$??#?(?2????FW?o??g????:?.??o?o????xz??>?????V? ??[gK??????Vqk?^&?j??us?oT?%W??T?c?0?#&??0????/?,??ms????h ?|?jyx?A?/$???7?wJ???? ??????_I??8?%T?s?? +b ???'?J??Z?*?^????+???????????( +??&???0K?I?py&u???????@????Yk ?M??n???,??W?uE?K?E???6???@?U??? t?a3??3n???$&????$???N?Ir?????/??????G?Q2|!?s?%?7m?????;?9?W??r??eN~ ? ??1HB?}D????>?D7VN;?f?<$%?h????d.??_?n?,\_?(??????/??|??R|??*7??'O?5?kR?Uz{0????Y/??_?????????>4/????????? +?q??&O??$??m*?$M???!?????$??????/?'jo?@?/$-?/???1*?2??0$wk?b?4&?kW]???@:?#????}?2??Mp????Cp>L28\?{izG(9??y +G???]???7??? E?-????vM?7b +?AJ?`s?vW?N????;?6?^??b ??e?"?? y??0 ?? +?B?aCIj???(' '???=???nH +????j??-^?????o?N?55???M?}A?q????????nt???2?i??^^??i??c(E??? ??6???0I0???$??HR??N??R b???????Z??O/??v?????????9N?????? +?n?hl??h[ ?Pc?k????z?d6.5???|?C;?$$e???.??FD??K??;??yF???]???$Z?g 9N??I????u[?}??a??????~S??????O????x????@?f#?C-?? q???%??p??M????=?????Q?@.%)?:?F?q??N?d?????=??6gm???????~???9x???Q?&V~? G??? q???%????????y?m?????3?????Byf?UB?S'.a??^2?J?D?&??D?8"x???`?:b?Ut?28??~?????r2?uj??6?%>????????~???K?=U?h?C??!???2%??xLR??????]nm?Aj??W?$lr?-$Y?ao4?;?/ +???!???" ?t]? ???w ?oc???????$8??aB?S'?x??G(?w?v??MM??????&/??) +1%I?}???g?5-{b????a???Lb?NFR +;?i??U??????/U??t?f\P???.?t'???????????r8 (?|??/??GxZL?m i??s?c??Cj???{$?}?c&y??M-??=???V\*????l*??@l8{?G??6n??1I?/$?pS]??????<_??????}?n???P?R ??n??'?F ?}???6&1?#?w???Y??????????R??}U7O??ot?? ?,~??P?&?X???K=H??j??h??N??;?4?A??lw??}????n3E[V?`?Z??>YG'?y??i=???????h???C[rd?????6Q(!?L?R?^r~T-q??????;???M?/?}?/??1%????y?????r?.?IBL???.?????BA????7????s??g???N? G????P?d??H????']??????Bku???????????}???????>??D??m?b +o??n??q+?S?]((q????;????0????~?????????1???Xjdbvayu??G?\?H???>S? +S????FR?n?@??A??$????N?-?< ????????V\&????U?y??Bb??I???A}?? +?`f6???#U?????I??[???J???????6??3)?ane?0bI?+S?t?5)?????\??0 ?W?`-?;?D?qw'm???-8?}?d%T?ol?3W2??\?_M?Z??t?Tg???@?H?$???????-|?.??????}?????d=?(mc?DL??+?tL*?VO8???`%?Gh?L????`?%V8?+??5??j?g???*???[_I(??;1%I?} +?(?*4I?:??.?(?n?ZighJ?oZ?F/???U???\9??.?i??6;!P2?7?????7;|?n?????B???????^^??!(?D7g?+ +=~`????????????.??q`'??8??zL??Z?T?B?.=4??)I +???)??$$1???????????Zh ???dy8?l??=??df???a???Y? ?N??3??^???M?|??l6????UG?B?m7?I?@ +??%ij????~fbn???"??5?6?!?z??,?2???B??????"?l?Ea?dzj??????"x????????55~???G?mZ??(???(Is{???D?????o?{?Y?*Z:?,??2Yn?x??????~,?????I?????-???????u??>Chs???O?9???$?x::U: "???????B?#k??V??E?.??? +?|f????cL?;w???7{% ?J +?????-?_Z^^!????? ?3#?H?aRw??P +mo?i?J*?6=??%??{?m?6????V???h?S?&d?M?;? +??R???????????"5?f?0???????????????1LNN?e3??????SJk?&??sf????D?????;n?????;??? +??-?v?d?k?mbw???jP8p;??{?i??=H?7?}????ds?????`<O??`l????-????:&? ???n~2????uIB??uS +>????=????? 9???mFP???7????????}?OM????w*??d?9\n???.???l??:;??#?????? {??]?r???:?????1??Hr?=D???[?H23:}??d"%B&n?K$?? +?Z????B???:??K)?????h$m{ r????????}M0???mh?6?;k?  ?p?u????K?]8p???4Mj??vM ???p????L?I2?????????? i=??M?}??X{??????????1=??E??t??Sm???tv???`V?'6!GJ8??`$??[Z??????[? i;b?jo&??s?=J?Mmr?'??h??qYv?????????B +?????Bj2)??]J??yH$eUy?@??u?H??=?Tw???9???m?t??????????$????,?m3n?J???&3????WZ???_z?N??n?H?T?g$?qR?4OII_??;h;??$????DJN25%?o? +???z?????H???oj???Mh?6B??? ? +???$??????T&;? F?5??A?H?BB??i?.?LR2??$%????!?v??H?[?;? =??????????I?b?DH??????????UnpG??v?E+oII?? ????Mv_8>?=QPU q?/=W'I?1?H????I??"$%????P?m??d?T?5;?d:;z?`??~??:!?6Y?]?nnW?|?_B???Y?SRR?m2(??X?8???$???"n???1HB?}???/?q?F????ki? u.&? +??7~/??? ?qR ? bJ?B??????p?~J??q[?mb`jJ???784????-?n +q?)I!A,????r???W?t?i? ??B ?ID???????@!A?m??k?q[??q[?m????2???wv'q???"m b??F??0?????d"mF^rZkv????y&n1H"$?)I*????n^??"mC?*?q????y?*S?B?XH?}?D????-???-?6y0?:1q???q????Rt????O? ?????/i???q???EPJ?m6?I??K??7? ?+i[H?$t???m??U??o???-?6;?"ng O??PI???????A!ALIRj??I8n?h?!?-?6[?0?7??? +?j~?/?????[LI + b ??a???n?;x??i?=?[ou"@??+??O.???sY^??b?? ?6?????L?F?????p??"m???;????W?>n????'#G??\z?H?%???&?w?,voh u%?~??^?'??I?d?I$M-J?????pj???5 +1%I?}???2?b???6?????$1?????C[?3g??v??;:?ZS???p??????????w???UWnY?.Y?dY?%??$o?,Y?{?ww?m??-K??v??f??4$Ad??)jH??l??N2??LM5i???b?,??R) 5d?T?T?????????????]?????'?|??????s?????^?%;vJ??&S? F???n??kh?m|2???`??$?p;+?.}^????????k?5?F6T???&RA??I+??? ?G???L&s}??_y(#"??m ;@??2a??s?y??y??O?n??3???g>???K?????~q??????????;;??bUIx?A ?j,?????i???L??>??????.?V"???K??Pp"?[g????z??]:??B??\$)??(??{???c???????????????????k?>r???sss}?r??7?IM?bS??r`J???xV??????Fe"??$-??9k??1?V?Sn???MN!sg2???}??&?W??d??C?????????.?Mgv??;{????????jvO&??'?FG?&"???`YoI!?n????@A?????Ck????????O??:33?I?R?d?o:? ??<.?????????@?n?X?@?MtS@???_?)??'?????J??$??,?^????k?} +]???]\?????#??6h?it????????&??Il??{??X?-_[?? +??"?]?5??Pd?.?Y{?????????s?n2???? ??C?A??a5? z?V?V??Z??? ??|?????j???m??(??6~\&?9??)|@Y~????Y??????/??^?\?s??4 at 7?$y??????:?OL??? ???????d?W:?_??????2???IL?]?&? +???-s??ND?I???9??????????)?JYc]??gr??Y?&?????K??J?{L? +O??>?`?-&?N?V)???"??= B?L?7Y?????v?L???i?n +4?6~ ???<86?)?Dc???*?g?N?$O?>?/??}??x???h4<???MX??A??JM????8??J??~????;????YQS??I`??I%D?.?r??V?9????O?.??J???u:? ? ? y\}???:?J)?_W?????5o???|?J.Su??I?6o???{Kjm?????#?WN???~?om|??.??~??a/g??g??YeS?]?2s?M6??oOQ&??w??=U????r2*???? t????F?f?s(???z]?{???>?t?5&???#?a??md?-???k? o??J????????*???qmC???????nz?#???L?(?bZ?????\??1?_??????j)??d4??rISEx?vmJ?V?????MD?$?F???Z????B??u&??U$6?Z$E????r???5?????Y[?k????????i2??36?H?%?R.V????H\ ?L??[w&?;? +.????$?\????YI?"I??c???@6py}?????O-??e???(??G?5?????R??B??LV?F??? pdTqA???M=\??e^.??H????.cC?Z?l_????????"?R???d1:?u4?`l=?p9Qvm1{??U?|??k????)u???>8 +?6.?y? +??v?b?_?{????%+??G(Mk????Y5m-?????R????584G?N$ ]??K??l???%,?Gr|??c????Y??m1?2NF???????9;??N?WV?G???LV??$?????}?A??I?M?^????R=?_?n?P,??]S'B???`??y???m?$?']?S?6??x??v::????T?zm7F??u?&????`w?Q??(~????????]7??;????\Y]=uj??u?? ?f]=91> +????6+.??k6?.???.?i?7??????h?o Ixds?o"?x?8i??uRR_???????67?????n?R??LVG???{l22?M?'??????UN???H??WP:?WH?'5??? h?>EuK?????f???? +Xy'???J?/?zt ?s?7N?YC?~?r???N! ??j?j1_?? +h{khk?v?-??V??????E??&?]???s 6?????|?J???Lz:?8?y??A??V?[x???? ?h???f?\$???;@??????H???[A?????x? S?x?Vq;M* ???l!???????t"::?oaR???m{+~:3?6?w??+????N? +S????%??*??;:??|?????vU???-|?VFk???d???a??W-o??U?????????D;4'l??:???D?????[C?k?m??h2s? x?VI?Y??q?h??]???-?L{j???0jL?w???x??L?kQ??????????p????5??I;?6??&?Z?#??t?L???#8n??c??^?Z?6????$?????a?)??L?w???x???)_o?wL?rm? 7E?6_?o 9n????2 /1??????-`?-??^.>?x?><??????B=???@??\F??_?P$?4 at M??N j?? +S????=??DepxB?D&?%v???>!&???W?t"u6?t???/>to??? ?\6?I???B;?????????????+??????8?}??? ??????-?? +?]????KA???_x#I????O???(?p???S#?a??? ??g??'_+:?_x`?8;??[ +2mL??X???????i??42???????X2{p???#G?_s?'[?xa???q?N +E^????Q?1:??d<2??f?Z!?D???6X?@?u"?t??pr????????N???h??????#6?????u?O.?*????T23????????Q?HX??????Y$?fO???\=j?y???x??t9;84?g1hUr??i?A?`???"I?0'? ??????????ne?n?????=?????6i??? ????du??49?* ???V?'?????????k7;% t???+hk?v?zan??? +???|??c]/???e???T"??????e?%????F9q???vS? +?@W`??v?mm??_???-S?Z]>$?df&s??.?=B?[????i|* ???S??????????B?mB??O????f*?k7h??0k?|????M??'???`??'cH?3?[{???C???3???9?b???F??cA???g3?j?8{W??O???;????L`???"I7?? +?m^?o???T????{???6w??{W??W?????WVW?Z???=Cr?$J?#??!??i7t?\*Qp??????F??o?Q +?nvJ? +??m???M??WJ? +u??o??:95?LW?MH??e'naG'?G~?`??jB?V?4????} +?Lc??=??t?Y?*Xe??????a??&???B?Z??U:?????&"S?D2U?tI????8?u?{?3??g?{?j??Q6-g???#??t?|??1 +:?\?n?v7??>L????qq???^?????M?#S?2???????h?e??}v?c?q?-?RW6?-z?w?+?M??3?/T???@??????0??I;~S???r?Vo????A?????x??? ?????l$?V*d??]?l?;????6?HD? S???7b??M??????b?L???z?f??nw??mV ?%??uZ?k9v???2P??s6?>+?U???m?6~?????? +?J??h h4j?J?T ]3?&??&c?mwP$?m?V(??*?%i?D??D??????.(?t0%????R*5Y*j ?k? ???&?????????t'??M??y???M@?????;?H?M??$o?w??d7 +???? +??h????;@??Ix??$?LI?6>pLIv???????M??y???M@?????;?H?M??$o?w??d7 +???? +??h????;@??Ix??$?LI?6>pLIv???????M??y???M@?????;?H?M??$o?w??d7 +???? +??h????;@??Ix??$?LI?6>pLIv???????M??y???M@?????;?H?M??$o?w??d7 +???? +??h????;@??Ix??$??QS?p?@(??6]?F.m?3>p??G???nA???????8D ?*i? +`??x:!I_????zDR??X?|-???&???%?!m[,??6um???"????_kS?&???1?m??-@??i???m+???@h?O;>p m[,?B ??x???ch? +`?=Z?????C?V ????/?v|???Xh??}???????B{ ????8?????h_p m[,?B ??x???ch? +`?=Z?????C?V ????/?v|???Xh??}???????B{ ????8?????h_p?K?u??=Z??6i????I;>???M??xmm???3hk?v|?A[???? ?????;?j?X????1~ +endstream +endobj +103 0 obj +<>/Font<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/MediaBox[ 0 0 720 540] /Contents 104 0 R/Group<>/Tabs/S/StructParents 22>> +endobj +104 0 obj +<> +stream +x???Kk?@?? ???Yg? ?- +- +? =?A???????D?J??P?dwv??o?O0 +???x ???)A@??\?`?V)%?()???? ??,h3?????NN? %?=?f?y??p?Y? E??:?Y}q???ZJu)0d????? +?s?^R??-??????v?4d?n???s+?8D?"??lX??C???>2??f??9?]??? ?4W??F3k?t?Es?????d??|???nj??????^??aUo?R7??['u?/)???EZ???????z?I=?"??L??*?\?a??????&2??d?/??t?w}???> +endobj +112 0 obj +<> +stream +x??]????????~?{??&Y?8;A;?a?p??XKYgYk?????_??????&???g?"wf????"????q?i?n?0Y?- +fB??,?a???????;34??f??w? ~????{??C`??????O??4??C +???a at k???;??_?????????l?EG??cZ4????+???????!??x"???i??????l0#?r?>?? +??+??????????oC?ap???'0????? )??D&8y?J,??3??+O?! ???0| ????-w:i???q??4??W?????; F?!????g???a?????????b??1<.????(?kg?????2`?8 +?A???q?8h ?? E&?s??(?'???a????E ??????;O9???????? ??1???@*??` +?.EH??,%???(?????R??jA +8?^ +Lz?????]??p?s????????3C,H???????Y?p?? ?~c?p@@?^?8??=??EMP';fsb????!^0{y7e????,?J?ED????n;_H?]9??????A?K? +??#?+"fL?}x"7?X?Gz????h?B??9'?c1s??F0?? ??]3??,?3fa?{N??)p??x ?7??G?L?G$?s???8?!????#?X???s?8?1????{)??DXB/?L +??al5e??n?L??????x??3???#`? ???S??????L?,2????? ?`?;?-???!O?gt??#??!???+??c;???e??fDN?4???????=??69?rhg???????0=!?q?h&??C????[2?X?E"?_;D'6G?P?i???????xs??rr9??B??=?|HE |?"%|??)r?Erkr?0k?.8???0;D??1C??KH?????/g9??>d"i{o? b?j=X?q???-??3O?? +?2#?G?@F???5?{,'????~??!?p??0??8???????*???z?????p??F?'K?? ???????3j??????&x?]F` ?*????C??!XhD?%X- ?"??? +?jdW????c? ????M?_^??CN???^??? ??<??M?o?3I? ?/? IXh????P???? +?"w?G?Xg +?E?l??9*O+/?{?2??dJ?????\???9???]C?f?5?^??=??????<2?1??sV??9??k????\? +[X?#:x??? ????Y'"??V1g?&s??? ??????-r???Ki;Bt???NYa???????y???!???XN?????\???`??6????}???????w/~??p????w/??~y??????}?v???/?????????????<=???????|?????????????/????????B??????? o??>>>?[#???q?wv?AZ??R????????w??O?z???r?TKva%??j?b?h??81?Z? +VM??d?JJac????m??????O?+?e5??? ?k??B1)??a?-K +????V@???:?j] ?o?`QT?5T???S]?hSCyH??.?&?E?nn +???x\'y=???i???\q???%?,?QHl?3n??)?nx=??Hh???? +???????o???O?B?%ZZL +?b???|???>><}|????!z??????????3????????^??l?????{????????O?? +???k?T??%????E]I[*??&F4?'/N +?????D? :H,? +{????&??.?/#?/#?\???{??7'jG??r0???fz?*?G=?\^V??????\?&UI?u7a? ?:?s???AYU,?+X?3]o?M;4h??|R^:H;?i??_? +?????? +E?a??????. +??9???? +??wGi?5?h????HG6Ow?w??????X??+? +S?'???v,??UG?^???:?e?n???bol???vY?X??;b?o??]???`???M:4H7??E(??m??i?????b??????u\F??????vY?X?V}???A???????~ x??n?>?g???3 +?WG?#?eE???O??TE??=????X?????jUb?i/?? ??]????{?? ???U*???5?~?bq0v?.?e?b???????Q- ???.??????????FD4??? ?]???[??X????????t?*??t??r?B??%5?io??  +mrmm?*???6??M?z????????r)??$??U??L?P?&*???%?*????? ?]2xs???~???q]?2??????R??R??r??????????|??<]0?????Z:???Ta?PL??vsL?R?c?5?W??? +'????????Z?^?B?M>6??? ????cL,?)???????????y2 +?4k??3e???P????? P???v??lW?hwR?c,?{???7P7???9??_????I?,??z?v??J|???k:???vR??J??]:M????LZSNU??????h?#????nVQ:??7??Y?i????????r???}=?%o?????7K????J?$?Ji??'%fo?r?F?+71?T*l|R??r??F?'+?m?T^?????#?1??T??\??I??????Z?w?{:??[?(:???????(???p??????????_TFV????n?????Eed???v?K$+Xu???H?M????7?E0?? +y}??Z*??????;Y?????X??q???/+???+????s????Y?b????"kh????_?4??"k??T??(v??2[E|e(R?M8q?e4>\????#?Q?:???????j Z_E<??!?*?????v??T?J???h??? +????i?a???Ul?&????D?"?_??8?????@?\{????m?S^???C??m{J'?????Kny?b????xD?:Pl??0????2???B??5*d???????'????]{?j\o??????^-0H??qN?W?? +UG ?X???/?x?1knyM???6h??z?#^G?+3?5??U???? +^Y+,7?W??Re?i???h(?^???????(?#{"??p? +}??Q|??O?B?5?^hY??7 +?z?\n*??Pgj?s?-7S???N??"?2?mR=??Q????C? ????V??????u/u???;C?~??n|??^:???c??^????????w??|????????/?????????w???.>?u???????z???X??????c~;z???v?<5???y2????????? ???????????vt?b~;:z)?=c???sw??G?'? =wm~Cz?????Y??;?s?????n?oI?U-?&=wS~O??x?E??;?7??j?_??58?z??????3??0e????nIi?v?F?5;[??^i???4???Y???? +??R? +?6?k%W_??? +;????eaT?c?[?????????6j??a???.?@?%'r???:? +?6?[?Y??v?Ti?b???? r?i?6??????UZ????V???[?j?uz~!?? +?U?M?zk+-u?AiS??????A^??T??[SiIiC?M??<???V;n??Aq???6TZ?+?n????V??@????a?[???J?Z1????l??--??}??w??????o??????t???T?F??\??????????^ic????????*m?jE????v+??zk;[?????? V|?M?V????J?w?????[??n??]?.???)?W????mWZa???`9?h*?SZ????v?*??l3?x??6?Z!?{?(?x??? ?]?*e7??]e???ZU?f??\2???,??n?V ??I?? +endstream +endobj +595 0 obj +<> +stream +x?}?Mn?0?????ta ?DBH!i%?QI@?!E*?2????'i???????<n?m%;C?7=? i;)4??Qs {8t2?2":nN?y?? ??z +??l? ?I?nG?'2[?aA???N??cS??>*?=HChPD at k=7?????h?W??wf?[??b7) ????j8?F ??]???*????y?????Ful??2Z??e% zO???? X?M?^??? b?e[D?????/P?????.???m]q?[n??[?????3?%???\??????????k+}????????^??? ?jmg?????I????s???3? +endstream +endobj +596 0 obj +<> +stream +x??? `T????s?l??d&???0$??@H?d?llQ 5Q? ??=P?-???A-Vk? +jE+Z'?a?b?m?Zpi?v1Vm????m?r??? 1Th????????9?9??????eN????? +?Z??~??a????y??UV)?????????w?5??,?ki??4???g\2??e???????? ???i?2l^??>??#?\?h???%??3??z?>?????h??v?\?mC xX6??x?@?i?_?|??;\?o?????xn>???4??Hv? ????N\?????????????o??r???eY????M?)l??!S??]?5?N???T?P????? +????c????????g?:???'?kl?z?????5??w?z?OA?????=??7?>7?O?,??p??l+1?~W2???"??o?*?????W??Z???X???3-dZ/??B?_A??]?r2??????bF???VS??~5?z??&???Qup??!h4?F????`??i +???r??'???]\pY???$?nj2??????????????C????*MC*5i? ?[?D??,dR??E?A??r?C?S??\?(@???(?PH +b5?u$????? +?0?Z?0???%JG??:??R?X?? ???0Vi9J??PF??? +?S'(??x?]T??:????`2*?????`"u +&Q?R??1??NC +u:?PgP??LL?F0?Z?????? j????6"B??Z?l?sPo??\4X??yh?6a?X??a6?x????G?X?%8????^????F?Z\`??u??z).?^??S???r\L??X???E???q?P??Zj?Q??R?5J??????r?_?? +?2?z?_??? ?WQoD?k???&??~?p????? +\G???oa?????|??=??t#n?n???[p?V|???M??p3???oP7???;???????[|?a?.|???wS?{????B??Q???[i ?[???????7?????}?????-????????qu~@}Q?9?H?C???D??0z???}?G???Op??Q<@?)z??S?sl?~?????8?S??g???'?#?/?uvRw?a?S??? ??#?g??ihl?M???*u????3?????n???:??[ + F????F??h4M?I/Na?b??@????g=??RR??dS*|^????*???????lO?x*??@6??33?%C?|?d? 3#+30`???%9=??4wAzz:???????4??n@????9G[e$nG?`d????h4?F?hBu? T??????J}K?V9?Y?dS!r3s????5(?????? ??????? [e????'?SUC?V?W_5?????c??{?Bu?=?F??h4?DS4?nwr??O?|?g?{>?{X??G~~.3?P???*;?7<`???????F?;?????2 33??*?oL???4??b???M4???h?pA??h4?&??. +2?J??B??"?g???????P?# +?0B6?*? DA??Yv???<?=Eyyy????(+??3? +?/i?|//q?8???.?!h4?F??$?q???zS?T????T +?U?? + +?!KFF!P ? +??p?x??]PP??\_An8/7Q??{???!??D?Cp-H?(?:??4?F??hM??b???rT%5U?S5?????R?1jT(?Q2d??P B?Q??f.??)(H;"@zA??????\$??!n???{?k>???EC?hG????F??h4M??|??|??O?????K|?t[?P???Q!???r??*??`????!.i??#|?C?2Y+,Q????????W_5? ??MC??Q?s???=?F??h4?D3u?X??i?O????O?5??a?1??%a??? (/)GI???z?,????O ???f-PQ??a??C?'?_???#?*???????9u?pA??h4?&????!UfPU??_q??}?1(GEE?T??)?X>??+?k???p?3&E????????E?%nGIM7 +?4?F??hM???????N??@?S5??~???U??i???0M6?Fmu-?'N???`6??KAUU6?e????B???u??K4??!n@??Hs??oZ5???0q?l?!h4?F??$??????+?*???M???????V?????^?:?t?L????u?O0??????CU?????b?r^??D???7?O?_&??#?9?????????w????h4?F?h??? ????C!?N??_?Q????F??S?sdS ????????6`V3?Kh????M?>%?Mn??T??a ??C???4? ??M?'nG?e??!h4?F???/`??U?5????!??hYr1???????Z??\?8 g?c????s-?A?|lY?9?????g??~???^???R?{F??????B80`. 0?? ??j??b?G~?&uP????H?Bq??1(???U??j"&W?L?:`??8k??????????,l? '???v?)?O=???@???a??A?O?Y??.???1}?1S??TO?XU9?b????e?cF?? +? # + ??rs??23??R???'???r:?6??????Gm??9s?e=???V?G?\5?@?h?]?????????-#????i?c???`???p?W?????k?m???|?*oPe/????9+?Q?l???`EWc{7?????/w??E?;??d?????n?=C????8?????AE?? +???p?A?,j?Xm^???? +????????%Q????2e?z?M?Qu?n?g????`???]????????,??cqk??h?}?????h??/?|\????[???ov5??????+??? Z?????q?5?f?w?b??? 6???qE[kT\?.?rO?^??oy?Q?i?3M +??Wt???S??????byy??V??]?Z?????p[GCAw?~?'????-?c????????/x?? ??TI??R???#+???syAD?K?Ik??T#ey +?????? zE????M?o??O????^??????????????dQ^'?????ee??Ry?8?yN9??>?|????p??????A??wJ????9???zv??*T=?$????g??)?KU~??*&? =???f?? ????#`?a>??R???????U?????????L??43??#`??Y?d?`?!_??????Y]Z?=?7s????b"s???U????:?W?$%??]?gV>h^a:?A?u???4?z????}???}???G????G=?? ??????e7]v?e?r?M??t?M???e7]v?ew???R??e??i-?:&????;????;??Nuy?f??QzD??GTyD??G?Q??G?Q??????????&zl??&zlR?????Iz?Ey????T?????X'??|-^W??Q????/`??/?e*??*??*??T? +???}?Y??3??t?F?{?br??.??,cRd????????????~???i???:r??u?9?`m??U?(?|E?Z?^&???T???D?;???$.????7?{K??R?P???T|?T?&??M?tAT3~????xF`Suq? ?L???zv V<9?+v??1?2??3u3mf??????????)?????52??;?J?BLA???m*?R]???Wl?y??$?O?h?m??T0????g?@?dI?6I????H??gn ?{c???|O??f?S +?Yt??&E?&?L&??L??M n?1z?M?h????,?+=V?yD?H?n\??]?????%?`??????/Y?B???????k? +?? ????y????>p`W?ou?????'$?~e?Fx&????????I5?VN???k?1??m(P????g?????}gX/?6??L^O??p7??E=?d??"WL?\^??S?{????~ni???p? +m?p???u???????z@\f???????;G???????????? +??o??+???n??B~??=?????/Xg??????Z?Z[???6??$??c?pXK?3? i$??2??? (Fn??S??i?????Y???e?k?? ?q?Yo?=???8? w?q?&??{?oZ?X?U????xML????"2D??'???????Xf?2?e?g>k???x?Q?c? +??~#j?n????}??O?G??}}??io???;??b???? +=?????6????/j? +q???>???d?4???M???1?7?7?M?????=i{??e?zg?s????????}OYXO??I???1?G?R^??!????'B????"f?&q?8I,??e?J?Uq????U??{?}0?{?Qk??r?r?J?Z?>.????_{?78?l3l???????)????U??r?????]?3???W?7x??m#l?m??a??v??)???s??j??????C?????(p?w?????G??9????????W?(?yp?;{F.?#??? ?Z?W2??q??xZ??x3?}????>?#?t?J??\???????p6?`?0??:?gL3N4?mB??????z?7???Jlo?????Z???F??".?4?V?&??\?&8\j[????w,???????k???^??3z7^???n?????l??Y?^?W@?z??q????\? g;v?>?n???1?v1?????}??????FU]??{?????}?$3?d&?? !?Cb#d??#Q??FBe?Q(?P?*;-?U??+K,Bm???????j?+?XShK#J??;??????0??{???????9???/\????????d?z`DD? q7]?)??(???[ ?e?%?Mh???A?{t`?????K??7?w????? ? +?Q?^??F?>^qx??????????/?? +??^n??{?{?{??5? ?? +?D??,??@?A_??????R??????OGw?f?(?? +b???5??|??Xo??Q??s?'nA/??0?^?p??v? g? +\????,??%?/0n+???p?-???C?>@????~?B^????Z_???,??p??????????? ????Q?$?^ D??P +? &???00??2G?? ??N?^Atn?^?`i??Q?q#????a??w?^l'??0?????????.?i???2^?]??/t?:??8?`?,?F~?? ?? ??I??| ??6];A;_;>]??????a?{?^PY?????9t??????n???P?9$???J?? +=!s??/i??8??G? A/oT???)??1??a&F?#?q T??*?e`#f?_V?????9PI??j??:??f^?kg?????????????qC}C=f?? ?`????@??O>????i???????6?3???????k?5J???5?Z/??N??gZ??[???????-hw2U7Sin???C?? +s?/\0?f?T??eL"???" +5??"???F???Qc?"??,?C?f?Y?????+???`$TW??j?9???1R?9?WW?v9?2???;???????WU??N????BAN5~c???'??;???????fO???8??s?\y+?C?ZI??sh?O?c????N???q?i????+;????J???p??\;?~d??u??????yc???/|????\?{#??o?????' ???5???$*?,t?\=???#Y^?cB? +??0*|????| qj??4?{|??4?? ;u?3?v??>?:??,?Q=u,Y??o?????}9?O??{ 6???T???$??e?g/]?M?>?? ??[0@????*Bco?dF`????>?>??\9??>??????AV???z??JN +^x?A???B?? ^?N?\??7?*Z???????4????????9??^?8?{pA3rG????c????????98A?#M?h???x[D???S ???@???????z??>??7?(""?V?S?J????P8???? ??x???5%??*otqG?&??I???Ns?B?? }?ji?k?g7???&??????? +?"??R?*?,?J?9Qp +^???-&%L!'q???????O?B{???I({P,@??}I??a?x??? +aE?nu$??3mx? +?t?/i??Ez?1Dflg???Yd^*P??s??N??w?? |/????? + V}a|c|????fo?j{+??"??u???l?+??x?z?=?<\?wxpMp;?E???????????>S`wIJ??JwvDp8R!?#??Z?F?n??+<,;ZZ??k?????,?uf?F?v??? +??L?<}?G?????j????'?[?nR=g????L?}????3kk??|?!?HN????;???????:??Np?a/?X?(???jC?????'/T??l????+ ??z?M???\r?????;UlS??r?Q)Z??-`?Si????|oBK?L?et,j??T??+?Q?? ?Bv????8rS*U?W{?a?t?3F???i??S?A`??p^^Ud??9y???????HM??? C??????yx.?h??_?t?>?????i?{T?? +Z!????;x???_?c?.z?????%@???/??W??z"_m??Z?F????ss#?EsK?V??DTG>???yI???????????G???G???>??q??|>!?X +??5?d~??h??????2;????:?????=??Q?$K>???e????????i>?N??????>?;Bf? d?5P???!.??4? ???X?M?o??x?>?E?WV?h,f??H??^??????Q??C???~?????=,?!?d#?q??H? D8E?????'???2???)pn&??%? +???{??m?9????y???7:?????Qc ;jd?m??>??*???>?v?\????-Q???HKU? +?8?2&?????LTF??A?Z??d?Q?|Q}Yf3]??.??5?????q8?{??G??!????5+?>?]?+?9?-{p\Y??????1? ??0???K'%?CGM[???_???[?????$ ???st??????P)d?Sy.????r??k??@?m?s??e??D $ ??]7???*??5????6?6?A6?????Y?L?~??WLv??? +(?S?LVk?(=U???????? ?+.\???>u?z?G?#Q??+z????$?&i??E?j???????????S??W,? +?B(tJ???E??I?M?? ???p?MT +??(?(?(????X????l?]Ms???8??3?_????O?????~???M4????? -??????&k??X}???I\?0??C???z?8?&?dZ_???6H????X +?=????????G?]?(??????????;???ED?bK????0q??z/}????\u>=?H?>??M?_?6?:g??NrdS5m?z>[??_@????v???6??$?jswt??,s??hM????`%+?????????R?l.?????Zi2U??B< ??b1??:3??K????g??^+v??;?????@?zP?^1??%lX ???'??|?????c?:mH?:???.I?)x?2??:B?????????\?}??????:q??$2b?Vf?i'?n???3F\3Q????x(&$5??{???V???T????????|&t.?u?????O?9+M?U??fw?;?k?oW???K?s?UU??c?????V??\?K?fR???/2???7 &?-&?(???????C?? +[m???q>?g?q%?dt ?]oZ?? +?b??A???)?T!??{?$???d~=?V??W???????RKqG???'?=???!?????????VT\V?_+???/?9?:??0???+B?l???Y=XA??????X\????????j????n????X(????-98??P??)?:?P?$!Rm????8??G????d\yU?,?V??8c???;? ??????8?}R;(?????\Y??JR_{?6??k +??|???SS Z?p?qS}?5U??c?r?R(??1????-? +O????"??P|??yC???u?G?b?fc?>3e??)3o???n&34?v??-! +;g?6?????????3?????9C?'??,oi?b?????fj? V ?* +PU?cd?6??"?)??JL?R?Z,?? ??sP???p???-?ec??F?Hi?? ??????I5??K@????6?cb?}~???U?<6???1?V=@????_w?H-?v??c??????_?????q?9?D??i?i?f?V???&nU?????rH?SOs???-??M???/?WUn???_%2v?????? +?!?l ??5???'??!???Oj??go????>?r&0,?v??+?^V?n|8??o8i???????-???y???n!? +??x????_?????{;w??K?????? +??@?????p?uG????8??zf?e??>?uP?wP?? _E?????GQ4?uP????V[L?L??????[ ??N???5k??T?^?S???'?????J?oG????????g????b?#snh?s??k?f2?F??~???????v?yb7r +BL?9??z?VKVCC??????)?Q?~?d??B3??+F?"&?/R??;)???U??|?uW?????m?????CG?k? +?Xx?`?%??8o?????????????\" ?q?d????4???/?[?Zf[6+[{?=?0:_/???????q?q???,??c?? +???????5Q!Z?U?U??QU ?2g?">K\?F??BAT/????????xa?Z?????%/D_??t??? +??%???/????Oz???d???R?4n,$??/?, ??K??u?Jqy).+????r +k? ???9?4?\??K??0bI75y?d[s?*?A?z)?+?^?]???1?????# +?)??; ?z????? +D???iQIQ`&???"?)? +N4???u??j?e?7)??tg????V@?Ov?d??s_??????/????>u?????ld'@ $??$?I?#D -`????tw:l?'?? 2??0 ?? n ?b??!??nFqtFET"#??"n?????C?????????=O(N?sk9u??S???N??????-?M?3_???fnMK'kMO?bu??q????????>???weZ9[?N0?X??9?d??(??w2i?*????.${?:9?? ?)^0M??]?"N&S?!???>?PK?????????G?????L?o?? ???B??? ????Q?o??.M???^?+a\l6"???w??h +???g??s????Y???0?n??????M????|&???8(?c? ?????tI??+?y?????????jfC?'#?=1k????????L?????IJ??t???????7???'?_??????Vm|u????&~ >Z??V?I?L???O??J&gR"6???g%%?? c??*?????*?a?X?? ;??????9ku0????h ???|G1]?\?Kl?8??Rm _?X?\b\O????j?j???????:????u?8????????????v????r|??0K7????m3/????????Z0??|???u???????4&k??)'0Y?&??[.?t$:u??_?f?W??Y_Ue?????gd???????????{?%?C?}K??????[?o[????=?)[l?????nn??k?z?>???K?,v5k?9?X?m+????-???i?c??e?,???jS?Oi?Rg?6?Y?-r.e????m?=?|]{?????j6l??5?6????sk?$-?Y???\??S{P{?yJs????R?(?????x????9m????vUh?e????|???76????8??u???>?b??? ??E????}??M?????@?????mr??+a?-??=??????tf?1?? ??os%??>?0[??W???=?Mc????????y<????]????????}??.QV?~??\U?G"???`???F??[o!??3?????????*???~???Z????*>?~????????b#?????R???0??????e?|F???e???K?f??M$],????i????i??g??'??? ?y?x?B?B??<]"c??Pr+?? +?g/b??"p?q??{?d??K8???R??4IO??L?F| ???.?L?|?#??f!??8??^???g???2?z)-????gH?1???q??????rN?$h??-??Lz????l??9??I??)???hUv??S?X??????Vv?g:~?v??hF\?????6?Vi??W???????9?q?????E?hx;?jK,?A??v???r?K????b???Q?~??9????-Z?d?II?H????Q????mBo?)???????#??9-Z?T?]?K?&m???M?????6?o???M???I??7iS?&m???M? Z???[?E???dI???`k????I???| +ylS$#~k????5???I:N??Y??c??!th?d???m????|?E????? ???-6?Iz???}?EC??i?*??,Z?????????o??/{?~??????bD?r7yh<`8????O??????aZF?r!?B?E\??ZYbr.?:MC?|?S?|??F?????o?P?B???e*a?? +e?h!????J??Kuis? 7x?ju?????B?H???j??FO?:??6???T.C?jO??,?!x?dj ?P?4/??K??S ????????1OT????e???A??E????t?O?.?W????E/?^?4 ?w?:O?(???? #?j?jU????????J?0?^??G +h +qS8??TU/jFu]????~zL?7???*???9ajbnx?G]Rk????R,??;???????????;gk??h???b???m??{???r ?1?U????)?????f??SJ$^,{?5g*? +???g?k?~T?.h}????? ?Q?????6I+?R?????$0???????K,??W?a????97Vt?/(2???#?b??X;?_?S??|???(?P?"??%???d?5???,?J???0?&? ?b?}??kR?U???W?7?^c?I?v??vRmw??b???x?????????W??????)????M??t??,?RK]????.7??W6?A.??]?;A???????t???E?/?ZIq??????O????_?O???v}?? +?i4???? +?oaL?7l?~f??G?7??r??o??m&?x??K?M|?4O?C??????H?uW??aXE?l?0! +?*?]6?afzU??????YN??????????T????vC?N?iA??? ?/?a>-?[?????f?? c?E??R??{???????!?!??X??C?@Y??:?!?3?P???????=?aJ|N???????Lz??? &nZn?[???OI/cKz??????,?H?????N(YJ??@Y?\ X?lT?+-???.1?u?P?^S??D?]yC?????v?/?a?????z?>[%?????????>? +??m??S?E?r?*?{?????c?c?????r?) ????D??????6-o.???6??F?? ?? +??t?????(??6?hs/???M?;???u??C?b?kV????_I??T@:?'?????4[?????% +??.A?H???; ?!Hv??d?Pr?8?R?}@` 'r?xl?7??o????G`e?????+mg?Q?Q?Q?xXHk?b7???}a??-xA????a?xz??>???a??????>??G~? ?t? + ?(?!O?YRHo??,????VQ??6h? +?2 ?? ???F??(qe??aJ@?u?????(?%??????~??2? Z|-??~??u??\???:hc????>p?.??el???? +???>x?>?????Ps???1?:?Z?P?jS#???1?:?Z?P???j?~?C?c??{?pL??r8?6jH?xV?"???N ???N ???N ???| ZzuZ?????uYW?M?`O?=?`?6?;?L???"?X??D?(?S?r?)%??%?I?V?-[??????E??+?}(s%??K???Q?P??? ?r?$?R???)?/??1K5K.?? Im\i?>`je?R?? +K?y]$? +?k??j???<?CR??n??????1?qV?Epm%??y ?&?\s?????~R*=^+}G??a.@?f?Z??3?#?e?l??????????n?5??=:??????K?7??B>?????3???FK+???? 3]??M?A?\?H???????`?&???????Zm??_?4g?E???5????b?,????LQm?O?6-:????a^??????C?6)?.?[?P!??Vk???????C??)[???gK~??\?y??^#'??h?"?%{?.*??????????:s???qT??sZ???w??c??y??4]M?v??N?afK????va??,????uFomRo ?F??apT??b??????N?-?pX?l??f???i???{????1?+?W?R??Z????????d_Q:??}M????[????d??p?S_???)S?Ubi?????`???A9J?/ +U?+?)??,? R?%G??? S?Q?R?@^?+?????c? J1???(%t?2Q?J????i}?2C?I??:;????1c????@>?Qi? +e???*?U?*?VV+??FY??????*}?x3???)???Xh5?f?^? +??(??.?Y?=~ ????l~?J????7?J;,???????]?Q?q N }7?)?wDM?L ?)x??UF? ?i? ????Q?8@????????4?s'BI|*?PpKh?(06?q`? ?U???.??,??.e?{????P ?X???A?G??>??????d????~ ???????w?$`l????qT?????????Q`??K??2%(S"??V??????A???Z????, ?G?z???????I???K??G??x?b:???h{????F@??PFpL?4x>?|NN?3?* +VB?'? +NJ?'tR???k-Xi?????w??S?? +???xkh{pg?`?f{p?i?*??j????q?&?????SC??4???<"}@?6???z??????????k???r8a?o,??p48:7Xz????k at o????????cz?9??k?'???7?y?9???=?&?X" ?????C:?)|?T?3l~RB(?>??Ys?????s?#???????1?????%o.I?Y??m?C?)????8y??(o{?????????????m???)?3???Q??"~??Tu?:?45G?!?:T +??j.9???pr??j>????(2?_????z?7?C]??H??M?M?S???;?P?????P?@?f?f?????F??????????????M9???????????????4L?O??r????)O}@}??????a?a?WU??1?1?>?>N??'?'h????4?Q?WQ???u??M}?.R???D}G}?.Q?P??)j??F????c4U?H??.S?S?E3x6BW??|??b^L???O?????">?O?z>?O?>?O?/?e?3? +??|&5r?Q????????si1/????W?JZ??x-?5?O??^G???y?V????b??V???j??_????|%_I????ZZ??????|_E?j??n?k??(???????i??7???F??6?M|??o??i G????|+m???6????o?m|;?N??|??w??t???A??]?.?#??w?????????{h'???????7?|/?Kw??(?????=? ???????^?<????ez????1????_?????o?ot?????'?a~?????w?)?w?w:????????=??x=???c???D???? ?? ??????K?s?9????????Kz????W???k:???????{?????Q?U????;t???u7?]??c?????{z???'?I??????Q=M?Imz/=????????z??E???z6?????s}?>???????_z??G'??(?R???o?"?????K`???p?z?*???UQ=-?ki-m?????????Jo??t??a?a?,??b6?T_????}Wf???3?o??]?6?QP+}G|}?Z?{?w??Pu??|K}????????}?f????5???W?? ??N?Dv+?"?z_?o?Bx?2?o??in7 +?2,??K??\?%?E??2?a??e)?5???cX?qX?q,?0???f????M??{/o2?g?????=???????{????m?}?n?I{?? ?,??n???J???3?G@??7?~T???c??J??????8{?m?.???^i??W?za/?=????^h?k/uW??Y????m???$?6g?A?Z?m?#????T?=?7???m?v???????c?????????C??>?wj??}?t?6?v??U????^??:m???.???o?AH?u???9?m%???y?L?K?UT???5!???$i??>*, +0g0 +m[??h+???*?m?mu?4[?T??mVPm?v????????~??m%A?)??H??Q?X????????????[???????'?a?f -?E,?El?X???E??E?N2??d1????k?d'?2Fr??a?]?????? +?{??J"1[??!??ev?????9:?hm?????V??m???W?? ?2?L4[???N[??#[?{6???hg2???3?x????c??A??z??K?~O+xN?#???e??|?1?8+?p {?????' ?F?QH>?9&?s?E[?QH2??:F='???1?I?m?s?{??m%???1?E????Z?y.?~??????%Z"?;???Jg?????D:??I??3 ?+?4??p??g9?;?T??????????RB???y??????6?Y?7H?(?wTz??A?i?q?s???{? ew???Iy?u?J?o?3?V??6?y????g",??l?o?m?:?Vq??Y????@2AK????????k????W{g?\#e@?b???M?p4w??'%K?K?!?y??????????J:?i??5?y?????< ?q?F??s??,?=??6?u?e?+????9?o????pu???,?:??.io???*???P_?>??????pI&???n?(I? C????yE@_C/ ?????y~;????t?s??/ut?@3?5???T???$??????R?) +t>?>?????)?x???Za???bG? h?t??T:??"?H?X????Q[???@[Cv]???'???G?1?:???7?g?Z?o2??n??(=?f?7$?7????????yE?s^?????z????&=??R?8???=???'??&?????????k?? !???vS?c?1'I??-????????9_????^??K?T??] ??????????????.(:/??1?d??fyJ?9??G??????,??K:?-??A????9]?-????jN? +FO3:\???????$H??Q?&?q?{s????E?;r4?V?qOM']????J??????]E9bl????]E????5Ci)??^W~?C????????K=???c?'?F??Tc{2]??s\e]????????g?g?????"??c?:????1?????U?)????w=Wiq??c?jE?-??~Xv?W????\t?C??FXj??b?????????#?%D3?kPa?H&ob{?? ?"?????>??Y??+???2?JD?? he???6???1X????{.@?????g?w2?u?z??N?{=?m????????? +??@???{Qh?? ?'?9????;([???^??}???_p?z?L???E?Y?]? ????@W??????E?X?~?????? 8????????? !???P??y?;?????4??9?? p4wq???Z??8? ?`??hv\ FB$? ??c???:%??t-?????_{??M|?`?[???? ?`????? w??W3|CA?;?7 ??y???;?wtV?L;?I*????1?^?Y??5??? l??6?F?.??s?????76???I?}W0g??????}7??n ?v?cR??T ???x?7???]G???k4?9???;!_????`d??:s???H????? ??:??Jw????????G4D?3?'??K??????3???4?'VJ3_-??}??g>gEp?5??X?<)????zIp?m?-a?9?s????O???T?? NP??D?G??Z?C:s??T?hlq???3???s5?G?g?IX$??m?9??]v#??Y??*?? ??v??:?s?? ???z?\?w????? ????p???rWq??W +????wg??W +???G???K??????????}????w???W???.??????-? ????z?i????????l?n???????7?J?[@% .?I??WE(B?N??D??{?C??w?????5??|??J?b???Z? +??????w?????^{??e?v?v?mq????v(O'????????E???v???g????????O??>+??9???CO??????Q?Z?????? +??9?^???????=??[??9>?;????????3?H??o?????c???????y????m?_n???/q??zicOJ???????@??=?????q~?????/???$??_?o???]??9?)??_???U??????1??? ?????_)&s?\!!\)WJ4\WF8?=?=???p???/?/?%~E ?VH?? ?l!O(? +&?\????>?YK?BI??? H?4???????$L ?a??G at yg???%?qaD8M??????u~N??C1i????N???????/?????&??? _#??j??????]?.? ?_ ?b??E"?~)?H?c???%?XS???c?b??7b?c?IC?Wc??o?~#??|?????!?1??? +d+?|XA p??S9????????K?e?*???o????????y?9?x???_ 1B??$? YH!_0 +?B?P?c??_?C?e?B??? +?? h??? 8y?????Gy??6P?=????3n??:????@*!?d????/?Rilml-?J???C?,?9???C4 K????6 H,!??? ???!?\????6??????????k;;?fu?i?1???X????i]???N??X?Y??S??}??)h?j_4d_S??zj];J??iN?`={??1J/???z??<*?e?8?XG?\?(?U.* ?N?C?E??3h??H?v*T^/?(?ca?>Qm.??.??Ei%?de??/?uZ?h???????x?F??6?/?????[Bx??~?-Y??2D?????xM???Gl?p?Ur?????r?f ?+?5j??m?m? ?}L?g????????????9?????W?????4?s??~1???h?>UN?[?i?d~{?????? ?????????????SQ???????????~?^?????v?????"??????7?^#t???? ?1=SL??S6{?z*^?f?n?Z????c??#?][??s6??O?A???O\? +??oq?v?"?N+Wm#?sj?v?^g;???'?.P??????m?}??e????????>????m?b? m?#?U_d?U_j??????l?kls???????Y}?m????\?j[??j?????8;???lt=*#???#????ITl??w?Z?&?????O??l?C??l?K??l?2?h???kOJ????????Ug??M??LS?iw?u M?%S&(2??QVaP??T[r?&?4???}??$??l5??'?O?? +z?\??a-?/~J%m???GH??&?KIO???r?x??????d^1?Y0 +p?0?????\?c??????????B? H????T?????v?4??0?4?e???,?-?????? f?e?2Y~-???Z?,?a?[?:????????e??TSh,???=?|????$??/? ??N?+.?'?~^??a?Y?e??fk;?]?????? ?+Ly????\?kT}?^ +_???^>b?Q?=??2???4????Z? ?????Q?????w?x?yH? +???c? lw? +?o3?y?????w????xi??t>??/???????????_??v-1?d????,c???d????I?E????~??7Wi????????*N g??V?????8seI>? ?(??]?? +t1???F? ???b???J??T??W?8|U-UG?:?<(????Pr\h??V?T??:W???P?????????)s?uY?j ??nU?R?0/|??V? ?????o?3?A??v?????|bL"c?I5?%%#e????cR???q/??8b,7?6Z??@_0?C:`7D???q??b?2??c????c?_??t????YE? +??K??W??????!?=??M?B?K&?[?e?h????;????"?3??H,??j????r +??!zU???N????2?????1?Cm??~??X??v-\g??v???RFQ??X?E?E??[?hY>,n???!??Ez????/F??????W#1FU6?/F?W??rDy?mU?????._????6?E???"(yM? ????x???#?d~L{ulJ?? d/qyu????Q2?F???)?t???#???Y???????<9????????M"???? ? +p +? ?w???#? ??????q?P??C?d CA?Z?? ?I?^??+4-?|?SdSPp at A???z?A???>R??qO???=?{\??? +{|H???=??4DKX?3??h????{\?]?z??7mo?s?i??? +?)5[??n/Z)??E? ????o??/{??oz??vG?v?v???,?????;?9??/?ot|?}???}???}?????Q?????-??~??i4???[?S??????Q??I?[??????????A'?????????? +o?f?????\ +_?b?.???S~????:??????Mn????f?V?&w{?{?fK?NK?B????,9?,??????+??++{??U +???j?8?\???>?????????bW?.aW???]5?\?y?F???!T h9K??LB?TJS??Q???Er +?iR?j? +?C-??Cn?~??;??9??O?? ???????n???4z!????I?S??|?%7?>??;?(7E?rW?+???B?4vT??#?h(?W???~M??????$9C??wd?>?]??????????#/c`G?w?iG9?A????????!?C?????? n?l????3H?_ ?V?i???h? ?????? +??0??5???]y ??#d'??0$nzMc?!?o/6$?7?e??? ? +???.?q{????VCY?mC%?=C??????q????(?8C?"?(?2???k?P?t??(?G???3?xcl?_?s?????436?W? ?#?&a_?????oN???0?????D?o?D?????C????#????;?6?K?&???>????o?%?-$7QA*@?s??n????????H?VD???d_??\D????????l_FZFZnV?\?/=1?4?a??=?^ :(?y??Si;????sv?lz????????y???7?NEzQz??g;o??????{w???E?}????K???KO???i???????S???@??u?YK!3???B2????,7?????w?C6&Z.????!Yb????(??????}?????S???m??F}#???X??????#?J????)r>??BeG+F??P?????l?i?????F???D?e??]n?Z???EH\jijE??c +?VV??!?W?RE???vN?"%?"?UP??1e1e1??"?O??Gd9????? +???????1???ez??z??^????????!`???r??G???pI9??!????Oq +%?R???]?a#l?K????a??E??t?RAZ$<[l?A ? Q?2Cz;??H? ""5(H?( ????t?????!?? OA???B ?????M?????????5??????k???]???s???f?|? +?????Yv=?5????UX?|?>?N??al?? +??-??????$?=?=.;???R?Y???oVy?LR|??Iyk?C?? +?F???y?Muo???d{??m?????njz???bs??Or????K?yAv?????%? +???? >?w??U???3?????=????&????M??&??O??p5???S?T"K>?;?S'd??p????O?O?J?? 9U??????r????i?)\?w????m$?:???;?\q/????uS??t^ +99AN?l\???V?w^}? +?yp??????????c???}???H???Y?dK#??????h???-???A??Xe'???4{J? ???1sYX?W7????kU8???gWo,??z ??????$?@?n?{?=y +??u?W?UK???-??P?Q,G?1qi??GU?KYT[?}y5?^ XP??*???z&+Q?G??M?5?^W??^?[??=?w????]KrF??U?}??O???.??5???x????s?n????? 5?????k?????y???U?Dxy?\?1 i?h??????ES_+k??????+??????c{????~??E>?dL??-%y5?dt????'X????????=??%[?|??d6???1O??bYVof?????sTfVfQ????&???j??>cB?(}???c?h??WVf???|??????w?^q?,??jOm???????%?Yj _O???y?GeL?^???"7{???K?-W????-Q?-???>.???xK?f?????w????-1?%W$?f?J???8???J?u0{\?7??+?Dr????l/??l/?G?+?+?????????^??j?????Y????*v??o?]*?c?S?I???1?+????#W??ny??^?#O????_?1T???i^W????l'?E?4???49 +,T>??$? n?d???????bnG W?~=?j???H????7?"1R?????3????!???;???Z???H>?]u? ?{?)-W???k?+&?+??R????b"?r???Sz-x"??X1X?<????4?wCKS??u????)?>???le\?b??X?,J;???Y???*??1???r??)???"?A??{em?Y???????W??W?o?5???W???v??Y?3????7?-`Z?? +v/o??Qe{??9?c???4?(Sy?M???q???Ku?|?e??}??(???)X?r"?/?e?n X'??X??V,<NP ?G?6?Z??@??h?(??+?????(?uqo????W?/????uGy??m??D??Z??`??Z??W????o?#?O??o+? ????F#??+YZ7?????aQ??a?r!??D?j??`?E?|????:E? ?? ?A.A??50}?? +??????u??`8P????tZO)?r?yy??w?U?3?bp"|?be{?i?a?????4?,??z?D?pV??c?9J,????q ??W???{yN?PY??+ +???E?u(s???`w?2p????~`??A!?^l??V]p?\Q?^????-`??VE9?g??????1????:B??*pz,G???y???.z?2w%??C???d?\???f??rK.H?rui??d??:???5??9? +?Df?f???????t4oQ?????????V>L?????V w?O&???,v??R?R???=?h&W? 3??2?l?X ? >?Q??SV?tD~? X??h=???o???y??????=??r?+7B?eA???D?Ze$_h???H?"??c>y????@?? +???8??b?*s????P?8??? +?????58 7??1?)??F???U???W?>d +~?(??o?m??r ?&??{-?I????%?r}Ty??/{-???s0?@^ F?\?????#???????7????V?? T??"?? @VJ0??o??>??5R??;?b?v?Y?rkd*?|d??????U???M? ??`???#??????????e?'?i6??Fw&D?dp%?|?????d?'~? ` ??l? y u?B^ ???'bv?|9???????q?? +;?(o?d??g?h?s?{?u?3?d?M????{??-?????<6?<@?_?P*?u???9????*?????Y??g?)?7??8?*??~Z71??(Wb?/??|???}4.???(o?R? +$????;??:????n>? ?????4mm??`]z2 +<????_.?y???????`s?????`????_O????0[?CX????V???W??@????3??,?v?b? ??[??r,OB?'?l? l????=@4???L?????fp!s???1?)??1???5????R?#_L+????>>t????T?#'?G?+??A??????tF???9???????WVJ W?!??U????x??????0W???G?}??g}???nJ????~+?f8?6?3?B?0?o??????#??W?|????m?:??$N"? +?i?FiX 3? ??+A?????????7??D?hk#?L????????~??3avD??L(Y+?L?O??'?????YA???|?T>+H????b +4?{?????X?? ?M???%?????????uiqx?qG??\?6u???{?G?????r4????=???la??k?[ ?_?????H?v ?????? ??[??r,OB?'?l? l????=@4????E5f0??Uc????c)??Z?????O?<0?o???G???J?w??????<:??w???y}??H???3?B?!???d?D#?$??Ag1?0h x'r!?" ?5fr0???????X????g?T??5?`wm1??^?D????9r.?q?????S??=??;?%}?V???????*?}?????F??r|g?F???/???"_????03???Z????oo?W!????????Y????|?O???Q]?mF??V?Fr4k???V??1??)=?s??h?(??*zM?kF? _?*????L9f0? +e&FC??????_G?~3???S???3?>T????{`???5?"eL)8?? 5?h?????r?:?k(???]?~??u5r?\??R??4OD??|'???o?L?FtWSW?&0y?v~??Ba?t???a??|??? ??,??8LuR?m?o#???=???I?@>?????H??+???M???????F? ?$u?o5l?"9???K???*? .????? ??P???aV?^??WY?A?A????:???x??Z????u??C???$?????St???|^???%?? x???~???o?&????????????4p??K|?????????.?'?r????{R???????M?????Q?G>?????????X??\???R??????n??||54??q????\?'f?G?c?i[w w?? f?K?$??R[L??q?????y??H??O?? 6g/$??An?~y$??3?>?&^r?????V?g?]|???y?h?A?_????????{?#??>Lsp'x ??+r9 ?;???????G?/A?????TL??????Q??t????:???2g?"6???pS?D?g???M???????j???1(@??@?ZOo_???|F?z$Gv??????i`q?]?]??i???T?????|???Q??Z?v?????? ???!/???b"?v?????c?k(? .????? + ??V9 ???]M????#:??f?? ????S?R???????~/?H????1??b????Uk????n??^?6_?[?dvz?B?F??8?$???w?+?V???9?ga"?_?????V?L??+????y?zE??x]????A?<.??????*?o??|Miw??u?Vo?6X??S ??vS?~ +J?F|?=??o???0???+s:???^ ~???x?????????fr7??Xg????#f\???oa??T??A??xb~,?????n???+?W?#?A??????qJ?SZ???`a???Z?"o??b?????? .??7??J??y???h???????)ax~&???W?T ? ????dT??k??&???N???c +?3????x??|?y?,2?>?7S?>'jEG~?_?)??_?5???q???Ld?5??D?3?7??>>???5??k???u?E?iy???k?-?_wK??@< +????? ???2?;?dG>?/?v???h????~??o:?n???g?2??3??3??s??l3?,6%f?y??n?????f??????? +?+?M.M>?? ?e?U?'??X?|^?O??o?L???,????9?$_2?_?O?D??O&?p\?|????Z?%??D{Y?u??\????dr?e?79.O???$??h/O?#?JD?]?O&?s\???Q????$?I?K??#?+?c???#?1?????g????{???3H;K??b?|?e{???b???=?3????Gv??{d?{d_????G>?=?i???????#??9{?P??/b?|?_xd??k3??C??=r$?Hi???b?|{?()?=??8b??=?m??c?g?1?????s"????/?G*#?H??#?D???y$e?#)??H?EI?GR??#?T??T???G??w??C5?'?z??????????i?????9?????aZ???>JK;?????qZ???v#%e?\?????2?L'O??# ????????h=??N??+??????v??'mko???w?7]?e???h.??? o???d{%?S?????????????eg\G?F?C?}5?_?{T +????????^?^???D?7??*??V?8?????m??J???xsL?a?as??x?4?????W?]??4?L??j?Z??V?'lhC????f?O?'?r??}?>g_?????[v??d???N??~"???_?R??k?r?O\w???uw=??????????*W??a?:w??nq?? n???&?)n????q????7??r????????En?[?J?3?/?y?o?%??{???6?Mn???>r??>w?}?J]?;??s?? +?Af?? jg???e?9?9A??q?$h?r?VA^?&h?~t . +.?k???+2??\zaf?Ya????^?0<7l6 [???a??C?????GxixYxyX??????X??g??o??w?<4?M?'^n)?p?=O????l[???v{?I?;?&%???T?w??L????m2???^?l??T?3d?dV4?23?????i???Z?O?O??????????4??'??2k??2sO??2{??3e?3?d_0g?L?b??l?f?7???l??}?4???drdv??sd??4?d?w?se??H6??~b~d????&??=d???i??#??in??_??LK??\??:?N?????'????????f>k??????? + ?tY??~Y?Y?Y??? Y?????*?????????Q???AVh3[Vi3????f???\??0/?3??a?y$l?7s?Na'3/?v5???aw?h?+?e?}?>f?????"Y??O?? ?c????? +h?*b?e?/????m???m???G???????v?]h?l????f_"c?c7?-v???????g?/?p??Q?????s}?????n???u?n????u????[???K????E?????r??9?????n???t????W?*/??????? N????????+?( s{2W?~? +??FX'??s??a??Mxa???KxqxI???ga??xUX????XG?? 9-A6??f?l????* S%?T)2U52U?*?????????H?d?d??d?Zd??d?:d???H???? #?%#?IF?GF:?\T?\??\t6??!y&???????VO??qy??G?~??? +?+#/h?????r?]?w???cf??\??????????cd?E??@"*?D????~,!??)x?J???y????"(b?/ O9?lB?&?TP?a?M5? ^??O? +????????3?g?????? ??;?x?v?????????& ????r7w1???U??P?A%?? ?B p??Ya4(Rs???S%sQ?2jtEZ?4???h?M??\??T?u???\?a?-?M}????7?H?????6^:?a?.?u!?RR?W_j?%??f??Sf???????C #|"Z .?x?????"??Q???Uht??? +????}9????????????#7?F[?K???jS???PIu?J????K?a??3ddT????b??6$??QAc7??7K?????x??T?i?=?f??pE?5D?q??N?e??c*~;{???E??? -?q0????SW?[?|???v??? ]&8????P5???q9?#??IY?6?x+,???????x?qBZ!???1????\g???1?@?k~?tb#??K?'Bt,??a?ac??o?? +`?s"`E?K8="B?K???,?4XR??e)[*?>?L9 ?x~??|;G^?k?a????e\W[v????Q??ejg??P-[?fd???H????? ??'&0I:g5h????I~x?|????qR???m? +?%???? ???k4O???? U??Ses??eSI?.?s=Q?P?:??;B@????{???J????w?G??????b??- +??????G??|]X?f@ +? 2?? c??w?b!???????*;?CB?ka??/?? +?S???( +??[?"?????|???l?????q`???AtV_??V?}^?? ?.?????>/???,????X???;N?ud?a(?R?YNq?????L?+U0?"d>:4u\&??3ohP9??H??8??j???????J?0?u?$LY??]S-6?:??9}YK?????[^?]?????C???J?_d?/?b??j ???N?uf?r$??sd?F]??Z\??,&?&??m"?ZK?????[5Wl? ??c??< ?Y?*?P?Z???9????[_{Nt?f????Oj?l??:s?=}??? +?^~??? ??JAr?x?pU?????6w? 9???q?Z7y????- ?fU?b?<?~?0?????'???2"R2`??!?1uk????Q8?T%?{??r??&??2??5aB???S???u?t?b'?<4%R3???lm? +??*$?@@]u???#??'??tFi?jH +D +?Fg??gE7j??!?d?????!???N3?a??8?m?jF*?*???????1J???LB?>?"??Pb8wR ??????B?"?E??)}E??????k???????tC?B?k? ????X3"??`?$??\,???$?"g.?wF?? ?[????P??????>??q?t?2??G?p9v?r???g?????>?\??r?;?????%??????e??L\??Y???/??QJ2????E)}???kX???[~E+?n??d???jc ?v s?n2'*Wv??D?????T??x%}?kR?[?WX???b????,?I?L?H?e???;$Cd??????(mX??=r???a???1??????/?=?m?????B???$????e????Br????(??w^?;W??%??'I@??53?Rs??TW??D?\rc?Pw??_?9?????c??C?r,???????S??u?8?X???+?{!]?8g +q$V +???q???F??QW???:}?68?}?9x???X_?R?[C + u??='??v?t^?WHa??_?????????- ? +!A???< ??@???3?????re???6R)G?O?3????OdB????????yFhZ!???????&N??M?r?tv +?q`71??)??om^U?.?[??5^???????i??a?>A????F?????Y?c??????Y??yvt?sgjhh???7?am??N?~?q?dvl????????$?|??_?O?5t????j/??sqTPo"?F,=|&?yq?X?W]??5^b???EB ???MLG=???????z??w?d;U?7?]???[????[??LT. +& +?`??g?E???.?<^"X????c???>???B?{~+a at q~:p@???? +??E#???T"?????w???;?'>?CD?qsO?m???3{f??M.-*Y??|??O??KO?*S????$PH?gD???&8Gh?v??V?k0?J9 U???},y>?B2????@HV?t?5??c?G??????????????l???lQPL?Yk9?9_? ??z?3#?A????km??fYF +endstream +endobj +597 0 obj +[ 0[ 750] 3[ 278] 11[ 333 333] 17[ 278] 29[ 333] 34[ 611] 36[ 722] 38[ 722 722 667 611] 43[ 722 278] 48[ 833] 50[ 778 667 778] 54[ 667 611 722 667 944] 68[ 556 611 556 611 556 333 611 611 278] 78[ 556 278 889 611 611 611] 85[ 389 556 333 611 556 778 556 556 500] 181[ 278 278] ] +endobj +598 0 obj +[ 278 0 0 0 0 0 0 0 333 333 0 0 0 0 278 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 611 0 722 0 722 722 667 611 0 722 278 0 0 0 833 0 778 667 778 0 667 611 722 667 944 0 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 0 556 278 889 611 611 611 0 389 556 333 611 556 778 556 556 500] +endobj +599 0 obj +<> +stream +x?}RKn?0?s +/?E????B*??X?????C?T?e???????i?X???????m???????% ?n???w'+???h/X3??aF??me????d?7????4e +jg?R?????lY(?o?q?4?~4?B? +#;??$?J?K?;)Kv??h???????,??csrd??3?b?!?????l?????tBA@?Q!?????&0\????????/7X???h{5??}?7???EL?????1Y?,???i?ux?>?? y ???"???+???N?w^y??m n(??? ?????L????8? +endstream +endobj +600 0 obj +<> +stream +x??? |T????s??}??d??If&??@$?m??%I?(?P?c???Z????*u??m?j?????U?Z??[??}?N@? +????????????s??s??:???^?|#?13??"?A????i???i?z^????9??y??o ?b?L?[?LZ?{?N@??;??F???~'?nR??? +?Z???n@??????[? ?d??c\6????z??????:x???9?{=?D?*??.?@?+????p"??8:Yf?@i??Z6???*???&??o?Lf??,P+Y?6?A??:?u???~CnrA=??????~M?????????????Q??4??L +?_RH?0e@#?fQ????)??,h.? ??(teCS.4_??S?ICh?P?"??St(B?A??*??R1t8 +U??Fh:??A??ZN???(M+ht??ch$t,?A?Q9tu???+?I]??h?? +=M????C?gi=?9? +?y???@?[4}?6B?H?@_???/???????U?}?6???5}???I?A????ok???.=}??T_???n???-?>=?N?Bwh?=??????^?~D/?/???~B???^R???????j?)????>G;?u?.M??7??7????????????,????~A?A?}??????h?kz??????i?M@U?*??????????????I/k?'?[???eM??{k??bM?`??~?~k??^??????{k?vmM?????][??kk??}??????o???m????????Ok?+bMk?nM?????kzo?t???5????O??t??K?Y?T#???h?|+ +?eE??{?[?????h?o? +??5&? 7? +?_?pC????????2&1?o?f??S?l?G?`?r??!y^ 8?%??]??W??Qp????[????Dle???!"(Y?T??`4???I?s5?? ????!?Yd CX&[?P5?I????+ ?S?l?G?`?r??1y^ 8$kZ? A?????0a??y???[?]l?l0m&???? +??l"? 1?m????[??V +b+>??G?V???C?5Dlu??l??vA ?^;G?a??iA???i?H??L?NQ? W)??`d2[,f??,?F??j&??&G?7?rC?a???g?o&??!????y1???7?? ?@ ??????0Q4+J6??????6???O@~???`?B?H(???B??Hv?P???B?9???????f?????:|6?/?????~????????s?%#y^ 8?E????@ z????(??Kv?????2?.?=???A;e`?Y?dgGBy???Hppv^?P???Dsp?t??Vs?u?J???i??Ip9?-??$?? +~??N?}???vA ?^?cc),#OL????+n7?n?#3ef:(&*????????9???y???Z^??hbn?mf???f`?;?????$?? ???Rb????^8??3+y^ 8 #O?o?@ ???'?a?b?r:=?0?x????o????????4d?Q%%#G?U??????YQB#K +G?? +K?? +sa???r???????????9???>?t?l#??H? ??7?, ??????@ ????R 8X??G>_zF??4????PQ???%j(+3???r?/???vLe?)>???<17?/*J+*r{ +???`??h????AIp?~??xc*?P??????b?a????]??W?'???Y?????#?? +?H??/M@??~9?h???UUc?'U?????UMKUcGU?=n\bnXTZ^??-N????CE???????$?\ +?SRl#??U? ??7????M?*???0q?G?5??)S?M?o?1????c??5????G?????{h}???S???Y?U?h???7v???Q?e#??? Z\T8? ??????hV$????i?To???r:?6??l2?:E? +??Nh?s??Jnt??B^????e???xM?????5????1X??o???el?%s?????!??h8?|M4???????U5??p?S?????????Y?????.? +w|N????u????}??s?E~???????/(????[?P??>???# +???-E?K?ad?|4????????O??1??J?}Zc????.?4??f??yO?w?i???wxsw?:?e??s??s8S=? *?,???????h??c???=???a?Z??|o_O)??n?ROI +?Z/n?Y{?y??Wr?O????? +F??Z O?;?'%?????nu?e? +?q3^Q?}?~????v?pX??????0???[-q?#z2???? W?i^?9???n.??)???Us?????~???r?wg?? X?::&D?:?;Z??????3??AzTz?cIm???[?xE >??&\??/ +??:???i?1vY??????qYCc????????l?5ncq?Z%??y%?+T?? ?$?f?#j?z?A???f????1??-%??{?$?)??????kLuC??w???l*$?@ +????i???6$I?U?? ??]?C?n9???-qT?a??X?0t1??H?d??t???v'??v??6!???]????#?F??{? 9?9+??t?M?cp?>???"??#MA??t +?j$?f?[#]?? i???}]???w_?Z???SJ?jK?:k?V]{LS"?<-???0?H? +?h.?J?yC?;????f[???T92?/?2?qr0F!?M?RI??=-1??6;?d?&Y!&K2??R7????*?4K??????&}???>]kw???4&a5??Y + +?|8;8??4??M8???-? +1?44?FJ C C??aR?n??h7Z?f???7*F?H??nu[??G?)z'?? +WE+;%?<??3Jt$?=r?TW_?????Q??p????nf?nE?bqw?5T?? ?? +??xYA]?0???N??nBk\? ??????Vx\??s??*??A+?jj???3???w?s??P???G ?#m?rF|e]}c????x /?Mu????a?;?U[??}???? +?8?????]W??T??fjvf??w?g???????? ?U ???]6?`g2Q?f?c2iv +?v?m??5?????/Lm?M?/???39????lR??????vn???0? j&?OA?$??????L?{L.?kr?v&?}gL??????m?M???ZUP???n?7?]???V???g,H??? +?;?5?Dc??s?-?yKk?)?Z?? w????g?????N?U???9+?Z?5:6?6?R??v???e??????>??L6?O6??kb??.??????????&?&j?"????i??&???|?d1?~mD??R?K?i7??H???????! B+?g?*?,??]xM?.;??{??? ldkz??hvE??`???e?V??&?? +?i?2~?Z????E?\????.?__??l????f???{?,?Z???Eh??????????m&S?????e=y5?K?e?L?????xf]?????'??????????? +X??9z?.(?D??c???.?)?\??=yb$????${??`?[? I???????)]???AW?B??????~?K?B???????l!?O??Q? ?D ?????n?s?z????E??4????tu????v;=?c?|?H?,M??.?????l?E?4??U?(u????ETFG??????????u???+? ??~K??<??????C??s?????LQ gi??-t:??g+L=Q? +D?L???dz?m? +0{+}????r5f??W?U?f?ZE?6Q??f????)?X?Yo?.Z???~Ko1?n?z????i????^`????^?{??????~?Jz)???E?????^?Y???E?????O?? ???I^ ?.????????W?(*?s?n?n?n??^???]z??'???7??6???v???v????{??>y????1???Ix?W??{?^fV\;??g??Q?2s?I?4?W?b???J??????l'|?IA??"i?T%M?q??*????u?:?5?+? [d???????l?U^*?%????s???v???78T????,%W)P&*s?e???G?G?Y?gu???E?K??????g?j?f?m???????w?c??f???m??r??]-?*?a^????OQ?A6Fy?>U?c{3/?[???N????G?s?A????[?VfPn??3??O????? ~???5RD???Oc??CR-??k?????f?`]h`%?_??m??????t?,?A??u|???WN?????K?]xU ?????{???B?C??u$)???????K???ly?~??&-?-???????[????.?t?????:M????5*/?If3)G????\?D? ???,?i?????u?R???4?9G????b??N(???5~ V?h??A??uv?U?Hyv?t:V??nTO?S ?????????q +}H???b?9????xm?? m?MP ??M?^Z??????????8@e??a?P^?z?^????{V?i.6??Q? +g?$o???GK??y ?V??????????z?~e?Q???q????{?J???r??????*?p??a???am????Y DW?????? ??????k ++??{Hqx??8??????}?6???Kf2?eB0?$??`?E??\X??`Q? J at mE?ETZp???V+?T%!?@+R?U?j??Ui????Qj)R!????fBP???/a?;??;??{?9???] ^F@ +??9???$t?glMnUe? ??????5?l?>W????.A?????Q?H???v\! ??>U??%?"?s????&????Gt?????&?? D??&?l0???U{9???????????U|%??3s;?????????????UC??y????V??;j??*k5Q!A?$???"?G?$7?ne?B?l???U>??@?mX?8??<?]L74?6???lCojl???m?-O&C???q:????j]7?k??????V? 2???y??a?? +=?]???;?f?d0G??n?t?c?f?U?Lr??a?????HC?o??[????????Iz??6???X?l???Ws???/?v??m??????y??? ?\h3?oki???/??J?D?*?W?%??????Lc6?m:???`v74???0???U?[0?`?0?????I?6?????D??rW?{??}?o?hPE?nS??]?h??`7 ?pp????? ?)???(?Q??=?m?0???????????S?(U?Q??5q????????TS???????2???b????i?M??RD"?|h??????;kDUM=??Q ?.???T??m?h???*?=?????mp?? ?7??????????*?Z[?~?%(?"gz?????{????????\m??J???????G?u?"?*?>i??r?]??????;??]?[*I`?l?b R??B +.T?dim???b2?t??`"*?-?u???EoX2?h-?l'?? D??X $???@??/?N?  +? ????????-?P??&??PN? ?kzF? <biIE?kj????Ti?$N???u[???????~?;6/^?y?M?????????????{7???f?}???r?~q2?9??p%??A??????]? ??9?*!bTuF?(G}?\~ YK????y? Q ?"`??WT& +?Ja???0??3?b?U????? ??S?)h???.???a????p2A"??N??oA???8rd?pB?`?l?? ?????'Yj??TPSC??????{?Zu +?i??y?+??? +`?H!NB;??A% SXg?Fm?2? +3*P?VfW?5(?i??^q?Au??????&pq??? +?qz7^??;q??6?Av?:Q??D?iA?V ?X?z?]???H??????????a/??E +?9`k/???k??[???????L???6j??}?m?e??S?S?????N?%??"i???_???_?Z?Y??????Q?????????K?f?3???kH?%0_? +?p$???(?R?E????)????Ak?`a???? ??VLt?`?j?PUj? ????????X?N? %??G??????????NR?????e???)3{????????&??E?EO???N?t? F?8?Xi?gZS??????+?9?????V??n?>n?B?cJ?????0??9?k?;1?????C??1&W? +?R?n??{ +S???b?????$?&?X*?J??RSia??v +???"0?????R???:???????????1z??|g^;?=L??x|8?????nj?Peqt????4Sx??(3??????~P?(E?%??m???]???7????h ;V???_[??_?????.[?.???/???C??zv??G|??o??|?????fo?l?C????????B??|K?n????????| ?)?p?Q??sF?"????J2v[l?? ?o?7????? +?G8?Z??:??p?4?W?{??W\n???s? +??K;b?6B??r?~???v7??S(?b[?{?t?js??????TB TB?? @%?.???????7r?k?w?K???r?di.??????;K?/??S??b.?y?y???O? +?????4??? 2LM????+??mY3e????%??n?????X??'???????????Nh ???????????t??Q?@????bh0?v@?}?????3????SQP??~5J:? ?.?L?5C??NJ???i?n\??cG?mD1Q?$?3?8F?&?KO?x??:d-???`>??z???mA??=??,???s?? ???>#1?sab.w?t?f??S)?????? +????3?%?M9`?????(?g?Y?h??zX???7??Y(????A_0?N????v?~????????s?D?1G ?k???Mg?3?????Z?I?????O?t?Defa????????w}?UU_d?????K/ +L)??]??]?(rc|M??????]??G??? +?-nT?e"??X)?V(???\?i?UD_??Ot\a?Dq??? ?S\??w? ???5*fz[+????N?? +?^??[e?P???\v???oG?mk]?$;??????^???-8?????H?4RW[A=???b%?fF?g?3K`???8q?s^?q,?????E??w?????????o|_`.???%o??C??b????@?r_?>????y???????V????|??????DI!b?5`?WI??????#r?????y6? ?t >;????????Otu?7??????t??4[_?-'??L??d\?????;?D??&?~?~*????7?r??]O?6??kA??HS??"??r?????1?????q?,??h?????JG?????E6??? +A????r?sD*?y??????????QpXv?0??B????#4?f2?A??~????????dS?? s???'?!???BS?W?>i&?dy?Q?:?5.tFrl??qgM?????(??)ep,UY?S>9??(9?r??????./?Uy]dQlA?-??5????Ra?9??? h??+??????N?}4?';?????b???????4Iw?&TAv?W}??-a???l?????2?FwY?9B?N?E??????????J?[I?????)k??9=?4?????6{?=???' ?? +ri?v??g???,??S??????5????#??W?~?qb??[??>??+?+???[??b????O_????^??f???Eb4y=Z(+o?'?G ?6?????????S?7???,?H)O?.vN?????t?sT??????i?6???9?*.?|?K??.???_????????f??0K`???6g?W(3???:?e?Eq?y??d?O&?+?g???0??Rx?7x????????EI???E]???Y]>!?>?E8?^??k\??}?-%.r\??2?V??jLH'???k?GO??%????????U????? +?T??^????^D????:?? +?=2?3 IUi?x?y?D~?? ]?_????)????????{??S/???dz?6????????s?|p?t????????,]????J?.R?????}???z?a??'?M???}??)K_X?? ?^6???c?o????]?3m?????m:?w\~?/j*v-????a??V`V???+?m???s??=?????X?N?z????dN?`gN?X???S.??3? _[?V????????\???????#f?<1+?????E??????)???+????3?@? D?o?*?Q{4?Z? +??>? ?????M[ s?l(?o?I=??;?n????d?9?M????"??N?c??w??y??;???v$????? +|????? %=AR??????c1wq???`??(/+XRY????%?:cY??@3??J7)?R??,???cQJ +}6Y??W???bLd1&?X*?b?A??2h5??y?IP?df??ea2a?je???W?d??? ?o?~??K?E??p'?)???*N??|??ZV????@??????|BP}?g`?"?p??"???^F?? +#???????(<+??p?L?i?N at N???Id??.$?o??/Ox?M4?K??z?-=?lE???ZyC???\?n??c???K?? 7 at f??. +?M?????l???V??B<Y?U+?.?V6]f?B9?????X? ??+??R????S???}?6???5OF.?ex?????V??3 el??- ?iDsKjN8???d??C??R??dy?=rP??????????????.???????? ????M??vR"lql +86?F?VH*~WHz0?DM4???t?O???B?wB??grA[?k??ha#? ??0_v???N?t?? ??z[p???0???d????l???????MD?z??v?0??m'mD? W??w???????igJQacj??Qd?c?gT`???]J9??2?h??:QYQ? +????.f???'TO??A?vA,C,LN?????d2? ?L??|?'&?=?e?????,?w?????F?%??e???u?J?w J}?>??U????T?"?:???U??A?#\?x? ???????????zi???{B=??rU p???aT 2??~??|lcBdYQ5p<.?I?i?g??x:?&d?a[?????"+*+m9?,5a?K4?u??]X?V?n? +?}???? +J????? ??'??R<??j?P L??gB? ?i +?"N??(???g ?????jC?nd?!8??(? +?}?@K?D??MV???11??>?R?????????$???^?q +?g???p5??'???% ?N? ?wH??#?q"\???p??:?????37???T????w|????????????%?u=???fxW~???'????n?!=?w??p2??A??e"q????(??s,`?hQp?? +8cz)!?B!???@?1M?????lB? m?6C??-?M?Out?????N?g9??0???????6???????X +;?Y??.?=?w`;?????????M??f`????fd{???H??8?v??????~~?4#?|??????^`c?O?????>`?? +?`?b???8????L?2~ L??cK?5?????? Eq?qc???E??(???O jQ~s????? CQ????????*LU??????i?????)????3?8O\S???_?s??4?(??][?o`g???I??Qrv?0?3]Ra?S?S??00?4?cn???L?????g;???8??E3O????Q??????=?m??t???.X?Uo?????%??4??#???O????5???w8??{8z??w?!?y?????{???6n?????W?Wq-??b???GN???;3P???[s}d?9?w?y????8 " +??l?S?I;R??????,???De3?P?C???H"??_$d0?Ld???V +?]???'??-?h?b-??X??++ ? H6???????;????????????]?? [??U?ty.o??3???4??,??f?Akp?Vm?P ??I????E??g???y?m???-????,;??Bt?0 ???z"?p??0??=?w???AI&=ue??????????ih?~?UP??6?7?+?]j???T??U??? ????$???Q?0?G(??(?:?T"- +#??r?rv9??e3??Ls?\f?p~?????????\?????;za2?i??xD?#*=???9?!2???J??? U?e?t????2?c3????fW??,Qi??+? "?+7h7k?????u??????=???[3?k?J]zXY????l5?????????`9? +?>~G??g????? ?pa???'$Y:L*- +3 ?s>s???M;??v???a???)\Y??4. +?+?????????p??%X+&J???-E??G??6[FNIN???=sz??%3^y??????:n???S?k?>??u????m???????s?9???????4??y???=??k???]{?????Ug????????????Nxv??s?On?P8??^?}?L;????.{?]??m1?T???v?????F\?pF<Ud??Gfs?Zw???=n +??N?? ?fp?J???Q??_?? +??4???U?s??CQ?8I???x?z#M?d?/?M??????z?>??????J?????IJ(?+b:E????H?i???? v?wP????C?#???q?O?g]??5?_???-??H????wn@?????Z3 ??z?????c?????j???%?"?'}?-8`???W`{???3? ?Yv9???xI;?",~FZu???+??N?v?{=?S?? + at X5??U???fj????*2???????C]????(b>,>l?Sm7?(???\^??U'?.?.T/?????C+???!? X?/b G???_Y?A {?2,?????C??????~?i'?`?N????V?????????Xv!*??bi( ?"~U?JC~L?}?a?L_?4}~I#!???X??K???i?$?4??????Qb??b???A?(?!??)?x>E? ??]????A??N??E??c????q ?~>? ?G P?????3??????^7???C??*0;?}?k?2I?qx4?w???Q+?????????]?N +:?Ez5? +??&??*?B????q:6ZF???V???o +????V?` o`????_????c???qW???????S &??L?p???z?2]??? ??!yLL4s*??8td?$??^m0?90X?e7?2X?YEa???WF?&f?8Z????M? ??t7?????????&R^??:t?Bg?j?J????Q?q?B?q?x!?.?)?? ?W??"q??P_?_?? S?:?u?u??????.?????????????=$?????P7????&?"???ow?]Z?J??fD??Nr?N(??h +?j?0???Ug??$I?4?g?I0tMC???????g??F +? +?M: ??@?i?????R???2XL3 M4MU)?.?BxA?T[??]??Rr??+3?.???K\???????n?5d?)* ?ZF$rn?Q?L?#?E?n????!Ke=7dU?j1?cd!??{?7?B?3??? ?48m +????8l?x???????%?&?f?????n??/?n6G?2??@?B?'?z??Bpj]O0?.?i[???y ?H???S?*???T_j^Z??3?N?6?=S?&6?????i?X?i?jB??????????)???g??w??z?Mj?S???Y???:????q????f@?K+?#?{??M???????? ???D??????L???+?^?N????@?W8?b.gb??F!?-p??r?}F?????????N????v:?v?` +>?%??:??o?76???|?S;z +?d8 +???,? :?4?????/.???????5??p??%?"???c???M?*)a]??????^?x???Y?y???S??Kg?k??9?3?y?d??????;q???????Y5?nb????????ux5??I??7??i???q??mI:?,O4$?I,Mv'?1??pK?????v?]?c??[$.??2? _?M~????G????:?i?'??d4??u?\?as???+??%?d????Y??? ,?l=?[kg????d*???t)??K???Q"n????l?yy NC?T?B????d???GC?`_?????z`?? 8? +?U?8MW24??P7????>?&Q+??D|#?nYS%???? ?!`=?1{o??ary(I`??????x}???9X?? ?????J????[???s?YV???Q +??t??*?+??UTT6?=??_???.y???t~??V=??+W=?????}??{sy????C?2??w???:tb?>p?9??n ??E????!?wP????t??X????[ d(???,????'!?`????0n?uU??aa????v??????c7ARQ2qn?\kf`????~J???????DL????^?,?V?K?.m??????????u??4??_b\k?b0"?3;?~:?euS??O?>l?B????t?! +???+FZA.??9?I???k???J.??|l??z??6x?6??????#l`???1`?I??[X/?.??+???*??q"?|L?$8??hady????????7"??g???????7????o?!i2?H?X??0w????T"D?b??vi???Y?]+-P????n?A?B?$????C?x?X???8??%vvb??-zA?R???K????c???I???Y??0??p??67??i???,P????*?${? +Se??@????0???5???????y?R4/E x??&?MCZ,Ir?2???????E???j??w??e?nud\yb???2?Q4-???????_?A????tt?????????O?PG??????lksJb????G??????W???{??s???w) U??A ?????]??????&??*m[?7?F?m?c?|??1???Q??,?S?? +?l?-???i????R }?????#G?!?"?H??)?????^?Tp?*????z?j]??? ?q?/A?C*4V?v>???6G?/??Tu ??7?/8'?d8D N*???\??n({??7#? +????Pn????*?db%??????y)F??\0??G????$??!I??????8?I??Q?m??0?4?)?-<f?t?:S??f??,_U?X???? ?B???Gp??@Z?^j~Qf?q??h4?SC?G? +???????;:??z??e??}??$????R?K????D?????w???'Il?08????9??y!?Q?Fv???e?a?^???)6????X?q?hrfw?Y?~V&?gAQ???`?P)\?LX??*?????6??\q???e????h@??{COO????'Bl??~R??xa??Gg???P??S?????R??2?3???9??FF +F??pg? +?:??D?X?f??4?f?*??ni??? +/$|F7?????????n%?Ve????d???B7Yk0??}??EE?d? +?-?p?%?t?T?`??T??:???i??????S????M9?$]?S?":-)??a??$?WR????pU??d???????~???w?#???????L?Od$^K??P?????(=G?V?{??O???=?????g??$???????:vr?d??+d?f~???M???s?9?\i +{=???:??? ?????wb?/???4)??D?F??S$??l?)???bcI(??HxMQ(??? [?X?b?E?n\ +|a?I?????[#??8?2????:,Lg?V]+5 + 4R?23??????$???`S??SQU?K??+? +??5?H?I?1?r?]??p???f?e?b +RU!`[???6YBI?6??"????????????fI,)i!?;JHQ?{;R??^??6?t?N? +*??;? ?vG?l>?aB)??;6?/??8??T?,?a|?`??F?#B>????s8j?? ??e(???6??/ +??+???}?%????>???@????@??M??b-2Ds??`Ezb?np??k?!???4?@?C?W?h?,??lG?t???z? 6R .?m?>??ix???$????8ku?fEO? ~[?)?K???????????%EZ?a+??]??K??f\?OMe? +"? ?????????ed??g?-_A??E*???(??!|Q????G?="?%^???G?="???*?y???Gr?8??q???DX??W???^?%N?PE? +?? ?*@?Ud?> +`?NRD?1 ?J?'?@?Ra?"=???G? ??K??Lgv??;O??N +?Hz?^?7????hj?2????zB??j0? +??8?k!?p??g??????gAs5?k??-?p???h?C??????;+??Z?=s???v ?}`?%???????J?gK.????;V???????3???F?????Is??)??@s,??DO?c???D??"?D"lJ ????3?k?????????t7?S??0?g?d?d?AOF1???n6s??QH?0?"?1?c6?.?%????[?????E???M?m??a??P?& <? g??!??-j????|?3?+rfXW??????????q????? ?E???b????^?#C?? C*?;??plE\????:?n?=5?'.??}h???S???/??]s?????]/?b+??kT??|?`????????PQ??_???~?8??+^?/??9??&?gN?O???qm?f??=|A?j?ji?y??????u($??v1s!w?|???Y?-?????`T??G??o????8 q`a???H?K??b@??%N?H??^[Og?#D ??"%???bG~??9?jRbZvq??q???` z?P???C???%???OGM??>?Rh??1T?k(??3??????????D?X2?Ln?tw??s??????@?????? ?o???? ?_??~??????AP??? +????R????????7???/,d?0W??R???B5??g??M?5?-E'S?jEI}?????????8???:/>W?Xm???????B?jkq?7?n?@?@?????????R? +6g?B??s<{?9??L???`*>? 'H??'t???CD=?????J???)?r??%?)`?????~n+????P=Oa?r? ????!'u +4? +n? ?8?? E??h?5????? ??????`?>A??"hHt0?;z???O??????O?CAhX?c?f|?c??j??E+??q?}?}[V???/V,?^X??|??w +?<~?6?c E??`???m? +?7???F??H?@?aF????Y +3n?i ???????.'???'?a8???sx;H???U?????^??8??y????v|4'?PRz:???E???im???R???"G?@??hSm?C?^.|s??7???x?3??o??j???BZ?<??????8n?AQ????((??????F??y????????sk9u??Su?Vu?k?E?e/!?w?[V??U?????'?geB?{????C?2??>{???????s?',?7??@F:?x?W?39?????j?????A???j?R????W?Z????????N???)?S?u?S??0?FL$- v?ZB???%????l?n???~h]=K??f0q ?hI0?C?L&3??f?]??#??6?c#???l??$6?????^?0ns?Nk????G:^????? +??%?@?2??-???v?????L +??a?[]?Wul D~O(?????g? ???:.?h?m???3??m ?w +???N????y???????*?jf_a??s&_?e?????D???????m|????C????S|??,e??5????K;??{c???V?VwyW?v?]?.??|_?m^{-?h?i???]?b???????)?)?????;?w????/?^???????c?g??g0?z at 0??y??????N'?z@?L?5????P?}>?<#??y?-?N??}N?????n-G?x??[?)A??N :?Yp?g????W?;?D?? ????K?[?/?x???e ?=v}?]??'?W???n???????7?????e9C???>? +1?y???wn?B???????t???6???zP??fm??d?K?j?U?n3?? ??? s?l1Fw?1vt??4?????]z(??]w?2?v?Y??o??r?v~??,u????/]?8?????2???S?x"?|83g?_zv?#?????????????+?? f????????"X?h?P_?YX????o<7???nJ???????d`{????)?xN?O???;%L?m?????+?]??|?Z?7???-??s}>?c;???RB?nAg +.|n ??\????G +]?$@??t???3??o?m?A??m|B?uQ0?Wwyp???????2II+v????????:?:??lyH?_??Cx1r?????U??/??P;????????W???????M??k?`?|??cF?'??~?\?#,ylL??????????/?k??^34E>J?wqZv?4=? +?0????p[?S?????\?rA??a???????2e???L??o????????=~??D???^?Y?`????+va'???g##?????l?sgC?Pc?c???'E???J6??6?:?au?5????79N???C;?;?id9??????]????mp?-?????w8??tvcws??W?x??B???2??&'Y^'??|?qo??|*??????????????.?? +5??*??u?\??#??P5?I?4???????,?/??n?R?Z"????????V???? +N??tX?~?n?}??????'?n??GSz??%??}\JQ??|qwt +??L??0??B??#?w?sm;?B?5S??7???)??m[8?S??L?O???????&?????6P? V/?=???@y?)b????x?mr7g??5/M??Tz'2??v???_?? ??????WC|?}g??b$?????+?+B|?}I?o|??+??^d?p??N?)!?????H???j'??????C?s?c#??j???v??B?S +?w?n??????>?(?? +4mg?]Z?sUR?Z????n???????W??\??????W?&Q,???????6??????n?????g??O??;@c+?m???o(?sh??+[1H?2?(-?*I???V?:fK??`)?C??!?????e?????B|?}m??n?=???_?5??/5JS?xc?%)?l?D??[???6w ?k7B?R?V?????-?????g?=>?k}vbk-??3??!?l3]??@t?Woo4???g???4?og???$????/??`9??`?~?Dh~??mh?/X???,#:??eD?S????2?~??'??P?v6????/?1???FR??P?O_n?'??_?C >?q?Y??^??n????\?3W??K~??Uu?RG??R??O?)T1C??L?#Qc.?S?D?OR?d?)j????~!|?? +??Q????-? +?????V?F????D???)?)??_?R?T?4?M?o?-??U?b+Z-???Q'?F?o??5eNu%qN^???5?A/Y?-)??4:e?:y??n?Y-y ?%w??l??{?F???E?7?Vi????O??n;h?e?^?p[RAn?Q ??.????oK??l???K?a?6Q?ef???}??p???p]???p??E???(?a???M??)C7eh???r??4Yj??Qgi??jgU f????5J?%?x????G??[J??m0?e????^I?DY??%!KT*,?{"?V6???????mo?^????? ]&l?l-H??S?.H??l???:U_?H?f[K??Z^?z?f ?gh?Ti????V?x=?j?V?.h?f???Y??? +?y0?/?o????????????5??K?c5???????>??++??*??????????????8VQ\?? +??b?%???c???e?O%?o?W:???8???4V????>}s???*f??k???z?\?&??? ??XqCE????????????q??*???+f?WW?? +?-??U??(?/??*?p?????T???/ ???????sYuU]??:\RQ[S?????pM????R???6\S?_QWWZ???J????J?@??S?5?????ua??PF?j at XQ5???? +'????\???.?? ??rW?????%????Z?J)?? +d?Z?eV?????R? +?ZR?PUY]\r???????hQ5??__WS_.)] ??R|?>?}"?I???'???O?????????/??_????~??[?7?7??????~????????j\L?b,&???????????/????q??Gi??]????.i.?+xO??\\??z?&?3??u????o?_r?L??? sj???????k??]'????w.H?u?u +??P??f??0C???+??????8q?7?1O???4O{x????9??J???Mi[rF??E ???l??Qd?^l??_f??_`,????r??????k????7n?[?&?7?~+d%??OK&?????gUW?+G????s}???G??Bu?? ??~?h?[=?[ +Rri????????N?e??|?rg????>g?>????'f??0Vb?[L??2ZI??:z?6???g?7?=:D??q??????g?l+d#?6????l5[?6?F??=?^d??2?0? +?O?????c98E&3?|?? ]?7?A?f?????1?|?.?e'?p?3??^&?\??b#?;?j1?0 V|???? +???????%??????i???*?T ??T1??z????47??????O?6? ?W???[9o??f??%f8?V?\Fu??~???gT?U?\}_?V????fS???wj>?R4%?-????D??.3?? +?>?&?X??F??n??j?k?a?e??X?-?|5JB????~,?f?v{?s>???b~3_ X???F??]???#?m????:??m?m1??????D?q???xQ?s?}???????????O?????7???C??5??#???q?9V:N88]#]U?e?U??\]??Aw?{?{??-y???O?g?g????????????yo?n???}?????????k??lr?? ??}_?N???? ????N??L??9???\??kqr-?@?!]????-??{???}?mFxi????]??9?\7%r????? +?x8 >????? ?pR8??2a at w@O at V??O??????7???n??)???d)?N?@k???S??as?? ??\??,??_???Is????gp??)????hHu??jG??0.??v^|,???wC\??3??'??????6??r?????????3u?????P?U?_#???????!?w??oD?FH?s?????????7?Z4??CJ??Qz??Y +?AAZ?FPho +???????|?+?????fI]~dM??A?:?RQJj? rD????{%??Ah?U?:?d?????^???R{Q?^????{Qr/J??(??????~?\?Lw?j??y?/??"uz0?@??&?\[?3???Y?VH?B*????K?7o???_?P?b????h?dW?qE??+?G?*? +???<1??0U?(J?C?}(y??A???X +G?@)`>xi??;???Qv?K???T@e?? ?0?,?|??*?K^?Q? ?G1??d/?B?c?)1?5??G?????6?|?5??HU%L-F?1KJ4Xfo?X2? ?-?O??U? Y6??J??????+?U?DU?T???N????V????h??D???????r?kyfb????????_=%p???H??D?k???oO8???l?N ?@??s???G?x?)?s??;`???MS??|???h ????.??Xo +?l?Mm????)?g??????+????;??=yO???x??}x?p??????? ?P????h???%|?F?"??^???J^???????Z^???~5??7?????o?9|_F???}????4????Zb??n< ?#????,?x???????B?#????<`??@{@?? e?@?0X???q??b?^(??L"V ?G?f??<h$V? +??????fm,?f?]R?+6?lF????X??b ?F?>?E???U8???,?pc??X??a??XdNN,}?vB?Z?=6?%?;???? .b??skt]lFtclF???8???[?]????9??(?E??b????h8?^?%?wb???q?ZKx"???b?)?4??H?{??h/???G?#(?Qtl???0v*?'?^6?????????P;r][-??>??????Q[ e??A???"?L?vK?????S ?%?)e?????F+?????CIr?????~,v????? ????v?m?6?????$[I?K??a?]]????6(:T????1?vItY}??????>??.9~? ?(?I?x????vNI??j????4?j7???1S?f?w?Y?Z??v ????>?????~?eh???Zg??ZO?iYZ???ZoP?????????S???'?6PDn?W?o???V????? +J?n?n????)]??????????v?v7u????K]??i?n?????=?=HY?_??P/??????#?#?G{T{??????(G??m???????O{B{??kOjO??)?)???v? ??????????^m?iM??4D{[{?.??k?i???v??kk?h?????X???9]?}?}M?D??ESE?(??b?Jb?As?H1????b4U??b,U?qb?? bE?$1?bb??L??HQ??&?Q??!f?1S??1K???E?(???L??"1WT?/E????"&???b???n??b?I,Kh?X*??rq???n???i??A?@????t??Y?L??eb?!n??Jq???~/n??*?R????Ub?)??.?Z????q?-??5t??O?Gk?ZZ#??ut?X/??}b??@?FZ+?????aZ'6?Mt?h??^l???UzJ4?&zZ?)????m?6???w??_??g???}zN| >????8H??????G|">?????0? ????W?C??^????o?K?%?$?_???k?5?"?????[?-?&N???O|/????i?&???? ?N???E???C?>?G?=@?????6z?X???(????uk4 hq,?X!???Y?b +?aD1m,zf0??g?Wf?,?0+?tJ??a?gQB)D?"*?R?J%cE?T?p?:?P?"cY!??p:L(?S?#*??????a?????Ru????o^??????}?u3C??~-??Q?C?W?Wk??:G????s??????y??:_?????@]?????B? u???P?????e?2???PD?TW?u???G?G?]?fu3?R??[??j??J???x??S[?m*Q?????O?? ???'q????G??8?R?0*FEe0jFM?c??x*?I`????dRYL?D}?If??l&?I??eR?TJ??1i??t&??a2? ???dR?L?M??h?*??er?/1yLU??3??LS@1?L!?e??????*??:??0 +T +s?9B}?id?# ???73c???&?(s???f??21-L ef????0?L+%0mL;?!??tP?? ??s?9I? ?.?}[??O?@?Ce?5??????9???^uM?{h=FK?9??TT?Ni???j@???j????;B?z?'????$,}?pvaZ +?;!?Na8?p[h?gF?fa?z???(\?? +?w+B?p^?.W$? +?B?p??e?@?.S? +?????c?????;??| ??q!??? + at 5?`???????)??:????~?8?O????????g)?*?'Yj-K?%???L[Z-?????r?b?4[??-g!??\?\? B????[?Q?',w?s??????"???? ??M?? ? 5??82 ?E9??????3? +???&?K&???jA-?????@???0;??????_???G?P5?\????'??f??6K?3?s?>??6???x??/?Y????bw??G?G?.?= R????????!u???W(?wjC????W?a?I(???c?T?i ?2?N???>??v?K36??)??D?9??m????Ig(x???;?168a???G??=0????q?u?t??:?w?K5?uG(8 +????|?? >????????c??4? ???3?(D?P~|??go???????z?[????B??j? +????T????? ????#UC??k$??k&%??*??8?@?????S?s?????*p??8??iG??+1?fo?P??w?|????pu????1??E???x??????N.????????U$??6??????;????O?6??????A?V{2???6???k???q +d?q??rgA??0)?'|#??????c|???eC?eg1???`?z?u?} +???C?=?#???g?m?*???)o??]? ?$uj???l???uK?N?s??c?s??]!gC????G? ??$?2??q?????$??{ ?aK???=} b??h??l????'?A?~??Nu??? +???k??w]?{:g?r???????I??????c???3?s???????????????(~??O0???]???E?4?7b?d??Z??8Cj:?????6?????eQW????SC{?{???????>z??????????o???L??????y?k{~?g????_&????i?????%?$?M?I????9?s??g?n/M???}{????????{??????K{?D?F???<)??????W?P?n at wEwM7????&?????fus?'?E???9?u?&K??l??f??l.???[???!:????o$S??!??.C]AW ?>DB??Z?T??\j?HQ?D7?x?D h???K[??Q?>W2??;?-?F??O?F?#??z??????V???Gs? ?,?"R????V]????????????? ?K?A??????nT7?????=?=?=?=?-}?{??`?f6?Mg??6?-b?l%[?????md??mcO??Y' ?y??V"upz????I?r?a{??????W?kpm?v??dW?)v>??s?v??.???5???9? +%?xmr???????DF???z??????H +?F???B?t$????PS??q?#>?Kq??WW?,q?8-?*?*??q?q??h????o?}w}?? ??B????5h7??????R??[????t/u?X??%??&?il&????yl![?V??l-k????6??l{ +????A?,{???%v???Pv?e??y?}vBw?=?B~_wSw[7?????'?6?k??m?rA*A?R)?kHZX??G??!??5?5?????&T???"?y???7???jL?"?4? +?:`sWqc?????????fc??&????bS)??q?ROi??e??H?????})x????b}??G?l???b?\??q?d?6?B?^???oR???g???W??X?:\K#u???o?N6?4?l|e??Z??D????7??m????U??3_?E?[?y&???h?.1??S?vz??;???#??1?m#qc??n?c??P%&+????L??}?92.?{%^?4?5??.Fl???.?.Gt???LWW????zd??m?T????????@??M?pMi??U????L M???????Q?? h2?UMG? ?7?????@????Fh?9????i:e?#??Mvs!??wM^s ?AsE?^?t?\?t?\??4]0?}???F???a?h2???D????[?V?n??m?? ????f{??????lzd>???|????B???R?3?`? ?P?????????>eO?????????R??1k?????;???D?|??e??G???}1K????(??o?F?&=_k??r4U?MR?:????b )?'?F???????N??{???+c??Xz2*?ESeN?x]????V??? ???E??X?o?ZR0"?p???o,_?%=???8??ce?)gc?=???O???????????????b????-??_??o[?11J?E???h??_?1q??m??T6&Yj?1?a?X?s-??U??????p??????p???8I9?!T?????????4?????????/??\?????d???>_?? ????????CH_?? 5??TT?A??y???5G???4??0^X?bYwEsw???@c??M??:??P??'2?'o?_$"??\???<(?G???@R?B???????????= ???ZHI?0??@?dd???G_I????T?93J#?e3?!?C>H?H???@???>O%QI?]??P???u?w???|^??n?n??|?R?j??????????u??r??5.?K.5s???\?Y??i?,?????\??? +???A??Z?U?j??t???rJ?8C?R???V?H??????n??? ?Gw +?!?Pc?f?4g??(I???t?k???*?>??Y???U?/,p?\?W?>?($]?[???? ?????hu? ?-q?P?7X????Q? ??qC???ymN??='p????t??r?K?1`4?G?_e????{ tzp8;N??Sn??$Wqd?J??3?H??GJo\?^???66@??S?4?>h R????P????`A??M?m??N????????#}??S9.??mI?M (?O?Y???????r???gUy!????^????K??Ezm?)}e???FX__:]?J???^????o????'?n?O????z?>?S? s?????w???\????n??????? ?K???jc5??[2????7??0?=?!?"?_3?~?L|'b???? ??x????S?o]?u? x?}?8a?K??6>?:U?????K?)???rE?SZ +?l?n???$Un????Q?? +6?3?7<4??9?%?O?a??fxyh???????~????2U?? ?dC?1??IF8??1j`uN???a c?W??j?i??`dc??B? ??r?r?Xm?5? +???WF3?%c3W?5?|38??????83h+P??????f??????.??????X????????V +t?r%?xC?!???W?Rvp??0dcr?|?Cq?K?:???!C?Y?"?????A??? +??"?C??'>$???? ?5X?? +???I?hp$???!??????4?At?b?? ?m?h?l?Z9U???Vz??8??<<2>6?;?O?ZA?5??}M?%.??&??????p4??c\?.5x??j=?????????zu=S??U????O?????????E???????????????B}~?Z???ds!fCt?o?o?6?r?;??{0??T????d/??? ??"?????G?vDR OCrB?Aj???S8S? ?R>?H=??@? ? +C?4??$???)??-???o!?????k`?:X???Nj?M?^"??[?s?b??5"?[W??*+????U\>\?I0"?c?I??`F.?????r?dL;?"S?|V?L??/????\?5+?????Fd? Z?*2????L??E?umc?u}.????"??|?I????2 +#QPd[????c*???*W?p2J??;*t6??B?Ze??k? @+?e?%?H??#?|*4Z??0?H???X?6+2????rn?%V?X;???1c?"?>????oq?????k'?ce??O??A_)??r??b@@?? ???B?*?u???? +4?????D???X:???J?U???S?8????E?rECT>???{9^WX?l?x?????????????+?}???Y?eY.?o?5c??XWqp5?<??,'q???\vpK????P?!??:??-z ??????b??|-6?~V??).M?e:8?U~?.`? ?V??C??;?O1??e;c???o??*???????????y?_?MJ?K2]?^?????P???J? ?????????mq?`?L5???tW?:X??x?P!???n????? h?:?v?? +?#zO???????B??????u4:6F??X??????k????{w?_???i???E;??f~??}?????;??????nR? ??G?up?1?)????0"?U???7??g?[kx?|??XY??Xn??7?'?????????????F??go??JT?}??(%U?????f???????2%?/?z??1~"??2g???y?^?NV?&??y???s?I???*2T~?I?$` +0???+????u?f??????p????Q???? +????e?*????????rX???N~DT???????{?{?q???#????????+???9'_?~?!$???c*sc?OP? +???N?_?????3Q ??!????K?,?"??C???4???w?[C2??B????f???~??#???? %?? ??? Z?F?2?F?r?.?C???(*? +kv ???{?K???`SFM??????o?%E?*?*/[-#W?[}??0?yea???-?k?{o???????~????wH?m??????9&??????? ???{?;c??{b2?b??w?d?w?h??_r?_??[^?H??????_ + +????????????t`a??????kV??????????M?k??&?r?r?pY?Rr8??I?17z??G?W???~??I Pg????????'?4?????????@Y???????p?Dl?'?W?k?)??`???WA???~?C??q?+????i$????Q??O8?o3Be?*?F:JI?M????9??e??????R????'????}5??>.?o????? c???|??>??[?-???3??@???????x?MH??(1???|????R????#?-?d ???ah?l??????@i??Qc??f/j&??4w1}?Us??x????40?|??????g?5k????{?????_?????????????*???-[?PY|}???I?{???>?~?? f?ZN???O???ib? ??L<1:q?I$?L\i2W'?6????D??????d?v???O???,??Nf?vk?}???]f?v???U?vo;Z??????????p???|v?[??/*+*+?????M?U????zPa?l?????zP?? +?ou???6???6????????n?????UG??[?^#g??o??*?U?g?????VE?????S???*?c?h???? +t/?h]VT?nKz/?z?>?Y??yS?-V?nm??J? +??6???-??Lj?????X????O}????F?b??]???_????W4?h??&??K???#?&??UI?w?2G??vm????&#qQ?"???????%.? ?gZ$?I\cr??gy?????u?????|?????????l?????????y??w4??7?7???^w3Z?;OZ????7????G?Om????O7N?2?'?C2=F?'?? 2=S2}?????????6| ?G~/????n?k??o&{5????Sx????L=??{?z??lu?%?%K.?<,????i9?{?%?-?a,\???F??C?8%?????5UQ/6???$?wz??????{?Y??o+{???,??l\???es?^<&????o? ??^???1k?+? + +????????*e+??74?Jp?|?B6??RJ+???62o??WF?t?*?n???f??U??w?Rs;?8j?T?c?k[?&.?6?OH?%?Mh|?k?YEF?l???As~??????K????i?Z6??????x??i?O?b???ZZ??k +??????I+I +?}cjTjc?S?O)?6j?'.O??w[???????:??=N????w???I??!??s3?k>g????}??>?S?w?h(3??????z??\?\?????u?????9w7J??k???p?4Y?6w??v?v?69?w?i??tw??=??s??|J???eU~???????????????l??4?????".mw?i?s???vD????#??r???8Y?i!?6'?;???d? ?(?';"Qw?Z?\???q5j.?i???Q?????:N????}?l?q?+[o^h???G?~5??s????\???jb??EuN3?\??f|x????,?w~?#????{W3??_u\?Y?m)??N?????????o?AW f?@V{i?q?M???,???e?????????BA=v????????u?`???D?_???f + +???c?k??^J? +?&??)rT?dT?[?iYSf???b?nY#Gd?n?n???3-?!?p????2d?i???GJ??*?]2$?5????????G|??=d?%{???3???1????????I???`E??i?????e`;$C?P?? +???#?E??-h??W?p???P????????Q\ ?@?O????EHx??F??7??Z??X???j?8?A[d???jic???o??[S?Zn|? ?Yj\#?y$V!??JO???u??{')??#? +??????`x?E?;??-???s?d????N;}U?????H?i?????rP??U??X??,???K???7*w?*z)? +??????-??? ?9 ?B2;?E'?U?Ubmh?/??h???Q??P??????{o?AGs8:?????$g?f??????:? ~????YG??j???s??qv??FE?$???M??~??_?^~?w)?E%N[?_(??????? +v?t?_???v????W?;?? _ +?82[??? ? o}??O1i??R??J??]u??????z$(6??KT?W?????G???????%??3??M?UEw)guFR???~t&E??d?j??I$7+?e???ba=|???Z?3< s???L??oIE? ????T?W?? +?t?1r,7???|??z?6???v? +?]??%3@?IQWwn??W??a)X??d?j:?o@^??I=? +?(E]?:??????Arkmvj?????Sj??S??r?JLm?6??n??j|??????WE=KP-?RW??????C"??CTS?&??????j???2???K? ?? ???$??????????5?LP?M???kukzT???j???b???X??A?)?\????]????R?v??Y?? ??z??u????%*w??S???? ?{??'dA???\z???f=?l??n??{?zl??#?^g?????]?z?w??????3??I|?$*?5?&???r)??CK?:??.S??;????g???M?K?yMo"?CR???????D?W\???????O=??*?/?WOJy^????+5????k+?QE???????.??bM?? ^?S???%??\?%??_=wG??????Yg?Y?>? +p1????k +wz?4?9???F2?CfBcg??9U%Mu*??AGS~L?Zy??52;1#??D???!??j????:fel??\m????Z;R4V ?^E???^?g?}??D?|?]???T_?ZzA???M???? o?8Z}?!u):?`??i????N ? I)< ? ?E~?? ?)z?)}???Z??? I%x?x?H?6??<B?? q?/?_??!??????S??IQj{W??_??: k???????w?????E?>??D???g????`????!? +?? ?D?? +W?????41g6?.??]?'@]??|???i?????X???_P*???@??G???s??0S?cE???????B?}?9xZ}'???????)???y??_ ?Le??3>?k??}?G-?????-???qwLz???X/?\??"?HX?'???3?/^?~?? ?<????b?9? + ??|Q????TtA??????C?A?EG'?6???Rz!?\?C??c????%,?????%?r?T?'?????(?????| ??z?H???+??|??~68t???b8?\?k??? +?V??/#??;?C?*?6?W???????I?????qJ?????6?J???X+Cr?b}?????@??B???N???O????? ?? ???S???t5?=?????}`7?dH?%?????? +??d???????0[?S3?xQ????TtA?g??D?)??Pt?w?H?/ ??? 4c??????r???????????h??6$/Qo-?/<[")?OE???I???O??1<Z???O????KJ?"??G???Y?g?S@d?p???????#????mu?2?Y??8?i??X??K??)?[???j?z?m???c?????`{?^???GF?????b?????@??ba6uuAn?>?:???A?????? +?;????|J??y??????g??0p? +9y?t?? 7]?$y?4?????? ??Q??(:?k???/_P4?;H|t???????v?????c? ???q???.G??=x/?$??5??>hm>"wn???5?O???????????^???w?????S??????f??#?v???`x?????? ??t???I?NJ[?o?????g?/???????Xx<y{???? ^? +>>?????d0?|?V~|??|$???+??`O?u????%???7?,???NM??sW??k??/X=?6????=?? Br;??}H? ????(},?? ?:???Y4N?; $??????>`???Gs?A{_0 ??b?0yC??qO????_???B1?????J?_?=?j???Eka???C%?????oe6??M????\_B?T'&;U??????(?^p???(???U?????????K???)?x??X?h?.??e??`!?VO ?? ???f???h?$???g?????8??&Q9?S)H??BivZ??o???|p?????????????EH??w!?g?:?m?Mx???e??QN??d?v ????H??????5??A??P^??kZq#??? ?l9?z?????5???1?+c?g? Q??F?]?{??1y?mL??'1??!??#8?????K?d????Y??????3??1???'h?'c????3?z??K??]0??!?B????(:? ??Lp???\1?sG??*zK?????5???3?N??????L????lQ?=I?????????6?~?U`G?????5???o??Y?w??#?7??6V??~?1;????-?? FTOR???v(?[9k?????E?m9????s??+;[Z?Q$?????????1:]?????SK?????????????A??????????????????7)|7??7M7??? ????o%T ?????H???\???(z??3?uHz??):??+H?Q:,B2??????e?_?/???%`?Vr?????)?]XMi_??]????????a?r?t?JK?|,7 ?? +uGx'j??W?Y??^?C? + at g +?nj?&?,?gbs'???????*q???^{??t????? ?"??Z+??9?[u???????|? +??qF??t?????lloR??;?\??G???h?xmk?R??????????x?1?i8,??.??sT??7?????k*^????&?Vh????X??Nfd)n?>????"??R??9?Q?H?D???mf?:????\t vz1?0G?=H?E?OuvS?F?? +y#?.?:6+; xW4???}vL??xz??vw???m5????????????????????v??1?;f??? .?p?HSt?L?6C??p?Uf???GN0c?/?4?LQ??(2?r?h???g&??4?&K??,n????&??L?i!??MS-1i??_cD?5?????!????X(??????.??g??t?Vp8\.U}?f??+?]j???\9??If#????WW?-?vQ????????????~v??+M=?0A??,??i?`?pJ? ??|??3k??K???0? ??a ?v2?a2????)5=LoSa?!???2?f???_?g??M??%????N?C?????t?_?????O'c??/`2V????jt????B{?]%???u?{?c??????~???????>o??&?x }?????????? +?jF9?n?????1??Y?? 6??f??`???$r5f?Yl???f?y??`^5???f?9d??Wr?H??/??=?????????p|$???????=?qe?Y??q?|Z!??q|$???????m??2?G?^{A>=*?/r|$?????K?m??2??h?{E>???q|$?*???8>??qe?u?^?_"??L>?L?Fy??/??Efk?mQd?G?yK?Y{;??;Q\vDqy7?Km?????E??(";???""?????"?7???QD?E?3?E??("???"r(????$"??"??Y?#RE?p?#QD>?"?i???H}??D?y??F??"??????(>_F??*???(.?QD?lDd?!"q?F$????=?H???6"??F$???mD??!"?+f????0???u2?6"?L?x?F$?e#oa#????slD?-mD?)?x??H'Gq???4^??]??(.???t?q??#r(??("??t?"rJ??QD???("?F?E??QD?E9??t?"rz?QD??"rf????("=????"??(czG???'?L?(2?Qd?o#????~s?#W???/?????)1?$^f??|Sf??????$?Flnrl???Gln?-a???v??&?????????U:???L?c?jF??>?L3?'?M?T????tM??k? ]??tM??5?>VS???s?g??P??&???#?????(????&?]??0??J?1??>??6)w?????=V?y?5?+.????~Q??R?????\-???????%??y????^???\u????W?Y????]?.4?b?Ys2?????.???????VW?asKX??[?????m2????2?F?_???Qff8!?`~??X?cfV?????;2??|??????_? M??? s???f?????+#???'?????,L????d?????????wPMd{?d2? +V??)??;H?& ??RB????A!T????P?QETD)? +?X? +DP???M?????????o??s&??????????;?)U??qR5?}8???~C1??C???j??5? +q?? j??BE???N?T???????d{C?8????p?g?? ?4g?(N?K(V??a ??G?x;???%?? +?????????M?6|?????g?/_"??(??,?s'? +?D?_? B????0?$??#??Q?8R???Yd!R?4"M?u????v#??}?y??N??????? +?"7??@n@??|?? ?3 +^??>???c?9"?S?u  ????????? M??Z}?/h?l?L???_??'3??_J?D???47Ol?9??JG???+?GR?4?X??~???S-????C??BV???J?F??/'5=#?b????F?nsT?\?cc???? ????W?G???Ni??O??R?7N0????Q???b[h-?=T??C?w??yH??,[{?????`7?o{v?t?t^o?=kBDLy??{??p?????x?? +k?M???|??=?@Cba??Mc???>?????.O??}g???F??r?4k????*T?cs3$5.???~?{?C??u????????E? B?c??? ???B?~?B??!?g?F?q?Pp?Pq???R> G??????? ???i? +??sHO????>CUI???vm?W???b???n??O?Y#?????????{? -???????fL1?(???!W=?x?o?x?#?????w?s?0j?D?"???v ???2?s???b???i?,t{?Pv?Uoz$??~?qi?Fd?u|]??????!I?!?5?3?? +? vH`???? +?/?L????HG???o??]My???h??]?A^/???m= + ?:??*?S^+???>?????H*???L?U??w3 +5?? =?3?c%L??Z?????=c??4\???o??,T? +??y??.?V9qZzK???~???;Bo? qM??+n?'?D*2uk?w?L?N???U!???]`?h???y??|?&??gd??????1?!?}?,$ ?! 4K??.?{???-??z???1Sk??????$?$T?????,???v$??a?w??Y???r;/?W?C?e?my?Yk??h}????M??'9??Q?f?Z??4??x?H?q???bnP +?L?=??h???>??GbO????^??? +?B[?S `9??S ?hD??:F???z??U??y?/? ?ny?????"?s?Iw?m??.????v|!???}??????(#??????B??:J?S???b?U??HS?T????3??cl=??<\L??mu?t1}-?E6?L??g???3iyp???Gpl??/?6L???? ??rrA`???v?\???o??z?(? ??c?$q$M5a ;???rjR???\???:??|T>????Q ????"Wn??>???Q?"NM??????o!??U?-/?? +M U??~??Hy?p????????)???0??{7???_????w???)1?????????????7??r??l%h?????????>I??y?_z?w?NU?eLW&+Q???9?????#?v????#???#CUEw?l??r?~??Xy???oa? ????_?@?9G?????>`ap????~??Z?*??Ja??yf9#???!??Fe?*?}?)|?????&;?????)AS^?????szjy???H??w??????6?*?G??????m???[-???????8???????A????????o?P?k??w?Zg??????? +??\?n???I?qc?!Xj????}?H~????6q?N?/LAg??????&@?f????1?#???zsg?M?~??M?g6_.z???#2k???yq4S4 g???X(L??@LH?F?- ? ?[?x)?hA????T?ZFthl#l????Db?-?A?[?od??Ox?"???d???O????_???+?D???&y?}F?`?q??,?I[?#? ?????:?zVpV?a?b??c?i????R;?54????^??{??XKx???~i ??gg? E?????^{3o;vo???%B +???g???M?q????-C?:MM?5N?T??L{+?x?y?"??k?eFS??? +?X?!?IS?lm?? +endstream +endobj +601 0 obj +[ 0[ 750] 3[ 278] 6[ 556] 11[ 333 333] 14[ 584 278 333 278 278 556 556 556 556 556 556 556] 27[ 556 556 278] 31[ 584 584] 35[ 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667] 53[ 722 667 611 722 667 944 667] 66[ 556] 68[ 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500] 177[ 556] 179[ 333 333 222 222] ] +endobj +602 0 obj +[ 278 0 0 556 0 0 0 0 333 333 0 584 278 333 278 278 556 556 556 556 556 556 556 0 556 556 278 0 584 584 0 0 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 0 722 667 611 722 667 944 667 0 0 0 0 0 0 556 0 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500] +endobj +603 0 obj +[ 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 722 0 0 0 778 0 0 0 0 0 0 0 0 667 0 0 667 611 0 0 944 0 0 0 0 0 0 0 0 0 556 556 500 556 556 0 556 0 222 0 0 222 0 556 556 556 0 333 500 278 556 0 722 0 500] +endobj +604 0 obj +[ 250] +endobj +605 0 obj +[ 226] +endobj +606 0 obj +<> +stream +x??? @?U?????f??r???#?"*^?Q? 0.X)?0?$0?\?m&?m???V?=???f?0Ya?eY?VZ[Vv]+????[M??s????????????9????????c(" 3T????QW?5??R??????n????.?????t????+?? @,?QV^???/???@?tF???? +????p??3jm?O:,?(0c??????c???????V?'??!??????~?`???3??F???????K???????@"?q~??^??f????C???}q????????????????I??Wa}xs?ur?x??U??r???&d +??]???-n??????U?U??W{RN$?o? ??6{???'6??????b???????????=^???c~ ??????V??k?1???Q???$-???'?>??d???????;?$??@J8N? t? +X4`)?c?t +9S^s?'v??5?i?RV??)X=???,%#????t?+?????d[3\"w????? +K??M?&?Y?A???:??????1y?\sY0w??D??3?o.+???YUM?BP?m?;?\?????-v?E??5?"?b_???? ?6\!?/#????.+,?J?}~=?eX?kA^CPld=?{{?m?????ox?9?Uy????91??D????_Y???rP?n\?hf?;;?ee????? V????????7?&\, ???fO0?\J? ?3p???!??`?? 4:?Q???2?.??????|?????1=?:?????@14?u???d?w?7- +?7?4??\*??d? +?s?????9:?{???3?Q??A???l?YZ?^L??ia?\???t2vD?q?*;???r???f8?b?J?`E??^??$6tzeJFC????eM??????hl?[???K#k??\??Y?o????*?N?N??B?Gh?qV?vIY??b??nx;?D9?r??in0??V????X????5W?_X?O[?%uj?_B? d`woE??w?"/??Xy}??U+u????;???????8? ??&{?????b|4+??f????h??????????j???76Od>?3?:????S?Zk????eS?B?PUW:*?=??fa??N???va??hyC]}H???? +????~? `??"ke??"? +?T?-?O?ih??*????.x???MG?Hm??m"??????X?CJl????\nb?snCsGc{? ????`?A??Z??JTe;??S?N`??? &}PgA???? {$?Y + +?x^?X1????\Qv?P*0:?5???.??2?????]Pc^?o?h?)?????v|??x??Kzk?;???x?Z#???w)????v???~iT??}s`Rv?????? +?3?F?k??xsG??t?/?????:?K?[(-5?K?.????6??????5?+???j_>'#|F??,??P?'?? >$|@x??W??P????%?J?E +?&!?J-@?Mx??&? +2y?j?^%?Bx?p???E?? /?'??E?#????pa?\?/ k k? ?+ ???#x +?;?<?Fh%???!???e??'??? ,!? ????E?? g?$,$4???#? ? , ?u?ZB +a>??0?0?0?0?PE?E?I?$? T? e???R?4??0?0?pa2aa"aB(q??0?0?0?PLC("?&rHB(???j?F? y???\Ba!??: 1?` +e:34t""?eB:!??JFH!$?????B?? +???55~E????s?1?g?O G G?>&|D?????~(???+?p(/????PB ???P?t?_B e?? o? %?#?%T ^'?F8H?_%?B?^&g/^$g?q/?'?'?#bYn$\B???#~?k at l????8w6??P?,??Cqg".??_??dr?u;?XTy?g?????s?G} u7????!?N? ?v?{Q?A?u?]?w???z;?m?@???{?[QoA??z3?f}s?????^?z +????C? +?J?+P?z??9?2?KQ7?nD?????HO ?!]X???B??j? ?P ?Z^? +???&?Z -???s? ?B?  %???q???b?BQ(?????BB,!?M?"DL!??P?E}?O?O?>???I?'P??v?>?'????;P?C????x?b??p.????BB3a?e)?Ih"8KvB#a1a?l?Y?3 +?z?/ 6B??`?P?"??# ???B6!??f8?LPT? z"?z+???C ?+?/?@} ?E??????E?J^?|Y???HYRz?eI7'mORG??d?????????0??B???l??.??9j{?4/jq?gQ=Q??Q???G#????E.?tGJQ??.E[#-?+?L?&???4??4?4?$]f?&KQ??4|D?T????E?;>?????? ?I??H?O???x_????Eg]m^^UWDOMUP[}fP???e?u???fCl ????K:qz]0???c^???MP?ZL??nIm? +?c?? +=X???(m?[? ?|?<_f??|?????92?g=~?I??$f?cp#_`q}`6?x3?-?&???_?~t'??$????{????"6t_???c??r#l???!x ????KA??kx???? 8??i?/ r?y?:??W?V0I?ACz??|?}g?G??~-Wbm?*?TKOl???m?Wvwu?? ??????c?????TV???????G?????????????Z?%???`=? +.??a?c????F???ep9???+?*?\ +???p\7`o??p?????Q?????V? +????????????]???^l????-[?l? +[?k???N?}??????.? +????x??.?#?+???O?3?????s|?| _a?l9???n??;???N????s???AQ???T?T+W~???;M+??`LB??E"??zb~?c? +|cJ`???]`n???D??ee?Q?`UYx????CT?)%e?y?f?4?f????bL=??[{1?;?`?P???W?F??3?????? ????q?bD?Fc???cGd?3?h?8?8??)???q??Hc??D)??e?????????????5?jG??????C?Z)=??5F???c???Vi5?Z1b\???jV?~}??a?#???a????#???,?+Xz???6??Gw????44??&????h?s???bmj$N?;t????Gq?r???N?\?x)???qi"{"?K??s???$C?5g-???3f????Nf?????7zF^|lnYq??1??LC?^??G?j?]t?c?#U?1I??4C??dqY?????sj??2????X=?=,? +c?CQ?????FH???? ??I??f?3s?]B?Uo???/???{??0??s?????'??(??n????MG??NJ8??;@#>????????????F3??????????z????a?49??V?R?pK?>B3|r???(?Z??tno?]4-;J?????#???????f??\H? b?/^??A??2'??N}k??????/?.p????;?>)?????csr??MjS???????$????a??=i?)???0 +1???[??Y?;r?9 +?7??k?&?u??????0@??y W??=#z?m_???????-??e????Y??G???b??%S?e9?E????3'?d?k?? +k?6Z???A?u????wO??????", ?????/????%,???9?N?^?yZN?q-h??\h??vv?V???m?????6?G?]???v.??k??????M=????5???n??6\ +??V????U??Y??G7?????{????[????#??????????=??s+oi??#j???????y?U?aK+??|?}???????{?x?F???frcd??E???m?8??????}?A1?Yd??6e_n?%???????Em5G?^?u ??Os???=??q('?????h?N?~?:/? +?4#;k}x?vCk\?????V???]? ??;%;?#vlm??????????e~?in???S?R?kAo?????@?A.???Eo??w??Q}cO?$8?;M;?+{Z?{i?N%?l?M?6?=,???;???K????? +???a???????O???(+p???Cy?|?N~?gc?r????M???????Q<??U\,???r ???6~?ol???????????????(?c???4?~?????}?i?r??????i?o?Oo???og+?????pUm????ct?{??[V??t{???????:p]??E????B? zo????J??????GwJq???S????Uv?|dG??8??0????{'??z.N=|5???N~VX}?\TXX"?q9?n?{?_???z?^???n???ZZ???f?O?q?????&?t{?k??%?|?]nu79?m????????T^jou???W????/???????@[??m?Ov?????#??d??????,?L???i??N??u?[d??p??e_?W??{????Z?.?l ?:?h?s??????q?l??????Jn????V????]m???W?C?W??^*/q-??i"?s???; -???>????Fvp??n3??\%{??? ????r???A?????Z??~7nh%??]^e???\,??f???Z?B??wN????4??? ??'.???e;???????-Y??Wn?= +{???'???]??r4??t?9ZM,n??????,?? +h?l?[????mx5r\???u t?U[??iW???????0<??}???*?&???p|X???Qir?jkq??O?k??J1?}'??=??}???d6???? +????'Q??\j???b?yV?????9??i?3C-?? +?????E?',r??}???>?I???u???d?????>*????S???????j??E?O?2???_????{???U??D-$C??2?Y0 +-&b{? ??A?f????d?}?mG???h???Eh1 +?g +?=??6 ms?v,Z?c????Bf????G? h1 ?k?????m????????-????=?o?_n??O(Z5h5???bZ??@?:??%?(hU??wK??Uo??E????t?E??s??t?F?1>P' +:r?}?A??ItAg:???Cn|????(z????zy????????zw?#?Z?G?????>??????L?/|?p/?!B0?4?Vv????{e?Z????;0?????????L?!?P???c???h??v???_?T?S???x?:??-:?HE???=????4F +??C? +;6????-[???????=?=F?V0?%L???g???O??]D???&Q4?r?????I??Tn?n?Ar???@?2?s9Ll?????????R????o?L????H????"?-??ifuu% ??7G????*?(6????[?,?!??? +  IJM +Fx_????.?y??w?????????~????????????d'7???A3???43ZtI???ME?Yg??5q??????G?~wvxN?9??F????????3?????Q???y5?????A????WJS????s????y????K?so:?j? z7m?m?u??t????O??t?????/??n????T?l??Q???K???cK??g?h?J???F'n??C??S??g????[?_7?oV?q?8????y??m?[?{??:?N??????????Z?????/?zFs??????tn?_??\}?e|?3t??????????#3vhfco?K??'?w???3???}? ?h??????I?~)#??4????#?=?>V?????_?yv\????????{?!?=e??W +E????(??n???>UG?2\F????f??_)???m?Q??v?2?D??????? +LcDG?C?#w?????I?X?????y???{??7?O????6?/?s??Gq?r??`???U?????q?>?????>?H??|{)??[??C?A?T"\?? +?G~???mHdp?????f##??E??J???Dg??0?X?e????????t?? w??!???P?`????ix??????a|?/?O?'?O??&&&??????n?&????E["??+?)? ?2 +&?G??D:WtQ???o?k?-?'?3?C?!?P?p???P%?3[??????yTdd??Z???)??t????l???I???0<??TYeq?X???6??6????e ? +??>?KD[??0J?[]0?'?s`.??u?o?[?????c?ZHB4?z??X?*?f ?'?)??'?s????$Z?????]d[?m0???6?lE? +#?n??/????{???? +??p??YF??|&_U?g??%,?Wbb??g? +?????~????G1?d????{t???y?z?^????&r?%?Q?a?G???k??k?e???f?e#|nD?7??c|??2F?i???q?1???8#g?i???X?L+?G?Q?0???Y,N?J E,???W?L>}??E|*"?+???a?lJ?Bf??? 3df?? ??23 at f??wW?i?dZ#??H?5?i?dZ#Y??1)2&E???????? *?I%????(???Y kdM?? ?5?&@???Y kdM'S8???.p1?s)\ ?Z?R8????p#???????????????????)M?h +??B?*P1`T?naE?>T????u???J???|'Z)?6???f}k }??Z>???????(d?t?N:Y'???N?I'???u??:?d?t?N:?????Y+?S???l55[M?VQ? +?l5?@?6P? +??y?l%5[I?VR???,~?m???1?T?N?Q??2ZtW?IbL?:??u????d?t?v:Y;???N?N'k???????d?t?v:Y;??b%?XI-VR???^5WM?USs??qN?8'?????????V*Y???m???J?7'?_M?W????5?_E?W?? +??_?_?_I?W?? +?|%k???????d?s?T???J??:?{X??U?UA?^"g?????E]?b??????:k??p? +??lvp??????e???????{ +????(|???=:"?L???\?Bw????p\ =?????j????p??~p=???F7??p ???V? +?`???0^?!?k???7a +??????a???z??=? l???????|?z ?|???%|?a|??od???a????'v??K??$s???3v?????? ?? J?[??j???@fK?t????? +??v?/[??*???? +?Z??z?;?.?? +?!???};???T,???}?%%[??!kG??CgYo??@W?.b?? +?[???????|?????6?x?K?g???,2 ,`?,????? y?ZB+8?2???@[h??????????b?Y???]?B??9?d?? ?e???r?F?Q|?h??q?A?`"Le?"??a?.??Z?????UY????8? g?d(?X????l??n-??????&3??@d?????6p@ 1??Vp8?5??????=?Q3u???3\]?+\??P@??????z?ep9\WBO???*???>p-\}?\????~v? ??` ?n??` ??a?Ca???????n?????'(?PD,?`6????????4< ?Y?W?i?L?^??%X/? +x^?g??? +x??[?gX ^x??;?.?VC?Fx??`3l???>|??r| _?v???N(?]P??8]$N??E?t?t?GY????X???????t? :^/???A????e??2?xt? :^/????I?? [`+?????>?O`?7| +??????K? +??n????????"'?)r3[Ch ? _?Z?c??t????x??XV? ????5\#??\c??la???e??Y???0_?\??W???>??'?|-???<-????|?=??V??oa7???P*?,??n~?Y??g p?\???q????:K?g?r?r?????~?X??_??A?????Ys?1k????N??????p???v?Np>\???b(?np%?z?? z?y???2n?'???"7K? ? X! ?!l`?B???? +????j +m?-??|h?B`?Y?3?yf1???pt??p!?g?.??t?p?W?9????????Y?9???>zg&???v???2?5??F?t?(?6?k??x??_?Y?+??A?; f??_??Q?t?x? +?W2?*x^?w?]X?? +??s?5?l?Lg ?6???,:7f???????7??L?G??????^WD??-w???a?L(?Y0??\x +??|x?z???h?7???6z???h?7???6z???h?/???6????h?/???6?????? +9`?????~?s???Jj???D7?????.+??Jj?????v+????5??1w??k?]c?s?????5??1w??k?]c?s?????5??1w??k?]c?s?????5??1w??k?]c?s????? +?A??@?m?{??A????\???i?H?F +7R?{?{???~TJ?P)9D[@-?{??p(E?^????(?D?%J/Qz??K?^????(?D?%J/Qz??K?^????(?D?%J/Qz??K?^????(?D?%J/Qz??K?^q?x?f7??6Om?g7??T*?0?,&?Dr ?t ?K?d ?l???x??v??n??MT?????D??(>l??c?}?:a#?b?-&?b?jML????x????x????x???<??d?43?????/?c?? ?|?&?{\t?????????????[_??C?n?p? ??` ?n??` q??q? ?? 0?I?0<??c?8<?a +L7L????r?? sjP1??1? +?H.????'??0\?pA;+???8qV?8w?QY3???d?&? +g?????Ya????????k???????k???????k???????k???????k???????k???? ?<??0???0 ??1?1???0&?Dx&???< +????6???????j???????j" u??)2\5?"?? 'j?P;??I????G???sZ??:l?A???,??-k??Z2????e >??C >$?K????a*?0p? +8L-??????G~<*??<*??<*??jS_????q???|??(G?8??Q>??q???|??(G?8??Q>??q???|??(G?8?????? ?d_??K?} ?/A?%p?g?p?g?p?g?p?g?p?g?p?g?p?g?p?g?p?g?p?g?p?g?p????r?JN?nI +??]?/i\j??6???K?_?????q???Q???o).-????Ni%;?U2??Qt??k]?????? ?k]?@???5??t +?k]?@???5??t +?k]?@???5??t +?S r*AN%??9? ??T??J?{???E?(?G?=??Qt??{ ?c?C????=??1t??{ ?c?C????=??1t??{ ?c?C????=??1Cc]??h??he??L???/?????7r??^07???'?w?C????r?|W?-?????????'?????C????MT??d?W?a?????J??3%?a/Z??~???1V??K??qH?mBR????|{D???=?\%k?????%U?XYl??GyG +;j???'y/?Q?,? +?8??s?a ?{?????+?=?????)?z?? [?Q?Vx?s??c???^???`?????? ????!??aL8??;5T(???q?\?KPb uF??n@??R?????? +?W?*?[?Xo??????_? XB??q???G^???*?.7?"??L ??@??I??I??I\?? +?I????OR?'E?H????a??????D?IbO{????&n=?0??O???S?k?y?????q*?4????p??S? |T?v??????????8??? +V?J~}??? TA?\`>?{?Gx?"s?????r|T?8?{|o-$9??z9??????cG?? zo27r??OYf>????M`?oe?m?[?f2r?b3?~6UT??r???V?????d?H?u$k?{J{?F9?k???O?3?@9?LB&?R.???P ??B???Cy?q +]e7?m?? +???lF??D??{??>??Z?????????z?/?P#?9 ?P???5?S?_f?PF????0A???Fn? ??'?c"?*??B?Q!?d?T?d*Y2?>??O?????E??}1,????2?V?+|^ ??5>????r??-X ^???m??U?k??????ERU??l^2p??}?{?n^????G?W???s???s?)|?????@?q???x?x?b????\C?o?S?? +?T?t? +t?B?k??:????k????a?#?;??t?? +??$?>?|O?/??'S?????Z??F????=BU?S????-T?>??6*k,????y???????J??JJ?????????N%??j?o?O??b4?j3Y??????5?#YB?ZK?Z?????w??Wt??X??7??>??(?=???c?????3???03???`?:B?9B?9?????U?y?'?????Y???(?a?|V?AV?|Vn3c?c??s??C??}?5??C?u??+?2?z??2?2FV??*??@??mad[????m?w[?]=??B???Q==*?Ge???????zzSFo???zQO/?DwZj ??&Zk?#?????"P/??h??V??????5????E#?6b?FZn??RZ.??Rl?H????H???^J?1Zo??Rr??j1#??????G????7??;??;?i??q?&????'??K}??"K?a?'?? J?Q??????e????8?r?n#q??H???a$#ib$M????`$? v@???I???2'q?? 8??=??jN??.?9?jN????D0??g?s?]CpO?0??????PU????C????F??Y +???Y????wV?;}?X?_??VP??`?lj??=??:V??f?????8p?.hlR?=??G5mD????qf? ?Tc?jf??T3???!JV????a53]?????????|O???????????{???n?s???.???rz??~???r?QN???C9mW?v5m?????]????v??.?*???]?'????????G1?????T?|;?K???V??@?>?l?????V????i????}???r?????g?Q???,??|Lvw??{???VZ???=?"?M?]Jn`???J?? +b?(V???'V?o?U??? +???*????l????e???Wa?U????W????3?0?M??ct??]f?A!V?+Q?~??b?(???????,;X=????}?_??71n?Yv???8?c?b????3?u???|1=???u??kc?bzYG??r1V.???X?+c?b,\LKuX??c?b?[?u??_??????^9? ?j3l? ]?T???????f??q?q0????F??X9??r?c????????a2^????V????s?T??%x?C.????????.l?/?/?8??a?@ ?????^???????R???????Q?4?hy?z?6Z??1?Lf,q?XD?6?)c?5Qv??&??BY??}??? ???%??X-"F??f??q????a<aL?'??hM?_L?_L????b??b??b????, +???^??c???E{??"??"???P??fJ`m???x????T?t?????2??>?>?>?>M???]4???w??.??E??hzM???]4???w??.??E??hzM???]4???w??.??E??hzM???]4???w??.??E??hzM???]4???w??.??E??hzW?Vt???up=??*?H??"?C$r?D??!9D"?H??"?C$r?D??!9D"?H??"?C$r?D??!9D"?H??KD?% +?% +?% +?% +?% +?%??Qr?(?D?\"??E??W??Va?"D? ?XD'?!?Etr??????? ???j?0R-?qT? +??2????m0??J???Q??, ???r??&???r??M?K?l?S?????]?-x?????!?\?(!?E?r?\?(!?E?r?\?(!?E?r?t%?@I'P? ?t%?@I'P? ?t%?@I'P? ?t?X???#d +?P??Jy? +t?"B???Q??(?dq2?8??B???Y??,????= ?8w*?{??,#?2?2??g?y????,??8 +a0 +!B?'???y???|???G5}?j??????4?4???4?d?????.??K???????.??K???????.??K???????.??K???????.??Au9?.????T???rP]??Au9?.????T???rP]??Au9?l?t\???pu???p????8?#??(4??????S\3??oS?U^??w??rS????sR[??*??A???*f??7??j?n?}????qx~PzO??Y?&"(??/?????"(??/?????"(??/?????"(??/?????"(??/?????"(??/?????"(??/?????"(???????D?u??e?p1L????????????1B?\?F).?7????j????\?F?rCf????K?~??*r?o???U??.f%??|U!6? +j??D?k??j???I?M???i? ???2?V?????"??????8?W{?g??A?A?Ki?E? ZB??i?????a?P??>????S??v?? "??D}???}I?;????R?yJw?t>?o"?r?d??"z?????K???"z???&??T/?????=? +j???Z???C???????G???Zq6#?DKQ?Q[???C??P{ #?C?~?-R?m9??????)B?R????Ja_??S?????????G????~???6??f???w?E??a?_{?/?|???^?Wa,???u`??X +o?[?LMO?B9?W?Up50??!p- ?'????0 &???< +??? +??s0 +???0f? ?"???0??K?2??\X ??4? 5=#E-??!U-??<B~M,?I?/&?????0 &?a|?h???=??????=?g???#???=?g???#???=?g???#???=?g???#???=?g???#???=?g???#???=?g???#???=?g???#???=?g???#???=?g???????89k +9k +9k +9k +9k +y?r?????q??8yg\_???hyD??z????Um??????[?F?*N?#??'??'??'??!??!???'???!r??D?|?e,??d???%T%. ?)?e????{???????S?}M???I?????6??m?????????????h?u???y7??????+??A?!0??0?? +????A?7???0????b??AMe?Tl??lc,???`<<? ??`2<)????????????????????????????K??(??[}??????u?? P?u?=G???8?O=-0?L?^+'i???m?v?F??'5????Y? +?????????UU??)(?? ???q*??UdpE???l?0??:Z?2h)??i??????(?;9??1?V??.4r +??h?~v?W??????](???](?Q???(??E?Pb_?????q?O0?!??#?]???D?P;??@?J???! +c`,??????E??????|??e????^?-#=?:R?L?[hes?{w?????wl? ????(}???s?^?????????=?o ????y???????g????W???{?^???'`"L??????I???2??C?{?K?Q ??j???ue]^???L??z-?g{[??T?9??????Y????k?!?K`??j'. ??X?????i??}?(q????1??/?6G?? ???P0W????????;??T??R]??G???o???rT?m???'????'??}???????6q????~E???;e3???G??{Un??a?V-z?????\??O]???v(???G???????+?6?,?c?M???&Zi!+??Y???*??V??#\??+?h??l???5??Z?? #?????o?fjylk-????Z?~???[?>??-\? ??????????C?l?f?q??p?'eN?\/^??? jI?W?!? ?w??????G2???'??^???????H;SoWJ???N?|k?65?8??{r?T>??y?mFA????:`t???? ??\?H?'q?e?s?d???m@??/??E??x:?"?];???yj???#?~D?????yj???!????z????????[?8x???vM?k???g????]?????UY???>?T?????u????N?:M??]+?????f?0??y???L0??_?nh?;?lSr??/?????G?k?j'??? +x? d2??Wkg?????}?F^????\?W;?HMn?3]`?'[?j??d)??E??H??9? ?t0?&+?UO?b`??F???;?2=??eQ?'?N?\/??f????E??.???mT}&*??"??o?????QT.jw?????L???*?w?nR?????nV??_?;??R??????????????t2??B??"q:9?%?lq??^?7??s?t???~???B???1"*??n???-b??'\r?7DB????N?N;?nZ_?S?J???C?D?6L?M?kwhw??.m?h?Fi?E?6V[(?h??????????w??B{W?????jY??z?v??_?_;O?????/????/?????i???Wj?W?Wk??C?????7?7k?????jW?w?whW?#?{???????!?H}?v???>N?I?O?n???/j???\???B?m??L??6A?????????C[???^-_??Wk????@o???O? ?z??AWRhER?R?$-??m??^?&3e????(?j;dy??7?S???eoy?V&%?j??,y?V!??lm??/??r??}+?_k5?by?V'#???K???y??y?y?vP?wk??(?M?"?Cr??????r??&s?=]??+??\%W?????c?8?Fn??KG??O???Z?-????!#Chd}????A?0#????j?0V?c??4?????????F??O_n?7??&d?l}[(-?????????P,T??? +???????zy?2T?? +?U?????2?j?kB?B?zm?p??~ ?j????fHo0-3Co1????4???av6?????Z>?|??X?? ?.?.?I??b?E^?]?:?????k#?????'?z?????)??b?E?????G?????{06!?V?????%???#+c c?F6?????l?W?????G{??S?o{#?_??y???z????x?s????d?57j??l????f?????????????6}?]? 4uU3?????B???r??V?*S?d?qd??????SE?=???oioE8??????H-*`?5?Ij??? ??J/A?.??????F?F????`?A????Cm7U???~r1?>-?????????^??]??????X????1gK?'??'ut_?cM|????n=|^??????n????I??nvm(??8?????????$1?:!?????:5??/?t??ec????ybI?? 3w?sQm? +?q????kM??iv*??"qi??? ?????S??e?????S???*????Le?:??JG???????E?]/????3?o{??????? ?l?????v?n8??"?:?_??:? dh"M??&|?F??7????C??w?/????.N??????f??=f?]]???;????????Q??? +?x??V???{?????6S??Mm?????? +?x?q??&????4???v?a?)?)??HK???^I?DO???S??~?>???? m?????Y???\?4?t???'???'Z??-b??~e?????D???M???6???/?O????h???^???$??r2??rJ??Tf/???^??1p?9/??s~`??sQP"?r??????L??\?*8??????A???s#A??? +?Q?\???O???#%h-?[??W???Z??u?T????*?|*???U??%d\???te\???:?T?ct?%1:Pi?c4 ct1??%?ee?????##????<?Y?*KY.a?fc?*???F??4~v?u???2??`_ at U? 1??awA?+Fs5??? ??,??J*?[d)????j?G??l?r???M???N?#a?W?q_A?}???|??2??1??S???????)?????a&???~?t?;?????B?*fH%???P?t?????8??9??b?$0[?? +?????_?_DU??1J??)!????????o??M?????????????????o??c???Rw?w#?????`??2???a????v? ?? |9??(5????!??EO??????I1???3s$J=????1??3? ???x?L?'??$??+??83??i??t:?????????????'??kc???c4???????Et???????Z???????J??U?j??????????? +?Xn?7??&?7????-?????5o??????v?????B?;?(k}Kq??gA A A A A A A A !8? ??A_R?&a4!??? ??n?=b=)?1?\`?<2?o??)?_G??/?2?P.?e e?_?/?m~5?Rh~3?Qi??,??ef???f9?5+?*?W???????5f +l???Ho0)?l2?`??l??V?G???7;???????G?b/?T??RaW???M at z"??xM|???\?????+???H????s???J ?E?J ???? +?? ??? '???????:H???????? +?C?C?????? ?e?c??? c(h??V*????%K???_???p#n?J??cn?2??ng*????O???????!?b?b?3? ?w/q/?2???\`???z?)*x?'xW???b~????+???: f,s??>??????S??*?I?Yk??? ?Y???Ho1R??3?Q#3tC?? ?B???Y@??H3R? s??0Fd???r?? +QQ50F??????(?xu>>?Rc?1? t(!??H?=??f6???~x$g???_??:??????~???f??u??(?????.D?D?Z?3???:????%??kw??Y???:>;????{?wm?|;B???z????????Vd=+wO?u??ke???-? ?l?o ?v?z?+?r?Y +?y?p??}mj?M???_3? ?????~.?O??S?T6 ??O??$??{???`?d??w??@???Y?u?=L??Miw?S?9[0?I 7?K??????H9?'?e??????}??$w?n???????Q?~?`G0v??????H???0???8??n???\?&?1?9c????;????????O5$???R??????#<>?? ????;???8?^@)?g?G?s? +{>???o?????U????????l????;?v??????#??Q?????"?O?????#???g?????bY?8W???OEv??j??XC???*?/g????a?4?????+??&?P?7u??!?? +???? +p???{???f/?0B???x?~?~!????q0??f??_?o??????#???m;Q???????P??z +,?(Wb??????????8H?I????O??V?0???5?0???A_O?h!??v??????Vd ??#}???7??? ?{>??-?????}?+M1???????_?????+z? G?L??/F?+????????R???q#?(?????_?/F???+ ???uj??s????_7x????Q?????n???v???5g????~???]?? +??v??s5_?I????3??|???7c?? +_?oc?????7???1??T{c???n??d???Z??\?Z;??????????]???????'w?g??????GU?????? y?p??Q?.??+??????a????}??k?,?????x\??,??????&eM???X???;????##?*???^?????X???S????;p=%J? ??^_?*?????????j?#,??[???8?a?}?????T2y?yf???~?????E?=?xC???????t{B?d ?$???vK??^i/D?-??(;?~"??$[?@?(???[?????a?>?? ????;???H=]?L?(?????=???lJ?Xg?mo.?co@??|??????B;??????C???/?w?=?n?W?Gd ??'>?$??yB??y????????b?w?????W???'-?2???s???? ?%mP????I?Qsh???????qC??f?%i;??] ] ???Vq|? +D (?6u?:?h%D (S??J? +P???=??v/r/vJ??N.k?8eX????y???Z=?%???\?????>?z8???q??;??p?????a=w,???/????k??????&???????!??????1????X????p??????`~6???Y??]?j6?/?f?.g5?V?q?????!???1a w{?d"???`Q????/?2??&???J?2(???%??????\* ????????O??6T?E??}-?%??V at 7#?f?B??9(u.>?? Q?Et)J\??????-???nte???dSw??JQO?ai???'t?+o??9???2?????????NM??k;???????????4?gQd?q.?? ?/?z7?{8RC???u???U?F?@? j? ????'[O?.?%??g?g???????#?3j?|?=V?Wy? >????J?7!?[R????o??&??e??/Qy5N??|5^?L?D rEA????G?g ~ ?\Np???r>p? ?_ ??:?B?50??`t9??J?hCU?H]U??? u5 u.?t???u at q?1 +u\???F*?C??:???ZEX??P6[?B?\??2?,e?|]5???Q????????*?????????????&???t-????)???:dt]]????Q??n?????i??lc??b?.??c?1?o????@??? +y??>?'???'???N?t|?3????B??w????K???J}-??? +?B?????[?m?R????N????]?.??n}?KO}/???{????7j?_?????>8??~?cm?<^??.??A?P???????z(???(W??1??p=???z??(= +?h?,?ge=?cG +??x?4F???'??$? +?????E????pt????S?T??????M=???wq?=??j?k???????S?)????`??? +6??,?d???^}??????<*????Rc=_?G)p?/? Q?"??K?R??L?????w???a?Io???7??[?v?a>A +?'B?~ j????(???s?????Sc??_???mT?f~ +?&???k?1~?r????X???54?????6???8??o???~s?R??????-??h??!u??P}f-??Z?? kA ???1X b??e?By?Z??Pf-H??P3f-????`-H???(X b?j?????\?+?+?Xp?( n n? + ???  ?????^A/?{??6????????Qj ?8 +5????FW0,?? ? h???E:?Yr??P??`=l?u?.s?????6Q'?P3??? ?Fu?x?>F3????'??E???? Z*Z??e=Aj--Ce?e?e??????"jVt&%bg??";;v6????A????H??L%?3!???XR??b?sB? 6`N??3????xj????$??e?D??b?'????)?\`.?????B?0??????\L?L??*???+??s9?W?+`??6W??`s??????T????67?as??Go1??8???????|03?w???0?PY???KL/?????`y????????? @?`ohe???1?8l?????03 ?F+????3??F????????[36??p?G?#?Y`"??,????????f1Uc?I??2{S????~?? q??8?R??_?s??S????? +S????1j?L9`?T??(?d&J??(b0Q&J%??R}p?:?D? U?A??3?5?i?2?? +?<^8??i??$????)K ?,-?27M???-???x)?V=?D??????x?z????'?FTS???2???f???? ?ZQ?????p?Ejb?}?%*85?/?W?,UK?N9????V??H?*D?V?C??!??mj;??Q^?P???ND?q??Q??\i??? ????GNxs]a? +?17?|?[??G>???ne??zn5?????????ZH?q?I?C7?F??? ??mFu?c??? +?n??????v[?~f?u?C?.? ??? ?>C?s{??!??C??KW.-\9O?r??p?c??gRA?????Zs?4% O?,?(Yd??EG??' +?n%?'?n&???? c?+???K{?x????-E??R??OL?????z? +?????1??????`??p__?o?p???n?4^?+\???X_Xlia???\???.??^?j\7?M`?T7?%s???V???>? =^8??i?$????AK --4W?f??????>??&?5? ?l???!?g~YF?e+=R??v?,??g?,? ??fY?????5??D?0??$l?@??_G)??M?Sv?|e??Y? ?l*??@??g?????H{f?y?,? +?,f?V???Q??V?/??,~?R?e;??e??G?Y???+??0?l*???0?Nz??A??S6NYN??4????&[????Z8e[??g +?l# ??0?3?A??????d;a?m??~k??z+F?V@?? (@=m?6?OND???j???S?S?3t??P???|?Z?'???>?M?B[x?????pSp3j?%??n +n?6???????D??Oh&?A?hY5?y0 ????v?'4???'4? x&x9c?1h?????-???C)? +????a3)x1??? +????C?`[??Z???I??V??4???????,?????4?????={m??h#^D?h?hi?9?\X???h*^D^?B???qe???????? ????#?-5 ??At?M ??Q?? ??E ][?+????N?^?/???~??^??$?>??????62?7-?@??;N???_i*f?=??>? ?S?p????Y?c.x???qYK9jVq????2??#7?35?9?+ ?EMUL?'?|??? ??a?0???????????\0????Z????????4?3:?@S#c? 7??`)'/p?g?{??t ???\?)??\???dbD???:??p?px?? +l?? +? + ?M?&PfDor?????5q??s?9????h?g????y3?\L?s?y?[sk??L???|??_?l?1}?[MAf?s??w??????.??????x??o?Y????-nx?;.s??5??)?r'???-??[?4?\??5?Xb=k?????=K??x?7?0????Cs??H?{+??1????'?$??{??O,??gf<{-jKa?i>??L??,??TK0?RN?U?lf?[?4??y?f??aK????? -????9f???i?Y???[ u??2??s????+??r w?*????V?{J?iZ~DxD?x??????gp??\s&+??[?j?]gZ?D?:??$4?cv?$??3???!??=g????vO5m3??i????3?????`????| tG????_??Ru??f?9J??qW??HZ??K&]??????6_1]??{t???qy?cm>[??????|???9W:????????"?=?/? +?+?s?uW)???p?U ?u]T8???cm {^??? +?uy?Uw?G?G?K? ??F???U|???Z +???????6(f?K8e?KV2???V ??X\???|?%l??u?A??2?,?? ??W?"Z??zm-?W?? +?YlqY&?>? a?eF?g?f??????2???-??eR?g%?@??e?p?m?k?u???p?? +???z????????kZ??+?-s?}???p?r\? +??g?9?????[??|(y?y?Z?;???"????+s?vTYh?cG?=??|????g????d????B;P?u???j?? eQ;?N)???|?)sx-? ?{?Z?y?w4??????Jko&?OY?K???X????|???6?C??V-????v???V=???C?6p?]??? ?)??@???U?^+???H\??j??y?l????jg? +e???/)?8????????g7?m?????{??~?!p? ??? +??????p?????-??@?m??N9A8e?Qv???Ce_??>?:`?'<a??5t`?=V??[?Oy??\??zo??2???? +k?'86Xm?????????X/?=????????J?r?c?E?2?D?[??u?+Y/y?Z?1+?:???s???<'d??eY??v?? ?q??t??<&?a ?R]??*????2?=N?3s?K????2'?J?9?? ?t +??s0[?`?9?5????]W?zlg?g?E?????n??S?%?i??]7?|?[Wj??T?.X?}1?J?M_?????gGWg??Qt?????????; u?B?u???c?;?D?`?Su?????S???a]???s??????t????b=???B??@w]H????R=??i!?W??)d?.?n y??P???#?.???b_?(???5??wIwW(?wA????A?D?|??D}J?Zp?m?????i?? ? ?};??????w7 +????$a<5??o?yY??nK?}W?2?I???la?'????????N[?????V&,B?\X?mU?:?F???m???????z?N???G??6N8??S?Z????>?????l????J[??j??-?w?m?? ????V?5[NX??m??|hg?V?9i????????????p???h???????}w???m???j!J?X??C??v????}???OO??t?Cl??i=m?6=\??? }{?p??mG6>?O L???3??)Iwff???3O?lRg??56???>???x???2}??'w?V?4???=k?d?0 +G??????L?h(R???slc?-}?m?PRd? +E??&B?P????E? Q_b????3s?A}?m?s??f:??????'??Pk[????? +?-??t????M_|??VQ??t^?K????PVQ??C???g???Q?9??c????9??v. at yJ??~LL?\?O?Y`????O?????Y????x??^??????m?m?B??~I??????;?7H ?-??/yb?C>Z?)^????H{[??<X???????????????((s?cQ?? +???LQ?ky&p,!?*?v?8?}?8?h??F?m{?x?/????~V????&0]???Y???=W\?|????k?'??'???'???[aK??_w??JqOo?(?????C&??N?%?????bW??? +?X 7?y?NE+?'(s??=?_?m??6?? +??HT??~=!?s?U{????{??/?a??j?%# ???p???????????8???????=????~`?>?D????q??\??L7W?????k]??,s?k?k??u? +????-?????!u???:??Wr ?n???9??u,5?t???????PGB???p{??:|?Z? ?1}??t|?`?zhz9?c?\??YS?g;?o?VytJ?80?cV??O_v???????M:?c!?s;???H????? }?c=x+??2Mw???.?????a???J_???ue^?#????8??:}??)?????:7?S????`?;.x?r?;Q?? +???2???<x?k??? ?*???????w??????]??]? +?????=????8'x at _uW?_??u??? }?]Z/O0;?1???W??W?????`?s???7?????z%??$?7??p>?0?KW"# ??+y???WW??[n?J1????w??RE/???z?5??*z???X??XO?Jw??]w?x??}?yEGo??B??+&z?=???=?????=Zc??c?????f?"??C??a?x?G?q??:V?W???{^)c????X??x???????>???#???&????3I????Iu?P|L??????>??=??Z'?9?Q%????}?s?k_??+?!C?}?+R??v;????!?????>f???b y??]??B?:D?dM????\,i??????C????????~?JJ??2???]??z`A??+8C???u???r?J +&)???????* +?T?,bv]?v??.??"4????';?u??*?Z }Ru??0(?v1???K0\???I?%?%s?B0LJ|W/P?Hn?4??????k?0'?t +?????Ei???aE??aX???????i?'Mt?2lKS +g??f????y????tl`????l8?V??B +???vS??????6?vB?[?????gx*??:0"?A?aS????l?H???????c???????P???i????????sg ?|GJ ????E??@*0+?a,q?????vQO?? 5?[?4?3* +zI?>Uz?*A? +zY??* ?_???zE??z???V} ?????;?????/??3?g>?R??g?(???????CB?O???_?????????????#??_??@?(????|????????%? +?E?Cu?} ??7?%?oQ??~?S@??~?V??S???Qq????????(?J?????"?:?@?S??? +P9T??*?a?;?W??D???z????O?jAm??jE???????K?-??(E?m?_S^?w?C??S?i?????T??G?Q?????{?[???A?????????;?_?????F??T???????_???f???y???????Rk?5o?4?/i.??5??*U????t?M?V?????O?)M?fT????j?U??=U?fJ????h?4k*?f]???5??m?S???Q?4???V}???&b0???1??U????^?*5??c???F?[??H???????H?=???????pnZ??(J?C???D?F??OP y??%?OUwQ,y4?<???g???x????U?T?2?????(???????$??SrTRT?????d?B???@TvT6? y?)-?$?????>U??A???$?l|?G%???DL*????`????C?1?Y???8??O?d[ +?^?+dL?!E?THj??>???\H??O!??bH/?H??????9???????? ?@?l??t?^EHg? ?5?@2zy ??????[????>???4??8????)H???@?R&?!??????+???????D????)?3??A????????O??FG'?>A??hTH???+&?q???TB??.????OSoPo???7/?5??>G??]9? +J?>O?P-?????*?~????2?j??X?%?F??"?A?P +????y??M?}?????7????`I?P5O??V?6?c?????Gz??@??Ud$?{?@62???? ?<=??|O?????0?????G??a_? +v ++??X?????l?=??gb???????W???>???E? +{ ;m?O?2?t<?M{???-{5n??c?e?? +??]?????-???????]">? ???y???????Od?O??????m?s\???K?????????6??}J??~a??%???T?(?a;???>?;|??l??g?? +??\?}???? ???o? ?C~?+f??????b|$?C??m>?pU?},??F?jD??1?S?}f?7>?+?????? ?B???r??t,Do??? ????z???Kg_%y??????Dg?~p>?}.h@???????17b?????f????qI?MJ1??O?Ed??"????t?9nlSx?p?R +?[???????yuj_?s ???&?"q?R:?????>?o?=)???r?]?????q??R?ol??5pG???? +???eAa;?K??? ??\??????`;???[???Z4?c???ED?a'????>Fl?s??%??:?6?X?I?#? +?c??3_???3^@??????????? !??N??;\WHtf?x?!??Kb +?iB????i??@?t?r???? ?? ?? ENb ??E,x? +??uB???P?l?vX?u?'Cb2????)?????i??c?p?B? +??? f?b??{H?"?]$6?y???0???E???>?QC??>??m4?????6??K?p??p?????X?-?=?? +??"???.??Kl&?C?c3{=??+w=c?????:?1 ?-K?t???:K?t??*?y"?*Gj??K"Ec)??yI?TH??Z +??z- +????n?J?D??U?X?1 ??X??f~???K??c??????#? +?.^S?7??[?#???)?,#?{r?W?????9?9?????j??+?????&?x??z?ok?\mM?k?r??5[?Z?d=???B?l-?y|]?2Y???nk??'6!ls???????WZ?!?N???1l???y ?#R!*>??????????????*d6rF??2??Ac?q?8b?f7Ng?s??p?,?5??b\7?3nw??u????G??&d?????L?_K2%??????P? ?LS??Ju?_K0????n?JL?M?jS????5?Mfo?Ln??XIP???o2?C?4f?0MA?Y???#\???????_?????}?7an| ?+d4????J?A_#??I??L?ud??BvC?@vC?HvC?DvC??n???n?d74???~???~???f??????????d74??*?Ck?>NvC ?n?'?n?'?nh?9???????????=??'{??&{?edO?3dO??T??.?=???=?r?'?y?'ZA?D?@?D+?????h?AyP5?????dO????~???~?????L?;?5??P??:???mR????????kQ???t0???^???2??=F??I???????YC?!??e??T`8g(5\0T.? ?H0 ??n@?????T????????2"?????OE?D?? =?= ?  ?`???U???ED?1?a?e??,"D??J?D?$?h?E at TD?3n????q$'???;?w???????W???u??????]__?????????????q???N?O-e???*??N^?4??1???w%z4V?7?????#?2 at bH??_ ?1LbH??!?????J?RI +?%?H5>#6<6:6????????Zb??%?X?26??????????"?W??c cS?L?bl???Hl~m??/:?(? +?%baYl?W???n\?????z?L?n?-g-O?_???????-c7??xe?2?5i?AS?????7I?2v??}??c????h{?rG?&???????/???%?>??x3S?;M?y#O??:?X??h?h???h?(?'??)?B???D?D?D??????A??9;u,?Ew???l||b?)?I?$Fi|'??ne"??Sc!q??Lb??GbZ|Wb&??x81????????x??????ds?A?j6O??m??N,N,M?H?N?M???,?^?;?c???c?K?&>O?NZ??d0??l?l?l??[})?-ym?o???dI?<9\Z\)?\??,???'+?????c??S?????Zz??B???(9+61?Hr~ra??!?Ib.??&eG?(????l? +??1:V??B?????;?N??????????M?=??? ?????XU?k???H?I??$%D??N?DZ??????t?N)w?'K k??????~XZ=&6%=7? ??^?q?^?^?^?^?~)?9?ZZfmzwl~z??cV??>?>??8q?D??x??????7k7????m-?kd??l?l???l7???Xu?Z???}??e.WE7go??Q?C?u??$?![????%?jl#???J?f??????%????J?T???`???q?;?}8;Qb|??;?^??????????}D?8??0?$?,?2??,x4?N3`vcv????x??3y???fZfZF?J?,??????????????6?755??>0sK?$S????????????????t???Y?G2?cSR?ef?d?eVf?d?g?e6f?f?g?2{??~????????LM???X???qlYfO?Pl]e3???????????rR?K???????????_??????X?~???J?????x?otU?TU???V?h?_?$? +H?F$^C2?+???6???!????; Y-???7?flYeg?K?V|?s????/r???d7???N???N?q_??? ??|?X7_^t?????#??=*e~t>?????G??VK????,?Hik?????O?5??,?ld??=b?R????s?`(X,?h???????,c??u8???b?ys8??r????KCN.?????^???1g?&?V???7???>??at???!W9?Dg;Mn??N?6T? :u?#???PcCE+ +n?-)_??y?????r????h?\{x???~??#???????*?&??k???\??P????z?<e????M?z?!4?ZY??k????9?nl?????????????k?uB?? +m?N-?6??2d??k?t????Z?;???q?j!?H??"????U!]?d\BR7$uB??^N??:?|?l??d=?????!?)!?R[C=???S??:???6{???? +?76?^Hryh?i?7????]O?qR[?6?$??d?B???1c????C??C2?B?=?5>?_?;??:G???u???4??_ck????:9)???pF??Xg? ?2q??z??%?B????x I.?4?.?yW??????-nj????X?o????o^??//j.-.??\??9R???/?6??[????????b/k??h?x??(3???~?>G?],??x?i7yI?P,???^??????????{??MoO?+$9A???b/?-5v#+ ???Z+?????i????)?2????;zn???N]q?{?}??M^????z9???6??l?N-???????f????};???????o??=???=??;K{?P?}]???7k????U????kk??n?s>??[?3??????s{o^KL/?H??X|^,?W,?W??G??}=??wz????b?b?b?????o?????M?%?{n????y?4?s???P{????,?&$???o??'}.?o?Sr??Y%%f??%?S??~?d??s???J?&wi?(?4kJ?~???JdV"????&K??T??qJ??}A?2????D?$%kL>??/?=D?F?????J?^???%J???]r???=D??!J????&z67??s?RX????<?7g????aY#??o?6~ ?3?]??E?F8b?9.T-T???:B +?\ 5?7?z?m#?A??P??u??? + E??z?#??%??B??& M?!4[?Q??? =)?\h???B?6 m?!???+w??{??P?k??1?S?{?z?:?O????? $???????? ? ??s-*?s?*???U?|A?????{????[ ???f?y= + ?y??7?\0Lh???Q?t???Bw??? ??^^^??;?"?:?6?Rxs????????@:| |8?q?????????EZFZG?G:F?E???????)??#????H'8 8??o???{??? ??qHS???w???N ??k??'_????:_????}W??? +?[?????^p??l??|???W;!Ew +?8?n?Ey???Q?/?!????#?e??W? ??@?Q} +??_??r??Du?_:cE^??f?S)|?}S??r?hw????D??Nu|???" ?G????X[??X[???%?@i??sm???? ?? ? w?E?R?B2g?A?;?~??;??=ynO????w;h??I?r?,?????.?_??)o????G,??dN?^~?c??@?A>?????5???Zk?@B????E??????>?+X???|???????? ???nO???^???1)yI??)?L???-???r 2?^?????Z?/??j??nJ??v? +????+???%?????=??7|u8??;?R????;???h??/?C???!? ?8???2?-??]??C??E? +?'?????Bo???? +?fwm??@wk?+? 8W3????????????????????*??^"P???[m?? ????A??????:j?S?????`?VPu?????l$!$?\??????? ? +?[A????h?7?^?;?<???B?x+XN?)^???w +6k?????,??N9v??S??r????r?fPM??????A?-?[h???x?????? +ta?M?^??^WN|V?X???o"?I?????Z??>??gv+.G? ???i??Rp????h??3Z?n?(???mJ?????$?3?*w?%?????????M???h-? ?!?G?Lc?q +>??o-??Qw7??g?=???*?R^??K?T^R??s?6|[??Q??n?F???????yI$?^???l at 4??,$??y?1-@^???9u?{.g?????z?u??.?@?EF?-Ew :??wZ???Y?C?$w??ns?@,??rp??As???????:k??]? ??t?no????D??[??_?W'!y at w?1?l????oa????|??6??*?/?O?y?sN???]?s{?? ?Fw?K?C>???g5??-??B???'^?V!;???I9??_??Lpv???:?????P????O??????u???4?k?n? +??c?^????w{<{??????V?i?4:??71?S???????\?}OO???;?T ?O???????????*?S???J?^????s???'?p&}?3???/?fo?9?Lw??",7????f??[?syw?????w?{;?D~;?????Nkgk???????|???;?n?|?}????\N?s?????NyJ'????tB?5????>+???n?????? ?b??9?v?a.?&? +j|v?????HY???O??{?S????F??z????G%?hg-T~ +????b$M????P7O???????l???rww(?/??:N?????R}?s?r?V??Oq +?X?m??4w?? +??)???*???X~kS?????5?}???~G?^????a????,?Vh~?y?>Py?????aN?f????de????T???3??4???{????k??0?g(/u +??N????e?{? +Nw}???r"s?p.? ?s?e=?Jz?5TOL?/?v]aed?O? ,????????=????n=?>??6??? ??????+o?s?4p??'j?X?????c???S????%zf??? -F?\@b??????f?&9?o_????3:???to????9?UiO?????????}=??7?_?F#?q'?iz?w?u?J o??`?_????M???E????u-?x?8???e?.???sF???2K??H??s??i????@??N?}~5?=??3?????g|?m??wt???h;]?]??v>F??e?x??Y?????k??J?8]??????y?^??\]??e?z?8??$yr4w?*???U???- ?o???z?w????????*D?/?_?U???????^?958??qs?o????.?og?o?????7???????6g?{??O?Y?o???h????m??1?G???b?Dy?????Sx;??Y???+?Z ?????@3/f???_?/?U????????)O)???md?3d?j???b?3g??`/??,??rW?>????E???g??b?7|'p???`P-??V?4?W?s??fH?q???sx+???g,k? +??????>@???B{???JwD?G8???? w??b[????^|Vp???yPy?S??W?a?{?? gOY?vd??Y#??m ???y???`7E;??'3???????~??C? +4B?%????i?C?[b?????:v????????H?`s9?0-???_Vy??????B??__t?JV?????O??`??~ %8C?F???;??_M?7?????]?k????? +??[????g_?p?o ???o?[?D??\??! ?z, ?3?M?3??9?r?%??9~???>?|?F?a;?K??A???`?????!???i????C???Fc??_y?p7?????c???}?bpu??????U?Ur~8??|????????????X?d?gM}{)???<UgS??)V??>?L??????c??? O? ?[t"??Kp;h????Ci?u?J??v?? ??5???-??#????,A>?+*?B~??Q??7?u??b??????p?izz-??a?? .Gn???????????j?9??s@???_?Ol???????? ??i??&?}a???WP[?t.G??????_??Ci???O@?C???,Y;,?[??/???_??&?k???)Y??24W????N?6p???4mx??4???6???5mV?y +~???fu#*?XG0@??????/?-? +?F????(???|?9????;??du +w?E^???r??c???Q?]??7?????o$??G???w??s???c??|?5??q]?V?Y4????? {'???x>?N?6???[??2??????/]"d??? +??=s?u??????@????d??P? +`C???????/??x] ?p???;hmCf?? ?,T(oe?V:?,?Uk??VS?m?????Y?fK???N???A?????^$?????????????C[yG?+-???N:y?b?]? ??z??z^,?n;?????Q?}???`W???? +??S?I:.H????nCE????HZ???6????Bg?b??`??7???34???#?? ?9???`t???x-??????8???4?u?O??AH??{?u~??X?^$???I???w?~?d0???9?D?+????a?x??????h?s??g?*?\?????|6 +???A?u`? ?&?G\????A\???G?E?????O ? sx?8 +???6s?~L +?i?b??? ??} ?????,?E?B`?????Z?'??K??????/0? ?Mg???`????; ???M???< ?e?} +1?~???? -???s????$?d????????n?f>?v`/^&A????]Q?4?h?z?(?o7`6???o??2?]`?x +??>?9??Gpnc???????>???t2?`-A?m?????'`lNX?/??6M???9 Y a5C?(??vDk?????>??8?= }??+?A?y ?0dG_?fd??? ??=?8? ?"??a?y?7 s?j9??B~?3 ?m??;??S??wv?Ur<h?? ????r??"???Z?IF?k at __?????g??hp6pd?9??+?c ??e&?t?: ? +l?P???Q, +?lJ{????n????7????-???;oFO???.n +?9??P7???#??B3 ++???kGgc ????y??(jd???L6D???F???K'Gi??!lq???oJu?????F G)?{????4s???oA??????>3???9n5m?=?????6 a3*j ??/????{q0?7???a??,?????????lOp??^p>??2??c????? ?!|???????????#`????^Za??xJ??q?`<+???0?r??K???i????%j=????A?|e]???R?0?u??c??d ??'??)?R?:????R???p;,S?/?1/???v????{r9`C???d3??[ 2m l ?)cyw?a8?w???h'#?7??Pk j??z?sw*??? +F?r???p6Q+????lH? ??7?&P\???_?> -;?W&?P?jN?q15?2?Ge??????:PJ?!???~E!q???^B??JT?j??? +qz???w?5?F?SJ?H??W???_?????A?gs?x?? ?G?????u?%???S? =G??U:?7?>4??Pu??4 ub('?m??????"?.??)V????PA?ni*?? +??T??P =???"?????:R7zC?q?????? +???:S??z??Z?\?5?~4???(?H??{??Ku? +???m???I?>?-? ?(?? ?|????Z????????^?????]?I?5??s?+?Jh???? +???S??V#`s`+```?w??-??????q?i?????e???Z?f` +poB???????s?+????A?J??`??????????XXX??*?Fg?N``c???6?`??][u?{?t1?a?Q?q?I???9????? ?K?+?k???;??????< +<?????c|??a`0? ?T?n%J:??k?[i,?$??????c4?v&g???X???? +<<?J??[?K???h?????????Y8?eF?#??s.????HLG??? 9V??V? ????_????c?2??H??43?W??! +??2Q?Rz??)??u??????c>??O?????1'Lg??????W?:?????~?:N????X^V?Uc +X+???1l[?~b)?8??-??????0>???K?z?????EXd?EEQK4D/1LLs?4}?|?u?;oy?????G?sn?W??m??$??<\&??7=m}u#m?q???g???g??????^R%uQR???#??n?/???m(IA '????f.7?2???????U?U????/W???cZ??????y&?g}??t?X/?J1v??????R5[6??=h?F???< ?B!????^????)j?k??[?g??[Q?nc?!e???Q:????b?D;???IveP9UNz@?V???????Q?W?)?*??g>UX????*J?b?eQ%T ?????M=?????*G9TU?V?T%??W?S.??zB???????#?UR?D????dz\MUS???X}LO?O?'????fR5[? ???S?)=?>S?Q5?????V_?/???J}E???j!?P??"????TK-QK?Y????jc???z????????L??Z?-??????????^P??w5P[?W???i?j?R?W??v?=?H??{?e?W?????:HM??????"5S??ej?????????????????_{R:????,,;??????4?%??4?i{{?%??lF#?x??b??e?n??????dh,w?C???=?????i??7??;???X?????F??*RU?E??????A_?????h4M??4???%????6?KG? ]?W?????$?-&1? +????1)?M{?????Z??cbL_????1)?m{???????c??=f?I1?q?3T???0c???{?p?b???G?H}???F???>??cF????=bz???5v??1)f???#c1?n1?f> ?0?Q??????#?F&?L +?0?q?????OFf?? +?02'`?????F??|02?`????1z??b???`d????????F?Y0?M???#?_?.`fI???3Kf~?Y0?c??????#?F~ +Y0?&`dm??????#F?#??)??H????????#[F???0?=`$%`dG?????]#{F??? |e??????3?f? 90r<`?D?????_F6??m`d7?{~"M??4???4?XG?Oh??Y4????:|F??s?O_???@G??i!}C??[ZL??X?=-?h?H?i????'ZM?????:G6?F?D?i m??uT?N)??v?.?M{t??G???Ct????s??? :I??):???Y:G??]?KtYG??t??? +??n?-?Mw?7?KQJ?????>?7?/???%?????&?)o???W???o??y+????my;??w?????w??y?:??w?=|/????? ???#?(?????$??????~??a~?_.??/??? +????????????m~?????(O?!??CK??R?D?x^?/???h&^-DG?? ?Ab??@|$&?/???X(???f?El??mb?H;?N?K?{?^?O??AqHG?J?c??[)?k????m???Z??????u?:l??Z???? ????u?:m???Z??????u??l]??Z???? +?W??u??m??~??ZQ+???dYU>%???eu???!k?Z?YY[>'?????|^??/??E?P?$??ec?D6??ds??|U??-e??k????????|M&?????,???eW?M&??2I??=?????-??}d_?O?-??w?9P???9T?????=9B?????r??@??c?8??/???D9IN?S?T9M~,??O? ???'?????K?@~%?? ?7r?????;?D~/???2??\.W??r??I???r?\+???r??(7??r??*???v?"w??r??-???r??/????<,?????<.O???yJ??g?YyN???EyI^?W?MyK??w?o????????)g??r??T??W?5y]????{??? +??~+?'?7?/?v???????? ?M?????????s?v?????A?`w?;????w?sG?#?Q?w?;???Nq????????'? w?;????q?u????????/?/??W???B??Gw???]??rrW???zw?????nq???????n??????v?????/?i??{???^u???????M??{?????F?T???,????S????????????????Dc????????z at t]???xo?!1Z??cb?O???O o?D??y???i?H|Kg?!?Y???p???a;?J??v,+?;???#?IvJ??e??%???yxf?G?`x]?&/?{?-q?t???W(F_??9?????3?2?u?@?j?y??3?X?D??5?|??V?w??}??????? + +?k???C_???{????q?{@?&???-?ySSe4-?L?E??im?E??????g?UX???)I??X??OS?%?$ J8??U+???<7?3??+??yu?&?I????? ?9?o??? _ +_??q{??(????????? kr?_????93?l%??v?M??L?|Z????f???4y????&;????_????A>?c6?H???g?{???k??o?N???:?????s??_y???z???Vp?qG_u???8???c??????????W?_??;y??y????{??8/???{???=?e??z???^?a/????????z???^??W?+???v???[????KYw???J?bU??d?5?Zwr??????t???s??~??*?z9???1+??c^V??C*?+;????????\?q?Q??? +R??P<)-????T??em?4k??S??H?????g??X??&????}??PK??'?[??h???S?'2?T'?h??$ +?lQT?????F???S??w???Nk????????,?}????o?7Y??}?eu4],?3?y?ewF:???Xg<+?Lp&?"?Tg.+??s?J?"'?Us?:[???Ng'k??q??W??!?R_?e??T}m?_????b??|?-  +f+BEC???P?PI?&T6T?? +UU`???3?>?d?I?!T5T?m UUg?B5C5??P?Pm?%? ??m +?z??jj???^ ???????lw??????[????p?p;???!?????I?????9?gd?u????.w?p?6s{??T?(?y/2???????????f?M?Yt??QEr?k??????.??? ??W3q4g?g?????|??+???3??<+??|?=?????Y??x6??YK-?,vV;????a?l??s????? +?kOb?u1?U???SMh?#????EGs:?N?>=?N'?t&?E??yt???K???"?i9? 6?(=F???V?8?d?=?9??: +?Y?P? ?k6f?OS?2??b-9#?????x3?p?????s???%"??QD??p`???D??b? ??]KT?bv#Qg/??H ? +{???7?????$?1?"S?)?BK!V?v??????g??i{?T??:??N0??8a-D??j???:?F???|X}??????:v???|>??,???????c?z??4?z?wl?????B??????PD{??J?{?"AoK?6?l??? 2?HT ?Z>?a$??&????8@$????/?7$ +8?T2??<2??F? c?.???+d9?|?|/????>??~???|)z? z? =_#?3R?? rF???0?? +?4prx?1?.????DB??P#/`????"????$???2?^??6$X2^?CN?wZ?e???p????????dB?????????K{ !?{??1???5??!6?]?Y?VB???=?b???&?X??Z~?? ??????M-?B?XH ??B?Bb?b?"b??P ??E,? J 9?B?BU?Bu?B +?BM?B-?Bm?B~??C????*?G:??ZCY??lM?R[?B;S?? ??4????I??94~?????v???G? zls???>???[?)???0??)?l?@???` k?`??`??ruA?uEJ?P???(??;???2?vBE=QFSo?1?e???L??(sE?????,???kKx)?Ky??J???T??<(VA?^???Q???I??K`P(=T(?N,?4R??????q??0 ???:?!???????S?2??=????(?y4???B? N} ????V]!O?? I? O?????????i????D???4??1?)?j?Sy?8????Q%V??Q,??I?D? +???XB?c~??i?? ???Ud#?I?#???B??_????k???t???B[?Q???+ +?!`?P?*??k???6?L7?B7???nFJ?? t?e??2?nGIw???;QF?[?t4?%h? +e???A?1????(?&(??????Pz?|?_z?=?=W??[?>[?>[?^\??[??[??+??!?D?k??[?????:hq]??Z\-n??D?B??rb??NU??D?????~ b?<g?h lk??Ft????Bu????-??^????V0?W??* ?ZWQD"??Wu?t?????i???c??8???43???Lc r????;?=??5?.g????]??+?U???!?0{???=?c+??? 8!'?8EN???o????md?${???????"?b??R?2?nI?d?d?d?d????TrPrUr]R-?%?#?U?????????????V?(K???T"?J???TE?Nj%?????HeR??V?Aj'??:H?NRg???U?&?(u?zH;I=???^Ro?'??9?S?48M? +W????9?_5???`?)????X&?C +D?RfD????,?1? +F??8??&?&?F??(l% +% +%DK???k??/m>^nU??#?|?Lj??&`^?_!??_#=?? D???C/?A????? ?????????I?9???[G?0??$N ??d?s??x??????O????`;??Nl??????T?}WX?g???9?`KaKV??,?I???6|djL F?1a,?D?(?PQ?(Y4J??s&??????q?? +'??8??s??8w??????rC?H.???????(.???s\7??????r ?n1??????|??+?Vqk?u?zn#??????vq%?^n?w???s?q????I?w?;???]?.qW?k?M??{??r????????P?-??`?????k??Hc?7{ +Y????????9??O??=????f3????@?? ?+?/V0??|? ?2??>Lf X??7?_W?^????'???????_yk??u??&?o?/???U +?c?W??'??O?_%?????{ ???X??4????o?PH????$?_'??N????_???}?/????#2?BI5??n0?w??{?|?????e?GC?SD?????#??(D@??e?? ?????????3?wgA>??HA,?????0?????_g???hF{~???t ??R~??|????>??s???Z@ +?e?_?z3???6B??????=(+?_?03?? +?? 16???;?i1-???????1?P6`???????1e?@????r[??E??vP?b??l?XC?=??W?#?#???<(/g?C9_???F???k?????K?+?B???0(??b?+???.J???(g????-*???U@???Y?@???????LOi?r1????!?U??\?C??A?(0U???l?PY?Q1???5z?!????A(r??6{??"??A(r??"??A(r??"??A(r??C +d"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"?E&B??Pd"???=J>?X?? R????L?? +Jm??f?V??La?~?8?P*???D?8?'"?0???LG? + ?e?dV??N2?%%7H?I2I?")??_br?7??P3t???@?i +??]?(???mHAY???me?BuY&??P?P????ts??v??.???N2??5?B?S????RA?[(?h???86)f??#?K#????Q????????#?????rC???k}}%!),%&!^n,k?_h?|????b?9*eXBRL?X??????L.??e?o????Ln?A???o?Q&m??,TD?+p?e2)%?LiE?o???K? ?=**?m????E?+K????*??hn???s?#?>?8?x????y?s ?D??i??p??-??U?????YG??3_v???L???y??}??i?U????'?&w?;Een\????i+B?S?.?????@.6?,(?????o?Fh??E?t ??z??????e?}vL?T??$$'`????F?l??Z?daL?? ?q??]]??O???U??x???>}??v?"#Ux????I???J??V/i?????+[?v(d?a???u?@?_??N??Z?Q?lI????%?T?M|??o?k???s?N?H???_?_?q??E$??_.????CM/???j[?/9?.??m?q???k??]h???Ke??w??\];??4???8^??Z?vC>?c?jb??F?@???wg??? +0 +|>~?z??v?f??V??0S?X?:?????E??A??l?gj??74N?W]???c?????????\d???BKf??I?;??v?????n??Bv?X?7???\V?????_ ????V????@9??-?????S??$^Sw??pT????? +??L??T`?oP???i?????0??????l? ?-???????XDP????;X?!S??l???a1?CS?gTeRQC1(*rDB|????V1?????5?e34?j????/Q?d????w?8???(?Zof?-???U?1?????>?e????A???1?{\?gc?Uv??D??$}? +???s??????-??l???????egt}V/?k??????????h??rVu?Qj?*????65???fW????o{Dzf????)Ys????Yy?iM?,?6Sn??H?WG?;f???s^???ng?-????c???&+go?=??ho?????VWl}t???[??3X?tt???7M???^??sZ?h?}?x????????M????????~?L|6YU>?f?GTx+?x-??A?L(?? +b?D"E???T??u?j(? d-????P?????$q??W????n??;??L?_V +?e7?:?1?7l??g^{?@@JQ?6)mG??~???g ????c??1?qEi/??'?V? ?:TP?'?y?w?7y??2???I??r?????,'s????????m2???Z?A??%9??6??`~?Vm??????j???????????RJ?=???i??*3_??$?=??#???????X?F??;??? +?c?*?7??/?;?I??&???{??b'??????>4?8??D?#k1??????@+aG???????>?????D?????#>??}D????1?Y?????Q)?6^?????)Y?O? ?055?{7?Jjv??o:?M?? ?C??&?Q?7??n?_?H?<6%5pI??D+f???yE????????m?K?{? +Q??wMM???? ?????????b??F??w?t???U???\\??G??;]?-?g'??a??u??????M?OX??h??m??U??U??p?5p?d?>{??)>]??????X?????????T?n????sr????t?.ug*?/??x^?f??M??.??)\?a??q??Z???.Np??i??s?t?U?_???FU?wc????+??mU3?UX?]5??\7@???6Y???[Z +????C???Q?)a#?????Y? ????"????????e?????????@i??8,*??;???'8?E.?v??w?s???????? +??Q"8*itLD?_??}???+c7O?v_??H???M???Jm???9???j?y??wl(5O[?po?D?3W:?tv?}s????/ 2?? ?J??{k???=Y/;?LE??d{??/Jn?Mh?'g??&?,???#O????~nr?????u3kk??mo$?:xj47D0?cm^?S?C???n???????x?V~g????AA?=^8oy????s ?F??)??N?^?n???tS]?#3|2??;)?R?N????V?C???_s4??$?~Md???p?bk?u????7m??n????[Nu;= e??????O??y????O+7??1lp{Qy????????Z?-L?=??Gt???9??? ?C????+?????????H???]????n??ge?_=0?rr?{?+?? ,v???????}???K?y6???c?.l?I??&????gY{O=]?^}??kK?3??????5"r?_??/?? +&?t3??q???<_??pX?SW?G????L????X???IinO/?z8??(>4?r??????#Cg?????????z?>wI?H????:?????'?k=h???j?)?=????????G?7'U/eq?2G';]4??*T??hkv??79?xN??????U???L?S??|??s?o??=????f? S???8?pN??lt?k???|?i?w?T??*?P?_??y^? ?cQc????i?K???~????[??^{?9?^?xV?????\??f???}M???z??????;D?????-??????S3vb ?nT?i???{??w,-?^? ?q??????????r??????N?)? ???T?1?o??????qf\?i~???+ +D??2? +>:SI ?6?V??|9??9Y??Z2?/_?????%??94~x 7?}?f???bYd??H?}d!?m'Y?$?D?$??3??$??2?$??P8?ad? +?I?:???ML??8l??7?&??D? c??????????=???BU~?p??G?vz, ? 8????????o???MV?Y}d?g???e??_5<>?x????r?~wBk?s|?>?h???DT??qz?c]??e?a:????????F';y?m?588l?DOn}?@q????K ??eY?K? ?????R?]??a?Q???w?v??? ?Y=??v???I#_???w{>p +?[?'??????r[)..???f???jE?Y???0p???/?vx??k??1??? +v?????t{??u:??a?gN??????`E&?J??????> +stream +x??] x???>??}K&! ???@B?nX??l?[L!??$??dBA#??????U??U\??%?(n?n??Z?[?j?u?E!?=?7'\?s{k{???w??|?;????#0?K???-.??S?e?????qc?me?J??J??????O???_rUc??? ?S?T????y?'_1e?v?tV,^T?????KT???WT?f=??z?RT?X??E?E???????5??&??oK?m?????"???u5z?/3v?? ??????|???Qu?Y5????`???3Q?????????_??????rc?_???#'"?*?Oj??q??u?/E~xcsd}???????uk??>???X?3(?lj +????0c?]? +-o??o?=m?=(W[????uK>????2?Z?#?.??|!??????w)G????L?????????$O??e??H???9?O?r????g??t/??0J?gdG????C?vY>?"?K??????@????0!??^b?(???d??(z???)?^v{????????? +?k?\L?uZ?? I????t?5?E??>_e???mH?D????X???D??'?Y???nC"%R"%R"%??*)Ws?????????????H??H??H??H??H??H??H??H??H??H??H??/N?8??FJY??l9?N<:???????z{?????~?X????|Po ???M???+????>>?[h?+???)????#??w????(???m??8?????WV???n???W?\Q]?[V?t??E ??7w???????Y3?3??8m????'L?XT8? /7g?g?;3-????Y-f????)??y?k?hnMT???={??{?0??j?*L???D??M=?? ???Y??%]???z?'[LUYM?????hW?:????????Q]nMm?Q????)-?q[V??Bx?????S +:???*Z?i??yf? ???Pe?V%^-?Ve5?x?hQY?h?Z?]SJ +???*Wv?[????T??,y?????l??Z-??8o?,zn?1?U?KW-f ??Y?P??tiY1????U???????8??rJf?"??Z2??]?M?;??????5??????M??omy??T????xLPC???h??NE?E???a?9[?r?saSF3?Y?T?l?Z? z?=XC??U?ob????W???dE?6??U????S.??Q,3J ?`y?KN?????}??????j??3??[??2;?6????W?:[??????Q?jy??????{????VV?8E??????TVMsim]Z???Q?*??????]??g???d??o?\Qu??1u????????Y?{????~?1?fU?UEFi)2f??u???.?T??|??3?f?6?= +??????'?W???I?l???-S???l?n?????e`*??G?g:?*??{?b?G??????3K?g? ??????38G?I?5?SXPU??i)?DH???wYU??????Xj??UQK>?~C?\?U??\? +?E;??J?5?? Tc???p?? ?%?Z?Q)???j????vUG???K?B??rvF?l?L;?4??Uw?z?i{[??s? ??*???B/??A2????E???g?J,u:K?.?q$?s???x!????????Gh[????Su55^??w???QZ??o(?0:(?#????????1fI[?Y??E4Z?dBq??3??????`???fqF??1? ?I???q??,?????!?_]????d????Yu?????????????mv|s/????Q-?O +?b????u?%????*?)???K?3?8]??Rl??4)6J?A??RtJ?N?)"R?Kq?mR?J?"E?MR???)BR4J? E?A)??HQ+?_?)?H?Z???X%?J)VHQ-E?'I?\ +?????b?K?X,?")J?@??R??b?s??-E??R?IQ*E????)?W?RL??D)?I1U?)RL??X???$?D)&H1^?qR??b?ERJ1Z?)??%?H)??!E?9R ??#?0)??P?pK1T?!R ??%? )????b?R?K?&?)R?H??)E?IR8??Ka??*?E +?&)?R??K??B??K????JqD??R|%??R??R|!????\????T?O???K????C)J???K?)???])?,??????H?)~/??R??wR?%??R?V?7?x]??H???J?k)~%?+R?R?????/I??/H???I?s)???gR<#??R<%??R?e.}??}B??}L????r$????'? ?#z???D"??R????r?'z??????-2?I?[?7?^'??P?5?WcO?:6p9?WD????D/???%ry??2>O?????%??=C????"z?? ????8?#?G?(?=B?0"z?????z??>??Kt??D{c3@?X?J??(?]Dw?At;?n??b8?????D?P??D7???F???'?Et??????*???*??DWR?+(w9?eD?R?%?b???l??D?O???RG?cc)?ccb)boR?????| +6?h$?#A?K?K?4??C1?Q?l +?R7?P?7?h0??hQV?y2(3?\ +s?e?? + J? +)T?I?d?$"?????>????{??????%5?????~??{?m??????o?o??^s?u????5?W?&?+?\?/?????w??????a{????9?????~?q??iG????????????G????o?>|> +<?z?{??????Y?b?V^?????????w?o?????}??????y???6????fo??????w???? +?N??????sX?r?w?o????#?#?????????|LWX??C???#???}w?????]?hX?5>VX?[{z?? +???????g???V_??V_K}??40T??k????/??w????>q?oM?????O??*^?[?{?????w??/??v/?U/?-?????x?o!? ????????[??=?]???????~? +~?? ?xx? +??*?k?W?+?/???_///????~<< +<< <?????=?}???=???^ ???]??????n?6?V???-???M?O?????]?u?????k????????????e???%???E??B??|`;p? +??? ????fvq??????9?????????c?s??????9?????????c?s???????3?? ?88??3?? ?88??3?? ?88??3?? ?88??3?? ?88??3?? ?88??3?? ?88??3?? ?88???????{?c?s?}?????9?>?????{?c?????x?????2??f?t-cG.9?[???)??u?9???.a??7X-? +???b7?[Y?=?~?^?g~??C3???cF6???C??? ???Y.An?^=j?u?~x???#??:??S?U??P^??~??~?"?;I??s?????=r??[??%l[?V??Y +???u???02kYkf-Z?e +??Gn +?p?h??W+k?,?:?:???<???.e?????XW?k??^???b????fD?e?\?)Q?{????dw?{?? `?hD???kc??1??n??b????:}}???t=?[??XG?????AD?|?H?@H??.????T??*???~#s???x??????????U?n?&u??????????od?a7a.n??d?? } ?)??ml7??Q?_????f.???????L???c=???????7n??Y?g??Ba?p??? ??$6?1??k?j<?J???q????Mf ?B??!???? 6??sOzi?y???(W?????q^?M?+?? +???o??|]??>????q??q???/~?`?????????z??? )???????c???? +iI???f? +T&???4~????? ??aI?f?0???????*?4i???X???N?/`???{?????n?:k??MWc? ,*?ff??}w??/?79????k????6?J?w???v?5?Vg????? +/k&\??w????? >i?-s??(sl??????K?|lR???)?g??W???~?K??S)?O,?>e??1'???M??$?P#?'??8A??Pe ?1B???i????????:[?????i6?H7??Y??S??Q3???v?`????.?M??'??t?? =\?7i?a>F????J $ +?+?1???&?G?f????M??j+9=m?"? ?kL)???????2????q??Y??kJsgf????K6???:!+}????'z?Gdad?z?L??? ????u?w??ZaI:=???]j\???X?nV\??M??nE\??(?Kqma?~Y\[?]}?6?\?k;?6????O?:?5????m??L_?5g&???V???Q???,?rf\??????3????&??rS\?Y??@\[??:,??|q????[????????????[?q??&???g?4??i?I?8?????q&m?g?q&M?L???4?3ig?4??i?I?8??T6???S???????a????z??D??(}o?K???d&k?????5?F??k? 8?u???g ?5??????[?????_???%????F1?*b???????iGnc?_r5????@?????m??J?|}L?Z??????ly|???m""NB?7??`|?Ro???7h???`|?D???+Z?V?3Y??K??[;??j???!?? ?_????1?XoAk???.??2?????X?6?#?S????ZEu#x?0?Ex:??P?????P?? ???h???6D????z?/b?U???o????+?Ukm?U?A[m?Z #??j????j}{2??????Z???2??|??T7????s?6&G?hg?[????^? ?VQ?6?u}k?N+o?V??~??M?iK|?S???)v????tB???Hmu6?_??=??V?|-??????)???YZ=?c??????z=?]S???? ??N}???}?A??3?E;K???Sg?1c??????U??:??u?y$z??#?8????f?w$|'?? ????j?2??u?????1???|????o|O??"???z1?????MH;w? +?l2??oCZo?q??@?Hf??zMu?.??? +?v?2[???X?c]7???6<? ? ??FCt??g??A1,"???-?}H?{??^?=??X??j?????g?u???I?M?0]V?X +}q??zn5?@??????f_ +???H?H??s?????????b????lZ4?????e?????+o???Ew?6?m?b????? M)??T>???fc<`??+vc??!?&?????? ?h?K?5???????{b???????f?????6??a?6???G??(??????3????H?Uoe7(UL?nbi +??Z6??i?m??x??Y*??I???v#s??x???"?L?????f?df??D[(?l?YTT6CD?[M?A??0 +?..???)R?h?j??i??!,?$1C I&?7! ?7c???so??>??????s?????9s~???,7???$:??[?X?? Dg?2)=}??=}?????L?r????3???Nt1?~?}k?6??"5v'??N?? /[???????????????{???|????Yd~???G?????j????????????`???s??9??{??????\g~>m~n4?_3????;Zg???i???N?T????Na????????c???|?6?????b??%?J?`??x3Rg,ZU?R????}cn??j9>?????h?:?[??s?-????'?=??}???^>??????;???????*??m???? ? +W?{>?q? ?t??n???:?????t????Z"?P ~??^?????????Z???~k?(?????n???z??V?k??s?Y???&?Ik^?5?i=????d???U7??'~????R?x?M??J?O??????eee?Y6?_ ?6'????Xy?M?n???'KB????x? +?Eo)??? ????r?????w?+wv?o-:?7Jg?O?????;???x???,?~?vi>SR:?tm-be?O?t????-??O???f)j--?????H???Z?6???z???*-???-?2V??WR????6?pj?Q?ej???en???d???{e|??}&?????>???_Rl??~?) ??? ?_?? +?????5????????? ???A}L)x??Wc?Y?????G?i?=k|?????vg?^?u?=???V??Z??fGv????><>:w??^v??H?gK? ?o????G????%?r?93??)?????cv?.:[Z?cm?=ew? +??ec??5?9?<2??Og~?????????9?g????u?L?tv?lQ??y?9??[f?7??)H?&c&?L?2??Bz??c?Y????V? m???+?f???????h?O???????9???P;i?7?? ?c[?/?????e~????? h?6?uv??R?$?.'o^?? ?/?*U?YH(?qr??????c??+(??p??"@)?SJq??(T@%T?????A?)?y#h?CD????~3|??_?}?R????b?2? ???????c=?g8> ??}??E???????????=?x??#9????q???G-]CK?4?|?s?x???E????2????w??"X???????D~?!Z???=??? +?E?D\?|?????????Y???K??T33???}+.g=_$??Fg??=?5????I?`???[?$?6s?5I$??n??=?F????n??=?F????n??5;Rs>5;Rs?Y3????L?f"5??H?Dj&R3?????K????????5??tS?MM75??tS?MM75??t?j???A$??|`j?3?M?4?-:???f?E$?wK`????-??[B???im(??:???F??Q?(??????0? ?? +??0#?r?F??? ??*ca?????&?up=?aL?)0n?4?/?+?*????&l??` ????? +???x?;?=x? ;?????r?L?Yv???_?n?)?|???????p?b1????d?? v??K??=P{a????J??????? :CH?TYi_/?_???[?I??? +???/\??#?M?|/???<_?w]V:.???\ y??zAo?}e?q ??e??@.8??;?q>?{??q?U???N??t*`?8??? ?7$B\??x?????I?N?v??????? +??;?'?w?'?wz?'???????a??s8?B??`4????p??ss8????y????O?S?;??? ??.??`?p??W??^$?u??N??@ +? +??IYcJ???|???M2l?5 ??? +??????v?l??vfi?{???}??=???? ` <"5b??M#6??4b??M#6??4b??M#6??4b??M#6??4b??M#6??4b??M#6??4b??M#6??4b?\?e?k +L?! +?A:?$+?]??????YMe?????????Yo?;?s?~xL??A???M???}?o#?m??K????K????K?? ?rG? +X??r???_??+?~???\??K?r?W???8??oU8??MdP#?H???I)=)Uf?????AcuI??!?.??3$???Gv5?]????????RzWJ?J?])?xq??3^????g?8??/?xq??3^????g?8??/?xq??3^????g?8??/?xq??3^????g?(P??(P??(P??(P??8???B*d??T???=???B?O#????[???O@???0:????_??W{?j^???=???i???i???i????????????????????????????????????????????????i???i???i???i??!?B#???Y"^F??D????T4?C?O?y??G?y??G???_L???_L???_L???G1?(?????~??b?Q?X????????????f??yns??p?6=>?:?e1g??{]?d??d?jX?? <9??u???bnt17??]??.?Fs???????bnt1/??]??.?E???y????b^L??p1?3{????1?C?????}?{??b???!?n????}???F?5???w??k?]??}???F?5???w??k?]??}???F?5???w??k?]??}???F?5???w??k?]????5K~???P???9???\ #"?+????q?4n???r?u?????@??) D;8?7??8t?N??(}D?#JQ???G?>????(}D?#JQ???G?>????(}D?#JQ???G?>????(}D?#JQ???G?>???O\N$9x??7?V?????Dp#?;F?N$k??K?/3]??????_??.???.???.??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r?*??r???q|%Q|?oN??????N?"?????X?W 'b????g???'?????x? ?u)?.??Y???????S??????v?6[?J]X??N?? ??IF???2`]'??G?????n4????????.??.??? ?"??z?\??????????BX?a ,?e?2a?????4??*k? ?1?y?????m]D?/??\?$??FZ??Ax??N?u?=?z?{F?> ????I~D|??r?K????xH?!??h?!:@G??? ?@*t?n? +k?? +k?? +k?? +k]?d?k4\c`,???p5\?????`"L???q'?w?=??yp/???|?,????X +?`9d? +X)?62?*~??????\Z+??&?? Q\??@3V??????????????P?(a?0JK??v?Q?x??#?????G~O?OdO?H????O?S?/?K????c???SUKP?UkP?4?C?RT-A?S?Z??%???fj6?dJ6?d*~??*j???` +??` +??` +??`) +??` +???` +??` +??`) +??` +??` +??^ +?????z?????b?i(????R5(??R +(??R +(??R +(??R +(??R%1??P??4??PJC????]??~ ?G)?9?= +mE?o?G????R? ?:?=???N?;9???\ +Z2??t;H?%?["f???y:?1Uef??d??E?z?hF?fZ?B ???q????R??}dR?U%{???S??] z??Jo?#?U??s???]?????|????W????????B?F?(,{U????%???z?X???B?f?nF?f????*?_?7?z3je?|#?e???L?>???y??~8?@??{?+h?R.Nrwb???h??!????.??????$? ("ZE?????b-]???jk[{?VkOm=PhEA ?@m???"U+E?*Tj]w??2?0 4?'?o?????1=???9???r]????w?????????? &i r>#E???6{p???SsoXS3 +?q?f???j??7???}??>?E??V??v?~;}??????f=?k??????Vo???1?C??0?Ns?4?N??j?[?{??n5???K???!?t?-bK??[:???8??bE?X?Q???Tp?????i??,_dE_?+????e?7?fx??-_?z?o?????aay?h?*?7???q +?js??zl??h*o?_???f???-?1????[???6l#??:?;/r???o?Q?????????n? ??????m>???L????9F??Yo?p ??o8????[??? g??7$?k??w?????x??????????8???????????Y??jS??T?6???+^??8?3?'?O?;?ar???g?S??????}?L????F???}??6qQtH?R?K???eG???H\??%{??;????d*/??K?f???????ps?/{ n?m????{1??t??????`?}?`V?!??p?l69???'?;<??????&?????s???~W??jaQM??"?%???j*?W????lx???|??\?}p??}C^????????;?30??0|??G?$??(?DX?hJ??Pg?O??1?Wc?k?u???? 7??? +???SE??D??D??D????Y53?3????#???????G??? Q?*Q?????j)??!l??o??/????k???o??;??????ve???g?p?]?`?}????N?k??b??a?l?K??K??y?oy??y??????N??K??3???XK???R?? ???<^??^s???\?\.s?,fm?????m????????5????Z?|?X??Q???5??#?(^???]????9??u?R,xR,x?(??W??G?Z???H???? ?? ?T{???bon????????[?????????d????y??? 7????rQ}???E6[*?-????????d?g?????'?????I>?"?????m?Sr|?????/g??Y?r_l?kk?????o???~??_??W??E9>?? ? ?zL?[*s,???G ?XCA.?/? +???K?????gE?&?????????Z??u|?Y?{5??%R7??[,????76?? +?q?h??G>?G?D??([?++??z??Vd?Yk??2?t?(?9D?z??????:?^'????"`?X/???:Q?^????E??(V? +?X^??jE???R[)Z?? +?SAt*?N??Vt??jE???RAT*?D?Z?? ?E??????$?4Y????[??j?e??Z?h-?D?&??Idh?RuV??J?? +?E?&+Ug????&+???_o?????v|?_o?????v{??^?? v{?n??? v{?U??????&???.oRo???????/??]V??~`GM????Q?Z?)v?n?:????????V????>eM???O????]?b???b??Sx?.^>??O?????^???????y?t?????b??x?n?z?????Z^????????3?}???|?Y??w???l4?????S?w???sw??|s|-??c??`?????#f??^?u?^????iy?e?8#?L??c??*e??t?n?u??^????K?????=??W{?Y?V?.Xn?/????E?bf???Lk]??Xk&k?4???z????????r???3?d-+??#?vD?????KvE?W??js\mUki??4?rzk??D??U?????9icp?i?/??j?\[???z#?7????!?????o4?-F\?g k7?v?Qn1?-???????????????,???-,???????????hW?u??~????/E???Jiw??F?t??lc4?Y???E???I,Sv??]2 eW?w??4?V:~???*???t]2]??K?k??w?1M?Kv????d?.?{??Kf??????Xfk?=b??K???]??*?|??< w?rvQ?m?kl?????J?l???+?|(??A????z?0j??d????v?i?????? ?8[????v?^?V??[??8?N??4????/?. +??7?N3?,????K??&???u?Y??uFG?m1??`????????????mw?a???[5?t???l??mW??????W8???,U?l?B???v???????wD?5>? +RK1?SK?1?????Z;(??????v?L?V`?x? +??p2N?Gq*>???q|?c(??'q&>?a?4>???s???,|g???'| ??\??/cD?????R?+???W?^?x3,*{ o??x',J>?H>??Q?|1??\??????}}?? +*??????+?? @s????3[?5??:?aT?/5???0.????(LO_?K???i??f??b +?Y?%?$?GA??F????8????/?????e|??????o????}??>?s??????8\?k?cLsx??????????F??????7??%~??p3???^??0??N?????Vt??cE?X?9VtNT???a?U?dU'Y?IVuR??aY? ??Ok&V??? b????QF|?(?L_FW??L%??R}p???at????????2:?q?G????D?c??1Q?'~??F?#S|)5|)u_X???????????q???8/???&?i??I?1Q??U?????\????p?iR? ??=?.????9w?9w?9s??9?-QU:F??;??v??tW???oXVy0???? ??8 ?Zi???Zi???p??`??j?r|??_??aYUYX??0\??????d?7?&c?d???}??o2??V???a??;q??=??0??~????_?}2?a??`V??z"??$\??`?j ??? ??j???????????8????8????8????8????8?????????????????'F?{U!???_5I,?S??F?O???_~?h?-?u???D??(fP?l????Y?(P +?@(?P? +@?(P +? ?$?D ?R??@+%?J ?R??@+%?J ?R??@?(y?(y?(yE??!?F`$~?Q??G?cp?#D?+E?+E?+E?+E?+E????p?t?h:\4.?fD??h?M3?iF4????4#?fD????$?6??M?n???$?6??MQ???9x ???h??;@????X????X????X????X????X????X??E?1???zL?Q-? -h?f?a b?c+:?-L?g???E??"?l?}??>^T/???????i?O??i?O??i?O??i?O??i?O?????+;_???u?r2QN&??D9?('?d??L???r2QN&??D9?('?d??L???r2QN&??D9?('?d??L???r2QN-1_-?P-?P-?P-?P-?P-1_-1_-1_-1_-1??/Q????$??bYY,+?e?????????e??d??J????V~9F?n??j??C??v??6Rf;Sf??-qux2? ??x1??xE?[???W?7D?e?VY.?X??/?U?t?K?1???f?gl?????\V???rYY.+?ee??,?????\V??R???t+%?JI?R???t+%?JI?R???t+%?JI?R???i!NN?}?3?f??x0 ?9?????]??]??]?e??,??E3?hF???Y4#?fd??,??E3?h??????????????????????????????????;B[r'?? ??{????<^f/3_!3?d?1????/??????????/?J(? +??VUBA^?.?*??J? ?_!?_QaL?$??????BE???T?2?#ee??????(?( +*???????*?????:??????|?ZUF?2NdS'?????T +a8??UyT?GA?QPyT?? +?? +?? +????8?GS?h?j???0??AM\IM\IE W??)?%?K????L?R?????2?K??X?S???T??S]Q??#Gq?(???S ?W ?W /T /?@r???????3???x?? V???X]? ??????X]S+c??1?o???%?4?W??Q>?S??G?c?y?K???v????!?p2NF +?!???<S?Wc?'?????z"VO?T?x*(C +PW???xJ(??????"V[?j?XmSHc(?1? +iLz???c???XO5M???QM??????xji ?4?ZO-e??y?~^??W????y?~^??W????y?~^??W????y?~^??W????y?~???Q]9?+Gu???????rTW???Q]9?+Gu???????rTW???Q]??S???8=???ok???/???}??p?W??H?(?Rh9 +-G??*?x?6???????1???????~\???? +???2????????0?G???????m?????)??>?7FY?/K?e)?,?????_???R|Y?/K?e)?,?????_???R|Y?/K?e)?,?????_???R|Y?/K?e)?,??????_????????e?F??]}??;????%?|?w?O?]?s?????#?o$.?M\>?x!?N??M? o??}"\bC?#?)??h?M???6???????EO????a?????k??i?D????O??;???zQ???.C?r?^?%??Ex??-?rxF?[?x5??x-?????yWb}????z?M? ??Z??E???aV???T????????|"????QV\E?>?dl??7?????????????~??_?G??????????1?I??d?/??+??#?%???_ ?R?f?^?:?X??o?;??????(+K? ~??7??????????1S0??O?3?7?F????ew?N???q???????0??T ?????_?B??B??_`U???>>6?J???/??}????]v???N???J??nL? +???????aX???$+?7%S???tH'+???U???LH%??7&?aX???^??O??5???xL?D\?I??????|??[???????8????$??\????4??x??U???`!?E???? +^?kxK??drX??X?????????g???/`??S???????/>?b1?`9V????{??????t?U?^??p  +?0??0????0/}?`*???x8???p? +?*? +?*O ??v??{?m?Q???m]?? 4p??????????????????????????????????????????????^m?W????Fm???)>?Z?????1??V??~?0L?1??? +4eCvR?????????????G?HLu???nT.??N^??/D?'D?$^?NM????&^??^??M,??c????????}??v?+?p8?????? ??y??????,????]??zz%??1?w?d??????? d???oo.?5JWs???w??={?1????C????%?03?????Z??? Cmbl4??_M?I??????w<-7????V9?8??????( +?*?B??B?????xAtp?"?R?2?t??t?+?>96??kp-~???????p=&G????????????????????????????J???????*???x?J???+????fs?&/?"O????D}????????X?Rv?\?"O]]????s'F?W??J??&?I????}\???>??y*yztJrhtk]????s????-??K=???]?7???%????;?cyX]XI#????K???%f]???6?_:???&D?????p}4\????A1?????*X?|1?Q?~????7????9?????? 1????[??l?&N??????3C>?`4~???u? !?7?5Z;Zk?Z??? +?????s6:@???????d1??r-?2?U????[???*Y??qaP???%?????? +?????? +??????^V?g?????O????x??Ys???x?_??(??lws??]????9???U%6?C?Lr????a4?|>??#?;?????qo?{???d?=?????X?l??35D?????P=?:??#\??`??q];V??t??C{?(?Tl??q???>????8$:???xr?67?r?+???????Q???1? +????_%??*c-??<9?XF=??^e???'?vo?{??]n?}q0??g??hw??j?????r???t?(??v??C?????????~???!a?1t????a???|?g??????Q?9?3?=3?3??l?u???zH??8??e}???8?%??|p??????1TW%J??>??????h?Di?????3?????'??????/???D5?U???IQ???w??????}????~???????????3???+???:??|??j??~S???%vv?????8??j?&?t??j?O??n}.????&+?[D??D??D?s?U?????????"????????d???,?!9?E?O?|@? ??2??Ye??????&=?a?F??z?N7??H?\?>?G}?*z????4???? ??;?Oi!?????(Z???b???J??h.??]C?Xv?fM?m???`-h ???M[Yk??d???????=? +?^???^??e?X ???J?j?;???uX +^??e???BV?_?/a????e???7f??5???_??g??M?v o????y ??]?????+y+??5???????-o???;???f????Z?~|0k????Y;>?????? ?4????!|!_?????F?!?????|??>???A6?A?K??`_ %B6C$???Hi?'QDd??EQ????l??(*?E??8?-??s?2Q]?`?EMQ??uE=?Z4????h?????El??D\?6?kD?I? na[ESq?%Z?6??h+?$:?N\?.? Wb??1AL?Q????'?Ib??S?5?l?????b#/+???z???k{i^%??k?5?7z????&?9?c????7??~???W?_??|???3?#??G???5??O?S?l????_?/? ?U?*??_???K?u?z????o?+????????????~??????????????|?L????L??????????^??d'}$$?5?!??C/??G??|6L???az?.??aq?bX2,/??? +rD?5?*G???g???W??|#??????rB?r??|/??????????[rR"OL??%?$???%??s?&??????? +]K??4???L6???f?!?{?G?0?.???9?]k?!? ?????3???????^?`va???????8^,??O??b?1k?A????<{?r??????[A?S?]??x???c?n???x?.?????????IH????]??????,??>?].i?0S??vD?J?C9?}(?35?=$??c???X???`?x?m?Hn??0??0?????Z??=?B???????????????????;??!??.??}n>E ?=j???~O????????m???G???(????????#?Ss?A}{???of?h??v8??R +7?P????T?~?????2F????%= +?????????Z??8???'`?/???w????u|???F?emsz???{?/??? ?6?~?6???h?(%J?Pq?hN/????M?&??j +??S??A~,????r*???????4??/?????????Zu-?6-?Mw3-?6??6??6m?6m?6??6?M????L?Aj(?X??%Y??%[??R???jm:V??t?l??,Xs?5 D??fAD????A? ????VAfP?=? J?6A?? ?HpAp!{V?=?1Xg?XXg}XGk?'?M?:Y??uNx2???f-6D'?t6E???a??*??????km +???5?bkk?e??`????VY[?????fm +???l??5?AkG?C??`???yb$1?????Ey4q_?n?8?aNc84f0,?!? +tz?A???I?0J??>I?O??z???????(?j???_)??a????`???b??%?}lt? ?????;????????>??i??3?4????N#??H?4RC#[S2o??N/S??K?_??R*_?WPQ????t? +?Z??k1???N_ ;}?t??? +7?*@?) +Z?b???]?8>e??8??q1??mTA4?6W?6?D??tE??%??K?yK????5?Z??:o %x[?]T?????$o?w?Jy???g8?/??????N?K8?/?????%?JP??K?S?????W!??j???????5? +???O???\?????D\oI?3 ???g?g?Qu?jNI?vu;??Z?r????E ??A?j???T[???O?CJ?????#e??? UC???IQ??Q?5?F??H?F??1j $???HyGM@?w??????pg>V?????d??)j +Z?????~?f???4S?S?I?@-Bi??eTZ-W?pO?P?P?z?????j??f?????j+j??v????.H?V?qu?????j/Z?O?G???|PD???!JU??a?~DA^??????O%,? ? ? ? ? ? ? ? ???D?+?E?b +yS?YL! +L???s?+%[d!d?O:aA?B +~K?A?eHX?? ??*J???(M???)?k?*??????N??t?^???z??????[?V?l?? ?S?D|??M?z????zd??zP?}DJ?i?j? ?z?PR +P,??a$?R?0!L??C*\KEJZX?2-?Q?[&?baq?? KQZX:,?r??e/??|??????j8?? G!?k?k(yt8e??E?-??hH? +)??~ +?c +}??P????A |? ? ?O ?4??????fpps>?U??????p8X??`??Q??E?;?p8??pP?$?D!k??"l?? |??E???C?{?B??u?JF??w#?(??P2?P2?ab??7Q!??)S?a~??& Ox?? ??(MES*.??7?,??p?WJ?.nGz ?v???K?;?]T,?????w???2???????T#????E$??r`??k??E7??M:tKWMT?Xt?zu=??????9t+??-??-?????S???.u??Q? l?Z!?H8??????j????t?a\??PO oG??YH???uW=?H8???????\???bQ/p????7P +D????a_?C=?P?S??D?F?Q???^???^???A?p03 +??pp2?1??L}????'??`?"?-?v?W??^??^Q?z??2?e:??j???\??8?Kw????C?8?0N,`$bh?}?"?'?O"??L ?????h?h7?<}?"?x?????;?I???5?z??A)_???Y?"?O??$`??s?)?B +J?(Jt8??p$ +???E???hX2;??a ???cG?`?#?aG???B;R??????H?????F?C +N??6;?Zg????*??h_7k??`???i9?5{?!?\?9?K?X?R???????f??B?k?)o%U???bo?????????z'???'???'@???g??8??M?q@N??t?D ? +??>?????jd???R?Z3Ve??????y??;??1?*{????o???8?m?:??????????s???wm?Wq?L? n??Ey???;???????????{:???=?-'?@o?V??=?Jw???So?y?t2O?!.>???}S&>???n????V?+?Z?M?S*c?Y?????x?k????;???6p?m?1???$8w?????*?bq?????x????????m?^s???L$??:??@??1F`&?}8?k?c?7???5????S?+?K?R{???i??7|-?????1?? ???c?~?????+?/????????>????m??}?o&r?????????C?????V????~;?V,?5+?o?,Y;WU?????[n?C +XO??[???????X? +??(???Qe???]A????????Q????s3?+?)Yu?su??]9?z?YfV[??ZyZe???nWiN?j7???fr?w`??e?9?9??????o?x}?????B??*?]??{|S?J?q|?w????6?????????7?? {n???7v??]???%Y?'??&???f????4????iF?????`k?1?Z???c?Q|????E??[s?`Z?????#??_???zI?~ (?\????5? ??e3??+???????g?{`W_?3???N ??~? +???:?Z????5v?ZVd!Vl????Nf? +Oz3??u???p????;`?D{[????v'b?n?p#??x?k????????dm???G?e???o?? ???g?{#???MN????s??1????D??zNs ?c?4???;]?8+Lw;?t?w?^?;?s?)kN????~z???{?=?????/B?w:?l??????>????s?%?C?x5^?f???6?d???\~!??~???h??7??-??? Z???A????ch%?O?U|"?D???S????Si ??g?v>?????G>?v????????si????~?EHD?H?C???a???9_???r??U.A??Y???%:?r???\??'?*??f,M?.Z?"?[9?n???L?????M????????zzc?XOo?^??/?Z?i~???{c????????:Yo??????Xo?)???=???????{??xcC??76??xc???76??xc???76??xc???7??l.?e ?w7??w7?Y?n????????x G?????k=??~A??:`??????d??????A#>??]?/[?k|????_?~??H?w????????5?F?.h??????X?}????????w??O?}??A????z_?X?k?C?}?j???)???T?Y?E0?????o??|i?$X?W???|?????Z?l|_`"???^??!????^??dDJ???c????J"-R%r?(??!JEjEj???:?z?L?A?"Q!rI?Q5rY? +qV??HcQ-rM????9r??y(?V???????w7??zwWZom?*??MF?3?^???? +???????p??1b&1oB???n6G???]????6??sx?E??:Paz{?H]PsW l:VS Y"e?/???d`?Y???H??*Q5V????*? +?U?????? ??|??????k8\??p?\?r'?wf=?&??z???@?b@?~T??g/Q6?]??vu???jWj?E|???{??o?7T??d?S}????Cs4???0]:LOv???';LOs?~???s???0?80},????8*????R>(_??|Y??????!?X_?a}y??%???"? +?/ +?? ??????K:?/??t????Wr?_??Ng? ?AUD???K?H?8F????"?J?2ra?g?????????%??R??] }????? (??$? HH-5??P??@&?D?`???]?"o?,???2???????J.)K???ZaYY%??? _^?????+??TT?)?DzY?&??E?q ??O??TD>)?Dk;?.?-]?S(???????(???A ?i?4jyF>?g??? ??Y@??PM9P?s-? ??!?:T?L???ar????p??Qr????T????J?@~???D??$'!?9?S?g??&???/?WT ????3?l??Y??N~???????A???O?'??g? d???h??r?<_?????????r!??? ?R?%/???k?\???? +??(7B~?? +?=r??^?m?'Q??1t.xL?x?*D5U?J?b*M??*]?:??*M??r*R}UIU?+??? +?SUUU???????????????j@?\u.??T?????Z???????z?????j?uY??r&?a9Bp&??L???3!gB????2-g?b?3!g??,gB???[?D?W-?4 +!?R?? ????j[?Du??` ??V???aJ + ??(??B:X$? +?B9??n?w?#? +???|??? ??? ??????!?. C???-??v?6]i?R??(j?B0-?`Z????????`j??D9`]T??.?M`????]aF??Q100?0?T+???E??(?:??0)??7?I???B???FR?~$-?F?F +G +S?H?HQ?gD2?f$3?IgE?E?!^??A??t???/?dpP?2PD8H???z?N???x=W???"|O?OU??\?P????'t??TOF?=)???w~???3??z:df?o????gB?[?-j?A?A?O?? 6????????Y????z1?Y??"?L/??`?+P?J??*Z?L%???S??G?4? +? q???{Q??w?{? +?R????y? R?pP8?.?|)??T??iJ?|???????OS???T??????9>?????,?l?q????t+?D???p??*??S3??1?"?u?8?1???{|??'p?{|???w?{????????O???????????O????;?=I?????\???4v?{R???k???9?=M???k???L0???????gP-??2??-S?L? ?u\?zv#?????c??{??c?!l?:?7w#?F?????F??y???????????X?G?f?El"???????X???????j????3?? ?cB&?B??B)??L(!?B??"!????FB?? d??,??.?s]????R??z?~.?u???z]??G?\J]????Q?????%?w"?i?m?9???}??????????3??*?U?6P?yD?*\???V??~??A??*?& )1ah& m????1ahj?/?F ?~ ??s????/????E'?&:?Fto?hDP ?/??????OB????4(?/???@?*?? ???+?dRa&S,f2m?L?:t??^?|?W??x?p??T????B??? +??jA?*?????Bu????T?????Q?'??T??Z???5}j?x?????Y?M?j> +?????+Q?G?R?G??(??J??Q???P?W?????"?P????\S?\?_???T?W? +?h?(??Q???P[W???Gm]??:??#???P[????Qn?M?u???&?z.F?\????B;U?/?b~?;?I?r!w?r j?-???rG?Q?????U????r??S?U??????|??h?-???P+o????{? ?X?j?BT?[P%?J??*????\?*?%T??????J.C?? +U? ?/?_?R??#???6?-T?>.F}?????B?????VP??@?j?2??/E=?)Ge\???-T?/?~ u?[??+Po??\?????? +?"???a?4Q,??T?%?)b??"???hL??1?????????i?? +??b1E?UL??)bu?"??)b??"??1???0E,S?6??"?)b??"?)b??"???XLS=?"???XLSa??fLK?1???b?X?)b*L???:LSa~????0??m???X?Sa~X??a*????0???b~? +??T???a*??"?????a?1??5??????1?????1?L??a?b~X-???=?????d?S???L????8 ?s???l???Bt8%??L}?6?9%?7x%?????????????N?N??????Ga+?y??????:??O?=8? +?????=?+?y??e~?L=O1?>?>??<??????%?<%?v +????)|h#8?p8?H:? +t8/???'\?#%?????)Bo??L9????]???l?S\?P1?V?0??l?:0u/??l@?? +???5?B??v?!M?X?????-???F??M?b?l??[????h0????Yt?0??a??{??6a?&t> +?6_??eC:???? +_"???> ?$W}N}?^g????=I??????tB= ????????&?f??b?`&f +?`6i??????N?37n??Zh?`? >?1ic2,?Y?9?5??Y?Y?5??1}c:,?????8????MM? tbO? ????q????v??z +???????w}?{7?????9?\??????\?$??;)~?j?.?+B?M-?????XG?U????????C?????S?1?8?"`0 +???A? ????[?%? +?>!?,??????1?f?'?9?}????nS(?e??P9^??P?[????H??+???`?'??~}?-????????Z?^??????u?>i?????jY???u?q=??x~@x?#??[;??????????????sl??sp~?\"?|ppp 0 ?\?n???~????????^]????W ?)??8@" ??W????Y??? +??Y?s???}???H?8????????z???P????>"?eU?^?\??LW?????]??e?\?7? +udY +??+x?+ xoW*??? ?C]?}St+_??hW?O?r?\?w????????xW!r?z?TWy?5??gl?cn??????????]????v????"?/b}?? x?K k???????*?v?%?V?b??c? ;????8?yFnh????y??4&?U??s???F???x?gx???l?a???Q??n5??\?91??X???V?2?? +??zN/??E???????.k???2?y?????X????k??;?h?{&?g?c????????=??i=7?3{n?"?j`7?]??4???)??p~?]??h??#?!?Rv?J=?+^Wi? \c]??)????}?6?2???? ?mq??? ?_??dKDNAN?%h3lYP??r?]?`?????????? Zv?*}7???}?d???x?????????)?n??????h -G`????C?MOZ?#?k\b9?K??[N??????!??Y??????36??X?VY??2u?l^??:_???l????b?|?v????oUw?v???????hSm'??-?k-??8mg??)c????2???????8?v??V?_fg????6Y??????)_???M6h?j-???"|??z[??&p?m8?? ?a??-?t??-????P??\???6>?????]??7C>?9?? +L??U??7??9???0??????=Zz??Y???m?q??mZ:?7??Jc~k??4?w?-H?????&???-I?~/?3 ??Hs?`?}i??S?J??Cz^Z????H+}????\?O???}?d;????n??k?i??M?=?L?kO?S???L?%}?=?R?o????? +}???N_j/?????A_a??_?W????`??pf???????????v???^g7????v????bw?o?v?Q?????M??????": +U??o???Q???????}?^????m? ??h???????????t??~?~6Qn????}S??K?G???m?????l?????k? +?n???u8o?|?~[??O??????????_u(?C?G4??H??p$?????o;R"};????H???ud???UGn ?]?(?Ef{??8P??( ???E??=?Q *?z?*??)????>? +?M?.ZdC{????f{?c{?b{???o?*???^????%d7?~??+ z8B?E?*0?^?0?#u???e??^?p?U??^??F4p??|??C?h?w??S??5p??????/F???8Zi`???8?ti`?=?8&???t??:????t?mI????9.?t??????#sL??????+P???X??:???q3p???c?w???c9??~?q/??~?I???8? ?6????mr??|?9g)???3?(??????]????s???a? ?????S?W????0k????8|??=u?:}??????g???????????????x?{i???|???d?J?{???1??x?;?C?#??c?y?8?? +??Xw?>??K?p?&????)S???aq?{'?+wd?s???)q?? + ??r?O??;??B??v? ?GX\????qG???>\??Z?~_??????d?S? ?w???C;??e?3?=???pO??;??????`??*?#?X5??????F?a6???????Mg?$??,??0?m???E???$IU?z?$?$????~??1I??B?I?y?????4??M??r??1?"??K1????,???+p4_"J??1$??a?;Q?D=????{"??(???G?foG}#? +u?7??+6F}/??b3????G??{?EJ?X????~ Ef???fQW?n(???5????L??????CO(~?~??J???Hv?I*}????x@?uUwEcE??T???!z??E???????Y?|??xI?g????x?&?&]?q???Uo3?#???8*??I?V?J }| ???|?|@X??qD??;Q ?=?{?a?e??e'??# +???? +?D?????#<> ??;C??T5?}???5?k??????c?zgi??Q0??5X??H">9??HT$?GI?$??w?nQd)??c?TX??DQB???'e??H:>???l<??f???Q&??.??)??pM?.??e??H?e??b???H3?laQ? ??\?k??I??Q%?-?bH?%?{???!?Q??xJ?????8-?>X????? ?????x????J?9??lN?????fs&??c?7???,?Rs????:?N\2a]?Ygv?=f?9l?}f?w?G?????????Q?>?? ?II??$??i?"9P??g????C?J4)???T?mxw??0???.c?_?&GZ?????'??J?>q??g-}xGy?I???m??|?c??@I%??!???Ay???N~?I???d?By??#??wJ?7?g?,??&???C~?3??Pr??{8???????*????"L4?}?x??`??#%x?x)???5??????? ????$3I?????$ +|?D??;?N??v??n|Nj??ck?~?(?*???u?F at 3mSn2? +???\gV?1?JLe?ra???m?J[???%]?0??j????????`?nkV>???b? +?mZ???Mz?A?????????????t?6a??M?I\??RX????k??O????M??O`??Da5??L???O??u?t?v?B ??$???r??]????t?Z????????:)$I? ??? ?#UJCdH?B???1?I??@?T?1?H???R?P%U?R?? 5~MR??@??S at t???dD??'?D?=N??q=Ir|*?%? K?O??/ ??!)?i ??? ???u K??A?????~??+?? ????A\/?_?{??>??? J?a???m?~lF?Y?????{??????????/? ?mF?YC!?}c??>?j??{?;H??????x/???????????lA_?7??W????\?}W????gYG?????? O???+???5?=V?]???Z?? ??n????nC<%??p?Q???(???4z???????I??| ???????C|n?^?kC??6?(???\???????$r?s"|2?>Kk???A?b?5b}??b9??X.?= ??? ?Gc????c#`??GIJ,???%???$56?$-6?$#V????o??$'?/???K?bQ^??r}?=A???????2!??u"??+X??u?u????/(?@AiT.??;???L??? ??????y????????????"?Y4=?I/???M??????????b}??J_?o???-??????????A?N???tL????V??????u???z;z?x?y????,???0?(o?nL4?px'x'{??)?y5o?!?8z?=bM????7?w??U?c??|uRn??v???v?w???k??M?+A??2?Z??>?????5????????k?7?5???>?????kh??>??????_Cs(?)?:j??54 _C?k???:T?T???M?"?a?&?$??~ ?DG???(|?6??~????[??7???M??D???h!????7Q????M?a???E?e?o?????M?hstM?GA?UX?H9?Y:88?h8?_?????@??P?p=?????????_???b????x??????:?????F-???????t7?[????n}?^K=??_??(?4c=??q?p????d??#?????r?D????Dc?J?E?7??n?~????T????x;y?z{x{{? ?'?????|???6?[H?:]d?????????S??????GI?$?3Z?????\?5?????-?rx????Q?M??{????w?R}i? ___?:???x???F??}6?x?q?,??7I??h??y?????}am7??????l?$?3O+?-?8%,?-?-???????m?\?Ui~???0????WC?,???????????(???d?9TV_^?h?hp^p!??s????m???*???Z?f???k??U?-?nA???"Q?P?R?5??ZQp/??????c??w?W??#??????w?k???q?6?f?v8??/?BA??????"M$????h??z??hn?N?4S?lA?qu???(QQ????????uU?X*i%??6???lC???FT??!??jCG????????.?=[#?e?w?+??K??Ii????_??*]o?&??6??t??nD?t/??????)?o?r?g +??y[jJk???!t???0y?~??l}?r??\??vh??d/H????6Q/e?;????>?}g?H?I??J??hr?o???????\9,s???D????&???}?F$?????}????? ?*D}u?|Q??? Z-??:Y?o?x??O??Nk?}??}????z?6Al???Nu?N??S?l?A?W????:?X??&???8a??9h?pt??j;Om??uMI?S?X]E?=???!??o?k???[?6%??v???|?:???&?????Dm???????N?v??f?o??I?]k?"r??WZ?.?cT??&9h +r????J9?0????OZg3E-r??y!? Q9???9??D?T??????????&???5?*d????/???S?[????/?u_VO3????dr??M??I??R'O??k?8??q??xo???{?q??b??OqM?9?9??9???3???\?p.q?h?V;?97??;7???Z{?j??????????4?,?jM???.?euru?5?g?????_\H?/.t?/.t?/.X?? ]?? ]?? ????n????????? ? ?A?`k????????????S????n-???Dxx??0?D$??Bw??uh?/H?????I ,??B ,? *???YH?JI5? cy??1sNaD$??c?"????????I??p??!I?$???? ?V#27????????e?Y??R?|w??q??^F?????l?4?= +o????_??D?^-??t??Y??4?????F0?|? +???o??r?H?L???a??aH?"G?3P????d?"|?OQ???_?+????i?E=dMCG???T?r`wxc3tr? ?X)k ?/?7v`???????aF-U????-9??????\D?!?????P???a??w??Y??e>U"?|\?????@L?$x?? ?/?????gQ??q5ELfMsb/?%4w??\? +?D?Y?V??Q?0??j?X5?R????j??XA?V????????|d?|?!?%??2?????????W1?B???S;,?PX??{K??????????????3??? +?e???G??? ?;?Wd?i???(2????~??I#??j9???}?WC??&????C?6|? |?r?wJ??*??S?? +?{4?d????????c\??f?u?QFS?J??a?Uh^????????!??9T???E??\P???7pw5z~??kiG????F?[?v??Q??A9??}y??? ??Ld?foh_?????x?%&f??X????? N??roa?-??_??K?\??!"?% 6?? +3N?h???G:W???2Z???????`?Y6???R-?D}??Ug??6?@^??1?uTE?????E_??v??????????*m???? ???.??y?/??c?? ???_?? 'D?N?U? + [x????;,!d?x???"*?????#?????gR?`????w?.h?*?????(`?a???U? + Y3??gR?{???n???????|??b?/??.q;? +X???X???N?????!????v?? K?%???9??^?_?3?? +???s?v/pv??G????@?????$??????S}??b?W$d??xj'?Tx?^:e?B.???qb=?'V??%?]?u;??????s?1 ????^?u?#?? +?2????TkY???x?w??:??2??%?W???????g??,????J?_r?tx|7?`X? ??sG^????J}????a??}37???]?;s?y???|?????'?L?_,?p?yy=??????1SO2o?h?Lw?c???'b?^? ?|?C!V?u?MT?????.Uy +??;R???@~?? ??G????x?8y???x ???k??Y?=??'??X?V?????|MUn<| +}?????-???M??????C?3??'?u?{/?E??????????P1?n?BV~???{|?&????F?Q?,/?}~J}??2?????O??8t???,??s??y???|F6???I??N??v5??C:????e? Zz??YR??5?~??qsP????56?g?xv1?J~???xc1??u??5???8?CF????O?j???{???7?W?r?s?ln*/tB?0?}?/????r??????S??8M?0c?TC???v,Q?Fu??*'g?w?7?6?F????#??? ???wM???? +??????????S?????i?1|Z7? +c??{bF???=I???g???EE?z???c?W? ???:???? ??M?`?T"??3?Y>??w??????c?t?l8???Sn>???~7?^E??n?????? ??% o???N?{K^U{??C|r7??O????=???=|h????h?Y??%4?I:????e???? ermN:??TEw?$b~;?=????K???[?v??`?;,??f?z?X????$?U?q?5?.?y??8/??'p?{??J ?o?C?#?????a???????/??l?p???^X??3?#]P?S?i +l>?bt#????'????~??#m?H??W??l??o> +?G,l??/?FZ??8??O???F??o_???? ?,\?5?V?+??r??C?z???\?????ZFs??8??5?[??c???`?B? +>f??/C\?:`?????8?=???!?;X??=?w????????3??[Kq???????????e +?TX?_???????a? 6?U?t?Ggz |?e?9???2????n??y=??y????f?'?? +????o????Iq?j ?a???a?9>??I?:z{????zS1(?[???-?{? +??+??????????^`?2?????o??M??!??I?????-?"??0 < ,c4????F???????%?58?g?@? ???9?T????o1N??3???p????? +? ?L? |?O$?}???-H???????????M???-?[?=?g[?yg??@_?/???g??i,1`??g?@~| +?0t???n?6Y"??y?H?Z?:1 ?s? +?e??????g????+??X^%F????}~?? +cF "?2?Q? ??,!???????3?^??6B??"6`m9?p +:??????????g\*f????qi\??A?8X??e?V??'? ?*3x]??D?t??'??30 k????r??q?*?z=~#?? +???`???x?Ag?tTT??z ?? +>?? ??-????8?????hB??"??o?p?i??E???&?l???0?x????J?d_?O?/?? v??G%4???9 ??????8!V +?A?l +D0???F@?P? +???y??&??? +?L??Y?_c?G???/@??\ 8?H?= ??"???????????=???k?????1_??? ??g??O>????f????????X????y{??y?D\???DDDAT@$??HR?? ",AD@$????dI*? I$,A??d?9?,?????????^???????}??9??TWWWWWW???;A? +????2? ????????????e"="?:fD#????] ?oC?kZ?Dl`e???9$W Z@[???w??~c?~^???? ?b?? ???$T?????~?5??$???=??_?b????6?? +8U??*?*????+4??!Y+@?a6J??u'>???&/??t3????=?T???Nc???Z? ??1o?T?;9?[.i?r??s??w?=?Ce????9?pG??-?F?53Op?Z?:???{U8?? Z?VTE?F??aO2??t??@_??>z???k? |?? $+?F??&Z|?Z?? x?O?? +jU??&????$?d ???)???5M??'t??:?????12?????q????)Css`+`hk??jI?@?'?K??A~>?$J ???????`G??h? X??????5?????g{:? +Z???+(?'?rh@?9c???? +?|?^?~?M??}!_?sG???(?????q???$??T????Q?a'C?ihX ??.??Y?'p +?$????Y?y??(??????.??t?#? ?Z?v ?B?r????????u???X??}g 0?S?;??} ????X?wGA'?QC DC?8d??~ ??XW?VJ?r?N????????@#2???)?? ?~??????j?/???1????cu ????9???@????+p???? ?`?n]??O0t????r?8!9z????f?=??2~???1]??W??$?C???= ?}-????^???y'89??S?qdh??|?!??v?s?l????????A??H`D?HA-???????? C~"8???????&4:}?0??~ f????`y?j? ?4??;v??1? ?;????? ??n\ +D??g??????h2?B?pS b?G{r+?c? ?;??|(??Jm?3??l????dvE???"?>??????ngvx:vj?t??m,????x?R???3??4|???_[N3???vi?SQ? JO u?X?.??h?q??Q????7? ??`??4~[gvQjc?$ +?!???? SWl?J???p?8}? ???@C?C"??kQt^l???~E?`?D#12N9?I@??!?l8V.{??? ?F?ad?C4f~?e???gm5?tcso+??zt????H??2J???Ypr???9?i????LN???B?.Q?tJ???"???"?R( +?~??C[{}P???? Y?u$g!????dCs??g???p?@???!??????Ci?A+?E`S?????*????eUD[?A????t?~????5x^??X ??/q?L??5???Zg?`d5?1?h&?w??6?? v +R???NfS??uf?&|&~?]tY???{????????9?_2???7?5??E?? +m~???.5_???yP???o?\??m?4?# 2?s??5????5??\J4_??o???:c??3??7_??????q????F?< +?&h_??<$[?????2?6?>??t?~???9?"?????w??????(]?????h????????u,J?????W????'?^??1??SXV_m$?U ??E??v?qJ?l+?*bU?jX +?6V?5?c??Yk???q+U????#z??b??#??Mb?8+?8???W????;ro??y?????(?f?n??V??Gd;y????[?? ?r?=,^????{n????sU???=8? ???????.?08.???q??V??n??}Ko?/3?v?2n?/????r?f;_r?y??????v?%?y?l?co?2MT??|????????o?v?=????G?????Lk?#jgMD?m??H??1d91?X+rR??????j?Z?VkN??`]?r???dY)V + ??u?XUS??VO?'??i?A??\??'r???c~A??=?5K????c??EB??????i???j"4?R????t???Q}\?????|???@?D y2?<H???g`o??,??KI]??CI?[K?&X?n??)???(??AR??=?\a???1????W?{?{Z{}?ZE!m?j?)??i?????????xF????4=jYV???#?u?:??^)???% +?B-J???z4]????S?Qu?????Ps?\????????R}IO??j!=??ETS}???Zj?ZB??R???Q+? +???~?]W??Z??c%??? +:Z?M:??f]???:???:??:??W;uT??v?9?X??s?E?O??&??:HM?M?f???D??u?Z???*????kd??=@??:?rX9????????????X?h??hu???o?????$z?n +???q?'4??b]????um??n??d?#!+??4???BZJ?i??}t??R???'+dy?????E'E??c???8??~???o?c??????????q??6?=?????Zn ?I??p?=??Cp?=L{h??8&E??c??8??~?????cO-7 +???p??!?=?G??3? ]:@c???{D????_??G?y????g><3.??'?g???xdb??I?G??xdZ????G> +<23????#??x???#s?? <2?????#_???-z2<2??/z???# ?|xdQ??o?,?g??? |?/?e??)|?S?Z????J?vk?n`??u.??????\???p[??=w?w???I?D???{?+?^??\??}????ExO?\???Pl?????e?Oa??}?g?k? ?E??v1??????v?-?{???}?J4?f?@??-??R?=??Z??X?| ??]????X;??????k????o?i???+???s??l??????????????????~????O?`??Q?*yv5?)]V???,???? ^??8???????G??[???f??g?L??3??f??s??????skt{G??_???Rsu?R^??y???y???y??1???YZ?l?m???yZ?????p??n?a???????????>3??dt???]??,?;4??`BCi??????w??i}?g?hC?X????'z?O??4?&??J?t??f?L?E??l?\???4????????tv???7?--?%????h9????=??t?XCki%?z?@u??6??J?h;???????~?]????^?c?? ???!:LGt?9F????St????s????H??2]???*??5?N?? +????&?SeR?hK4 ?9?P4??Dc??h"??f??h!^/????h-?????xE?DG??H?Dg???"^S??W?????8(????8*?????8)N????8+????Ev?%qY\)??H??u???!~i??H"Sd?d??g???K??hn? ?7?f??_????_???G?G?*????;?_?]?n{????g??????C?a??}?>f?O?'?S?i??}?>g??/??K?e???b_?S?k?u?7?????f???? ;??r"NNYMV?O??I??|Z???dm???#??ue=Y_6? ?9?P6???dc??l"??f??l!_?/????l?????W?_?Q?*e'?Y?&???eW?M&?????){?7do??G?%??~??|[????r?,???r?.??#?{r?|_????h9F~$????8??/'??r??,???r??.??3?\9O?? ??K??\(????7?[??_?wr?\&??r??^?????r?\+??d?^n??&???,???r??.?;??r??E?????W??????<(????<*?????<)O????<+??????(/????L?7??2M???2Cf??(???L9K~&g???yU??k???-?+?F?w??p??[???~???????????o?}????n?????;?}??v??C?a?p?]w???;?}???w'??I?dw?;???Nw?ug?3?Y?g?l?sw?;???.p?p?t?r?_???o???U??jw???]?&????-?Vw??????????tqw?{?#?1??{?=??s/?W??n?{??????pw???n???fy?Y????=? y???? ??w?;????z??????w???]?R??^?w???????~????^???ezY?X??q"???DE ?#???"??????D???????FrG?D?????????)?;R0rO$.ro?P?p?H?h?XdBdbdRdrdJdjdZdz?????????g??x??Y???S??????????? ?????????^n?/?~???r?B???6??C:??x??~??I?[??n???u????t+?y?a??E?7N? [?N?c???h????I???????%?? Dxf?{qgxc??(???V?%??W???W???_W_??+?J??u? j#?y??3??C???|??A?^w????????????%?RA}P?z??5|w???_5nqi??^05Un?Q?1??F#te@?_??D??u*?q?ro+?????q[I^??CI~????????0?-?? ??x?X????D=r????)^^L2|9|Y??l???{? +??{}????5??????kfN?F?????z2+??z??????^?Fb?l??H?:?kc???*?????????u?o+?????o??_W;?.??????b5}?a?=?+s?Q__y?\w??W/?+???????8?t?>?#?%?Y;E???M/???????b??^?N/?????????? +z?xq??^!??W?+???{%??^??\m??z??UX?j????????b????w7??o??Ux?^??????u at E?l?:=?C?34Y?H?????DPPL(YAD?? +?#L???f????5??1a?_]???????????k=jQ??{??O??}?????*?.?????&???O??+??_??9N??????f???w +4q(? ?H?!???Rs??? +?A????a DN? #?+d?\? y???p +EQ?TE?S?P&5??B????D4??LMG3?j6?K?<R?(??$?_"????R??H?5Y??"k??+??|Q9?????Do???S??J??6??~ :?{?=????'????????T?#??????B?'Y V???u`'? ??????+?????? ? ?GrYr?J?K?! +s??+??? [?Y?JZ)??}?c ?5c9#?#?3? ???G??38??a??q????*????L{?=?d:2????i&? ?3LO?'?e?2?p??g???"??2?F?6????6 +n??l:?'!/??`%??Vi?V)??????? +?p??[??\???-????t at bX ?*?JI??z?>??6?????mL???ts??nA???%mE[?6?-mG?????????\?Kp??U???T?M?????{?;????cx"?????w???Z??G?'?gQ????O?USd?AL?VP%?Y?8??>Nb\s-???HX?f??k????8??')?E~H?:???0??Q???>8????Q?4?`??4?p4i?18???I!]P????.j +`? ???f??#C?_{"#2?kLz? $B"2%???HGf0 +F?>=&# ? +??%??????f?c?Mm??r??3?????8NX????Dk??u[?????;}????W?.????????=????]?g?q?? ????`l?[?>?{?/??%????????&?!!??@??!???yo8bI?H??e?n??l???|4R???ll?\v??1?Nd???e?Gb??'??}?b1???b?0???`?????}?e??????|????nb?=??{??K???????c??U`?????3:?????G]?????\???Y?=??B??>^G q?4!!?D??(?,??A!??2?t?),???G?v?/???????Uy?????{{@????> +???{?o?????gW??,g+q?? +=?%Q??+1"??7\??ku?h?O?;??&?BD??? ? % 2  ? ? e 9??? U?,T'X?A?P?`??B????X?N????? +XP?Wi ?`?? +?_]$@ +?c?? +?`??_-?U??B ???p N??????2RA???L????? G?>F???? +?u?*???? 1?R'??2??I ?F??kPx??=1?? ?$?%n?XG9?#??????(?\????p?y,??<???'??????D?Y(?U;??@{????BG??A'??C ?????j???F_>2?0XS????b??2??`%??*F?u ??zFQX7??????????'b_????i(??h?????? +?????? ???9E???q[7?m?gh?[S;?P\X?DX?k+??z"?a?}`#?}????DdFwAF?"#a+?1???X?Nd?T?XGAb-?Y???1"?3cLdcBd=c*H?qs"[?b???r?r??? +????? 6[I???Xn5??b???= +R???????"5?Mj\???.?q=R??????YY."X?HOe?6?i??d]?9?'-?J??! +G?2j?*???Y????$2T!????-?-HM?I??K?%?HS?N?sF/!-!^???{YQfR?0p?n???G??QG?_E?$?!???`?:??????B ?J?C7???.?????L??(?F???ib?0????G,??Y?_b??bIm"R????H=??z4%???????????'?}?>i??A\@???72h??n????|U?Ri)"ba ?'G??L??B??J??F??N??A??I????S??S??S??S?M ?5\???]=?9oC????;???pG??? ?w?;???.r???\5??{???^so?s???}??????9??}?>??????DH?\k? +?V?|[??????????jE?i4?!?????x?F?0Gw?\?'|?? ?3???A??b0V?`?%???* si?>?????I?yk??y?_&????0??C +?cf?'???$?~HX?S?_%??~H??~L}H???S??S????_%i?? {???O????????%g??????????gK???a?J???? ,??X???h?~ +?T???????Yt ?O?????????3?/GA??????'?=?K???kB?a??????sqy??? ?A| ??(??????K??"??xoq??????A.?S?[P(J??MIpY???*?p?M)?w??P8???( +\?????????W?pY?2?ec +Gn?????c-p????e+? +??)k$?U??m)?m@??E??O???bj1./?%O?m?D?Z]xV???ui????t[$????????x\N?L?}?P\&??:?z????'??z???'/?k????e6C;>\?=?#/X_??j,]{?????DkDt?c?6u?2??????a?se]??M?,s?X?y???i?????)?????.{:?)??V????8?Yu6?[???}?d +_y??(sn??c.??M??????rc~?d??m?C??WS"???g???V?Y??6??8+???????t????%&?Gkl?4?????????????} -?^3_??i ?^?Z?;?~??qOz???????z6?zGA?????.Vyx?\?_g:????u7?????????$??S ??/?t???jO??GQ#7????rin?/v?????????????Y?eC?????l????%*u~[???????O?r?IM?Z?v:??Z?2??h{??[?W?=?m?K???"s???^09?K?Z?b}w??5C???? ?+?:O?????)A/???????w???+{:?&u?W?*f ??;????~?U)W??'??t??? +|???T`m??^ ????x?WLi?w??????#?=?=?t? +? ???H???!ru^U?`????????????Q?9a???B?????I1_/??? 3???\?n??1??!????Y +?}?????????m??????N???l??????g??6????]?^/?t??>???3???I??]??!??J??p???[?*??d?????????t?V? h???6;?6??5 +??M?zR?ii????k}??y?y??K?Ku?r/^1?h1???U?7??p??jA?^??g'm2?\??B???I?u????w?*j??c?ys??*v????t4????L?qk????x??H%c???7??G??????m?y?m)f? ??Z?a?[????(jiV??????s6???v1bZ?q?o<d? +?N?f]?l???W w??:? +5?,?vy?u?g?y?????5?????NM?0?$`????1???:?$j??h?3c?? +8#????GEe?????W???J??G?n?VE9J?5?'?w??????m??OR????q??t?oz?G/?q???-w8?v????e?E?~??=??o>?G???W??J?"???V?q??Z?g?{?dgT?S?j?gF??n?|?????C#??8??e????????E?k??????????~????V +N??{@?& +h?y???nG?W???>?????????Vlgr????q[?J??:?GjD???5??)??vz??????5???7???* =wBIy?[c?fFF???????0???5{?khp???X?o???n?+|???????8Mp?????ng??h;?? +m???? ?????&? ?Nl???-???????????y???<5????C??? cS?)??D??MXrH?%?c??]?C???/e?y?4???~Y??&?F??|[?????O ?????VFDu????=???????v?3f?>W?g?&? hy??9?^F??g~???Kv????1~ml?????n?T????x'4???b?????F???m???f?w?K?S?[?O???{?????q}? 9{?m???9|??=i?S?#?O?????~???P??"[Q????S??m??8??????????ln???!},j ?V???N??T???? ?(?????~?????'???|f?%'T4????????>;?=U:0(??&n??v????.]n?~????x???'{?m?P??L??????????r??n[???`???,???8?[ +??cmZ???dl-iUa?.?Xga?4????J%A?0?5_?z??Y?? +???'?j@'???E@'7??7_????k.I7Uz ??>7is3?vU??>7?1?1? ?d?9??_??????D?aT?? +5B?_????/hPb??B??|???????_Tn'U????=?3?E*7-?o??????i????!?????*^?Mzc?N?37?>Z????^2?z?????i????%????LW??0??????)?~Kg??:y}F??2?O??????x?A?3?Fe?7??J/???VR9k}?????????????X8e???????o;9?????#?5u???NK??????????2???U???5?%???+Q??>?X??z??c????t? +?&dk/???v?:?Hsj??$???=??$mWB?S? +endstream +endobj +609 0 obj +<<265CF86C8212AD4BAF911F16ACA4A321>] /Filter/FlateDecode/Length 1403>> +stream +x?-?y?Ue???u????m?Y??f????hjh????Y.?T? 9f)?????,?[j%.???YV ??d??,?? +?s?3?????}??????s??Z}_6????V??9E+?n/???????]??X??W?P??z`f1o???\??E?????i?#t->?x?n???k?V'?-??\?R??=????[????3'?|????z_????????????j???C?)[SO,??B?|]??s?? +????????q??>-?_????F?'??^p????ta#?C7?ccl?M????=6w?F1?? ? ?[?u?o??x#????&?o?6x???c[???]??q*???b?a/??????a(?????????v????c8F?h?c? ?>?}q??????(| ????0??8?` ??8?4???c1_?q?>?O??8??$?????8??0???f????q>?b#????hT4???FE??Q??m?;?E???i?'??g?3???ft3????F7????hjt3????F???qkG?#?i?????Hk?.b1??FE#?Q??f?5?i??F7#???4???????Q??id>??L?VO ??HkD1*;_?4b1?nF#??FE??Q?(l?3Mz?3??hj?3bi??F???Q?(e??*l?4????FE??Q??fT4????F?????(l?#????ht3????E???Q?hj6?M??FS3??C????a???: ?Q?8k?b???5?: ????zB1?>? +????Y?????V?5??MY +endstream +endobj +xref +0 610 +0000000106 65535 f +0000000017 00000 n +0000000126 00000 n +0000000338 00000 n +0000000691 00000 n +0000001469 00000 n +0000001522 00000 n +0000123505 00000 n +0000154612 00000 n +0000159436 00000 n +0000174066 00000 n +0000182942 00000 n +0000183327 00000 n +0000186377 00000 n +0000186506 00000 n +0000186536 00000 n +0000186693 00000 n +0000186767 00000 n +0000187015 00000 n +0000187069 00000 n +0000187236 00000 n +0000187466 00000 n +0000187628 00000 n +0000187853 00000 n +0000188189 00000 n +0000189556 00000 n +0000190027 00000 n +0000190418 00000 n +0000190676 00000 n +0000190905 00000 n +0000191376 00000 n +0000191767 00000 n +0000191891 00000 n +0000191921 00000 n +0000192073 00000 n +0000192147 00000 n +0000192390 00000 n +0000192731 00000 n +0000193852 00000 n +0000194097 00000 n +0000194323 00000 n +0000194621 00000 n +0000194878 00000 n +0000293830 00000 n +0000341661 00000 n +0000342012 00000 n +0000343596 00000 n +0000344067 00000 n +0000344458 00000 n +0000344734 00000 n +0000345060 00000 n +0000346066 00000 n +0000346402 00000 n +0000347814 00000 n +0000348074 00000 n +0000348399 00000 n +0000592740 00000 n +0000606072 00000 n +0000606446 00000 n +0000607767 00000 n +0000643629 00000 n +0000652622 00000 n +0000652948 00000 n +0000654077 00000 n +0000654413 00000 n +0000655437 00000 n +0000655842 00000 n +0000657068 00000 n +0000657237 00000 n +0000657471 00000 n +0000752636 00000 n +0000760443 00000 n +0000760813 00000 n +0000763319 00000 n +0000799181 00000 n +0000808174 00000 n +0000808349 00000 n +0000808588 00000 n +0000808925 00000 n +0000810163 00000 n +0000810528 00000 n +0000811428 00000 n +0000811765 00000 n +0000813161 00000 n +0000813483 00000 n +0000814452 00000 n +0000814807 00000 n +0000815792 00000 n +0000816132 00000 n +0000816771 00000 n +0000817060 00000 n +0000817399 00000 n +0000817698 00000 n +0000818052 00000 n +0000818397 00000 n +0000819670 00000 n +0000819845 00000 n +0000820091 00000 n +0000820261 00000 n +0000820502 00000 n +0000820835 00000 n +0000821228 00000 n +0000916436 00000 n +0000962877 00000 n +0000963183 00000 n +0000963642 00000 n +0000000107 65535 f +0000000108 65535 f +0000000109 65535 f +0000000110 65535 f +0000000111 65535 f +0000000112 65535 f +0000000113 65535 f +0000000114 65535 f +0000000115 65535 f +0000000116 65535 f +0000000117 65535 f +0000000118 65535 f +0000000119 65535 f +0000000120 65535 f +0000000121 65535 f +0000000122 65535 f +0000000123 65535 f +0000000124 65535 f +0000000125 65535 f +0000000126 65535 f +0000000127 65535 f +0000000128 65535 f +0000000129 65535 f +0000000130 65535 f +0000000131 65535 f +0000000132 65535 f +0000000133 65535 f +0000000134 65535 f +0000000135 65535 f +0000000136 65535 f +0000000137 65535 f +0000000138 65535 f +0000000139 65535 f +0000000140 65535 f +0000000141 65535 f +0000000142 65535 f +0000000143 65535 f +0000000144 65535 f +0000000145 65535 f +0000000146 65535 f +0000000147 65535 f +0000000148 65535 f +0000000149 65535 f +0000000150 65535 f +0000000151 65535 f +0000000152 65535 f +0000000153 65535 f +0000000154 65535 f +0000000155 65535 f +0000000156 65535 f +0000000157 65535 f +0000000158 65535 f +0000000159 65535 f +0000000160 65535 f +0000000161 65535 f +0000000162 65535 f +0000000163 65535 f +0000000164 65535 f +0000000165 65535 f +0000000166 65535 f +0000000167 65535 f +0000000168 65535 f +0000000169 65535 f +0000000170 65535 f +0000000171 65535 f +0000000172 65535 f +0000000173 65535 f +0000000174 65535 f +0000000175 65535 f +0000000176 65535 f +0000000177 65535 f +0000000178 65535 f +0000000179 65535 f +0000000180 65535 f +0000000181 65535 f +0000000182 65535 f +0000000183 65535 f +0000000184 65535 f +0000000185 65535 f +0000000186 65535 f +0000000187 65535 f +0000000188 65535 f +0000000189 65535 f +0000000190 65535 f +0000000191 65535 f +0000000192 65535 f +0000000193 65535 f +0000000194 65535 f +0000000195 65535 f +0000000196 65535 f +0000000197 65535 f +0000000198 65535 f +0000000199 65535 f +0000000200 65535 f +0000000201 65535 f +0000000202 65535 f +0000000203 65535 f +0000000204 65535 f +0000000205 65535 f +0000000206 65535 f +0000000207 65535 f +0000000208 65535 f +0000000209 65535 f +0000000210 65535 f +0000000211 65535 f +0000000212 65535 f +0000000213 65535 f +0000000214 65535 f +0000000215 65535 f +0000000216 65535 f +0000000217 65535 f +0000000218 65535 f +0000000219 65535 f +0000000220 65535 f +0000000221 65535 f +0000000222 65535 f +0000000223 65535 f +0000000224 65535 f +0000000225 65535 f +0000000226 65535 f +0000000227 65535 f +0000000228 65535 f +0000000229 65535 f +0000000230 65535 f +0000000231 65535 f +0000000232 65535 f +0000000233 65535 f +0000000234 65535 f +0000000235 65535 f +0000000236 65535 f +0000000237 65535 f +0000000238 65535 f +0000000239 65535 f +0000000240 65535 f +0000000241 65535 f +0000000242 65535 f +0000000243 65535 f +0000000244 65535 f +0000000245 65535 f +0000000246 65535 f +0000000247 65535 f +0000000248 65535 f +0000000249 65535 f +0000000250 65535 f +0000000251 65535 f +0000000252 65535 f +0000000253 65535 f +0000000254 65535 f +0000000255 65535 f +0000000256 65535 f +0000000257 65535 f +0000000258 65535 f +0000000259 65535 f +0000000260 65535 f +0000000261 65535 f +0000000262 65535 f +0000000263 65535 f +0000000264 65535 f +0000000265 65535 f +0000000266 65535 f +0000000267 65535 f +0000000268 65535 f +0000000269 65535 f +0000000270 65535 f +0000000271 65535 f +0000000272 65535 f +0000000273 65535 f +0000000274 65535 f +0000000275 65535 f +0000000276 65535 f +0000000277 65535 f +0000000278 65535 f +0000000279 65535 f +0000000280 65535 f +0000000281 65535 f +0000000282 65535 f +0000000283 65535 f +0000000284 65535 f +0000000285 65535 f +0000000286 65535 f +0000000287 65535 f +0000000288 65535 f +0000000289 65535 f +0000000290 65535 f +0000000291 65535 f +0000000292 65535 f +0000000293 65535 f +0000000294 65535 f +0000000295 65535 f +0000000296 65535 f +0000000297 65535 f +0000000298 65535 f +0000000299 65535 f +0000000300 65535 f +0000000301 65535 f +0000000302 65535 f +0000000303 65535 f +0000000304 65535 f +0000000305 65535 f +0000000306 65535 f +0000000307 65535 f +0000000308 65535 f +0000000309 65535 f +0000000310 65535 f +0000000311 65535 f +0000000312 65535 f +0000000313 65535 f +0000000314 65535 f +0000000315 65535 f +0000000316 65535 f +0000000317 65535 f +0000000318 65535 f +0000000319 65535 f +0000000320 65535 f +0000000321 65535 f +0000000322 65535 f +0000000323 65535 f +0000000324 65535 f +0000000325 65535 f +0000000326 65535 f +0000000327 65535 f +0000000328 65535 f +0000000329 65535 f +0000000330 65535 f +0000000331 65535 f +0000000332 65535 f +0000000333 65535 f +0000000334 65535 f +0000000335 65535 f +0000000336 65535 f +0000000337 65535 f +0000000338 65535 f +0000000339 65535 f +0000000340 65535 f +0000000341 65535 f +0000000342 65535 f +0000000343 65535 f +0000000344 65535 f +0000000345 65535 f +0000000346 65535 f +0000000347 65535 f +0000000348 65535 f +0000000349 65535 f +0000000350 65535 f +0000000351 65535 f +0000000352 65535 f +0000000353 65535 f +0000000354 65535 f +0000000355 65535 f +0000000356 65535 f +0000000357 65535 f +0000000358 65535 f +0000000359 65535 f +0000000360 65535 f +0000000361 65535 f +0000000362 65535 f +0000000363 65535 f +0000000364 65535 f +0000000365 65535 f +0000000366 65535 f +0000000367 65535 f +0000000368 65535 f +0000000369 65535 f +0000000370 65535 f +0000000371 65535 f +0000000372 65535 f +0000000373 65535 f +0000000374 65535 f +0000000375 65535 f +0000000376 65535 f +0000000377 65535 f +0000000378 65535 f +0000000379 65535 f +0000000380 65535 f +0000000381 65535 f +0000000382 65535 f +0000000383 65535 f +0000000384 65535 f +0000000385 65535 f +0000000386 65535 f +0000000387 65535 f +0000000388 65535 f +0000000389 65535 f +0000000390 65535 f +0000000391 65535 f +0000000392 65535 f +0000000393 65535 f +0000000394 65535 f +0000000395 65535 f +0000000396 65535 f +0000000397 65535 f +0000000398 65535 f +0000000399 65535 f +0000000400 65535 f +0000000401 65535 f +0000000402 65535 f +0000000403 65535 f +0000000404 65535 f +0000000405 65535 f +0000000406 65535 f +0000000407 65535 f +0000000408 65535 f +0000000409 65535 f +0000000410 65535 f +0000000411 65535 f +0000000412 65535 f +0000000413 65535 f +0000000414 65535 f +0000000415 65535 f +0000000416 65535 f +0000000417 65535 f +0000000418 65535 f +0000000419 65535 f +0000000420 65535 f +0000000421 65535 f +0000000422 65535 f +0000000423 65535 f +0000000424 65535 f +0000000425 65535 f +0000000426 65535 f +0000000427 65535 f +0000000428 65535 f +0000000429 65535 f +0000000430 65535 f +0000000431 65535 f +0000000432 65535 f +0000000433 65535 f +0000000434 65535 f +0000000435 65535 f +0000000436 65535 f +0000000437 65535 f +0000000438 65535 f +0000000439 65535 f +0000000440 65535 f +0000000441 65535 f +0000000442 65535 f +0000000443 65535 f +0000000444 65535 f +0000000445 65535 f +0000000446 65535 f +0000000447 65535 f +0000000448 65535 f +0000000449 65535 f +0000000450 65535 f +0000000451 65535 f +0000000452 65535 f +0000000453 65535 f +0000000454 65535 f +0000000455 65535 f +0000000456 65535 f +0000000457 65535 f +0000000458 65535 f +0000000459 65535 f +0000000460 65535 f +0000000461 65535 f +0000000462 65535 f +0000000463 65535 f +0000000464 65535 f +0000000465 65535 f +0000000466 65535 f +0000000467 65535 f +0000000468 65535 f +0000000469 65535 f +0000000470 65535 f +0000000471 65535 f +0000000472 65535 f +0000000473 65535 f +0000000474 65535 f +0000000475 65535 f +0000000476 65535 f +0000000477 65535 f +0000000478 65535 f +0000000479 65535 f +0000000480 65535 f +0000000481 65535 f +0000000482 65535 f +0000000483 65535 f +0000000484 65535 f +0000000485 65535 f +0000000486 65535 f +0000000487 65535 f +0000000488 65535 f +0000000489 65535 f +0000000490 65535 f +0000000491 65535 f +0000000492 65535 f +0000000493 65535 f +0000000494 65535 f +0000000495 65535 f +0000000496 65535 f +0000000497 65535 f +0000000498 65535 f +0000000499 65535 f +0000000500 65535 f +0000000501 65535 f +0000000502 65535 f +0000000503 65535 f +0000000504 65535 f +0000000505 65535 f +0000000506 65535 f +0000000507 65535 f +0000000508 65535 f +0000000509 65535 f +0000000510 65535 f +0000000511 65535 f +0000000512 65535 f +0000000513 65535 f +0000000514 65535 f +0000000515 65535 f +0000000516 65535 f +0000000517 65535 f +0000000518 65535 f +0000000519 65535 f +0000000520 65535 f +0000000521 65535 f +0000000522 65535 f +0000000523 65535 f +0000000524 65535 f +0000000525 65535 f +0000000526 65535 f +0000000527 65535 f +0000000528 65535 f +0000000529 65535 f +0000000530 65535 f +0000000531 65535 f +0000000532 65535 f +0000000533 65535 f +0000000534 65535 f +0000000535 65535 f +0000000536 65535 f +0000000537 65535 f +0000000538 65535 f +0000000539 65535 f +0000000540 65535 f +0000000541 65535 f +0000000542 65535 f +0000000543 65535 f +0000000544 65535 f +0000000545 65535 f +0000000546 65535 f +0000000547 65535 f +0000000548 65535 f +0000000549 65535 f +0000000550 65535 f +0000000551 65535 f +0000000552 65535 f +0000000553 65535 f +0000000554 65535 f +0000000555 65535 f +0000000556 65535 f +0000000557 65535 f +0000000558 65535 f +0000000559 65535 f +0000000560 65535 f +0000000561 65535 f +0000000562 65535 f +0000000563 65535 f +0000000564 65535 f +0000000565 65535 f +0000000566 65535 f +0000000567 65535 f +0000000568 65535 f +0000000569 65535 f +0000000570 65535 f +0000000571 65535 f +0000000572 65535 f +0000000573 65535 f +0000000574 65535 f +0000000575 65535 f +0000000576 65535 f +0000000577 65535 f +0000000578 65535 f +0000000579 65535 f +0000000580 65535 f +0000000581 65535 f +0000000582 65535 f +0000000583 65535 f +0000000584 65535 f +0000000585 65535 f +0000000586 65535 f +0000000587 65535 f +0000000588 65535 f +0000000589 65535 f +0000000590 65535 f +0000000591 65535 f +0000000592 65535 f +0000000593 65535 f +0000000594 65535 f +0000000000 65535 f +0000971168 00000 n +0000971576 00000 n +0001023476 00000 n +0001023791 00000 n +0001024089 00000 n +0001024507 00000 n +0001088217 00000 n +0001088631 00000 n +0001088982 00000 n +0001089236 00000 n +0001089264 00000 n +0001089292 00000 n +0001165605 00000 n +0001165633 00000 n +0001242803 00000 n +trailer +<<265CF86C8212AD4BAF911F16ACA4A321>] >> +startxref +1244411 +%%EOF +xref +0 0 +trailer +<<265CF86C8212AD4BAF911F16ACA4A321>] /Prev 1244411/XRefStm 1242803>> +startxref +1256773 +%%EOF \ No newline at end of file Added: wwwdev/papers/tg2011_portal.pdf =================================================================== (Binary files differ) Property changes on: wwwdev/papers/tg2011_portal.pdf ___________________________________________________________________ Added: svn:mime-type + application/octet-stream From vytas at ci.uchicago.edu Wed Dec 7 13:14:05 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 19:14:05 -0000 Subject: [Swift-commit] r5358 - wwwdev/case_studies Message-ID: <20111207191237.E7FFA9CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 13:12:37 -0600 (Wed, 07 Dec 2011) New Revision: 5358 Modified: wwwdev/case_studies/index.php Log: commented out image placeholder Modified: wwwdev/case_studies/index.php =================================================================== --- wwwdev/case_studies/index.php 2011-12-07 19:09:03 UTC (rev 5357) +++ wwwdev/case_studies/index.php 2011-12-07 19:12:37 UTC (rev 5358) @@ -23,7 +23,7 @@

    Energy/Climate/Economics Modelling

    -
    Energy/Climate/Economics Modelling +

    The CIM-EARTH project develops a large-scale integrated modeling framework for decision makers in climate and energy policy. (Foster, Elliott)

    learn more

     

    From vytas at ci.uchicago.edu Wed Dec 7 13:16:54 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 19:16:54 -0000 Subject: [Swift-commit] r5359 - wwwdev/case_studies Message-ID: <20111207191525.CFD749CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 13:15:25 -0600 (Wed, 07 Dec 2011) New Revision: 5359 Modified: wwwdev/case_studies/CIM-Earth.php Log: added view more case studies link at the bottom of the page Modified: wwwdev/case_studies/CIM-Earth.php =================================================================== --- wwwdev/case_studies/CIM-Earth.php 2011-12-07 19:12:37 UTC (rev 5358) +++ wwwdev/case_studies/CIM-Earth.php 2011-12-07 19:15:25 UTC (rev 5359) @@ -27,6 +27,7 @@

    Approach. Beagle is being used to study land use, land cover, and the impacts of climate change on agriculture and the global food supply. Using a DSSAT 4.0 (?decision support system for agrotechnology transfer?) crop systems model ported from Windows, a parallel simulation framework was implemented using Swift. Benchmarks of this framework have been performed on a prototype simulation campaign, measuring yield and climate impact for a single crop (maize) across the conterminous USA with daily weather data and climate model output spanning 120 years (1981-2100) and 16 different configurations of local management (fertilizer and irrigation) and cultivar choice.

    Results. Preliminary results of parallel DSSAT on Beagle have been presented in an NSF/advisory board meeting of the CIM-EARTH project. At right, top 2 maps: Preliminary results of parallel DSSAT: maize yields across the USA with intensive nitrogen application and full irrigation; bottom 2 maps show results with no irrigation. Each model run is ~120,000 DSSAT invocations.

    + view more case studies

     

    From vytas at ci.uchicago.edu Wed Dec 7 13:34:14 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 19:34:14 -0000 Subject: [Swift-commit] r5360 - wwwdev/case_studies/images Message-ID: <20111207193246.4D0119CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 13:32:46 -0600 (Wed, 07 Dec 2011) New Revision: 5360 Added: wwwdev/case_studies/images/protein1-old.png wwwdev/case_studies/images/protein1.jpg Removed: wwwdev/case_studies/images/protein1.png Log: new protein image Copied: wwwdev/case_studies/images/protein1-old.png (from rev 5350, wwwdev/case_studies/images/protein1.png) =================================================================== (Binary files differ) Added: wwwdev/case_studies/images/protein1.jpg =================================================================== (Binary files differ) Property changes on: wwwdev/case_studies/images/protein1.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Deleted: wwwdev/case_studies/images/protein1.png =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Wed Dec 7 16:51:48 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Wed, 07 Dec 2011 22:51:48 -0000 Subject: [Swift-commit] r5366 - wwwdev/inc Message-ID: <20111207225020.07D6D9CCA8@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-07 16:50:19 -0600 (Wed, 07 Dec 2011) New Revision: 5366 Modified: wwwdev/inc/footer2.php Log: re-enabled the link to case studies Modified: wwwdev/inc/footer2.php =================================================================== --- wwwdev/inc/footer2.php 2011-12-07 22:23:16 UTC (rev 5365) +++ wwwdev/inc/footer2.php 2011-12-07 22:50:19 UTC (rev 5366) @@ -1,10 +1,8 @@ I'm A Caption: I can have links, style or anything that is valid markup :) From vytas at ci.uchicago.edu Thu Dec 8 09:56:16 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Thu, 08 Dec 2011 15:56:16 -0000 Subject: [Swift-commit] r5378 - wwwdev/js Message-ID: <20111208155446.9E59C9CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 09:54:46 -0600 (Thu, 08 Dec 2011) New Revision: 5378 Modified: wwwdev/js/jquery.orbit-1.2.3.min.js Log: changed rotator speed from 600ms to 900ms Modified: wwwdev/js/jquery.orbit-1.2.3.min.js =================================================================== --- wwwdev/js/jquery.orbit-1.2.3.min.js 2011-12-08 15:30:37 UTC (rev 5377) +++ wwwdev/js/jquery.orbit-1.2.3.min.js 2011-12-08 15:54:46 UTC (rev 5378) @@ -6,7 +6,7 @@ * http://www.opensource.org/licenses/mit-license.php */ -(function(d){d.fn.orbit=function(a){a=d.extend({animation:"horizontal-push",animationSpeed:600,timer:!0,advanceSpeed:4E3,pauseOnHover:!1,startClockOnMouseOut:!1,startClockOnMouseOutAfter:1E3,directionalNav:!0,captions:!0,captionAnimation:"fade",captionAnimationSpeed:600,bullets:!1,bulletThumbs:!1,bulletThumbLocation:"",afterSlideChange:function(){}},a);return this.each(function(){function q(){if(!a.timer||a.timer=="false")return!1;else r.is(":hidden")?s=setInterval(function(){l("next")},a.advanceSpeed): +(function(d){d.fn.orbit=function(a){a=d.extend({animation:"horizontal-push",animationSpeed:900,timer:!0,advanceSpeed:4E3,pauseOnHover:!1,startClockOnMouseOut:!1,startClockOnMouseOutAfter:1E3,directionalNav:!0,captions:!0,captionAnimation:"fade",captionAnimationSpeed:600,bullets:!1,bulletThumbs:!1,bulletThumbLocation:"",afterSlideChange:function(){}},a);return this.each(function(){function q(){if(!a.timer||a.timer=="false")return!1;else r.is(":hidden")?s=setInterval(function(){l("next")},a.advanceSpeed): (o=!0,x.removeClass("active"),s=setInterval(function(){var a="rotate("+m+"deg)";m+=2;t.css({"-webkit-transform":a,"-moz-transform":a,"-o-transform":a});m>180&&(t.addClass("move"),z.addClass("move"));m>360&&(t.removeClass("move"),z.removeClass("move"),m=0,l("next"))},a.advanceSpeed/180))}function n(){if(!a.timer||a.timer=="false")return!1;else o=!1,clearInterval(s),x.addClass("active")}function A(){if(!a.captions||a.captions=="false")return!1;else{var y=e.eq(b).data("caption");(_captionHTML=d(y).html())? (j.attr("id",y).html(_captionHTML),a.captionAnimation=="none"&&j.show(),a.captionAnimation=="fade"&&j.fadeIn(a.captionAnimationSpeed),a.captionAnimation=="slideOpen"&&j.slideDown(a.captionAnimationSpeed)):(a.captionAnimation=="none"&&j.hide(),a.captionAnimation=="fade"&&j.fadeOut(a.captionAnimationSpeed),a.captionAnimation=="slideOpen"&&j.slideUp(a.captionAnimationSpeed))}}function B(){if(a.bullets)D.children("li").removeClass("active").eq(b).addClass("active");else return!1}function l(d){function c(){e.eq(f).css({"z-index":1}); u=!1;a.afterSlideChange.call(this)}var f=b,g=d;if(f==g)return!1;if(e.length=="1")return!1;u||(u=!0,d=="next"?(b++,b==p&&(b=0)):d=="prev"?(b--,b<0&&(b=p-1)):(b=d,fb&&(g="prev")),B(),e.eq(f).css({"z-index":2}),a.animation=="fade"&&e.eq(b).css({opacity:0,"z-index":3}).animate({opacity:1},a.animationSpeed,c),a.animation=="horizontal-slide"&&(g=="next"&&e.eq(b).css({left:h,"z-index":3}).animate({left:0},a.animationSpeed,c),g=="prev"&&e.eq(b).css({left:-h,"z-index":3}).animate({left:0},a.animationSpeed, From vytas at ci.uchicago.edu Thu Dec 8 15:51:21 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Thu, 08 Dec 2011 21:51:21 -0000 Subject: [Swift-commit] r5379 - wwwdev/images/rotator Message-ID: <20111208214951.1B44E9CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 15:49:50 -0600 (Thu, 08 Dec 2011) New Revision: 5379 Modified: wwwdev/images/rotator/2011_08_neuroscience.jpg Log: updated image to be more in line with other frames of the rotator Modified: wwwdev/images/rotator/2011_08_neuroscience.jpg =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Thu Dec 8 15:52:54 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Thu, 08 Dec 2011 21:52:54 -0000 Subject: [Swift-commit] r5380 - wwwdev/images/rotator Message-ID: <20111208215124.0530D9CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 15:51:23 -0600 (Thu, 08 Dec 2011) New Revision: 5380 Modified: wwwdev/images/rotator/bg_rotator-glass.jpg Log: Changed C in Uchicago to be uppercase Modified: wwwdev/images/rotator/bg_rotator-glass.jpg =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Thu Dec 8 15:53:56 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Thu, 08 Dec 2011 21:53:56 -0000 Subject: [Swift-commit] r5381 - wwwdev/js Message-ID: <20111208215225.F245C9CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 15:52:25 -0600 (Thu, 08 Dec 2011) New Revision: 5381 Modified: wwwdev/js/jquery.orbit-1.2.3.min.js Log: upped the time between slide changes to 1200ms from 900ms Modified: wwwdev/js/jquery.orbit-1.2.3.min.js =================================================================== --- wwwdev/js/jquery.orbit-1.2.3.min.js 2011-12-08 21:51:23 UTC (rev 5380) +++ wwwdev/js/jquery.orbit-1.2.3.min.js 2011-12-08 21:52:25 UTC (rev 5381) @@ -6,7 +6,7 @@ * http://www.opensource.org/licenses/mit-license.php */ -(function(d){d.fn.orbit=function(a){a=d.extend({animation:"horizontal-push",animationSpeed:900,timer:!0,advanceSpeed:4E3,pauseOnHover:!1,startClockOnMouseOut:!1,startClockOnMouseOutAfter:1E3,directionalNav:!0,captions:!0,captionAnimation:"fade",captionAnimationSpeed:600,bullets:!1,bulletThumbs:!1,bulletThumbLocation:"",afterSlideChange:function(){}},a);return this.each(function(){function q(){if(!a.timer||a.timer=="false")return!1;else r.is(":hidden")?s=setInterval(function(){l("next")},a.advanceSpeed): +(function(d){d.fn.orbit=function(a){a=d.extend({animation:"horizontal-push",animationSpeed:1200,timer:!0,advanceSpeed:4E3,pauseOnHover:!1,startClockOnMouseOut:!1,startClockOnMouseOutAfter:1E3,directionalNav:!0,captions:!0,captionAnimation:"fade",captionAnimationSpeed:600,bullets:!1,bulletThumbs:!1,bulletThumbLocation:"",afterSlideChange:function(){}},a);return this.each(function(){function q(){if(!a.timer||a.timer=="false")return!1;else r.is(":hidden")?s=setInterval(function(){l("next")},a.advanceSpeed): (o=!0,x.removeClass("active"),s=setInterval(function(){var a="rotate("+m+"deg)";m+=2;t.css({"-webkit-transform":a,"-moz-transform":a,"-o-transform":a});m>180&&(t.addClass("move"),z.addClass("move"));m>360&&(t.removeClass("move"),z.removeClass("move"),m=0,l("next"))},a.advanceSpeed/180))}function n(){if(!a.timer||a.timer=="false")return!1;else o=!1,clearInterval(s),x.addClass("active")}function A(){if(!a.captions||a.captions=="false")return!1;else{var y=e.eq(b).data("caption");(_captionHTML=d(y).html())? (j.attr("id",y).html(_captionHTML),a.captionAnimation=="none"&&j.show(),a.captionAnimation=="fade"&&j.fadeIn(a.captionAnimationSpeed),a.captionAnimation=="slideOpen"&&j.slideDown(a.captionAnimationSpeed)):(a.captionAnimation=="none"&&j.hide(),a.captionAnimation=="fade"&&j.fadeOut(a.captionAnimationSpeed),a.captionAnimation=="slideOpen"&&j.slideUp(a.captionAnimationSpeed))}}function B(){if(a.bullets)D.children("li").removeClass("active").eq(b).addClass("active");else return!1}function l(d){function c(){e.eq(f).css({"z-index":1}); u=!1;a.afterSlideChange.call(this)}var f=b,g=d;if(f==g)return!1;if(e.length=="1")return!1;u||(u=!0,d=="next"?(b++,b==p&&(b=0)):d=="prev"?(b--,b<0&&(b=p-1)):(b=d,fb&&(g="prev")),B(),e.eq(f).css({"z-index":2}),a.animation=="fade"&&e.eq(b).css({opacity:0,"z-index":3}).animate({opacity:1},a.animationSpeed,c),a.animation=="horizontal-slide"&&(g=="next"&&e.eq(b).css({left:h,"z-index":3}).animate({left:0},a.animationSpeed,c),g=="prev"&&e.eq(b).css({left:-h,"z-index":3}).animate({left:0},a.animationSpeed, From vytas at ci.uchicago.edu Thu Dec 8 18:25:02 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Fri, 09 Dec 2011 00:25:02 -0000 Subject: [Swift-commit] r5382 - wwwdev/images/rotator Message-ID: <20111209002331.E194F9CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 18:23:31 -0600 (Thu, 08 Dec 2011) New Revision: 5382 Modified: wwwdev/images/rotator/2011_08_neuroscience.jpg Log: updated per Mike Wilde's text Modified: wwwdev/images/rotator/2011_08_neuroscience.jpg =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Thu Dec 8 18:25:46 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Fri, 09 Dec 2011 00:25:46 -0000 Subject: [Swift-commit] r5383 - wwwdev/case_studies Message-ID: <20111209002415.5216A9CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 18:24:15 -0600 (Thu, 08 Dec 2011) New Revision: 5383 Modified: wwwdev/case_studies/Hydrology.php Log: text updated per document provided by Yuejun Yan Modified: wwwdev/case_studies/Hydrology.php =================================================================== --- wwwdev/case_studies/Hydrology.php 2011-12-09 00:23:31 UTC (rev 5382) +++ wwwdev/case_studies/Hydrology.php 2011-12-09 00:24:15 UTC (rev 5383) @@ -22,18 +22,13 @@
    -

    Modeling Climate Impact on Hydrology

    -

    -Modeling the hydrology of the Mississippi river basin to assess the impacts of climate change and crop changes driven by energy/economics factors. +

    Modeling Climate/Crop Impacts on Hydrology

    +

    Modeling the hydrology of the Mississippi River Basin to assess the impacts of climate change, crop growth, and energy production driven by energy/economics factors.

    -

    Approach. -wift is used to perform large-scale modeling runs using SWAT, the Soil and Water Assesment Tool, to study of the impact of global temperature increase on on water and plant productivity in the Upper Mississippi River Basin. - -These studies use Swift to perform calibration, sensitivity studies, and optimzation using SCE optimization methods (structured complex evolution) methods. All of these computational modling procedures involve multiple runs of thousands of invocations of SWAT to model the timing and magnitude of changes in runoff, soil moisture, water quality, water availability, and crop yield in important -agricultural areas. -

    Results. -Results of this research demonstrate that plausible changes in temperature and precipitation caused by increases in atmospheric greenhouse gas concentrations could have major impacts on both +

    Approach. Swift is used to perform large-scale watershed simulations using SWAT, the Soil and Water Assessment Tool, to study the impacts of global climate change, large-scale biomass feedstock production, and potential water demands on the regional hydrologic system in the Upper Mississippi River Basin. These studies use Swift to perform calibration, sensitivity studies, and optimization using SCE (shuffled complex evolution) optimization methods. All of these computational modeling procedures involve multiple runs of thousands of invocations of SWAT to simulate the temporal and spatial changes in evapotranspiration, soil moisture, runoff, groundwater recharge, crop yields, as well as water quality in streams such as nitrogen, phosphorous, and eroded sediments in regional hydrologic system.

    + +

    Results. Results of this research demonstrate dynamic interrelationships among water quantity and quality, biofuel production, crop growth/management, and climate change. The modeling tool developed in this study can be used to address future sustainability of the regional/local hydrologic systems.

     

    From vytas at ci.uchicago.edu Thu Dec 8 19:14:15 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Fri, 09 Dec 2011 01:14:15 -0000 Subject: [Swift-commit] r5385 - wwwdev/case_studies/images Message-ID: <20111209011244.BEE459CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 19:12:44 -0600 (Thu, 08 Dec 2011) New Revision: 5385 Modified: wwwdev/case_studies/images/hydrology.jpg Log: graphic updated per document provided by Yuejun Yan Modified: wwwdev/case_studies/images/hydrology.jpg =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Thu Dec 8 19:22:34 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Fri, 09 Dec 2011 01:22:34 -0000 Subject: [Swift-commit] r5386 - wwwdev/case_studies/images Message-ID: <20111209012104.5EB239CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 19:21:04 -0600 (Thu, 08 Dec 2011) New Revision: 5386 Modified: wwwdev/case_studies/images/hydrology.jpg Log: added USGS & USDA qualifiers to Model Calibration legend Modified: wwwdev/case_studies/images/hydrology.jpg =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Thu Dec 8 19:37:33 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Fri, 09 Dec 2011 01:37:33 -0000 Subject: [Swift-commit] r5387 - wwwdev/case_studies/images Message-ID: <20111209013603.855409CCAA@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-08 19:36:03 -0600 (Thu, 08 Dec 2011) New Revision: 5387 Modified: wwwdev/case_studies/images/hydrology.jpg Log: added "Others" section to graphic Modified: wwwdev/case_studies/images/hydrology.jpg =================================================================== (Binary files differ) From vytas at ci.uchicago.edu Fri Dec 9 08:45:51 2011 From: vytas at ci.uchicago.edu (vytas at ci.uchicago.edu) Date: Fri, 09 Dec 2011 14:45:51 -0000 Subject: [Swift-commit] r5390 - wwwdev/inc Message-ID: <20111209144419.C30E19D025@svn.ci.uchicago.edu> Author: vytas Date: 2011-12-09 08:44:19 -0600 (Fri, 09 Dec 2011) New Revision: 5390 Modified: wwwdev/inc/header2.php Log: reverted to previous version of the header to mitigate nav issues introduced in move of support to the third slot in the nav order Modified: wwwdev/inc/header2.php =================================================================== --- wwwdev/inc/header2.php 2011-12-09 05:18:25 UTC (rev 5389) +++ wwwdev/inc/header2.php 2011-12-09 14:44:19 UTC (rev 5390) @@ -13,7 +13,7 @@ From davidk at ci.uchicago.edu Mon Dec 12 12:19:55 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Mon, 12 Dec 2011 18:19:55 -0000 Subject: [Swift-commit] r5410 - in usertools: . swift-ec2-boot swift-ec2-boot/bin swift-ec2-boot/lib Message-ID: <20111212181807.2EEDC9CCA8@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-12 12:18:06 -0600 (Mon, 12 Dec 2011) New Revision: 5410 Added: usertools/swift-ec2-boot/ usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT usertools/swift-ec2-boot/bin/ usertools/swift-ec2-boot/bin/ec2-activate-license usertools/swift-ec2-boot/bin/ec2-activate-license.cmd usertools/swift-ec2-boot/bin/ec2-add-group usertools/swift-ec2-boot/bin/ec2-add-group.cmd usertools/swift-ec2-boot/bin/ec2-add-keypair usertools/swift-ec2-boot/bin/ec2-add-keypair.cmd usertools/swift-ec2-boot/bin/ec2-allocate-address usertools/swift-ec2-boot/bin/ec2-allocate-address.cmd usertools/swift-ec2-boot/bin/ec2-associate-address usertools/swift-ec2-boot/bin/ec2-associate-address.cmd usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options.cmd usertools/swift-ec2-boot/bin/ec2-associate-route-table usertools/swift-ec2-boot/bin/ec2-associate-route-table.cmd usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway.cmd usertools/swift-ec2-boot/bin/ec2-attach-volume usertools/swift-ec2-boot/bin/ec2-attach-volume.cmd usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway.cmd usertools/swift-ec2-boot/bin/ec2-authorize usertools/swift-ec2-boot/bin/ec2-authorize.cmd usertools/swift-ec2-boot/bin/ec2-bundle-instance usertools/swift-ec2-boot/bin/ec2-bundle-instance.cmd usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task.cmd usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task.cmd usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests.cmd usertools/swift-ec2-boot/bin/ec2-cmd usertools/swift-ec2-boot/bin/ec2-cmd.cmd usertools/swift-ec2-boot/bin/ec2-confirm-product-instance usertools/swift-ec2-boot/bin/ec2-confirm-product-instance.cmd usertools/swift-ec2-boot/bin/ec2-create-customer-gateway usertools/swift-ec2-boot/bin/ec2-create-customer-gateway.cmd usertools/swift-ec2-boot/bin/ec2-create-dhcp-options usertools/swift-ec2-boot/bin/ec2-create-dhcp-options.cmd usertools/swift-ec2-boot/bin/ec2-create-group usertools/swift-ec2-boot/bin/ec2-create-group.cmd usertools/swift-ec2-boot/bin/ec2-create-image usertools/swift-ec2-boot/bin/ec2-create-image.cmd usertools/swift-ec2-boot/bin/ec2-create-internet-gateway usertools/swift-ec2-boot/bin/ec2-create-internet-gateway.cmd usertools/swift-ec2-boot/bin/ec2-create-keypair usertools/swift-ec2-boot/bin/ec2-create-keypair.cmd usertools/swift-ec2-boot/bin/ec2-create-network-acl usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry.cmd usertools/swift-ec2-boot/bin/ec2-create-network-acl.cmd usertools/swift-ec2-boot/bin/ec2-create-placement-group usertools/swift-ec2-boot/bin/ec2-create-placement-group.cmd usertools/swift-ec2-boot/bin/ec2-create-route usertools/swift-ec2-boot/bin/ec2-create-route-table usertools/swift-ec2-boot/bin/ec2-create-route-table.cmd usertools/swift-ec2-boot/bin/ec2-create-route.cmd usertools/swift-ec2-boot/bin/ec2-create-snapshot usertools/swift-ec2-boot/bin/ec2-create-snapshot.cmd usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription.cmd usertools/swift-ec2-boot/bin/ec2-create-subnet usertools/swift-ec2-boot/bin/ec2-create-subnet.cmd usertools/swift-ec2-boot/bin/ec2-create-tags usertools/swift-ec2-boot/bin/ec2-create-tags.cmd usertools/swift-ec2-boot/bin/ec2-create-volume usertools/swift-ec2-boot/bin/ec2-create-volume.cmd usertools/swift-ec2-boot/bin/ec2-create-vpc usertools/swift-ec2-boot/bin/ec2-create-vpc.cmd usertools/swift-ec2-boot/bin/ec2-create-vpn-connection usertools/swift-ec2-boot/bin/ec2-create-vpn-connection.cmd usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway.cmd usertools/swift-ec2-boot/bin/ec2-deactivate-license usertools/swift-ec2-boot/bin/ec2-deactivate-license.cmd usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway.cmd usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options.cmd usertools/swift-ec2-boot/bin/ec2-delete-disk-image usertools/swift-ec2-boot/bin/ec2-delete-disk-image.cmd usertools/swift-ec2-boot/bin/ec2-delete-group usertools/swift-ec2-boot/bin/ec2-delete-group.cmd usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway.cmd usertools/swift-ec2-boot/bin/ec2-delete-keypair usertools/swift-ec2-boot/bin/ec2-delete-keypair.cmd usertools/swift-ec2-boot/bin/ec2-delete-network-acl usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry.cmd usertools/swift-ec2-boot/bin/ec2-delete-network-acl.cmd usertools/swift-ec2-boot/bin/ec2-delete-placement-group usertools/swift-ec2-boot/bin/ec2-delete-placement-group.cmd usertools/swift-ec2-boot/bin/ec2-delete-route usertools/swift-ec2-boot/bin/ec2-delete-route-table usertools/swift-ec2-boot/bin/ec2-delete-route-table.cmd usertools/swift-ec2-boot/bin/ec2-delete-route.cmd usertools/swift-ec2-boot/bin/ec2-delete-snapshot usertools/swift-ec2-boot/bin/ec2-delete-snapshot.cmd usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription.cmd usertools/swift-ec2-boot/bin/ec2-delete-subnet usertools/swift-ec2-boot/bin/ec2-delete-subnet.cmd usertools/swift-ec2-boot/bin/ec2-delete-tags usertools/swift-ec2-boot/bin/ec2-delete-tags.cmd usertools/swift-ec2-boot/bin/ec2-delete-volume usertools/swift-ec2-boot/bin/ec2-delete-volume.cmd usertools/swift-ec2-boot/bin/ec2-delete-vpc usertools/swift-ec2-boot/bin/ec2-delete-vpc.cmd usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection.cmd usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway.cmd usertools/swift-ec2-boot/bin/ec2-deregister usertools/swift-ec2-boot/bin/ec2-deregister.cmd usertools/swift-ec2-boot/bin/ec2-describe-addresses usertools/swift-ec2-boot/bin/ec2-describe-addresses.cmd usertools/swift-ec2-boot/bin/ec2-describe-availability-zones usertools/swift-ec2-boot/bin/ec2-describe-availability-zones.cmd usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks.cmd usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks.cmd usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways.cmd usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options.cmd usertools/swift-ec2-boot/bin/ec2-describe-group usertools/swift-ec2-boot/bin/ec2-describe-group.cmd usertools/swift-ec2-boot/bin/ec2-describe-image-attribute usertools/swift-ec2-boot/bin/ec2-describe-image-attribute.cmd usertools/swift-ec2-boot/bin/ec2-describe-images usertools/swift-ec2-boot/bin/ec2-describe-images.cmd usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute.cmd usertools/swift-ec2-boot/bin/ec2-describe-instance-status usertools/swift-ec2-boot/bin/ec2-describe-instance-status.cmd usertools/swift-ec2-boot/bin/ec2-describe-instances usertools/swift-ec2-boot/bin/ec2-describe-instances.cmd usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways.cmd usertools/swift-ec2-boot/bin/ec2-describe-keypairs usertools/swift-ec2-boot/bin/ec2-describe-keypairs.cmd usertools/swift-ec2-boot/bin/ec2-describe-licenses usertools/swift-ec2-boot/bin/ec2-describe-licenses.cmd usertools/swift-ec2-boot/bin/ec2-describe-network-acls usertools/swift-ec2-boot/bin/ec2-describe-network-acls.cmd usertools/swift-ec2-boot/bin/ec2-describe-placement-groups usertools/swift-ec2-boot/bin/ec2-describe-placement-groups.cmd usertools/swift-ec2-boot/bin/ec2-describe-regions usertools/swift-ec2-boot/bin/ec2-describe-regions.cmd usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings.cmd usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances.cmd usertools/swift-ec2-boot/bin/ec2-describe-route-tables usertools/swift-ec2-boot/bin/ec2-describe-route-tables.cmd usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute.cmd usertools/swift-ec2-boot/bin/ec2-describe-snapshots usertools/swift-ec2-boot/bin/ec2-describe-snapshots.cmd usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription.cmd usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests.cmd usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history.cmd usertools/swift-ec2-boot/bin/ec2-describe-subnets usertools/swift-ec2-boot/bin/ec2-describe-subnets.cmd usertools/swift-ec2-boot/bin/ec2-describe-tags usertools/swift-ec2-boot/bin/ec2-describe-tags.cmd usertools/swift-ec2-boot/bin/ec2-describe-volumes usertools/swift-ec2-boot/bin/ec2-describe-volumes.cmd usertools/swift-ec2-boot/bin/ec2-describe-vpcs usertools/swift-ec2-boot/bin/ec2-describe-vpcs.cmd usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections.cmd usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways.cmd usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway.cmd usertools/swift-ec2-boot/bin/ec2-detach-volume usertools/swift-ec2-boot/bin/ec2-detach-volume.cmd usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway.cmd usertools/swift-ec2-boot/bin/ec2-disassociate-address usertools/swift-ec2-boot/bin/ec2-disassociate-address.cmd usertools/swift-ec2-boot/bin/ec2-disassociate-route-table usertools/swift-ec2-boot/bin/ec2-disassociate-route-table.cmd usertools/swift-ec2-boot/bin/ec2-fingerprint-key usertools/swift-ec2-boot/bin/ec2-fingerprint-key.cmd usertools/swift-ec2-boot/bin/ec2-get-console-output usertools/swift-ec2-boot/bin/ec2-get-console-output.cmd usertools/swift-ec2-boot/bin/ec2-get-password usertools/swift-ec2-boot/bin/ec2-get-password.cmd usertools/swift-ec2-boot/bin/ec2-import-instance usertools/swift-ec2-boot/bin/ec2-import-instance.cmd usertools/swift-ec2-boot/bin/ec2-import-keypair usertools/swift-ec2-boot/bin/ec2-import-keypair.cmd usertools/swift-ec2-boot/bin/ec2-import-volume usertools/swift-ec2-boot/bin/ec2-import-volume.cmd usertools/swift-ec2-boot/bin/ec2-migrate-image usertools/swift-ec2-boot/bin/ec2-migrate-image.cmd usertools/swift-ec2-boot/bin/ec2-modify-image-attribute usertools/swift-ec2-boot/bin/ec2-modify-image-attribute.cmd usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute.cmd usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute.cmd usertools/swift-ec2-boot/bin/ec2-monitor-instances usertools/swift-ec2-boot/bin/ec2-monitor-instances.cmd usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering.cmd usertools/swift-ec2-boot/bin/ec2-reboot-instances usertools/swift-ec2-boot/bin/ec2-reboot-instances.cmd usertools/swift-ec2-boot/bin/ec2-register usertools/swift-ec2-boot/bin/ec2-register.cmd usertools/swift-ec2-boot/bin/ec2-release-address usertools/swift-ec2-boot/bin/ec2-release-address.cmd usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association.cmd usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry.cmd usertools/swift-ec2-boot/bin/ec2-replace-route usertools/swift-ec2-boot/bin/ec2-replace-route-table-association usertools/swift-ec2-boot/bin/ec2-replace-route-table-association.cmd usertools/swift-ec2-boot/bin/ec2-replace-route.cmd usertools/swift-ec2-boot/bin/ec2-request-spot-instances usertools/swift-ec2-boot/bin/ec2-request-spot-instances.cmd usertools/swift-ec2-boot/bin/ec2-reset-image-attribute usertools/swift-ec2-boot/bin/ec2-reset-image-attribute.cmd usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute.cmd usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute.cmd usertools/swift-ec2-boot/bin/ec2-resume-import usertools/swift-ec2-boot/bin/ec2-resume-import.cmd usertools/swift-ec2-boot/bin/ec2-revoke usertools/swift-ec2-boot/bin/ec2-revoke.cmd usertools/swift-ec2-boot/bin/ec2-run-instances usertools/swift-ec2-boot/bin/ec2-run-instances.cmd usertools/swift-ec2-boot/bin/ec2-start-instances usertools/swift-ec2-boot/bin/ec2-start-instances.cmd usertools/swift-ec2-boot/bin/ec2-stop-instances usertools/swift-ec2-boot/bin/ec2-stop-instances.cmd usertools/swift-ec2-boot/bin/ec2-terminate-instances usertools/swift-ec2-boot/bin/ec2-terminate-instances.cmd usertools/swift-ec2-boot/bin/ec2-unmonitor-instances usertools/swift-ec2-boot/bin/ec2-unmonitor-instances.cmd usertools/swift-ec2-boot/bin/ec2-upload-disk-image usertools/swift-ec2-boot/bin/ec2-upload-disk-image.cmd usertools/swift-ec2-boot/bin/ec2-version usertools/swift-ec2-boot/bin/ec2-version.cmd usertools/swift-ec2-boot/bin/ec2actlic usertools/swift-ec2-boot/bin/ec2actlic.cmd usertools/swift-ec2-boot/bin/ec2addcgw usertools/swift-ec2-boot/bin/ec2addcgw.cmd usertools/swift-ec2-boot/bin/ec2adddopt usertools/swift-ec2-boot/bin/ec2adddopt.cmd usertools/swift-ec2-boot/bin/ec2addgrp usertools/swift-ec2-boot/bin/ec2addgrp.cmd usertools/swift-ec2-boot/bin/ec2addigw usertools/swift-ec2-boot/bin/ec2addigw.cmd usertools/swift-ec2-boot/bin/ec2addkey usertools/swift-ec2-boot/bin/ec2addkey.cmd usertools/swift-ec2-boot/bin/ec2addnacl usertools/swift-ec2-boot/bin/ec2addnacl.cmd usertools/swift-ec2-boot/bin/ec2addnae usertools/swift-ec2-boot/bin/ec2addnae.cmd usertools/swift-ec2-boot/bin/ec2addpgrp usertools/swift-ec2-boot/bin/ec2addpgrp.cmd usertools/swift-ec2-boot/bin/ec2addrt usertools/swift-ec2-boot/bin/ec2addrt.cmd usertools/swift-ec2-boot/bin/ec2addrtb usertools/swift-ec2-boot/bin/ec2addrtb.cmd usertools/swift-ec2-boot/bin/ec2addsds usertools/swift-ec2-boot/bin/ec2addsds.cmd usertools/swift-ec2-boot/bin/ec2addsnap usertools/swift-ec2-boot/bin/ec2addsnap.cmd usertools/swift-ec2-boot/bin/ec2addsubnet usertools/swift-ec2-boot/bin/ec2addsubnet.cmd usertools/swift-ec2-boot/bin/ec2addtag usertools/swift-ec2-boot/bin/ec2addtag.cmd usertools/swift-ec2-boot/bin/ec2addvgw usertools/swift-ec2-boot/bin/ec2addvgw.cmd usertools/swift-ec2-boot/bin/ec2addvol usertools/swift-ec2-boot/bin/ec2addvol.cmd usertools/swift-ec2-boot/bin/ec2addvpc usertools/swift-ec2-boot/bin/ec2addvpc.cmd usertools/swift-ec2-boot/bin/ec2addvpn usertools/swift-ec2-boot/bin/ec2addvpn.cmd usertools/swift-ec2-boot/bin/ec2allocaddr usertools/swift-ec2-boot/bin/ec2allocaddr.cmd usertools/swift-ec2-boot/bin/ec2assocaddr usertools/swift-ec2-boot/bin/ec2assocaddr.cmd usertools/swift-ec2-boot/bin/ec2assocdopt usertools/swift-ec2-boot/bin/ec2assocdopt.cmd usertools/swift-ec2-boot/bin/ec2assocrtb usertools/swift-ec2-boot/bin/ec2assocrtb.cmd usertools/swift-ec2-boot/bin/ec2attigw usertools/swift-ec2-boot/bin/ec2attigw.cmd usertools/swift-ec2-boot/bin/ec2attvgw usertools/swift-ec2-boot/bin/ec2attvgw.cmd usertools/swift-ec2-boot/bin/ec2attvol usertools/swift-ec2-boot/bin/ec2attvol.cmd usertools/swift-ec2-boot/bin/ec2auth usertools/swift-ec2-boot/bin/ec2auth.cmd usertools/swift-ec2-boot/bin/ec2bundle usertools/swift-ec2-boot/bin/ec2bundle.cmd usertools/swift-ec2-boot/bin/ec2cbun usertools/swift-ec2-boot/bin/ec2cbun.cmd usertools/swift-ec2-boot/bin/ec2cct usertools/swift-ec2-boot/bin/ec2cct.cmd usertools/swift-ec2-boot/bin/ec2cim usertools/swift-ec2-boot/bin/ec2cim.cmd usertools/swift-ec2-boot/bin/ec2cpi usertools/swift-ec2-boot/bin/ec2cpi.cmd usertools/swift-ec2-boot/bin/ec2csir usertools/swift-ec2-boot/bin/ec2csir.cmd usertools/swift-ec2-boot/bin/ec2daddr usertools/swift-ec2-boot/bin/ec2daddr.cmd usertools/swift-ec2-boot/bin/ec2datt usertools/swift-ec2-boot/bin/ec2datt.cmd usertools/swift-ec2-boot/bin/ec2daz usertools/swift-ec2-boot/bin/ec2daz.cmd usertools/swift-ec2-boot/bin/ec2dbun usertools/swift-ec2-boot/bin/ec2dbun.cmd usertools/swift-ec2-boot/bin/ec2dcgw usertools/swift-ec2-boot/bin/ec2dcgw.cmd usertools/swift-ec2-boot/bin/ec2dct usertools/swift-ec2-boot/bin/ec2dct.cmd usertools/swift-ec2-boot/bin/ec2ddi usertools/swift-ec2-boot/bin/ec2ddi.cmd usertools/swift-ec2-boot/bin/ec2ddopt usertools/swift-ec2-boot/bin/ec2ddopt.cmd usertools/swift-ec2-boot/bin/ec2deactlic usertools/swift-ec2-boot/bin/ec2deactlic.cmd usertools/swift-ec2-boot/bin/ec2delcgw usertools/swift-ec2-boot/bin/ec2delcgw.cmd usertools/swift-ec2-boot/bin/ec2deldopt usertools/swift-ec2-boot/bin/ec2deldopt.cmd usertools/swift-ec2-boot/bin/ec2delgrp usertools/swift-ec2-boot/bin/ec2delgrp.cmd usertools/swift-ec2-boot/bin/ec2deligw usertools/swift-ec2-boot/bin/ec2deligw.cmd usertools/swift-ec2-boot/bin/ec2delkey usertools/swift-ec2-boot/bin/ec2delkey.cmd usertools/swift-ec2-boot/bin/ec2delnacl usertools/swift-ec2-boot/bin/ec2delnacl.cmd usertools/swift-ec2-boot/bin/ec2delnae usertools/swift-ec2-boot/bin/ec2delnae.cmd usertools/swift-ec2-boot/bin/ec2delpgrp usertools/swift-ec2-boot/bin/ec2delpgrp.cmd usertools/swift-ec2-boot/bin/ec2delrt usertools/swift-ec2-boot/bin/ec2delrt.cmd usertools/swift-ec2-boot/bin/ec2delrtb usertools/swift-ec2-boot/bin/ec2delrtb.cmd usertools/swift-ec2-boot/bin/ec2delsds usertools/swift-ec2-boot/bin/ec2delsds.cmd usertools/swift-ec2-boot/bin/ec2delsnap usertools/swift-ec2-boot/bin/ec2delsnap.cmd usertools/swift-ec2-boot/bin/ec2delsubnet usertools/swift-ec2-boot/bin/ec2delsubnet.cmd usertools/swift-ec2-boot/bin/ec2deltag usertools/swift-ec2-boot/bin/ec2deltag.cmd usertools/swift-ec2-boot/bin/ec2delvgw usertools/swift-ec2-boot/bin/ec2delvgw.cmd usertools/swift-ec2-boot/bin/ec2delvol usertools/swift-ec2-boot/bin/ec2delvol.cmd usertools/swift-ec2-boot/bin/ec2delvpc usertools/swift-ec2-boot/bin/ec2delvpc.cmd usertools/swift-ec2-boot/bin/ec2delvpn usertools/swift-ec2-boot/bin/ec2delvpn.cmd usertools/swift-ec2-boot/bin/ec2dereg usertools/swift-ec2-boot/bin/ec2dereg.cmd usertools/swift-ec2-boot/bin/ec2detigw usertools/swift-ec2-boot/bin/ec2detigw.cmd usertools/swift-ec2-boot/bin/ec2detvgw usertools/swift-ec2-boot/bin/ec2detvgw.cmd usertools/swift-ec2-boot/bin/ec2detvol usertools/swift-ec2-boot/bin/ec2detvol.cmd usertools/swift-ec2-boot/bin/ec2dgrp usertools/swift-ec2-boot/bin/ec2dgrp.cmd usertools/swift-ec2-boot/bin/ec2diatt usertools/swift-ec2-boot/bin/ec2diatt.cmd usertools/swift-ec2-boot/bin/ec2digw usertools/swift-ec2-boot/bin/ec2digw.cmd usertools/swift-ec2-boot/bin/ec2dim usertools/swift-ec2-boot/bin/ec2dim.cmd usertools/swift-ec2-boot/bin/ec2dimatt usertools/swift-ec2-boot/bin/ec2dimatt.cmd usertools/swift-ec2-boot/bin/ec2din usertools/swift-ec2-boot/bin/ec2din.cmd usertools/swift-ec2-boot/bin/ec2dinatt usertools/swift-ec2-boot/bin/ec2dinatt.cmd usertools/swift-ec2-boot/bin/ec2dins usertools/swift-ec2-boot/bin/ec2dins.cmd usertools/swift-ec2-boot/bin/ec2disaddr usertools/swift-ec2-boot/bin/ec2disaddr.cmd usertools/swift-ec2-boot/bin/ec2disrtb usertools/swift-ec2-boot/bin/ec2disrtb.cmd usertools/swift-ec2-boot/bin/ec2dkey usertools/swift-ec2-boot/bin/ec2dkey.cmd usertools/swift-ec2-boot/bin/ec2dlic usertools/swift-ec2-boot/bin/ec2dlic.cmd usertools/swift-ec2-boot/bin/ec2dnacl usertools/swift-ec2-boot/bin/ec2dnacl.cmd usertools/swift-ec2-boot/bin/ec2dpgrp usertools/swift-ec2-boot/bin/ec2dpgrp.cmd usertools/swift-ec2-boot/bin/ec2dre usertools/swift-ec2-boot/bin/ec2dre.cmd usertools/swift-ec2-boot/bin/ec2dri usertools/swift-ec2-boot/bin/ec2dri.cmd usertools/swift-ec2-boot/bin/ec2drio usertools/swift-ec2-boot/bin/ec2drio.cmd usertools/swift-ec2-boot/bin/ec2drtb usertools/swift-ec2-boot/bin/ec2drtb.cmd usertools/swift-ec2-boot/bin/ec2dsds usertools/swift-ec2-boot/bin/ec2dsds.cmd usertools/swift-ec2-boot/bin/ec2dsir usertools/swift-ec2-boot/bin/ec2dsir.cmd usertools/swift-ec2-boot/bin/ec2dsnap usertools/swift-ec2-boot/bin/ec2dsnap.cmd usertools/swift-ec2-boot/bin/ec2dsnapatt usertools/swift-ec2-boot/bin/ec2dsnapatt.cmd usertools/swift-ec2-boot/bin/ec2dsph usertools/swift-ec2-boot/bin/ec2dsph.cmd usertools/swift-ec2-boot/bin/ec2dsubnet usertools/swift-ec2-boot/bin/ec2dsubnet.cmd usertools/swift-ec2-boot/bin/ec2dtag usertools/swift-ec2-boot/bin/ec2dtag.cmd usertools/swift-ec2-boot/bin/ec2dvgw usertools/swift-ec2-boot/bin/ec2dvgw.cmd usertools/swift-ec2-boot/bin/ec2dvol usertools/swift-ec2-boot/bin/ec2dvol.cmd usertools/swift-ec2-boot/bin/ec2dvpc usertools/swift-ec2-boot/bin/ec2dvpc.cmd usertools/swift-ec2-boot/bin/ec2dvpn usertools/swift-ec2-boot/bin/ec2dvpn.cmd usertools/swift-ec2-boot/bin/ec2fp usertools/swift-ec2-boot/bin/ec2fp.cmd usertools/swift-ec2-boot/bin/ec2gcons usertools/swift-ec2-boot/bin/ec2gcons.cmd usertools/swift-ec2-boot/bin/ec2gpass usertools/swift-ec2-boot/bin/ec2gpass.cmd usertools/swift-ec2-boot/bin/ec2ii usertools/swift-ec2-boot/bin/ec2ii.cmd usertools/swift-ec2-boot/bin/ec2iin usertools/swift-ec2-boot/bin/ec2iin.cmd usertools/swift-ec2-boot/bin/ec2ikey usertools/swift-ec2-boot/bin/ec2ikey.cmd usertools/swift-ec2-boot/bin/ec2iv usertools/swift-ec2-boot/bin/ec2iv.cmd usertools/swift-ec2-boot/bin/ec2ivol usertools/swift-ec2-boot/bin/ec2ivol.cmd usertools/swift-ec2-boot/bin/ec2kill usertools/swift-ec2-boot/bin/ec2kill.cmd usertools/swift-ec2-boot/bin/ec2matt usertools/swift-ec2-boot/bin/ec2matt.cmd usertools/swift-ec2-boot/bin/ec2miatt usertools/swift-ec2-boot/bin/ec2miatt.cmd usertools/swift-ec2-boot/bin/ec2mim usertools/swift-ec2-boot/bin/ec2mim.cmd usertools/swift-ec2-boot/bin/ec2mimatt usertools/swift-ec2-boot/bin/ec2mimatt.cmd usertools/swift-ec2-boot/bin/ec2min usertools/swift-ec2-boot/bin/ec2min.cmd usertools/swift-ec2-boot/bin/ec2minatt usertools/swift-ec2-boot/bin/ec2minatt.cmd usertools/swift-ec2-boot/bin/ec2msnapatt usertools/swift-ec2-boot/bin/ec2msnapatt.cmd usertools/swift-ec2-boot/bin/ec2prio usertools/swift-ec2-boot/bin/ec2prio.cmd usertools/swift-ec2-boot/bin/ec2ratt usertools/swift-ec2-boot/bin/ec2ratt.cmd usertools/swift-ec2-boot/bin/ec2reboot usertools/swift-ec2-boot/bin/ec2reboot.cmd usertools/swift-ec2-boot/bin/ec2reg usertools/swift-ec2-boot/bin/ec2reg.cmd usertools/swift-ec2-boot/bin/ec2reladdr usertools/swift-ec2-boot/bin/ec2reladdr.cmd usertools/swift-ec2-boot/bin/ec2repnaclassoc usertools/swift-ec2-boot/bin/ec2repnaclassoc.cmd usertools/swift-ec2-boot/bin/ec2repnae usertools/swift-ec2-boot/bin/ec2repnae.cmd usertools/swift-ec2-boot/bin/ec2reprt usertools/swift-ec2-boot/bin/ec2reprt.cmd usertools/swift-ec2-boot/bin/ec2reprtbassoc usertools/swift-ec2-boot/bin/ec2reprtbassoc.cmd usertools/swift-ec2-boot/bin/ec2revoke usertools/swift-ec2-boot/bin/ec2revoke.cmd usertools/swift-ec2-boot/bin/ec2riatt usertools/swift-ec2-boot/bin/ec2riatt.cmd usertools/swift-ec2-boot/bin/ec2rim usertools/swift-ec2-boot/bin/ec2rim.cmd usertools/swift-ec2-boot/bin/ec2rimatt usertools/swift-ec2-boot/bin/ec2rimatt.cmd usertools/swift-ec2-boot/bin/ec2rinatt usertools/swift-ec2-boot/bin/ec2rinatt.cmd usertools/swift-ec2-boot/bin/ec2rsi usertools/swift-ec2-boot/bin/ec2rsi.cmd usertools/swift-ec2-boot/bin/ec2rsnapatt usertools/swift-ec2-boot/bin/ec2rsnapatt.cmd usertools/swift-ec2-boot/bin/ec2run usertools/swift-ec2-boot/bin/ec2run.cmd usertools/swift-ec2-boot/bin/ec2start usertools/swift-ec2-boot/bin/ec2start.cmd usertools/swift-ec2-boot/bin/ec2stop usertools/swift-ec2-boot/bin/ec2stop.cmd usertools/swift-ec2-boot/bin/ec2tag usertools/swift-ec2-boot/bin/ec2tag.cmd usertools/swift-ec2-boot/bin/ec2udi usertools/swift-ec2-boot/bin/ec2udi.cmd usertools/swift-ec2-boot/bin/ec2umin usertools/swift-ec2-boot/bin/ec2umin.cmd usertools/swift-ec2-boot/bin/ec2ver usertools/swift-ec2-boot/bin/ec2ver.cmd usertools/swift-ec2-boot/lib/ usertools/swift-ec2-boot/lib/EC2CltJavaClient-1.0.jar usertools/swift-ec2-boot/lib/EC2ConversionLib-1.0.jar usertools/swift-ec2-boot/lib/EC2WsdlJavaClient-1.0.jar usertools/swift-ec2-boot/lib/XmlSchema-1.4.5.jar usertools/swift-ec2-boot/lib/activation-1.1.jar usertools/swift-ec2-boot/lib/bcprov-jdk15-145.jar usertools/swift-ec2-boot/lib/commons-cli-1.1.jar usertools/swift-ec2-boot/lib/commons-codec-1.3.jar usertools/swift-ec2-boot/lib/commons-discovery.jar usertools/swift-ec2-boot/lib/commons-httpclient-3.1.jar usertools/swift-ec2-boot/lib/commons-logging-adapters-1.1.1.jar usertools/swift-ec2-boot/lib/commons-logging-api-1.1.1.jar usertools/swift-ec2-boot/lib/ec2-api-tools-1.5.0.1-2011.11.30.jar usertools/swift-ec2-boot/lib/j2ee_mail.jar usertools/swift-ec2-boot/lib/java-xmlbuilder-0.4-SNAPSHOT.jar usertools/swift-ec2-boot/lib/jaxb-api.jar usertools/swift-ec2-boot/lib/jaxb-impl.jar usertools/swift-ec2-boot/lib/jaxws-api.jar usertools/swift-ec2-boot/lib/jdom.jar usertools/swift-ec2-boot/lib/jets3t-0.8.0.jar usertools/swift-ec2-boot/lib/log4j-1.2.14.jar usertools/swift-ec2-boot/lib/serializer.jar usertools/swift-ec2-boot/lib/wsdl4j.jar usertools/swift-ec2-boot/lib/wss4j-1.5.3.jar usertools/swift-ec2-boot/lib/wstx-asl-3.2.7.jar usertools/swift-ec2-boot/lib/xalan.jar usertools/swift-ec2-boot/lib/xercesImpl.jar usertools/swift-ec2-boot/lib/xfire-all-1.2.6.jar usertools/swift-ec2-boot/lib/xfire-jsr181-api-1.0-M1.jar usertools/swift-ec2-boot/lib/xml-apis.jar usertools/swift-ec2-boot/lib/xmlsec.jar usertools/swift-ec2-boot/license.txt usertools/swift-ec2-boot/notice.txt Log: Command line apps for ec2 Added: usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT =================================================================== --- usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT (rev 0) +++ usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,974 @@ + +%% The following software may be included in this product: + xalan-j2-2.7.0.jar + +Use of any of this software is governed by the terms of the license below: + + ========================================================================= + == NOTICE file corresponding to section 4(d) of the Apache License, == + == Version 2.0, in this case for the Apache Xalan serializer == + == distribution. == + ========================================================================= + + This product includes software developed by IBM Corporation (http://www.ibm.com) + and The Apache Software Foundation (http://www.apache.org/). + + Portions of this software was originally based on the following: + - software copyright (c) 1999-2002, Lotus Development Corporation., + http://www.lotus.com. + - software copyright (c) 2001-2002, Sun Microsystems., + http://www.sun.com. + - software copyright (c) 2003, IBM Corporation., http://www.ibm.com. + + + + +%% The following software may be included in this product: + commons-cli-1.1.jar + commons-codec-1.3.jar + commons-discovery-0.2.jar + commons-httpclient-3.0.jar + commons-logging-1.0.4.jar + jets3t-0.8.0.jar + log4j.jar + stax-api-1.0.1.jar + wss4j-1.5.1.jar + wstx-asl-3.2.0.jar + xalan-j2-serializer.jar + xmlsec-1.3.0.jar + java-xmlbuilder-0.4-SNAPSHOT.jar + +Use of any of this software is governed by the terms of the license below: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +%% The following software may be included in this product: + xfire-all-1.2.6.jar + xfire-jsr181-api-1.0-M1.jar + +Use of any of this software is governed by the terms of the license below: + + Copyright (c) 2005 Envoi Solutions LLC + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + +%% The following software may be included in this product: + jdom-1.0.jar + +Use of any of this software is governed by the terms of the license below: + + Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the disclaimer that follows + these conditions in the documentation and/or other materials + provided with the distribution. + + 3. The name "JDOM" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact . + + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management . + + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: + "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." + Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Jason Hunter and + Brett McLaughlin . For more information + on the JDOM Project, please see . + + + + +%% The following software may be included in this product: + bcprov.jar + +Use of any of this software is governed by the terms of the license below: + +Copyright (c) 2000 - 2008 The Legion Of The Bouncy Castle +(http://www.bouncycastle.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +%% The following software may be included in this product: + activation-1.1.jar + jaxb-api-2.0.jar + jaxb-impl-2.0.1.jar + jaxws-api-2.0.jar + mail-1.4.jar + +These are released under dual license consisting of the CDDL v1.0 and GPL v2 with "CLASSPATH" EXCEPTION. + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + +1. Definitions. + +1.1. "Contributor" means each individual or entity that +creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the +Original Software, prior Modifications used by a +Contributor (if any), and the Modifications made by that +particular Contributor. + +1.3. "Covered Software" means (a) the Original Software, or +(b) Modifications, or (c) the combination of files +containing Original Software with files containing +Modifications, in each case including portions thereof. + +1.4. "Executable" means the Covered Software in any form +other than Source Code. + +1.5. "Initial Developer" means the individual or entity +that first makes Original Software available under this +License. + +1.6. "Larger Work" means a work which combines Covered +Software or portions thereof with code not governed by the +terms of this License. + +1.7. "License" means this document. + +1.8. "Licensable" means having the right to grant, to the +maximum extent possible, whether at the time of the initial +grant or subsequently acquired, any and all of the rights +conveyed herein. + +1.9. "Modifications" means the Source Code and Executable +form of any of the following: + +A. Any file that results from an addition to, +deletion from or modification of the contents of a +file containing Original Software or previous +Modifications; + +B. Any new file that contains any part of the +Original Software or previous Modification; or + +C. Any new file that is contributed or otherwise made +available under the terms of this License. + +1.10. "Original Software" means the Source Code and +Executable form of computer software code that is +originally released under this License. + +1.11. "Patent Claims" means any patent claim(s), now owned +or hereafter acquired, including without limitation, +method, process, and apparatus claims, in any patent +Licensable by grantor. + +1.12. "Source Code" means (a) the common form of computer +software code in which modifications are made and (b) +associated documentation included in or with such code. + +1.13. "You" (or "Your") means an individual or a legal +entity exercising rights under, and complying with all of +the terms of, this License. For legal entities, "You" +includes any entity which controls, is controlled by, or is +under common control with You. For purposes of this +definition, "control" means (a) the power, direct or +indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (b) ownership +of more than fifty percent (50%) of the outstanding shares +or beneficial ownership of such entity. + +2. License Grants. + +2.1. The Initial Developer Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, the +Initial Developer hereby grants You a world-wide, +royalty-free, non-exclusive license: + +(a) under intellectual property rights (other than +patent or trademark) Licensable by Initial Developer, +to use, reproduce, modify, display, perform, +sublicense and distribute the Original Software (or +portions thereof), with or without Modifications, +and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, +using or selling of Original Software, to make, have +made, use, practice, sell, and offer for sale, and/or +otherwise dispose of the Original Software (or +portions thereof). + +(c) The licenses granted in Sections 2.1(a) and (b) +are effective on the date Initial Developer first +distributes or otherwise makes the Original Software +available to a third party under the terms of this +License. + +(d) Notwithstanding Section 2.1(b) above, no patent +license is granted: (1) for code that You delete from +the Original Software, or (2) for infringements +caused by: (i) the modification of the Original +Software, or (ii) the combination of the Original +Software with other software or devices. + +2.2. Contributor Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, each +Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than +patent or trademark) Licensable by Contributor to +use, reproduce, modify, display, perform, sublicense +and distribute the Modifications created by such +Contributor (or portions thereof), either on an +unmodified basis, with other Modifications, as +Covered Software and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, +using, or selling of Modifications made by that +Contributor either alone and/or in combination with +its Contributor Version (or portions of such +combination), to make, use, sell, offer for sale, +have made, and/or otherwise dispose of: (1) +Modifications made by that Contributor (or portions +thereof); and (2) the combination of Modifications +made by that Contributor with its Contributor Version +(or portions of such combination). + +(c) The licenses granted in Sections 2.2(a) and +2.2(b) are effective on the date Contributor first +distributes or otherwise makes the Modifications +available to a third party. + +(d) Notwithstanding Section 2.2(b) above, no patent +license is granted: (1) for any code that Contributor +has deleted from the Contributor Version; (2) for +infringements caused by: (i) third party +modifications of Contributor Version, or (ii) the +combination of Modifications made by that Contributor +with other software (except as part of the +Contributor Version) or other devices; or (3) under +Patent Claims infringed by Covered Software in the +absence of Modifications made by that Contributor. + +3. Distribution Obligations. + +3.1. Availability of Source Code. + +Any Covered Software that You distribute or otherwise make +available in Executable form must also be made available in +Source Code form and that Source Code form must be +distributed only under the terms of this License. You must +include a copy of this License with every copy of the +Source Code form of the Covered Software You distribute or +otherwise make available. You must inform recipients of any +such Covered Software in Executable form as to how they can +obtain such Covered Software in Source Code form in a +reasonable manner on or through a medium customarily used +for software exchange. + +3.2. Modifications. + +The Modifications that You create or to which You +contribute are governed by the terms of this License. You +represent that You believe Your Modifications are Your +original creation(s) and/or You have sufficient rights to +grant the rights conveyed by this License. + +3.3. Required Notices. + +You must include a notice in each of Your Modifications +that identifies You as the Contributor of the Modification. +You may not remove or alter any copyright, patent or +trademark notices contained within the Covered Software, or +any notices of licensing or any descriptive text giving +attribution to any Contributor or the Initial Developer. + +3.4. Application of Additional Terms. + +You may not offer or impose any terms on any Covered +Software in Source Code form that alters or restricts the +applicable version of this License or the recipients' +rights hereunder. You may choose to offer, and to charge a +fee for, warranty, support, indemnity or liability +obligations to one or more recipients of Covered Software. +However, you may do so only on Your own behalf, and not on +behalf of the Initial Developer or any Contributor. You +must make it absolutely clear that any such warranty, +support, indemnity or liability obligation is offered by +You alone, and You hereby agree to indemnify the Initial +Developer and every Contributor for any liability incurred +by the Initial Developer or such Contributor as a result of +warranty, support, indemnity or liability terms You offer. + +3.5. Distribution of Executable Versions. + +You may distribute the Executable form of the Covered +Software under the terms of this License or under the terms +of a license of Your choice, which may contain terms +different from this License, provided that You are in +compliance with the terms of this License and that the +license for the Executable form does not attempt to limit +or alter the recipient's rights in the Source Code form +from the rights set forth in this License. If You +distribute the Covered Software in Executable form under a +different license, You must make it absolutely clear that +any terms which differ from this License are offered by You +alone, not by the Initial Developer or Contributor. You +hereby agree to indemnify the Initial Developer and every +Contributor for any liability incurred by the Initial +Developer or such Contributor as a result of any such terms +You offer. + +3.6. Larger Works. + +You may create a Larger Work by combining Covered Software +with other code not governed by the terms of this License +and distribute the Larger Work as a single product. In such +a case, You must make sure the requirements of this License +are fulfilled for the Covered Software. + +4. Versions of the License. + +4.1. New Versions. + +Sun Microsystems, Inc. is the initial license steward and +may publish revised and/or new versions of this License +from time to time. Each version will be given a +distinguishing version number. Except as provided in +Section 4.3, no one other than the license steward has the +right to modify this License. + +4.2. Effect of New Versions. + +You may always continue to use, distribute or otherwise +make the Covered Software available under the terms of the +version of the License under which You originally received +the Covered Software. If the Initial Developer includes a +notice in the Original Software prohibiting it from being +distributed or otherwise made available under any +subsequent version of the License, You must distribute and +make the Covered Software available under the terms of the +version of the License under which You originally received +the Covered Software. Otherwise, You may also choose to +use, distribute or otherwise make the Covered Software +available under the terms of any subsequent version of the +License published by the license steward. + +4.3. Modified Versions. + +When You are an Initial Developer and You want to create a +new license for Your Original Software, You may create and +use a modified version of this License if You: (a) rename +the license and remove any references to the name of the +license steward (except to note that the license differs +from this License); and (b) otherwise make it clear that +the license contains terms which differ from this License. + +5. DISCLAIMER OF WARRANTY. + +COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" +BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED +SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR +PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY +COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE +INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF +ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF +WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF +ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS +DISCLAIMER. + +6. TERMINATION. + +6.1. This License and the rights granted hereunder will +terminate automatically if You fail to comply with terms +herein and fail to cure such breach within 30 days of +becoming aware of the breach. Provisions which, by their +nature, must remain in effect beyond the termination of +this License shall survive. + +6.2. If You assert a patent infringement claim (excluding +declaratory judgment actions) against Initial Developer or +a Contributor (the Initial Developer or Contributor against +whom You assert such claim is referred to as "Participant") +alleging that the Participant Software (meaning the +Contributor Version where the Participant is a Contributor +or the Original Software where the Participant is the +Initial Developer) directly or indirectly infringes any +patent, then any and all rights granted directly or +indirectly to You by such Participant, the Initial +Developer (if the Initial Developer is not the Participant) +and all Contributors under Sections 2.1 and/or 2.2 of this +License shall, upon 60 days notice from Participant +terminate prospectively and automatically at the expiration +of such 60 day notice period, unless if within such 60 day +period You withdraw Your claim with respect to the +Participant Software against such Participant either +unilaterally or pursuant to a written agreement with +Participant. + +6.3. In the event of termination under Sections 6.1 or 6.2 +above, all end user licenses that have been validly granted +by You or any distributor hereunder prior to termination +(excluding licenses granted to You by any distributor) +shall survive termination. + +7. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE +INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF +COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE +LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT +LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK +STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN +INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF +LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL +INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT +APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO +NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT +APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + +The Covered Software is a "commercial item," as that term is +defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial +computer software" (as that term is defined at 48 C.F.R. ? +252.227-7014(a)(1)) and "commercial computer software +documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. +1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 +through 227.7202-4 (June 1995), all U.S. Government End Users +acquire Covered Software with only those rights set forth herein. +This U.S. Government Rights clause is in lieu of, and supersedes, +any other FAR, DFAR, or other clause or provision that addresses +Government rights in computer software under this License. + +9. MISCELLANEOUS. + +This License represents the complete agreement concerning subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the +extent necessary to make it enforceable. This License shall be +governed by the law of the jurisdiction specified in a notice +contained within the Original Software (except to the extent +applicable law, if any, provides otherwise), excluding such +jurisdiction's conflict-of-law provisions. Any litigation +relating to this License shall be subject to the jurisdiction of +the courts located in the jurisdiction and venue specified in a +notice contained within the Original Software, with the losing +party responsible for costs, including, without limitation, court +costs and reasonable attorneys' fees and expenses. The +application of the United Nations Convention on Contracts for the +International Sale of Goods is expressly excluded. Any law or +regulation which provides that the language of a contract shall +be construed against the drafter shall not apply to this License. +You agree that You alone are responsible for compliance with the +United States export administration regulations (and the export +control laws and regulation of any other countries) when You use, +distribute or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is +responsible for claims and damages arising, directly or +indirectly, out of its utilization of rights under this License +and You agree to work with Initial Developer and Contributors to +distribute such responsibility on an equitable basis. Nothing +herein is intended or shall be deemed to constitute any admission +of liability. + + + + +%% The following software may be included in this product: + wsdl4j-1.6.1.jar + +Use of any of this software is governed by the terms of the license below: + +Common Public License Version 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are +distributed by that particular Contributor. A Contribution 'originates' from a +Contributor if it was added to the Program by such Contributor itself or anyone +acting on such Contributor's behalf. Contributions do not include additions to +the Program which: (i) are separate modules of software distributed in +conjunction with the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +distribute and sublicense the Contribution of such Contributor, if any, and such +derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed +Patents to make, use, sell, offer to sell, import and otherwise transfer the +Contribution of such Contributor, if any, in source code and object code form. +This patent license shall apply to the combination of the Contribution and the +Program if, at the time the Contribution is added by the Contributor, such +addition of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other combinations +which include the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses +to its Contributions set forth herein, no assurances are provided by any +Contributor that the Program does not infringe the patent or other intellectual +property rights of any other entity. Each Contributor disclaims any liability to +Recipient for claims brought by any other entity based on infringement of +intellectual property rights or otherwise. As a condition to exercising the +rights and licenses granted hereunder, each Recipient hereby assumes sole +responsibility to secure any other intellectual property rights needed, if any. +For example, if a third party patent license is required to allow Recipient to +distribute the Program, it is Recipient's responsibility to acquire that license +before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright license set +forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its +own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title and +non-infringement, and implied warranties or conditions of merchantability and +fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for +damages, including direct, indirect, special, incidental and consequential +damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are offered +by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable manner on or +through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the +Program. + +Each Contributor must identify itself as the originator of its Contribution, if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, if +a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages +and costs (collectively "Losses") arising from claims, lawsuits and other legal +actions brought by a third party against the Indemnified Contributor to the +extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor to +control, and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may participate in +any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If that +Commercial Contributor then makes performance claims, or offers warranties +related to Product X, those performance claims and warranties are such +Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its exercise of +rights under this Agreement, including but not limited to the risks and costs of +program errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable +law, it shall not affect the validity or enforceability of the remainder of the +terms of this Agreement, and without further action by the parties hereto, such +provision shall be reformed to the minimum extent necessary to make such +provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect to +a patent applicable to software (including a cross-claim or counterclaim in a +lawsuit), then any patent licenses granted by that Contributor to such Recipient +under this Agreement shall terminate as of the date such litigation is filed. In +addition, if Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue and +survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to serve +as the Agreement Steward to a suitable separate entity. Each new version of the +Agreement will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the Agreement +is published, Contributor may elect to distribute the Program (including its +Contributions) under the new version. Except as expressly stated in Sections +2(a) and 2(b) above, Recipient receives no rights or licenses to the +intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. Added: usertools/swift-ec2-boot/bin/ec2-activate-license =================================================================== --- usertools/swift-ec2-boot/bin/ec2-activate-license (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-activate-license 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ActivateLicense "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-activate-license ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-activate-license.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-activate-license.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-activate-license.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ActivateLicense %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-add-group =================================================================== --- usertools/swift-ec2-boot/bin/ec2-add-group (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-add-group 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AddGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-add-group ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-add-group.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-add-group.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-add-group.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AddGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-add-keypair =================================================================== --- usertools/swift-ec2-boot/bin/ec2-add-keypair (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-add-keypair 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-add-keypair ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-add-keypair.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-add-keypair.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-add-keypair.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-allocate-address =================================================================== --- usertools/swift-ec2-boot/bin/ec2-allocate-address (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-allocate-address 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AllocateAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-allocate-address ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-allocate-address.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-allocate-address.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-allocate-address.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AllocateAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-associate-address =================================================================== --- usertools/swift-ec2-boot/bin/ec2-associate-address (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-associate-address 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AssociateAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-associate-address ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-associate-address.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-associate-address.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-associate-address.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AssociateAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options =================================================================== --- usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AssociateDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-associate-dhcp-options.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AssociateDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-associate-route-table =================================================================== --- usertools/swift-ec2-boot/bin/ec2-associate-route-table (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-associate-route-table 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AssociateRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-associate-route-table ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-associate-route-table.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-associate-route-table.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-associate-route-table.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AssociateRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AttachInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-attach-internet-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AttachInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-attach-volume =================================================================== --- usertools/swift-ec2-boot/bin/ec2-attach-volume (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-attach-volume 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AttachVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-attach-volume ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-attach-volume.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-attach-volume.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-attach-volume.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AttachVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AttachVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-attach-vpn-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AttachVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-authorize =================================================================== --- usertools/swift-ec2-boot/bin/ec2-authorize (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-authorize 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AuthorizeGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-authorize ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-authorize.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-authorize.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-authorize.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AuthorizeGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-bundle-instance =================================================================== --- usertools/swift-ec2-boot/bin/ec2-bundle-instance (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-bundle-instance 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd BundleInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-bundle-instance ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-bundle-instance.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-bundle-instance.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-bundle-instance.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" BundleInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CancelBundleTask "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cancel-bundle-task.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CancelBundleTask %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CancelConversionTask "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cancel-conversion-task.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CancelConversionTask %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CancelSpotInstanceRequests "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cancel-spot-instance-requests.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CancelSpotInstanceRequests %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +# Copyright 2006-2009 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +# This script "concentrates" all of our Java invocations into a single location +# for maintainability. + +# 'Globals' +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:-EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +LIBDIR="${EC2_HOME}/lib" + +# Check our Java env +JAVA_HOME=${JAVA_HOME:?JAVA_HOME is not set} + +# If a classpath exists preserve it +CP="${CLASSPATH}" + +# Check for cygwin bash so we use the correct path separator +case "`uname`" in + CYGWIN*) cygwin=true;; +esac + +# ---- Start of Cygwin test ---- + +cygprop="" + +# And add our own libraries too +if [ "${cygwin}" == "true" ] ; then + cygprop="-Dec2.cygwin=true" + + # Make sure that when using Cygwin we use Unix + # Semantics for EC2_HOME + if [ -n "${EC2_HOME}" ] + then + if echo "${EC2_HOME}"|egrep -q '[[:alpha:]]:\\' + then + echo + echo " *INFO* Your EC2_HOME variable needs to specified as a Unix path under Cygwin" + echo + fi + fi + +# ---- End of Cygwin Tests ---- + + for jar in "${LIBDIR}"/*.jar ; do + cygjar=$(cygpath -w -a "${jar}") + CP="${CP};${cygjar}" + done +else + for jar in "${LIBDIR}"/*.jar ; do + CP="${CP}:${jar}" + done +fi + +CMD=$1 +shift +"${JAVA_HOME}/bin/java" ${EC2_JVM_ARGS} ${cygprop} -classpath "${CP}" "com.amazon.aes.webservices.client.cmd.${CMD}" $EC2_DEFAULT_ARGS "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-cmd ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-cmd.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-cmd.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-cmd.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,86 @@ + at echo off + +setlocal + +REM Copyright 2006-2009 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_JAVA_HOME=_%JAVA_HOME% +set CHK_EC2_HOME=_%EC2_HOME% + +if "%CHK_EC2_HOME:"=%" == "_" goto EC2_HOME_MISSING +if "%CHK_JAVA_HOME:"=%" == "_" goto JAVA_HOME_MISSING + +REM If a classpath exists preserve it +SET CP="%CLASSPATH%" + +REM Brute force +set CP=%CP%;%EC2_HOME%\lib\EC2CltJavaClient-1.0.jar +set CP=%CP%;%EC2_HOME%\lib\EC2ConversionLib-1.0.jar +set CP=%CP%;%EC2_HOME%\lib\EC2WsdlJavaClient-1.0.jar +set CP=%CP%;%EC2_HOME%\lib\XmlSchema-1.4.5.jar +set CP=%CP%;%EC2_HOME%\lib\activation-1.1.jar +set CP=%CP%;%EC2_HOME%\lib\bcprov-jdk15-145.jar +set CP=%CP%;%EC2_HOME%\lib\commons-cli-1.1.jar +set CP=%CP%;%EC2_HOME%\lib\commons-codec-1.3.jar +set CP=%CP%;%EC2_HOME%\lib\commons-discovery.jar +set CP=%CP%;%EC2_HOME%\lib\commons-httpclient-3.1.jar +set CP=%CP%;%EC2_HOME%\lib\commons-logging-adapters-1.1.1.jar +set CP=%CP%;%EC2_HOME%\lib\commons-logging-api-1.1.1.jar +set CP=%CP%;%EC2_HOME%\lib\ec2-api-tools-1.5.0.1-2011.11.30.jar +set CP=%CP%;%EC2_HOME%\lib\j2ee_mail.jar +set CP=%CP%;%EC2_HOME%\lib\java-xmlbuilder-0.4-SNAPSHOT.jar +set CP=%CP%;%EC2_HOME%\lib\jaxb-api.jar +set CP=%CP%;%EC2_HOME%\lib\jaxb-impl.jar +set CP=%CP%;%EC2_HOME%\lib\jaxws-api.jar +set CP=%CP%;%EC2_HOME%\lib\jdom.jar +set CP=%CP%;%EC2_HOME%\lib\jets3t-0.8.0.jar +set CP=%CP%;%EC2_HOME%\lib\log4j-1.2.14.jar +set CP=%CP%;%EC2_HOME%\lib\serializer.jar +set CP=%CP%;%EC2_HOME%\lib\wsdl4j.jar +set CP=%CP%;%EC2_HOME%\lib\wss4j-1.5.3.jar +set CP=%CP%;%EC2_HOME%\lib\wstx-asl-3.2.7.jar +set CP=%CP%;%EC2_HOME%\lib\xalan.jar +set CP=%CP%;%EC2_HOME%\lib\xercesImpl.jar +set CP=%CP%;%EC2_HOME%\lib\xfire-all-1.2.6.jar +set CP=%CP%;%EC2_HOME%\lib\xfire-jsr181-api-1.0-M1.jar +set CP=%CP%;%EC2_HOME%\lib\xml-apis.jar +set CP=%CP%;%EC2_HOME%\lib\xmlsec.jar + +REM Grab the class name +SET CMD=%1 + +REM SHIFT doesn't affect %* so we need this clunky hack +SET ARGV=%2 +SHIFT +SHIFT +:ARGV_LOOP +IF (%1) == () GOTO ARGV_DONE +REM Get around strange quoting bug +SET ARG=%1 +SET ARG=%ARG:"=% +SET ARGV=%ARGV% "%ARG%" +SHIFT +GOTO ARGV_LOOP +:ARGV_DONE + +"%JAVA_HOME:"=%"\bin\java %EC2_JVM_ARGS% -classpath "%CP:"=%" "com.amazon.aes.webservices.client.cmd.%CMD%" %EC2_DEFAULT_ARGS% %ARGV% +goto DONE + +:JAVA_HOME_MISSING +echo JAVA_HOME is not set +exit /b 1 + +:EC2_HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE +endlocal Added: usertools/swift-ec2-boot/bin/ec2-confirm-product-instance =================================================================== --- usertools/swift-ec2-boot/bin/ec2-confirm-product-instance (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-confirm-product-instance 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ConfirmProductInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-confirm-product-instance ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-confirm-product-instance.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-confirm-product-instance.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-confirm-product-instance.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ConfirmProductInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-customer-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-customer-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-customer-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateCustomerGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-customer-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-customer-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-customer-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-customer-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateCustomerGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-dhcp-options =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-dhcp-options (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-dhcp-options 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-dhcp-options ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-dhcp-options.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-dhcp-options.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-dhcp-options.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-group =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-group (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-group 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AddGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-group ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-group.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-group.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-group.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AddGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-image =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-image (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-image 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-image ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-image.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-image.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-image.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-internet-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-internet-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-internet-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-internet-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-internet-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-internet-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-internet-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-keypair =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-keypair (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-keypair 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-keypair ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-keypair.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-keypair.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-keypair.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-network-acl =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-network-acl (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-network-acl 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateNetworkAcl "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-network-acl ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateNetworkAclEntry "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-network-acl-entry.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateNetworkAclEntry %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-network-acl.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-network-acl.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-network-acl.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateNetworkAcl %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-placement-group =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-placement-group (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-placement-group 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreatePlacementGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-placement-group ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-placement-group.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-placement-group.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-placement-group.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreatePlacementGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-route =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-route (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-route 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateRoute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-route ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-route-table =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-route-table (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-route-table 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-route-table ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-route-table.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-route-table.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-route-table.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-route.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-route.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-route.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateRoute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-snapshot =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-snapshot (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-snapshot 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateSnapshot "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-snapshot ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-snapshot.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-snapshot.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-snapshot.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateSnapshot %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateSpotDatafeedSubscription "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-spot-datafeed-subscription.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateSpotDatafeedSubscription %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-subnet =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-subnet (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-subnet 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateSubnet "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-subnet ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-subnet.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-subnet.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-subnet.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateSubnet %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-tags =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-tags (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-tags 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-tags ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-tags.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-tags.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-tags.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-volume =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-volume (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-volume 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-volume ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-volume.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-volume.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-volume.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-vpc =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-vpc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-vpc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVpc "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-vpc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-vpc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-vpc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-vpc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVpc %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-vpn-connection =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-vpn-connection (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-vpn-connection 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVpnConnection "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-vpn-connection ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-vpn-connection.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-vpn-connection.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-vpn-connection.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVpnConnection %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-create-vpn-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-deactivate-license =================================================================== --- usertools/swift-ec2-boot/bin/ec2-deactivate-license (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-deactivate-license 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeactivateLicense "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-deactivate-license ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-deactivate-license.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-deactivate-license.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-deactivate-license.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeactivateLicense %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteCustomerGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-customer-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteCustomerGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-dhcp-options.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-disk-image =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-disk-image (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-disk-image 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteDiskImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-disk-image ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-disk-image.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-disk-image.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-disk-image.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteDiskImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-group =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-group (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-group 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-group ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-group.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-group.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-group.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-internet-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-keypair =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-keypair (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-keypair 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-keypair ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-keypair.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-keypair.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-keypair.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-network-acl =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-network-acl (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-network-acl 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteNetworkAcl "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-network-acl ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteNetworkAclEntry "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-network-acl-entry.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteNetworkAclEntry %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-network-acl.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-network-acl.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-network-acl.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteNetworkAcl %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-placement-group =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-placement-group (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-placement-group 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeletePlacementGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-placement-group ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-placement-group.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-placement-group.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-placement-group.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeletePlacementGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-route =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-route (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-route 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteRoute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-route ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-route-table =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-route-table (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-route-table 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-route-table ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-route-table.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-route-table.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-route-table.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-route.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-route.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-route.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteRoute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-snapshot =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-snapshot (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-snapshot 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteSnapshot "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-snapshot ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-snapshot.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-snapshot.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-snapshot.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteSnapshot %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteSpotDatafeedSubscription "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-spot-datafeed-subscription.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteSpotDatafeedSubscription %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-subnet =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-subnet (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-subnet 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteSubnet "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-subnet ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-subnet.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-subnet.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-subnet.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteSubnet %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-tags =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-tags (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-tags 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-tags ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-tags.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-tags.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-tags.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-volume =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-volume (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-volume 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-volume ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-volume.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-volume.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-volume.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-vpc =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-vpc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-vpc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVpc "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-vpc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-vpc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-vpc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-vpc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVpc %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVpnConnection "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-vpn-connection.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVpnConnection %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-delete-vpn-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-deregister =================================================================== --- usertools/swift-ec2-boot/bin/ec2-deregister (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-deregister 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeregisterImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-deregister ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-deregister.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-deregister.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-deregister.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeregisterImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-addresses =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-addresses (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-addresses 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeAddresses "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-addresses ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-addresses.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-addresses.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-addresses.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeAddresses %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-availability-zones =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-availability-zones (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-availability-zones 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeAvailabilityZones "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-availability-zones ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-availability-zones.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-availability-zones.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-availability-zones.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeAvailabilityZones %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeBundleTasks "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-bundle-tasks.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeBundleTasks %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeConversionTasks "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-conversion-tasks.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeConversionTasks %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeCustomerGateways "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-customer-gateways.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeCustomerGateways %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-dhcp-options.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-group =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-group (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-group 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeGroups "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-group ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-group.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-group.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-group.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeGroups %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-image-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-image-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-image-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-image-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-image-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-image-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-image-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-images =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-images (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-images 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeImages "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-images ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-images.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-images.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-images.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeImages %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-instance-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-instance-status =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-instance-status (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-instance-status 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstanceStatus "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-instance-status ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-instance-status.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-instance-status.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-instance-status.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstanceStatus %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInternetGateways "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-internet-gateways.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInternetGateways %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-keypairs =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-keypairs (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-keypairs 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeKeyPairs "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-keypairs ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-keypairs.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-keypairs.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-keypairs.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeKeyPairs %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-licenses =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-licenses (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-licenses 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeLicenses "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-licenses ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-licenses.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-licenses.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-licenses.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeLicenses %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-network-acls =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-network-acls (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-network-acls 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeNetworkAcls "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-network-acls ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-network-acls.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-network-acls.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-network-acls.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeNetworkAcls %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-placement-groups =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-placement-groups (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-placement-groups 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribePlacementGroups "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-placement-groups ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-placement-groups.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-placement-groups.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-placement-groups.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribePlacementGroups %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-regions =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-regions (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-regions 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeRegions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-regions ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-regions.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-regions.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-regions.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeRegions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeReservedInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeReservedInstancesOfferings "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances-offerings.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeReservedInstancesOfferings %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-reserved-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeReservedInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-route-tables =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-route-tables (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-route-tables 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeRouteTables "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-route-tables ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-route-tables.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-route-tables.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-route-tables.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeRouteTables %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSnapshotAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-snapshot-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSnapshotAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-snapshots =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-snapshots (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-snapshots 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSnapshots "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-snapshots ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-snapshots.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-snapshots.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-snapshots.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSnapshots %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSpotDatafeedSubscription "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-spot-datafeed-subscription.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSpotDatafeedSubscription %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSpotInstanceRequests "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-spot-instance-requests.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSpotInstanceRequests %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSpotPriceHistory "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-spot-price-history.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSpotPriceHistory %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-subnets =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-subnets (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-subnets 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSubnets "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-subnets ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-subnets.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-subnets.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-subnets.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSubnets %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-tags =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-tags (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-tags 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-tags ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-tags.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-tags.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-tags.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-volumes =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-volumes (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-volumes 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVolumes "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-volumes ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-volumes.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-volumes.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-volumes.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVolumes %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-vpcs =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-vpcs (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-vpcs 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVpcs "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-vpcs ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-vpcs.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-vpcs.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-vpcs.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVpcs %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVpnConnections "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-vpn-connections.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVpnConnections %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVpnGateways "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-describe-vpn-gateways.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVpnGateways %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DetachInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-detach-internet-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DetachInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-detach-volume =================================================================== --- usertools/swift-ec2-boot/bin/ec2-detach-volume (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-detach-volume 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DetachVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-detach-volume ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-detach-volume.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-detach-volume.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-detach-volume.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DetachVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway =================================================================== --- usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DetachVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-detach-vpn-gateway.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DetachVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-disassociate-address =================================================================== --- usertools/swift-ec2-boot/bin/ec2-disassociate-address (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-disassociate-address 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DisassociateAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-disassociate-address ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-disassociate-address.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-disassociate-address.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-disassociate-address.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DisassociateAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-disassociate-route-table =================================================================== --- usertools/swift-ec2-boot/bin/ec2-disassociate-route-table (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-disassociate-route-table 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DisassociateRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-disassociate-route-table ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-disassociate-route-table.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-disassociate-route-table.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-disassociate-route-table.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DisassociateRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-fingerprint-key =================================================================== --- usertools/swift-ec2-boot/bin/ec2-fingerprint-key (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-fingerprint-key 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd FingerprintKey "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-fingerprint-key ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-fingerprint-key.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-fingerprint-key.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-fingerprint-key.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" FingerprintKey %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-get-console-output =================================================================== --- usertools/swift-ec2-boot/bin/ec2-get-console-output (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-get-console-output 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd GetConsoleOutput "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-get-console-output ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-get-console-output.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-get-console-output.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-get-console-output.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" GetConsoleOutput %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-get-password =================================================================== --- usertools/swift-ec2-boot/bin/ec2-get-password (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-get-password 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd GetPassword "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-get-password ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-get-password.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-get-password.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-get-password.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" GetPassword %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-import-instance =================================================================== --- usertools/swift-ec2-boot/bin/ec2-import-instance (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-import-instance 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-import-instance ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-import-instance.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-import-instance.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-import-instance.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-import-keypair =================================================================== --- usertools/swift-ec2-boot/bin/ec2-import-keypair (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-import-keypair 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-import-keypair ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-import-keypair.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-import-keypair.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-import-keypair.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-import-volume =================================================================== --- usertools/swift-ec2-boot/bin/ec2-import-volume (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-import-volume 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-import-volume ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-import-volume.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-import-volume.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-import-volume.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-migrate-image =================================================================== --- usertools/swift-ec2-boot/bin/ec2-migrate-image (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-migrate-image 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd MigrateBundle "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-migrate-image ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-migrate-image.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-migrate-image.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-migrate-image.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" MigrateBundle %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-modify-image-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-modify-image-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-modify-image-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifyImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-modify-image-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-modify-image-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-modify-image-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-modify-image-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifyImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifyInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-modify-instance-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifyInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifySnapshotAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-modify-snapshot-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifySnapshotAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-monitor-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-monitor-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-monitor-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd MonitorInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-monitor-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-monitor-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-monitor-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-monitor-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" MonitorInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering =================================================================== --- usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd PurchaseReservedInstancesOffering "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-purchase-reserved-instances-offering.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" PurchaseReservedInstancesOffering %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-reboot-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reboot-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reboot-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RebootInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-reboot-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-reboot-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reboot-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reboot-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RebootInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-register =================================================================== --- usertools/swift-ec2-boot/bin/ec2-register (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-register 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RegisterImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-register ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-register.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-register.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-register.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RegisterImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-release-address =================================================================== --- usertools/swift-ec2-boot/bin/ec2-release-address (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-release-address 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReleaseAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-release-address ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-release-address.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-release-address.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-release-address.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReleaseAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceNetworkAclAssociation "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-network-acl-association.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceNetworkAclAssociation %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceNetworkAclEntry "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-network-acl-entry.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceNetworkAclEntry %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-replace-route =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-route (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-route 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceRoute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-replace-route ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-replace-route-table-association =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-route-table-association (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-route-table-association 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceRouteTableAssociation "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-replace-route-table-association ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-replace-route-table-association.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-route-table-association.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-route-table-association.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceRouteTableAssociation %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-replace-route.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-replace-route.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-replace-route.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceRoute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-request-spot-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-request-spot-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-request-spot-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RequestSpotInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-request-spot-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-request-spot-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-request-spot-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-request-spot-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RequestSpotInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-reset-image-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reset-image-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reset-image-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-reset-image-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-reset-image-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reset-image-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reset-image-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reset-instance-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetSnapshotAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-reset-snapshot-attribute.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetSnapshotAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-resume-import =================================================================== --- usertools/swift-ec2-boot/bin/ec2-resume-import (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-resume-import 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResumeImport "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-resume-import ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-resume-import.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-resume-import.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-resume-import.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResumeImport %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-revoke =================================================================== --- usertools/swift-ec2-boot/bin/ec2-revoke (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-revoke 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RevokeGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-revoke ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-revoke.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-revoke.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-revoke.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RevokeGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-run-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-run-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-run-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RunInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-run-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-run-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-run-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-run-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RunInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-start-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-start-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-start-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd StartInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-start-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-start-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-start-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-start-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" StartInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-stop-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-stop-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-stop-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd StopInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-stop-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-stop-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-stop-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-stop-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" StopInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-terminate-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-terminate-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-terminate-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd TerminateInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-terminate-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-terminate-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-terminate-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-terminate-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" TerminateInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-unmonitor-instances =================================================================== --- usertools/swift-ec2-boot/bin/ec2-unmonitor-instances (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-unmonitor-instances 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd UnmonitorInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-unmonitor-instances ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-unmonitor-instances.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-unmonitor-instances.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-unmonitor-instances.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" UnmonitorInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-upload-disk-image =================================================================== --- usertools/swift-ec2-boot/bin/ec2-upload-disk-image (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-upload-disk-image 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd UploadDiskImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-upload-disk-image ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-upload-disk-image.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-upload-disk-image.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-upload-disk-image.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" UploadDiskImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2-version =================================================================== --- usertools/swift-ec2-boot/bin/ec2-version (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-version 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ShowVersion "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2-version ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2-version.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2-version.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2-version.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ShowVersion %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2actlic =================================================================== --- usertools/swift-ec2-boot/bin/ec2actlic (rev 0) +++ usertools/swift-ec2-boot/bin/ec2actlic 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ActivateLicense "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2actlic ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2actlic.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2actlic.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2actlic.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ActivateLicense %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addcgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2addcgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addcgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateCustomerGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addcgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addcgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addcgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addcgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateCustomerGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2adddopt =================================================================== --- usertools/swift-ec2-boot/bin/ec2adddopt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2adddopt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2adddopt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2adddopt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2adddopt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2adddopt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addgrp =================================================================== --- usertools/swift-ec2-boot/bin/ec2addgrp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addgrp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AddGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addgrp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addgrp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addgrp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addgrp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AddGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addigw =================================================================== --- usertools/swift-ec2-boot/bin/ec2addigw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addigw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addigw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addigw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addigw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addigw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addkey =================================================================== --- usertools/swift-ec2-boot/bin/ec2addkey (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addkey 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addkey ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addkey.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addkey.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addkey.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addnacl =================================================================== --- usertools/swift-ec2-boot/bin/ec2addnacl (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addnacl 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateNetworkAcl "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addnacl ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addnacl.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addnacl.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addnacl.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateNetworkAcl %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addnae =================================================================== --- usertools/swift-ec2-boot/bin/ec2addnae (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addnae 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateNetworkAclEntry "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addnae ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addnae.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addnae.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addnae.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateNetworkAclEntry %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addpgrp =================================================================== --- usertools/swift-ec2-boot/bin/ec2addpgrp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addpgrp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreatePlacementGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addpgrp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addpgrp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addpgrp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addpgrp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreatePlacementGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addrt =================================================================== --- usertools/swift-ec2-boot/bin/ec2addrt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addrt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateRoute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addrt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addrt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addrt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addrt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateRoute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addrtb =================================================================== --- usertools/swift-ec2-boot/bin/ec2addrtb (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addrtb 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addrtb ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addrtb.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addrtb.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addrtb.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addsds =================================================================== --- usertools/swift-ec2-boot/bin/ec2addsds (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addsds 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateSpotDatafeedSubscription "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addsds ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addsds.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addsds.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addsds.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateSpotDatafeedSubscription %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addsnap =================================================================== --- usertools/swift-ec2-boot/bin/ec2addsnap (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addsnap 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateSnapshot "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addsnap ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addsnap.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addsnap.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addsnap.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateSnapshot %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addsubnet =================================================================== --- usertools/swift-ec2-boot/bin/ec2addsubnet (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addsubnet 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateSubnet "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addsubnet ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addsubnet.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addsubnet.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addsubnet.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateSubnet %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addtag =================================================================== --- usertools/swift-ec2-boot/bin/ec2addtag (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addtag 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addtag ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addtag.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addtag.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addtag.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addvgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addvgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addvgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addvol =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvol (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvol 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addvol ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addvol.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvol.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvol.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addvpc =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvpc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvpc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVpc "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addvpc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addvpc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvpc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvpc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVpc %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2addvpn =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvpn (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvpn 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateVpnConnection "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2addvpn ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2addvpn.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2addvpn.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2addvpn.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateVpnConnection %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2allocaddr =================================================================== --- usertools/swift-ec2-boot/bin/ec2allocaddr (rev 0) +++ usertools/swift-ec2-boot/bin/ec2allocaddr 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AllocateAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2allocaddr ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2allocaddr.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2allocaddr.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2allocaddr.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AllocateAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2assocaddr =================================================================== --- usertools/swift-ec2-boot/bin/ec2assocaddr (rev 0) +++ usertools/swift-ec2-boot/bin/ec2assocaddr 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AssociateAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2assocaddr ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2assocaddr.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2assocaddr.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2assocaddr.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AssociateAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2assocdopt =================================================================== --- usertools/swift-ec2-boot/bin/ec2assocdopt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2assocdopt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AssociateDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2assocdopt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2assocdopt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2assocdopt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2assocdopt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AssociateDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2assocrtb =================================================================== --- usertools/swift-ec2-boot/bin/ec2assocrtb (rev 0) +++ usertools/swift-ec2-boot/bin/ec2assocrtb 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AssociateRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2assocrtb ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2assocrtb.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2assocrtb.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2assocrtb.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AssociateRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2attigw =================================================================== --- usertools/swift-ec2-boot/bin/ec2attigw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2attigw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AttachInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2attigw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2attigw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2attigw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2attigw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AttachInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2attvgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2attvgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2attvgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AttachVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2attvgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2attvgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2attvgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2attvgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AttachVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2attvol =================================================================== --- usertools/swift-ec2-boot/bin/ec2attvol (rev 0) +++ usertools/swift-ec2-boot/bin/ec2attvol 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AttachVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2attvol ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2attvol.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2attvol.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2attvol.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AttachVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2auth =================================================================== --- usertools/swift-ec2-boot/bin/ec2auth (rev 0) +++ usertools/swift-ec2-boot/bin/ec2auth 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd AuthorizeGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2auth ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2auth.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2auth.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2auth.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" AuthorizeGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2bundle =================================================================== --- usertools/swift-ec2-boot/bin/ec2bundle (rev 0) +++ usertools/swift-ec2-boot/bin/ec2bundle 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd BundleInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2bundle ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2bundle.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2bundle.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2bundle.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" BundleInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2cbun =================================================================== --- usertools/swift-ec2-boot/bin/ec2cbun (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cbun 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CancelBundleTask "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2cbun ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2cbun.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2cbun.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cbun.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CancelBundleTask %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2cct =================================================================== --- usertools/swift-ec2-boot/bin/ec2cct (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cct 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CancelConversionTask "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2cct ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2cct.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2cct.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cct.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CancelConversionTask %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2cim =================================================================== --- usertools/swift-ec2-boot/bin/ec2cim (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cim 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2cim ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2cim.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2cim.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cim.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2cpi =================================================================== --- usertools/swift-ec2-boot/bin/ec2cpi (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cpi 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ConfirmProductInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2cpi ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2cpi.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2cpi.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2cpi.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ConfirmProductInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2csir =================================================================== --- usertools/swift-ec2-boot/bin/ec2csir (rev 0) +++ usertools/swift-ec2-boot/bin/ec2csir 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CancelSpotInstanceRequests "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2csir ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2csir.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2csir.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2csir.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CancelSpotInstanceRequests %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2daddr =================================================================== --- usertools/swift-ec2-boot/bin/ec2daddr (rev 0) +++ usertools/swift-ec2-boot/bin/ec2daddr 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeAddresses "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2daddr ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2daddr.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2daddr.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2daddr.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeAddresses %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2datt =================================================================== --- usertools/swift-ec2-boot/bin/ec2datt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2datt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2datt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2datt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2datt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2datt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2daz =================================================================== --- usertools/swift-ec2-boot/bin/ec2daz (rev 0) +++ usertools/swift-ec2-boot/bin/ec2daz 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeAvailabilityZones "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2daz ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2daz.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2daz.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2daz.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeAvailabilityZones %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dbun =================================================================== --- usertools/swift-ec2-boot/bin/ec2dbun (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dbun 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeBundleTasks "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dbun ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dbun.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dbun.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dbun.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeBundleTasks %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dcgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2dcgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dcgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeCustomerGateways "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dcgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dcgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dcgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dcgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeCustomerGateways %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dct =================================================================== --- usertools/swift-ec2-boot/bin/ec2dct (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dct 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeConversionTasks "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dct ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dct.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dct.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dct.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeConversionTasks %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ddi =================================================================== --- usertools/swift-ec2-boot/bin/ec2ddi (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ddi 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteDiskImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ddi ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ddi.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ddi.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ddi.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteDiskImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ddopt =================================================================== --- usertools/swift-ec2-boot/bin/ec2ddopt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ddopt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ddopt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ddopt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ddopt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ddopt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2deactlic =================================================================== --- usertools/swift-ec2-boot/bin/ec2deactlic (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deactlic 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeactivateLicense "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2deactlic ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2deactlic.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2deactlic.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deactlic.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeactivateLicense %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delcgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2delcgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delcgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteCustomerGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delcgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delcgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delcgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delcgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteCustomerGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2deldopt =================================================================== --- usertools/swift-ec2-boot/bin/ec2deldopt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deldopt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteDhcpOptions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2deldopt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2deldopt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2deldopt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deldopt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteDhcpOptions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delgrp =================================================================== --- usertools/swift-ec2-boot/bin/ec2delgrp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delgrp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delgrp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delgrp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delgrp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delgrp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2deligw =================================================================== --- usertools/swift-ec2-boot/bin/ec2deligw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deligw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2deligw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2deligw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2deligw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deligw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delkey =================================================================== --- usertools/swift-ec2-boot/bin/ec2delkey (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delkey 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delkey ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delkey.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delkey.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delkey.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delnacl =================================================================== --- usertools/swift-ec2-boot/bin/ec2delnacl (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delnacl 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteNetworkAcl "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delnacl ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delnacl.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delnacl.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delnacl.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteNetworkAcl %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delnae =================================================================== --- usertools/swift-ec2-boot/bin/ec2delnae (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delnae 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteNetworkAclEntry "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delnae ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delnae.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delnae.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delnae.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteNetworkAclEntry %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delpgrp =================================================================== --- usertools/swift-ec2-boot/bin/ec2delpgrp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delpgrp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeletePlacementGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delpgrp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delpgrp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delpgrp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delpgrp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeletePlacementGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delrt =================================================================== --- usertools/swift-ec2-boot/bin/ec2delrt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delrt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteRoute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delrt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delrt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delrt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delrt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteRoute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delrtb =================================================================== --- usertools/swift-ec2-boot/bin/ec2delrtb (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delrtb 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delrtb ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delrtb.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delrtb.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delrtb.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delsds =================================================================== --- usertools/swift-ec2-boot/bin/ec2delsds (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delsds 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteSpotDatafeedSubscription "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delsds ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delsds.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delsds.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delsds.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteSpotDatafeedSubscription %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delsnap =================================================================== --- usertools/swift-ec2-boot/bin/ec2delsnap (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delsnap 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteSnapshot "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delsnap ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delsnap.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delsnap.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delsnap.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteSnapshot %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delsubnet =================================================================== --- usertools/swift-ec2-boot/bin/ec2delsubnet (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delsubnet 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteSubnet "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delsubnet ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delsubnet.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delsubnet.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delsubnet.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteSubnet %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2deltag =================================================================== --- usertools/swift-ec2-boot/bin/ec2deltag (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deltag 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2deltag ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2deltag.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2deltag.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2deltag.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delvgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delvgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delvgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delvol =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvol (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvol 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delvol ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delvol.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvol.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvol.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delvpc =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvpc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvpc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVpc "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delvpc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delvpc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvpc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvpc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVpc %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2delvpn =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvpn (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvpn 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeleteVpnConnection "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2delvpn ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2delvpn.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2delvpn.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2delvpn.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeleteVpnConnection %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dereg =================================================================== --- usertools/swift-ec2-boot/bin/ec2dereg (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dereg 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DeregisterImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dereg ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dereg.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dereg.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dereg.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DeregisterImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2detigw =================================================================== --- usertools/swift-ec2-boot/bin/ec2detigw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2detigw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DetachInternetGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2detigw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2detigw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2detigw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2detigw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DetachInternetGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2detvgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2detvgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2detvgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DetachVpnGateway "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2detvgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2detvgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2detvgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2detvgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DetachVpnGateway %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2detvol =================================================================== --- usertools/swift-ec2-boot/bin/ec2detvol (rev 0) +++ usertools/swift-ec2-boot/bin/ec2detvol 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DetachVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2detvol ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2detvol.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2detvol.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2detvol.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DetachVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dgrp =================================================================== --- usertools/swift-ec2-boot/bin/ec2dgrp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dgrp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeGroups "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dgrp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dgrp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dgrp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dgrp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeGroups %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2diatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2diatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2diatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2diatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2diatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2diatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2diatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2digw =================================================================== --- usertools/swift-ec2-boot/bin/ec2digw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2digw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInternetGateways "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2digw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2digw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2digw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2digw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInternetGateways %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dim =================================================================== --- usertools/swift-ec2-boot/bin/ec2dim (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dim 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeImages "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dim ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dim.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dim.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dim.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeImages %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dimatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2dimatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dimatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dimatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dimatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dimatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dimatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2din =================================================================== --- usertools/swift-ec2-boot/bin/ec2din (rev 0) +++ usertools/swift-ec2-boot/bin/ec2din 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2din ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2din.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2din.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2din.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dinatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2dinatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dinatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dinatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dinatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dinatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dinatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dins =================================================================== --- usertools/swift-ec2-boot/bin/ec2dins (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dins 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeInstanceStatus "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dins ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dins.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dins.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dins.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeInstanceStatus %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2disaddr =================================================================== --- usertools/swift-ec2-boot/bin/ec2disaddr (rev 0) +++ usertools/swift-ec2-boot/bin/ec2disaddr 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DisassociateAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2disaddr ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2disaddr.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2disaddr.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2disaddr.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DisassociateAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2disrtb =================================================================== --- usertools/swift-ec2-boot/bin/ec2disrtb (rev 0) +++ usertools/swift-ec2-boot/bin/ec2disrtb 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DisassociateRouteTable "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2disrtb ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2disrtb.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2disrtb.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2disrtb.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DisassociateRouteTable %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dkey =================================================================== --- usertools/swift-ec2-boot/bin/ec2dkey (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dkey 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeKeyPairs "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dkey ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dkey.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dkey.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dkey.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeKeyPairs %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dlic =================================================================== --- usertools/swift-ec2-boot/bin/ec2dlic (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dlic 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeLicenses "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dlic ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dlic.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dlic.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dlic.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeLicenses %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dnacl =================================================================== --- usertools/swift-ec2-boot/bin/ec2dnacl (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dnacl 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeNetworkAcls "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dnacl ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dnacl.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dnacl.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dnacl.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeNetworkAcls %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dpgrp =================================================================== --- usertools/swift-ec2-boot/bin/ec2dpgrp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dpgrp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribePlacementGroups "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dpgrp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dpgrp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dpgrp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dpgrp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribePlacementGroups %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dre =================================================================== --- usertools/swift-ec2-boot/bin/ec2dre (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dre 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeRegions "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dre ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dre.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dre.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dre.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeRegions %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dri =================================================================== --- usertools/swift-ec2-boot/bin/ec2dri (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dri 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeReservedInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dri ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dri.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dri.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dri.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeReservedInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2drio =================================================================== --- usertools/swift-ec2-boot/bin/ec2drio (rev 0) +++ usertools/swift-ec2-boot/bin/ec2drio 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeReservedInstancesOfferings "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2drio ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2drio.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2drio.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2drio.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeReservedInstancesOfferings %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2drtb =================================================================== --- usertools/swift-ec2-boot/bin/ec2drtb (rev 0) +++ usertools/swift-ec2-boot/bin/ec2drtb 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeRouteTables "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2drtb ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2drtb.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2drtb.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2drtb.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeRouteTables %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dsds =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsds (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsds 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSpotDatafeedSubscription "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dsds ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dsds.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsds.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsds.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSpotDatafeedSubscription %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dsir =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsir (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsir 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSpotInstanceRequests "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dsir ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dsir.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsir.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsir.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSpotInstanceRequests %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dsnap =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsnap (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsnap 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSnapshots "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dsnap ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dsnap.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsnap.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsnap.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSnapshots %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dsnapatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsnapatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsnapatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSnapshotAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dsnapatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dsnapatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsnapatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsnapatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSnapshotAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dsph =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsph (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsph 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSpotPriceHistory "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dsph ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dsph.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsph.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsph.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSpotPriceHistory %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dsubnet =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsubnet (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsubnet 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeSubnets "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dsubnet ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dsubnet.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dsubnet.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dsubnet.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeSubnets %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dtag =================================================================== --- usertools/swift-ec2-boot/bin/ec2dtag (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dtag 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dtag ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dtag.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dtag.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dtag.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dvgw =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvgw (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvgw 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVpnGateways "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dvgw ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dvgw.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvgw.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvgw.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVpnGateways %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dvol =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvol (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvol 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVolumes "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dvol ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dvol.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvol.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvol.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVolumes %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dvpc =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvpc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvpc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVpcs "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dvpc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dvpc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvpc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvpc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVpcs %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2dvpn =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvpn (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvpn 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd DescribeVpnConnections "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2dvpn ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2dvpn.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2dvpn.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2dvpn.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" DescribeVpnConnections %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2fp =================================================================== --- usertools/swift-ec2-boot/bin/ec2fp (rev 0) +++ usertools/swift-ec2-boot/bin/ec2fp 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd FingerprintKey "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2fp ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2fp.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2fp.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2fp.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" FingerprintKey %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2gcons =================================================================== --- usertools/swift-ec2-boot/bin/ec2gcons (rev 0) +++ usertools/swift-ec2-boot/bin/ec2gcons 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd GetConsoleOutput "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2gcons ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2gcons.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2gcons.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2gcons.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" GetConsoleOutput %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2gpass =================================================================== --- usertools/swift-ec2-boot/bin/ec2gpass (rev 0) +++ usertools/swift-ec2-boot/bin/ec2gpass 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd GetPassword "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2gpass ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2gpass.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2gpass.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2gpass.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" GetPassword %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ii =================================================================== --- usertools/swift-ec2-boot/bin/ec2ii (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ii 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ii ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ii.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ii.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ii.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2iin =================================================================== --- usertools/swift-ec2-boot/bin/ec2iin (rev 0) +++ usertools/swift-ec2-boot/bin/ec2iin 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportInstance "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2iin ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2iin.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2iin.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2iin.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportInstance %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ikey =================================================================== --- usertools/swift-ec2-boot/bin/ec2ikey (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ikey 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportKeyPair "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ikey ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ikey.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ikey.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ikey.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportKeyPair %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2iv =================================================================== --- usertools/swift-ec2-boot/bin/ec2iv (rev 0) +++ usertools/swift-ec2-boot/bin/ec2iv 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2iv ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2iv.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2iv.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2iv.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ivol =================================================================== --- usertools/swift-ec2-boot/bin/ec2ivol (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ivol 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ImportVolume "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ivol ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ivol.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ivol.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ivol.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ImportVolume %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2kill =================================================================== --- usertools/swift-ec2-boot/bin/ec2kill (rev 0) +++ usertools/swift-ec2-boot/bin/ec2kill 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd TerminateInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2kill ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2kill.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2kill.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2kill.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" TerminateInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2matt =================================================================== --- usertools/swift-ec2-boot/bin/ec2matt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2matt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifyImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2matt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2matt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2matt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2matt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifyImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2miatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2miatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2miatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifyInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2miatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2miatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2miatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2miatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifyInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2mim =================================================================== --- usertools/swift-ec2-boot/bin/ec2mim (rev 0) +++ usertools/swift-ec2-boot/bin/ec2mim 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd MigrateBundle "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2mim ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2mim.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2mim.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2mim.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" MigrateBundle %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2mimatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2mimatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2mimatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifyImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2mimatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2mimatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2mimatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2mimatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifyImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2min =================================================================== --- usertools/swift-ec2-boot/bin/ec2min (rev 0) +++ usertools/swift-ec2-boot/bin/ec2min 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd MonitorInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2min ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2min.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2min.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2min.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" MonitorInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2minatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2minatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2minatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifyInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2minatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2minatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2minatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2minatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifyInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2msnapatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2msnapatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2msnapatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ModifySnapshotAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2msnapatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2msnapatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2msnapatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2msnapatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ModifySnapshotAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2prio =================================================================== --- usertools/swift-ec2-boot/bin/ec2prio (rev 0) +++ usertools/swift-ec2-boot/bin/ec2prio 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd PurchaseReservedInstancesOffering "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2prio ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2prio.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2prio.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2prio.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" PurchaseReservedInstancesOffering %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ratt =================================================================== --- usertools/swift-ec2-boot/bin/ec2ratt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ratt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ratt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ratt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ratt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ratt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2reboot =================================================================== --- usertools/swift-ec2-boot/bin/ec2reboot (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reboot 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RebootInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2reboot ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2reboot.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2reboot.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reboot.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RebootInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2reg =================================================================== --- usertools/swift-ec2-boot/bin/ec2reg (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reg 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RegisterImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2reg ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2reg.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2reg.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reg.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RegisterImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2reladdr =================================================================== --- usertools/swift-ec2-boot/bin/ec2reladdr (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reladdr 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReleaseAddress "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2reladdr ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2reladdr.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2reladdr.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reladdr.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReleaseAddress %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2repnaclassoc =================================================================== --- usertools/swift-ec2-boot/bin/ec2repnaclassoc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2repnaclassoc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceNetworkAclAssociation "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2repnaclassoc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2repnaclassoc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2repnaclassoc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2repnaclassoc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceNetworkAclAssociation %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2repnae =================================================================== --- usertools/swift-ec2-boot/bin/ec2repnae (rev 0) +++ usertools/swift-ec2-boot/bin/ec2repnae 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceNetworkAclEntry "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2repnae ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2repnae.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2repnae.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2repnae.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceNetworkAclEntry %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2reprt =================================================================== --- usertools/swift-ec2-boot/bin/ec2reprt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reprt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceRoute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2reprt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2reprt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2reprt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reprt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceRoute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2reprtbassoc =================================================================== --- usertools/swift-ec2-boot/bin/ec2reprtbassoc (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reprtbassoc 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ReplaceRouteTableAssociation "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2reprtbassoc ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2reprtbassoc.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2reprtbassoc.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2reprtbassoc.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ReplaceRouteTableAssociation %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2revoke =================================================================== --- usertools/swift-ec2-boot/bin/ec2revoke (rev 0) +++ usertools/swift-ec2-boot/bin/ec2revoke 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RevokeGroup "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2revoke ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2revoke.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2revoke.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2revoke.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RevokeGroup %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2riatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2riatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2riatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2riatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2riatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2riatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2riatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2rim =================================================================== --- usertools/swift-ec2-boot/bin/ec2rim (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rim 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResumeImport "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2rim ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2rim.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2rim.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rim.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResumeImport %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2rimatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2rimatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rimatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetImageAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2rimatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2rimatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2rimatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rimatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetImageAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2rinatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2rinatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rinatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetInstanceAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2rinatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2rinatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2rinatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rinatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetInstanceAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2rsi =================================================================== --- usertools/swift-ec2-boot/bin/ec2rsi (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rsi 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RequestSpotInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2rsi ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2rsi.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2rsi.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rsi.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RequestSpotInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2rsnapatt =================================================================== --- usertools/swift-ec2-boot/bin/ec2rsnapatt (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rsnapatt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ResetSnapshotAttribute "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2rsnapatt ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2rsnapatt.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2rsnapatt.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2rsnapatt.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ResetSnapshotAttribute %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2run =================================================================== --- usertools/swift-ec2-boot/bin/ec2run (rev 0) +++ usertools/swift-ec2-boot/bin/ec2run 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd RunInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2run ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2run.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2run.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2run.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" RunInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2start =================================================================== --- usertools/swift-ec2-boot/bin/ec2start (rev 0) +++ usertools/swift-ec2-boot/bin/ec2start 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd StartInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2start ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2start.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2start.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2start.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" StartInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2stop =================================================================== --- usertools/swift-ec2-boot/bin/ec2stop (rev 0) +++ usertools/swift-ec2-boot/bin/ec2stop 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd StopInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2stop ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2stop.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2stop.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2stop.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" StopInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2tag =================================================================== --- usertools/swift-ec2-boot/bin/ec2tag (rev 0) +++ usertools/swift-ec2-boot/bin/ec2tag 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd CreateTags "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2tag ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2tag.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2tag.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2tag.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" CreateTags %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2udi =================================================================== --- usertools/swift-ec2-boot/bin/ec2udi (rev 0) +++ usertools/swift-ec2-boot/bin/ec2udi 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd UploadDiskImage "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2udi ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2udi.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2udi.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2udi.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" UploadDiskImage %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2umin =================================================================== --- usertools/swift-ec2-boot/bin/ec2umin (rev 0) +++ usertools/swift-ec2-boot/bin/ec2umin 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd UnmonitorInstances "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2umin ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2umin.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2umin.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2umin.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" UnmonitorInstances %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/bin/ec2ver =================================================================== --- usertools/swift-ec2-boot/bin/ec2ver (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ver 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +# Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +# License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +# IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +# language governing permissions and limitations under the License. + +__ZIP_PREFIX__EC2_HOME="${EC2_HOME:?EC2_HOME is not set}" +__RPM_PREFIX__EC2_HOME=/usr/local/aes/cmdline +"${EC2_HOME}"/bin/ec2-cmd ShowVersion "$@" Property changes on: usertools/swift-ec2-boot/bin/ec2ver ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-ec2-boot/bin/ec2ver.cmd =================================================================== --- usertools/swift-ec2-boot/bin/ec2ver.cmd (rev 0) +++ usertools/swift-ec2-boot/bin/ec2ver.cmd 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,25 @@ + at echo off + +setlocal + +REM Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +REM Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +REM License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +REM IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +REM language governing permissions and limitations under the License. + +REM Set intermediate env vars because the %VAR:x=y% notation below +REM (which replaces the string x with the string y in VAR) +REM doesn't handle undefined environment variables. This way +REM we're always dealing with defined variables in those tests. +set CHK_HOME=_%EC2_HOME% + +if "%CHK_HOME:"=%" == "_" goto HOME_MISSING + +"%EC2_HOME:"=%\bin\ec2-cmd" ShowVersion %* +goto DONE +:HOME_MISSING +echo EC2_HOME is not set +exit /b 1 + +:DONE Added: usertools/swift-ec2-boot/lib/EC2CltJavaClient-1.0.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/EC2CltJavaClient-1.0.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/EC2ConversionLib-1.0.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/EC2ConversionLib-1.0.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/EC2WsdlJavaClient-1.0.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/EC2WsdlJavaClient-1.0.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/XmlSchema-1.4.5.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/XmlSchema-1.4.5.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/activation-1.1.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/activation-1.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/bcprov-jdk15-145.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/bcprov-jdk15-145.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/commons-cli-1.1.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/commons-cli-1.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/commons-codec-1.3.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/commons-codec-1.3.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/commons-discovery.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/commons-discovery.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/commons-httpclient-3.1.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/commons-httpclient-3.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/commons-logging-adapters-1.1.1.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/commons-logging-adapters-1.1.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/commons-logging-api-1.1.1.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/commons-logging-api-1.1.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/ec2-api-tools-1.5.0.1-2011.11.30.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/ec2-api-tools-1.5.0.1-2011.11.30.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/j2ee_mail.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/j2ee_mail.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/java-xmlbuilder-0.4-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/java-xmlbuilder-0.4-SNAPSHOT.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/jaxb-api.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/jaxb-api.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/jaxb-impl.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/jaxb-impl.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/jaxws-api.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/jaxws-api.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/jdom.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/jdom.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/jets3t-0.8.0.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/jets3t-0.8.0.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/log4j-1.2.14.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/log4j-1.2.14.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/serializer.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/serializer.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/wsdl4j.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/wsdl4j.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/wss4j-1.5.3.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/wss4j-1.5.3.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/wstx-asl-3.2.7.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/wstx-asl-3.2.7.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/xalan.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/xalan.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/xercesImpl.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/xercesImpl.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/xfire-all-1.2.6.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/xfire-all-1.2.6.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/xfire-jsr181-api-1.0-M1.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/xfire-jsr181-api-1.0-M1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/xml-apis.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/xml-apis.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/lib/xmlsec.jar =================================================================== (Binary files differ) Property changes on: usertools/swift-ec2-boot/lib/xmlsec.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: usertools/swift-ec2-boot/license.txt =================================================================== --- usertools/swift-ec2-boot/license.txt (rev 0) +++ usertools/swift-ec2-boot/license.txt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,40 @@ +Amazon Software License + +This Amazon Software License (?License?) governs your use, reproduction, and distribution of the accompanying software as specified below. +1. Definitions + +?Licensor? means any person or entity that distributes its Work. + +?Software? means the original work of authorship made available under this License. + +?Work? means the Software and any additions to or derivative works of the Software that are made available under this License. + +The terms ?reproduce,? ?reproduction,? ?derivative works,? and ?distribution? have the meaning as provided under U.S. copyright law; provided, however, that for the purposes of this License, derivative works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work. + +Works, including the Software, are ?made available? under this License by including in or with the Work either (a) a copyright notice referencing the applicability of this License to the Work, or (b) a copy of this License. +2. License Grants + +2.1 Copyright Grant. Subject to the terms and conditions of this License, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free, copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense and distribute its Work and any resulting derivative works in any form. + +2.2 Patent Grant. Subject to the terms and conditions of this License, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free patent license to make, have made, use, sell, offer for sale, import, and otherwise transfer its Work, in whole or in part. The foregoing license applies only to the patent claims licensable by Licensor that would be infringed by Licensor?s Work (or portion thereof) individually and excluding any combinations with any other materials or technology. +3. Limitations + +3.1 Redistribution. You may reproduce or distribute the Work only if (a) you do so under this License, (b) you include a complete copy of this License with your distribution, and? you retain without modification any copyright, patent, trademark, or attribution notices that are present in the Work. + +3.2 Derivative Works. You may specify that additional or different terms apply to the use, reproduction, and distribution of your derivative works of the Work (?Your Terms?) only if (a) Your Terms provide that the use limitation in Section 3.3 applies to your derivative works, and (b) you identify the specific derivative works that are subject to Your Terms. Notwithstanding Your Terms, this License (including the redistribution requirements in Section 3.1) will continue to apply to the Work itself. + +3.3 Use Limitation. The Work and any derivative works thereof only may be used or intended for use with the web services, computing platforms or applications provided by Amazon.com, Inc. or its affiliates, including Amazon Web Services LLC. + +3.4 Patent Claims. If you bring or threaten to bring a patent claim against any Licensor (including any claim, cross-claim or counterclaim in a lawsuit) to enforce any patents that you allege are infringed by any Work, then your rights under this License from such Licensor (including the grants in Sections 2.1 and 2.2) will terminate immediately. + +3.5 Trademarks. This License does not grant any rights to use any Licensor?s or its affiliates? names, logos, or trademarks, except as necessary to reproduce the notices described in this License. + +3.6 Termination. If you violate any term of this License, then your rights under this License (including the grants in Sections 2.1 and 2.2) will terminate immediately. +4. Disclaimer of Warranty. + +THE WORK IS PROVIDED ?AS IS? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF M ERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER THIS LICENSE. SOME STATES? CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU. +5. Limitation of Liability. + +EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK (INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER COMM ERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Effective Date ? April 18, 2008 ? 2008 Amazon.com, Inc. or its affiliates. All rights reserved. Added: usertools/swift-ec2-boot/notice.txt =================================================================== --- usertools/swift-ec2-boot/notice.txt (rev 0) +++ usertools/swift-ec2-boot/notice.txt 2011-12-12 18:18:06 UTC (rev 5410) @@ -0,0 +1,5 @@ +Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. From davidk at ci.uchicago.edu Fri Dec 16 12:39:53 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 16 Dec 2011 18:39:53 -0000 Subject: [Swift-commit] r5425 - in usertools: swift-ec2-boot swift-gp-boot swift-vm-boot swift-vm-boot/ec2 swift-vm-boot/futuregrid swift-vm-boot/futuregrid/bin swift-vm-boot/futuregrid/plan swift-vm-boot/gp Message-ID: <20111216183806.5F9559CCA5@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-16 12:38:06 -0600 (Fri, 16 Dec 2011) New Revision: 5425 Added: usertools/swift-vm-boot/ec2/ usertools/swift-vm-boot/ec2/THIRDPARTYLICENSE.TXT usertools/swift-vm-boot/ec2/bin/ usertools/swift-vm-boot/ec2/lib/ usertools/swift-vm-boot/ec2/license.txt usertools/swift-vm-boot/ec2/notice.txt usertools/swift-vm-boot/futuregrid/ usertools/swift-vm-boot/futuregrid/bin/ usertools/swift-vm-boot/futuregrid/bin/bootit.sh usertools/swift-vm-boot/futuregrid/bin/handleoutput.py usertools/swift-vm-boot/futuregrid/bin/nimbus-register-key.py usertools/swift-vm-boot/futuregrid/bin/register_key.py usertools/swift-vm-boot/futuregrid/bin/virtualenv.py usertools/swift-vm-boot/futuregrid/env.sh usertools/swift-vm-boot/futuregrid/hosts.txt usertools/swift-vm-boot/futuregrid/install.sh usertools/swift-vm-boot/futuregrid/plan/ usertools/swift-vm-boot/futuregrid/plan/test-level1.conf usertools/swift-vm-boot/futuregrid/plan/top.conf usertools/swift-vm-boot/gp/ usertools/swift-vm-boot/gp/ec2.template.conf usertools/swift-vm-boot/gp/globus-provision-0.3.2.tar.gz usertools/swift-vm-boot/gp/install.sh Removed: usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT usertools/swift-ec2-boot/bin/ usertools/swift-ec2-boot/lib/ usertools/swift-ec2-boot/license.txt usertools/swift-ec2-boot/notice.txt usertools/swift-gp-boot/ec2.template.conf usertools/swift-gp-boot/globus-provision-0.3.2.tar.gz usertools/swift-gp-boot/install.sh usertools/swift-vm-boot/bin/ usertools/swift-vm-boot/env.sh usertools/swift-vm-boot/hosts.txt usertools/swift-vm-boot/install.sh usertools/swift-vm-boot/plan/ Log: Move the various vm tools into one directory Deleted: usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT =================================================================== --- usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,974 +0,0 @@ - -%% The following software may be included in this product: - xalan-j2-2.7.0.jar - -Use of any of this software is governed by the terms of the license below: - - ========================================================================= - == NOTICE file corresponding to section 4(d) of the Apache License, == - == Version 2.0, in this case for the Apache Xalan serializer == - == distribution. == - ========================================================================= - - This product includes software developed by IBM Corporation (http://www.ibm.com) - and The Apache Software Foundation (http://www.apache.org/). - - Portions of this software was originally based on the following: - - software copyright (c) 1999-2002, Lotus Development Corporation., - http://www.lotus.com. - - software copyright (c) 2001-2002, Sun Microsystems., - http://www.sun.com. - - software copyright (c) 2003, IBM Corporation., http://www.ibm.com. - - - - -%% The following software may be included in this product: - commons-cli-1.1.jar - commons-codec-1.3.jar - commons-discovery-0.2.jar - commons-httpclient-3.0.jar - commons-logging-1.0.4.jar - jets3t-0.8.0.jar - log4j.jar - stax-api-1.0.1.jar - wss4j-1.5.1.jar - wstx-asl-3.2.0.jar - xalan-j2-serializer.jar - xmlsec-1.3.0.jar - java-xmlbuilder-0.4-SNAPSHOT.jar - -Use of any of this software is governed by the terms of the license below: - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - - -%% The following software may be included in this product: - xfire-all-1.2.6.jar - xfire-jsr181-api-1.0-M1.jar - -Use of any of this software is governed by the terms of the license below: - - Copyright (c) 2005 Envoi Solutions LLC - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. - - - - -%% The following software may be included in this product: - jdom-1.0.jar - -Use of any of this software is governed by the terms of the license below: - - Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions, and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the disclaimer that follows - these conditions in the documentation and/or other materials - provided with the distribution. - - 3. The name "JDOM" must not be used to endorse or promote products - derived from this software without prior written permission. For - written permission, please contact . - - 4. Products derived from this software may not be called "JDOM", nor - may "JDOM" appear in their name, without prior written permission - from the JDOM Project Management . - - In addition, we request (but do not require) that you include in the - end-user documentation provided with the redistribution and/or in the - software itself an acknowledgement equivalent to the following: - "This product includes software developed by the - JDOM Project (http://www.jdom.org/)." - Alternatively, the acknowledgment may be graphical using the logos - available at http://www.jdom.org/images/logos. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - - This software consists of voluntary contributions made by many - individuals on behalf of the JDOM Project and was originally - created by Jason Hunter and - Brett McLaughlin . For more information - on the JDOM Project, please see . - - - - -%% The following software may be included in this product: - bcprov.jar - -Use of any of this software is governed by the terms of the license below: - -Copyright (c) 2000 - 2008 The Legion Of The Bouncy Castle -(http://www.bouncycastle.org) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - - -%% The following software may be included in this product: - activation-1.1.jar - jaxb-api-2.0.jar - jaxb-impl-2.0.1.jar - jaxws-api-2.0.jar - mail-1.4.jar - -These are released under dual license consisting of the CDDL v1.0 and GPL v2 with "CLASSPATH" EXCEPTION. - -COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 - -1. Definitions. - -1.1. "Contributor" means each individual or entity that -creates or contributes to the creation of Modifications. - -1.2. "Contributor Version" means the combination of the -Original Software, prior Modifications used by a -Contributor (if any), and the Modifications made by that -particular Contributor. - -1.3. "Covered Software" means (a) the Original Software, or -(b) Modifications, or (c) the combination of files -containing Original Software with files containing -Modifications, in each case including portions thereof. - -1.4. "Executable" means the Covered Software in any form -other than Source Code. - -1.5. "Initial Developer" means the individual or entity -that first makes Original Software available under this -License. - -1.6. "Larger Work" means a work which combines Covered -Software or portions thereof with code not governed by the -terms of this License. - -1.7. "License" means this document. - -1.8. "Licensable" means having the right to grant, to the -maximum extent possible, whether at the time of the initial -grant or subsequently acquired, any and all of the rights -conveyed herein. - -1.9. "Modifications" means the Source Code and Executable -form of any of the following: - -A. Any file that results from an addition to, -deletion from or modification of the contents of a -file containing Original Software or previous -Modifications; - -B. Any new file that contains any part of the -Original Software or previous Modification; or - -C. Any new file that is contributed or otherwise made -available under the terms of this License. - -1.10. "Original Software" means the Source Code and -Executable form of computer software code that is -originally released under this License. - -1.11. "Patent Claims" means any patent claim(s), now owned -or hereafter acquired, including without limitation, -method, process, and apparatus claims, in any patent -Licensable by grantor. - -1.12. "Source Code" means (a) the common form of computer -software code in which modifications are made and (b) -associated documentation included in or with such code. - -1.13. "You" (or "Your") means an individual or a legal -entity exercising rights under, and complying with all of -the terms of, this License. For legal entities, "You" -includes any entity which controls, is controlled by, or is -under common control with You. For purposes of this -definition, "control" means (a) the power, direct or -indirect, to cause the direction or management of such -entity, whether by contract or otherwise, or (b) ownership -of more than fifty percent (50%) of the outstanding shares -or beneficial ownership of such entity. - -2. License Grants. - -2.1. The Initial Developer Grant. - -Conditioned upon Your compliance with Section 3.1 below and -subject to third party intellectual property claims, the -Initial Developer hereby grants You a world-wide, -royalty-free, non-exclusive license: - -(a) under intellectual property rights (other than -patent or trademark) Licensable by Initial Developer, -to use, reproduce, modify, display, perform, -sublicense and distribute the Original Software (or -portions thereof), with or without Modifications, -and/or as part of a Larger Work; and - -(b) under Patent Claims infringed by the making, -using or selling of Original Software, to make, have -made, use, practice, sell, and offer for sale, and/or -otherwise dispose of the Original Software (or -portions thereof). - -(c) The licenses granted in Sections 2.1(a) and (b) -are effective on the date Initial Developer first -distributes or otherwise makes the Original Software -available to a third party under the terms of this -License. - -(d) Notwithstanding Section 2.1(b) above, no patent -license is granted: (1) for code that You delete from -the Original Software, or (2) for infringements -caused by: (i) the modification of the Original -Software, or (ii) the combination of the Original -Software with other software or devices. - -2.2. Contributor Grant. - -Conditioned upon Your compliance with Section 3.1 below and -subject to third party intellectual property claims, each -Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than -patent or trademark) Licensable by Contributor to -use, reproduce, modify, display, perform, sublicense -and distribute the Modifications created by such -Contributor (or portions thereof), either on an -unmodified basis, with other Modifications, as -Covered Software and/or as part of a Larger Work; and - -(b) under Patent Claims infringed by the making, -using, or selling of Modifications made by that -Contributor either alone and/or in combination with -its Contributor Version (or portions of such -combination), to make, use, sell, offer for sale, -have made, and/or otherwise dispose of: (1) -Modifications made by that Contributor (or portions -thereof); and (2) the combination of Modifications -made by that Contributor with its Contributor Version -(or portions of such combination). - -(c) The licenses granted in Sections 2.2(a) and -2.2(b) are effective on the date Contributor first -distributes or otherwise makes the Modifications -available to a third party. - -(d) Notwithstanding Section 2.2(b) above, no patent -license is granted: (1) for any code that Contributor -has deleted from the Contributor Version; (2) for -infringements caused by: (i) third party -modifications of Contributor Version, or (ii) the -combination of Modifications made by that Contributor -with other software (except as part of the -Contributor Version) or other devices; or (3) under -Patent Claims infringed by Covered Software in the -absence of Modifications made by that Contributor. - -3. Distribution Obligations. - -3.1. Availability of Source Code. - -Any Covered Software that You distribute or otherwise make -available in Executable form must also be made available in -Source Code form and that Source Code form must be -distributed only under the terms of this License. You must -include a copy of this License with every copy of the -Source Code form of the Covered Software You distribute or -otherwise make available. You must inform recipients of any -such Covered Software in Executable form as to how they can -obtain such Covered Software in Source Code form in a -reasonable manner on or through a medium customarily used -for software exchange. - -3.2. Modifications. - -The Modifications that You create or to which You -contribute are governed by the terms of this License. You -represent that You believe Your Modifications are Your -original creation(s) and/or You have sufficient rights to -grant the rights conveyed by this License. - -3.3. Required Notices. - -You must include a notice in each of Your Modifications -that identifies You as the Contributor of the Modification. -You may not remove or alter any copyright, patent or -trademark notices contained within the Covered Software, or -any notices of licensing or any descriptive text giving -attribution to any Contributor or the Initial Developer. - -3.4. Application of Additional Terms. - -You may not offer or impose any terms on any Covered -Software in Source Code form that alters or restricts the -applicable version of this License or the recipients' -rights hereunder. You may choose to offer, and to charge a -fee for, warranty, support, indemnity or liability -obligations to one or more recipients of Covered Software. -However, you may do so only on Your own behalf, and not on -behalf of the Initial Developer or any Contributor. You -must make it absolutely clear that any such warranty, -support, indemnity or liability obligation is offered by -You alone, and You hereby agree to indemnify the Initial -Developer and every Contributor for any liability incurred -by the Initial Developer or such Contributor as a result of -warranty, support, indemnity or liability terms You offer. - -3.5. Distribution of Executable Versions. - -You may distribute the Executable form of the Covered -Software under the terms of this License or under the terms -of a license of Your choice, which may contain terms -different from this License, provided that You are in -compliance with the terms of this License and that the -license for the Executable form does not attempt to limit -or alter the recipient's rights in the Source Code form -from the rights set forth in this License. If You -distribute the Covered Software in Executable form under a -different license, You must make it absolutely clear that -any terms which differ from this License are offered by You -alone, not by the Initial Developer or Contributor. You -hereby agree to indemnify the Initial Developer and every -Contributor for any liability incurred by the Initial -Developer or such Contributor as a result of any such terms -You offer. - -3.6. Larger Works. - -You may create a Larger Work by combining Covered Software -with other code not governed by the terms of this License -and distribute the Larger Work as a single product. In such -a case, You must make sure the requirements of this License -are fulfilled for the Covered Software. - -4. Versions of the License. - -4.1. New Versions. - -Sun Microsystems, Inc. is the initial license steward and -may publish revised and/or new versions of this License -from time to time. Each version will be given a -distinguishing version number. Except as provided in -Section 4.3, no one other than the license steward has the -right to modify this License. - -4.2. Effect of New Versions. - -You may always continue to use, distribute or otherwise -make the Covered Software available under the terms of the -version of the License under which You originally received -the Covered Software. If the Initial Developer includes a -notice in the Original Software prohibiting it from being -distributed or otherwise made available under any -subsequent version of the License, You must distribute and -make the Covered Software available under the terms of the -version of the License under which You originally received -the Covered Software. Otherwise, You may also choose to -use, distribute or otherwise make the Covered Software -available under the terms of any subsequent version of the -License published by the license steward. - -4.3. Modified Versions. - -When You are an Initial Developer and You want to create a -new license for Your Original Software, You may create and -use a modified version of this License if You: (a) rename -the license and remove any references to the name of the -license steward (except to note that the license differs -from this License); and (b) otherwise make it clear that -the license contains terms which differ from this License. - -5. DISCLAIMER OF WARRANTY. - -COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" -BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED -SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR -PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY -COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE -INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF -ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF -WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF -ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS -DISCLAIMER. - -6. TERMINATION. - -6.1. This License and the rights granted hereunder will -terminate automatically if You fail to comply with terms -herein and fail to cure such breach within 30 days of -becoming aware of the breach. Provisions which, by their -nature, must remain in effect beyond the termination of -this License shall survive. - -6.2. If You assert a patent infringement claim (excluding -declaratory judgment actions) against Initial Developer or -a Contributor (the Initial Developer or Contributor against -whom You assert such claim is referred to as "Participant") -alleging that the Participant Software (meaning the -Contributor Version where the Participant is a Contributor -or the Original Software where the Participant is the -Initial Developer) directly or indirectly infringes any -patent, then any and all rights granted directly or -indirectly to You by such Participant, the Initial -Developer (if the Initial Developer is not the Participant) -and all Contributors under Sections 2.1 and/or 2.2 of this -License shall, upon 60 days notice from Participant -terminate prospectively and automatically at the expiration -of such 60 day notice period, unless if within such 60 day -period You withdraw Your claim with respect to the -Participant Software against such Participant either -unilaterally or pursuant to a written agreement with -Participant. - -6.3. In the event of termination under Sections 6.1 or 6.2 -above, all end user licenses that have been validly granted -by You or any distributor hereunder prior to termination -(excluding licenses granted to You by any distributor) -shall survive termination. - -7. LIMITATION OF LIABILITY. - -UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT -(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE -INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF -COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE -LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR -CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT -LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK -STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER -COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN -INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF -LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL -INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT -APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO -NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR -CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT -APPLY TO YOU. - -8. U.S. GOVERNMENT END USERS. - -The Covered Software is a "commercial item," as that term is -defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial -computer software" (as that term is defined at 48 C.F.R. ? -252.227-7014(a)(1)) and "commercial computer software -documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. -1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 -through 227.7202-4 (June 1995), all U.S. Government End Users -acquire Covered Software with only those rights set forth herein. -This U.S. Government Rights clause is in lieu of, and supersedes, -any other FAR, DFAR, or other clause or provision that addresses -Government rights in computer software under this License. - -9. MISCELLANEOUS. - -This License represents the complete agreement concerning subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the -extent necessary to make it enforceable. This License shall be -governed by the law of the jurisdiction specified in a notice -contained within the Original Software (except to the extent -applicable law, if any, provides otherwise), excluding such -jurisdiction's conflict-of-law provisions. Any litigation -relating to this License shall be subject to the jurisdiction of -the courts located in the jurisdiction and venue specified in a -notice contained within the Original Software, with the losing -party responsible for costs, including, without limitation, court -costs and reasonable attorneys' fees and expenses. The -application of the United Nations Convention on Contracts for the -International Sale of Goods is expressly excluded. Any law or -regulation which provides that the language of a contract shall -be construed against the drafter shall not apply to this License. -You agree that You alone are responsible for compliance with the -United States export administration regulations (and the export -control laws and regulation of any other countries) when You use, -distribute or otherwise make available any Covered Software. - -10. RESPONSIBILITY FOR CLAIMS. - -As between Initial Developer and the Contributors, each party is -responsible for claims and damages arising, directly or -indirectly, out of its utilization of rights under this License -and You agree to work with Initial Developer and Contributors to -distribute such responsibility on an equitable basis. Nothing -herein is intended or shall be deemed to constitute any admission -of liability. - - - - -%% The following software may be included in this product: - wsdl4j-1.6.1.jar - -Use of any of this software is governed by the terms of the license below: - -Common Public License Version 1.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC -LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM -CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - - a) in the case of the initial Contributor, the initial code and -documentation distributed under this Agreement, and - - b) in the case of each subsequent Contributor: - - i) changes to the Program, and - - ii) additions to the Program; - - where such changes and/or additions to the Program originate from and are -distributed by that particular Contributor. A Contribution 'originates' from a -Contributor if it was added to the Program by such Contributor itself or anyone -acting on such Contributor's behalf. Contributions do not include additions to -the Program which: (i) are separate modules of software distributed in -conjunction with the Program under their own license agreement, and (ii) are not -derivative works of the Program. - -"Contributor" means any person or entity that distributes the Program. - -"Licensed Patents " mean patent claims licensable by a Contributor which are -necessarily infringed by the use or sale of its Contribution alone or when -combined with the Program. - -"Program" means the Contributions distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement, -including all Contributors. - -2. GRANT OF RIGHTS - - a) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free copyright license to -reproduce, prepare derivative works of, publicly display, publicly perform, -distribute and sublicense the Contribution of such Contributor, if any, and such -derivative works, in source code and object code form. - - b) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed -Patents to make, use, sell, offer to sell, import and otherwise transfer the -Contribution of such Contributor, if any, in source code and object code form. -This patent license shall apply to the combination of the Contribution and the -Program if, at the time the Contribution is added by the Contributor, such -addition of the Contribution causes such combination to be covered by the -Licensed Patents. The patent license shall not apply to any other combinations -which include the Contribution. No hardware per se is licensed hereunder. - - c) Recipient understands that although each Contributor grants the licenses -to its Contributions set forth herein, no assurances are provided by any -Contributor that the Program does not infringe the patent or other intellectual -property rights of any other entity. Each Contributor disclaims any liability to -Recipient for claims brought by any other entity based on infringement of -intellectual property rights or otherwise. As a condition to exercising the -rights and licenses granted hereunder, each Recipient hereby assumes sole -responsibility to secure any other intellectual property rights needed, if any. -For example, if a third party patent license is required to allow Recipient to -distribute the Program, it is Recipient's responsibility to acquire that license -before distributing the Program. - - d) Each Contributor represents that to its knowledge it has sufficient -copyright rights in its Contribution, if any, to grant the copyright license set -forth in this Agreement. - -3. REQUIREMENTS - -A Contributor may choose to distribute the Program in object code form under its -own license agreement, provided that: - - a) it complies with the terms and conditions of this Agreement; and - - b) its license agreement: - - i) effectively disclaims on behalf of all Contributors all warranties and -conditions, express and implied, including warranties or conditions of title and -non-infringement, and implied warranties or conditions of merchantability and -fitness for a particular purpose; - - ii) effectively excludes on behalf of all Contributors all liability for -damages, including direct, indirect, special, incidental and consequential -damages, such as lost profits; - - iii) states that any provisions which differ from this Agreement are offered -by that Contributor alone and not by any other party; and - - iv) states that source code for the Program is available from such -Contributor, and informs licensees how to obtain it in a reasonable manner on or -through a medium customarily used for software exchange. - -When the Program is made available in source code form: - - a) it must be made available under this Agreement; and - - b) a copy of this Agreement must be included with each copy of the Program. - -Contributors may not remove or alter any copyright notices contained within the -Program. - -Each Contributor must identify itself as the originator of its Contribution, if -any, in a manner that reasonably allows subsequent Recipients to identify the -originator of the Contribution. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities with -respect to end users, business partners and the like. While this license is -intended to facilitate the commercial use of the Program, the Contributor who -includes the Program in a commercial product offering should do so in a manner -which does not create potential liability for other Contributors. Therefore, if -a Contributor includes the Program in a commercial product offering, such -Contributor ("Commercial Contributor") hereby agrees to defend and indemnify -every other Contributor ("Indemnified Contributor") against any losses, damages -and costs (collectively "Losses") arising from claims, lawsuits and other legal -actions brought by a third party against the Indemnified Contributor to the -extent caused by the acts or omissions of such Commercial Contributor in -connection with its distribution of the Program in a commercial product -offering. The obligations in this section do not apply to any claims or Losses -relating to any actual or alleged intellectual property infringement. In order -to qualify, an Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial Contributor to -control, and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may participate in -any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product -offering, Product X. That Contributor is then a Commercial Contributor. If that -Commercial Contributor then makes performance claims, or offers warranties -related to Product X, those performance claims and warranties are such -Commercial Contributor's responsibility alone. Under this section, the -Commercial Contributor would have to defend claims against the other -Contributors related to those performance claims and warranties, and if a court -requires any other Contributor to pay any damages as a result, the Commercial -Contributor must pay those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, -NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each -Recipient is solely responsible for determining the appropriateness of using and -distributing the Program and assumes all risks associated with its exercise of -rights under this Agreement, including but not limited to the risks and costs of -program errors, compliance with applicable laws, damage to or loss of data, -programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY -CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS -GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under applicable -law, it shall not affect the validity or enforceability of the remainder of the -terms of this Agreement, and without further action by the parties hereto, such -provision shall be reformed to the minimum extent necessary to make such -provision valid and enforceable. - -If Recipient institutes patent litigation against a Contributor with respect to -a patent applicable to software (including a cross-claim or counterclaim in a -lawsuit), then any patent licenses granted by that Contributor to such Recipient -under this Agreement shall terminate as of the date such litigation is filed. In -addition, if Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the Program -itself (excluding combinations of the Program with other software or hardware) -infringes such Recipient's patent(s), then such Recipient's rights granted under -Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to -comply with any of the material terms or conditions of this Agreement and does -not cure such failure in a reasonable period of time after becoming aware of -such noncompliance. If all Recipient's rights under this Agreement terminate, -Recipient agrees to cease use and distribution of the Program as soon as -reasonably practicable. However, Recipient's obligations under this Agreement -and any licenses granted by Recipient relating to the Program shall continue and -survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in -order to avoid inconsistency the Agreement is copyrighted and may only be -modified in the following manner. The Agreement Steward reserves the right to -publish new versions (including revisions) of this Agreement from time to time. -No one other than the Agreement Steward has the right to modify this Agreement. -IBM is the initial Agreement Steward. IBM may assign the responsibility to serve -as the Agreement Steward to a suitable separate entity. Each new version of the -Agreement will be given a distinguishing version number. The Program (including -Contributions) may always be distributed subject to the version of the Agreement -under which it was received. In addition, after a new version of the Agreement -is published, Contributor may elect to distribute the Program (including its -Contributions) under the new version. Except as expressly stated in Sections -2(a) and 2(b) above, Recipient receives no rights or licenses to the -intellectual property of any Contributor under this Agreement, whether -expressly, by implication, estoppel or otherwise. All rights in the Program not -expressly granted under this Agreement are reserved. - -This Agreement is governed by the laws of the State of New York and the -intellectual property laws of the United States of America. No party to this -Agreement will bring a legal action under this Agreement more than one year -after the cause of action arose. Each party waives its rights to a jury trial in -any resulting litigation. Deleted: usertools/swift-ec2-boot/license.txt =================================================================== --- usertools/swift-ec2-boot/license.txt 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-ec2-boot/license.txt 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,40 +0,0 @@ -Amazon Software License - -This Amazon Software License (?License?) governs your use, reproduction, and distribution of the accompanying software as specified below. -1. Definitions - -?Licensor? means any person or entity that distributes its Work. - -?Software? means the original work of authorship made available under this License. - -?Work? means the Software and any additions to or derivative works of the Software that are made available under this License. - -The terms ?reproduce,? ?reproduction,? ?derivative works,? and ?distribution? have the meaning as provided under U.S. copyright law; provided, however, that for the purposes of this License, derivative works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work. - -Works, including the Software, are ?made available? under this License by including in or with the Work either (a) a copyright notice referencing the applicability of this License to the Work, or (b) a copy of this License. -2. License Grants - -2.1 Copyright Grant. Subject to the terms and conditions of this License, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free, copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense and distribute its Work and any resulting derivative works in any form. - -2.2 Patent Grant. Subject to the terms and conditions of this License, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free patent license to make, have made, use, sell, offer for sale, import, and otherwise transfer its Work, in whole or in part. The foregoing license applies only to the patent claims licensable by Licensor that would be infringed by Licensor?s Work (or portion thereof) individually and excluding any combinations with any other materials or technology. -3. Limitations - -3.1 Redistribution. You may reproduce or distribute the Work only if (a) you do so under this License, (b) you include a complete copy of this License with your distribution, and? you retain without modification any copyright, patent, trademark, or attribution notices that are present in the Work. - -3.2 Derivative Works. You may specify that additional or different terms apply to the use, reproduction, and distribution of your derivative works of the Work (?Your Terms?) only if (a) Your Terms provide that the use limitation in Section 3.3 applies to your derivative works, and (b) you identify the specific derivative works that are subject to Your Terms. Notwithstanding Your Terms, this License (including the redistribution requirements in Section 3.1) will continue to apply to the Work itself. - -3.3 Use Limitation. The Work and any derivative works thereof only may be used or intended for use with the web services, computing platforms or applications provided by Amazon.com, Inc. or its affiliates, including Amazon Web Services LLC. - -3.4 Patent Claims. If you bring or threaten to bring a patent claim against any Licensor (including any claim, cross-claim or counterclaim in a lawsuit) to enforce any patents that you allege are infringed by any Work, then your rights under this License from such Licensor (including the grants in Sections 2.1 and 2.2) will terminate immediately. - -3.5 Trademarks. This License does not grant any rights to use any Licensor?s or its affiliates? names, logos, or trademarks, except as necessary to reproduce the notices described in this License. - -3.6 Termination. If you violate any term of this License, then your rights under this License (including the grants in Sections 2.1 and 2.2) will terminate immediately. -4. Disclaimer of Warranty. - -THE WORK IS PROVIDED ?AS IS? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF M ERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER THIS LICENSE. SOME STATES? CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU. -5. Limitation of Liability. - -EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK (INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER COMM ERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -Effective Date ? April 18, 2008 ? 2008 Amazon.com, Inc. or its affiliates. All rights reserved. Deleted: usertools/swift-ec2-boot/notice.txt =================================================================== --- usertools/swift-ec2-boot/notice.txt 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-ec2-boot/notice.txt 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,5 +0,0 @@ -Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the -Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the -License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS -IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific -language governing permissions and limitations under the License. Deleted: usertools/swift-gp-boot/ec2.template.conf =================================================================== --- usertools/swift-gp-boot/ec2.template.conf 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-gp-boot/ec2.template.conf 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,17 +0,0 @@ -[general] -domains: swift -deploy: ec2 - -[domain-swift] -users: swift -nfs-nis: yes -lrm: none -cluster-nodes: _CLUSTER-NODES_ - -[ec2] -ami: _AMI_ -instance-type: _INSTANCE-TYPE_ -keypair: _KEYPAIR_ -keyfile: _KEYFILE_ -username: ubuntu - Deleted: usertools/swift-gp-boot/globus-provision-0.3.2.tar.gz =================================================================== (Binary files differ) Deleted: usertools/swift-gp-boot/install.sh =================================================================== --- usertools/swift-gp-boot/install.sh 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-gp-boot/install.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,8 +0,0 @@ -#!/bin/bash - -tar xvfz globus-provision-0.3.2.tar.gz -cd globus-provision-0.3.2 -python setup.py install --user -cd .. -ln -s ~/.local/bin -ln -s ~/.local/lib Copied: usertools/swift-vm-boot/ec2/THIRDPARTYLICENSE.TXT (from rev 5424, usertools/swift-ec2-boot/THIRDPARTYLICENSE.TXT) =================================================================== --- usertools/swift-vm-boot/ec2/THIRDPARTYLICENSE.TXT (rev 0) +++ usertools/swift-vm-boot/ec2/THIRDPARTYLICENSE.TXT 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,974 @@ + +%% The following software may be included in this product: + xalan-j2-2.7.0.jar + +Use of any of this software is governed by the terms of the license below: + + ========================================================================= + == NOTICE file corresponding to section 4(d) of the Apache License, == + == Version 2.0, in this case for the Apache Xalan serializer == + == distribution. == + ========================================================================= + + This product includes software developed by IBM Corporation (http://www.ibm.com) + and The Apache Software Foundation (http://www.apache.org/). + + Portions of this software was originally based on the following: + - software copyright (c) 1999-2002, Lotus Development Corporation., + http://www.lotus.com. + - software copyright (c) 2001-2002, Sun Microsystems., + http://www.sun.com. + - software copyright (c) 2003, IBM Corporation., http://www.ibm.com. + + + + +%% The following software may be included in this product: + commons-cli-1.1.jar + commons-codec-1.3.jar + commons-discovery-0.2.jar + commons-httpclient-3.0.jar + commons-logging-1.0.4.jar + jets3t-0.8.0.jar + log4j.jar + stax-api-1.0.1.jar + wss4j-1.5.1.jar + wstx-asl-3.2.0.jar + xalan-j2-serializer.jar + xmlsec-1.3.0.jar + java-xmlbuilder-0.4-SNAPSHOT.jar + +Use of any of this software is governed by the terms of the license below: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + + +%% The following software may be included in this product: + xfire-all-1.2.6.jar + xfire-jsr181-api-1.0-M1.jar + +Use of any of this software is governed by the terms of the license below: + + Copyright (c) 2005 Envoi Solutions LLC + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + + + +%% The following software may be included in this product: + jdom-1.0.jar + +Use of any of this software is governed by the terms of the license below: + + Copyright (C) 2000-2004 Jason Hunter & Brett McLaughlin. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the disclaimer that follows + these conditions in the documentation and/or other materials + provided with the distribution. + + 3. The name "JDOM" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact . + + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management . + + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: + "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." + Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Jason Hunter and + Brett McLaughlin . For more information + on the JDOM Project, please see . + + + + +%% The following software may be included in this product: + bcprov.jar + +Use of any of this software is governed by the terms of the license below: + +Copyright (c) 2000 - 2008 The Legion Of The Bouncy Castle +(http://www.bouncycastle.org) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + +%% The following software may be included in this product: + activation-1.1.jar + jaxb-api-2.0.jar + jaxb-impl-2.0.1.jar + jaxws-api-2.0.jar + mail-1.4.jar + +These are released under dual license consisting of the CDDL v1.0 and GPL v2 with "CLASSPATH" EXCEPTION. + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + +1. Definitions. + +1.1. "Contributor" means each individual or entity that +creates or contributes to the creation of Modifications. + +1.2. "Contributor Version" means the combination of the +Original Software, prior Modifications used by a +Contributor (if any), and the Modifications made by that +particular Contributor. + +1.3. "Covered Software" means (a) the Original Software, or +(b) Modifications, or (c) the combination of files +containing Original Software with files containing +Modifications, in each case including portions thereof. + +1.4. "Executable" means the Covered Software in any form +other than Source Code. + +1.5. "Initial Developer" means the individual or entity +that first makes Original Software available under this +License. + +1.6. "Larger Work" means a work which combines Covered +Software or portions thereof with code not governed by the +terms of this License. + +1.7. "License" means this document. + +1.8. "Licensable" means having the right to grant, to the +maximum extent possible, whether at the time of the initial +grant or subsequently acquired, any and all of the rights +conveyed herein. + +1.9. "Modifications" means the Source Code and Executable +form of any of the following: + +A. Any file that results from an addition to, +deletion from or modification of the contents of a +file containing Original Software or previous +Modifications; + +B. Any new file that contains any part of the +Original Software or previous Modification; or + +C. Any new file that is contributed or otherwise made +available under the terms of this License. + +1.10. "Original Software" means the Source Code and +Executable form of computer software code that is +originally released under this License. + +1.11. "Patent Claims" means any patent claim(s), now owned +or hereafter acquired, including without limitation, +method, process, and apparatus claims, in any patent +Licensable by grantor. + +1.12. "Source Code" means (a) the common form of computer +software code in which modifications are made and (b) +associated documentation included in or with such code. + +1.13. "You" (or "Your") means an individual or a legal +entity exercising rights under, and complying with all of +the terms of, this License. For legal entities, "You" +includes any entity which controls, is controlled by, or is +under common control with You. For purposes of this +definition, "control" means (a) the power, direct or +indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (b) ownership +of more than fifty percent (50%) of the outstanding shares +or beneficial ownership of such entity. + +2. License Grants. + +2.1. The Initial Developer Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, the +Initial Developer hereby grants You a world-wide, +royalty-free, non-exclusive license: + +(a) under intellectual property rights (other than +patent or trademark) Licensable by Initial Developer, +to use, reproduce, modify, display, perform, +sublicense and distribute the Original Software (or +portions thereof), with or without Modifications, +and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, +using or selling of Original Software, to make, have +made, use, practice, sell, and offer for sale, and/or +otherwise dispose of the Original Software (or +portions thereof). + +(c) The licenses granted in Sections 2.1(a) and (b) +are effective on the date Initial Developer first +distributes or otherwise makes the Original Software +available to a third party under the terms of this +License. + +(d) Notwithstanding Section 2.1(b) above, no patent +license is granted: (1) for code that You delete from +the Original Software, or (2) for infringements +caused by: (i) the modification of the Original +Software, or (ii) the combination of the Original +Software with other software or devices. + +2.2. Contributor Grant. + +Conditioned upon Your compliance with Section 3.1 below and +subject to third party intellectual property claims, each +Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than +patent or trademark) Licensable by Contributor to +use, reproduce, modify, display, perform, sublicense +and distribute the Modifications created by such +Contributor (or portions thereof), either on an +unmodified basis, with other Modifications, as +Covered Software and/or as part of a Larger Work; and + +(b) under Patent Claims infringed by the making, +using, or selling of Modifications made by that +Contributor either alone and/or in combination with +its Contributor Version (or portions of such +combination), to make, use, sell, offer for sale, +have made, and/or otherwise dispose of: (1) +Modifications made by that Contributor (or portions +thereof); and (2) the combination of Modifications +made by that Contributor with its Contributor Version +(or portions of such combination). + +(c) The licenses granted in Sections 2.2(a) and +2.2(b) are effective on the date Contributor first +distributes or otherwise makes the Modifications +available to a third party. + +(d) Notwithstanding Section 2.2(b) above, no patent +license is granted: (1) for any code that Contributor +has deleted from the Contributor Version; (2) for +infringements caused by: (i) third party +modifications of Contributor Version, or (ii) the +combination of Modifications made by that Contributor +with other software (except as part of the +Contributor Version) or other devices; or (3) under +Patent Claims infringed by Covered Software in the +absence of Modifications made by that Contributor. + +3. Distribution Obligations. + +3.1. Availability of Source Code. + +Any Covered Software that You distribute or otherwise make +available in Executable form must also be made available in +Source Code form and that Source Code form must be +distributed only under the terms of this License. You must +include a copy of this License with every copy of the +Source Code form of the Covered Software You distribute or +otherwise make available. You must inform recipients of any +such Covered Software in Executable form as to how they can +obtain such Covered Software in Source Code form in a +reasonable manner on or through a medium customarily used +for software exchange. + +3.2. Modifications. + +The Modifications that You create or to which You +contribute are governed by the terms of this License. You +represent that You believe Your Modifications are Your +original creation(s) and/or You have sufficient rights to +grant the rights conveyed by this License. + +3.3. Required Notices. + +You must include a notice in each of Your Modifications +that identifies You as the Contributor of the Modification. +You may not remove or alter any copyright, patent or +trademark notices contained within the Covered Software, or +any notices of licensing or any descriptive text giving +attribution to any Contributor or the Initial Developer. + +3.4. Application of Additional Terms. + +You may not offer or impose any terms on any Covered +Software in Source Code form that alters or restricts the +applicable version of this License or the recipients' +rights hereunder. You may choose to offer, and to charge a +fee for, warranty, support, indemnity or liability +obligations to one or more recipients of Covered Software. +However, you may do so only on Your own behalf, and not on +behalf of the Initial Developer or any Contributor. You +must make it absolutely clear that any such warranty, +support, indemnity or liability obligation is offered by +You alone, and You hereby agree to indemnify the Initial +Developer and every Contributor for any liability incurred +by the Initial Developer or such Contributor as a result of +warranty, support, indemnity or liability terms You offer. + +3.5. Distribution of Executable Versions. + +You may distribute the Executable form of the Covered +Software under the terms of this License or under the terms +of a license of Your choice, which may contain terms +different from this License, provided that You are in +compliance with the terms of this License and that the +license for the Executable form does not attempt to limit +or alter the recipient's rights in the Source Code form +from the rights set forth in this License. If You +distribute the Covered Software in Executable form under a +different license, You must make it absolutely clear that +any terms which differ from this License are offered by You +alone, not by the Initial Developer or Contributor. You +hereby agree to indemnify the Initial Developer and every +Contributor for any liability incurred by the Initial +Developer or such Contributor as a result of any such terms +You offer. + +3.6. Larger Works. + +You may create a Larger Work by combining Covered Software +with other code not governed by the terms of this License +and distribute the Larger Work as a single product. In such +a case, You must make sure the requirements of this License +are fulfilled for the Covered Software. + +4. Versions of the License. + +4.1. New Versions. + +Sun Microsystems, Inc. is the initial license steward and +may publish revised and/or new versions of this License +from time to time. Each version will be given a +distinguishing version number. Except as provided in +Section 4.3, no one other than the license steward has the +right to modify this License. + +4.2. Effect of New Versions. + +You may always continue to use, distribute or otherwise +make the Covered Software available under the terms of the +version of the License under which You originally received +the Covered Software. If the Initial Developer includes a +notice in the Original Software prohibiting it from being +distributed or otherwise made available under any +subsequent version of the License, You must distribute and +make the Covered Software available under the terms of the +version of the License under which You originally received +the Covered Software. Otherwise, You may also choose to +use, distribute or otherwise make the Covered Software +available under the terms of any subsequent version of the +License published by the license steward. + +4.3. Modified Versions. + +When You are an Initial Developer and You want to create a +new license for Your Original Software, You may create and +use a modified version of this License if You: (a) rename +the license and remove any references to the name of the +license steward (except to note that the license differs +from this License); and (b) otherwise make it clear that +the license contains terms which differ from this License. + +5. DISCLAIMER OF WARRANTY. + +COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" +BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED +SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR +PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY +COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE +INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF +ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF +WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF +ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS +DISCLAIMER. + +6. TERMINATION. + +6.1. This License and the rights granted hereunder will +terminate automatically if You fail to comply with terms +herein and fail to cure such breach within 30 days of +becoming aware of the breach. Provisions which, by their +nature, must remain in effect beyond the termination of +this License shall survive. + +6.2. If You assert a patent infringement claim (excluding +declaratory judgment actions) against Initial Developer or +a Contributor (the Initial Developer or Contributor against +whom You assert such claim is referred to as "Participant") +alleging that the Participant Software (meaning the +Contributor Version where the Participant is a Contributor +or the Original Software where the Participant is the +Initial Developer) directly or indirectly infringes any +patent, then any and all rights granted directly or +indirectly to You by such Participant, the Initial +Developer (if the Initial Developer is not the Participant) +and all Contributors under Sections 2.1 and/or 2.2 of this +License shall, upon 60 days notice from Participant +terminate prospectively and automatically at the expiration +of such 60 day notice period, unless if within such 60 day +period You withdraw Your claim with respect to the +Participant Software against such Participant either +unilaterally or pursuant to a written agreement with +Participant. + +6.3. In the event of termination under Sections 6.1 or 6.2 +above, all end user licenses that have been validly granted +by You or any distributor hereunder prior to termination +(excluding licenses granted to You by any distributor) +shall survive termination. + +7. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT +(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE +INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF +COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE +LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT +LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK +STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN +INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF +LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL +INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT +APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO +NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR +CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT +APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + +The Covered Software is a "commercial item," as that term is +defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial +computer software" (as that term is defined at 48 C.F.R. ? +252.227-7014(a)(1)) and "commercial computer software +documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. +1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 +through 227.7202-4 (June 1995), all U.S. Government End Users +acquire Covered Software with only those rights set forth herein. +This U.S. Government Rights clause is in lieu of, and supersedes, +any other FAR, DFAR, or other clause or provision that addresses +Government rights in computer software under this License. + +9. MISCELLANEOUS. + +This License represents the complete agreement concerning subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the +extent necessary to make it enforceable. This License shall be +governed by the law of the jurisdiction specified in a notice +contained within the Original Software (except to the extent +applicable law, if any, provides otherwise), excluding such +jurisdiction's conflict-of-law provisions. Any litigation +relating to this License shall be subject to the jurisdiction of +the courts located in the jurisdiction and venue specified in a +notice contained within the Original Software, with the losing +party responsible for costs, including, without limitation, court +costs and reasonable attorneys' fees and expenses. The +application of the United Nations Convention on Contracts for the +International Sale of Goods is expressly excluded. Any law or +regulation which provides that the language of a contract shall +be construed against the drafter shall not apply to this License. +You agree that You alone are responsible for compliance with the +United States export administration regulations (and the export +control laws and regulation of any other countries) when You use, +distribute or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is +responsible for claims and damages arising, directly or +indirectly, out of its utilization of rights under this License +and You agree to work with Initial Developer and Contributors to +distribute such responsibility on an equitable basis. Nothing +herein is intended or shall be deemed to constitute any admission +of liability. + + + + +%% The following software may be included in this product: + wsdl4j-1.6.1.jar + +Use of any of this software is governed by the terms of the license below: + +Common Public License Version 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are +distributed by that particular Contributor. A Contribution 'originates' from a +Contributor if it was added to the Program by such Contributor itself or anyone +acting on such Contributor's behalf. Contributions do not include additions to +the Program which: (i) are separate modules of software distributed in +conjunction with the Program under their own license agreement, and (ii) are not +derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +distribute and sublicense the Contribution of such Contributor, if any, and such +derivative works, in source code and object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed +Patents to make, use, sell, offer to sell, import and otherwise transfer the +Contribution of such Contributor, if any, in source code and object code form. +This patent license shall apply to the combination of the Contribution and the +Program if, at the time the Contribution is added by the Contributor, such +addition of the Contribution causes such combination to be covered by the +Licensed Patents. The patent license shall not apply to any other combinations +which include the Contribution. No hardware per se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the licenses +to its Contributions set forth herein, no assurances are provided by any +Contributor that the Program does not infringe the patent or other intellectual +property rights of any other entity. Each Contributor disclaims any liability to +Recipient for claims brought by any other entity based on infringement of +intellectual property rights or otherwise. As a condition to exercising the +rights and licenses granted hereunder, each Recipient hereby assumes sole +responsibility to secure any other intellectual property rights needed, if any. +For example, if a third party patent license is required to allow Recipient to +distribute the Program, it is Recipient's responsibility to acquire that license +before distributing the Program. + + d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright license set +forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its +own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title and +non-infringement, and implied warranties or conditions of merchantability and +fitness for a particular purpose; + + ii) effectively excludes on behalf of all Contributors all liability for +damages, including direct, indirect, special, incidental and consequential +damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are offered +by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable manner on or +through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the +Program. + +Each Contributor must identify itself as the originator of its Contribution, if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, if +a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, damages +and costs (collectively "Losses") arising from claims, lawsuits and other legal +actions brought by a third party against the Indemnified Contributor to the +extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor to +control, and cooperate with the Commercial Contributor in, the defense and any +related settlement negotiations. The Indemnified Contributor may participate in +any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If that +Commercial Contributor then makes performance claims, or offers warranties +related to Product X, those performance claims and warranties are such +Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a court +requires any other Contributor to pay any damages as a result, the Commercial +Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its exercise of +rights under this Agreement, including but not limited to the risks and costs of +program errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST +PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS +GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable +law, it shall not affect the validity or enforceability of the remainder of the +terms of this Agreement, and without further action by the parties hereto, such +provision shall be reformed to the minimum extent necessary to make such +provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with respect to +a patent applicable to software (including a cross-claim or counterclaim in a +lawsuit), then any patent licenses granted by that Contributor to such Recipient +under this Agreement shall terminate as of the date such litigation is filed. In +addition, if Recipient institutes patent litigation against any entity +(including a cross-claim or counterclaim in a lawsuit) alleging that the Program +itself (excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue and +survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to time. +No one other than the Agreement Steward has the right to modify this Agreement. +IBM is the initial Agreement Steward. IBM may assign the responsibility to serve +as the Agreement Steward to a suitable separate entity. Each new version of the +Agreement will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the Agreement +under which it was received. In addition, after a new version of the Agreement +is published, Contributor may elect to distribute the Program (including its +Contributions) under the new version. Except as expressly stated in Sections +2(a) and 2(b) above, Recipient receives no rights or licenses to the +intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. Copied: usertools/swift-vm-boot/ec2/license.txt (from rev 5424, usertools/swift-ec2-boot/license.txt) =================================================================== --- usertools/swift-vm-boot/ec2/license.txt (rev 0) +++ usertools/swift-vm-boot/ec2/license.txt 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,40 @@ +Amazon Software License + +This Amazon Software License (?License?) governs your use, reproduction, and distribution of the accompanying software as specified below. +1. Definitions + +?Licensor? means any person or entity that distributes its Work. + +?Software? means the original work of authorship made available under this License. + +?Work? means the Software and any additions to or derivative works of the Software that are made available under this License. + +The terms ?reproduce,? ?reproduction,? ?derivative works,? and ?distribution? have the meaning as provided under U.S. copyright law; provided, however, that for the purposes of this License, derivative works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work. + +Works, including the Software, are ?made available? under this License by including in or with the Work either (a) a copyright notice referencing the applicability of this License to the Work, or (b) a copy of this License. +2. License Grants + +2.1 Copyright Grant. Subject to the terms and conditions of this License, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free, copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense and distribute its Work and any resulting derivative works in any form. + +2.2 Patent Grant. Subject to the terms and conditions of this License, each Licensor grants to you a perpetual, worldwide, non-exclusive, royalty-free patent license to make, have made, use, sell, offer for sale, import, and otherwise transfer its Work, in whole or in part. The foregoing license applies only to the patent claims licensable by Licensor that would be infringed by Licensor?s Work (or portion thereof) individually and excluding any combinations with any other materials or technology. +3. Limitations + +3.1 Redistribution. You may reproduce or distribute the Work only if (a) you do so under this License, (b) you include a complete copy of this License with your distribution, and? you retain without modification any copyright, patent, trademark, or attribution notices that are present in the Work. + +3.2 Derivative Works. You may specify that additional or different terms apply to the use, reproduction, and distribution of your derivative works of the Work (?Your Terms?) only if (a) Your Terms provide that the use limitation in Section 3.3 applies to your derivative works, and (b) you identify the specific derivative works that are subject to Your Terms. Notwithstanding Your Terms, this License (including the redistribution requirements in Section 3.1) will continue to apply to the Work itself. + +3.3 Use Limitation. The Work and any derivative works thereof only may be used or intended for use with the web services, computing platforms or applications provided by Amazon.com, Inc. or its affiliates, including Amazon Web Services LLC. + +3.4 Patent Claims. If you bring or threaten to bring a patent claim against any Licensor (including any claim, cross-claim or counterclaim in a lawsuit) to enforce any patents that you allege are infringed by any Work, then your rights under this License from such Licensor (including the grants in Sections 2.1 and 2.2) will terminate immediately. + +3.5 Trademarks. This License does not grant any rights to use any Licensor?s or its affiliates? names, logos, or trademarks, except as necessary to reproduce the notices described in this License. + +3.6 Termination. If you violate any term of this License, then your rights under this License (including the grants in Sections 2.1 and 2.2) will terminate immediately. +4. Disclaimer of Warranty. + +THE WORK IS PROVIDED ?AS IS? WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OR CONDITIONS OF M ERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. YOU BEAR THE RISK OF UNDERTAKING ANY ACTIVITIES UNDER THIS LICENSE. SOME STATES? CONSUMER LAWS DO NOT ALLOW EXCLUSION OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU. +5. Limitation of Liability. + +EXCEPT AS PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE SHALL ANY LICENSOR BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATED TO THIS LICENSE, THE USE OR INABILITY TO USE THE WORK (INCLUDING BUT NOT LIMITED TO LOSS OF GOODWILL, BUSINESS INTERRUPTION, LOST PROFITS OR DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY OTHER COMM ERCIAL DAMAGES OR LOSSES), EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Effective Date ? April 18, 2008 ? 2008 Amazon.com, Inc. or its affiliates. All rights reserved. Copied: usertools/swift-vm-boot/ec2/notice.txt (from rev 5424, usertools/swift-ec2-boot/notice.txt) =================================================================== --- usertools/swift-vm-boot/ec2/notice.txt (rev 0) +++ usertools/swift-vm-boot/ec2/notice.txt 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,5 @@ +Copyright 2006-2010 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the +Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of the +License is located at http://aws.amazon.com/asl or in the "license" file accompanying this file. This file is distributed on an "AS +IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific +language governing permissions and limitations under the License. Deleted: usertools/swift-vm-boot/env.sh =================================================================== --- usertools/swift-vm-boot/env.sh 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-vm-boot/env.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,9 +0,0 @@ -export FUTUREGRID_IAAS_ACCESS_KEY=XXXX -export FUTUREGRID_IAAS_SECRET_KEY=XXXXXXXXX - -export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY -export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY - -export EC2_URL=https://s83r.idp.sdsc.futuregrid.org:8444 - -export FUTUREGRID_SIERRA_NODES=2 Added: usertools/swift-vm-boot/futuregrid/bin/bootit.sh =================================================================== --- usertools/swift-vm-boot/futuregrid/bin/bootit.sh (rev 0) +++ usertools/swift-vm-boot/futuregrid/bin/bootit.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,22 @@ +#!/bin/bash + +dir=`dirname $0` +cd $dir +cd .. + +source env.sh +source ve/bin/activate + +output="output.json" +cloudinitd -l debug -v -v -v boot plan/top.conf -o $output +if [ $? -ne 0 ]; then + echo "The boot failed. Check the logs" + exit 1 +fi + +echo "getting the hostnames..." +python bin/handleoutput.py $output +if [ $? -ne 0 ]; then + echo "The output parse failed" + exit 1 +fi Property changes on: usertools/swift-vm-boot/futuregrid/bin/bootit.sh ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-vm-boot/futuregrid/bin/handleoutput.py =================================================================== --- usertools/swift-vm-boot/futuregrid/bin/handleoutput.py (rev 0) +++ usertools/swift-vm-boot/futuregrid/bin/handleoutput.py 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,16 @@ +#!/usr/bin/env python + +import os +import sys +import simplejson as json + +x = json.load(open(sys.argv[1], "r")) + +levels = x['levels'] +lvl1 = levels[0] +services = lvl1['services'] + +for svc in services: + print svc['hostname'] + + Property changes on: usertools/swift-vm-boot/futuregrid/bin/handleoutput.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-vm-boot/futuregrid/bin/nimbus-register-key.py =================================================================== --- usertools/swift-vm-boot/futuregrid/bin/nimbus-register-key.py (rev 0) +++ usertools/swift-vm-boot/futuregrid/bin/nimbus-register-key.py 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +import os +import sys +import base64 +import boto +from boto.ec2.regioninfo import RegionInfo +import urllib2 + + +def add_key(ec2conn, keyname, keytext): + pairs = ec2conn.get_all_key_pairs([keyname,]) + if not pairs: + print "Adding a new key pair named %s" % (keyname) + ec2conn.import_key_pair(keyname, keytext) + else: + print "Keyname %s already exists" % (keyname) + +try: + access_id = os.environ['FUTUREGRID_IAAS_ACCESS_KEY'] + access_secret = os.environ['FUTUREGRID_IAAS_SECRET_KEY'] + + iaas_url = os.environ['FUTUREGRID_IAAS_URL'] +except Exception, ex: + print "Make sure the envs CLOUDINITD_* are set %s" % (str(ex)) + sys.exit(1) + +url_parts = urllib2.urlparse.urlparse(iaas_url) +region = RegionInfo(name="nimbus", endpoint=url_parts.hostname) +ec2conn = boto.connect_ec2(access_id, access_secret, region=region, port=url_parts.port) + +keyname = sys.argv[1] +keylocation = sys.argv[2] +keytext = open(keylocation).read() +keytext = base64.b64encode(keytext) +add_key(ec2conn, keyname, keytext) + +sys.exit(0) + Added: usertools/swift-vm-boot/futuregrid/bin/register_key.py =================================================================== --- usertools/swift-vm-boot/futuregrid/bin/register_key.py (rev 0) +++ usertools/swift-vm-boot/futuregrid/bin/register_key.py 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +import os +import sys +import base64 +import boto +from boto.ec2.regioninfo import RegionInfo + + +try: + access_id = os.environ['FUTUREGRID_IAAS_ACCESS_KEY'] + access_secret = os.environ['FUTUREGRID_IAAS_SECRET_KEY'] +except: + print "Make sure the envs FUTUREGRID_IAAS_ACCESS_KEY and FUTUREGRID_IAAS_SECRET_KEY are set" + sys.exit(1) + +hostfile = sys.argv[1] +keyname = "swiftkey" +if len(sys.argv) > 2: + keylocation = sys.argv[2] +else: + keylocation = os.path.expanduser("~/.ssh/id_rsa.pub") + +keytext = open(keylocation).read() + +f = open(hostfile, "r") +for line in f: + host = line.strip() + print "creating key %s on %s" % (keyname, host) + + region = RegionInfo(name="nimbus", endpoint=host) + ec2conn = boto.connect_ec2(access_id, access_secret, region=region, port=8444) + +# keytext = base64.b64encode(keytext) + ec2conn.import_key_pair(keyname, keytext) + +sys.exit(0) Property changes on: usertools/swift-vm-boot/futuregrid/bin/register_key.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-vm-boot/futuregrid/bin/virtualenv.py =================================================================== --- usertools/swift-vm-boot/futuregrid/bin/virtualenv.py (rev 0) +++ usertools/swift-vm-boot/futuregrid/bin/virtualenv.py 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,1651 @@ +#!/usr/bin/env python +"""Create a "virtual" Python installation +""" + +virtualenv_version = "1.5.1" + +import sys +import os +import optparse +import re +import shutil +import logging +import tempfile +import distutils.sysconfig +try: + import subprocess +except ImportError, e: + if sys.version_info <= (2, 3): + print 'ERROR: %s' % e + print 'ERROR: this script requires Python 2.4 or greater; or at least the subprocess module.' + print 'If you copy subprocess.py from a newer version of Python this script will probably work' + sys.exit(101) + else: + raise +try: + set +except NameError: + from sets import Set as set + +join = os.path.join +py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1]) + +is_jython = sys.platform.startswith('java') +is_pypy = hasattr(sys, 'pypy_version_info') + +if is_pypy: + expected_exe = 'pypy-c' +elif is_jython: + expected_exe = 'jython' +else: + expected_exe = 'python' + + +REQUIRED_MODULES = ['os', 'posix', 'posixpath', 'nt', 'ntpath', 'genericpath', + 'fnmatch', 'locale', 'encodings', 'codecs', + 'stat', 'UserDict', 'readline', 'copy_reg', 'types', + 're', 'sre', 'sre_parse', 'sre_constants', 'sre_compile', + 'zlib'] + +REQUIRED_FILES = ['lib-dynload', 'config'] + +if sys.version_info[:2] >= (2, 6): + REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc']) +if sys.version_info[:2] >= (2, 7): + REQUIRED_MODULES.extend(['_weakrefset']) +if sys.version_info[:2] <= (2, 3): + REQUIRED_MODULES.extend(['sets', '__future__']) +if is_pypy: + # these are needed to correctly display the exceptions that may happen + # during the bootstrap + REQUIRED_MODULES.extend(['traceback', 'linecache']) + +class Logger(object): + + """ + Logging object for use in command-line script. Allows ranges of + levels, to avoid some redundancy of displayed information. + """ + + DEBUG = logging.DEBUG + INFO = logging.INFO + NOTIFY = (logging.INFO+logging.WARN)/2 + WARN = WARNING = logging.WARN + ERROR = logging.ERROR + FATAL = logging.FATAL + + LEVELS = [DEBUG, INFO, NOTIFY, WARN, ERROR, FATAL] + + def __init__(self, consumers): + self.consumers = consumers + self.indent = 0 + self.in_progress = None + self.in_progress_hanging = False + + def debug(self, msg, *args, **kw): + self.log(self.DEBUG, msg, *args, **kw) + def info(self, msg, *args, **kw): + self.log(self.INFO, msg, *args, **kw) + def notify(self, msg, *args, **kw): + self.log(self.NOTIFY, msg, *args, **kw) + def warn(self, msg, *args, **kw): + self.log(self.WARN, msg, *args, **kw) + def error(self, msg, *args, **kw): + self.log(self.WARN, msg, *args, **kw) + def fatal(self, msg, *args, **kw): + self.log(self.FATAL, msg, *args, **kw) + def log(self, level, msg, *args, **kw): + if args: + if kw: + raise TypeError( + "You may give positional or keyword arguments, not both") + args = args or kw + rendered = None + for consumer_level, consumer in self.consumers: + if self.level_matches(level, consumer_level): + if (self.in_progress_hanging + and consumer in (sys.stdout, sys.stderr)): + self.in_progress_hanging = False + sys.stdout.write('\n') + sys.stdout.flush() + if rendered is None: + if args: + rendered = msg % args + else: + rendered = msg + rendered = ' '*self.indent + rendered + if hasattr(consumer, 'write'): + consumer.write(rendered+'\n') + else: + consumer(rendered) + + def start_progress(self, msg): + assert not self.in_progress, ( + "Tried to start_progress(%r) while in_progress %r" + % (msg, self.in_progress)) + if self.level_matches(self.NOTIFY, self._stdout_level()): + sys.stdout.write(msg) + sys.stdout.flush() + self.in_progress_hanging = True + else: + self.in_progress_hanging = False + self.in_progress = msg + + def end_progress(self, msg='done.'): + assert self.in_progress, ( + "Tried to end_progress without start_progress") + if self.stdout_level_matches(self.NOTIFY): + if not self.in_progress_hanging: + # Some message has been printed out since start_progress + sys.stdout.write('...' + self.in_progress + msg + '\n') + sys.stdout.flush() + else: + sys.stdout.write(msg + '\n') + sys.stdout.flush() + self.in_progress = None + self.in_progress_hanging = False + + def show_progress(self): + """If we are in a progress scope, and no log messages have been + shown, write out another '.'""" + if self.in_progress_hanging: + sys.stdout.write('.') + sys.stdout.flush() + + def stdout_level_matches(self, level): + """Returns true if a message at this level will go to stdout""" + return self.level_matches(level, self._stdout_level()) + + def _stdout_level(self): + """Returns the level that stdout runs at""" + for level, consumer in self.consumers: + if consumer is sys.stdout: + return level + return self.FATAL + + def level_matches(self, level, consumer_level): + """ + >>> l = Logger() + >>> l.level_matches(3, 4) + False + >>> l.level_matches(3, 2) + True + >>> l.level_matches(slice(None, 3), 3) + False + >>> l.level_matches(slice(None, 3), 2) + True + >>> l.level_matches(slice(1, 3), 1) + True + >>> l.level_matches(slice(2, 3), 1) + False + """ + if isinstance(level, slice): + start, stop = level.start, level.stop + if start is not None and start > consumer_level: + return False + if stop is not None or stop <= consumer_level: + return False + return True + else: + return level >= consumer_level + + #@classmethod + def level_for_integer(cls, level): + levels = cls.LEVELS + if level < 0: + return levels[0] + if level >= len(levels): + return levels[-1] + return levels[level] + + level_for_integer = classmethod(level_for_integer) + +def mkdir(path): + if not os.path.exists(path): + logger.info('Creating %s', path) + os.makedirs(path) + else: + logger.info('Directory %s already exists', path) + +def copyfile(src, dest, symlink=True): + if not os.path.exists(src): + # Some bad symlink in the src + logger.warn('Cannot find file %s (bad symlink)', src) + return + if os.path.exists(dest): + logger.debug('File %s already exists', dest) + return + if not os.path.exists(os.path.dirname(dest)): + logger.info('Creating parent directories for %s' % os.path.dirname(dest)) + os.makedirs(os.path.dirname(dest)) + if symlink and hasattr(os, 'symlink'): + logger.info('Symlinking %s', dest) + os.symlink(os.path.abspath(src), dest) + else: + logger.info('Copying to %s', dest) + if os.path.isdir(src): + shutil.copytree(src, dest, True) + else: + shutil.copy2(src, dest) + +def writefile(dest, content, overwrite=True): + if not os.path.exists(dest): + logger.info('Writing %s', dest) + f = open(dest, 'wb') + f.write(content) + f.close() + return + else: + f = open(dest, 'rb') + c = f.read() + f.close() + if c != content: + if not overwrite: + logger.notify('File %s exists with different content; not overwriting', dest) + return + logger.notify('Overwriting %s with new content', dest) + f = open(dest, 'wb') + f.write(content) + f.close() + else: + logger.info('Content %s already in place', dest) + +def rmtree(dir): + if os.path.exists(dir): + logger.notify('Deleting tree %s', dir) + shutil.rmtree(dir) + else: + logger.info('Do not need to delete %s; already gone', dir) + +def make_exe(fn): + if hasattr(os, 'chmod'): + oldmode = os.stat(fn).st_mode & 07777 + newmode = (oldmode | 0555) & 07777 + os.chmod(fn, newmode) + logger.info('Changed mode of %s to %s', fn, oct(newmode)) + +def _find_file(filename, dirs): + for dir in dirs: + if os.path.exists(join(dir, filename)): + return join(dir, filename) + return filename + +def _install_req(py_executable, unzip=False, distribute=False): + if not distribute: + setup_fn = 'setuptools-0.6c11-py%s.egg' % sys.version[:3] + project_name = 'setuptools' + bootstrap_script = EZ_SETUP_PY + source = None + else: + setup_fn = None + source = 'distribute-0.6.14.tar.gz' + project_name = 'distribute' + bootstrap_script = DISTRIBUTE_SETUP_PY + try: + # check if the global Python has distribute installed or plain + # setuptools + import pkg_resources + if not hasattr(pkg_resources, '_distribute'): + location = os.path.dirname(pkg_resources.__file__) + logger.notify("A globally installed setuptools was found (in %s)" % location) + logger.notify("Use the --no-site-packages option to use distribute in " + "the virtualenv.") + except ImportError: + pass + + search_dirs = file_search_dirs() + + if setup_fn is not None: + setup_fn = _find_file(setup_fn, search_dirs) + + if source is not None: + source = _find_file(source, search_dirs) + + if is_jython and os._name == 'nt': + # Jython's .bat sys.executable can't handle a command line + # argument with newlines + fd, ez_setup = tempfile.mkstemp('.py') + os.write(fd, bootstrap_script) + os.close(fd) + cmd = [py_executable, ez_setup] + else: + cmd = [py_executable, '-c', bootstrap_script] + if unzip: + cmd.append('--always-unzip') + env = {} + remove_from_env = [] + if logger.stdout_level_matches(logger.DEBUG): + cmd.append('-v') + + old_chdir = os.getcwd() + if setup_fn is not None and os.path.exists(setup_fn): + logger.info('Using existing %s egg: %s' % (project_name, setup_fn)) + cmd.append(setup_fn) + if os.environ.get('PYTHONPATH'): + env['PYTHONPATH'] = setup_fn + os.path.pathsep + os.environ['PYTHONPATH'] + else: + env['PYTHONPATH'] = setup_fn + else: + # the source is found, let's chdir + if source is not None and os.path.exists(source): + os.chdir(os.path.dirname(source)) + # in this case, we want to be sure that PYTHONPATH is unset (not + # just empty, really unset), else CPython tries to import the + # site.py that it's in virtualenv_support + remove_from_env.append('PYTHONPATH') + else: + logger.info('No %s egg found; downloading' % project_name) + cmd.extend(['--always-copy', '-U', project_name]) + logger.start_progress('Installing %s...' % project_name) + logger.indent += 2 + cwd = None + if project_name == 'distribute': + env['DONT_PATCH_SETUPTOOLS'] = 'true' + + def _filter_ez_setup(line): + return filter_ez_setup(line, project_name) + + if not os.access(os.getcwd(), os.W_OK): + cwd = tempfile.mkdtemp() + if source is not None and os.path.exists(source): + # the current working dir is hostile, let's copy the + # tarball to a temp dir + target = os.path.join(cwd, os.path.split(source)[-1]) + shutil.copy(source, target) + try: + call_subprocess(cmd, show_stdout=False, + filter_stdout=_filter_ez_setup, + extra_env=env, + remove_from_env=remove_from_env, + cwd=cwd) + finally: + logger.indent -= 2 + logger.end_progress() + if os.getcwd() != old_chdir: + os.chdir(old_chdir) + if is_jython and os._name == 'nt': + os.remove(ez_setup) + +def file_search_dirs(): + here = os.path.dirname(os.path.abspath(__file__)) + dirs = ['.', here, + join(here, 'virtualenv_support')] + if os.path.splitext(os.path.dirname(__file__))[0] != 'virtualenv': + # Probably some boot script; just in case virtualenv is installed... + try: + import virtualenv + except ImportError: + pass + else: + dirs.append(os.path.join(os.path.dirname(virtualenv.__file__), 'virtualenv_support')) + return [d for d in dirs if os.path.isdir(d)] + +def install_setuptools(py_executable, unzip=False): + _install_req(py_executable, unzip) + +def install_distribute(py_executable, unzip=False): + _install_req(py_executable, unzip, distribute=True) + +_pip_re = re.compile(r'^pip-.*(zip|tar.gz|tar.bz2|tgz|tbz)$', re.I) +def install_pip(py_executable): + filenames = [] + for dir in file_search_dirs(): + filenames.extend([join(dir, fn) for fn in os.listdir(dir) + if _pip_re.search(fn)]) + filenames = [(os.path.basename(filename).lower(), i, filename) for i, filename in enumerate(filenames)] + filenames.sort() + filenames = [filename for basename, i, filename in filenames] + if not filenames: + filename = 'pip' + else: + filename = filenames[-1] + easy_install_script = 'easy_install' + if sys.platform == 'win32': + easy_install_script = 'easy_install-script.py' + cmd = [py_executable, join(os.path.dirname(py_executable), easy_install_script), filename] + if filename == 'pip': + logger.info('Installing pip from network...') + else: + logger.info('Installing %s' % os.path.basename(filename)) + logger.indent += 2 + def _filter_setup(line): + return filter_ez_setup(line, 'pip') + try: + call_subprocess(cmd, show_stdout=False, + filter_stdout=_filter_setup) + finally: + logger.indent -= 2 + +def filter_ez_setup(line, project_name='setuptools'): + if not line.strip(): + return Logger.DEBUG + if project_name == 'distribute': + for prefix in ('Extracting', 'Now working', 'Installing', 'Before', + 'Scanning', 'Setuptools', 'Egg', 'Already', + 'running', 'writing', 'reading', 'installing', + 'creating', 'copying', 'byte-compiling', 'removing', + 'Processing'): + if line.startswith(prefix): + return Logger.DEBUG + return Logger.DEBUG + for prefix in ['Reading ', 'Best match', 'Processing setuptools', + 'Copying setuptools', 'Adding setuptools', + 'Installing ', 'Installed ']: + if line.startswith(prefix): + return Logger.DEBUG + return Logger.INFO + +def main(): + parser = optparse.OptionParser( + version=virtualenv_version, + usage="%prog [OPTIONS] DEST_DIR") + + parser.add_option( + '-v', '--verbose', + action='count', + dest='verbose', + default=0, + help="Increase verbosity") + + parser.add_option( + '-q', '--quiet', + action='count', + dest='quiet', + default=0, + help='Decrease verbosity') + + parser.add_option( + '-p', '--python', + dest='python', + metavar='PYTHON_EXE', + help='The Python interpreter to use, e.g., --python=python2.5 will use the python2.5 ' + 'interpreter to create the new environment. The default is the interpreter that ' + 'virtualenv was installed with (%s)' % sys.executable) + + parser.add_option( + '--clear', + dest='clear', + action='store_true', + help="Clear out the non-root install and start from scratch") + + parser.add_option( + '--no-site-packages', + dest='no_site_packages', + action='store_true', + help="Don't give access to the global site-packages dir to the " + "virtual environment") + + parser.add_option( + '--unzip-setuptools', + dest='unzip_setuptools', + action='store_true', + help="Unzip Setuptools or Distribute when installing it") + + parser.add_option( + '--relocatable', + dest='relocatable', + action='store_true', + help='Make an EXISTING virtualenv environment relocatable. ' + 'This fixes up scripts and makes all .pth files relative') + + parser.add_option( + '--distribute', + dest='use_distribute', + action='store_true', + help='Use Distribute instead of Setuptools. Set environ variable ' + 'VIRTUALENV_USE_DISTRIBUTE to make it the default ') + + parser.add_option( + '--prompt=', + dest='prompt', + help='Provides an alternative prompt prefix for this environment') + + if 'extend_parser' in globals(): + extend_parser(parser) + + options, args = parser.parse_args() + + global logger + + if 'adjust_options' in globals(): + adjust_options(options, args) + + verbosity = options.verbose - options.quiet + logger = Logger([(Logger.level_for_integer(2-verbosity), sys.stdout)]) + + if options.python and not os.environ.get('VIRTUALENV_INTERPRETER_RUNNING'): + env = os.environ.copy() + interpreter = resolve_interpreter(options.python) + if interpreter == sys.executable: + logger.warn('Already using interpreter %s' % interpreter) + else: + logger.notify('Running virtualenv with interpreter %s' % interpreter) + env['VIRTUALENV_INTERPRETER_RUNNING'] = 'true' + file = __file__ + if file.endswith('.pyc'): + file = file[:-1] + popen = subprocess.Popen([interpreter, file] + sys.argv[1:], env=env) + raise SystemExit(popen.wait()) + + if not args: + print 'You must provide a DEST_DIR' + parser.print_help() + sys.exit(2) + if len(args) > 1: + print 'There must be only one argument: DEST_DIR (you gave %s)' % ( + ' '.join(args)) + parser.print_help() + sys.exit(2) + + home_dir = args[0] + + if os.environ.get('WORKING_ENV'): + logger.fatal('ERROR: you cannot run virtualenv while in a workingenv') + logger.fatal('Please deactivate your workingenv, then re-run this script') + sys.exit(3) + + if 'PYTHONHOME' in os.environ: + logger.warn('PYTHONHOME is set. You *must* activate the virtualenv before using it') + del os.environ['PYTHONHOME'] + + if options.relocatable: + make_environment_relocatable(home_dir) + return + + create_environment(home_dir, site_packages=not options.no_site_packages, clear=options.clear, + unzip_setuptools=options.unzip_setuptools, + use_distribute=options.use_distribute, + prompt=options.prompt) + if 'after_install' in globals(): + after_install(options, home_dir) + +def call_subprocess(cmd, show_stdout=True, + filter_stdout=None, cwd=None, + raise_on_returncode=True, extra_env=None, + remove_from_env=None): + cmd_parts = [] + for part in cmd: + if len(part) > 40: + part = part[:30]+"..."+part[-5:] + if ' ' in part or '\n' in part or '"' in part or "'" in part: + part = '"%s"' % part.replace('"', '\\"') + cmd_parts.append(part) + cmd_desc = ' '.join(cmd_parts) + if show_stdout: + stdout = None + else: + stdout = subprocess.PIPE + logger.debug("Running command %s" % cmd_desc) + if extra_env or remove_from_env: + env = os.environ.copy() + if extra_env: + env.update(extra_env) + if remove_from_env: + for varname in remove_from_env: + env.pop(varname, None) + else: + env = None + try: + proc = subprocess.Popen( + cmd, stderr=subprocess.STDOUT, stdin=None, stdout=stdout, + cwd=cwd, env=env) + except Exception, e: + logger.fatal( + "Error %s while executing command %s" % (e, cmd_desc)) + raise + all_output = [] + if stdout is not None: + stdout = proc.stdout + while 1: + line = stdout.readline() + if not line: + break + line = line.rstrip() + all_output.append(line) + if filter_stdout: + level = filter_stdout(line) + if isinstance(level, tuple): + level, line = level + logger.log(level, line) + if not logger.stdout_level_matches(level): + logger.show_progress() + else: + logger.info(line) + else: + proc.communicate() + proc.wait() + if proc.returncode: + if raise_on_returncode: + if all_output: + logger.notify('Complete output from command %s:' % cmd_desc) + logger.notify('\n'.join(all_output) + '\n----------------------------------------') + raise OSError( + "Command %s failed with error code %s" + % (cmd_desc, proc.returncode)) + else: + logger.warn( + "Command %s had error code %s" + % (cmd_desc, proc.returncode)) + + +def create_environment(home_dir, site_packages=True, clear=False, + unzip_setuptools=False, use_distribute=False, + prompt=None): + """ + Creates a new environment in ``home_dir``. + + If ``site_packages`` is true (the default) then the global + ``site-packages/`` directory will be on the path. + + If ``clear`` is true (default False) then the environment will + first be cleared. + """ + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + + py_executable = os.path.abspath(install_python( + home_dir, lib_dir, inc_dir, bin_dir, + site_packages=site_packages, clear=clear)) + + install_distutils(home_dir) + + if use_distribute or os.environ.get('VIRTUALENV_USE_DISTRIBUTE'): + install_distribute(py_executable, unzip=unzip_setuptools) + else: + install_setuptools(py_executable, unzip=unzip_setuptools) + + install_pip(py_executable) + + install_activate(home_dir, bin_dir, prompt) + +def path_locations(home_dir): + """Return the path locations for the environment (where libraries are, + where scripts go, etc)""" + # XXX: We'd use distutils.sysconfig.get_python_inc/lib but its + # prefix arg is broken: http://bugs.python.org/issue3386 + if sys.platform == 'win32': + # Windows has lots of problems with executables with spaces in + # the name; this function will remove them (using the ~1 + # format): + mkdir(home_dir) + if ' ' in home_dir: + try: + import win32api + except ImportError: + print 'Error: the path "%s" has a space in it' % home_dir + print 'To handle these kinds of paths, the win32api module must be installed:' + print ' http://sourceforge.net/projects/pywin32/' + sys.exit(3) + home_dir = win32api.GetShortPathName(home_dir) + lib_dir = join(home_dir, 'Lib') + inc_dir = join(home_dir, 'Include') + bin_dir = join(home_dir, 'Scripts') + elif is_jython: + lib_dir = join(home_dir, 'Lib') + inc_dir = join(home_dir, 'Include') + bin_dir = join(home_dir, 'bin') + elif is_pypy: + lib_dir = home_dir + inc_dir = join(home_dir, 'include') + bin_dir = join(home_dir, 'bin') + else: + lib_dir = join(home_dir, 'lib', py_version) + inc_dir = join(home_dir, 'include', py_version) + bin_dir = join(home_dir, 'bin') + return home_dir, lib_dir, inc_dir, bin_dir + + +def change_prefix(filename, dst_prefix): + prefixes = [sys.prefix] + if hasattr(sys, 'real_prefix'): + prefixes.append(sys.real_prefix) + prefixes = map(os.path.abspath, prefixes) + filename = os.path.abspath(filename) + for src_prefix in prefixes: + if filename.startswith(src_prefix): + _, relpath = filename.split(src_prefix, 1) + assert relpath[0] == os.sep + relpath = relpath[1:] + return join(dst_prefix, relpath) + assert False, "Filename %s does not start with any of these prefixes: %s" % \ + (filename, prefixes) + +def copy_required_modules(dst_prefix): + import imp + for modname in REQUIRED_MODULES: + if modname in sys.builtin_module_names: + logger.info("Ignoring built-in bootstrap module: %s" % modname) + continue + try: + f, filename, _ = imp.find_module(modname) + except ImportError: + logger.info("Cannot import bootstrap module: %s" % modname) + else: + if f is not None: + f.close() + dst_filename = change_prefix(filename, dst_prefix) + copyfile(filename, dst_filename) + if filename.endswith('.pyc'): + pyfile = filename[:-1] + if os.path.exists(pyfile): + copyfile(pyfile, dst_filename[:-1]) + + +def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear): + """Install just the base environment, no distutils patches etc""" + if sys.executable.startswith(bin_dir): + print 'Please use the *system* python to run this script' + return + + if clear: + rmtree(lib_dir) + ## FIXME: why not delete it? + ## Maybe it should delete everything with #!/path/to/venv/python in it + logger.notify('Not deleting %s', bin_dir) + + if hasattr(sys, 'real_prefix'): + logger.notify('Using real prefix %r' % sys.real_prefix) + prefix = sys.real_prefix + else: + prefix = sys.prefix + mkdir(lib_dir) + fix_lib64(lib_dir) + stdlib_dirs = [os.path.dirname(os.__file__)] + if sys.platform == 'win32': + stdlib_dirs.append(join(os.path.dirname(stdlib_dirs[0]), 'DLLs')) + elif sys.platform == 'darwin': + stdlib_dirs.append(join(stdlib_dirs[0], 'site-packages')) + if hasattr(os, 'symlink'): + logger.info('Symlinking Python bootstrap modules') + else: + logger.info('Copying Python bootstrap modules') + logger.indent += 2 + try: + # copy required files... + for stdlib_dir in stdlib_dirs: + if not os.path.isdir(stdlib_dir): + continue + for fn in os.listdir(stdlib_dir): + if fn != 'site-packages' and os.path.splitext(fn)[0] in REQUIRED_FILES: + copyfile(join(stdlib_dir, fn), join(lib_dir, fn)) + # ...and modules + copy_required_modules(home_dir) + finally: + logger.indent -= 2 + mkdir(join(lib_dir, 'site-packages')) + import site + site_filename = site.__file__ + if site_filename.endswith('.pyc'): + site_filename = site_filename[:-1] + elif site_filename.endswith('$py.class'): + site_filename = site_filename.replace('$py.class', '.py') + site_filename_dst = change_prefix(site_filename, home_dir) + site_dir = os.path.dirname(site_filename_dst) + writefile(site_filename_dst, SITE_PY) + writefile(join(site_dir, 'orig-prefix.txt'), prefix) + site_packages_filename = join(site_dir, 'no-global-site-packages.txt') + if not site_packages: + writefile(site_packages_filename, '') + else: + if os.path.exists(site_packages_filename): + logger.info('Deleting %s' % site_packages_filename) + os.unlink(site_packages_filename) + + if is_pypy: + stdinc_dir = join(prefix, 'include') + else: + stdinc_dir = join(prefix, 'include', py_version) + if os.path.exists(stdinc_dir): + copyfile(stdinc_dir, inc_dir) + else: + logger.debug('No include dir %s' % stdinc_dir) + + if sys.exec_prefix != prefix: + if sys.platform == 'win32': + exec_dir = join(sys.exec_prefix, 'lib') + elif is_jython: + exec_dir = join(sys.exec_prefix, 'Lib') + else: + exec_dir = join(sys.exec_prefix, 'lib', py_version) + for fn in os.listdir(exec_dir): + copyfile(join(exec_dir, fn), join(lib_dir, fn)) + + if is_jython: + # Jython has either jython-dev.jar and javalib/ dir, or just + # jython.jar + for name in 'jython-dev.jar', 'javalib', 'jython.jar': + src = join(prefix, name) + if os.path.exists(src): + copyfile(src, join(home_dir, name)) + # XXX: registry should always exist after Jython 2.5rc1 + src = join(prefix, 'registry') + if os.path.exists(src): + copyfile(src, join(home_dir, 'registry'), symlink=False) + copyfile(join(prefix, 'cachedir'), join(home_dir, 'cachedir'), + symlink=False) + + mkdir(bin_dir) + py_executable = join(bin_dir, os.path.basename(sys.executable)) + if 'Python.framework' in prefix: + if re.search(r'/Python(?:-32|-64)*$', py_executable): + # The name of the python executable is not quite what + # we want, rename it. + py_executable = os.path.join( + os.path.dirname(py_executable), 'python') + + logger.notify('New %s executable in %s', expected_exe, py_executable) + if sys.executable != py_executable: + ## FIXME: could I just hard link? + executable = sys.executable + if sys.platform == 'cygwin' and os.path.exists(executable + '.exe'): + # Cygwin misreports sys.executable sometimes + executable += '.exe' + py_executable += '.exe' + logger.info('Executable actually exists in %s' % executable) + shutil.copyfile(executable, py_executable) + make_exe(py_executable) + if sys.platform == 'win32' or sys.platform == 'cygwin': + pythonw = os.path.join(os.path.dirname(sys.executable), 'pythonw.exe') + if os.path.exists(pythonw): + logger.info('Also created pythonw.exe') + shutil.copyfile(pythonw, os.path.join(os.path.dirname(py_executable), 'pythonw.exe')) + if is_pypy: + # make a symlink python --> pypy-c + python_executable = os.path.join(os.path.dirname(py_executable), 'python') + logger.info('Also created executable %s' % python_executable) + copyfile(py_executable, python_executable) + + if os.path.splitext(os.path.basename(py_executable))[0] != expected_exe: + secondary_exe = os.path.join(os.path.dirname(py_executable), + expected_exe) + py_executable_ext = os.path.splitext(py_executable)[1] + if py_executable_ext == '.exe': + # python2.4 gives an extension of '.4' :P + secondary_exe += py_executable_ext + if os.path.exists(secondary_exe): + logger.warn('Not overwriting existing %s script %s (you must use %s)' + % (expected_exe, secondary_exe, py_executable)) + else: + logger.notify('Also creating executable in %s' % secondary_exe) + shutil.copyfile(sys.executable, secondary_exe) + make_exe(secondary_exe) + + if 'Python.framework' in prefix: + logger.debug('MacOSX Python framework detected') + + # Make sure we use the the embedded interpreter inside + # the framework, even if sys.executable points to + # the stub executable in ${sys.prefix}/bin + # See http://groups.google.com/group/python-virtualenv/ + # browse_thread/thread/17cab2f85da75951 + original_python = os.path.join( + prefix, 'Resources/Python.app/Contents/MacOS/Python') + shutil.copy(original_python, py_executable) + + # Copy the framework's dylib into the virtual + # environment + virtual_lib = os.path.join(home_dir, '.Python') + + if os.path.exists(virtual_lib): + os.unlink(virtual_lib) + copyfile( + os.path.join(prefix, 'Python'), + virtual_lib) + + # And then change the install_name of the copied python executable + try: + call_subprocess( + ["install_name_tool", "-change", + os.path.join(prefix, 'Python'), + '@executable_path/../.Python', + py_executable]) + except: + logger.fatal( + "Could not call install_name_tool -- you must have Apple's development tools installed") + raise + + # Some tools depend on pythonX.Y being present + py_executable_version = '%s.%s' % ( + sys.version_info[0], sys.version_info[1]) + if not py_executable.endswith(py_executable_version): + # symlinking pythonX.Y > python + pth = py_executable + '%s.%s' % ( + sys.version_info[0], sys.version_info[1]) + if os.path.exists(pth): + os.unlink(pth) + os.symlink('python', pth) + else: + # reverse symlinking python -> pythonX.Y (with --python) + pth = join(bin_dir, 'python') + if os.path.exists(pth): + os.unlink(pth) + os.symlink(os.path.basename(py_executable), pth) + + if sys.platform == 'win32' and ' ' in py_executable: + # There's a bug with subprocess on Windows when using a first + # argument that has a space in it. Instead we have to quote + # the value: + py_executable = '"%s"' % py_executable + cmd = [py_executable, '-c', 'import sys; print sys.prefix'] + logger.info('Testing executable with %s %s "%s"' % tuple(cmd)) + proc = subprocess.Popen(cmd, + stdout=subprocess.PIPE) + proc_stdout, proc_stderr = proc.communicate() + proc_stdout = os.path.normcase(os.path.abspath(proc_stdout.strip())) + if proc_stdout != os.path.normcase(os.path.abspath(home_dir)): + logger.fatal( + 'ERROR: The executable %s is not functioning' % py_executable) + logger.fatal( + 'ERROR: It thinks sys.prefix is %r (should be %r)' + % (proc_stdout, os.path.normcase(os.path.abspath(home_dir)))) + logger.fatal( + 'ERROR: virtualenv is not compatible with this system or executable') + if sys.platform == 'win32': + logger.fatal( + 'Note: some Windows users have reported this error when they installed Python for "Only this user". The problem may be resolvable if you install Python "For all users". (See https://bugs.launchpad.net/virtualenv/+bug/352844)') + sys.exit(100) + else: + logger.info('Got sys.prefix result: %r' % proc_stdout) + + pydistutils = os.path.expanduser('~/.pydistutils.cfg') + if os.path.exists(pydistutils): + logger.notify('Please make sure you remove any previous custom paths from ' + 'your %s file.' % pydistutils) + ## FIXME: really this should be calculated earlier + return py_executable + +def install_activate(home_dir, bin_dir, prompt=None): + if sys.platform == 'win32' or is_jython and os._name == 'nt': + files = {'activate.bat': ACTIVATE_BAT, + 'deactivate.bat': DEACTIVATE_BAT} + if os.environ.get('OS') == 'Windows_NT' and os.environ.get('OSTYPE') == 'cygwin': + files['activate'] = ACTIVATE_SH + else: + files = {'activate': ACTIVATE_SH} + + # suppling activate.fish in addition to, not instead of, the + # bash script support. + files['activate.fish'] = ACTIVATE_FISH + + # same for csh/tcsh support... + files['activate.csh'] = ACTIVATE_CSH + + + + files['activate_this.py'] = ACTIVATE_THIS + vname = os.path.basename(os.path.abspath(home_dir)) + for name, content in files.items(): + content = content.replace('__VIRTUAL_PROMPT__', prompt or '') + content = content.replace('__VIRTUAL_WINPROMPT__', prompt or '(%s)' % vname) + content = content.replace('__VIRTUAL_ENV__', os.path.abspath(home_dir)) + content = content.replace('__VIRTUAL_NAME__', vname) + content = content.replace('__BIN_NAME__', os.path.basename(bin_dir)) + writefile(os.path.join(bin_dir, name), content) + +def install_distutils(home_dir): + distutils_path = change_prefix(distutils.__path__[0], home_dir) + mkdir(distutils_path) + ## FIXME: maybe this prefix setting should only be put in place if + ## there's a local distutils.cfg with a prefix setting? + home_dir = os.path.abspath(home_dir) + ## FIXME: this is breaking things, removing for now: + #distutils_cfg = DISTUTILS_CFG + "\n[install]\nprefix=%s\n" % home_dir + writefile(os.path.join(distutils_path, '__init__.py'), DISTUTILS_INIT) + writefile(os.path.join(distutils_path, 'distutils.cfg'), DISTUTILS_CFG, overwrite=False) + +def fix_lib64(lib_dir): + """ + Some platforms (particularly Gentoo on x64) put things in lib64/pythonX.Y + instead of lib/pythonX.Y. If this is such a platform we'll just create a + symlink so lib64 points to lib + """ + if [p for p in distutils.sysconfig.get_config_vars().values() + if isinstance(p, basestring) and 'lib64' in p]: + logger.debug('This system uses lib64; symlinking lib64 to lib') + assert os.path.basename(lib_dir) == 'python%s' % sys.version[:3], ( + "Unexpected python lib dir: %r" % lib_dir) + lib_parent = os.path.dirname(lib_dir) + assert os.path.basename(lib_parent) == 'lib', ( + "Unexpected parent dir: %r" % lib_parent) + copyfile(lib_parent, os.path.join(os.path.dirname(lib_parent), 'lib64')) + +def resolve_interpreter(exe): + """ + If the executable given isn't an absolute path, search $PATH for the interpreter + """ + if os.path.abspath(exe) != exe: + paths = os.environ.get('PATH', '').split(os.pathsep) + for path in paths: + if os.path.exists(os.path.join(path, exe)): + exe = os.path.join(path, exe) + break + if not os.path.exists(exe): + logger.fatal('The executable %s (from --python=%s) does not exist' % (exe, exe)) + sys.exit(3) + return exe + +############################################################ +## Relocating the environment: + +def make_environment_relocatable(home_dir): + """ + Makes the already-existing environment use relative paths, and takes out + the #!-based environment selection in scripts. + """ + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + activate_this = os.path.join(bin_dir, 'activate_this.py') + if not os.path.exists(activate_this): + logger.fatal( + 'The environment doesn\'t have a file %s -- please re-run virtualenv ' + 'on this environment to update it' % activate_this) + fixup_scripts(home_dir) + fixup_pth_and_egg_link(home_dir) + ## FIXME: need to fix up distutils.cfg + +OK_ABS_SCRIPTS = ['python', 'python%s' % sys.version[:3], + 'activate', 'activate.bat', 'activate_this.py'] + +def fixup_scripts(home_dir): + # This is what we expect at the top of scripts: + shebang = '#!%s/bin/python' % os.path.normcase(os.path.abspath(home_dir)) + # This is what we'll put: + new_shebang = '#!/usr/bin/env python%s' % sys.version[:3] + activate = "import os; activate_this=os.path.join(os.path.dirname(__file__), 'activate_this.py'); execfile(activate_this, dict(__file__=activate_this)); del os, activate_this" + if sys.platform == 'win32': + bin_suffix = 'Scripts' + else: + bin_suffix = 'bin' + bin_dir = os.path.join(home_dir, bin_suffix) + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + for filename in os.listdir(bin_dir): + filename = os.path.join(bin_dir, filename) + if not os.path.isfile(filename): + # ignore subdirs, e.g. .svn ones. + continue + f = open(filename, 'rb') + lines = f.readlines() + f.close() + if not lines: + logger.warn('Script %s is an empty file' % filename) + continue + if not lines[0].strip().startswith(shebang): + if os.path.basename(filename) in OK_ABS_SCRIPTS: + logger.debug('Cannot make script %s relative' % filename) + elif lines[0].strip() == new_shebang: + logger.info('Script %s has already been made relative' % filename) + else: + logger.warn('Script %s cannot be made relative (it\'s not a normal script that starts with %s)' + % (filename, shebang)) + continue + logger.notify('Making script %s relative' % filename) + lines = [new_shebang+'\n', activate+'\n'] + lines[1:] + f = open(filename, 'wb') + f.writelines(lines) + f.close() + +def fixup_pth_and_egg_link(home_dir, sys_path=None): + """Makes .pth and .egg-link files use relative paths""" + home_dir = os.path.normcase(os.path.abspath(home_dir)) + if sys_path is None: + sys_path = sys.path + for path in sys_path: + if not path: + path = '.' + if not os.path.isdir(path): + continue + path = os.path.normcase(os.path.abspath(path)) + if not path.startswith(home_dir): + logger.debug('Skipping system (non-environment) directory %s' % path) + continue + for filename in os.listdir(path): + filename = os.path.join(path, filename) + if filename.endswith('.pth'): + if not os.access(filename, os.W_OK): + logger.warn('Cannot write .pth file %s, skipping' % filename) + else: + fixup_pth_file(filename) + if filename.endswith('.egg-link'): + if not os.access(filename, os.W_OK): + logger.warn('Cannot write .egg-link file %s, skipping' % filename) + else: + fixup_egg_link(filename) + +def fixup_pth_file(filename): + lines = [] + prev_lines = [] + f = open(filename) + prev_lines = f.readlines() + f.close() + for line in prev_lines: + line = line.strip() + if (not line or line.startswith('#') or line.startswith('import ') + or os.path.abspath(line) != line): + lines.append(line) + else: + new_value = make_relative_path(filename, line) + if line != new_value: + logger.debug('Rewriting path %s as %s (in %s)' % (line, new_value, filename)) + lines.append(new_value) + if lines == prev_lines: + logger.info('No changes to .pth file %s' % filename) + return + logger.notify('Making paths in .pth file %s relative' % filename) + f = open(filename, 'w') + f.write('\n'.join(lines) + '\n') + f.close() + +def fixup_egg_link(filename): + f = open(filename) + link = f.read().strip() + f.close() + if os.path.abspath(link) != link: + logger.debug('Link in %s already relative' % filename) + return + new_link = make_relative_path(filename, link) + logger.notify('Rewriting link %s in %s as %s' % (link, filename, new_link)) + f = open(filename, 'w') + f.write(new_link) + f.close() + +def make_relative_path(source, dest, dest_is_directory=True): + """ + Make a filename relative, where the filename is dest, and it is + being referred to from the filename source. + + >>> make_relative_path('/usr/share/something/a-file.pth', + ... '/usr/share/another-place/src/Directory') + '../another-place/src/Directory' + >>> make_relative_path('/usr/share/something/a-file.pth', + ... '/home/user/src/Directory') + '../../../home/user/src/Directory' + >>> make_relative_path('/usr/share/a-file.pth', '/usr/share/') + './' + """ + source = os.path.dirname(source) + if not dest_is_directory: + dest_filename = os.path.basename(dest) + dest = os.path.dirname(dest) + dest = os.path.normpath(os.path.abspath(dest)) + source = os.path.normpath(os.path.abspath(source)) + dest_parts = dest.strip(os.path.sep).split(os.path.sep) + source_parts = source.strip(os.path.sep).split(os.path.sep) + while dest_parts and source_parts and dest_parts[0] == source_parts[0]: + dest_parts.pop(0) + source_parts.pop(0) + full_parts = ['..']*len(source_parts) + dest_parts + if not dest_is_directory: + full_parts.append(dest_filename) + if not full_parts: + # Special case for the current directory (otherwise it'd be '') + return './' + return os.path.sep.join(full_parts) + + + +############################################################ +## Bootstrap script creation: + +def create_bootstrap_script(extra_text, python_version=''): + """ + Creates a bootstrap script, which is like this script but with + extend_parser, adjust_options, and after_install hooks. + + This returns a string that (written to disk of course) can be used + as a bootstrap script with your own customizations. The script + will be the standard virtualenv.py script, with your extra text + added (your extra text should be Python code). + + If you include these functions, they will be called: + + ``extend_parser(optparse_parser)``: + You can add or remove options from the parser here. + + ``adjust_options(options, args)``: + You can change options here, or change the args (if you accept + different kinds of arguments, be sure you modify ``args`` so it is + only ``[DEST_DIR]``). + + ``after_install(options, home_dir)``: + + After everything is installed, this function is called. This + is probably the function you are most likely to use. An + example would be:: + + def after_install(options, home_dir): + subprocess.call([join(home_dir, 'bin', 'easy_install'), + 'MyPackage']) + subprocess.call([join(home_dir, 'bin', 'my-package-script'), + 'setup', home_dir]) + + This example immediately installs a package, and runs a setup + script from that package. + + If you provide something like ``python_version='2.4'`` then the + script will start with ``#!/usr/bin/env python2.4`` instead of + ``#!/usr/bin/env python``. You can use this when the script must + be run with a particular Python version. + """ + filename = __file__ + if filename.endswith('.pyc'): + filename = filename[:-1] + f = open(filename, 'rb') + content = f.read() + f.close() + py_exe = 'python%s' % python_version + content = (('#!/usr/bin/env %s\n' % py_exe) + + '## WARNING: This file is generated\n' + + content) + return content.replace('##EXT' 'END##', extra_text) + +##EXTEND## + +##file site.py +SITE_PY = """ +eJzVPP1z2zaWv/OvQOXJUEplOh/dzo5T98ZJnNZ7buJt0mluXY+WkiCJNUWyBGlZe3P3t9/7AECA +pGS77f5wmkwskcDDw8P7xgMGg8FpUchsLtb5vE6lUDIuZytRxNVKiUVeimqVlPPDIi6rLTyd3cRL +qUSVC7VVEbaKguDpH/wET8WnVaIMCvAtrqt8HVfJLE7TrUjWRV5Wci7mdZlkS5FkSZXEafIvaJFn +kXj6xzEIzjMBM08TWYpbWSqAq0S+EJfbapVnYlgXOOfn0V/il6OxULMyKSpoUGqcgSKruAoyKeeA +JrSsFZAyqeShKuQsWSQz23CT1+lcFGk8k+Kf/+SpUdMwDFS+lpuVLKXIABmAKQFWgXjA16QUs3wu +IyFey1mMA/DzhlgBQxvjmikkY5aLNM+WMKdMzqRScbkVw2ldESBCWcxzwCkBDKokTYNNXt6oESwp +rccGHomY2cOfDLMHzBPH73IO4PghC37KkrsxwwbuQXDVitmmlIvkTsQIFn7KOzmb6GfDZCHmyWIB +NMiqETYJGAEl0mR6VNByfKNX6NsjwspyZQxjSESZG/NL6hEF55WIUwVsWxdII0WYv5XTJM6AGtkt +DAcQgaRB3zjzRFV2HJqdyAFAietYgZSslRiu4yQDZv0hnhHaPyfZPN+oEVEAVkuJX2tVufMf9hAA +WjsEGAe4WGY16yxNbmS6HQECnwD7Uqo6rVAg5kkpZ1VeJlIRAEBtK+QdID0WcSk1CZkzjdyOif5E +kyTDhUUBQ4HHl0iSRbKsS5IwsUiAc4Er3n34Ubw9e31++l7zmAHGMrtcA84AhRbawQkGEEe1Ko/S +HAQ6Ci7wj4jncxSyJY4PeDUNju5d6WAIcy+idh9nwYHsenH1MDDHCpQJjRVQv/+GLmO1Avr8zz3r +HQSnu6hCE+dvm1UOMpnFaylWMfMXckbwjYbzbVRUq1fADQrhVEAqhYuDCCYID0ji0myYZ1IUwGJp +kslRABSaUlt/FYEV3ufZIa11ixMAQhlk8NJ5NqIRMwkT7cJ6hfrCNN7SzHSTwK7zOi9JcQD/ZzPS +RWmc3RCOihiKv03lMskyRAh5IQgPQhpY3STAifNIXFAr0gumkQhZe3FLFIkaeAmZDnhS3sXrIpVj +Fl/UrfvVCA0mK2HWOmWOg5YVqVdatWaqvbz3Ivrc4jpCs1qVEoDXU0/oFnk+FlPQ2YRNEa9ZvKpN +TpwT9MgTdUKeoJbQF78DRU+VqtfSvkReAc1CDBUs8jTNN0Cy4yAQ4gAbGaPsMye8hXfwP8DF/1NZ +zVZB4IxkAWtQiPwuUAgETILMNFdrJDxu06zcVjJJxpoiL+eypKEeRuwjRvyBjXGuwfu80kaNp4ur +nK+TClXSVJvMhC1eFlasH1/xvGEaYLkV0cw0bei0xumlxSqeSuOSTOUCJUEv0iu77DBm0DMm2eJK +rNnKwDsgi0zYgvQrFlQ6i0qSEwAwWPjiLCnqlBopZDARw0DrguCvYzTpuXaWgL3ZLAeokNh8z8D+ +AG7/AjHarBKgzwwggIZBLQXLN02qEh2ERh8FvtE3/Xl84NTzhbZNPOQiTlJt5eMsOKeHZ2VJ4juT +BfYaa2IomGFWoWu3zICOKOaDwSAIjDu0VeZrbr9NJtM6QXs3mQRVuT0G7hAo5AFDF+9hojQcv1mU ++RpfW/Q+gj4AvYw9ggNxSYpCso/rMdMrpICrlQvTFM2vw5ECVUlw+ePZu/PPZx/FibhqtNK4rZKu +YcyzLAbOJKUOfNEatlFH0BJ1V4LqS7wDC03rCiaJepMEyriqgf0A9U9lTa9hGjPvZXD2/vT1xdnk +p49nP04+nn86AwTBVMjggKaMFq4Gn09FwN/AWHMVaRMZdHrQg9enH+2DYJKoSbEttvAAbB1wYTmE ++Y5FiA8n2oxOkmyRhyNq/Cv70SesGbTTdHX81bU4ORHhr/FtHAbguDRNeRF/IB7+tC0kdK3gzzBX +oyCYywXw+41EqRg+JWd0xB2AiNAy18bx1zzJzHt67Q1BQjukHoDDZDJLY6Ww8WQSAmmpQ88HOkTs +0SKrD6FjsXW7jjQq+CklLEWGXcb4Xw+K8ZT6IRqMotvFNAIZWc9iJbkVTR/6TSaoKCaToR4QJIh4 +HLwclv1QmCaoKMoEnEniFVQcU5Wn+BPho+iRyGA8g6oJF0nHK9FtnNZSDZ1JARGHwxYZUbslijgI +/IIhmL9m6UajNjUNz0AzIF+ag+oqW5TDzwE4GaAjTOSE0RUHPEwzxPRv7N4TDuDnhahjlWpBYZUk +Ls8uxctnLw7Rh4BAb26p4zVHs5hktbQPF7BaS1k5CHOvcEzCMHLpskDlhk+P98NcR3Zluqyw0Etc +ynV+K+eALTKws8riR3oD4TDMYxbDKoIyJSPMSs84azEGfzx7kBY02EC9NUEx62+W/oAjcJkpUB0c +zRKpdajN9qco89sELfx0q1+CgQL1hmbKeBOBs3Aek6EdAg0BrmeGlNrIEBRYWbOXSHgjSFTx80YV +RgTuAnXrNX29yfJNNuHw8wTV5HBkWRcFSzMvNmiW4EC8A8MBSOYQTTVEYyjgZwuUrUNAHqYP0wXK +kkMPgMC6KoqRHFgmvqIpcqiGwyKM0StBwltKNNK3ZgiKbwwxHEj0NrIPjJZASDA5q+CsatBMhrJm +msHADkl8rruIOO7zAbSoGIGhG2po3MjQ7+oYlLO4cJWS0w9t6OfPn5lt1IqSGojYFCeNdntB5i0q +tmAKE9AJxg3iFAmxwQY8SgBTK82a4vCjyAt2gWA9L7Vsg+WGkKqqiuOjo81mE+mQPi+XR2px9Je/ +fv31X5+xTpzPiX9gOo606PxWdETv0I2MvjEW6Fuzci1+TDKfGwnWUJIrRP4f4vddncxzcXw4svoT +ubgxrPi/cT5AgUzMoExloO2gweiJOnwSvVQD8UQM3bbDEXsS2qRaK+ZbXehR5WC7wdOY5XVWhY4i +VeJLsG4QFs/ltF6GdnDPRpofMFWU06HlgcPn14iBzxmGr4wpnqCWILZAi++Q/kdmm5j8Ga0hkLxo +ojoh67Zfixnizh8u79Y7dITGzDBRyB0oEX6TBwugbdyVHPxoZxTtnuOMmo9nCIylDwzzaldwiIJD +uOBajF2pc7gafVSQpg2rZlAwrmoEBQ1u3ZSprcGRjQwRJHo3JsLmhdUtgE6tdJ0Jys0qQAt3nI61 +a7OC4wkhD5yI5/REglN73Hn3jJe2TlPKorR41KMKA/YWGu10Dnw5NADGYlD+NOCWelnOP7QWhdeg +B1jOiRdksEWHmfCN6wMODgY97NSx+rt6M437QOAiUfuHASeMT3iAUoEwFUOfcXdxuKUtJ5taCO82 +OMRTZpVIotUO2Wrrjl6Z2muXFkmGqtdZo2iW5uAUW6VIfNS8930FClzwcZ8t0wKoydCQw2l0Qs6e +J3+hbocpq2WNwb2b+0CM1oki44ZkWsF/4FVQToESQEBLgmbBPFTI/In9CSJn56u/7GAPS2hkCLfp +Li+kYzA0HPP+QCAZdQYEhCADEnZlkTxH1gYpcJizQJ5sw2u5U7gJRqRAzBwDQloGcKeXXnyDTyLc +dSABRch3lZKF+FIMYPnakvow1f2ncqnJGgydBuQp6HTDiZuKcNIQJ620hM/QfkKC9ieKHDh4Ch6P +m1x32dwwrc2SgK/u622LFChkSpwMRi6q14YwbgL3ixOnRUMsM4hhKG8gbxvFjDQK7HJr0LDgBoy3 +5u2x9GM3YYF9h2GuXsj1HYR/YZmoWa5CjG87qQv3o7miSxuL7UUyHcAfbwEGo2sPkkx1+gKTLL9j +kNCDHvZB9yaLWZF5XG6SLCQFpul34i9NBw9LSs/GHX2kaOoIJopZxqN3JQgIbTcegTihJoCgXIZK +e/1dsHunOLBwufvA85qvjl9ed4k73pXgsZ/+pTq7q8pY4WqlvGgsFLhaXfuNShcmF2dbvWGoN5Qx +SihzBUGk+PDxs0BCcC51E28fN/WG4RGbe+fkfQzqoNfuJVdrdsQugAhqRWSUo/DxHPlwZB87uT0T +ewSQRzHMnkUxkDSf/B44+xYKxjicbzNMo7VVBn7g9ddfTXoSoy6SX381uGeUFjH6xH7Y8gTtyLSR +L3qnbbqUMk7J13A6UVIxa3jHtilGrNAp/NNMdt3jdOLHvDcmo4Hfad6JG83ngOgBUXY+/RViVaXT +W7dxklJOHtA4PEQ9Z8Jszhz04+NB2o8ypqTAY3k27o2E1NUzWJiQ4/pRdzraLzo1qd+eeNR8ilh1 +UTnQW+jNDpC3Le7u/u2W/V5L/W/SWY8E5M1m0EPAB87B7E7+/58JKyuGppXVqKX1ldyv5w2wB6jD +HW7OHjekOzRvZi2MM8Fyp8RTFNCnYkNb0pTKw40JgDJnP6MHDi6j3th8U5clb0+SnBeyPMT9urHA +ahzjaVCRTxfM0XtZISa22YxSo07tRt6nOkOd7LQzCRs/tV9kV7lJkcjsNimhL2iVYfj9hx/Owi4D +6GGwUz84dx0NlzzcTiHcRzBtqIkTPqYPU+gxXX6/VLVdZZ+gZsvYJCA12bqE7eQdTdzavwb3ZCC8 +/UHeh8WIcLaSs5uJpL1lZFPs6uRg3+BrxMRuOfs1PipeUKESzGSW1kgrdvSwwmxRZzNKx1cS7Lku +B8XyENox5nTTIo2XYkid55jq0NxI2ZDbuNTeTlHmWIAo6mR+tEzmQv5WxymGkXKxAFxwr0S/inh4 +yniIt7zpzYVpSs7qMqm2QIJY5XqrifbHnYbTLU906CHJuwpMQNwxPxYfcdr4ngk3N+QywaifYMdJ +YpyHHcxeIHIXPYf3WT7BUSdUxzlmpLrbwPQ4aI+QA4ABAIX5D0Y6U+S/kfTK3c+iNXeJilrSI6Ub +2ebkcSCU4Qgja/5NP31GdHlrB5bL3Vgu92O5bGO57MVy6WO53I+lKxK4sDZJYiShL1HSzqL3FmS4 +OQ4e5iyerbgd1vdhHR9AFIUJ6IxMcZmrl0nh7SQCQmrb2d+kh02BRcKFg2XOKVcNErkf90x08GgK +lJ3OVK6hO/NUjM+2q8jE73sURVQONKXuLG/zuIojTy6WaT4FsbXojhsAY9GuN+HcXHY7mXI2sWWp +Bpf/9en7D++xOYIamN106oaLiIYFpzJ8GpdL1ZWmJtgogB2ppV/3Qd00wIMHZnJ4lAP+7y0VFCDj +iA1tiOeiAA+Ayn5sM7c4Jgxbz3UVjX7OTM57GydikFWDZlI7iHR6efn29NPpgFJMg/8duAJjaOtL +h4uPaWEbdP03t7mlOPYBoda5lMb4uXPyaN1wxP021oBtub3PrlsPXjzEYPeGpf4s/62UgiUBQkU6 +2fgYQj04+PlDYUKHPoYRO9Vh7k4OOyv2nSN7joviiH5fmrs9gL+3hjHGBAigXaihiQyaYKql9K15 +3UNRB+gDfb0/HIK1Q692JONT1E6ixwF0KGub7Xb/vH0BNnpKVq/Pvjt/f3H++vL00/eOC4iu3IeP +Ry/E2Q+fBZUjoAFjnyjGnfgKC1/AsLiHWcQ8h381pjfmdcVJSej19uJC7wys8TgD1reizYngOVfN +WGico+Gsp32oy10Qo1QHSM65EaoOoXMlGC+t+cyCynUNLB1HmaKzWuvQS58HMueGaBs1AumDxi4p +GARXNMErqlSuTFRY8o6TPkvTg5S20bYOIaUcVGd32tlvMdl8LzFHneFJ01kr+qvQxTW8jlSRJhDJ +vQqtLOluWI3RMI5+aDdUGa8+Deh0h5F1Q571TizQar0KeW66/6hhtN9qwLBhsLcw70xSNQLV6GIt +lQixEe8chPIOvtql12ugYMFwY6nCRTRMl8DsYwiuxSqBAAJ4cgXWF+MEgNBaCT8BfexkB2SOxQDh +m/X88O+hJojf+pdfeppXZXr4D1FAFCS4ciXsIabb+C0EPpGMxNmHd6OQkaNKUPH3GkvAwSGhLJ8j +7VQuwzu2k6GS6UKXM/j6AF9oP4Fet7qXsih1937XOEQJeKKG5DU8UYZ+IVYXWdhjnMqoBRqr2y1m +eErM3fY2nwPxcSXTVBdEn7+9OAPfEQvuUYJ4n+cMhuN8CW7Z6lovPsXWAoUbuvC6RDYu0YWlTf15 +5DXrzcyiyFFvrw7ArhNlP7u9OqnOMk6Ui/YQp82wnJLzCLkZlsOsLHN3txnS2W1GdEfJYcaYXJZU +NelzBnA0PY05MIKICYv6TbKZ9y6TrDJlcmkyA20KihfU6hhEBUmMJ9eI//KM0715qcyBF3hYbMtk +uaowpQ6dIyq2x+Y/nH6+OH9P1esvXja+dw+LjikeGHPpwgnWpWHOA764tWbIW5NJH+fqVwgDdRD8 +ab/imogTHqDTj9OL+Kf9ik8cnTjxIM8A1FRdtIUEwwCnW5/0NBLBuNpoGD9u3VmDmQ+GMpJ4wEGX +F7jz6/KjbdkyKJT9MS8fsVexKDQNh6azWwfV/ug5LgrcXJkP+xvB2z4JM58pdL3pvNlVceV+OrKI +hx8Bo25rfwxTk9RpqqfjMNsubqHgVlvaXzInY+q0m2UoykDEodt55DJZvyrWzZkDvdrdDjDxjUbX +SGKvQh/8kg20n+FhYondiVZMRzo7QaYA8xlSHxGpwZNCuwAKhEpOh47kjkdPX3hzdGzC/XPUugss +5PegCHUBKB0syEvgRPjyG7uP/IrQQlV6LELHX8lkltvqJPxsVuhbPvfn2CsDlMpEsSvjbCmHDGts +YH7pE3tHIpa0rccxV0mrWkJzN3iodzsYvCsW/bsnBrMWH3Ta3chtWxv51MEGvccPfAhlvAHtXtTV +kNdq52YBNtdbsMMQkyS/hTvodQ96Ghb6Xb/17OHgh4ll3Etrr1pHW0L7QvuVsxICpkrRZoljhY2H +6BrmxgaeNFZ4YJ/qihH7u+e8kFPl6sJlFFyo3gwHukEr1B/wyRU+uZdQZXRzsEK/m8tbmebgFkHE +hYXvv9rC91FkUx29NUF/BoKX28ttP3r0pkHu2BTno+OkCljIKJPVEWLUm5C5B7kGH1z2X3TQEGc3 +5Me++fl8LN68/xH+fy0/QOSD59fG4h+AiXiTlxAB8hlKOtyOpf0Vh3Z5rfCQG0GjzQS+BwBdqkuP +2rhxoc8c+IcNrBYTWGdZrvnyCUCR50jnihsbbirp4bc56tN1Fo0j17c0A/0SybD7AAQeGjjSLaNV +tU5RnTupjGZNrwYX52/O3n88i6o75Hbzc+CkOvwqHZyR3sgtcdNqLOyTWY1Prh2/9nuZFj1urY4M +zWEKjAxFCMFDYaNBvtsgthFAXGJ4L4rtPJ9F2BJ4n89vVRvwc0dOEHivHfaMIMIajvRWV+Ns42Og +hvilrZcG0JD66DlRT0IonuJBIn4cDfot5VhQ/hn+PL3ZzN30tT4RQhNsY9rMeuh3t6pxxXTW8Fxm +ItRO7EqYc4JpEqv1dOaeH/uQCX07BSg92o+Qi7hOKyEzEGEKxumaAND97pEvlhPmFrY4dA6K0inp +Jt4qpyImVmKAow7opDNunFBmD2LlH+IbthB4Fk3UfKgVoBOiFOHkTldVz1Ysxxy0EAF7CgQ2Sfby +RdghMg/KkeyscTVhnujYMUZLWen584Ph6Op5Y+wpezzzDnzOCrCDLqccgA4tnj59OhD/cb9/wqhE +aZ7fgOMEsPvCVnFBr3d4FnpydrW6vrd5EwFLzlbyCh5cU5bbPq8zSiHu6UoLIu1fAyPEtQktP5r2 +LUvNybWSN4S5BW8saRPyU5bQHTSYApKocvVVPpgeMgJFLAm6IYzVLElCTifAemzzGs9qYTpQ84u8 +A45PEMwY3+JOFgfDK/QBqbDSco9F50QMCPCACp14NDrsSqeVAM/J5VajOTnPkqo5Z/DM3eTUh7or +e7WM5isRb1AyzDxaxHCO/Xms2vjA+V4W9WKKfHblJgZbs+TX9+EOrA2Sli8WBlN4aBZplstyZowq +rlgySyoHjGmHcLgz3ahDBigKelAagIYnwzC3Em3ffmHXxcX0A+33HpqRdJlPZW8p4iROnLWq3aKo +GZ/SRZaQlm/NlxGM8p7Sz9of8MYSX+jkJxaZe5cpuMfd6kxfksB1Fs3NCQCHLuaxCtKyo6cjnNug +LHxmWh1uNHcqODXxGEQTbrdJWdVxOtEH+SfouU3sBrjG0x6T2nsA0Pos4Pbn4BAf6pJu8B1MNQzS +EysyTcn+iVjoJELkHj3yT+kUOfp6Lzw9jqnpZ3wRgKPBseWX5vDKQ1S+OULROX3gYjmm2qNw1K6o +7LTCfQ5TIm+d7HYc8KghW7B8h31WbPFOHpjWk3lE/0LfkaPLFHBj6tGDp8mUBgv7Co/v76srATH+ +W4OgLBI5P3yiEDvG+Y9C1VAMddxA4REzDOnuCQL5ZWsnzykv5NrfXds3HaBff7UPrKuCewufac/E +V8v6aJtbidxs2uDnwHrEK3C6UW/MzWFkrZb43CbqEDaI9qy5qVdpH5mB1w+f8p4JP2BHNMTBNHe4 +8rqPVha/faRqGgW/i0q6Vz+t0AnGUtFVzG9QmdXFsQ0V+TBfRmn2oVtAhJ/qpre0Psa7j4jRq5tw +3/S5/7656xaBnbnZP+vM3T9C49JA993NL300YAddE+JBVbkWo8mfI7pjvbXbn6LSn4W9hZEzVcSD +GrWxZsl1PHO/Y4HBIV/i6B6HClyQZtVbc+qcD2uzc5eTu9zMm6n43J6QpB3yuWYvNud0pc+Ea64m +crlUkxhvhJqQD0j1AR3jbryKd3QbkIzV1jgDeOcCgDCsoiu53GJNWHXwM/lmSt5edw7XCxqaitCc +qjaVzDm2154HgIs4pqf+JnPEZWmDVGI2RtVlUYKzNtD3F/K+b1+pXAPUxJfrWN0Y1E2Psb7ODofg +YgNzhIozCewAetQBQvDJCudmF67znEzsO+CXZ81R0WRsGUJm9VqWcdXckuDvLyXiW2cEOjiHC+xE +kI3YtTjFRSyx/OEghTGc/f6ldo4832/P+dCRVWkPZyvqoZMTjzl66ki54ebkzt6S5N7OMadrMSle +5Ns1hG3WcJ+9GQKWwlz5Q4pQh3T8Vl9DwvfTcc4Jq+ocPgK5d4+t+NWNVmexw2DRcJ65iqF77wSe +fCRD23edVIcLuhdH+czQjO/rDcssnd2EHY0tFU+4Ra/iaUYbNYEOFiLdE+j4xaaPDHQ8+A8MdPTl +X2BNND5aH/SWn94TEbGacG/SahgB+kyASLhh0rqHydjDoVvMCeFKcjewl1GyznROiBgzgRzZvWKF +QPCNWcqtfPNutDHj9kUivnTR4+8uPrw+vSBaTC5P3/zn6Xe0zY9ZvZbNenAkmOWHTO1Dr6zQjQr1 +1mzf4A22PVfTcW28htB539nW6oHQfw6ib0Hbisx9vatDp5682wkQ3z/tFtRdKrsXcsf50rXL7oZs +q/4v0E+5WMv8cvbWzCOTU2ZxaBLG5n2T49My2kmB7Fo4p2yqq060U6ovM9uRnhnZ4j1aAUztIX/Z +zJ6pxLb5I3ZU2leEU8UhnmIxNwGAFM6kcyEV3UXFoCr/LvISlF2MOxTsMI7tvZ7UjrOYyl5Yi7sU +MxkZgnjHSAbd+bnCPpfpDioEASs8fd0SI2L0n877272yJ0pcHdKBtUNUNtf2F66ZdnJ/TnBHrLL3 +liiz5Y27AdB4UafuLpft0+lAzh8lTfOFUyENmu8I6NyIpwL2Rp+JFeJ0K0KIEvVWDhZdER31nUMO +8mg3HewNrZ6Jw13HmdzjPEI8391w3joxpHu84B7qnh6qNodGHAuMdT+7zimJbwkyZ90FXVTiOR+4 +26Ovx4Svt1fPj23KFvkdX7vXYCDtB45hv2pOBuy9GsvpTbxSjqn+A4uNRm3w1wOHNRdid4DTqXPe +EQSZ7TiGNPDe99dGmB7enb2DNqKW745hQmL4RI1oUk5luMbdPhl1JtuorC4MLnK/H0ZH+wEohNLv +m+CHb2MB9fxMx4PTmu4TtA4nHg115IEKHXxe4B7G62uwa3eno2kP6k4l//agADdo855ebxBr9hq4 +lZfo2G0L2jNveGCH7edDfv39nz+gf7ckxnZ/sc+htq1e9h4sYScWi6hw87pFIfM4AusCCnNIahrr +b42E4+H9howONzVTQ65Ah4/qsvCuUAosyImdaMtvjUHwf71Zz9M= +""".decode("base64").decode("zlib") + +##file ez_setup.py +EZ_SETUP_PY = """ +eJzNWmuP28YV/a5fwShYSIJlLt8PGXKRJi5gIEiDPAoU9lY7zxVrilRJyhu1yH/vmeFDJLVU2iIf +ysDZXXJ45z7PuXekL784nqt9ns3m8/kf87wqq4IcjVJUp2OV52lpJFlZkTQlVYJFs/fSOOcn45lk +lVHlxqkUw7XqaWEcCftEnsSirB+ax/Pa+PuprLCApScujGqflDOZpEK9Uu0hhByEwZNCsCovzsZz +Uu2NpFobJOMG4Vy/oDZUa6v8aOSy3qmVv9nMZgYuWeQHQ/xzp+8byeGYF5XScnfRUq8b3lquriwr +xD9OUMcgRnkULJEJMz6LooQT1N6XV9fqd6zi+XOW5oTPDklR5MXayAvtHZIZJK1EkZFKdIsulq71 +pgyreG6UuUHPRnk6HtNzkj3NlLHkeCzyY5Go1/OjCoL2w+Pj2ILHR3M2+0m5SfuV6Y2VRGEUJ/xe +KlNYkRy1eU1UtZbHp4LwfhxNlQyzxnnluZx98+5PX/387U+7v7z74cf3f/7O2BpzywyYbc+7Rz// +8K3yq3q0r6rj5v7+eD4mZp1cZl483TdJUd7flff4r9vtfm7cqV3Mxr8fNu7DbHbg/o6TikDgv3TE +Fpc3XmNzar8+nh3TNcXT02JjLKLIcRiRsWU7vsUjL6JxHNBQOj4LRMDIYn1DitdKoWFMIuJZrvB8 +y5GURr4QrrRjzw5dn9EJKc5QFz/ww9CPeUQCHknmeVZokZhboRM6PI5vS+l08WAAibgdxNyhIghs +SVyHBMJ3hCcjZ8oid6gLpa7NLMlCN45J4PphHIc+IzyWPrECO7oppdPFjUjEcJcHgnHHcbxQ2mEs +Q06CIJaETUjxhroEjuX5xPEE94QtKAtDKSw3JsQTgQyFf1PKxS+MOsSOfOgRccKkpA63oY/lUpfa +zHtZChvlC3WlQ33fjXmAuIYy9AgPY9uBIBJb0YRFbJwvsIcLDk8GIXe4I6WwPcuK3cCTDvEmIs1s +a6gMgzscQn3uEsvxA88PEB9mu5FlkdCKrdtiOm38kONFxCimkRWGDvNj4rsk8lyX+JxPeqYW47di +uPACwiL4Mg5ZFPt+6AhfRD7SUdCIhbfFBJ02kUAlESGtAA5ymAg824M0B0bC4RPRBqgMfeNQIghq +2HY53kcZOZEIKfGpT6ARF7fFXCLFAzeWMbUgzGOe48Wh5XpcMEcwizmTkbKHvgk8FnvSpTIkIbLQ +FSxyhUUdhDv0YurcFtP5hkoSO7ZlUY4wcdQEJAnOXQQ+8KwomBAzwhlpWYFHZUCIQ0NuQS141kNi +W5EdMmcqUCOcCezAjh0hmOtLLxSImh0wHhDbgVQnnJIywhlpRwAogC+XSBXi+DGLIUXaPKRhJCfQ +io1wRliCh14QOSyOIyppCE9HFrLXQsxDeyrY7jBIhAppB5JzGOb7vu1Fns1C4BePozjwp6SM0Ipa +NLZdmzBCXceCM4BzofQ85gMoQlvelNJZhCSR2DPgnqTSRUVRGXsBs+AqoJ6YShhvaFGk0BrA7zqM +05iFDmXSA3w5gXQiIqfQyh9aJEQseWRBHRQkMla6ApjuhwAMHtnBVKT9oUVEAqu4BKvYoWULAeeG +ICefMhAeCaZQxh/FKOKuDAAIHmOERKHtIXG4G1LGuMt9PiElGFqEgonA8pFtB2CiKPJCByLAmL4X +o7SngDMYsRvzAyL9kMK/6B5QDYEFQzzPRYH5ZAobgqFF1JERCX0HZA/YpS5I2kKoufAlWgnfnZAS +juDOQoxkTDhzSWD7wrdtH2WIliICBE7mSzhiAhLJ2PfAAhxYbkkahEza0kEY8MiZqoBwaJEHjiXA +W4mWAQXouZ5t25KLyLXxL5zSJRp1Q5bqhZwYHok5+EOlIAA8ci3VWFm3pXQWMUrcCNiAnsOLXGap +nEW2wdkMzDJJA9HQIjt07BAgh0DHnNm+5ccW8SPqCtR57E9FOh5aBN2ZZ6GZsZWHqRcHwmOSCiuC +rcyainQ8QgYkGRo7cKsbRTwAOhEhrADgxQLXm+rvGimdRVIgtK7wiR1S22EIE/M9m4bgXjC/mGKS +eMhHjKBsbKlQkziCA5js2AWzhdSPHfQ4kPLrrDcRYLwpZ1Vx3tQD156U+zSh7byF3n0mfmECo8Z7 +feedGomatXjYXzfjQhq7zyRN0O2LHW4todMuwzy4NtQAsNpoAxJptPfVzNiOB/VDdfEEs0WFcUGJ +0C+ae/FLfRfzXbsMcpqVX2w7KR9a0Q8XeerC3IVp8O1bNZ2UFRcF5rrlYIW65sqkxoJmPrzDFEYw +hvEvDGP5fV6WCU174x9GOvx9+MNqfiXsrjNz8Gg1+EvpI35JqqVT3y8Q3CLT7qodOhoO9aJmvNqO +hrl1p9aOklJsewPdGpPiDqPqNi9NdirwW51M3QtcpOS8tf1ZEySMjV+dqvwAPzBMl2eMohm/78zu +nRSouf5APiGWGJ4/w1VEOQjOU6YdSbWvx/nHRulHo9znp5SraZbUvu5Layfz7HSgojCqPakMDMKd +YC1LTcCZ8q4hMfV2Sp0yrl8RxuPAEY+GGmmXz/uE7dvdBbRWRxO1PGNxv1iZULL20qPaUsnpHWPs +RTE4IHlOMHPTSyYIvkZG1gmuVc5y+CMtBOHni/rY473sqafdrrdrzia0mKrRUkujQqvSOESfWLA8 +42Xtm1aNI0GiKKfCI6qskipB6LKn3nlGHfHG/jwT+jyhPhvhtV5wap4qH754PqK0bA4bRCNMn+UU ++Qk7iVqVus6IcRBlSZ5EfcBxKbrHR50vBUlKYfx4LitxePeL8ldWByIzSIV79ckGoQpalPEqBZUx +9amH2Wao/vlMyl2NQrB/ayyOn552hSjzU8FEuVAIo7Y/5PyUilKdkvQAdPy4rglUHUceNG5bri5I +olJueymaXl02HhuVYFt261GhXTCgLRITnhVFtbTWapMeyDVA3e30pn+6Q9tjvl0TmJ0G5q2SUQcI +wD6WNXCQfvgCwncvtYDUd0jz6HqHgWizSa7l/KLx2+38VeOq1ZtGdl+FoYC/1Cu/zjOZJqyCazZ9 +9O9H/r9F+/lP+0v2T+T78u32rlx1tdzWsD7K/JgNAX/OSLaoVEl1JQLMUMd3ukaa4zpVLacsQyqb +xvepQIa0y6/kqRpSpQwAErCl1VAmRQlHnEpVDgtIOLehN17/3FN+YY7kfcw+ZsuvT0UBaYDzWsBd +MeKtFVjrksvCJMVT+cF6uM1ZOn5pKYYxQKIPw7nuV9qHUZ0+qFe+hLUayfNPA1Ev5eB01nyToCQS +elIM/l1e/SkHL9zO55ppXyrr35tuVfGjPAc8+80LpKrLmFxIwUhzVrckGj5rG5KqPiHWLcb/KcnW +EK0+A2hJ9rc4Vt1Tu14TbI37jxfOnODFvGbDlgwVqbDqRNKLEQ3JDImk/YihANdQB9m6RwqldZ61 +/erW6IHZ67sSvfddqVrveb9wRkfgda5Cbp87lM+MV8MWsSSfBbTfoiWvSeHveZItWwppl9biyoIp +cbpP/g5s3rbWCqra11GkZVUua7GrjSqwrz7niUqgoyCKL1t1yq4+BniuLp2KHIKUN8rWS2n+NFil +mnEVl+G76sJK85kU2VL5+fXvd9WfkDTA2iB5+VKW3+mUUJ+cLMVnkak/YM4Rys72Ij2qvu99nW29 +3qNLFTQnKv/VZztL5YoZKGFtAF1m6tYB5ZwJOBKvoA5V5wuEFs8KjwnG2bLUb/c5QCO4OWu2BHQ3 +Pc5lR6jM22w2Z7MlQExslIe1mANhe9Vu8VzUxLRHeKFE9ZwXn5pN18axZpecVqT5XE4hhUaJu3I2 +UygCDzDdtesFkHypxKZyCtGwVd8Ac/V7RhFJsb5KmR7oXjVUOsvWqpquXkNHoZO1StRk2TROqRDH +N/WP5aj3GmZnC8OaF8u53mLEe7rkGnww8TM/imx5texL4wc0/ffPRVIBfBBj+Fe328DwT2v10eCz +ip5qF1ihyhDQyPKiOOnkSMVImI57Pz1UF14Jvb7FxPZqPmabGsJhgKkGkuVqqHGNItqaGivW82c6 +hzvxwNR21GN49xKGQTUUbsYQgA02eheW5qVYrq4goqw2Wmj/ecNmLWhBwVT90sLW7D+5FH8fkOlL +NCyf11OMfeHc97c+NNUc+w6tVbOqJYiXmunRh9G3Oul6eOiw+kriZc3tAUNP6tZ1SzYcIwZThI6Z +Ko3e7MDywwGGmoMesj3OIc1A1l5NjLSLU3CB9vPqlTpteVjpNH0Wi0KntTAUjf9mqihLlZ9HXKXU +vuYQLDplmAA/LTuzhg1n0m/czd2u8dZuZ2wxElqmZdqL/3pE+CsAXoOrmotpmacCtToxGrdNP8ik +buyvGvpCHPLPGm91JOrvPOgJGMxRAXrT38DdUac+2ZI3RfWPYbPSm7z63c71MPgfDHT4eaP/Hk1t +m+ls/59T8laZdYJ/U8pVNr9Ud225PQxndu1sa4XEh1WK/RE4pjNFPXk5Q9Uuv5MDOvW15jemsDrN +5z9etUXzdYsoc4DgkyaiQh3/IgnRJF0Sev6CvMXyB7RT8/bbOebxPJw+5/X3bq6/mmKuFs2x5rHj +p3aEKS/w/LN+aqgSoackrV7X58QQ+aSGu7NC5H4WF838o3qt9ly5E3txiO65L921+lOtWF66ai2k +5UJNmouCLi7PumNm9e5Dc0QtW1J98ZhadmRXj4A1RX+Yqz/uig3+rYEVGB+aTrNuyNqNTJDvoVyu +HrqXzRIWd9R5VEPFfF5PCjVJ9x2DCGCErNqJQX+faNveNZ9EVRetur/sT+c73THsdk3Wdy5pZKwN +7ZY3TUvUOuDN2NgDqTANbqGnWQpSsP1y/jHrfx/oY7b88LdfH16tfp3r9mTVH2P02z0segGxQeT6 +G1mpIRQKfDG/LtIWEWtV8f8PGy3Y1K330l49YAzTjnyln9YPMbri0ebhZfMXz01OyKY96lTvOWAG +M1o/breL3U4V7G636D4FSZVEqKlr+K2j6bD9+4P9gHdev4az6lLp0VevdrrlzubhJV7UGHGRqRbV +178BYnMUkw== +""".decode("base64").decode("zlib") + +##file distribute_setup.py +DISTRIBUTE_SETUP_PY = """ +eJztG2tz2zbyu34FTh4PqYSi7TT3GM+pM2nj9DzNJZnYaT8kHhoiIYk1X+XDsvrrb3cBkCAJyc61 +dzM3c7qrIxGLxWLfuwCP/lTs6k2eTabT6Xd5Xld1yQsWxfBvvGxqweKsqnmS8DoGoMnliu3yhm15 +VrM6Z00lWCXqpqjzPKkAFkdLVvDwjq+FU8lBv9h57JemqgEgTJpIsHoTV5NVnCB6+AFIeCpg1VKE +dV7u2DauNyyuPcaziPEoogm4IMLWecHylVxJ4z8/n0wYfFZlnhrUBzTO4rTIyxqpDTpqCb7/yJ2N +dliKXxsgi3FWFSKMV3HI7kVZATOQhm6qh98BKsq3WZLzaJLGZZmXHstL4hLPGE9qUWYceKqBuh17 +tGgIUFHOqpwtd6xqiiLZxdl6gpvmRVHmRRnj9LxAYRA/bm+HO7i99SeTa2QX8TekhRGjYGUD3yvc +SljGBW1PSZeoLNYlj0x5+qgUE8W8vNLfql37tY5Tob+vspTX4aYdEmmBFLS/eUk/Wwk1dYwqI0eT +fD2Z1OXuvJNiFaP2yeFPVxcfg6vL64uJeAgFkH5Jzy+QxXJKC8EW7F2eCQObJrtZAgtDUVVSVSKx +YoFU/iBMI/cZL9fVTE7BD/4EZC5s1xcPImxqvkyEN2PPaaiFK4FfZWag90PgqEvY2GLBTid7iT4C +RQfmg2hAihFbgRQkQeyF/80fSuQR+7XJa1AmfNykIquB9StYPgNd7MDgEWIqwNyBmBTJdwDmmxdO +t6QmCxEK3OasP6bwOPA/MG4YHw8bbHOmx9XUYccIOIJTMMMhtenPHQXEOviiVqxuhtLJK78qOFid +C98+BD+/urz22IBp7Jkps9cXb159ensd/HTx8ery/TtYb3rq/8U/ezlthz59fIuPN3VdnJ+cFLsi +9qWo/LxcnygnWJ1U4KhCcRKddH7pZDq5urj+9OH6/fu3V8GbVz9evB4sFJ6dTScm0Icffwgu3715 +j+PT6ZfJP0XNI17z+U/SHZ2zM/908g786LlhwpN29LiaXDVpysEq2AN8Jv/IUzEvgEL6PXnVAOWl ++X0uUh4n8snbOBRZpUBfC+lACC8+AIJAgvt2NJlMSI2Vr3HBEyzh35m2AfEAMSck5ST3LodpsE4L +cJGwZe1N/PQuwu/gqXEc3Ia/5WXmOhcdEtCB48rx1GQJmCdRsI0AEYh/LepwGykMrZcgKLDdDcxx +zakExYkI6cL8vBBZu4sWJlD7UFvsTfbDJK8EhpfOINe5IhY33QaCFgD8idw6EFXweuP/AvCKMA8f +JqBNBq2fT29m441ILN1Ax7B3+ZZt8/LO5JiGNqhUQsMwNMZx2Q6y161uOzPTnWR53XNgjo7YsJyj +kDsDD9ItcAU6CqEf8G/BZbFtmcPXqCm1rpjJiW8sPMAiBEEL9LwsBRcNWs/4Mr8XetIqzgCPTRWk +5sy0Ei+bGB6I9dqF/zytrPAlD5B1/9fp/wGdJhlSLMwYSNGC6LsWwlBshO0EIeXdcWqfjs9/xb9L +9P2oNvRojr/gT2kgeqIayh3IqKa1qxRVk9R95YGlJLCyQc1x8QBLVzTcrVLyGFLUy/eUmrjO93mT +RDSLOCVtZ71GW1FWEAHRKod1VTrstVltsOSV0BszHkci4Tu1KrJyqAYK3unC5Py4mhe748iH/yPv +rIkEfI5ZRwUGdfUDIs4qBx2yPDy7mT2dPcosgOB2L0bGvWf/+2gdfPZwqdOrRxwOAVLOhuSDPxRl +7Z56rJO/yn77dY+R5C911acDdEDp94JMQ8p7UGOoHS8GKdKAAwsjTbJyQ+5ggSrelBYmLM7+7IFw +ghW/E4vrshGtd005mXjVQGG2peSZdJQvqzxBQ0VeTLolDE0DEPzXNbm35VUguSTQmzrF3ToAk6Ks +raIkFvmb5lGTiAorpS/tbpyOK0PAsSfu/TBE01uvDyCVc8MrXtel2wMEQwkiI+hak3CcrThoz8Jp +qF8BD0GUc+hqlxZiX1nTzpS59+/xFvuZ12OGr8p0d9qx5NvF9LlabWYha7iLPj6VNn+fZ6skDuv+ +0gK0RNYOIXkTdwb+ZCg4U6vGvMfpEOogI/G3JRS67ghiek2enbYVmT0Hozfjfrs4hoIFan0UNL+H +dJ0qmS/ZdIwPWykhz5wa601l6oB5u8E2AfVXVFsAvpVNhtHFZx8SAeKx4tOtA87SvERSQ0zRNKGr +uKxqD0wT0FinO4B4p10Om38y9uX4Fvgv2ZfM/b4pS1gl2UnE7LicAfKe/xc+VnGYOYxVWQotrt0X +/TGRVBb7AA1kA5Mz7PvzwE/c4BSMzNTYye/2FbNfYw1PiiH7LMaq1202A6u+y+s3eZNFv9toHyXT +RuIo1TnkroKwFLwWQ28V4ObIAtssCsPVgSj9e2MWfSyBS8Ur5YWhHn7dtfhac6W42jYSwfaSPKTS +hdqcivFxLTt3GVTyMim8VbTfsmpDmdkS25H3PIl72LXlZU26FCVYNCdTbr0C4cL2HyW91DFp+5Cg +BTRFsNseP24Z9jhc8BHhRq8uskiGTezRcuacODOf3Uqe3OKKvdwf/IsohU4h236XXkVEvtwjcbCd +rvZAHdYwzyLqdRYcA/1SrNDdYFszrBuedB1X2l+NlVTtazH8RxKGXiwioTYlVMFLikIC29yq31wm +WFZNDGu0xkoDxQvb3Hr9W4DqgK2fXnLsYxm2/g0doJK+bGqXvVwVBcmet1hk/sfvBbB0TwquQVV2 +WYaIDvalWquGtQ7yZol2do48f3Wfx6jVBVpu1JLTZTijkN4WL631kI+vph5uqe+yJVGKS+5o+Ih9 +FDw6odjKMMBAcgaksyWY3J2HHfYtKiFGQ+laQJPDvCzBXZD1DZDBbkmrtb3EeNZRC4LXKqw/2JTD +BKEMQR94NMioJBuJaMksj023y+kISKUFiKwbG/lMJQlYy5JiAAG6RB/AA35LuINFTfiuc0oShr0k +ZAlKxqoSBHddgfda5g/uqslC9GbKCdKwOU7tVY89e3a3nR3IimXzv6tP1HRtGK+1Z7mSzw8lzENY +zJmhkLYly0jtfZzLVtKozW5+Cl5Vo4HhSj6uA4IeP28XeQKOFhYw7Z9X4LELlS5YJD0hsekmvOEA +8OR8fjhvvwyV7miN6In+UW1Wy4zpPswgqwisSZ0d0lR6U2+VohNVAfoGF83AA3cBHiCru5D/M8U2 +Ht41BXmLlUysRSZ3BJFdByTyluDbAoVDewREPDO9BnBjDLvQS3ccOgIfh9N2mnmWntarPoTZLlW7 +7rShm/UBobEU8PUEyCYxNgTkDIhimc+ZmwBD2zq2YKncmuadPRNc2fwQ6fbEEAOsZ3oXY0T7JjxU +1myzCk27uCHvDR4rVKM9SwSZ2OrIjE8hyjr++7ev/eMKj7TwdNTHP6PO7kdEJ4MbBpJc9hQliRqn +avJibYs/Xduo2oB+2BKb5veQLINpBGaH3C0SHooNKLvQnepBGI8r7DWOwfrUf8ruIBD2mu+QeKk9 +GHP369cK646e/8F0VF8IMBrBdlKAanXa7Kt/XZzrmf2YZ9gxnGNxMHT3evGRt1yC9O9Mtqz65VHH +ga5DSim8eWhurjtgwGSkBSAn1AKRCHkkmzc1Jr3oPbZ819mcrnOGCZvBHo9J1VfkDySq5huc6Jy5 +shwgO+jBSlfViyCjSdIfqhkes5xXqs624ujIt3fcAFPgQxflsT41VmU6AsxblojaqRgqfut8h/xs +FU3xG3XNNVt43qD5p1r4eBMBvxrc0xgOyUPB9I7Dhn1mBTKodk1vM8Iyjuk2vQSnKhv3wFZNrOLE +nja6c9Vd5ImMNoEz2EnfH+/zNUPvvA9O+2q+gnS6PSLG9RVTjACGIO2NlbZt3dpIx3ssVwADnoqB +/09TICLIl7+43YGjr3vdBZSEUHfJyPZYl6Hn3CTdXzOl53JNckElLcXUY27YImzNHN1YGLsg4tTu +nngEJqcilfvkUxNZEXYbVZHYsCJ1aFN1fhAW+NLTOXffVQFP0vYVTm9Aysj/aV6OHaDV80jwA35n +6MO/R/nLSD6a1aVErYM8nBZZ3ScB7E+RJKvqNifazypDRj5McIZJyWAr9cbgaLcV9fixrfTIMDpl +Q3k9vr/HTGzoaR4Bn/Xy+TbodTndkQolEIHCO1SlGH/Z8uu9Cioz4IsffpijCDGEgDjl969Q0HiU +wh6Ms/tiwlPjquHbu9i6J9kH4tO7lm/9RwdZMXvEtB/l3H/FpgxW9MoOpS32ykMNav2Sfco2oo2i +2Xeyj7k3nFlO5hRmatYGRSlW8YOrPX0XXNogR6FBHUpC/X1vnPcbe8Pf6kKdBvysv0CUjMSDETaf +n53ftFkUDXr62p3ImlSUXF7IM3snCCpvrMp8az4vYa/yHoTcxDBBh00ADh/WLOsK28yoxAsMIxKP +pTFT54WSDM0skrh2HVxn4cw+zwencwYLNPvMxRSu4RGRpApLQ0mF9cA1Ac2Utwi/lfyx95B65Faf +CfK5hcqvpbSjEZjbVKJ06GihuxyrjgqxjWvt2NhWaWdbDENq5EhVh8p+FXI6UDTOHfX1SJvt7j0Y +P9ShOmJb4YBFhUCCJcgb2S0opHGrJ8qFZEolRIrnDObx6LhLQj+3aC79UkHdO0I2jDdkxCFMTGHy +tvIxa+uf6fsf5XkvJtvgFUtwRr3yxJ64D7SFYj5iWJAbVx5Xce56V4gR37BVaRwkvfpw+QcTPuuK +wCFCUMi+Mpq3ucx3C8ySRBbmdtEcsUjUQt2aw+CNJ/FtBERNjYY5bHsMtxiS5+uhoT6b7zwYRY9c +GrRbt0Msqyhe0KGC9IWokOQL4wcitijz+zgSkXz9IV4pePNFi8poPkTqwl3qdYcauuNoVhz9wGGj +zC4FhQ0Y6g0JBkTyLMR2D3SsrfJGONCygfpjf43SS8PAKqUcK/O6ntqSZRO+yCIVNOjO2J5NZXN5 +m68TXo8OtO/9fTSrVPVkRRrgsHlYS1PFuPC5n6R9GZOFlMMJlCLR3Zd/os71uxFfkYPuTUIPNJ8H +vOnPG7efTd1oj+7QrOl8Wbo/Ous1/H0mhqLtZ/+/V54Deum0MxNGwzzhTRZuuhSuezKMlB/VSG/P +GNrYhmNrC99IkhBU8Os3WiRUERcs5eUdnuXnjNMBLO8mLJvWeNpU7/ybG0wXPjvz0LyRTdkZXrFJ +xFy1AObigd5fgpx5nvIMYnfk3BghTmM8vWn7Adg0MxPMz/03Lm7Y83baROOg+znWl2la7hmXkiuR +rGTjfDH1px5LBV4cqBYYU7qTGXWRmg6CFYQ8ZqRLACVwW7IWf4byipG+R6z3111oQJ+M73rl2wyr +6jSP8K0w6f+x2U8AhSjTuKroNa3uyE4jiUEJqeEFMo8qn93iBpz2Ygi+ogVIV4IIGV2jBkIVB+Ar +TFY7ctATy9SUJ0REiq/c0WUR4CeRTA1AjQd77EqLQWOXO7YWtcLlzvo3KFRCFubFzvwNhRhk/OpG +oGSovE6uARTju2uDJgdAH27avECLZZQP6AGMzclq0lYfsBL5Q4goCqRXOath1f8e+KUjTViPHnWh +peIrgVIVg2P9DtLnBVSgkavW6LsyTdeCuOXjn4OAeJ8M+zYvX/6NcpcwTkF8VDQBfad/PT01krFk +5SvRa5xS+duc4qNAaxWsQu6bJJuGb/b02N+Z+8JjLw0OoY3hfFG6gOHMQzwvZtZyIUwLgvGxSSAB +/e50asg2ROpKzHaAUlLv2o4eRojuxG6hFdDH435QX6TZQQKcmccUNnl1WDMIMje66AG4WgturRZV +l8SBqdyQeQOlM8Z7RNI5oLWtoQXeZ9Do7JykHG6AuE7GCu9sDNjQ+eITAMMN7OwAoCoQTIv9N269 +ShXFyQlwP4Eq+GxcAdON4kF1bbunQMiCaLl2QQmnyrXgm2x44UnocJDymGrue4/tueTXBYLLQ6+7 +kgpc8GqnoLTzO3z9X8X44cttQFxM918weQqoIg8CJDUI1LuURHcbNc/Ob2aTfwH3muVf +""".decode("base64").decode("zlib") + +##file activate.sh +ACTIVATE_SH = """ +eJytVU1v4jAQPW9+xTT0ANVS1GsrDlRFAqmFqmG72m0rY5IJsRRslDiktNr/vuMQ8tFQpNU2B4I9 +H36eeW/SglkgYvBFiLBKYg0LhCRGD1KhA7BjlUQuwkLIHne12HCNNpz5kVrBgsfBmdWCrUrA5VIq +DVEiQWjwRISuDreW5eE+CtodeLeAnhZEGKMGFXqAciMiJVcoNWx4JPgixDjzEj48QVeCfcqmtzfs +cfww+zG4ZfeD2ciGF7gCHaDMPM1jtvuHXAsPfF2rSGeOxV4iDY5GUGb3xVEYv2aj6WQ0vRseAlMY +G5DKsAawwnQUXt2LQOYlzZoYByqhonqoqfxZf4BLD97i4DukgXADCPgGgdOLTK5arYxZB1xnrc9T +EQFcHoZEAa1gSQioo/TPV5FZrDlxJA+NzwF+Ek1UonOzFnKZp6k5mgLBqSkuuAGXS4whJb5xz/xs +wXCHjiVerAk5eh9Kfz1wqOldtVv9dkbscfjgjKeTA8XPrtaNauX5rInOxaHuOReNtpFjo1/OxdFG +5eY9hJ3L3jqcPJbATggXAemDLZX0MNZRYjSDH7C1wMHQh73DyYfTu8a0F9v+6D8W6XNnF1GEIXW/ +JrSKPOtnW1YFat9mrLJkzLbyIlTvYzV0RGXcaTBfVLx7jF2PJ2wyuBsydpm7VSVa4C4Zb6pFO2TR +huypCEPwuQjNftUrNl6GsYZzuFrrLdC9iJjQ3omAPBbcI2lsU77tUD43kw1NPZhTrnZWzuQKLomx +Rd4OXM1ByExVVkmoTwfBJ7Lt10Iq1Kgo23Bmd8Ib1KrGbsbO4Pp2yO4fpnf3s6MnZiwuiJuls1/L +Pu4yUCvhpA+vZaJvWWDTr0yFYYyVnHMqCEq+QniuYX225xmnzRENjbXACF3wkCYNVZ1mBwxoR9Iw +WAo3/36oSOTfgjwEEQKt15e9Xpqm52+oaXxszmnE9GLl65RH2OMmS6+u5acKxDmlPgj2eT5/gQOX +LLK0j1y0Uwbmn438VZkVpqlfNKa/YET/53j+99G8H8tUhr9ZSXs2 +""".decode("base64").decode("zlib") + +##file activate.fish +ACTIVATE_FISH = """ +eJydVm1v4jgQ/s6vmA1wBxUE7X2stJVYlVWR2lK13d6d9laRk0yIr8HmbIe0++tvnIQQB9pbXT5A +Ys/LM55nZtyHx5RrSHiGsMm1gRAh1xhDwU0Kng8hFzMWGb5jBv2E69SDs0TJDdj3MxilxmzPZzP7 +pVPMMl+q9bjXh1eZQ8SEkAZULoAbiLnCyGSvvV6SC7IoBcS4Nw0wjcFbvJDcjiuTswzFDpiIQaHJ +lQAjQUi1YRmUboC2uZJig8J4PaCnT5IaDcgsbm/CjinOwgx1KcUTMEhhTgV4g2B1fRk8Le8fv86v +g7v545UHpZB9rKnp+gXsMhxLunIIpwVQxP/l9c/Hq9Xt1epm4R27bva6AJqN92G4YhbMG2i+LB+u +grv71c3dY7B6WtzfLy9bePbp0taDTXSwJQJszUnnp0y57mvpPcrF7ZODyhswtd59+/jdgw+fwBNS +xLSscksUPIDqwwNmCez3PpxGeyBYg6HE0YdcWBxcKczYzuVJi5Wu915vn5oWePCCoPUZBN5B7IgV +MCi54ZDLG7TUZ0HweXkb3M5vFmSpFm/gthhBx0UrveoPpv9AJ9unIbQYdUoe21bKg2q48sPFGVwu +H+afrxd1qvclaNlRFyh1EQ2sSccEuNAGWQwysfVpz1tPajUqbqJUnEcIJkWo6OXDaodK8ZiLdbmM +L1wb+9H0D+pcyPSrX5u5kgWSygRYXCnJUi/KKcuU4cqsAyTKZBiissLc7NFwizvjxtieKBVCIdWz +fzilzPaYyljZN0cGN1v7NnaIPNCGmVy3GKuJaQ6iVjE1Qfm+36hglErwmnAD8hu0dDy4uICBA8ZV +pQr/q/+O0KFW2kjelu9Dgb9SDBsWV4F4x5CswgS0zBVlk5tDMP5bVtUGpslbm81Lu2sdKq7uNMGh +MVQ4fy9xhogC1lS5guhISa0DlBWv0O8odT6/LP+4WZzDV6FzIkEqC0uolGZSZoMnlpxplmD2euaT +O4hkTpPnbztDccey0bhjDaBIqaWQa0uwEtQEwtyU56i4fq54F9IE3ORR6mKriODM4XOYZwaVYLYz +7SPbKkz4i7VkB6/Ot1upDE3znNqYKpM8raa0Bx8vfvntJ32UENsM4aI6gJL+jJwhxhh3jVIDOcpi +m0r2hmEtS8XXXNBk71QCDXTBNhhPiHX2LtHkrVIlhoEshH/EZgdq53Eirqs5iFKMnkOmqZTtr3Xq +djvPTWZT4S3NT5aVLgurMPUWI07BRVYqkQrmtCKohNY8qu9EdACoT6ki0a66XxVF4f9AQ3W38yO5 +mWmZmIIpnDFrbXakvKWeZhLwhvrbUH8fahhqD0YUcBDJjEBMQwiznE4y5QbHrbhHBOnUAYzb2tVN +jJa65e+eE2Ya30E2GurxUP8ssA6e/wOnvo3V78d3vTcvMB3n7l3iX1JXWqk= +""".decode("base64").decode("zlib") + +##file activate.csh +ACTIVATE_CSH = """ +eJx9U11vmzAUffevOCVRu+UB9pws29Kl0iq1aVWllaZlcgxciiViItsQdb9+xiQp+dh4QOB7Pu49 +XHqY59IgkwVhVRmLmFAZSrGRNkdgykonhFiqSCRW1sJSmJg8wCDT5QrucRCyHn6WFRKhVGmhKwVp +kUpNiS3emup3TY6XIn7DVNQyJUwlrgthJD6n/iCNv72uhCzCpFx9CRkThRQGKe08cWXJ9db/yh/u +pvzl9mn+PLnjj5P5D1yM8QmXlzBkSdXwZ0H/BBc0mEo5FE5qI2jKhclHOOvy9HD/OO/6YO1mX9vx +sY0H/tPIV0dtqel0V7iZvWyNg8XFcBA0ToEqVeqOdNUEQFvN41SumAv32VtJrakQNSmLWmgp4oJM +yDoBHgoydtoEAs47r5wHHnUal5vbJ8oOI+9wI86vb2d8Nrm/4Xy4RZ8R85E4uTZPB5EZPnTaaAGu +E59J8BE2J8XgrkbLeXMlVoQxznEYFYY8uFFdxsKQRx90Giwx9vSueHP1YNaUSFG4vTaErNSYuBOF +lXiVyXa9Sy3JdClEyK1dD6Nos9mEf8iKlOpmqSNTZnYjNEWiUYn2pKNB3ttcLJ3HmYYXy6Un76f7 +r8rRsC1TpTJj7f19m5sUf/V3Ir+x/yjtLu8KjLX/CmN/AcVGUUo= +""".decode("base64").decode("zlib") + +##file activate.bat +ACTIVATE_BAT = """ +eJyFUkEKgzAQvAfyhz0YaL9QEWpRqlSjWGspFPZQTevFHOr/adQaU1GaUzI7Mzu7ZF89XhKkEJS8 +qxaKMMsvboQ+LxxE44VICSW1gEa2UFaibqoS0iyJ0xw2lIA6nX5AHCu1jpRsv5KRjknkac9VLVug +sX9mtzxIeJDE/mg4OGp47qoLo3NHX2jsMB3AiDht5hryAUOEifoTdCXbSh7V0My2NMq/Xbh5MEjU +ZT63gpgNT9lKOJ/CtHsvT99re3pX303kydn4HeyOeAg5cjf2EW1D6HOPkg9NGKhu +""".decode("base64").decode("zlib") + +##file deactivate.bat +DEACTIVATE_BAT = """ +eJxzSE3OyFfIT0vj4spMU0hJTcvMS01RiPf3cYkP8wwKCXX0iQ8I8vcNCFHQ4FIAguLUEgWIgK0q +FlWqXJpcICVYpGzx2BAZ4uHv5+Hv6wq1BWINXBTdKriEKkI1DhW2QAfhttcxxANiFZCBbglQSJUL +i2dASrm4rFz9XLgAwJNbyQ== +""".decode("base64").decode("zlib") + +##file distutils-init.py +DISTUTILS_INIT = """ +eJytV92L4zYQf9dfMU0ottuse/TeFkKh3MvC0Ydy0IdlMVpbTtR1JCMpm+T++s5Y/pBs53oPZ1hQ +pPnSb34zo5WnVhsH2jLpV/Y2Li/cKKkOFoYN3Za6ErAdFtKC0g44vEvjzrwR6h1Oujo3YgdWw0VA +yRWcLUo6cBpqqSpwRwHWVY18ZRB9W3jq3HDlfoIvqK7NG2gF7a297VANvZ3O1sGrQI/eDe5yB0ZY +WQkLUpHxhVX09NDe3FGr31BL1lJUD9f8ln+FShpROm1ujOFS8ZOAPUKRt9wd836Hjqw7O9nYgvYD +iX+1VOlMPPXQ5EVRy0YURbaDZDSQZEzWo7rS5kSLNHaQwX4RRLrQGe1nj92Fh1zltEhHDDZfEO0g +O6MraHn5xg8IpYOfLfC2FdxYShLC64EES4A0uuROYhq49Zs368RpMvTHJmOiscKHUXRXKIpcKiuM +Sz/sYHa7TkxcRYkkEhN8HZaxKCJXFFJJh+baW5JluRG8SjM20JHEA9qWWtXywBjbbvF2rjzC61k2 +VSGuDibTUGlhVeLgTekLHPEP73wQrrscUsUGrPCGjkTCC1JXXyw8EJWP3FSUZY8IiSCCRp97dnfO +RUUx5a0RtbxSzLX/3XBXYxIpyQka/fh74pGrjQ5QzUt9OnFV5dMV+otOG5gQjctxozNTNtzaSSiN +JHqu0FeJmsqRN/KrKHRLGbaQWtHUgRB9FDfu5giN4eZWIDqWCv8vrcTjrNZgRXQPzy+RmGjQpLRI +EKz0UqQLlR28ciusM8jn7PtcLPZy2zbSDeyyos0iO+ybBgPyRvSk/CEFm8IndQebz8iXTRbbjhDP +5xh7iJfBrKd/Nenjj6Jvgp2B+W7AnP102BXH5IZWPV3tI2MUOvXowpdS12IIXhLLP0lKyeuZrpEv +pFhPqHg3JFTd1cceVp0EsPgGU0wFO2u4iyYRoFYfEm9kG/RZcUUBm87t9mFtx9iCtC9kx4Rt4R8a +OdgzSt40vtyFecAZZ8BfCOhCrC8djMGPFaz2Vlt5TSZCk053+37wbLDLRXfZ+F45NtdVpVWdudSC +xgODI8EsiLoTl5aO0lhoigX7GHZDHAY4LxoMIu1gXPYPksmFquxF4uRKZhEnKzXu82HESb+LlNQz +Fh/RvFJVuhK+Ee5slBdj30FcRGdJ5rhKxtkyKxWcGoV/WOCYKqkNDYJ5fNQVx3g400tpJBS2FSU+ +Tco9ss8nZ08dtscGQfSby87b73fOw+4UgrEMNnY6uMzYvSDxPVPpsij6+l0/ZPfuH0Iz010giY34 +HpL0ZLyLJB4ukaQRU+GwptO7yIZCQE33B0K9iCqO6X+AR4n7wAeH68DPkJzpTsD3x+/cj9LIVHC2 +An1wmv7CzWHoqR02vb0VL73siP+3nkX0YbQ0l9f6WDyOm24cj3rxO2MMip6kpcu6VCefn/789PR3 +0v0fg21sFIp70rj9PCi8YDRDXFucym/43qN+iENh1Jy/dIIIqF3OIkDvBMsdx+huWv8Kz73vl8g5 +WQ3JOGqwu3lb4dfKKbvLigXDQsb8B/xt39Q= +""".decode("base64").decode("zlib") + +##file distutils.cfg +DISTUTILS_CFG = """ +eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH +xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg +9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q= +""".decode("base64").decode("zlib") + +##file activate_this.py +ACTIVATE_THIS = """ +eJyNUlGL2zAMfvevEBlHEujSsXsL9GGDvW1jD3sZpQQ3Ua7aJXawnbT595Ocpe0dO5ghseVP+vRJ +VpIkn2cYPZknwAvWLXWYhRP5Sk4baKgOWRWNqtpdgTyH2Y5wpq5Tug406YAgKEzkwqg7NBPwR86a +Hk0olPopaK0NHJHzYQPnE5rI0o8+yBUwiBfyQcT8mMPJGiAT0A0O+b8BY4MKJ7zPcSSzHaKrSpJE +qeDmUgGvVbPCS41DgO+6xy/OWbfAThMn/OQ9ukDWRCSLiKzk1yrLjWapq6NnvHUoHXQ4bYPdrsVX +4lQMc/q6ZW975nmSK+oH6wL42a9H65U6aha342Mh0UVDzrD87C1bH73s16R5zsStkBZDp0NrXQ+7 +HaRnMo8f06UBnljKoOtn/YT+LtdvSyaT/BtIv9KR60nF9f3qmuYKO4//T9ItJMsjPfgUHqKwCZ3n +xu/Lx8M/UvCLTxW7VULHxB1PRRbrYfvWNY5S8it008jOjcleaMqVBDnUXcWULV2YK9JEQ92OfC96 +1Tv4ZicZZZ7GpuEpZbbeQ7DxquVx5hdqoyFSSmXwfC90f1Dc7hjFs/tK99I0fpkI8zSLy4tSy+sI +3vMWehjQNJmE5VePlZbL61nzX3S93ZcfDqznnkb9AZ3GWJU= +""".decode("base64").decode("zlib") + +if __name__ == '__main__': + main() + +## TODO: +## Copy python.exe.manifest +## Monkeypatch distutils.sysconfig Property changes on: usertools/swift-vm-boot/futuregrid/bin/virtualenv.py ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-vm-boot/futuregrid/env.sh =================================================================== --- usertools/swift-vm-boot/futuregrid/env.sh (rev 0) +++ usertools/swift-vm-boot/futuregrid/env.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,9 @@ +export FUTUREGRID_IAAS_ACCESS_KEY=XXXX +export FUTUREGRID_IAAS_SECRET_KEY=XXXXXXXXX + +export EC2_ACCESS_KEY=$FUTUREGRID_IAAS_ACCESS_KEY +export EC2_SECRET_KEY=$FUTUREGRID_IAAS_SECRET_KEY + +export EC2_URL=https://s83r.idp.sdsc.futuregrid.org:8444 + +export FUTUREGRID_SIERRA_NODES=2 Added: usertools/swift-vm-boot/futuregrid/hosts.txt =================================================================== --- usertools/swift-vm-boot/futuregrid/hosts.txt (rev 0) +++ usertools/swift-vm-boot/futuregrid/hosts.txt 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1 @@ +s83r.idp.sdsc.futuregrid.org Added: usertools/swift-vm-boot/futuregrid/install.sh =================================================================== --- usertools/swift-vm-boot/futuregrid/install.sh (rev 0) +++ usertools/swift-vm-boot/futuregrid/install.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,28 @@ +#!/bin/bash + +cd `dirname $0` + +source env.sh +python bin/virtualenv.py ve +if [ $? -ne 0 ]; then + echo "Failed to created the needed python virtual environment" + exit 1 +fi + +source ve/bin/activate +easy_install cloudinitd +if [ $? -ne 0 ]; then + echo "Failed to install cloudinitd" + exit 1 +fi + +echo "Registering the key names in all the clouds" +python bin/register_key.py hosts.txt +if [ $? -ne 0 ]; then + echo "Failed to register the key names" + exit 1 +fi + +echo "Success!" +echo "" +echo 0 Property changes on: usertools/swift-vm-boot/futuregrid/install.sh ___________________________________________________________________ Added: svn:executable + * Added: usertools/swift-vm-boot/futuregrid/plan/test-level1.conf =================================================================== --- usertools/swift-vm-boot/futuregrid/plan/test-level1.conf (rev 0) +++ usertools/swift-vm-boot/futuregrid/plan/test-level1.conf 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,12 @@ +[svc-sierra] + +replica_count: env.FUTUREGRID_SIERRA_NODES +iaas_key: env.FUTUREGRID_IAAS_ACCESS_KEY +iaas_secret: env.FUTUREGRID_IAAS_SECRET_KEY +sshkeyname: swiftkey +localsshkeypath: ~/.ssh/id_rsa.pub +iaas_url: https://s83r.idp.sdsc.futuregrid.org:8444 +image: debian-lenny.gz +iaas: nimbus +ssh_username: root + Added: usertools/swift-vm-boot/futuregrid/plan/top.conf =================================================================== --- usertools/swift-vm-boot/futuregrid/plan/top.conf (rev 0) +++ usertools/swift-vm-boot/futuregrid/plan/top.conf 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,10 @@ +# This is a sample top level configuration file. Each entry under runlevels +# is a file with a single runlevel description. All of the services in that +# file are run at the same time but the next level is not begun until +# all of these services in the previous successfully complete. + +[defaults] + +[runlevels] +level1: test-level1.conf + Copied: usertools/swift-vm-boot/gp/ec2.template.conf (from rev 5424, usertools/swift-gp-boot/ec2.template.conf) =================================================================== --- usertools/swift-vm-boot/gp/ec2.template.conf (rev 0) +++ usertools/swift-vm-boot/gp/ec2.template.conf 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,17 @@ +[general] +domains: swift +deploy: ec2 + +[domain-swift] +users: swift +nfs-nis: yes +lrm: none +cluster-nodes: _CLUSTER-NODES_ + +[ec2] +ami: _AMI_ +instance-type: _INSTANCE-TYPE_ +keypair: _KEYPAIR_ +keyfile: _KEYFILE_ +username: ubuntu + Copied: usertools/swift-vm-boot/gp/globus-provision-0.3.2.tar.gz (from rev 5424, usertools/swift-gp-boot/globus-provision-0.3.2.tar.gz) =================================================================== (Binary files differ) Copied: usertools/swift-vm-boot/gp/install.sh (from rev 5424, usertools/swift-gp-boot/install.sh) =================================================================== --- usertools/swift-vm-boot/gp/install.sh (rev 0) +++ usertools/swift-vm-boot/gp/install.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -0,0 +1,8 @@ +#!/bin/bash + +tar xvfz globus-provision-0.3.2.tar.gz +cd globus-provision-0.3.2 +python setup.py install --user +cd .. +ln -s ~/.local/bin +ln -s ~/.local/lib Deleted: usertools/swift-vm-boot/hosts.txt =================================================================== --- usertools/swift-vm-boot/hosts.txt 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-vm-boot/hosts.txt 2011-12-16 18:38:06 UTC (rev 5425) @@ -1 +0,0 @@ -s83r.idp.sdsc.futuregrid.org Deleted: usertools/swift-vm-boot/install.sh =================================================================== --- usertools/swift-vm-boot/install.sh 2011-12-16 18:28:15 UTC (rev 5424) +++ usertools/swift-vm-boot/install.sh 2011-12-16 18:38:06 UTC (rev 5425) @@ -1,28 +0,0 @@ -#!/bin/bash - -cd `dirname $0` - -source env.sh -python bin/virtualenv.py ve -if [ $? -ne 0 ]; then - echo "Failed to created the needed python virtual environment" - exit 1 -fi - -source ve/bin/activate -easy_install cloudinitd -if [ $? -ne 0 ]; then - echo "Failed to install cloudinitd" - exit 1 -fi - -echo "Registering the key names in all the clouds" -python bin/register_key.py hosts.txt -if [ $? -ne 0 ]; then - echo "Failed to register the key names" - exit 1 -fi - -echo "Success!" -echo "" -echo 0 From davidk at ci.uchicago.edu Fri Dec 16 13:53:28 2011 From: davidk at ci.uchicago.edu (davidk at ci.uchicago.edu) Date: Fri, 16 Dec 2011 19:53:28 -0000 Subject: [Swift-commit] r5428 - in SwiftApps/modis: . data data/modis data/modis/2002 landuse scripts Message-ID: <20111216195138.340299CCA5@svn.ci.uchicago.edu> Author: davidk Date: 2011-12-16 13:51:37 -0600 (Fri, 16 Dec 2011) New Revision: 5428 Added: SwiftApps/modis/MODIS_grid.gif SwiftApps/modis/cf SwiftApps/modis/coast1.xml SwiftApps/modis/coasters.xml SwiftApps/modis/data/ SwiftApps/modis/data/modis/ SwiftApps/modis/data/modis/2002/ SwiftApps/modis/data/modis/2002/h00v08.tif SwiftApps/modis/data/modis/2002/h00v09.tif SwiftApps/modis/data/modis/2002/h00v10.tif SwiftApps/modis/data/modis/2002/h01v07.tif SwiftApps/modis/data/modis/2002/h01v08.tif SwiftApps/modis/data/modis/2002/h01v09.tif SwiftApps/modis/data/modis/2002/h01v10.tif SwiftApps/modis/data/modis/2002/h01v11.tif SwiftApps/modis/data/modis/2002/h02v06.tif SwiftApps/modis/data/modis/2002/h02v08.tif SwiftApps/modis/data/modis/2002/h02v09.tif SwiftApps/modis/data/modis/2002/h02v10.tif SwiftApps/modis/data/modis/2002/h02v11.tif SwiftApps/modis/data/modis/2002/h03v06.tif SwiftApps/modis/data/modis/2002/h03v07.tif SwiftApps/modis/data/modis/2002/h03v09.tif SwiftApps/modis/data/modis/2002/h03v10.tif SwiftApps/modis/data/modis/2002/h03v11.tif SwiftApps/modis/data/modis/2002/h04v09.tif SwiftApps/modis/data/modis/2002/h04v10.tif SwiftApps/modis/data/modis/2002/h04v11.tif SwiftApps/modis/data/modis/2002/h05v10.tif SwiftApps/modis/data/modis/2002/h05v11.tif SwiftApps/modis/data/modis/2002/h05v13.tif SwiftApps/modis/data/modis/2002/h06v03.tif SwiftApps/modis/data/modis/2002/h06v11.tif SwiftApps/modis/data/modis/2002/h07v03.tif SwiftApps/modis/data/modis/2002/h07v05.tif SwiftApps/modis/data/modis/2002/h07v06.tif SwiftApps/modis/data/modis/2002/h07v07.tif SwiftApps/modis/data/modis/2002/h08v03.tif SwiftApps/modis/data/modis/2002/h08v04.tif SwiftApps/modis/data/modis/2002/h08v05.tif SwiftApps/modis/data/modis/2002/h08v06.tif SwiftApps/modis/data/modis/2002/h08v07.tif SwiftApps/modis/data/modis/2002/h08v08.tif SwiftApps/modis/data/modis/2002/h08v09.tif SwiftApps/modis/data/modis/2002/h08v11.tif SwiftApps/modis/data/modis/2002/h09v02.tif SwiftApps/modis/data/modis/2002/h09v03.tif SwiftApps/modis/data/modis/2002/h09v04.tif SwiftApps/modis/data/modis/2002/h09v05.tif SwiftApps/modis/data/modis/2002/h09v06.tif SwiftApps/modis/data/modis/2002/h09v07.tif SwiftApps/modis/data/modis/2002/h09v08.tif SwiftApps/modis/data/modis/2002/h09v09.tif SwiftApps/modis/data/modis/2002/h10v02.tif SwiftApps/modis/data/modis/2002/h10v03.tif SwiftApps/modis/data/modis/2002/h10v04.tif SwiftApps/modis/data/modis/2002/h10v05.tif SwiftApps/modis/data/modis/2002/h10v06.tif SwiftApps/modis/data/modis/2002/h10v07.tif SwiftApps/modis/data/modis/2002/h10v08.tif SwiftApps/modis/data/modis/2002/h10v09.tif SwiftApps/modis/data/modis/2002/h10v10.tif SwiftApps/modis/data/modis/2002/h10v11.tif SwiftApps/modis/data/modis/2002/h11v02.tif SwiftApps/modis/data/modis/2002/h11v03.tif SwiftApps/modis/data/modis/2002/h11v04.tif SwiftApps/modis/data/modis/2002/h11v05.tif SwiftApps/modis/data/modis/2002/h11v06.tif SwiftApps/modis/data/modis/2002/h11v07.tif SwiftApps/modis/data/modis/2002/h11v08.tif SwiftApps/modis/data/modis/2002/h11v09.tif SwiftApps/modis/data/modis/2002/h11v10.tif SwiftApps/modis/data/modis/2002/h11v11.tif SwiftApps/modis/data/modis/2002/h11v12.tif SwiftApps/modis/data/modis/2002/h12v01.tif SwiftApps/modis/data/modis/2002/h12v02.tif SwiftApps/modis/data/modis/2002/h12v03.tif SwiftApps/modis/data/modis/2002/h12v04.tif SwiftApps/modis/data/modis/2002/h12v05.tif SwiftApps/modis/data/modis/2002/h12v07.tif SwiftApps/modis/data/modis/2002/h12v08.tif SwiftApps/modis/data/modis/2002/h12v09.tif SwiftApps/modis/data/modis/2002/h12v10.tif SwiftApps/modis/data/modis/2002/h12v11.tif SwiftApps/modis/data/modis/2002/h12v12.tif SwiftApps/modis/data/modis/2002/h12v13.tif SwiftApps/modis/data/modis/2002/h13v01.tif SwiftApps/modis/data/modis/2002/h13v02.tif SwiftApps/modis/data/modis/2002/h13v03.tif SwiftApps/modis/data/modis/2002/h13v04.tif SwiftApps/modis/data/modis/2002/h13v08.tif SwiftApps/modis/data/modis/2002/h13v09.tif SwiftApps/modis/data/modis/2002/h13v10.tif SwiftApps/modis/data/modis/2002/h13v11.tif SwiftApps/modis/data/modis/2002/h13v12.tif SwiftApps/modis/data/modis/2002/h13v13.tif SwiftApps/modis/data/modis/2002/h13v14.tif SwiftApps/modis/data/modis/2002/h14v01.tif SwiftApps/modis/data/modis/2002/h14v02.tif SwiftApps/modis/data/modis/2002/h14v03.tif SwiftApps/modis/data/modis/2002/h14v04.tif SwiftApps/modis/data/modis/2002/h14v09.tif SwiftApps/modis/data/modis/2002/h14v10.tif SwiftApps/modis/data/modis/2002/h14v11.tif SwiftApps/modis/data/modis/2002/h14v14.tif SwiftApps/modis/data/modis/2002/h14v16.tif SwiftApps/modis/data/modis/2002/h14v17.tif SwiftApps/modis/data/modis/2002/h15v01.tif SwiftApps/modis/data/modis/2002/h15v02.tif SwiftApps/modis/data/modis/2002/h15v03.tif SwiftApps/modis/data/modis/2002/h15v05.tif SwiftApps/modis/data/modis/2002/h15v07.tif SwiftApps/modis/data/modis/2002/h15v11.tif SwiftApps/modis/data/modis/2002/h15v14.tif SwiftApps/modis/data/modis/2002/h15v15.tif SwiftApps/modis/data/modis/2002/h15v16.tif SwiftApps/modis/data/modis/2002/h15v17.tif SwiftApps/modis/data/modis/2002/h16v00.tif SwiftApps/modis/data/modis/2002/h16v01.tif SwiftApps/modis/data/modis/2002/h16v02.tif SwiftApps/modis/data/modis/2002/h16v05.tif SwiftApps/modis/data/modis/2002/h16v06.tif SwiftApps/modis/data/modis/2002/h16v07.tif SwiftApps/modis/data/modis/2002/h16v08.tif SwiftApps/modis/data/modis/2002/h16v09.tif SwiftApps/modis/data/modis/2002/h16v12.tif SwiftApps/modis/data/modis/2002/h16v14.tif SwiftApps/modis/data/modis/2002/h16v16.tif SwiftApps/modis/data/modis/2002/h16v17.tif SwiftApps/modis/data/modis/2002/h17v00.tif SwiftApps/modis/data/modis/2002/h17v01.tif SwiftApps/modis/data/modis/2002/h17v02.tif SwiftApps/modis/data/modis/2002/h17v03.tif SwiftApps/modis/data/modis/2002/h17v04.tif SwiftApps/modis/data/modis/2002/h17v05.tif SwiftApps/modis/data/modis/2002/h17v06.tif SwiftApps/modis/data/modis/2002/h17v07.tif SwiftApps/modis/data/modis/2002/h17v08.tif SwiftApps/modis/data/modis/2002/h17v10.tif SwiftApps/modis/data/modis/2002/h17v12.tif SwiftApps/modis/data/modis/2002/h17v13.tif SwiftApps/modis/data/modis/2002/h17v15.tif SwiftApps/modis/data/modis/2002/h17v16.tif SwiftApps/modis/data/modis/2002/h17v17.tif SwiftApps/modis/data/modis/2002/h18v00.tif SwiftApps/modis/data/modis/2002/h18v01.tif SwiftApps/modis/data/modis/2002/h18v02.tif SwiftApps/modis/data/modis/2002/h18v03.tif SwiftApps/modis/data/modis/2002/h18v04.tif SwiftApps/modis/data/modis/2002/h18v05.tif SwiftApps/modis/data/modis/2002/h18v06.tif SwiftApps/modis/data/modis/2002/h18v07.tif SwiftApps/modis/data/modis/2002/h18v08.tif SwiftApps/modis/data/modis/2002/h18v09.tif SwiftApps/modis/data/modis/2002/h18v14.tif SwiftApps/modis/data/modis/2002/h18v15.tif SwiftApps/modis/data/modis/2002/h18v16.tif SwiftApps/modis/data/modis/2002/h18v17.tif SwiftApps/modis/data/modis/2002/h19v00.tif SwiftApps/modis/data/modis/2002/h19v01.tif SwiftApps/modis/data/modis/2002/h19v02.tif SwiftApps/modis/data/modis/2002/h19v03.tif SwiftApps/modis/data/modis/2002/h19v04.tif SwiftApps/modis/data/modis/2002/h19v05.tif SwiftApps/modis/data/modis/2002/h19v06.tif SwiftApps/modis/data/modis/2002/h19v07.tif SwiftApps/modis/data/modis/2002/h19v08.tif SwiftApps/modis/data/modis/2002/h19v09.tif SwiftApps/modis/data/modis/2002/h19v10.tif SwiftApps/modis/data/modis/2002/h19v11.tif SwiftApps/modis/data/modis/2002/h19v12.tif SwiftApps/modis/data/modis/2002/h19v15.tif SwiftApps/modis/data/modis/2002/h19v16.tif SwiftApps/modis/data/modis/2002/h19v17.tif SwiftApps/modis/data/modis/2002/h20v01.tif SwiftApps/modis/data/modis/2002/h20v02.tif SwiftApps/modis/data/modis/2002/h20v03.tif SwiftApps/modis/data/modis/2002/h20v04.tif SwiftApps/modis/data/modis/2002/h20v05.tif SwiftApps/modis/data/modis/2002/h20v06.tif SwiftApps/modis/data/modis/2002/h20v07.tif SwiftApps/modis/data/modis/2002/h20v08.tif SwiftApps/modis/data/modis/2002/h20v09.tif SwiftApps/modis/data/modis/2002/h20v10.tif SwiftApps/modis/data/modis/2002/h20v11.tif SwiftApps/modis/data/modis/2002/h20v12.tif SwiftApps/modis/data/modis/2002/h20v13.tif SwiftApps/modis/data/modis/2002/h20v15.tif SwiftApps/modis/data/modis/2002/h20v16.tif SwiftApps/modis/data/modis/2002/h20v17.tif SwiftApps/modis/data/modis/2002/h21v01.tif SwiftApps/modis/data/modis/2002/h21v02.tif SwiftApps/modis/data/modis/2002/h21v03.tif SwiftApps/modis/data/modis/2002/h21v04.tif SwiftApps/modis/data/modis/2002/h21v05.tif SwiftApps/modis/data/modis/2002/h21v06.tif SwiftApps/modis/data/modis/2002/h21v07.tif SwiftApps/modis/data/modis/2002/h21v08.tif SwiftApps/modis/data/modis/2002/h21v09.tif SwiftApps/modis/data/modis/2002/h21v10.tif SwiftApps/modis/data/modis/2002/h21v11.tif SwiftApps/modis/data/modis/2002/h21v13.tif SwiftApps/modis/data/modis/2002/h21v15.tif SwiftApps/modis/data/modis/2002/h21v16.tif SwiftApps/modis/data/modis/2002/h21v17.tif SwiftApps/modis/data/modis/2002/h22v01.tif SwiftApps/modis/data/modis/2002/h22v02.tif SwiftApps/modis/data/modis/2002/h22v03.tif SwiftApps/modis/data/modis/2002/h22v04.tif SwiftApps/modis/data/modis/2002/h22v05.tif SwiftApps/modis/data/modis/2002/h22v06.tif SwiftApps/modis/data/modis/2002/h22v07.tif SwiftApps/modis/data/modis/2002/h22v08.tif SwiftApps/modis/data/modis/2002/h22v09.tif SwiftApps/modis/data/modis/2002/h22v10.tif SwiftApps/modis/data/modis/2002/h22v11.tif SwiftApps/modis/data/modis/2002/h22v13.tif SwiftApps/modis/data/modis/2002/h22v14.tif SwiftApps/modis/data/modis/2002/h22v15.tif SwiftApps/modis/data/modis/2002/h22v16.tif SwiftApps/modis/data/modis/2002/h23v01.tif SwiftApps/modis/data/modis/2002/h23v02.tif SwiftApps/modis/data/modis/2002/h23v03.tif SwiftApps/modis/data/modis/2002/h23v04.tif SwiftApps/modis/data/modis/2002/h23v05.tif SwiftApps/modis/data/modis/2002/h23v06.tif SwiftApps/modis/data/modis/2002/h23v07.tif SwiftApps/modis/data/modis/2002/h23v08.tif SwiftApps/modis/data/modis/2002/h23v09.tif SwiftApps/modis/data/modis/2002/h23v10.tif SwiftApps/modis/data/modis/2002/h23v11.tif SwiftApps/modis/data/modis/2002/h23v15.tif SwiftApps/modis/data/modis/2002/h23v16.tif SwiftApps/modis/data/modis/2002/h24v02.tif SwiftApps/modis/data/modis/2002/h24v03.tif SwiftApps/modis/data/modis/2002/h24v04.tif SwiftApps/modis/data/modis/2002/h24v05.tif SwiftApps/modis/data/modis/2002/h24v06.tif SwiftApps/modis/data/modis/2002/h24v07.tif SwiftApps/modis/data/modis/2002/h24v12.tif SwiftApps/modis/data/modis/2002/h24v15.tif SwiftApps/modis/data/modis/2002/h25v02.tif SwiftApps/modis/data/modis/2002/h25v03.tif SwiftApps/modis/data/modis/2002/h25v04.tif SwiftApps/modis/data/modis/2002/h25v05.tif SwiftApps/modis/data/modis/2002/h25v06.tif SwiftApps/modis/data/modis/2002/h25v07.tif SwiftApps/modis/data/modis/2002/h25v08.tif SwiftApps/modis/data/modis/2002/h25v09.tif SwiftApps/modis/data/modis/2002/h26v02.tif SwiftApps/modis/data/modis/2002/h26v03.tif SwiftApps/modis/data/modis/2002/h26v04.tif SwiftApps/modis/data/modis/2002/h26v05.tif SwiftApps/modis/data/modis/2002/h26v06.tif SwiftApps/modis/data/modis/2002/h26v07.tif SwiftApps/modis/data/modis/2002/h26v08.tif SwiftApps/modis/data/modis/2002/h27v03.tif SwiftApps/modis/data/modis/2002/h27v04.tif SwiftApps/modis/data/modis/2002/h27v05.tif SwiftApps/modis/data/modis/2002/h27v06.tif SwiftApps/modis/data/modis/2002/h27v07.tif SwiftApps/modis/data/modis/2002/h27v08.tif SwiftApps/modis/data/modis/2002/h27v09.tif SwiftApps/modis/data/modis/2002/h27v10.tif SwiftApps/modis/data/modis/2002/h27v11.tif SwiftApps/modis/data/modis/2002/h27v12.tif SwiftApps/modis/data/modis/2002/h27v14.tif SwiftApps/modis/data/modis/2002/h28v03.tif SwiftApps/modis/data/modis/2002/h28v04.tif SwiftApps/modis/data/modis/2002/h28v05.tif SwiftApps/modis/data/modis/2002/h28v06.tif SwiftApps/modis/data/modis/2002/h28v07.tif SwiftApps/modis/data/modis/2002/h28v08.tif SwiftApps/modis/data/modis/2002/h28v09.tif SwiftApps/modis/data/modis/2002/h28v10.tif SwiftApps/modis/data/modis/2002/h28v11.tif SwiftApps/modis/data/modis/2002/h28v12.tif SwiftApps/modis/data/modis/2002/h28v13.tif SwiftApps/modis/data/modis/2002/h28v14.tif SwiftApps/modis/data/modis/2002/h29v03.tif SwiftApps/modis/data/modis/2002/h29v05.tif SwiftApps/modis/data/modis/2002/h29v06.tif SwiftApps/modis/data/modis/2002/h29v07.tif SwiftApps/modis/data/modis/2002/h29v08.tif SwiftApps/modis/data/modis/2002/h29v09.tif SwiftApps/modis/data/modis/2002/h29v10.tif SwiftApps/modis/data/modis/2002/h29v11.tif SwiftApps/modis/data/modis/2002/h29v12.tif SwiftApps/modis/data/modis/2002/h29v13.tif SwiftApps/modis/data/modis/2002/h30v05.tif SwiftApps/modis/data/modis/2002/h30v06.tif SwiftApps/modis/data/modis/2002/h30v07.tif SwiftApps/modis/data/modis/2002/h30v08.tif SwiftApps/modis/data/modis/2002/h30v09.tif SwiftApps/modis/data/modis/2002/h30v10.tif SwiftApps/modis/data/modis/2002/h30v11.tif SwiftApps/modis/data/modis/2002/h30v12.tif SwiftApps/modis/data/modis/2002/h30v13.tif SwiftApps/modis/data/modis/2002/h31v06.tif SwiftApps/modis/data/modis/2002/h31v07.tif SwiftApps/modis/data/modis/2002/h31v08.tif SwiftApps/modis/data/modis/2002/h31v09.tif SwiftApps/modis/data/modis/2002/h31v10.tif SwiftApps/modis/data/modis/2002/h31v11.tif SwiftApps/modis/data/modis/2002/h31v12.tif SwiftApps/modis/data/modis/2002/h31v13.tif SwiftApps/modis/data/modis/2002/h32v07.tif SwiftApps/modis/data/modis/2002/h32v08.tif SwiftApps/modis/data/modis/2002/h32v09.tif SwiftApps/modis/data/modis/2002/h32v10.tif SwiftApps/modis/data/modis/2002/h32v11.tif SwiftApps/modis/data/modis/2002/h32v12.tif SwiftApps/modis/data/modis/2002/h33v07.tif SwiftApps/modis/data/modis/2002/h33v08.tif SwiftApps/modis/data/modis/2002/h33v09.tif SwiftApps/modis/data/modis/2002/h33v10.tif SwiftApps/modis/data/modis/2002/h33v11.tif SwiftApps/modis/data/modis/2002/h34v07.tif SwiftApps/modis/data/modis/2002/h34v08.tif SwiftApps/modis/data/modis/2002/h34v09.tif SwiftApps/modis/data/modis/2002/h34v10.tif SwiftApps/modis/data/modis/2002/h35v08.tif SwiftApps/modis/data/modis/2002/h35v09.tif SwiftApps/modis/data/modis/2002/h35v10.tif SwiftApps/modis/demo3 SwiftApps/modis/demo4 SwiftApps/modis/demo5 SwiftApps/modis/demo5.local SwiftApps/modis/demo5.local.out SwiftApps/modis/demo5.local.out2 SwiftApps/modis/demo5.local.out3 SwiftApps/modis/g.gif SwiftApps/modis/geos.mapper.sh SwiftApps/modis/gridmap.gif SwiftApps/modis/landuse/ SwiftApps/modis/landuse/h00v08.color.png SwiftApps/modis/landuse/h00v09.color.png SwiftApps/modis/landuse/h00v10.color.png SwiftApps/modis/landuse/h01v07.color.png SwiftApps/modis/landuse/h01v08.color.png SwiftApps/modis/landuse/h01v09.color.png SwiftApps/modis/landuse/h01v10.color.png SwiftApps/modis/landuse/h01v11.color.png SwiftApps/modis/landuse/h02v06.color.png SwiftApps/modis/landuse/h02v08.color.png SwiftApps/modis/landuse/h02v09.color.png SwiftApps/modis/landuse/h02v10.color.png SwiftApps/modis/landuse/h02v11.color.png SwiftApps/modis/landuse/h03v06.color.png SwiftApps/modis/landuse/h03v07.color.png SwiftApps/modis/landuse/h03v09.color.png SwiftApps/modis/landuse/h03v10.color.png SwiftApps/modis/landuse/h03v11.color.png SwiftApps/modis/landuse/h04v09.color.png SwiftApps/modis/landuse/h04v10.color.png SwiftApps/modis/landuse/h04v11.color.png SwiftApps/modis/landuse/h05v10.color.png SwiftApps/modis/landuse/h05v11.color.png SwiftApps/modis/landuse/h05v13.color.png SwiftApps/modis/landuse/h06v03.color.png SwiftApps/modis/landuse/h06v11.color.png SwiftApps/modis/landuse/h07v03.color.png SwiftApps/modis/landuse/h07v05.color.png SwiftApps/modis/landuse/h07v06.color.png SwiftApps/modis/landuse/h07v07.color.png SwiftApps/modis/landuse/h08v03.color.png SwiftApps/modis/landuse/h08v04.color.png SwiftApps/modis/landuse/h08v05.color.png SwiftApps/modis/landuse/h08v06.color.png SwiftApps/modis/landuse/h08v07.color.png SwiftApps/modis/landuse/h08v08.color.png SwiftApps/modis/landuse/h08v09.color.png SwiftApps/modis/landuse/h08v11.color.png SwiftApps/modis/landuse/h09v02.color.png SwiftApps/modis/landuse/h09v03.color.png SwiftApps/modis/landuse/h09v04.color.png SwiftApps/modis/landuse/h09v05.color.png SwiftApps/modis/landuse/h09v06.color.png SwiftApps/modis/landuse/h09v07.color.png SwiftApps/modis/landuse/h09v08.color.png SwiftApps/modis/landuse/h09v09.color.png SwiftApps/modis/landuse/h10v02.color.png SwiftApps/modis/landuse/h10v03.color.png SwiftApps/modis/landuse/h10v04.color.png SwiftApps/modis/landuse/h10v05.color.png SwiftApps/modis/landuse/h10v06.color.png SwiftApps/modis/landuse/h10v07.color.png SwiftApps/modis/landuse/h10v08.color.png SwiftApps/modis/landuse/h10v09.color.png SwiftApps/modis/landuse/h10v10.color.png SwiftApps/modis/landuse/h10v11.color.png SwiftApps/modis/landuse/h11v02.color.png SwiftApps/modis/landuse/h11v03.color.png SwiftApps/modis/landuse/h11v04.color.png SwiftApps/modis/landuse/h11v05.color.png SwiftApps/modis/landuse/h11v06.color.png SwiftApps/modis/landuse/h11v07.color.png SwiftApps/modis/landuse/h11v08.color.png SwiftApps/modis/landuse/h11v09.color.png SwiftApps/modis/landuse/h11v10.color.png SwiftApps/modis/landuse/h11v11.color.png SwiftApps/modis/landuse/h11v12.color.png SwiftApps/modis/landuse/h12v01.color.png SwiftApps/modis/landuse/h12v02.color.png SwiftApps/modis/landuse/h12v03.color.png SwiftApps/modis/landuse/h12v04.color.png SwiftApps/modis/landuse/h12v05.color.png SwiftApps/modis/landuse/h12v07.color.png SwiftApps/modis/landuse/h12v08.color.png SwiftApps/modis/landuse/h12v09.color.png SwiftApps/modis/landuse/h12v10.color.png SwiftApps/modis/landuse/h12v11.color.png SwiftApps/modis/landuse/h12v12.color.png SwiftApps/modis/landuse/h12v13.color.png SwiftApps/modis/landuse/h13v01.color.png SwiftApps/modis/landuse/h13v02.color.png SwiftApps/modis/landuse/h13v03.color.png SwiftApps/modis/landuse/h13v04.color.png SwiftApps/modis/landuse/h13v08.color.png SwiftApps/modis/landuse/h13v09.color.png SwiftApps/modis/landuse/h13v10.color.png SwiftApps/modis/landuse/h13v11.color.png SwiftApps/modis/landuse/h13v12.color.png SwiftApps/modis/landuse/h13v13.color.png SwiftApps/modis/landuse/h13v14.color.png SwiftApps/modis/landuse/h14v01.color.png SwiftApps/modis/landuse/h14v02.color.png SwiftApps/modis/landuse/h14v03.color.png SwiftApps/modis/landuse/h14v04.color.png SwiftApps/modis/landuse/h14v09.color.png SwiftApps/modis/landuse/h14v10.color.png SwiftApps/modis/landuse/h14v11.color.png SwiftApps/modis/landuse/h14v14.color.png SwiftApps/modis/landuse/h14v16.color.png SwiftApps/modis/landuse/h14v17.color.png SwiftApps/modis/landuse/h15v01.color.png SwiftApps/modis/landuse/h15v02.color.png SwiftApps/modis/landuse/h15v03.color.png SwiftApps/modis/landuse/h15v05.color.png SwiftApps/modis/landuse/h15v07.color.png SwiftApps/modis/landuse/h15v11.color.png SwiftApps/modis/landuse/h15v14.color.png SwiftApps/modis/landuse/h15v15.color.png SwiftApps/modis/landuse/h15v16.color.png SwiftApps/modis/landuse/h15v17.color.png SwiftApps/modis/landuse/h16v00.color.png SwiftApps/modis/landuse/h16v01.color.png SwiftApps/modis/landuse/h16v02.color.png SwiftApps/modis/landuse/h16v05.color.png SwiftApps/modis/landuse/h16v06.color.png SwiftApps/modis/landuse/h16v07.color.png SwiftApps/modis/landuse/h16v08.color.png SwiftApps/modis/landuse/h16v09.color.png SwiftApps/modis/landuse/h16v12.color.png SwiftApps/modis/landuse/h16v14.color.png SwiftApps/modis/landuse/h16v16.color.png SwiftApps/modis/landuse/h16v17.color.png SwiftApps/modis/landuse/h17v00.color.png SwiftApps/modis/landuse/h17v01.color.png SwiftApps/modis/landuse/h17v02.color.png SwiftApps/modis/landuse/h17v03.color.png SwiftApps/modis/landuse/h17v04.color.png SwiftApps/modis/landuse/h17v05.color.png SwiftApps/modis/landuse/h17v06.color.png SwiftApps/modis/landuse/h17v07.color.png SwiftApps/modis/landuse/h17v08.color.png SwiftApps/modis/landuse/h17v10.color.png SwiftApps/modis/landuse/h17v12.color.png SwiftApps/modis/landuse/h17v13.color.png SwiftApps/modis/landuse/h17v15.color.png SwiftApps/modis/landuse/h17v16.color.png SwiftApps/modis/landuse/h17v17.color.png SwiftApps/modis/landuse/h18v00.color.png SwiftApps/modis/landuse/h18v01.color.png SwiftApps/modis/landuse/h18v02.color.png SwiftApps/modis/landuse/h18v03.color.png SwiftApps/modis/landuse/h18v04.color.png SwiftApps/modis/landuse/h18v05.color.png SwiftApps/modis/landuse/h18v06.color.png SwiftApps/modis/landuse/h18v07.color.png SwiftApps/modis/landuse/h18v08.color.png SwiftApps/modis/landuse/h18v09.color.png SwiftApps/modis/landuse/h18v14.color.png SwiftApps/modis/landuse/h18v15.color.png SwiftApps/modis/landuse/h18v16.color.png SwiftApps/modis/landuse/h18v17.color.png SwiftApps/modis/landuse/h19v00.color.png SwiftApps/modis/landuse/h19v01.color.png SwiftApps/modis/landuse/h19v02.color.png SwiftApps/modis/landuse/h19v03.color.png SwiftApps/modis/landuse/h19v04.color.png SwiftApps/modis/landuse/h19v05.color.png SwiftApps/modis/landuse/h19v06.color.png SwiftApps/modis/landuse/h19v07.color.png SwiftApps/modis/landuse/h19v08.color.png SwiftApps/modis/landuse/h19v09.color.png SwiftApps/modis/landuse/h19v10.color.png SwiftApps/modis/landuse/h19v11.color.png SwiftApps/modis/landuse/h19v12.color.png SwiftApps/modis/landuse/h19v15.color.png SwiftApps/modis/landuse/h19v16.color.png SwiftApps/modis/landuse/h19v17.color.png SwiftApps/modis/landuse/h20v01.color.png SwiftApps/modis/landuse/h20v02.color.png SwiftApps/modis/landuse/h20v03.color.png SwiftApps/modis/landuse/h20v04.color.png SwiftApps/modis/landuse/h20v05.color.png SwiftApps/modis/landuse/h20v06.color.png SwiftApps/modis/landuse/h20v07.color.png SwiftApps/modis/landuse/h20v08.color.png SwiftApps/modis/landuse/h20v09.color.png SwiftApps/modis/landuse/h20v10.color.png SwiftApps/modis/landuse/h20v11.color.png SwiftApps/modis/landuse/h20v12.color.png SwiftApps/modis/landuse/h20v13.color.png SwiftApps/modis/landuse/h20v15.color.png SwiftApps/modis/landuse/h20v16.color.png SwiftApps/modis/landuse/h20v17.color.png SwiftApps/modis/landuse/h21v01.color.png SwiftApps/modis/landuse/h21v02.color.png SwiftApps/modis/landuse/h21v03.color.png SwiftApps/modis/landuse/h21v04.color.png SwiftApps/modis/landuse/h21v05.color.png SwiftApps/modis/landuse/h21v06.color.png SwiftApps/modis/landuse/h21v07.color.png SwiftApps/modis/landuse/h21v08.color.png SwiftApps/modis/landuse/h21v09.color.png SwiftApps/modis/landuse/h21v10.color.png SwiftApps/modis/landuse/h21v11.color.png SwiftApps/modis/landuse/h21v13.color.png SwiftApps/modis/landuse/h21v15.color.png SwiftApps/modis/landuse/h21v16.color.png SwiftApps/modis/landuse/h21v17.color.png SwiftApps/modis/landuse/h22v01.color.png SwiftApps/modis/landuse/h22v02.color.png SwiftApps/modis/landuse/h22v03.color.png SwiftApps/modis/landuse/h22v04.color.png SwiftApps/modis/landuse/h22v05.color.png SwiftApps/modis/landuse/h22v06.color.png SwiftApps/modis/landuse/h22v07.color.png SwiftApps/modis/landuse/h22v08.color.png SwiftApps/modis/landuse/h22v09.color.png SwiftApps/modis/landuse/h22v10.color.png SwiftApps/modis/landuse/h22v11.color.png SwiftApps/modis/landuse/h22v13.color.png SwiftApps/modis/landuse/h22v14.color.png SwiftApps/modis/landuse/h22v15.color.png SwiftApps/modis/landuse/h22v16.color.png SwiftApps/modis/landuse/h23v01.color.png SwiftApps/modis/landuse/h23v02.color.png SwiftApps/modis/landuse/h23v03.color.png SwiftApps/modis/landuse/h23v04.color.png SwiftApps/modis/landuse/h23v05.color.png SwiftApps/modis/landuse/h23v06.color.png SwiftApps/modis/landuse/h23v07.color.png SwiftApps/modis/landuse/h23v08.color.png SwiftApps/modis/landuse/h23v09.color.png SwiftApps/modis/landuse/h23v10.color.png SwiftApps/modis/landuse/h23v11.color.png SwiftApps/modis/landuse/h23v15.color.png SwiftApps/modis/landuse/h23v16.color.png SwiftApps/modis/landuse/h24v02.color.png SwiftApps/modis/landuse/h24v03.color.png SwiftApps/modis/landuse/h24v04.color.png SwiftApps/modis/landuse/h24v05.color.png SwiftApps/modis/landuse/h24v06.color.png SwiftApps/modis/landuse/h24v07.color.png SwiftApps/modis/landuse/h24v12.color.png SwiftApps/modis/landuse/h24v15.color.png SwiftApps/modis/landuse/h25v02.color.png SwiftApps/modis/landuse/h25v03.color.png SwiftApps/modis/landuse/h25v04.color.png SwiftApps/modis/landuse/h25v05.color.png SwiftApps/modis/landuse/h25v06.color.png SwiftApps/modis/landuse/h25v07.color.png SwiftApps/modis/landuse/h25v08.color.png SwiftApps/modis/landuse/h25v09.color.png SwiftApps/modis/landuse/h26v02.color.png SwiftApps/modis/landuse/h26v03.color.png SwiftApps/modis/landuse/h26v04.color.png SwiftApps/modis/landuse/h26v05.color.png SwiftApps/modis/landuse/h26v06.color.png SwiftApps/modis/landuse/h26v07.color.png SwiftApps/modis/landuse/h26v08.color.png SwiftApps/modis/landuse/h27v03.color.png SwiftApps/modis/landuse/h27v04.color.png SwiftApps/modis/landuse/h27v05.color.png SwiftApps/modis/landuse/h27v06.color.png SwiftApps/modis/landuse/h27v07.color.png SwiftApps/modis/landuse/h27v08.color.png SwiftApps/modis/landuse/h27v09.color.png SwiftApps/modis/landuse/h27v10.color.png SwiftApps/modis/landuse/h27v11.color.png SwiftApps/modis/landuse/h27v12.color.png SwiftApps/modis/landuse/h27v14.color.png SwiftApps/modis/landuse/h28v03.color.png SwiftApps/modis/landuse/h28v04.color.png SwiftApps/modis/landuse/h28v05.color.png SwiftApps/modis/landuse/h28v06.color.png SwiftApps/modis/landuse/h28v07.color.png SwiftApps/modis/landuse/h28v08.color.png SwiftApps/modis/landuse/h28v09.color.png SwiftApps/modis/landuse/h28v10.color.png SwiftApps/modis/landuse/h28v11.color.png SwiftApps/modis/landuse/h28v12.color.png SwiftApps/modis/landuse/h28v13.color.png SwiftApps/modis/landuse/h28v14.color.png SwiftApps/modis/landuse/h29v03.color.png SwiftApps/modis/landuse/h29v05.color.png SwiftApps/modis/landuse/h29v06.color.png SwiftApps/modis/landuse/h29v07.color.png SwiftApps/modis/landuse/h29v08.color.png SwiftApps/modis/landuse/h29v09.color.png SwiftApps/modis/landuse/h29v10.color.png SwiftApps/modis/landuse/h29v11.color.png SwiftApps/modis/landuse/h29v12.color.png SwiftApps/modis/landuse/h29v13.color.png SwiftApps/modis/landuse/h30v05.color.png SwiftApps/modis/landuse/h30v06.color.png SwiftApps/modis/landuse/h30v07.color.png SwiftApps/modis/landuse/h30v08.color.png SwiftApps/modis/landuse/h30v09.color.png SwiftApps/modis/landuse/h30v10.color.png SwiftApps/modis/landuse/h30v11.color.png SwiftApps/modis/landuse/h30v12.color.png SwiftApps/modis/landuse/h30v13.color.png SwiftApps/modis/landuse/h31v06.color.png SwiftApps/modis/landuse/h31v07.color.png SwiftApps/modis/landuse/h31v08.color.png SwiftApps/modis/landuse/h31v09.color.png SwiftApps/modis/landuse/h31v10.color.png SwiftApps/modis/landuse/h31v11.color.png SwiftApps/modis/landuse/h31v12.color.png SwiftApps/modis/landuse/h31v13.color.png SwiftApps/modis/landuse/h32v07.color.png SwiftApps/modis/landuse/h32v08.color.png SwiftApps/modis/landuse/h32v09.color.png SwiftApps/modis/landuse/h32v10.color.png SwiftApps/modis/landuse/h32v11.color.png SwiftApps/modis/landuse/h32v12.color.png SwiftApps/modis/landuse/h33v07.color.png SwiftApps/modis/landuse/h33v08.color.png SwiftApps/modis/landuse/h33v09.color.png SwiftApps/modis/landuse/h33v10.color.png SwiftApps/modis/landuse/h33v11.color.png SwiftApps/modis/landuse/h34v07.color.png SwiftApps/modis/landuse/h34v08.color.png SwiftApps/modis/landuse/h34v09.color.png SwiftApps/modis/landuse/h34v10.color.png SwiftApps/modis/landuse/h35v08.color.png SwiftApps/modis/landuse/h35v09.color.png SwiftApps/modis/landuse/h35v10.color.png SwiftApps/modis/map.png SwiftApps/modis/markedGrid.gif SwiftApps/modis/modis.mapper SwiftApps/modis/modis.swift SwiftApps/modis/modis2.swift SwiftApps/modis/modis3.swift SwiftApps/modis/modis4.swift SwiftApps/modis/modis5.swift SwiftApps/modis/modis5.xml SwiftApps/modis/modisp1.swift SwiftApps/modis/mon.png SwiftApps/modis/rundemo.sh SwiftApps/modis/rundemo2.pbs.sh SwiftApps/modis/rundemo2.sh SwiftApps/modis/rundemop1.sh SwiftApps/modis/scripts/ SwiftApps/modis/scripts/coaster-service.conf SwiftApps/modis/scripts/gensites.template SwiftApps/modis/selectedtiles.txt SwiftApps/modis/sico.xml SwiftApps/modis/sites.local.xml SwiftApps/modis/sites.xml SwiftApps/modis/sites.xml.pas.coasters SwiftApps/modis/tc SwiftApps/modis/tc.local SwiftApps/modis/tc.pbs SwiftApps/modis/tmp.png SwiftApps/modis/topselected.txt SwiftApps/modis/white.png Log: Most recent version of modis Added: SwiftApps/modis/MODIS_grid.gif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/MODIS_grid.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/cf =================================================================== --- SwiftApps/modis/cf (rev 0) +++ SwiftApps/modis/cf 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,9 @@ +wrapperlog.always.transfer=true +sitedir.keep=true +execution.retries=0 +lazy.errors=false +status.mode=provider +use.provider.staging=false +provider.staging.pin.swiftfiles=false +#throttle.transfers=16 +#throttle.file.operations=16 Added: SwiftApps/modis/coast1.xml =================================================================== --- SwiftApps/modis/coast1.xml (rev 0) +++ SwiftApps/modis/coast1.xml 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,191 @@ + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/stomp + + + + + + + + Added: SwiftApps/modis/coasters.xml =================================================================== --- SwiftApps/modis/coasters.xml (rev 0) +++ SwiftApps/modis/coasters.xml 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,189 @@ + + + + + + 8 + 3500 + 1 + 1 + 1 + + + .07 + 10000 + /home/wilde/swiftwork/crush + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/thwomp + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/stomp + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/crush + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/crank + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/steamroller + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/grind + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/churn + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/trounce + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/thrash + + + + + 8 + 3500 + 1 + 1 + 1 + + .31 + 10000 + /home/wilde/swiftwork/vanquish + + + + + Added: SwiftApps/modis/data/modis/2002/h00v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h00v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h00v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h00v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h00v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h00v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h01v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h01v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h01v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h01v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h01v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h01v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h01v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h01v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h01v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h01v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h02v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h02v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h02v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h02v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h02v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h02v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h02v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h02v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h02v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h02v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h03v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h03v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h03v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h03v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h03v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h03v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h03v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h03v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h03v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h03v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h04v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h04v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h04v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h04v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h04v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h04v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h05v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h05v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h05v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h05v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h05v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h05v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h06v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h06v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h06v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h06v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h07v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h07v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h07v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h07v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h07v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h07v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h07v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h07v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h08v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h08v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h09v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h09v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h10v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h10v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h11v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h11v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h12v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h12v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h13v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h13v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h14v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h14v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h15v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h15v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v00.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v00.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h16v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h16v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v00.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v00.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h17v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h17v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v00.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v00.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h18v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h18v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v00.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v00.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h19v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h19v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h20v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h20v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h21v17.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h21v17.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h22v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h22v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v01.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v01.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h23v16.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h23v16.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h24v15.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h24v15.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h25v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h25v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v02.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v02.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h26v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h26v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h27v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h27v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v04.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v04.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h28v14.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h28v14.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v03.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v03.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h29v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h29v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v05.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v05.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h30v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h30v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v06.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v06.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h31v13.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h31v13.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h32v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h32v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h32v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h32v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h32v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h32v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h32v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h32v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h32v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h32v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h32v12.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h32v12.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h33v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h33v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h33v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h33v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h33v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h33v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h33v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h33v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h33v11.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h33v11.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h34v07.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h34v07.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h34v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h34v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h34v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h34v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h34v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h34v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h35v08.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h35v08.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h35v09.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h35v09.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/data/modis/2002/h35v10.tif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/data/modis/2002/h35v10.tif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/demo3 =================================================================== --- SwiftApps/modis/demo3 (rev 0) +++ SwiftApps/modis/demo3 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,7 @@ +swift -tc.file tc.local \ + -sites.file sites.xml \ + modis3.swift -landtype=$1 -nfiles=$2 -nselect=$3 + +exit + +swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Property changes on: SwiftApps/modis/demo3 ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/demo4 =================================================================== --- SwiftApps/modis/demo4 (rev 0) +++ SwiftApps/modis/demo4 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,18 @@ +# demo4 forest 50 5 pbs + +landtype=${1:-urban} +nfiles=${2:-50} +nselect=${3:-10} +site=${4:-local} + +runid=modis-$(date +%Y.%m%d.%H%M)-$landtype-$nfiles-$nselect + +echo runid=$runid + +swift -tc.file tc.$site \ + -sites.file sites.xml \ + modis4.swift -landtype=$landtype -nfiles=$nfiles -nselect=$nselect -runid=$runid \ + -MODISdir=/home/wilde/bigdata/data/modis/2002 -webdir=/home/wilde/public_html/geo +exit + +swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Property changes on: SwiftApps/modis/demo4 ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/demo5 =================================================================== --- SwiftApps/modis/demo5 (rev 0) +++ SwiftApps/modis/demo5 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,18 @@ +# demo4 forest 50 5 pbs + +landtype=${1:-urban} +nfiles=${2:-50} +nselect=${3:-10} +site=${4:-local} + +runid=modis-$(date +%Y.%m%d.%H%M)-$landtype-$nfiles-$nselect + +echo runid=$runid + +swift -tc.file tc.$site \ + -sites.file sites.xml \ + modis5.swift -landtype=$landtype -nfiles=$nfiles -nselect=$nselect -runid=$runid \ + -MODISdir=/home/wilde/bigdata/data/modis/2002 -webdir=/home/wilde/public_html/geo +exit + +swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Property changes on: SwiftApps/modis/demo5 ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/demo5.local =================================================================== --- SwiftApps/modis/demo5.local (rev 0) +++ SwiftApps/modis/demo5.local 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,20 @@ +# demo4 forest 50 5 pbs + +landtype=${1:-urban} +nfiles=${2:-50} +nselect=${3:-10} +site=${4:-local} + +nfiles=30 + +runid=modis-$(date +%Y.%m%d.%H%M)-$landtype-$nfiles-$nselect + +echo runid=$runid + +swift -tc.file tc.$site \ + -sites.file sites.xml \ + modis5.swift -landtype=$landtype -nfiles=$nfiles -nselect=$nselect -runid=$runid \ + -modisdir=/scratch/local/wilde/swift/demo/modis/data/modis/2002 -webdir=/home/wilde/public_html/geo +exit + +swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Property changes on: SwiftApps/modis/demo5.local ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/demo5.local.out =================================================================== --- SwiftApps/modis/demo5.local.out (rev 0) +++ SwiftApps/modis/demo5.local.out 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,86 @@ +runid=modis-2011.1201.1026-urban-50-10 +Warning: Function toint is deprecated, at line 37 +Warning: Function toint is deprecated, at line 38 +Swift trunk swift-r5317 cog-r3329 + +RunID: 20111201-1026-yu50voje + (input): found 0 files +Progress: time: Thu, 01 Dec 2011 10:26:08 -0600 +Progress: time: Thu, 01 Dec 2011 10:26:09 -0600 Selecting site:94 Submitting:1 Active:5 +Progress: time: Thu, 01 Dec 2011 10:26:11 -0600 Selecting site:89 Stage in:5 Active:1 Finished successfully:5 +Progress: time: Thu, 01 Dec 2011 10:26:12 -0600 Selecting site:89 Active:5 Checking status:1 Finished successfully:5 +Progress: time: Thu, 01 Dec 2011 10:26:14 -0600 Selecting site:86 Stage in:2 Submitting:1 Active:3 Finished successfully:8 +Progress: time: Thu, 01 Dec 2011 10:26:17 -0600 Selecting site:86 Active:5 Checking status:1 Finished successfully:8 +Progress: time: Thu, 01 Dec 2011 10:26:18 -0600 Selecting site:86 Active:4 Stage out:1 Finished successfully:9 +Progress: time: Thu, 01 Dec 2011 10:26:19 -0600 Selecting site:84 Stage in:1 Submitting:1 Active:4 Finished successfully:10 +Progress: time: Thu, 01 Dec 2011 10:26:20 -0600 Selecting site:84 Active:5 Checking status:1 Finished successfully:10 +Progress: time: Thu, 01 Dec 2011 10:26:22 -0600 Selecting site:83 Stage in:1 Active:4 Finished successfully:12 +Progress: time: Thu, 01 Dec 2011 10:26:25 -0600 Selecting site:81 Active:5 Checking status:1 Finished successfully:13 +Progress: time: Thu, 01 Dec 2011 10:26:28 -0600 Selecting site:80 Submitting:1 Active:5 Finished successfully:14 +Progress: time: Thu, 01 Dec 2011 10:26:30 -0600 Selecting site:80 Active:5 Checking status:1 Finished successfully:14 +Progress: time: Thu, 01 Dec 2011 10:26:31 -0600 Selecting site:78 Stage in:2 Active:2 Stage out:2 Finished successfully:16 +Progress: time: Thu, 01 Dec 2011 10:26:32 -0600 Selecting site:76 Stage in:4 Active:1 Checking status:1 Finished successfully:18 +Progress: time: Thu, 01 Dec 2011 10:26:33 -0600 Selecting site:75 Stage in:2 Submitting:1 Active:3 Finished successfully:19 +Progress: time: Thu, 01 Dec 2011 10:26:38 -0600 Selecting site:74 Active:5 Checking status:1 Finished successfully:20 +Progress: time: Thu, 01 Dec 2011 10:26:39 -0600 Selecting site:72 Stage in:1 Submitting:1 Active:4 Finished successfully:22 +Progress: time: Thu, 01 Dec 2011 10:26:41 -0600 Selecting site:72 Active:5 Checking status:1 Finished successfully:22 +Progress: time: Thu, 01 Dec 2011 10:26:42 -0600 Selecting site:69 Stage in:2 Active:4 Finished successfully:25 +Progress: time: Thu, 01 Dec 2011 10:26:44 -0600 Selecting site:69 Stage in:2 Active:3 Checking status:1 Finished successfully:25 +Progress: time: Thu, 01 Dec 2011 10:26:45 -0600 Selecting site:67 Stage in:1 Active:5 Finished successfully:27 +Progress: time: Thu, 01 Dec 2011 10:26:46 -0600 Selecting site:67 Submitting:1 Active:5 Finished successfully:27 +Progress: time: Thu, 01 Dec 2011 10:26:48 -0600 Selecting site:67 Active:5 Checking status:1 Finished successfully:27 +Progress: time: Thu, 01 Dec 2011 10:26:49 -0600 Selecting site:65 Stage in:2 Active:4 Finished successfully:29 +Progress: time: Thu, 01 Dec 2011 10:26:51 -0600 Selecting site:65 Active:5 Checking status:1 Finished successfully:29 +Progress: time: Thu, 01 Dec 2011 10:26:52 -0600 Selecting site:62 Stage in:2 Active:2 Checking status:1 Stage out:1 Finished successfully:32 +Progress: time: Thu, 01 Dec 2011 10:26:53 -0600 Selecting site:60 Stage in:2 Submitting:1 Active:3 Finished successfully:34 +Progress: time: Thu, 01 Dec 2011 10:26:55 -0600 Selecting site:60 Active:5 Checking status:1 Finished successfully:34 +Progress: time: Thu, 01 Dec 2011 10:27:00 -0600 Selecting site:59 Active:5 Checking status:1 Finished successfully:35 +Progress: time: Thu, 01 Dec 2011 10:27:01 -0600 Selecting site:57 Active:5 Checking status:1 Finished successfully:37 +Progress: time: Thu, 01 Dec 2011 10:27:02 -0600 Selecting site:55 Stage in:1 Active:4 Checking status:1 Finished successfully:39 +Progress: time: Thu, 01 Dec 2011 10:27:03 -0600 Selecting site:54 Stage in:1 Active:4 Checking status:1 Finished successfully:40 +Progress: time: Thu, 01 Dec 2011 10:27:05 -0600 Selecting site:52 Stage in:2 Active:4 Finished successfully:42 +Progress: time: Thu, 01 Dec 2011 10:27:06 -0600 Selecting site:51 Stage in:2 Active:4 Finished successfully:43 +Progress: time: Thu, 01 Dec 2011 10:27:07 -0600 Selecting site:50 Submitting:1 Active:5 Finished successfully:44 +Progress: time: Thu, 01 Dec 2011 10:27:09 -0600 Selecting site:49 Stage in:1 Active:5 Finished successfully:45 +Progress: time: Thu, 01 Dec 2011 10:27:10 -0600 Selecting site:49 Submitting:1 Active:5 Finished successfully:45 +Progress: time: Thu, 01 Dec 2011 10:27:12 -0600 Selecting site:48 Active:5 Checking status:1 Finished successfully:46 +Progress: time: Thu, 01 Dec 2011 10:27:13 -0600 Selecting site:47 Stage in:1 Active:5 Finished successfully:47 +Progress: time: Thu, 01 Dec 2011 10:27:14 -0600 Selecting site:47 Stage in:1 Active:4 Checking status:1 Finished successfully:47 +Progress: time: Thu, 01 Dec 2011 10:27:16 -0600 Selecting site:46 Stage in:1 Submitting:1 Active:4 Finished successfully:48 +Progress: time: Thu, 01 Dec 2011 10:27:17 -0600 Selecting site:46 Active:5 Checking status:1 Finished successfully:48 +Progress: time: Thu, 01 Dec 2011 10:27:18 -0600 Selecting site:45 Active:4 Checking status:1 Stage out:1 Finished successfully:49 +Progress: time: Thu, 01 Dec 2011 10:27:20 -0600 Selecting site:42 Stage in:2 Active:4 Finished successfully:52 +Progress: time: Thu, 01 Dec 2011 10:27:23 -0600 Selecting site:42 Submitting:1 Active:5 Finished successfully:52 +Progress: time: Thu, 01 Dec 2011 10:27:24 -0600 Selecting site:41 Stage in:1 Active:5 Finished successfully:53 +Progress: time: Thu, 01 Dec 2011 10:27:27 -0600 Selecting site:41 Active:5 Checking status:1 Finished successfully:53 +Progress: time: Thu, 01 Dec 2011 10:27:29 -0600 Selecting site:39 Stage in:1 Active:4 Finished successfully:56 +Progress: time: Thu, 01 Dec 2011 10:27:31 -0600 Selecting site:38 Stage in:1 Submitting:1 Active:4 Finished successfully:56 +Progress: time: Thu, 01 Dec 2011 10:27:32 -0600 Selecting site:36 Stage in:2 Active:4 Finished successfully:58 +Progress: time: Thu, 01 Dec 2011 10:27:33 -0600 Selecting site:34 Stage in:4 Active:2 Finished successfully:60 +Progress: time: Thu, 01 Dec 2011 10:27:35 -0600 Selecting site:34 Stage in:1 Active:4 Checking status:1 Finished successfully:60 +Progress: time: Thu, 01 Dec 2011 10:27:36 -0600 Selecting site:30 Stage in:1 Active:5 Finished successfully:64 +Progress: time: Thu, 01 Dec 2011 10:27:37 -0600 Selecting site:29 Active:5 Checking status:1 Finished successfully:65 +Progress: time: Thu, 01 Dec 2011 10:27:38 -0600 Selecting site:24 Submitting:1 Active:4 Finished successfully:71 +Progress: time: Thu, 01 Dec 2011 10:27:40 -0600 Selecting site:22 Active:4 Checking status:1 Stage out:1 Finished successfully:72 +Progress: time: Thu, 01 Dec 2011 10:27:43 -0600 Selecting site:20 Active:5 Checking status:1 Finished successfully:74 +Progress: time: Thu, 01 Dec 2011 10:27:46 -0600 Selecting site:19 Active:5 Checking status:1 Finished successfully:75 +Progress: time: Thu, 01 Dec 2011 10:27:48 -0600 Selecting site:17 Stage in:1 Active:4 Checking status:1 Finished successfully:77 +Progress: time: Thu, 01 Dec 2011 10:27:49 -0600 Selecting site:16 Stage in:1 Active:4 Checking status:1 Finished successfully:78 +Progress: time: Thu, 01 Dec 2011 10:27:50 -0600 Selecting site:15 Active:5 Checking status:1 Finished successfully:79 +Progress: time: Thu, 01 Dec 2011 10:27:52 -0600 Selecting site:14 Active:5 Checking status:1 Finished successfully:80 +Progress: time: Thu, 01 Dec 2011 10:27:54 -0600 Selecting site:12 Stage in:1 Submitting:1 Active:4 Finished successfully:82 +Progress: time: Thu, 01 Dec 2011 10:27:56 -0600 Selecting site:12 Active:5 Checking status:1 Finished successfully:82 +Progress: time: Thu, 01 Dec 2011 10:27:58 -0600 Selecting site:11 Active:5 Checking status:1 Finished successfully:83 +Progress: time: Thu, 01 Dec 2011 10:28:00 -0600 Selecting site:10 Active:5 Checking status:1 Finished successfully:84 +Progress: time: Thu, 01 Dec 2011 10:28:02 -0600 Selecting site:8 Stage in:1 Active:5 Finished successfully:86 +Progress: time: Thu, 01 Dec 2011 10:28:03 -0600 Selecting site:8 Active:5 Checking status:1 Finished successfully:86 +Progress: time: Thu, 01 Dec 2011 10:28:04 -0600 Selecting site:6 Active:5 Checking status:1 Finished successfully:88 +Progress: time: Thu, 01 Dec 2011 10:28:05 -0600 Selecting site:3 Active:5 Finished successfully:92 +Progress: time: Thu, 01 Dec 2011 10:28:06 -0600 Stage in:2 Active:3 Finished successfully:95 +Progress: time: Thu, 01 Dec 2011 10:28:08 -0600 Active:5 Finished successfully:95 +Progress: time: Thu, 01 Dec 2011 10:28:09 -0600 Active:4 Checking status:1 Finished successfully:96 +Progress: time: Thu, 01 Dec 2011 10:28:12 -0600 Active:4 Checking status:1 Finished successfully:97 +Progress: time: Thu, 01 Dec 2011 10:28:15 -0600 Active:1 Checking status:1 Finished successfully:100 +Progress: time: Thu, 01 Dec 2011 10:28:38 -0600 Active:1 Finished successfully:102 +Progress: time: Thu, 01 Dec 2011 10:28:50 -0600 Checking status:1 Finished successfully:102 +Final status: Thu, 01 Dec 2011 10:28:50 -0600 Finished successfully:103 Added: SwiftApps/modis/demo5.local.out2 =================================================================== --- SwiftApps/modis/demo5.local.out2 (rev 0) +++ SwiftApps/modis/demo5.local.out2 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,59 @@ +runid=modis-2011.1201.1036-urban-50-10 +Swift trunk swift-r5317 cog-r3329 + +RunID: 20111201-1036-1kclii0a + (input): found 0 files +Progress: time: Thu, 01 Dec 2011 10:36:20 -0600 +Progress: time: Thu, 01 Dec 2011 10:36:22 -0600 Selecting site:89 Active:10 Checking status:1 +Progress: time: Thu, 01 Dec 2011 10:36:23 -0600 Selecting site:88 Submitting:1 Active:10 Finished successfully:1 +Progress: time: Thu, 01 Dec 2011 10:36:28 -0600 Selecting site:86 Active:10 Checking status:1 Finished successfully:3 +Progress: time: Thu, 01 Dec 2011 10:36:30 -0600 Selecting site:85 Active:10 Checking status:1 Finished successfully:4 +Progress: time: Thu, 01 Dec 2011 10:36:36 -0600 Selecting site:84 Active:10 Checking status:1 Finished successfully:5 +Progress: time: Thu, 01 Dec 2011 10:36:37 -0600 Selecting site:83 Stage in:1 Active:10 Finished successfully:6 +Progress: time: Thu, 01 Dec 2011 10:36:38 -0600 Selecting site:81 Stage in:1 Active:10 Finished successfully:8 +Progress: time: Thu, 01 Dec 2011 10:36:39 -0600 Selecting site:81 Submitted:1 Active:9 Finished successfully:9 +Progress: time: Thu, 01 Dec 2011 10:36:41 -0600 Selecting site:79 Stage in:1 Active:10 Finished successfully:10 +Progress: time: Thu, 01 Dec 2011 10:36:42 -0600 Selecting site:79 Active:10 Finished successfully:11 +Progress: time: Thu, 01 Dec 2011 10:36:43 -0600 Selecting site:78 Active:10 Checking status:1 Finished successfully:11 +Progress: time: Thu, 01 Dec 2011 10:36:44 -0600 Selecting site:74 Submitted:2 Active:7 Stage out:2 Finished successfully:15 +Progress: time: Thu, 01 Dec 2011 10:36:47 -0600 Selecting site:72 Active:10 Checking status:1 Finished successfully:17 +Progress: time: Thu, 01 Dec 2011 10:36:48 -0600 Selecting site:69 Submitted:1 Active:10 Finished successfully:20 +Progress: time: Thu, 01 Dec 2011 10:36:49 -0600 Selecting site:65 Active:10 Checking status:1 Finished successfully:24 +Progress: time: Thu, 01 Dec 2011 10:36:51 -0600 Selecting site:64 Active:9 Stage out:1 Finished successfully:26 +Progress: time: Thu, 01 Dec 2011 10:36:55 -0600 Selecting site:61 Stage in:2 Active:7 Stage out:1 Finished successfully:29 +Progress: time: Thu, 01 Dec 2011 10:36:56 -0600 Selecting site:57 Stage in:3 Active:7 Stage out:1 Finished successfully:32 +Progress: time: Thu, 01 Dec 2011 10:36:57 -0600 Selecting site:57 Stage in:3 Active:7 Finished successfully:33 +Progress: time: Thu, 01 Dec 2011 10:36:58 -0600 Selecting site:56 Active:11 Finished successfully:33 +Progress: time: Thu, 01 Dec 2011 10:36:59 -0600 Selecting site:55 Stage in:1 Active:10 Finished successfully:34 +Progress: time: Thu, 01 Dec 2011 10:37:04 -0600 Selecting site:55 Active:10 Checking status:1 Finished successfully:34 +Progress: time: Thu, 01 Dec 2011 10:37:06 -0600 Selecting site:55 Active:10 Finished successfully:35 +Progress: time: Thu, 01 Dec 2011 10:37:08 -0600 Selecting site:51 Active:10 Checking status:1 Finished successfully:38 +Progress: time: Thu, 01 Dec 2011 10:37:12 -0600 Selecting site:50 Active:10 Checking status:1 Finished successfully:39 +Progress: time: Thu, 01 Dec 2011 10:37:14 -0600 Selecting site:49 Active:7 Checking status:1 Stage out:3 Finished successfully:40 +Progress: time: Thu, 01 Dec 2011 10:37:16 -0600 Selecting site:45 Active:10 Checking status:1 Finished successfully:44 +Progress: time: Thu, 01 Dec 2011 10:37:17 -0600 Selecting site:43 Active:10 Checking status:1 Finished successfully:46 +Progress: time: Thu, 01 Dec 2011 10:37:18 -0600 Selecting site:41 Active:11 Finished successfully:48 +Progress: time: Thu, 01 Dec 2011 10:37:21 -0600 Selecting site:41 Active:11 Finished successfully:48 +Progress: time: Thu, 01 Dec 2011 10:37:23 -0600 Selecting site:37 Active:10 Checking status:1 Finished successfully:52 +Progress: time: Thu, 01 Dec 2011 10:37:24 -0600 Selecting site:32 Active:10 Checking status:1 Finished successfully:57 +Progress: time: Thu, 01 Dec 2011 10:37:30 -0600 Selecting site:30 Active:10 Checking status:1 Finished successfully:59 +Progress: time: Thu, 01 Dec 2011 10:37:31 -0600 Selecting site:29 Active:10 Checking status:1 Finished successfully:60 +Progress: time: Thu, 01 Dec 2011 10:37:33 -0600 Selecting site:26 Active:10 Checking status:1 Finished successfully:63 +Progress: time: Thu, 01 Dec 2011 10:37:34 -0600 Selecting site:23 Active:10 Checking status:1 Finished successfully:66 +Progress: time: Thu, 01 Dec 2011 10:37:36 -0600 Selecting site:19 Active:11 Finished successfully:70 +Progress: time: Thu, 01 Dec 2011 10:37:39 -0600 Selecting site:17 Active:10 Checking status:1 Finished successfully:72 +Progress: time: Thu, 01 Dec 2011 10:37:40 -0600 Selecting site:11 Stage in:1 Active:10 Finished successfully:78 +Progress: time: Thu, 01 Dec 2011 10:37:42 -0600 Selecting site:8 Active:10 Checking status:1 Finished successfully:81 +Progress: time: Thu, 01 Dec 2011 10:37:43 -0600 Selecting site:6 Stage in:1 Active:10 Finished successfully:83 +Progress: time: Thu, 01 Dec 2011 10:37:45 -0600 Selecting site:5 Stage in:1 Active:10 Finished successfully:84 +Progress: time: Thu, 01 Dec 2011 10:37:51 -0600 Selecting site:5 Active:11 Finished successfully:84 +Progress: time: Thu, 01 Dec 2011 10:37:52 -0600 Stage in:1 Active:10 Finished successfully:89 +Progress: time: Thu, 01 Dec 2011 10:37:55 -0600 Active:9 Checking status:1 Finished successfully:90 +Progress: time: Thu, 01 Dec 2011 10:37:57 -0600 Active:8 Checking status:1 Finished successfully:93 +Progress: time: Thu, 01 Dec 2011 10:38:01 -0600 Active:7 Checking status:1 Finished successfully:94 +Progress: time: Thu, 01 Dec 2011 10:38:05 -0600 Active:5 Checking status:1 Finished successfully:96 +Progress: time: Thu, 01 Dec 2011 10:38:07 -0600 Active:2 Checking status:1 Finished successfully:99 +Progress: time: Thu, 01 Dec 2011 10:38:09 -0600 Checking status:1 Finished successfully:101 +Progress: time: Thu, 01 Dec 2011 10:38:21 -0600 Active:1 Finished successfully:102 +Progress: time: Thu, 01 Dec 2011 10:38:45 -0600 Checking status:1 Finished successfully:102 +Final status: Thu, 01 Dec 2011 10:38:45 -0600 Finished successfully:103 Added: SwiftApps/modis/demo5.local.out3 =================================================================== --- SwiftApps/modis/demo5.local.out3 (rev 0) +++ SwiftApps/modis/demo5.local.out3 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,371 @@ +runid=modis-2011.1201.1149-urban-1000-10 +Swift trunk swift-r5317 cog-r3329 + +RunID: 20111201-1149-v54q9n2a + (input): found 0 files +Progress: time: Thu, 01 Dec 2011 11:49:56 -0600 +Progress: time: Thu, 01 Dec 2011 11:49:57 -0600 Selecting site:623 Stage in:10 Submitting:1 +Progress: time: Thu, 01 Dec 2011 11:49:58 -0600 Selecting site:622 Stage in:1 Active:10 Finished successfully:1 +Progress: time: Thu, 01 Dec 2011 11:50:00 -0600 Selecting site:619 Stage in:1 Submitting:1 Active:8 Stage out:1 Finished successfully:4 +Progress: time: Thu, 01 Dec 2011 11:50:01 -0600 Selecting site:617 Stage in:1 Active:10 Finished successfully:6 +Progress: time: Thu, 01 Dec 2011 11:50:02 -0600 Selecting site:616 Active:10 Checking status:1 Finished successfully:7 +Progress: time: Thu, 01 Dec 2011 11:50:03 -0600 Selecting site:616 Active:10 Finished successfully:8 +Progress: time: Thu, 01 Dec 2011 11:50:06 -0600 Selecting site:614 Stage in:1 Submitting:1 Active:9 Finished successfully:9 +Progress: time: Thu, 01 Dec 2011 11:50:10 -0600 Selecting site:614 Active:10 Checking status:1 Finished successfully:9 +Progress: time: Thu, 01 Dec 2011 11:50:11 -0600 Selecting site:612 Submitting:1 Active:10 Finished successfully:11 +Progress: time: Thu, 01 Dec 2011 11:50:12 -0600 Selecting site:611 Active:10 Stage out:1 Finished successfully:12 +Progress: time: Thu, 01 Dec 2011 11:50:14 -0600 Selecting site:610 Active:10 Checking status:1 Finished successfully:13 +Progress: time: Thu, 01 Dec 2011 11:50:15 -0600 Selecting site:608 Active:10 Checking status:1 Finished successfully:15 +Progress: time: Thu, 01 Dec 2011 11:50:16 -0600 Selecting site:605 Stage in:1 Active:10 Finished successfully:18 +Progress: time: Thu, 01 Dec 2011 11:50:21 -0600 Selecting site:605 Active:10 Checking status:1 Finished successfully:18 +Progress: time: Thu, 01 Dec 2011 11:50:22 -0600 Selecting site:601 Stage in:1 Active:10 Finished successfully:22 +Progress: time: Thu, 01 Dec 2011 11:50:26 -0600 Selecting site:601 Active:11 Finished successfully:22 +Progress: time: Thu, 01 Dec 2011 11:50:27 -0600 Selecting site:598 Stage in:2 Active:9 Finished successfully:25 +Progress: time: Thu, 01 Dec 2011 11:50:29 -0600 Selecting site:598 Submitting:1 Active:10 Finished successfully:25 +Progress: time: Thu, 01 Dec 2011 11:50:31 -0600 Selecting site:597 Active:11 Finished successfully:26 +Progress: time: Thu, 01 Dec 2011 11:50:32 -0600 Selecting site:594 Submitting:1 Active:10 Finished successfully:29 +Progress: time: Thu, 01 Dec 2011 11:50:35 -0600 Selecting site:594 Active:10 Checking status:1 Finished successfully:29 +Progress: time: Thu, 01 Dec 2011 11:50:36 -0600 Selecting site:590 Stage in:1 Active:10 Finished successfully:33 +Progress: time: Thu, 01 Dec 2011 11:50:37 -0600 Selecting site:589 Active:10 Checking status:1 Finished successfully:34 +Progress: time: Thu, 01 Dec 2011 11:50:38 -0600 Selecting site:586 Stage in:1 Active:10 Finished successfully:37 +Progress: time: Thu, 01 Dec 2011 11:50:40 -0600 Selecting site:586 Active:10 Checking status:1 Finished successfully:37 +Progress: time: Thu, 01 Dec 2011 11:50:43 -0600 Selecting site:586 Active:9 Stage out:1 Finished successfully:38 +Progress: time: Thu, 01 Dec 2011 11:50:44 -0600 Selecting site:584 Active:10 Checking status:1 Finished successfully:39 +Progress: time: Thu, 01 Dec 2011 11:50:45 -0600 Selecting site:581 Active:10 Finished successfully:43 +Progress: time: Thu, 01 Dec 2011 11:50:47 -0600 Selecting site:579 Stage in:1 Submitting:1 Active:9 Finished successfully:44 +Progress: time: Thu, 01 Dec 2011 11:50:50 -0600 Selecting site:578 Active:10 Checking status:1 Finished successfully:45 +Progress: time: Thu, 01 Dec 2011 11:50:52 -0600 Selecting site:577 Active:10 Checking status:1 Finished successfully:46 +Progress: time: Thu, 01 Dec 2011 11:50:53 -0600 Selecting site:575 Stage in:1 Active:10 Finished successfully:48 +Progress: time: Thu, 01 Dec 2011 11:50:54 -0600 Selecting site:574 Stage in:1 Active:10 Finished successfully:49 +Progress: time: Thu, 01 Dec 2011 11:50:55 -0600 Selecting site:573 Active:10 Finished successfully:51 +Progress: time: Thu, 01 Dec 2011 11:51:06 -0600 Selecting site:572 Active:10 Checking status:1 Finished successfully:51 +Progress: time: Thu, 01 Dec 2011 11:51:09 -0600 Selecting site:568 Submitting:1 Active:10 Finished successfully:55 +Progress: time: Thu, 01 Dec 2011 11:51:14 -0600 Selecting site:568 Active:10 Checking status:1 Finished successfully:55 +Progress: time: Thu, 01 Dec 2011 11:51:16 -0600 Selecting site:567 Active:10 Checking status:1 Finished successfully:56 +Progress: time: Thu, 01 Dec 2011 11:51:19 -0600 Selecting site:566 Active:10 Checking status:1 Finished successfully:57 +Progress: time: Thu, 01 Dec 2011 11:51:20 -0600 Selecting site:563 Stage in:1 Active:10 Finished successfully:60 +Progress: time: Thu, 01 Dec 2011 11:51:21 -0600 Selecting site:563 Active:10 Checking status:1 Finished successfully:60 +Progress: time: Thu, 01 Dec 2011 11:51:23 -0600 Selecting site:560 Submitted:2 Active:8 Checking status:1 Finished successfully:63 +Progress: time: Thu, 01 Dec 2011 11:51:26 -0600 Selecting site:558 Active:11 Finished successfully:65 +Progress: time: Thu, 01 Dec 2011 11:51:27 -0600 Selecting site:558 Active:10 Checking status:1 Finished successfully:65 +Progress: time: Thu, 01 Dec 2011 11:51:30 -0600 Selecting site:556 Active:10 Checking status:1 Finished successfully:67 +Progress: time: Thu, 01 Dec 2011 11:51:32 -0600 Selecting site:555 Active:10 Checking status:1 Finished successfully:68 +Progress: time: Thu, 01 Dec 2011 11:51:33 -0600 Selecting site:553 Active:10 Finished successfully:71 +Progress: time: Thu, 01 Dec 2011 11:51:34 -0600 Selecting site:550 Active:10 Checking status:1 Finished successfully:73 +Progress: time: Thu, 01 Dec 2011 11:51:35 -0600 Selecting site:546 Stage in:3 Submitted:1 Active:7 Finished successfully:77 +Progress: time: Thu, 01 Dec 2011 11:51:37 -0600 Selecting site:544 Stage in:5 Active:6 Finished successfully:79 +Progress: time: Thu, 01 Dec 2011 11:51:38 -0600 Selecting site:542 Active:10 Checking status:1 Finished successfully:81 +Progress: time: Thu, 01 Dec 2011 11:51:40 -0600 Selecting site:539 Stage in:1 Active:10 Finished successfully:84 +Progress: time: Thu, 01 Dec 2011 11:51:48 -0600 Selecting site:536 Active:10 Checking status:1 Finished successfully:87 +Progress: time: Thu, 01 Dec 2011 11:51:49 -0600 Selecting site:532 Stage in:1 Active:9 Checking status:1 Finished successfully:91 +Progress: time: Thu, 01 Dec 2011 11:51:51 -0600 Selecting site:531 Stage in:1 Submitting:1 Active:9 Finished successfully:92 +Progress: time: Thu, 01 Dec 2011 11:51:52 -0600 Selecting site:531 Active:10 Checking status:1 Finished successfully:92 +Progress: time: Thu, 01 Dec 2011 11:51:53 -0600 Selecting site:530 Active:10 Checking status:1 Finished successfully:93 +Progress: time: Thu, 01 Dec 2011 11:51:54 -0600 Selecting site:529 Active:10 Checking status:1 Finished successfully:94 +Progress: time: Thu, 01 Dec 2011 11:51:56 -0600 Selecting site:528 Active:11 Finished successfully:95 +Progress: time: Thu, 01 Dec 2011 11:51:58 -0600 Selecting site:528 Active:10 Checking status:1 Finished successfully:95 +Progress: time: Thu, 01 Dec 2011 11:51:59 -0600 Selecting site:526 Active:10 Checking status:1 Finished successfully:97 +Progress: time: Thu, 01 Dec 2011 11:52:00 -0600 Selecting site:525 Active:10 Finished successfully:99 +Progress: time: Thu, 01 Dec 2011 11:52:02 -0600 Selecting site:523 Submitting:1 Active:10 Finished successfully:100 +Progress: time: Thu, 01 Dec 2011 11:52:04 -0600 Selecting site:523 Active:10 Checking status:1 Finished successfully:100 +Progress: time: Thu, 01 Dec 2011 11:52:06 -0600 Selecting site:520 Stage in:1 Active:10 Finished successfully:103 +Progress: time: Thu, 01 Dec 2011 11:52:08 -0600 Selecting site:520 Active:10 Checking status:1 Finished successfully:103 +Progress: time: Thu, 01 Dec 2011 11:52:10 -0600 Selecting site:517 Active:10 Checking status:1 Finished successfully:106 +Progress: time: Thu, 01 Dec 2011 11:52:11 -0600 Selecting site:516 Active:11 Finished successfully:107 +Progress: time: Thu, 01 Dec 2011 11:52:14 -0600 Selecting site:516 Active:10 Checking status:1 Finished successfully:107 +Progress: time: Thu, 01 Dec 2011 11:52:16 -0600 Selecting site:514 Stage in:1 Active:10 Finished successfully:109 +Progress: time: Thu, 01 Dec 2011 11:52:17 -0600 Selecting site:514 Active:9 Checking status:1 Finished successfully:110 +Progress: time: Thu, 01 Dec 2011 11:52:19 -0600 Selecting site:512 Active:10 Checking status:1 Finished successfully:111 +Progress: time: Thu, 01 Dec 2011 11:52:21 -0600 Selecting site:510 Stage in:1 Active:10 Finished successfully:113 +Progress: time: Thu, 01 Dec 2011 11:52:23 -0600 Selecting site:510 Active:10 Checking status:1 Finished successfully:113 +Progress: time: Thu, 01 Dec 2011 11:52:25 -0600 Selecting site:507 Active:10 Checking status:1 Finished successfully:116 +Progress: time: Thu, 01 Dec 2011 11:52:26 -0600 Selecting site:506 Active:11 Finished successfully:117 +Progress: time: Thu, 01 Dec 2011 11:52:37 -0600 Selecting site:506 Active:10 Checking status:1 Finished successfully:117 +Progress: time: Thu, 01 Dec 2011 11:52:38 -0600 Selecting site:503 Stage in:1 Active:9 Checking status:1 Finished successfully:120 +Progress: time: Thu, 01 Dec 2011 11:52:40 -0600 Selecting site:500 Stage in:4 Active:7 Finished successfully:123 +Progress: time: Thu, 01 Dec 2011 11:52:42 -0600 Selecting site:499 Active:10 Checking status:1 Finished successfully:124 +Progress: time: Thu, 01 Dec 2011 11:52:43 -0600 Selecting site:496 Active:10 Checking status:1 Finished successfully:127 +Progress: time: Thu, 01 Dec 2011 11:52:45 -0600 Selecting site:494 Stage in:2 Active:9 Finished successfully:129 +Progress: time: Thu, 01 Dec 2011 11:52:47 -0600 Selecting site:493 Submitting:1 Active:10 Finished successfully:130 +Progress: time: Thu, 01 Dec 2011 11:52:49 -0600 Selecting site:493 Active:10 Checking status:1 Finished successfully:130 +Progress: time: Thu, 01 Dec 2011 11:52:51 -0600 Selecting site:492 Active:10 Checking status:1 Finished successfully:131 +Progress: time: Thu, 01 Dec 2011 11:52:56 -0600 Selecting site:490 Active:11 Finished successfully:133 +Progress: time: Thu, 01 Dec 2011 11:52:59 -0600 Selecting site:490 Active:10 Checking status:1 Finished successfully:133 +Progress: time: Thu, 01 Dec 2011 11:53:00 -0600 Selecting site:486 Submitted:1 Active:10 Finished successfully:137 +Progress: time: Thu, 01 Dec 2011 11:53:02 -0600 Selecting site:486 Active:10 Checking status:1 Finished successfully:137 +Progress: time: Thu, 01 Dec 2011 11:53:03 -0600 Selecting site:483 Active:10 Checking status:1 Finished successfully:140 +Progress: time: Thu, 01 Dec 2011 11:53:05 -0600 Selecting site:482 Active:10 Checking status:1 Finished successfully:141 +Progress: time: Thu, 01 Dec 2011 11:53:06 -0600 Selecting site:479 Stage in:1 Active:10 Finished successfully:144 +Progress: time: Thu, 01 Dec 2011 11:53:07 -0600 Selecting site:478 Active:10 Checking status:1 Finished successfully:145 +Progress: time: Thu, 01 Dec 2011 11:53:08 -0600 Selecting site:477 Active:10 Checking status:1 Finished successfully:146 +Progress: time: Thu, 01 Dec 2011 11:53:10 -0600 Selecting site:476 Active:10 Checking status:1 Finished successfully:147 +Progress: time: Thu, 01 Dec 2011 11:53:14 -0600 Selecting site:475 Active:10 Checking status:1 Finished successfully:148 +Progress: time: Thu, 01 Dec 2011 11:53:20 -0600 Selecting site:474 Active:10 Checking status:1 Finished successfully:149 +Progress: time: Thu, 01 Dec 2011 11:53:21 -0600 Selecting site:472 Active:10 Finished successfully:152 +Progress: time: Thu, 01 Dec 2011 11:53:24 -0600 Selecting site:468 Active:10 Checking status:1 Finished successfully:155 +Progress: time: Thu, 01 Dec 2011 11:53:26 -0600 Selecting site:465 Active:10 Checking status:1 Finished successfully:158 +Progress: time: Thu, 01 Dec 2011 11:53:29 -0600 Selecting site:464 Active:10 Checking status:1 Finished successfully:159 +Progress: time: Thu, 01 Dec 2011 11:53:30 -0600 Selecting site:460 Submitting:1 Submitted:1 Active:9 Finished successfully:163 +Progress: time: Thu, 01 Dec 2011 11:53:31 -0600 Selecting site:459 Active:9 Checking status:1 Finished successfully:165 +Progress: time: Thu, 01 Dec 2011 11:53:33 -0600 Selecting site:457 Active:10 Checking status:1 Finished successfully:166 +Progress: time: Thu, 01 Dec 2011 11:53:34 -0600 Selecting site:455 Stage in:1 Active:10 Finished successfully:168 +Progress: time: Thu, 01 Dec 2011 11:53:40 -0600 Selecting site:455 Active:10 Checking status:1 Finished successfully:168 +Progress: time: Thu, 01 Dec 2011 11:53:46 -0600 Selecting site:454 Active:10 Checking status:1 Finished successfully:169 +Progress: time: Thu, 01 Dec 2011 11:53:47 -0600 Selecting site:453 Active:9 Stage out:1 Finished successfully:171 +Progress: time: Thu, 01 Dec 2011 11:53:50 -0600 Selecting site:450 Active:10 Checking status:1 Finished successfully:173 +Progress: time: Thu, 01 Dec 2011 11:53:56 -0600 Selecting site:449 Active:11 Finished successfully:174 +Progress: time: Thu, 01 Dec 2011 11:53:57 -0600 Selecting site:448 Stage in:1 Active:10 Finished successfully:175 +Progress: time: Thu, 01 Dec 2011 11:54:02 -0600 Selecting site:448 Active:10 Checking status:1 Finished successfully:175 +Progress: time: Thu, 01 Dec 2011 11:54:03 -0600 Selecting site:446 Submitting:1 Active:9 Stage out:1 Finished successfully:177 +Progress: time: Thu, 01 Dec 2011 11:54:05 -0600 Selecting site:445 Active:10 Checking status:1 Finished successfully:178 +Progress: time: Thu, 01 Dec 2011 11:54:06 -0600 Selecting site:443 Stage in:1 Active:10 Finished successfully:180 +Progress: time: Thu, 01 Dec 2011 11:54:07 -0600 Selecting site:442 Stage in:2 Active:8 Checking status:1 Finished successfully:181 +Progress: time: Thu, 01 Dec 2011 11:54:08 -0600 Selecting site:441 Stage in:2 Submitting:1 Active:8 Finished successfully:182 +Progress: time: Thu, 01 Dec 2011 11:54:15 -0600 Selecting site:441 Active:10 Checking status:1 Finished successfully:182 +Progress: time: Thu, 01 Dec 2011 11:54:16 -0600 Selecting site:437 Submitted:1 Active:10 Finished successfully:186 +Progress: time: Thu, 01 Dec 2011 11:54:20 -0600 Selecting site:437 Active:10 Checking status:1 Finished successfully:186 +Progress: time: Thu, 01 Dec 2011 11:54:22 -0600 Selecting site:435 Stage in:1 Active:10 Finished successfully:188 +Progress: time: Thu, 01 Dec 2011 11:54:23 -0600 Selecting site:435 Active:11 Finished successfully:188 +Progress: time: Thu, 01 Dec 2011 11:54:26 -0600 Selecting site:434 Active:10 Checking status:1 Finished successfully:189 +Progress: time: Thu, 01 Dec 2011 11:54:36 -0600 Selecting site:433 Active:10 Checking status:1 Finished successfully:190 +Progress: time: Thu, 01 Dec 2011 11:54:43 -0600 Selecting site:429 Active:10 Checking status:1 Finished successfully:194 +Progress: time: Thu, 01 Dec 2011 11:54:44 -0600 Selecting site:428 Stage in:1 Active:10 Finished successfully:195 +Progress: time: Thu, 01 Dec 2011 11:54:46 -0600 Selecting site:427 Active:10 Checking status:1 Finished successfully:196 +Progress: time: Thu, 01 Dec 2011 11:54:52 -0600 Selecting site:426 Active:10 Checking status:1 Finished successfully:197 +Progress: time: Thu, 01 Dec 2011 11:54:55 -0600 Selecting site:424 Submitting:1 Active:10 Finished successfully:199 +Progress: time: Thu, 01 Dec 2011 11:54:56 -0600 Selecting site:421 Submitted:1 Active:10 Finished successfully:202 +Progress: time: Thu, 01 Dec 2011 11:54:59 -0600 Selecting site:421 Active:10 Checking status:1 Finished successfully:202 +Progress: time: Thu, 01 Dec 2011 11:55:01 -0600 Selecting site:421 Active:9 Checking status:1 Finished successfully:203 +Progress: time: Thu, 01 Dec 2011 11:55:03 -0600 Selecting site:417 Active:10 Checking status:1 Finished successfully:206 +Progress: time: Thu, 01 Dec 2011 11:55:10 -0600 Selecting site:416 Active:10 Checking status:1 Finished successfully:207 +Progress: time: Thu, 01 Dec 2011 11:55:12 -0600 Selecting site:415 Active:10 Checking status:1 Finished successfully:208 +Progress: time: Thu, 01 Dec 2011 11:55:15 -0600 Selecting site:414 Active:10 Checking status:1 Finished successfully:209 +Progress: time: Thu, 01 Dec 2011 11:55:16 -0600 Selecting site:412 Active:9 Checking status:1 Finished successfully:212 +Progress: time: Thu, 01 Dec 2011 11:55:17 -0600 Selecting site:409 Active:11 Finished successfully:214 +Progress: time: Thu, 01 Dec 2011 11:55:19 -0600 Selecting site:409 Active:10 Checking status:1 Finished successfully:214 +Progress: time: Thu, 01 Dec 2011 11:55:22 -0600 Selecting site:408 Active:10 Checking status:1 Finished successfully:215 +Progress: time: Thu, 01 Dec 2011 11:55:24 -0600 Selecting site:406 Active:10 Checking status:1 Finished successfully:217 +Progress: time: Thu, 01 Dec 2011 11:55:25 -0600 Selecting site:404 Active:10 Checking status:1 Finished successfully:219 +Progress: time: Thu, 01 Dec 2011 11:55:27 -0600 Selecting site:403 Active:10 Checking status:1 Finished successfully:220 +Progress: time: Thu, 01 Dec 2011 11:55:28 -0600 Selecting site:401 Submitting:1 Active:10 Finished successfully:222 +Progress: time: Thu, 01 Dec 2011 11:55:30 -0600 Selecting site:400 Active:10 Checking status:1 Finished successfully:223 +Progress: time: Thu, 01 Dec 2011 11:55:32 -0600 Selecting site:398 Stage in:1 Active:10 Finished successfully:225 +Progress: time: Thu, 01 Dec 2011 11:55:33 -0600 Selecting site:398 Active:11 Finished successfully:225 +Progress: time: Thu, 01 Dec 2011 11:55:34 -0600 Selecting site:397 Active:10 Checking status:1 Finished successfully:226 +Progress: time: Thu, 01 Dec 2011 11:55:36 -0600 Selecting site:396 Active:10 Checking status:1 Finished successfully:227 +Progress: time: Thu, 01 Dec 2011 11:55:39 -0600 Selecting site:395 Active:10 Checking status:1 Finished successfully:228 +Progress: time: Thu, 01 Dec 2011 11:55:41 -0600 Selecting site:393 Stage in:1 Active:10 Finished successfully:230 +Progress: time: Thu, 01 Dec 2011 11:55:42 -0600 Selecting site:392 Active:10 Checking status:1 Finished successfully:231 +Progress: time: Thu, 01 Dec 2011 11:55:43 -0600 Selecting site:391 Active:11 Finished successfully:232 +Progress: time: Thu, 01 Dec 2011 11:55:54 -0600 Selecting site:389 Active:10 Checking status:1 Finished successfully:234 +Progress: time: Thu, 01 Dec 2011 11:55:56 -0600 Selecting site:387 Active:11 Finished successfully:236 +Progress: time: Thu, 01 Dec 2011 11:55:59 -0600 Selecting site:387 Active:10 Checking status:1 Finished successfully:236 +Progress: time: Thu, 01 Dec 2011 11:56:00 -0600 Selecting site:386 Stage in:1 Active:9 Stage out:1 Finished successfully:237 +Progress: time: Thu, 01 Dec 2011 11:56:01 -0600 Selecting site:380 Active:11 Finished successfully:243 +Progress: time: Thu, 01 Dec 2011 11:56:03 -0600 Selecting site:380 Active:10 Checking status:1 Finished successfully:243 +Progress: time: Thu, 01 Dec 2011 11:56:04 -0600 Selecting site:378 Stage in:1 Active:10 Finished successfully:245 +Progress: time: Thu, 01 Dec 2011 11:56:08 -0600 Selecting site:378 Active:10 Checking status:1 Finished successfully:245 +Progress: time: Thu, 01 Dec 2011 11:56:13 -0600 Selecting site:376 Active:10 Checking status:1 Finished successfully:247 +Progress: time: Thu, 01 Dec 2011 11:56:16 -0600 Selecting site:374 Active:10 Checking status:1 Finished successfully:249 +Progress: time: Thu, 01 Dec 2011 11:56:18 -0600 Selecting site:373 Stage in:1 Active:9 Checking status:1 Finished successfully:250 +Progress: time: Thu, 01 Dec 2011 11:56:19 -0600 Selecting site:372 Stage in:1 Submitting:1 Active:9 Finished successfully:251 +Progress: time: Thu, 01 Dec 2011 11:56:20 -0600 Selecting site:372 Active:11 Finished successfully:251 +Progress: time: Thu, 01 Dec 2011 11:56:25 -0600 Selecting site:372 Active:10 Checking status:1 Finished successfully:251 +Progress: time: Thu, 01 Dec 2011 11:56:27 -0600 Selecting site:367 Stage in:1 Active:9 Checking status:1 Finished successfully:256 +Progress: time: Thu, 01 Dec 2011 11:56:28 -0600 Selecting site:366 Active:10 Checking status:1 Finished successfully:257 +Progress: time: Thu, 01 Dec 2011 11:56:30 -0600 Selecting site:365 Active:10 Checking status:1 Finished successfully:258 +Progress: time: Thu, 01 Dec 2011 11:56:33 -0600 Selecting site:364 Active:10 Checking status:1 Finished successfully:259 +Progress: time: Thu, 01 Dec 2011 11:56:35 -0600 Selecting site:360 Stage in:2 Active:8 Checking status:1 Finished successfully:263 +Progress: time: Thu, 01 Dec 2011 11:56:37 -0600 Selecting site:359 Stage in:1 Submitting:1 Active:9 Finished successfully:264 +Progress: time: Thu, 01 Dec 2011 11:56:38 -0600 Selecting site:359 Stage in:1 Active:8 Checking status:1 Finished successfully:265 +Progress: time: Thu, 01 Dec 2011 11:56:40 -0600 Selecting site:357 Stage in:2 Active:8 Checking status:1 Finished successfully:266 +Progress: time: Thu, 01 Dec 2011 11:56:42 -0600 Selecting site:356 Stage in:1 Submitting:1 Active:9 Finished successfully:267 +Progress: time: Thu, 01 Dec 2011 11:56:46 -0600 Selecting site:356 Submitting:1 Active:10 Finished successfully:267 +Progress: time: Thu, 01 Dec 2011 11:56:51 -0600 Selecting site:356 Active:10 Checking status:1 Finished successfully:267 +Progress: time: Thu, 01 Dec 2011 11:56:52 -0600 Selecting site:355 Stage in:1 Active:10 Finished successfully:268 +Progress: time: Thu, 01 Dec 2011 11:56:56 -0600 Selecting site:355 Active:11 Finished successfully:268 +Progress: time: Thu, 01 Dec 2011 11:56:57 -0600 Selecting site:355 Active:10 Checking status:1 Finished successfully:268 +Progress: time: Thu, 01 Dec 2011 11:56:59 -0600 Selecting site:351 Stage in:1 Active:10 Finished successfully:272 +Progress: time: Thu, 01 Dec 2011 11:57:01 -0600 Selecting site:351 Stage in:1 Active:9 Checking status:1 Finished successfully:272 +Progress: time: Thu, 01 Dec 2011 11:57:04 -0600 Selecting site:348 Stage in:2 Active:8 Checking status:1 Finished successfully:275 +Progress: time: Thu, 01 Dec 2011 11:57:11 -0600 Selecting site:345 Stage in:1 Submitting:1 Active:9 Finished successfully:278 +Progress: time: Thu, 01 Dec 2011 11:57:14 -0600 Selecting site:345 Active:10 Checking status:1 Finished successfully:278 +Progress: time: Thu, 01 Dec 2011 11:57:15 -0600 Selecting site:343 Active:10 Checking status:1 Finished successfully:280 +Progress: time: Thu, 01 Dec 2011 11:57:18 -0600 Selecting site:341 Active:10 Checking status:1 Finished successfully:282 +Progress: time: Thu, 01 Dec 2011 11:57:26 -0600 Selecting site:340 Active:11 Finished successfully:283 +Progress: time: Thu, 01 Dec 2011 11:57:27 -0600 Selecting site:340 Active:10 Checking status:1 Finished successfully:283 +Progress: time: Thu, 01 Dec 2011 11:57:28 -0600 Selecting site:337 Active:10 Checking status:1 Finished successfully:286 +Progress: time: Thu, 01 Dec 2011 11:57:29 -0600 Selecting site:336 Active:10 Checking status:1 Finished successfully:287 +Progress: time: Thu, 01 Dec 2011 11:57:32 -0600 Selecting site:335 Stage in:1 Active:9 Checking status:1 Finished successfully:288 +Progress: time: Thu, 01 Dec 2011 11:57:35 -0600 Selecting site:334 Submitting:1 Active:10 Finished successfully:289 +Progress: time: Thu, 01 Dec 2011 11:57:36 -0600 Selecting site:334 Active:11 Finished successfully:289 +Progress: time: Thu, 01 Dec 2011 11:57:37 -0600 Selecting site:334 Active:8 Stage out:2 Finished successfully:290 +Progress: time: Thu, 01 Dec 2011 11:57:41 -0600 Selecting site:331 Stage in:2 Active:8 Checking status:1 Finished successfully:292 +Progress: time: Thu, 01 Dec 2011 11:57:42 -0600 Selecting site:330 Submitting:1 Active:10 Finished successfully:293 +Progress: time: Thu, 01 Dec 2011 11:57:43 -0600 Selecting site:329 Stage in:1 Active:10 Finished successfully:294 +Progress: time: Thu, 01 Dec 2011 11:57:46 -0600 Selecting site:329 Active:10 Checking status:1 Finished successfully:294 +Progress: time: Thu, 01 Dec 2011 11:57:48 -0600 Selecting site:328 Stage in:1 Active:9 Checking status:1 Finished successfully:295 +Progress: time: Thu, 01 Dec 2011 11:57:49 -0600 Selecting site:325 Stage in:2 Active:9 Finished successfully:298 +Progress: time: Thu, 01 Dec 2011 11:57:51 -0600 Selecting site:323 Stage in:1 Submitting:1 Active:9 Finished successfully:300 +Progress: time: Thu, 01 Dec 2011 11:57:52 -0600 Selecting site:323 Active:10 Checking status:1 Finished successfully:300 +Progress: time: Thu, 01 Dec 2011 11:57:53 -0600 Selecting site:322 Stage in:1 Active:9 Checking status:1 Finished successfully:301 +Progress: time: Thu, 01 Dec 2011 11:57:54 -0600 Selecting site:321 Stage in:1 Active:10 Finished successfully:302 +Progress: time: Thu, 01 Dec 2011 11:57:55 -0600 Selecting site:321 Submitting:1 Active:10 Finished successfully:302 +Progress: time: Thu, 01 Dec 2011 11:57:57 -0600 Selecting site:321 Active:10 Checking status:1 Finished successfully:302 +Progress: time: Thu, 01 Dec 2011 11:58:02 -0600 Selecting site:317 Stage in:3 Submitting:1 Active:7 Finished successfully:306 +Progress: time: Thu, 01 Dec 2011 11:58:04 -0600 Selecting site:317 Stage in:3 Active:7 Checking status:1 Finished successfully:306 +Progress: time: Thu, 01 Dec 2011 11:58:06 -0600 Selecting site:316 Active:10 Checking status:1 Finished successfully:307 +Progress: time: Thu, 01 Dec 2011 11:58:10 -0600 Selecting site:314 Stage in:1 Active:9 Checking status:1 Finished successfully:309 +Progress: time: Thu, 01 Dec 2011 11:58:11 -0600 Selecting site:312 Stage in:3 Active:7 Finished successfully:312 +Progress: time: Thu, 01 Dec 2011 11:58:14 -0600 Selecting site:311 Stage in:4 Active:6 Checking status:1 Finished successfully:312 +Progress: time: Thu, 01 Dec 2011 11:58:16 -0600 Selecting site:310 Stage in:4 Submitted:1 Active:5 Stage out:1 Finished successfully:313 +Progress: time: Thu, 01 Dec 2011 11:58:17 -0600 Selecting site:309 Stage in:3 Submitting:1 Active:7 Finished successfully:314 +Progress: time: Thu, 01 Dec 2011 11:58:20 -0600 Selecting site:309 Active:10 Checking status:1 Finished successfully:314 +Progress: time: Thu, 01 Dec 2011 11:58:22 -0600 Selecting site:307 Stage in:2 Active:8 Checking status:1 Finished successfully:316 +Progress: time: Thu, 01 Dec 2011 11:58:23 -0600 Selecting site:305 Stage in:3 Active:7 Checking status:1 Finished successfully:318 +Progress: time: Thu, 01 Dec 2011 11:58:25 -0600 Selecting site:304 Stage in:3 Submitting:1 Active:7 Finished successfully:319 +Progress: time: Thu, 01 Dec 2011 11:58:26 -0600 Selecting site:304 Stage in:2 Submitting:1 Active:7 Finished successfully:320 +Progress: time: Thu, 01 Dec 2011 11:58:28 -0600 Selecting site:303 Stage in:2 Submitting:1 Active:8 Finished successfully:320 +Progress: time: Thu, 01 Dec 2011 11:58:30 -0600 Selecting site:303 Active:10 Checking status:1 Finished successfully:320 +Progress: time: Thu, 01 Dec 2011 11:58:33 -0600 Selecting site:301 Submitting:1 Active:10 Finished successfully:322 +Progress: time: Thu, 01 Dec 2011 11:58:35 -0600 Selecting site:301 Active:10 Checking status:1 Finished successfully:322 +Progress: time: Thu, 01 Dec 2011 11:58:37 -0600 Selecting site:300 Active:10 Checking status:1 Finished successfully:323 +Progress: time: Thu, 01 Dec 2011 11:58:42 -0600 Selecting site:298 Stage in:1 Submitting:1 Active:9 Finished successfully:325 +Progress: time: Thu, 01 Dec 2011 11:58:43 -0600 Selecting site:298 Submitting:1 Active:10 Finished successfully:325 +Progress: time: Thu, 01 Dec 2011 11:58:46 -0600 Selecting site:298 Active:10 Checking status:1 Finished successfully:325 +Progress: time: Thu, 01 Dec 2011 11:58:48 -0600 Selecting site:297 Stage in:1 Active:9 Checking status:1 Finished successfully:326 +Progress: time: Thu, 01 Dec 2011 11:58:50 -0600 Selecting site:297 Stage in:1 Active:8 Checking status:1 Finished successfully:327 +Progress: time: Thu, 01 Dec 2011 11:58:51 -0600 Selecting site:293 Stage in:1 Submitting:1 Active:9 Finished successfully:330 +Progress: time: Thu, 01 Dec 2011 11:58:52 -0600 Selecting site:292 Stage in:1 Active:10 Finished successfully:331 +Progress: time: Thu, 01 Dec 2011 11:58:53 -0600 Selecting site:290 Stage in:3 Active:8 Finished successfully:333 +Progress: time: Thu, 01 Dec 2011 11:58:56 -0600 Selecting site:290 Stage in:2 Active:8 Stage out:1 Finished successfully:333 +Progress: time: Thu, 01 Dec 2011 11:58:58 -0600 Selecting site:288 Stage in:2 Submitting:1 Active:8 Finished successfully:335 +Progress: time: Thu, 01 Dec 2011 11:58:59 -0600 Selecting site:288 Stage in:1 Active:9 Checking status:1 Finished successfully:335 +Progress: time: Thu, 01 Dec 2011 11:59:03 -0600 Selecting site:287 Submitting:1 Active:10 Finished successfully:336 +Progress: time: Thu, 01 Dec 2011 11:59:06 -0600 Selecting site:287 Active:10 Checking status:1 Finished successfully:336 +Progress: time: Thu, 01 Dec 2011 11:59:15 -0600 Selecting site:286 Active:10 Checking status:1 Finished successfully:337 +Progress: time: Thu, 01 Dec 2011 11:59:18 -0600 Selecting site:285 Active:10 Checking status:1 Finished successfully:338 +Progress: time: Thu, 01 Dec 2011 11:59:22 -0600 Selecting site:283 Stage in:1 Active:9 Checking status:1 Finished successfully:340 +Progress: time: Thu, 01 Dec 2011 11:59:23 -0600 Selecting site:280 Stage in:3 Active:8 Finished successfully:343 +Progress: time: Thu, 01 Dec 2011 11:59:25 -0600 Selecting site:280 Stage in:2 Submitting:1 Active:8 Finished successfully:343 +Progress: time: Thu, 01 Dec 2011 11:59:26 -0600 Selecting site:280 Active:10 Checking status:1 Finished successfully:343 +Progress: time: Thu, 01 Dec 2011 11:59:31 -0600 Selecting site:279 Active:10 Checking status:1 Finished successfully:344 +Progress: time: Thu, 01 Dec 2011 11:59:32 -0600 Selecting site:276 Stage in:1 Active:10 Finished successfully:347 +Progress: time: Thu, 01 Dec 2011 11:59:33 -0600 Selecting site:276 Active:10 Checking status:1 Finished successfully:347 +Progress: time: Thu, 01 Dec 2011 11:59:37 -0600 Selecting site:275 Active:10 Checking status:1 Finished successfully:348 +Progress: time: Thu, 01 Dec 2011 11:59:38 -0600 Selecting site:273 Stage in:2 Active:8 Checking status:1 Finished successfully:350 +Progress: time: Thu, 01 Dec 2011 11:59:43 -0600 Selecting site:272 Stage in:2 Submitting:1 Active:8 Finished successfully:351 +Progress: time: Thu, 01 Dec 2011 11:59:45 -0600 Selecting site:272 Stage in:1 Submitting:1 Active:9 Finished successfully:351 +Progress: time: Thu, 01 Dec 2011 11:59:48 -0600 Selecting site:272 Stage in:1 Active:9 Checking status:1 Finished successfully:351 +Progress: time: Thu, 01 Dec 2011 11:59:49 -0600 Selecting site:269 Stage in:3 Active:8 Finished successfully:354 +Progress: time: Thu, 01 Dec 2011 11:59:50 -0600 Selecting site:268 Stage in:1 Submitting:1 Active:9 Finished successfully:355 +Progress: time: Thu, 01 Dec 2011 11:59:51 -0600 Selecting site:268 Active:10 Checking status:1 Finished successfully:355 +Progress: time: Thu, 01 Dec 2011 11:59:53 -0600 Selecting site:267 Active:10 Checking status:1 Finished successfully:356 +Progress: time: Thu, 01 Dec 2011 11:59:56 -0600 Selecting site:265 Stage in:1 Submitting:1 Active:9 Finished successfully:358 +Progress: time: Thu, 01 Dec 2011 11:59:57 -0600 Selecting site:263 Stage in:2 Active:9 Finished successfully:360 +Progress: time: Thu, 01 Dec 2011 11:59:59 -0600 Selecting site:263 Stage in:1 Active:9 Checking status:1 Finished successfully:360 +Progress: time: Thu, 01 Dec 2011 12:00:02 -0600 Selecting site:262 Stage in:1 Active:9 Checking status:1 Finished successfully:361 +Progress: time: Thu, 01 Dec 2011 12:00:03 -0600 Selecting site:258 Stage in:3 Active:8 Finished successfully:365 +Progress: time: Thu, 01 Dec 2011 12:00:10 -0600 Selecting site:258 Stage in:1 Submitting:1 Active:9 Finished successfully:365 +Progress: time: Thu, 01 Dec 2011 12:00:12 -0600 Selecting site:258 Stage in:1 Active:9 Checking status:1 Finished successfully:365 +Progress: time: Thu, 01 Dec 2011 12:00:13 -0600 Selecting site:253 Stage in:1 Active:9 Checking status:1 Finished successfully:370 +Progress: time: Thu, 01 Dec 2011 12:00:17 -0600 Selecting site:252 Stage in:2 Active:8 Checking status:1 Finished successfully:371 +Progress: time: Thu, 01 Dec 2011 12:00:18 -0600 Selecting site:250 Stage in:2 Submitting:1 Active:8 Finished successfully:373 +Progress: time: Thu, 01 Dec 2011 12:00:19 -0600 Selecting site:248 Stage in:1 Active:10 Finished successfully:375 +Progress: time: Thu, 01 Dec 2011 12:00:22 -0600 Selecting site:248 Submitting:1 Active:10 Finished successfully:375 +Progress: time: Thu, 01 Dec 2011 12:00:23 -0600 Selecting site:246 Active:10 Checking status:1 Finished successfully:377 +Progress: time: Thu, 01 Dec 2011 12:00:24 -0600 Selecting site:244 Stage in:2 Active:9 Finished successfully:379 +Progress: time: Thu, 01 Dec 2011 12:00:25 -0600 Selecting site:244 Stage in:1 Active:9 Checking status:1 Finished successfully:379 +Progress: time: Thu, 01 Dec 2011 12:00:29 -0600 Selecting site:243 Stage in:1 Active:9 Checking status:1 Finished successfully:380 +Progress: time: Thu, 01 Dec 2011 12:00:33 -0600 Selecting site:242 Stage in:2 Active:8 Checking status:1 Finished successfully:381 +Progress: time: Thu, 01 Dec 2011 12:00:35 -0600 Selecting site:241 Stage in:3 Active:7 Checking status:1 Finished successfully:382 +Progress: time: Thu, 01 Dec 2011 12:00:36 -0600 Selecting site:240 Stage in:3 Active:7 Checking status:1 Finished successfully:383 +Progress: time: Thu, 01 Dec 2011 12:00:37 -0600 Selecting site:239 Stage in:4 Active:6 Checking status:1 Finished successfully:384 +Progress: time: Thu, 01 Dec 2011 12:00:38 -0600 Selecting site:238 Stage in:5 Active:5 Checking status:1 Finished successfully:385 +Progress: time: Thu, 01 Dec 2011 12:00:39 -0600 Selecting site:237 Stage in:5 Active:4 Checking status:1 Finished successfully:387 +Progress: time: Thu, 01 Dec 2011 12:00:40 -0600 Selecting site:234 Stage in:7 Active:4 Finished successfully:389 +Progress: time: Thu, 01 Dec 2011 12:00:42 -0600 Selecting site:234 Stage in:7 Active:3 Checking status:1 Finished successfully:389 +Progress: time: Thu, 01 Dec 2011 12:00:43 -0600 Selecting site:232 Stage in:8 Active:2 Checking status:1 Finished successfully:391 +Progress: time: Thu, 01 Dec 2011 12:00:45 -0600 Selecting site:230 Stage in:9 Submitting:1 Active:1 Finished successfully:393 +Progress: time: Thu, 01 Dec 2011 12:00:46 -0600 Selecting site:230 Stage in:6 Submitting:1 Active:4 Finished successfully:393 +Progress: time: Thu, 01 Dec 2011 12:00:50 -0600 Selecting site:230 Stage in:1 Submitting:1 Active:9 Finished successfully:393 +Progress: time: Thu, 01 Dec 2011 12:00:56 -0600 Selecting site:230 Active:11 Finished successfully:393 +Progress: time: Thu, 01 Dec 2011 12:01:04 -0600 Selecting site:230 Active:10 Checking status:1 Finished successfully:393 +Progress: time: Thu, 01 Dec 2011 12:01:09 -0600 Selecting site:229 Active:10 Checking status:1 Finished successfully:394 +Progress: time: Thu, 01 Dec 2011 12:01:10 -0600 Selecting site:228 Stage in:1 Active:9 Checking status:1 Finished successfully:395 +Progress: time: Thu, 01 Dec 2011 12:01:14 -0600 Selecting site:226 Stage in:2 Active:8 Checking status:1 Finished successfully:397 +Progress: time: Thu, 01 Dec 2011 12:01:18 -0600 Selecting site:225 Stage in:2 Active:8 Checking status:1 Finished successfully:398 +Progress: time: Thu, 01 Dec 2011 12:01:19 -0600 Selecting site:224 Stage in:2 Active:8 Checking status:1 Finished successfully:399 +Progress: time: Thu, 01 Dec 2011 12:01:20 -0600 Selecting site:221 Stage in:3 Active:8 Finished successfully:402 +Progress: time: Thu, 01 Dec 2011 12:01:21 -0600 Selecting site:221 Stage in:3 Active:7 Checking status:1 Finished successfully:402 +Progress: time: Thu, 01 Dec 2011 12:01:22 -0600 Selecting site:216 Stage in:7 Active:3 Checking status:1 Finished successfully:407 +Progress: time: Thu, 01 Dec 2011 12:01:24 -0600 Selecting site:212 Stage in:9 Active:2 Finished successfully:411 +Progress: time: Thu, 01 Dec 2011 12:01:25 -0600 Selecting site:212 Stage in:7 Submitting:1 Active:3 Finished successfully:411 +Progress: time: Thu, 01 Dec 2011 12:01:26 -0600 Selecting site:211 Stage in:3 Active:8 Finished successfully:412 +Progress: time: Thu, 01 Dec 2011 12:01:29 -0600 Selecting site:211 Stage in:2 Submitting:1 Active:8 Finished successfully:412 +Progress: time: Thu, 01 Dec 2011 12:01:36 -0600 Selecting site:211 Stage in:1 Submitting:1 Active:9 Finished successfully:412 +Progress: time: Thu, 01 Dec 2011 12:01:37 -0600 Selecting site:211 Active:11 Finished successfully:412 +Progress: time: Thu, 01 Dec 2011 12:01:44 -0600 Selecting site:211 Active:10 Checking status:1 Finished successfully:412 +Progress: time: Thu, 01 Dec 2011 12:01:46 -0600 Selecting site:210 Stage in:1 Active:9 Checking status:1 Finished successfully:413 +Progress: time: Thu, 01 Dec 2011 12:01:48 -0600 Selecting site:207 Stage in:2 Active:8 Checking status:1 Finished successfully:416 +Progress: time: Thu, 01 Dec 2011 12:01:49 -0600 Selecting site:203 Stage in:4 Active:6 Checking status:1 Finished successfully:420 +Progress: time: Thu, 01 Dec 2011 12:01:50 -0600 Selecting site:201 Stage in:4 Submitting:1 Active:6 Finished successfully:422 +Progress: time: Thu, 01 Dec 2011 12:01:52 -0600 Selecting site:198 Stage in:4 Active:6 Checking status:1 Finished successfully:425 +Progress: time: Thu, 01 Dec 2011 12:01:54 -0600 Selecting site:196 Stage in:1 Active:9 Checking status:1 Finished successfully:427 +Progress: time: Thu, 01 Dec 2011 12:01:56 -0600 Selecting site:194 Stage in:2 Submitting:1 Active:8 Finished successfully:429 +Progress: time: Thu, 01 Dec 2011 12:01:57 -0600 Selecting site:194 Submitting:1 Active:10 Finished successfully:429 +Progress: time: Thu, 01 Dec 2011 12:02:07 -0600 Selecting site:194 Active:10 Checking status:1 Finished successfully:429 +Progress: time: Thu, 01 Dec 2011 12:02:18 -0600 Selecting site:193 Active:10 Checking status:1 Finished successfully:430 +Progress: time: Thu, 01 Dec 2011 12:02:20 -0600 Selecting site:186 Stage in:5 Active:6 Finished successfully:437 +Progress: time: Thu, 01 Dec 2011 12:02:21 -0600 Selecting site:185 Stage in:5 Active:6 Finished successfully:438 +Progress: time: Thu, 01 Dec 2011 12:02:23 -0600 Selecting site:182 Stage in:4 Active:6 Checking status:1 Finished successfully:441 +Progress: time: Thu, 01 Dec 2011 12:02:24 -0600 Selecting site:177 Stage in:5 Active:6 Finished successfully:446 +Progress: time: Thu, 01 Dec 2011 12:02:25 -0600 Selecting site:172 Stage in:5 Active:6 Finished successfully:451 +Progress: time: Thu, 01 Dec 2011 12:02:26 -0600 Selecting site:172 Stage in:3 Active:6 Stage out:1 Finished successfully:452 +Progress: time: Thu, 01 Dec 2011 12:02:27 -0600 Selecting site:168 Stage in:1 Active:10 Finished successfully:455 +Progress: time: Thu, 01 Dec 2011 12:02:28 -0600 Selecting site:163 Submitting:1 Active:10 Finished successfully:460 +Progress: time: Thu, 01 Dec 2011 12:02:30 -0600 Selecting site:162 Active:10 Checking status:1 Finished successfully:461 +Progress: time: Thu, 01 Dec 2011 12:02:31 -0600 Selecting site:160 Submitted:2 Active:5 Stage out:4 Finished successfully:463 +Progress: time: Thu, 01 Dec 2011 12:02:32 -0600 Selecting site:155 Active:11 Finished successfully:468 +Progress: time: Thu, 01 Dec 2011 12:02:34 -0600 Selecting site:153 Active:10 Checking status:1 Finished successfully:470 +Progress: time: Thu, 01 Dec 2011 12:02:35 -0600 Selecting site:147 Stage in:1 Active:10 Finished successfully:476 +Progress: time: Thu, 01 Dec 2011 12:02:37 -0600 Selecting site:145 Stage in:1 Active:10 Finished successfully:478 +Progress: time: Thu, 01 Dec 2011 12:02:38 -0600 Selecting site:139 Active:10 Checking status:1 Finished successfully:484 +Progress: time: Thu, 01 Dec 2011 12:02:39 -0600 Selecting site:132 Active:10 Checking status:1 Finished successfully:491 +Progress: time: Thu, 01 Dec 2011 12:02:40 -0600 Selecting site:126 Stage in:2 Active:9 Finished successfully:497 +Progress: time: Thu, 01 Dec 2011 12:02:42 -0600 Selecting site:121 Active:10 Checking status:1 Finished successfully:502 +Progress: time: Thu, 01 Dec 2011 12:02:43 -0600 Selecting site:115 Active:10 Checking status:1 Finished successfully:508 +Progress: time: Thu, 01 Dec 2011 12:02:44 -0600 Selecting site:108 Active:10 Checking status:1 Finished successfully:515 +Progress: time: Thu, 01 Dec 2011 12:02:45 -0600 Selecting site:105 Active:9 Checking status:1 Finished successfully:519 +Progress: time: Thu, 01 Dec 2011 12:02:46 -0600 Selecting site:100 Stage in:1 Active:10 Finished successfully:523 +Progress: time: Thu, 01 Dec 2011 12:02:47 -0600 Selecting site:94 Stage in:1 Submitted:1 Active:9 Finished successfully:529 +Progress: time: Thu, 01 Dec 2011 12:02:48 -0600 Selecting site:90 Stage in:1 Active:10 Finished successfully:533 +Progress: time: Thu, 01 Dec 2011 12:02:50 -0600 Selecting site:83 Stage in:2 Active:9 Finished successfully:540 +Progress: time: Thu, 01 Dec 2011 12:02:51 -0600 Selecting site:81 Stage in:1 Active:10 Finished successfully:542 +Progress: time: Thu, 01 Dec 2011 12:02:52 -0600 Selecting site:76 Active:11 Finished successfully:547 +Progress: time: Thu, 01 Dec 2011 12:02:53 -0600 Selecting site:72 Active:9 Checking status:1 Finished successfully:552 +Progress: time: Thu, 01 Dec 2011 12:02:54 -0600 Selecting site:67 Active:10 Checking status:1 Finished successfully:556 +Progress: time: Thu, 01 Dec 2011 12:02:55 -0600 Selecting site:63 Active:9 Checking status:1 Finished successfully:561 +Progress: time: Thu, 01 Dec 2011 12:02:57 -0600 Selecting site:58 Active:9 Checking status:1 Finished successfully:566 +Progress: time: Thu, 01 Dec 2011 12:02:58 -0600 Selecting site:50 Active:10 Checking status:1 Finished successfully:573 +Progress: time: Thu, 01 Dec 2011 12:02:59 -0600 Selecting site:45 Stage in:1 Active:10 Finished successfully:578 +Progress: time: Thu, 01 Dec 2011 12:03:00 -0600 Selecting site:36 Stage in:1 Active:10 Finished successfully:587 +Progress: time: Thu, 01 Dec 2011 12:03:02 -0600 Selecting site:31 Active:9 Checking status:1 Finished successfully:593 +Progress: time: Thu, 01 Dec 2011 12:03:03 -0600 Selecting site:25 Active:10 Checking status:1 Finished successfully:598 +Progress: time: Thu, 01 Dec 2011 12:03:04 -0600 Selecting site:21 Active:9 Checking status:1 Finished successfully:603 +Progress: time: Thu, 01 Dec 2011 12:03:05 -0600 Selecting site:12 Submitted:1 Active:9 Checking status:1 Finished successfully:611 +Progress: time: Thu, 01 Dec 2011 12:03:06 -0600 Selecting site:9 Stage in:1 Submitted:1 Active:9 Finished successfully:614 +Progress: time: Thu, 01 Dec 2011 12:03:07 -0600 Selecting site:8 Submitted:1 Active:9 Checking status:1 Finished successfully:615 +Progress: time: Thu, 01 Dec 2011 12:03:12 -0600 Selecting site:5 Submitted:1 Active:9 Checking status:1 Finished successfully:618 +Progress: time: Thu, 01 Dec 2011 12:03:13 -0600 Selecting site:1 Stage in:1 Active:10 Finished successfully:622 +Progress: time: Thu, 01 Dec 2011 12:03:16 -0600 Active:7 Checking status:1 Finished successfully:626 +Progress: time: Thu, 01 Dec 2011 12:03:17 -0600 Active:4 Checking status:1 Finished successfully:629 +Progress: time: Thu, 01 Dec 2011 12:03:19 -0600 Initializing:1 Active:4 Finished successfully:630 +Progress: time: Thu, 01 Dec 2011 12:03:20 -0600 Active:4 Checking status:1 Finished successfully:630 +Progress: time: Thu, 01 Dec 2011 12:03:21 -0600 Active:2 Checking status:1 Finished successfully:632 +Progress: time: Thu, 01 Dec 2011 12:03:22 -0600 Active:1 Checking status:1 Finished successfully:634 +Progress: time: Thu, 01 Dec 2011 12:03:25 -0600 Checking status:1 Finished successfully:635 +Progress: time: Thu, 01 Dec 2011 12:03:26 -0600 Active:1 Finished successfully:636 +Progress: time: Thu, 01 Dec 2011 12:03:56 -0600 Active:1 Finished successfully:636 +Progress: time: Thu, 01 Dec 2011 12:04:05 -0600 Checking status:1 Finished successfully:636 +Final status: Thu, 01 Dec 2011 12:04:05 -0600 Finished successfully:637 Added: SwiftApps/modis/g.gif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/g.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/geos.mapper.sh =================================================================== --- SwiftApps/modis/geos.mapper.sh (rev 0) +++ SwiftApps/modis/geos.mapper.sh 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,20 @@ +#!/bin/bash + +# Usage: $0 -location dir -suffix .tif -site gsiftp://gridftp.pads.ci.uchicago.edu/ -n=999 + +while [ $# -gt 0 ]; do + case $1 in + -location) location=$2;; + -suffix) suffix=$2;; + -site) site=$2;; + -n) n=$2;; + *) echo "$0: bad mapper args" 1>&2 + exit 1;; + esac + shift 2 +done + +find $location -name '*'${suffix} -print | head -$n | +awk '{printf "[%d] '$site'/%s\n", NR, $1}' + + Property changes on: SwiftApps/modis/geos.mapper.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/gridmap.gif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/gridmap.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h00v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h00v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h00v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h00v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h00v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h00v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h01v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h01v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h01v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h01v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h01v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h01v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h01v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h01v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h01v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h01v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h02v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h02v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h02v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h02v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h02v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h02v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h02v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h02v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h02v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h02v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h03v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h03v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h03v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h03v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h03v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h03v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h03v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h03v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h03v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h03v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h04v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h04v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h04v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h04v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h04v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h04v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h05v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h05v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h05v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h05v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h05v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h05v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h06v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h06v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h06v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h06v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h07v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h07v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h07v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h07v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h07v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h07v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h07v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h07v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h08v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h08v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h09v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h09v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h10v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h10v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h11v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h11v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h12v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h12v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h13v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h13v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h14v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h14v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h15v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h15v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v00.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v00.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h16v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h16v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v00.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v00.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h17v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h17v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v00.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v00.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h18v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h18v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v00.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v00.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h19v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h19v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h20v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h20v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h21v17.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h21v17.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h22v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h22v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v01.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v01.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h23v16.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h23v16.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h24v15.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h24v15.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h25v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h25v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v02.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v02.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h26v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h26v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h27v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h27v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v04.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v04.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h28v14.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h28v14.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v03.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v03.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h29v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h29v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v05.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v05.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h30v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h30v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v06.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v06.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h31v13.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h31v13.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h32v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h32v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h32v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h32v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h32v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h32v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h32v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h32v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h32v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h32v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h32v12.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h32v12.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h33v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h33v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h33v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h33v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h33v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h33v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h33v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h33v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h33v11.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h33v11.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h34v07.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h34v07.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h34v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h34v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h34v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h34v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h34v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h34v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h35v08.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h35v08.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h35v09.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h35v09.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/landuse/h35v10.color.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/landuse/h35v10.color.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/map.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/map.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/markedGrid.gif =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/markedGrid.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/modis.mapper =================================================================== --- SwiftApps/modis/modis.mapper (rev 0) +++ SwiftApps/modis/modis.mapper 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,20 @@ +#!/bin/bash + +# Usage: $0 -location dir -suffix .tif -site gsiftp://gridftp.pads.ci.uchicago.edu/ -n=999 + +while [ $# -gt 0 ]; do + case $1 in + -location) location=$2;; + -suffix) suffix=$2;; + -site) site=$2;; + -n) n=$2;; + *) echo "$0: bad mapper args" 1>&2 + exit 1;; + esac + shift 2 +done + +find $location -type f -name 'h??v??'${suffix} -print | head -$n | +awk '{printf "[%d] %s\n", NR-1, $1}' + + Property changes on: SwiftApps/modis/modis.mapper ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/modis.swift =================================================================== --- SwiftApps/modis/modis.swift (rev 0) +++ SwiftApps/modis/modis.swift 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,71 @@ +# Declare dataset types + +type file; +type imagefile; +type landuse; + +# Define application program interfaces + +app (landuse output) getLandUse (imagefile input, int sortfield) +{ + getlanduse @input sortfield stdout=@output ; +} + +app (file output, file tilelist) analyzeLandUse (landuse input[], int usetype, int maxnum) +{ + analyzelanduse @output @tilelist usetype maxnum @filenames(input); +} + +app (imagefile output) colormodis (imagefile input) +{ + colormodis @input @output; +} + +app (imagefile output) assemble (imagefile input[]) +{ + assemble @output @filenames(input); +} + +# Declare datasets + +imagefile geos[]; +landuse land[]; + +# Find the land use of each MODIS tile + +foreach g,i in geos { + land[i] = getLandUse(g,1); +} + +# Find the top N most urban tiles (by area) + +int N = 12; +int UsageTypeURBAN=13; +file bigurban<"topurban.txt">; +file urbantiles<"urbantiles.txt">; +(bigurban, urbantiles) = analyzeLandUse(land, UsageTypeURBAN, N); + +# Map the files for the top urban tiles to an array + +string urbanfilenames[] = readData(urbantiles); +imagefile urbanfiles[] ; + +# Create a set of recolored images for just the urban tiles + +string odir = "/home/wilde/public_html/geo/"; + +imagefile recoloredImage[] ; + +foreach uf, i in urbanfiles { + #imagefile recoloredImage ; + recoloredImage[i] = colormodis(uf); +} + +# Assemble a montage of the top urban areas + +imagefile urbanMontage ; + +urbanMontage = assemble(recoloredImage); Added: SwiftApps/modis/modis2.swift =================================================================== --- SwiftApps/modis/modis2.swift (rev 0) +++ SwiftApps/modis/modis2.swift 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,78 @@ +# Declare dataset types + +type file; +type imagefile; +type landuse; + +# Define application program interfaces + +app (landuse output) getLandUse (imagefile input, int sortfield) +{ + getlanduse @input sortfield stdout=@output ; +} + +app (file output, file tilelist) analyzeLandUse (landuse input[], string usetype, int maxnum) +{ + analyzelanduse @output @tilelist usetype maxnum @filenames(input); +} + +app (imagefile output) colormodis (imagefile input) +{ + colormodis @input @output; +} + +app (imagefile output) assemble (imagefile input[]) +{ + assemble @output @filenames(input); +} + +# Declare datasets + +# imagefile geos[]; + +string location="/home/wilde/bigdata/data/modis/2002"; +string suffix=".tif"; + +int nfiles = @toint(@arg("nfiles","1000")); +int N = @toint(@arg("nselect","12")); +string UsageType=@arg("landtype","urban"); + +imagefile geos[]; # site=site +landuse land[]; + +# Find the land use of each MODIS tile + +foreach g,i in geos { + land[i] = getLandUse(g,1); +} + +# Find the top N tiles (by total area of selected landuse types) + +file topselected<"topselected.txt">; +file selectedtiles<"selectedtiles.txt">; +(topselected, selectedtiles) = analyzeLandUse(land, UsageType, N); + +# Map the files for the top selected tiles to an array + +string selectedfilenames[] = readData(selectedtiles); +imagefile selectedfiles[] ; + +# Create a set of recolored images for just the selected tiles + +string odir = "/home/wilde/public_html/geo/"; + +imagefile recoloredImage[] ; + +foreach sf, i in selectedfiles { + #imagefile recoloredImage ; + recoloredImage[i] = colormodis(sf); +} + +# Assemble a montage of the top selcted areas + +imagefile selectedMontage ; + +selectedMontage = assemble(recoloredImage); Added: SwiftApps/modis/modis3.swift =================================================================== --- SwiftApps/modis/modis3.swift (rev 0) +++ SwiftApps/modis/modis3.swift 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,71 @@ +# Declare dataset types + +type file; +type imagefile; +type landuse; + +# Define application program interfaces + +app (landuse output) getLandUse (imagefile input, int sortfield) +{ + getlanduse @input sortfield stdout=@output ; +} + +app (file output, file tilelist) analyzeLandUse (landuse input[], string usetype, int maxnum) +{ + analyzelanduse @output @tilelist usetype maxnum @filenames(input); +} + +app (imagefile output) colorMODIS (imagefile input) +{ + colormodis @input @output; +} + +app (imagefile output) assemble (file selected, imagefile image[]) +{ + assemble @output @selected @filenames(image); +} + +# Declare datasets + +# imagefile geos[]; + +string location="/home/wilde/bigdata/data/modis/2002"; +string suffix=".tif"; + +int nfiles = @toint(@arg("nfiles","1000")); +int N = @toint(@arg("nselect","12")); +string UsageType=@arg("landtype","urban"); + +imagefile geos[]; # site=site +landuse land[]; + +# Find the land use of each MODIS tile + +foreach g,i in geos { + land[i] = getLandUse(g,1); +} + +# Find the top N tiles (by total area of selected landuse types) + +file topSelected<"topselected.txt">; +file selectedTiles<"selectedtiles.txt">; +(topSelected, selectedTiles) = analyzeLandUse(land, UsageType, N); + +# Create multi-color images for all tiles + +string odir = "/home/wilde/public_html/geo/"; + +imagefile colorImage[] ; + +foreach g, i in geos { + colorImage[i] = colorMODIS(g); +} + +# Assemble a montage of the top selcted areas + +imagefile montage ; # @arg + +montage = assemble(selectedTiles,colorImage); Added: SwiftApps/modis/modis4.swift =================================================================== --- SwiftApps/modis/modis4.swift (rev 0) +++ SwiftApps/modis/modis4.swift 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,83 @@ +# Declare dataset types + +type file; +type imagefile; +type landuse; + +# Define application program interfaces + +app (landuse output) getLandUse (imagefile input, int sortfield) +{ + getlanduse @input sortfield stdout=@output ; +} + +app (file output, file tilelist) analyzeLandUse (landuse input[], string usetype, int maxnum) +{ + analyzelanduse @output @tilelist usetype maxnum @filenames(input); +} + +app (imagefile output) colorMODIS (imagefile input) +{ + colormodis @input @output; +} + +app (imagefile output) assemble (file selected, imagefile image[], string webdir) +{ + assemble @output @selected @filename(image[0]) webdir; +} + +# Constants and command line arguments + +int nFiles = @toint(@arg("nfiles","1000")); +int nSelect = @toint(@arg("nselect","12")); +string landType = @arg("landtype","urban"); +string runID = @arg("runid","modis-run"); +string MODISdir= @arg("modisdir","/home/wilde/bigdata/data/modis/2002"); +string webDir = @arg("webdir","/home/wilde/public_html/geo/"); + +string suffix=".tif"; + +# Datasets + +imagefile geos[]; # site=site + +# Find the land use of each MODIS tile + +landuse land[]; + +foreach g,i in geos { + land[i] = getLandUse(g,1); +} + +# Find the top N tiles (by total area of selected landuse types) + +file topSelected<"topselected.txt">; +file selectedTiles<"selectedtiles.txt">; +(topSelected, selectedTiles) = analyzeLandUse(land, landType, nSelect); + +# Create multi-color images for all tiles + +imagefile colorImage[] ; + +foreach g, i in geos { + colorImage[i] = colorMODIS(g); +} + +# Assemble a montage of the top selcted areas + +imagefile montage ; # @arg + +montage = assemble(selectedTiles,colorImage,webDir); + +# future args: + +int selectHiThreshold; +int selectLowThreshold; +string upperLeftTile; +string lowerRightTile; +float imageSizes[]; +string displayOptions; + +# imagefile geos[]; Added: SwiftApps/modis/modis5.swift =================================================================== --- SwiftApps/modis/modis5.swift (rev 0) +++ SwiftApps/modis/modis5.swift 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,93 @@ +type file; +type imagefile; +type landuse; + +# Define application program interfaces + +app (landuse output) getLandUse (imagefile input, int sortfield) +{ + getlanduse @input sortfield stdout=@output ; +} + +app (file output, file tilelist) analyzeLandUse + (landuse input[], string usetype, int maxnum) +{ + analyzelanduse @output @tilelist usetype maxnum @filenames(input); +} + +app (imagefile output) colorMODIS (imagefile input) +{ + colormodis @input @output; +} + +app (imagefile output) assemble + (file selected, imagefile image[], string webdir) +{ + assemble @output @selected @filename(image[0]) webdir; +} + +app (imagefile grid) markMap (file tilelist) +{ + markmap @tilelist @grid; +} + +# Constants and command line arguments + +int nFiles = @toint(@arg("nfiles","1000")); +int nSelect = @toint(@arg("nselect","12")); +string landType = @arg("landtype","urban"); +string runID = @arg("runid","modis-run"); +string MODISdir= @arg("modisdir","/home/wilde/bigdata/data/modis/2002"); +string webDir = @arg("webdir","/home/wilde/public_html/geo/"); + +string suffix=".tif"; + +# Input Dataset + +imagefile geos[] ; # site=site + +# Compute the land use summary of each MODIS tile + +landuse land[] ; + +foreach g,i in geos { + land[i] = getLandUse(g,1); +} + +# Find the top N tiles (by total area of selected landuse types) + +file topSelected<"topselected.txt">; +file selectedTiles<"selectedtiles.txt">; +(topSelected, selectedTiles) = analyzeLandUse(land, landType, nSelect); + +# Mark the top N tiles on a sinusoidal gridded map + +imagefile gridMap<"markedGrid.gif">; +gridMap = markMap(topSelected); + +# Create multi-color images for all tiles + +imagefile colorImage[] ; + +foreach g, i in geos { + colorImage[i] = colorMODIS(g); +} + +# Assemble a montage of the top selected areas + +imagefile montage ; # @arg +montage = assemble(selectedTiles,colorImage,webDir); + +# future args: + +int selectHiThreshold; +int selectLowThreshold; +string upperLeftTile; +string lowerRightTile; +float imageSizes[]; +string displayOptions; + Added: SwiftApps/modis/modis5.xml =================================================================== --- SwiftApps/modis/modis5.xml (rev 0) +++ SwiftApps/modis/modis5.xml 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,271 @@ + + + + + file + string + + + + imagefile + string + + + + landuse + string + + + + + + + + + + + + + getlanduse + + output + inputsortfield + + + + + + + + + + + + + + + + analyzelanduse + + output + tilelistusetypemaxnum + input + + + + + + + + + + colormodis + + input + output + + + + + + + + + + + + + + assemble + + output + selected + + image + 0 + webdir + + + + + + + + + + markmap + + tilelist + grid + + + + + nFiles + + + nfiles1000 + + + + nSelect + + + nselect12 + + + + landType + + landtypeurban + + + + runID + + runidmodis-run + + + + MODISdir + + modisdir/home/wilde/bigdata/data/modis/2002 + + + + webDir + + webdir/home/wilde/public_html/geo/ + + + + suffix + .tif + + + + modis.mapper + MODISdir + .tif + nFiles + + + + + geos + (h..v..) + + runID/\1.landuse.byfreq + + + + geos + + + land + i + + g + 1 + + + + + + topSelected + selectedTiles + land + landType + nSelect + + + + gridMap + topSelected + + + + geos + (h..v..) + landuse/\1.color.png + + + + geos + + + colorImage + i + + g + + + + + + runID/map.png + + + + montage + selectedTiles + colorImage + webDir + + + + + + + + Added: SwiftApps/modis/modisp1.swift =================================================================== --- SwiftApps/modis/modisp1.swift (rev 0) +++ SwiftApps/modis/modisp1.swift 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,73 @@ +# Declare dataset types + +type file; +type imagefile; +type landuse; + +# Define application program interfaces + +app (landuse output) getLandUse (imagefile input, int sortfield) +{ + getlanduse @input sortfield stdout=@output ; +} + +app (file output, file tilelist) analyzeLandUse (landuse input[], int usetype, int maxnum) +{ + analyzelanduse @output @tilelist usetype maxnum @filenames(input); +} + +app (imagefile output) colormodis (imagefile input) +{ + colormodis @input @output; +} + +app (imagefile output) assemble (imagefile input[]) +{ + assemble @output @filenames(input); +} + +# Declare datasets + +imagefile geos[]; +landuse land[]; + +int nfiles = @toint(@arg("nfiles","1000")); +int N = @toint(@arg("nselect","12")); +string UsageType=@arg("landtype","13"); + +# Find the land use of each MODIS tile + +foreach g,i in geos { + land[i] = getLandUse(g,1); +} + +# Find the top N most urban tiles (by area) + +file bigurban<"topurban.txt">; +file urbantiles<"urbantiles.txt">; +(bigurban, urbantiles) = analyzeLandUse(land, UsageType, N); + +# Map the files for the top urban tiles to an array + +string urbanfilenames[] = readData(urbantiles); +imagefile urbanfiles[] ; + +# Create a set of recolored images for just the urban tiles + +string odir = "/home/wilde/public_html/geo/"; + +imagefile recoloredImage[] ; + +foreach uf, i in urbanfiles { + #imagefile recoloredImage ; + recoloredImage[i] = colormodis(uf); +} + +# Assemble a montage of the top urban areas + +imagefile urbanMontage ; + +urbanMontage = assemble(recoloredImage); Added: SwiftApps/modis/mon.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/mon.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/rundemo.sh =================================================================== --- SwiftApps/modis/rundemo.sh (rev 0) +++ SwiftApps/modis/rundemo.sh 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1 @@ +swift -tc.file tc -sites.file sites.xml modis.swift Property changes on: SwiftApps/modis/rundemo.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/rundemo2.pbs.sh =================================================================== --- SwiftApps/modis/rundemo2.pbs.sh (rev 0) +++ SwiftApps/modis/rundemo2.pbs.sh 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,7 @@ +swift -tc.file tc.pbs \ + -sites.file sites.xml \ + modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 + +exit + +swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Property changes on: SwiftApps/modis/rundemo2.pbs.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/rundemo2.sh =================================================================== --- SwiftApps/modis/rundemo2.sh (rev 0) +++ SwiftApps/modis/rundemo2.sh 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,7 @@ +swift -tc.file tc.local \ + -sites.file sites.xml \ + modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 + +exit + +swift -tc.file tc.local -sites.file sites.local.xml modis2.swift -landtype=$1 -nfiles=$2 -nselect=$3 Property changes on: SwiftApps/modis/rundemo2.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/rundemop1.sh =================================================================== --- SwiftApps/modis/rundemop1.sh (rev 0) +++ SwiftApps/modis/rundemop1.sh 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1 @@ +swift -tc.file tc -sites.file sites.xml modisp1.swift -nselect=9 -nfiles=100 -landtype=13 Property changes on: SwiftApps/modis/rundemop1.sh ___________________________________________________________________ Added: svn:executable + * Added: SwiftApps/modis/scripts/coaster-service.conf =================================================================== --- SwiftApps/modis/scripts/coaster-service.conf (rev 0) +++ SwiftApps/modis/scripts/coaster-service.conf 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,40 @@ +# Keep all interesting settings in one place +# User should modify this to fit environment + +# Location of SWIFT. If empty, PATH is referenced +export SWIFT= + +# Where to place/launch worker.pl on the remote machine for sites.xml +export WORKER_WORK=/tmp/$USER + +# How to launch workers: local, ssh, or cobalt +export WORKER_MODE=ssh + +# Worker logging setting passed to worker.pl for sites.xml +export WORKER_LOGGING=INFO + +# User name to use for all systems +export WORKER_USERNAME=$USER +export GLOBUS_HOSTNAME=`hostname -f` + +# Worker host names for ssh +export WORKER_HOSTS="crush.mcs.anl.gov thwomp.mcs.anl.gov stomp.mcs.anl.gov crank.mcs.anl.gov +steamroller.mcs.anl.gov grind.mcs.anl.gov churn.mcs.anl.gov trounce.mcs.anl.gov +thrash.mcs.anl.gov vanquish.mcs.anl.gov" +#export WORKER_HOSTS="churn" +# Directory to keep log files, relative to working directory when launching start-coaster-service +export LOG_DIR=logs + +# Manually define ports. If not specified, ports will be automatically generated +export LOCAL_PORT= +export SERVICE_PORT= + +# start-coaster-service tries to automatically detect IP address. +# Specify here if auto detection is not working correctly +export IPADDR= + +# Below are various settings to give information about how to create sites.xml +export WORK=_RUNDIR_/swiftwork +export queue=prod-devel +export maxtime=20 +export nodes=64 Added: SwiftApps/modis/scripts/gensites.template =================================================================== --- SwiftApps/modis/scripts/gensites.template (rev 0) +++ SwiftApps/modis/scripts/gensites.template 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,13 @@ + + + + passive + 8 + .79 + 10000 + + _WORK_ + + Added: SwiftApps/modis/selectedtiles.txt =================================================================== --- SwiftApps/modis/selectedtiles.txt (rev 0) +++ SwiftApps/modis/selectedtiles.txt 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,10 @@ +/home/wilde/bigdata/data/modis/2002//h30v07.tif +/home/wilde/bigdata/data/modis/2002//h08v04.tif +/home/wilde/bigdata/data/modis/2002//h20v12.tif +/home/wilde/bigdata/data/modis/2002//h19v12.tif +/home/wilde/bigdata/data/modis/2002//h13v13.tif +/home/wilde/bigdata/data/modis/2002//h21v10.tif +/home/wilde/bigdata/data/modis/2002//h10v10.tif +/home/wilde/bigdata/data/modis/2002//h08v06.tif +/home/wilde/bigdata/data/modis/2002//h10v08.tif +/home/wilde/bigdata/data/modis/2002//h24v05.tif Added: SwiftApps/modis/sico.xml =================================================================== --- SwiftApps/modis/sico.xml (rev 0) +++ SwiftApps/modis/sico.xml 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,17 @@ + + + + + + passive + + 6 + .07 + 10000 + + + /home/wilde/swiftwork + + + + Added: SwiftApps/modis/sites.local.xml =================================================================== --- SwiftApps/modis/sites.local.xml (rev 0) +++ SwiftApps/modis/sites.local.xml 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,11 @@ + + + + + .31 + 10000 + + /home/wilde/swift/lab/go/work + + + Added: SwiftApps/modis/sites.xml =================================================================== --- SwiftApps/modis/sites.xml (rev 0) +++ SwiftApps/modis/sites.xml 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,38 @@ + + + + + .10 + 10000 + + /scratch/local/wilde/swift/demo/work + + + + + + /home/wilde/swiftwork + + + + + + 1 + 3600 + 00:02:00 + 64 + 1 + 1 + fast + + .63 + 10000 + + + /home/wilde/swift/lab/go/work + /scratch/local/wilde + + + + + Added: SwiftApps/modis/sites.xml.pas.coasters =================================================================== --- SwiftApps/modis/sites.xml.pas.coasters (rev 0) +++ SwiftApps/modis/sites.xml.pas.coasters 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,28 @@ + + + + + + /home/wilde/swiftwork + + + + + + 1 + 3600 + 00:02:00 + 64 + 1 + 1 + fast + + .63 + 10000 + + + /home/wilde/swiftwork + /scratch/local/wilde + + + Added: SwiftApps/modis/tc =================================================================== --- SwiftApps/modis/tc (rev 0) +++ SwiftApps/modis/tc 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,34 @@ +#This is the transformation catalog. +# +#It comes pre-configured with a number of simple transformations with +#paths that are likely to work on a linux box. However, on some systems, +#the paths to these executables will be different (for example, sometimes +#some of these programs are found in /usr/bin rather than in /bin) +# +#NOTE WELL: fields in this file must be separated by tabs, not spaces; and +#there must be no trailing whitespace at the end of each line. +# +# site transformation path obsolete fields for compatibility + +localhost echo /bin/echo null null null +localhost cat /bin/cat null null null +localhost ls /bin/ls null null null +localhost grep /bin/grep null null null +localhost sort /bin/sort null null null +localhost paste /bin/paste null null null +localhost pwd /bin/pwd null null null + +# For cluster usage + +pbs convert /usr/bin/convert null null null +pbs getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null +pbs analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelandusep1.sh null null null +pbs colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null +pbs assemble /home/wilde/swift/demo/modis/bin/assemble.sh null null null + +# For localhost testing + +#localhost convert /usr/bin/convert null null null +#localhost getlanduse /home/wilde/bigdata/bin/getlanduse.sh null null null +#localhost analyzelanduse /home/wilde/bigdata/bin/analyzelanduse.sh null null null +#localhost colormodis /home/wilde/bigdata/bin/colormodis.sh null null null Added: SwiftApps/modis/tc.local =================================================================== --- SwiftApps/modis/tc.local (rev 0) +++ SwiftApps/modis/tc.local 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,34 @@ +#This is the transformation catalog. +# +#It comes pre-configured with a number of simple transformations with +#paths that are likely to work on a linux box. However, on some systems, +#the paths to these executables will be different (for example, sometimes +#some of these programs are found in /usr/bin rather than in /bin) +# +#NOTE WELL: fields in this file must be separated by tabs, not spaces; and +#there must be no trailing whitespace at the end of each line. +# +# site transformation path obsolete fields for compatibility + +localhost echo /bin/echo null null null +localhost cat /bin/cat null null null +localhost ls /bin/ls null null null +localhost grep /bin/grep null null null +localhost sort /bin/sort null null null +localhost paste /bin/paste null null null +localhost pwd /bin/pwd null null null + +# For cluster usage + +#pbs getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null +#pbs analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelanduse.sh null null null +#pbs colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null +#pbs assemble /home/wilde/swift/demo/modis/bin/assemble.sh null null null + +# For localhost testing + +localhost getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null +localhost analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelanduse2.sh null null null +localhost colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null +localhost assemble /home/wilde/swift/demo/modis/bin/assemble2.sh null null null +localhost markmap /home/wilde/swift/demo/modis/bin/markmap.sh null null null Added: SwiftApps/modis/tc.pbs =================================================================== --- SwiftApps/modis/tc.pbs (rev 0) +++ SwiftApps/modis/tc.pbs 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,35 @@ +#This is the transformation catalog. +# +#It comes pre-configured with a number of simple transformations with +#paths that are likely to work on a linux box. However, on some systems, +#the paths to these executables will be different (for example, sometimes +#some of these programs are found in /usr/bin rather than in /bin) +# +#NOTE WELL: fields in this file must be separated by tabs, not spaces; and +#there must be no trailing whitespace at the end of each line. +# +# site transformation path obsolete fields for compatibility + +localhost echo /bin/echo null null null +localhost cat /bin/cat null null null +localhost ls /bin/ls null null null +localhost grep /bin/grep null null null +localhost sort /bin/sort null null null +localhost paste /bin/paste null null null +localhost pwd /bin/pwd null null null + +# For cluster usage + +pbs convert /usr/bin/convert null null null +pbs getlanduse /home/wilde/swift/demo/modis/bin/getlanduse.sh null null null +pbs analyzelanduse /home/wilde/swift/demo/modis/bin/analyzelanduse2.sh null null null +pbs colormodis /home/wilde/swift/demo/modis/bin/colormodis.sh null null null +pbs assemble /home/wilde/swift/demo/modis/bin/assemble2.sh null null null +pbs markmap /home/wilde/swift/demo/modis/bin/markmap.sh null null null + +# For localhost testing + +#localhost convert /usr/bin/convert null null null +#localhost getlanduse /home/wilde/bigdata/bin/getlanduse.sh null null null +#localhost analyzelanduse /home/wilde/bigdata/bin/analyzelanduse.sh null null null +#localhost colormodis /home/wilde/bigdata/bin/colormodis.sh null null null Added: SwiftApps/modis/tmp.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/tmp.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: SwiftApps/modis/topselected.txt =================================================================== --- SwiftApps/modis/topselected.txt (rev 0) +++ SwiftApps/modis/topselected.txt 2011-12-16 19:51:37 UTC (rev 5428) @@ -0,0 +1,10 @@ +modis-2011.1201.1740-urban-30-10/h30v07.landuse.byfreq 1864 +modis-2011.1201.1740-urban-30-10/h08v04.landuse.byfreq 2541 +modis-2011.1201.1740-urban-30-10/h20v12.landuse.byfreq 3308 +modis-2011.1201.1740-urban-30-10/h19v12.landuse.byfreq 4283 +modis-2011.1201.1740-urban-30-10/h13v13.landuse.byfreq 5022 +modis-2011.1201.1740-urban-30-10/h21v10.landuse.byfreq 5370 +modis-2011.1201.1740-urban-30-10/h10v10.landuse.byfreq 8663 +modis-2011.1201.1740-urban-30-10/h08v06.landuse.byfreq 14824 +modis-2011.1201.1740-urban-30-10/h10v08.landuse.byfreq 19487 +modis-2011.1201.1740-urban-30-10/h24v05.landuse.byfreq 25405 Added: SwiftApps/modis/white.png =================================================================== (Binary files differ) Property changes on: SwiftApps/modis/white.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream