# PaCkAgE DaTaStReAm sct 1 3144 # end of header 0707070000000000001006440000000000030000010000001025235041000001400000000242sct/pkginfoPKG=sct NAME=System Certification Tests CATEGORY=application ARCH=IA32 VERSION=9.0.0g VENDOR=SCO CLASSES=none PSTAMP=OSR5/OSR6/UW7/UW2/OU8 05/02/01 PREDEPEND=sct 0707070000000000011006440000000000030000010000001025235041200001300000007416sct/pkgmap: 1 3144 1 d none /home ? ? ? 1 d none /home/sct 0755 bin bin 1 f none /home/sct/chwp 0755 bin bin 70310 29502 1118427786 1 f none /home/sct/chwpdump 0755 bin bin 43822 13285 1118427786 1 d none /home/sct/doc 0755 bin bin 1 f none /home/sct/doc/CONTENTS.html 0755 bin bin 521 40489 1113930782 1 f none /home/sct/doc/CTOC-scthelp.html 0755 bin bin 3069 51954 1113930782 1 f none /home/sct/doc/README 0755 bin bin 2596 30039 1114028918 1 f none /home/sct/doc/README.html 0755 bin bin 5809 19987 1114028415 1 f none /home/sct/doc/SCTDOC.book 0755 bin bin 127 10438 1113930782 1 f none /home/sct/doc/SCTDOC.desktop.osr5 0755 bin bin 135 12060 1110907570 1 f none /home/sct/doc/SCTDOC.desktop.uw7 0755 bin bin 133 11910 1110907572 1 f none /home/sct/doc/SCTDOC.hk 0755 bin bin 322 25205 1113930782 1 f none /home/sct/doc/SCTDOC.node 0755 bin bin 242 19912 1113930782 1 d none /home/sct/doc/graphics 0755 bin bin 1 f none /home/sct/doc/graphics/edit.gif 0755 bin bin 12001 58752 1113930900 1 f none /home/sct/doc/graphics/logfiles.gif 0755 bin bin 15069 39296 1113930900 1 f none /home/sct/doc/graphics/main.gif 0755 bin bin 14014 53884 1113930900 1 f none /home/sct/doc/graphics/testinprog.gif 0755 bin bin 10829 14525 1113930900 1 f none /home/sct/doc/scthelp.html 0755 bin bin 17727 12385 1113930782 1 f none /home/sct/handoff 0755 bin bin 70056 13647 1118427786 1 d none /home/sct/res 0755 bin bin 1 f none /home/sct/res/chwp.def 0755 bin bin 10208 63449 1114012352 1 f none /home/sct/res/e00folder_closed.px 0755 bin bin 661 35150 1104948355 1 f none /home/sct/res/e01folder_open.px 0755 bin bin 786 42120 1104948355 1 f none /home/sct/res/e02item_middle.px 0755 bin bin 660 34232 1104948355 1 f none /home/sct/res/e03item_last.px 0755 bin bin 660 28725 1104948355 1 f none /home/sct/res/e04hbar.px 0755 bin bin 660 31842 1104948355 1 f none /home/sct/res/e05blank.px 0755 bin bin 566 21268 1104948355 1 f none /home/sct/res/e06requiredok.px 0755 bin bin 656 27701 1106249016 1 f none /home/sct/res/e07requiredbad.px 0755 bin bin 656 27043 1106249005 1 f none /home/sct/res/eula 0755 bin bin 9132 45953 1114639185 1 f none /home/sct/res/p00disabled.px 0755 bin bin 566 21268 1104948355 1 f none /home/sct/res/p01enabled.px 0755 bin bin 662 29457 1104948355 1 f none /home/sct/res/p02running.px 0755 bin bin 662 35633 1104948355 1 f none /home/sct/res/p03stopped.px 0755 bin bin 661 35883 1104948355 1 f none /home/sct/res/p04error.px 0755 bin bin 661 29394 1104948355 1 f none /home/sct/res/p05noerror.px 0755 bin bin 566 21268 1104948355 1 f none /home/sct/res/splash.px 0755 bin bin 156716 45420 1109199823 1 f none /home/sct/sct 0755 bin bin 43174 48731 1118427786 1 f none /home/sct/sctrun 0755 bin bin 36818 8368 1118427786 1 d none /home/sct/tests 0755 bin bin 1 f none /home/sct/tests/cdrom 0755 bin bin 19760 26005 1118427787 1 f none /home/sct/tests/cdrw 0755 bin bin 19604 51899 1118427787 1 f none /home/sct/tests/cpu 0755 bin bin 19384 28484 1118427786 1 f none /home/sct/tests/disk 0755 bin bin 19420 58167 1118427786 1 f none /home/sct/tests/dvdrw 0755 bin bin 19608 50727 1118427787 1 f none /home/sct/tests/floppy 0755 bin bin 19480 42632 1118427786 1 f none /home/sct/tests/graphics 0755 bin bin 20308 28747 1118427786 1 f none /home/sct/tests/memory 0755 bin bin 18876 3350 1118427787 1 f none /home/sct/tests/mkimg 0755 bin bin 16948 21852 1118427787 1 f none /home/sct/tests/network 0755 bin bin 27560 49595 1118427786 1 f none /home/sct/tests/ostype 0755 bin bin 16424 4135 1118427787 1 f none /home/sct/tests/usbflash 0755 bin bin 19168 31340 1118427787 1 f none /home/sct/tests/usbflashrw 0755 bin bin 18812 23123 1118427787 1 f none /home/sct/tests/x11perf 0755 bin bin 738160 2990 1118427787 1 i copyright 63 4919 1107284867 1 i pkginfo 162 12258 1118425352 1 i postinstall 798 61892 1113932851 1 i preremove 645 51152 1113941772 0707070000000000021006440000000000030000010000000000000000000001300000000000TRAILER!!! CLASSES=none PSTAMP=OSR5/OSR6/UW7/UW2/OU8 05/02/01 PREDEPEND=sct 0707070000000000011006440000000000030000010000001025235041200001300000007416sct/pkgmap: 1 3144 1 d none /home ? ? ? 1 d none /home/sct 0755 bin bin 1 f none /home/sct/chwp 0755 bin bin 70310 29502 1118427786 1 f none /home/sct/chwpdump 0755 bin bin 43822 13285 110707070000000000001006440000000000030000010000001025235041000001000000000242pkginfoPKG=sct NAME=System Certification Tests CATEGORY=application ARCH=IA32 VERSION=9.0.0g VENDOR=SCO CLASSES=none PSTAMP=OSR5/OSR6/UW7/UW2/OU8 05/02/01 PREDEPEND=sct 0707070000000000011006440000000000030000010000001025235041200000700000007416pkgmap: 1 3144 1 d none /home ? ? ? 1 d none /home/sct 0755 bin bin 1 f none /home/sct/chwp 0755 bin bin 70310 29502 1118427786 1 f none /home/sct/chwpdump 0755 bin bin 43822 13285 1118427786 1 d none /home/sct/doc 0755 bin bin 1 f none /home/sct/doc/CONTENTS.html 0755 bin bin 521 40489 1113930782 1 f none /home/sct/doc/CTOC-scthelp.html 0755 bin bin 3069 51954 1113930782 1 f none /home/sct/doc/README 0755 bin bin 2596 30039 1114028918 1 f none /home/sct/doc/README.html 0755 bin bin 5809 19987 1114028415 1 f none /home/sct/doc/SCTDOC.book 0755 bin bin 127 10438 1113930782 1 f none /home/sct/doc/SCTDOC.desktop.osr5 0755 bin bin 135 12060 1110907570 1 f none /home/sct/doc/SCTDOC.desktop.uw7 0755 bin bin 133 11910 1110907572 1 f none /home/sct/doc/SCTDOC.hk 0755 bin bin 322 25205 1113930782 1 f none /home/sct/doc/SCTDOC.node 0755 bin bin 242 19912 1113930782 1 d none /home/sct/doc/graphics 0755 bin bin 1 f none /home/sct/doc/graphics/edit.gif 0755 bin bin 12001 58752 1113930900 1 f none /home/sct/doc/graphics/logfiles.gif 0755 bin bin 15069 39296 1113930900 1 f none /home/sct/doc/graphics/main.gif 0755 bin bin 14014 53884 1113930900 1 f none /home/sct/doc/graphics/testinprog.gif 0755 bin bin 10829 14525 1113930900 1 f none /home/sct/doc/scthelp.html 0755 bin bin 17727 12385 1113930782 1 f none /home/sct/handoff 0755 bin bin 70056 13647 1118427786 1 d none /home/sct/res 0755 bin bin 1 f none /home/sct/res/chwp.def 0755 bin bin 10208 63449 1114012352 1 f none /home/sct/res/e00folder_closed.px 0755 bin bin 661 35150 1104948355 1 f none /home/sct/res/e01folder_open.px 0755 bin bin 786 42120 1104948355 1 f none /home/sct/res/e02item_middle.px 0755 bin bin 660 34232 1104948355 1 f none /home/sct/res/e03item_last.px 0755 bin bin 660 28725 1104948355 1 f none /home/sct/res/e04hbar.px 0755 bin bin 660 31842 1104948355 1 f none /home/sct/res/e05blank.px 0755 bin bin 566 21268 1104948355 1 f none /home/sct/res/e06requiredok.px 0755 bin bin 656 27701 1106249016 1 f none /home/sct/res/e07requiredbad.px 0755 bin bin 656 27043 1106249005 1 f none /home/sct/res/eula 0755 bin bin 9132 45953 1114639185 1 f none /home/sct/res/p00disabled.px 0755 bin bin 566 21268 1104948355 1 f none /home/sct/res/p01enabled.px 0755 bin bin 662 29457 1104948355 1 f none /home/sct/res/p02running.px 0755 bin bin 662 35633 1104948355 1 f none /home/sct/res/p03stopped.px 0755 bin bin 661 35883 1104948355 1 f none /home/sct/res/p04error.px 0755 bin bin 661 29394 1104948355 1 f none /home/sct/res/p05noerror.px 0755 bin bin 566 21268 1104948355 1 f none /home/sct/res/splash.px 0755 bin bin 156716 45420 1109199823 1 f none /home/sct/sct 0755 bin bin 43174 48731 1118427786 1 f none /home/sct/sctrun 0755 bin bin 36818 8368 1118427786 1 d none /home/sct/tests 0755 bin bin 1 f none /home/sct/tests/cdrom 0755 bin bin 19760 26005 1118427787 1 f none /home/sct/tests/cdrw 0755 bin bin 19604 51899 1118427787 1 f none /home/sct/tests/cpu 0755 bin bin 19384 28484 1118427786 1 f none /home/sct/tests/disk 0755 bin bin 19420 58167 1118427786 1 f none /home/sct/tests/dvdrw 0755 bin bin 19608 50727 1118427787 1 f none /home/sct/tests/floppy 0755 bin bin 19480 42632 1118427786 1 f none /home/sct/tests/graphics 0755 bin bin 20308 28747 1118427786 1 f none /home/sct/tests/memory 0755 bin bin 18876 3350 1118427787 1 f none /home/sct/tests/mkimg 0755 bin bin 16948 21852 1118427787 1 f none /home/sct/tests/network 0755 bin bin 27560 49595 1118427786 1 f none /home/sct/tests/ostype 0755 bin bin 16424 4135 1118427787 1 f none /home/sct/tests/usbflash 0755 bin bin 19168 31340 1118427787 1 f none /home/sct/tests/usbflashrw 0755 bin bin 18812 23123 1118427787 1 f none /home/sct/tests/x11perf 0755 bin bin 738160 2990 1118427787 1 i copyright 63 4919 1107284867 1 i pkginfo 162 12258 1118425352 1 i postinstall 798 61892 1113932851 1 i preremove 645 51152 1113941772 0707070000000000021006440000000000030000010000001025235521200002300000211246root/home/sct/chwp#!/bin/osavtcl # # miscellaneous utilities shared by a few programs. # # globals set version 9.0.0g set RESPATH "[pwd]/res" set BINPATH "[pwd]/tests" set LICENSE "$RESPATH/license" set EULA "$RESPATH/eula" set PID [pid] set sct_config_file "$RESPATH/sct.config" # path to user created machine data file. set chwp_db_data_file "$RESPATH/chwp.data" # path where test run logs are kept set sctrun_logdir "[pwd]/logs" # path where test binaries are kept set sctrun_testdir "[pwd]/tests" # path where handoffs are created set sct_handoffdir "[pwd]/handoffs" # Test data items (cheap way to make a list work like a C structure) set TS(class) 0 set TS(type) 1 set TS(name) 2 set TS(description) 3 set TS(required) 4 set TS(media) 5 set TS(enabled) 6 set TS(mode) 7 set TS(running) 8 set TS(iteration) 9 set TS(errors) 10 set TS(pid) 11 set TS(elapsed) 12 set TS(normalstop) 13 # Configuration data items set CS(runtime) 0 set CS(netmachine) 1 set CS(ftpuser) 2 set CS(ftppass) 3 set CS(localgraphics) 4 set CS(certrun) 5 set CS(nofloppy) 6 set CS(nocdrom) 7 set CS(errormax) 8 set CS(cddevice) 9 set CS(usbdevice) 10 set CS(cdpattern) 11 # full list of run times set sct_run_list_full [list \ "1 min" "5 min" "15 min" "30 min" "1 hr" \ "2 hr" "4 hr" "8 hr" "16 hr" "24 hr" "36 hr" \ "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] # certification (short) list of run times. set sct_run_list_cert [list \ "36 hr" "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] set sct_run_indefinite_time 3600000 # # read in our saved values if any # returns zero if no file to read # proc \ sct_read_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file if {$file == ""} { set file $sct_config_file } if {[catch {open $file r} fd] != 0} { return 0 } # silently ignore errors while {[gets $fd line] != -1} { set list [split $line ":"] set type [lindex $list 0] case $type { config { set name [lindex $list 1] set value [lindex $list 2] if {$name == "certrun"} { set sct_config_db [lreplace $sct_config_db $CS(certrun) $CS(certrun) $value] } if {$name == "runtime"} { set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $value] } if {$name == "netmachine"} { set sct_config_db [lreplace $sct_config_db $CS(netmachine) $CS(netmachine) $value] } if {$name == "ftpuser"} { set sct_config_db [lreplace $sct_config_db $CS(ftpuser) $CS(ftpuser) $value] } if {$name == "ftppass"} { set sct_config_db [lreplace $sct_config_db $CS(ftppass) $CS(ftppass) $value] } if {$name == "localgraphics"} { set sct_config_db [lreplace $sct_config_db $CS(localgraphics) $CS(localgraphics) $value] } if {$name == "nofloppy"} { set sct_config_db [lreplace $sct_config_db $CS(nofloppy) $CS(nofloppy) $value] } if {$name == "nocdrom"} { set sct_config_db [lreplace $sct_config_db $CS(nocdrom) $CS(nocdrom) $value] } if {$name == "errormax"} { set sct_config_db [lreplace $sct_config_db $CS(errormax) $CS(errormax) $value] } if {$name == "cddevice"} { set sct_config_db [lreplace $sct_config_db $CS(cddevice) $CS(cddevice) $value] } if {$name == "cdpattern"} { set sct_config_db [lreplace $sct_config_db $CS(cdpattern) $CS(cdpattern) $value] } if {$name == "usbdevice"} { set sct_config_db [lreplace $sct_config_db $CS(usbdevice) $CS(usbdevice) $value] } } test { set name [lindex $list 1] set enabled [lindex $list 2] set mode [lindex $list 3] # find the test and update it set end [llength $mainscreen_db] loop ndx 0 $end { set entry [lindex $mainscreen_db $ndx] set tname [lindex $entry $TS(name)] if {$tname == $name} { set entry [lreplace $entry $TS(enabled) $TS(enabled) $enabled] set entry [lreplace $entry $TS(mode) $TS(mode) $mode] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } } } } } close $fd return 1 } # # write out the current configuration # proc \ sct_save_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file BINPATH if {$file == ""} { set file $sct_config_file } if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return 0 } # save config first set list $sct_config_db set certrun [lindex $list $CS(certrun)] set runtime [lindex $list $CS(runtime)] set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set ostype [sct_ostype] set osversion [sct_osversion] set nofloppy [lindex $list $CS(nofloppy)] set nocdrom [lindex $list $CS(nocdrom)] set localgraphics [sct_localgraphics] set errormax [lindex $list $CS(errormax)] set cddevice [lindex $list $CS(cddevice)] set cdpattern [lindex $list $CS(cdpattern)] set usbdevice [lindex $list $CS(usbdevice)] puts $fd "config:certrun:$certrun" puts $fd "config:runtime:$runtime" puts $fd "config:netmachine:$netmachine" puts $fd "config:ftpuser:$ftpuser" puts $fd "config:ftppass:$ftppass" puts $fd "config:binpath:$BINPATH" puts $fd "config:ostype:$ostype" puts $fd "config:osversion:$osversion" puts $fd "config:localgraphics:$localgraphics" puts $fd "config:nofloppy:$nofloppy" puts $fd "config:nocdrom:$nocdrom" puts $fd "config:errormax:$errormax" puts $fd "config:cddevice:$cddevice" puts $fd "config:cdpattern:$cdpattern" puts $fd "config:usbdevice:$usbdevice" foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] puts $fd "test:$name:$enabled:$mode" } close $fd return 1 } # load up the test list, and set all default values. proc \ sct_init_tests {} \ { global mainscreen_db sct_config_db set db "" set list [list test test cpu "CPU" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test disk "Disk" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test network "Network" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test memory "Memory" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test cdrom "CD/DVD" "Required" "CD or DVD with at least 300 Mb of data on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test floppy "Floppy" "Required" "Formatted Floppy with no bad spots" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test graphics "Graphics" "Optional" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test usbflash "USB Flash Mem" "Optional" "USB Flash Memory - with test pattern on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set mainscreen_db $db # init config data set sct_config_db "{36 hr} unknown.sco.com ftp ftp@unknown.com [sct_localgraphics] 0 0 0 100 auto auto 0" } # # get the ostype, known types are OS_OSR5, OS_OSR6, OS_UNIWARE7 # proc \ sct_ostype {} \ { global BINPATH set ostype [exec $BINPATH/ostype] return $ostype } # # get the version of the os # proc \ sct_osversion {} \ { global BINPATH set osversion [exec $BINPATH/ostype -v] return $osversion } # # given an ostype, produce a user readable form # proc \ sct_display_ostype { ostype } \ { case $ostype { OS_OSR5 { set osdisplay "Open Server 5" } OS_OSR6 { set osdisplay "Open Server 6" } OS_UNIXWARE7 { set osdisplay "UnixWare 7" } default { set osdisplay "Unknown Operating System" } } return $osdisplay } # # like split but instead of chars the entire string is the delimiter # allows multi-char delimiters. PERL had regular expressions for delimiters. # max is the maximum number of elements to split into # proc \ mysplit { string delimiter max } \ { set list "" set count 1 set len [clength $delimiter] while {$string != ""} { set ndx [string first $delimiter $string] if {$ndx < 0 || $count == $max} { lappend list $string set string "" } else { set str1 [csubstr $string 0 $ndx] lappend list $str1 set ndx [expr $ndx + $len] set string [csubstr $string $ndx 9999] } set count [expr $count + 1] } return $list } # # convert internal mode to display version # proc \ sct_mode_external { mode } \ { if {"$mode" == "Hard"} { set display_mode "Max-Stress Mode" } else { set display_mode "Certification Mode" } } # # convert external display mode to internal name # proc \ sct_mode_internal { mode } \ { if {"$mode" == "Max-Stress Mode"} { set internal_mode "Hard" } else { set internal_mode "Gentle" } } # # detect if we are in graphics mode and local # proc \ sct_localgraphics {} \ { global env # get DISPLAY from environment set list [array names env] if {[lsearch $list DISPLAY] == -1} { return 0 } set display $env(DISPLAY) set tokens [split $display ":"] set displayname [lindex $tokens 0] set hostname [exec hostname -s] if {$hostname == $displayname} { return 1 } return 0 } # # fixup our path so exec works. # we have a minimum set of path requirements. # this was provoked by /sbin and /usr/sbin being missing when # you log into X on legend., which broke hardware inquiries (hw command failed). # proc \ sct_fixpath {} \ { global env set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set minpath "/bin:/etc:/usr/bin:/tcb/bin" } if {$ostype == "OS_UNIXWARE7"} { set minpath "/sbin:/usr/sbin:/etc:/usr/bin:/usr/ccs/bin" } if {$ostype == "OS_OSR6"} { set minpath "/bin:/usr/bin:/tcb/bin:/sbin:/usr/sbin:/etc" } # make sure all required components are in the real path set envlist [split $env(PATH) ":"] set minlist [split $minpath ":"] foreach required $minlist { if {[lsearch $envlist $required] < 0} { lappend envlist $required } } set newpath [join $envlist ":"] set env(PATH) $newpath } # given a global variable name in a variable, get the value of it. proc\ ind { varname } \ { global $varname set iname "\$\{$varname\}" [eval return $iname] } # time conversion routines from my internal format "xx hr xx min xx sec" to secs proc \ sct_time_to_secs { timestr } \ { global sct_run_indefinite_time if {$timestr == "Indefinite"} { return $sct_run_indefinite_time } set list [split $timestr " "] # now we have pairs set len [llength $list] set secs 0 for {set i 0} {$i < $len} {set i [expr $i + 2]} { set str [lindex $list $i] set specndx [expr $i + 1] set specstr [lindex $list $specndx] if {$specstr == "hr"} { set secs [expr $secs + ( $str * 3600 ) ] } if {$specstr == "min"} { set secs [expr $secs + ( $str * 60 ) ] } if {$specstr == "sec"} { set secs [expr $secs + $str ] } } return $secs } # time conversion from seconds to my internal format "xx hr xx min". proc \ sct_secs_to_time { secs } \ { set remain $secs set hours [expr $remain / 3600] set remain [expr $remain % 3600] set mins [expr $remain / 60] set remain [expr $remain % 60] set secs $remain if {$hours} { set str "$hours hr $mins min $secs sec" } elseif {$mins} { set str "$mins min $secs sec" } else { set str "$secs sec" } return $str } # chwpobject.tcl # # The back-end object manager for the chwp program. # # # API is as follows: # # external routines # chwp_db_read - read the saved chwp data. Makes default file as needed. # chwp_db_write - writes modified chwp data back out - can be called as needed. # # chwp_db_container_expand(index) - mark a container as open or closed. # # chwp_db_attr_get_def(name) - get the object definition for editting. # chwp_db_attr_set(index, value) - updates the two internal views with the # new value for the attribute. index is relative to the onscreen view. # # chwp_db_version - get the database version. # chwp_db_cert_valid - get status of whether required fields are filled in. # # chwp_db_delete - delete the given container by backlink index # chwp_db_add_list - get list of valid containers to add # chwp_db_add - add the new container type to end of list # # chwp_db_def_dump - dump the object definition for comparison to CHWP website. # # internal routines (incomplete list): # chwp_dbi_make_mainscreen_db - make a new view from the internal database. # # chwp_dbi_read_def - read the definition file, validates object contents. # chwp_dbi_check_def - validate the object structure after the read. # chwp_dbi_read_data - read the data file - return error if fail. # chwp_dbi_make_data - make a default data file if read fails. # chwp_dbi_reconcile_dbs - reconcile the data file with the object definition. # # data structures maintained by these routeins: # chwp_db_def - the object definition from the definition file. # Just a list of objects, each object is a pair of items, # the key and value taken directory from the def file. # chwp_db_data - the user modified list of objects and values, # fully expanded even if values aren't defined. # mainscreen_db - the viewable portion of chwp_object_db # # db_data/mainscreen_db entry index definitions # object class: set MS(class) 0 # internal attribute/object name: set MS(name) 1 # indentation level for display: set MS(level) 2 # valid activate actions (edit/expand/del): set MS(action) 3 # containers only, if they are expanded or not.: set MS(open) 4 # attributes only, hardware hintkey and required for certification set MS(hintkey) 5 set MS(required) 6 # the description (for an attribute DisplayName). set MS(description) 7 # normally this is value entered by the user. # but for a container it is special: # contains the name of AttributeName in chwp_db_def # contains the value of AttributeName in mainscreen_db and chwp_db_data set MS(value) 8 # only in mainscreen_db, index of the db_data item it came from. set MS(backlink) 9 # list of attributes that can have multiple values set chwp_multiple [list {MustContain {}} {MayContain {}} {Attributes {}} {DisplayValues {}}] # path to chwp definition file. set chwp_db_def_file "$RESPATH/chwp.def" # # Begin chwp_db external routines # # # parse and read the definition file and the user data file. # create the default data file if not present. # if the data file version does not match the definition version, # do reconciliation. # returns if it is a new configuration or not. # proc \ chwp_db_read {} \ { global chwp_db_def global chwp_db_data mainscreen_db # phase one, read the definition file. chwp_dbi_read_def chwp_dbi_check_def # read the data file set new 0 if {[chwp_dbi_read_data] == 0} { chwp_dbi_make_data 0 set new 1 } # always reconcile for now if {[chwp_dbi_reconcile_dbs]} { echo "Updated to new chwp.def file" set new 2 } chwp_dbi_make_mainscreen_db return $new } # # save our data file # proc \ chwp_db_write {} \ { global chwp_db_data chwp_db_data_file MS global chwp_db_data_file_version if {[catch {open $chwp_db_data_file w} fd] == 0} { puts $fd "Version:$chwp_db_data_file_version:" foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set level [lindex $entry $MS(level)] set object [chwp_db_attr_get_def $name] set dtype "" keylget object "DisplayType" dtype if {$dtype == "TextMultiline"} { if {$level} { set prefix "\n\t\t" } else { set prefix "\n\t" } set list [split $value "\n"] set value [join $list $prefix] } set line "$class:$name:$value" if {$level} { set line "\t$line" } puts $fd $line } close $fd } } # # expand or contract the given container, index is relative to mainscreen_db # proc \ chwp_db_container_expand { index } \ { global chwp_db_data mainscreen_db MS # get the mainscreen object set object [lindex $mainscreen_db $index] set backlink [lindex $object $MS(backlink)] set entry [lindex $chwp_db_data $backlink] # change expanded state set open [lindex $entry $MS(open)] if {$open == "open"} { set open closed } else { set open open } # update the entry set entry [lreplace $entry $MS(open) $MS(open) $open] # update the data entry set chwp_db_data [lreplace $chwp_db_data $backlink $backlink $entry] chwp_dbi_make_mainscreen_db } # # given the attribute name, fetch the definition object # proc \ chwp_db_attr_get_def { name } \ { global chwp_db_def foreach entry $chwp_db_def { set tname [keylget entry ObjectName] if {$tname == $name} { return $entry } } echo "fatal error: definition for $name not found" exit 1 } # # Update both mainscreen_db and the data view with a changed object. # index is relative to mainscreen_db # proc \ chwp_db_attr_set { index entry } \ { global chwp_db_data mainscreen_db MS # get the mainscreen object set object [lindex $mainscreen_db $index] set backlink [lindex $object $MS(backlink)] # update the data entry set chwp_db_data [lreplace $chwp_db_data $backlink $backlink $entry] chwp_dbi_make_mainscreen_db } # # get the database version # proc \ chwp_db_version { } \ { global chwp_db_def_file_version chwp_db_data_file_version return $chwp_db_def_file_version } # # check if required fields are filled in for certification # proc \ chwp_db_cert_valid { passthru } \ { global chwp_db_data MS if {$passthru != "passthru" && $passthru != "nopassthru"} { echo Internal error chwp_db_cert_valid bad argument exit 1 } set valid 1 foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set required [lindex $entry $MS(required)] if {$name == "PassThruNumber"} { if {$passthru == "nopassthru"} { continue } } elseif {$required == ""} { continue } if {[chwp_required_attribute_valid $value]} { continue } set valid 0 break } return $valid } proc \ chwp_required_attribute_valid { value } \ { if {$value != "" && $value != "None" && $value != "Unknown"} { return 1 } return 0 } # # delete a given container, rebuild mainscreen db # proc \ chwp_db_delete { index } \ { global chwp_db_data MS # delete the container node down to the next container node or the end set start [expr $index + 1] set length [llength $chwp_db_data] for {set i $start} {$i < $length} {set i [expr $i + 1]} { set list [lindex $chwp_db_data $i] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] if {$class == "Container"} { break } } set i [expr $i - 1] set chwp_db_data [lreplace $chwp_db_data $index $i] chwp_dbi_make_mainscreen_db } # # enumerate the valid list of containers to add # proc \ chwp_db_add_list {} \ { global chwp_dbi_rootmay set list "" foreach name $chwp_dbi_rootmay { set object [chwp_dbi_def_find_object Container $name] set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] lappend list $description } return $list } # # add a new given container type, rebuild mainscreen db # proc \ chwp_db_add { tname } \ { global chwp_db_data rec_attributes MS global chwp_dbi_rootmay # translate display name to internal name foreach name $chwp_dbi_rootmay { set object [chwp_dbi_def_find_object Container $name] set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] if {$tname == $description} { set type $name } } set entry [chwp_dbi_make_new_container $type] lappend chwp_db_data $entry set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend chwp_db_data $entry } chwp_dbi_make_mainscreen_db } # # dump the object definitions for comparison with the CHWP website # fileter out the "None" values for various fields because those are # internal values to detect if a required field is filled in or not. # proc \ chwp_db_def_dump {} \ { global chwp_db_data chwp_data_def MS # first make a new list with all objects instantiated chwp_dbi_make_data 1 # now dump them and their complete attribute list set first 0 foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] # get object definition set object [chwp_dbi_def_find_object $class $name] set object [lindex $object 0] set description [keylget object DisplayName] if {$class == "Container"} { if {$first} { echo } else { set first 1 } echo $description } else { # name, type, value list if not text set required "" set ret [keylget object Required required] if {$required != ""} { set required Required } else { set required Optional } set type [keylget object DisplayType] if {[csubstr $type 0 4] != "Text"} { set values [keylget object DisplayValues] # remove "None" if present. # set ndx [lsearch $values None] # if {$ndx >= 0} { # set values [lreplace $values $ndx $ndx] # } echo "\t$description $required $type $values" } else { echo "\t$description $required $type" } } } } # # Begin chwp_dbi internal routines # proc \ chwp_dbi_read_def {} \ { global chwp_db_def chwp_db_def_file chwp_db_def_file_version # open and parse the definition file into our main structure. if {[catch {open $chwp_db_def_file r} fd] != 0} { echo "Unable to open $chwp_db_def_file" exit 1 } set linenum 0 set chwp_db_def "" set object "" set attribute "" gets $fd line2 while {1} { set linenum [expr $linenum + 1] # one line behind set line $line2 # the lookahead line for blank lines and continuation lines if {[gets $fd line2] == -1} { if {$line == ""} { break } set line2 "" # fake a blank line if eof } set c [cindex $line 0] if {$c == "#"} { continue } if {$line != ""} { # check if continuation line if {[ctype space $c]} { set line [string trim $line "\t "] set attribute [concat $attribute $line] } else { set attribute $line } # if next line continuation go get it set c [cindex $line2 0] if {[ctype space $c]} { continue } } if {$attribute != ""} { # save new attribute line # verify that braces match, lrange bombs if not if {[catch {lrange $line 0 99}] != 0} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo "Mismatched curly braces" echo "$linenum:$line" exit 1 } # have a completed attribute set key [lindex $attribute 0] set val [lrange $attribute 1 999] # strip ':' set ndx [clength $key] set ndx [expr $ndx - 1] if {[cindex $key $ndx] != ":"} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo Missing key/colon: echo $linenum:$line exit 1 } set key [csubstr $key 0 $ndx] if {"$key" == ""} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo "Null key before the colon:" echo $linenum:$line exit 1 } set attribute "" # special case for version line, not part # of the object structure if {$key == "Version"} { set chwp_db_def_file_version $val continue } keylset object $key $val } if {$object == ""} { continue; } if {$line != ""} { continue } # end of a valid object, got a blank line # validate our known object types if {[keylget object "ObjectName" name] == 0} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing attribute ObjectName for object ending on line $linenum" exit 1 } if {[keylget object "ObjectType" type] == 0} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing attribute ObjectType for object ending on line $linenum" exit 1 } # validate each object type set optional "" if {$type == "RootContainer"} { set required [list ObjectName ObjectType MustContain Attributes MayContain] } elseif {$type == "Container"} { set required [list ObjectName ObjectType DisplayName Attributes MultipleObjects AttributeName] } elseif {$type == "Attribute"} { set required [list ObjectName ObjectType DisplayName DisplayType] set optional [list HintKey ReadOnly Required] keylget object "DisplayType" dtype case $dtype { SingleSelect { lappend required DisplayValues DisplayDefault } MultiSelect { lappend required DisplayValues } Text { lappend optional DisplayDefault } TextMultiline { lappend optional DisplayDefault } default { echo "$chwp_db_def_file: Error line $linenum:" echo "Bad attribute DisplayType for object ending on line $linenum" exit 1 } } if {[keylget object "Required" mtype]} { if {$mtype != "Yes"} { echo "Bad value for Required for object ending on line $linenum, only Yes value is allowed" exit 1 } } } else { echo "$chwp_db_def_file: Error line $linenum:" echo "Bad ObjectType: $type for object ending on line $linenum" exit 1 } chwp_dbi_validate_object_def $object $chwp_db_def_file $linenum $required $optional lappend chwp_db_def $object set object "" } close $fd # if any remnants then a trailing newline was missing. if {$object != ""} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing Newline at end of last object" exit 1 } if {$attribute != ""} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing Newline at end of last object" exit 1 } } # # routine to verify an object definition contains what we think it should # proc \ chwp_dbi_validate_object_def { object file linenum required optional } \ { global chwp_multiple set all [concat $required $optional] set keys [keylget object] # first make sure all attributes in the object are valid foreach i $keys { set found 0 foreach j $all { if {$i == $j} { set found 1 break } } if {$found} { set attribute [keylget object $i] # attributes cannot have colons or commas in them if {[lsearch $attribute "*\[,:\]*"] >= 0} { echo "$file: Error" echo "Bad attribute $i has colon or comma near line $linenum" } # verify the number of items is correct # one is always ok if {[llength $attribute] == 1} { continue } # only a few can have multiple values if {[keylget chwp_multiple $i ret] == 0} { echo "$file: Error" echo "Bad attribute $i has zero or multiple values near line $linenum" } continue } echo "$file: Error" echo "Bad attribute $i for object ending on line $linenum" exit 1 } # make sure all required ones are there. foreach i $required { set found 0 foreach j $keys { if {$i == $j} { set found 1 break } } if {$found} { continue } echo "$file: Error" echo "Missing attribute $i for object ending on line $linenum" exit 1 } } # # check the structure of the object definitions that have been read in # We check for hanging (uncontained objects), and that all # contained attributes are present. # the way we do this is to open the root container, find # all the rest of the containers, and build a container list. # We build an attribute list of all valid (contained attributes) and # check them in several passes, # 1) Check that no duplicate names exist (both attributes and containers). # 2) scan through all attributes and containers # and verify that they are contained properly. # 3) scan through container and attribute lists and validate # that they all exist. # proc \ chwp_dbi_check_def {} \ { global chwp_db_def chwp_db_def_file global chwp_dbi_rootmust chwp_dbi_rootmay # structural checking # find root container, make sure exactly one. set object [chwp_dbi_def_find_object RootContainer Root] if {[llength $object] != "1"} { echo "$chwp_db_def_file: Error: missing or multiple root containers" exit 1 } # save the list of all containers for later set object [lindex $object 0] set chwp_dbi_rootmust [keylget object MustContain] set chwp_dbi_rootmay [keylget object MayContain] # include Root because it has attributes too set containers [concat Root $chwp_dbi_rootmust $chwp_dbi_rootmay] # now for the attributes # pass 1 # have the bare bones structure, now check that no duplicate names # exist. Just go through and query on every name and count them. # brute force and inefficient, but modern computers got HP. foreach i $chwp_db_def { set name [keylget i ObjectName] set object [chwp_dbi_def_find_object "" $name] if {[llength $object] != "1"} { echo "$chwp_db_def_file: Error: multiple objects named: $name" exit 1 } } # pass 2 verify that every attribute is found in a container somewhere. # get each container's attribute list, we have the list already. set attributes "" foreach container $containers { set object [chwp_dbi_def_find_object "" $container] set object [lindex $object 0] set attributes [concat $attributes [keylget object Attributes]] } set kattributes "" foreach attribute $attributes { keylset kattributes $attribute "1" } foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$type != "Attribute"} { continue; } # search to see it is contained if {[keylget kattributes $name ret] == 0} { echo "$chwp_db_def_file: Error: Attribute $name is not contained in a container" exit 1 } } # pass 3, scan to see that each named attribute in containes # actually exists as an object. foreach attribute $attributes { set object [chwp_dbi_def_find_object "" $attribute] if {[llength $object] != 1} { echo "$chwp_db_def_file: Error: Referenced attribute does not exist: $attribute" exit 1 } } # scan the containers two passes. # verify referenced containers exist. foreach container $containers { set object [chwp_dbi_def_find_object "" $container] if {[llength $object] != 1} { echo "$chwp_db_def_file: Error: Referenced container does not exist: $container" exit 1 } } # verify that each container is referenced set kcontainers "" foreach container $containers { keylset kcontainers $container "1" } foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$type != "Container"} { continue; } # search to see it is contained if {[keylget kcontainers $name ret] == 0} { echo "$chwp_db_def_file: Error: Container $name is not referenced in the root container" exit 1 } } } # # find objects either by type or name or both # all matching objects are returned # proc \ chwp_dbi_def_find_object { want_type want_name } \ { global chwp_db_def set found "" foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$want_type != ""} { if {$type != $want_type} { continue } } if {$want_name != ""} { if {$name != $want_name} { continue } } lappend found $object } return $found } proc \ chwp_dbi_read_data {} \ { global chwp_db_def MS global chwp_db_data chwp_db_data_file chwp_db_data_file_version # open and parse the data file into our main structure. if {[catch {open $chwp_db_data_file r} fd] != 0} { return 0 } set linenum 0 set chwp_db_data "" set object "" set attribute "" set chwp_db_data_file_version "Unknown" while {[gets $fd line] != -1} { set linenum [expr $linenum + 1] set level 0 if {[cindex $line 0] == "\t"} { set level 1 set line [csubstr $line 1 -1] } set list [mysplit $line ":" 3] set class [lindex $list 0] set name [lindex $list 1] # value is a comma seperated list set value [lindex $list 2] # special case for Version if {$class == "Version"} { set chwp_db_data_file_version $name continue } # validate class case $class { Attribute { set err 0 } Container { set err 0 } default { set err 1 } } if {$err} { echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid class: $class" set err 1 continue } # fetch the display name from the def file set object [chwp_dbi_def_find_object $class $name] if {$object == ""} { # object not found echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid name: $name" set err 1 continue } set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] set readonly "" set ret [keylget object ReadOnly readonly] set hintkey "" set ret [keylget object HintKey hintkey] set required "" set ret [keylget object Required required] if {"$required" != ""} { set required "required" } set oa [chwp_dbi_set_action $class $name $readonly] set open [lindex $oa 0] set action [lindex $oa 1] set entry [list $class $name $level $action $open $hintkey $required $description $value] # validate the value if {$class != "Attribute"} { lappend chwp_db_data $entry continue } set type [keylget object DisplayType] case $type { MultiSelect { # zero, one, or many may be set set vals [keylget object DisplayValues] } SingleSelect { # exactly one must be set set vals [keylget object DisplayValues] } Text { # anything goes set vals "" } TextMultiline { # scan ahead and get the whole thing if {$level} { set tlen 2 set tstr "\t\t" } else { set tlen 1 set tstr "\t" } set last [tell $fd] while {[gets $fd line] != -1} { if {[csubstr $line 0 $tlen] != $tstr} { seek $fd $last break } set new [csubstr $line $tlen 9999] set value "$value\n$new" set last [tell $fd] set linenum [expr $linenum + 1] } set entry [lreplace $entry $MS(value) $MS(value) $value] set vals "" } } if {$vals != ""} { # Now compare the values with the good list. set values [mysplit $value ", " 999] set err 0 foreach val1 $values { set found 0 foreach val2 $vals { if {$val1 == $val2} { set found 1 break } } if {$found == 0} { echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid value: $val1" set err 1 break } } } lappend chwp_db_data $entry } close $fd return 1 } # # make the data structure from the def structure. # all is whether all containers are enumerated # or if false only the required containers are enumerated. # all possible attributes are enumerated in order # for each container. # containers get an entry including their closed/open status. # we mirror mainscreen_db with this list. # onscreen order is driven by the def structure. # proc \ chwp_dbi_make_data { all } \ { global chwp_db_def chwp_db_data rec_attributes global chwp_db_data_file_version chwp_db_def_file_version global chwp_dbi_rootmust chwp_dbi_rootmay set chwp_db_data "" set chwp_db_data_file_version $chwp_db_def_file_version if {$all} { set containers [concat $chwp_dbi_rootmust $chwp_dbi_rootmay] } else { set containers $chwp_dbi_rootmust } # get root object set object [chwp_dbi_def_find_object RootContainer Root] set object [lindex $object 0] set topattributes [keylget object Attributes] # first do any attributes in the top level list foreach attribute $topattributes { set entry [chwp_dbi_make_new_attribute $attribute 0] lappend chwp_db_data $entry } # two loops, # outer one the container list # inner one the attributes for that container. foreach container $containers { # get attribute list for this container name set entry [chwp_dbi_make_new_container $container] lappend chwp_db_data $entry set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend chwp_db_data $entry } } } # # given an attribute name, make its entry for db_data # proc \ chwp_dbi_make_new_attribute { attribute level } \ { set object [chwp_dbi_def_find_object Attribute $attribute] set object [lindex $object 0] set name [keylget object DisplayName] set name [string trim $name "{}"] set value "" set ret [keylget object DisplayDefault value] set readonly "" set ret [keylget object ReadOnly readonly] set action [chwp_dbi_set_action Attribute $name $readonly] set hintkey "" set ret [keylget object HintKey hintkey] set required "" set ret [keylget object Required required] if {$required != ""} { set required "required" } set entry [list Attribute $attribute $level $action "" $hintkey $required $name $value] return $entry } # # rules for building the action list for an attribute or a container # proc \ chwp_dbi_set_action { class name readonly } \ { global chwp_dbi_rootmust chwp_dbi_rootmay if {$class == "Attribute"} { set action "" set open "" if {$readonly != "Yes"} { set action edit } } else { set open closed if {[lsearch $chwp_dbi_rootmust $name] >= 0} { set action expand } else { set action [list expand delete] } } return [list $open $action] } # # given a container name, make its entry for the db_data # proc \ chwp_dbi_make_new_container { container } \ { global rec_attributes set object [chwp_dbi_def_find_object Container $container] set object [lindex $object 0] set rec_attributes [keylget object Attributes] set name [keylget object DisplayName] set name [string trim $name "{}"] # get the attribute name set attributename [keylget object AttributeName] # create container entry set hintkey "" set required "" set readonly "" set class Container set ret [keylget object ReadOnly readonly] set oa [chwp_dbi_set_action $class $container $readonly] set open [lindex $oa 0] set action [lindex $oa 1] set entry [list Container $container 0 $action $open $hintkey $required $name $attributename] return $entry } # # reconcile a new def file with an existing data file # reconcile affects the attributes and the order of those attributes. # all we have to do is check for attributes appearing and disappearing. # everything else is checked for already. # proc \ chwp_dbi_reconcile_dbs {} \ { global chwp_db_def chwp_db_data MS chwp_db_data_file global chwp_db_def_file_version chwp_db_data_file_version global rec_attributes # get the def version set version_def $chwp_db_def_file_version # get the data version set version_data $chwp_db_data_file_version # Here we reconcile. # first extract the objects we read in. # this is an oddly structured list intended to make searching easier # one list item per container, and that item contains the container # and all its attributes set oldobjects "" set list "" foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] if {$class == "Container"} { lappend oldobjects $list set list "" } lappend list $entry } if {$list != ""} { lappend oldobjects $list } # now scan through the new objects and extract as needed # special case for the root attributes if any. set rootdef [chwp_dbi_def_find_object RootContainer Root] set rootdef [lindex $rootdef 0] set rootattributes [keylget rootdef Attributes] set must [keylget rootdef MustContain] set may [keylget rootdef MayContain] set rootcontainers [concat $must $may] # the new data list set newlist "" foreach attribute $rootattributes { set object [chwp_dbi_rec_root_srch $oldobjects $attribute] # keep it if found if {$object != ""} { lappend newlist $object continue } # otherwise make a new one set entry [chwp_dbi_make_new_attribute $attribute 0] lappend newlist $entry } # now do all of each container type foreach containertype $rootcontainers { set match [chwp_dbi_rec_container_srch $oldobjects $containertype] if {$match == "" && [lsearch $must $containertype] >= 0} { # missing required container lappend newlist [chwp_dbi_make_new_container $containertype] set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend newlist $entry } } if {$match == ""} { continue } lappend newlist [chwp_dbi_make_new_container $containertype] # fetch the definition set containerdef [chwp_dbi_def_find_object Container $containertype] set containerdef [lindex $containerdef 0] set attributes [keylget containerdef Attributes] foreach container $match { # have a single container and its attributes foreach attribute $attributes { set newattr [chwp_dbi_rec_container_attribute_srch $container $attribute] if {$newattr != ""} { lappend newlist $newattr } else { lappend newlist [chwp_dbi_make_new_attribute $attribute 1] } } } } if {$newlist != $chwp_db_data} { set chwp_db_data $newlist return 1 } if {$version_def != $version_data} { return 1 } return 0 } # search the root attributes for the given attribute type. proc \ chwp_dbi_rec_root_srch { oldobjects attribute } \ { global MS set attributes [lindex $oldobjects 0] set firstentry [lindex $attributes 0] set class [lindex $firstentry $MS(class)] if {$class != "Attribute"} { return "" } foreach entry $attributes { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$name == $attribute} { return $entry } } return "" } # search for all containers matching the given type proc \ chwp_dbi_rec_container_srch { oldobjects containertype } \ { global MS set newlist "" foreach object $oldobjects { set firstentry [lindex $object 0] set class [lindex $firstentry $MS(class)] set name [lindex $firstentry $MS(name)] if {$class != "Container"} { continue } if {$name != $containertype} { continue } lappend newlist $object } return $newlist } # given a container and its attributes find the given attribute proc \ chwp_dbi_rec_container_attribute_srch { containerobject attribute } \ { global MS set newlist "" foreach entry $containerobject { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$class != "Attribute"} { continue } if {$name != $attribute} { continue } set newlist $entry break } return $newlist } # # build the mainscreen display database from the internal database # we filter out closed items and fill in container names # proc \ chwp_dbi_make_mainscreen_db {} \ { global chwp_db_def chwp_db_data MS mainscreen_db set mainscreen_db "" # assume one level of hierarchy set open open set index -1 set end [llength $chwp_db_data] foreach entry $chwp_db_data { set index [expr $index + 1] lappend entry $index set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$class == "Attribute"} { if {$open == "open"} { lappend mainscreen_db $entry } continue } # have a container, extract its open state. set open [lindex $entry $MS(open)] # find the name attribute, get this from the object definition. set entrydef [chwp_dbi_def_find_object $class $name] set entrydef [lindex $entrydef 0] set sname [keylget entrydef AttributeName] # now find the value of it set found 0 set start [expr $index + 1] for {set ndx $start} {$ndx < $end} {set ndx [expr $ndx + 1]} { set object [lindex $chwp_db_data $ndx] set tname [lindex $object $MS(name)] if {$tname == $sname} { set value [lindex $object $MS(value)] set entry [lreplace $entry $MS(value) $MS(value) $value] set found 1 break } } if {$found == "0"} { error "Internal error, $sname object not found" } # add the entry to the mainscreen lappend mainscreen_db $entry } } # # The hardware detection stuff is here. # # # the high level auto-detect routine # # it returns a multiline text string suitable for display to the user # about the results of the auto-detection # generally two types of detections occur: # 1 - a field is filled in for you - we call this an authoritative hint. # 2 - some information is available but the user needs to choose # from several possible values to fill in a field. # this is called an advisory hint. # the text string describes each of these things in detail. # # argument determines whether the string will include the # hint items that failed to produce any hints # proc \ chwp_hw_autodetect { nohints } \ { global chwp_db_def chwp_db_data MS # # need to go through each field and do the detection # # path has to be right for this stuff sct_fixpath # the authoritative hints set hinta "" # the advisory hints set hintb "" # items that have no hints set hintc "" set index -1 foreach entry $chwp_db_data { set index [expr $index + 1] set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set description [lindex $entry $MS(description)] set hintkey [lindex $entry $MS(hintkey)] set object [chwp_db_attr_get_def $name] if {$hintkey == ""} { continue } set list [chwp_hw_get_hint $hintkey] # list returned is {authoritative value} # non-authoritative are multiline strings if {$list == ""} { set tmp "$description: no hint" set hintc "$hintc$tmp\n" continue } set auth [lindex $list 0] set value [lindex $list 1] if {$auth} { # set the field set entry [lreplace $entry $MS(value) $MS(value) $value] set chwp_db_data [lreplace $chwp_db_data $index $index $entry] set tmp "$description: $value" set hinta "$hinta$tmp\n" } else { set tmp "$description: hints available" set hintb "$hintb$tmp\n" } } set tmpa "The following items have been auto-detected:" set tmpb "The following items have hints available but need manual intervention:" set hints "$tmpa\n\n$hinta\n$tmpb\n\n$hintb" if {$nohints && $hintc != ""} { set tmpc "The following items have no hints on this platform" set hints "$hints\n$tmpc\n\n$hintc" } return $hints } proc \ chwp_hw_get_hint { hintkey } \ { case $hintkey { CPUSpeed { set list [chwp_hw_clockspeed] } CPUManufacturer { set list [chwp_hw_cpumanufacturer] } CPUCount { set list [chwp_hw_cpucount] } CPUType { set list [chwp_hw_cputype] } Memsize { set list [chwp_hw_memsize] } MainBiosString { set list [chwp_hw_mainbiosstring] } default { echo Internal error, hintkey $hintkey invalid exit 1 } } return $list } proc \ chwp_hw_clockspeed {} \ { # get output of hw set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set lines [exec hw cpu] set list [split $lines "\n"] foreach line $list { set ndx [string first performs $line] if {$ndx < 0} { continue } set line [string trim $line " "] set tokens [split $line " "] set cpuspeed [lindex $tokens 5] if {[string first "Mhz" $cpuspeed] > 0} { set ret [list "1" $cpuspeed] return $ret } break } } if {$ostype == "OS_UNIXWARE7"} { set lines [exec uname -X] set list [split $lines "\n"] foreach line $list { if {[csubstr $line 0 10] != "Machine = "} { continue } set hint $line set ret [list "0" $hint] return $ret } } if {$ostype == "OS_OSR6"} { set lines [exec hw -r cpu] set list [split $lines "\n"] foreach line $list { set ndx [string first speed $line] if {$ndx < 0} { continue } set line [string trim $line " "] set tokens [split $line " "] set cpuspeed [lindex $tokens 7] if {[string first "Mhz" $cpuspeed] > 0} { set ret [list "1" $cpuspeed] return $ret } break } } } proc \ chwp_hw_cpumanufacturer {} \ { # get output of hw set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set lines [exec hw cpu] set list [split $lines "\n"] foreach line $list { set ndx [string first performs $line] if {$ndx < 0} { continue } set line [string trim $line " "] set tokens [mysplit $line " " 7] set cpustr [lindex $tokens 6] set cputype "" # one of Intel AMI AMD Cyrix if {[string first "Intel" $cpustr] >= 0} { set cputype "Intel" } if {[string first "AMD" $cpustr] >= 0} { set cputype "AMD" } if {[string first "AMI" $cpustr] >= 0} { set cputype "AMI" } if {[string first "Cyrix" $cpustr] >= 0} { set cputype "Cyrix" } if {$cputype != ""} { set ret [list "1" $cputype] return $ret } break } } if {$ostype == "OS_UNIXWARE7" || $ostype == "OS_OSR6"} { set lines [exec uname -X] set list [split $lines "\n"] foreach line $list { if {[csubstr $line 0 10] != "Machine = "} { continue } set hint $line set ret [list "0" $hint] return $ret } } } proc \ chwp_hw_cpucount {} \ { # get output of hw set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set lines [exec hw cpu] set list [split $lines "\n"] set cpucount 0 foreach line $list { set line [string trim $line " "] set ndx [string first "There is one CPU on this system" $line] if {$ndx >= 0} { set ret [list "1" "1"] return $ret } set ndx [string first "Physical CPU:" $line] if {$ndx >= 0} { set tmp [split $line ":"] set cpu [lindex $tmp 1] set cpu [string trim $cpu " "] if {$cpu > $cpucount} { set cpucount $cpu } } } if {$cpucount > 0} { set ret [list "1" "$cpucount"] return $ret } } if {$ostype == "OS_UNIXWARE7" || $ostype == "OS_OSR6"} { set lines [exec psrinfo] set list [split $lines "\n"] set cpucount 0 foreach line $list { set cpucount [expr $cpucount + 1] } if {$cpucount > 0} { set ret [list "1" "$cpucount"] return $ret } } } proc \ chwp_hw_cputype {} \ { # get output of hw set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set lines [exec hw cpu] set list [split $lines "\n"] foreach line $list { set ndx [string first performs $line] if {$ndx < 0} { continue } # set line [string trim $line " "] # set tokens [mysplit $line " " 7] # set cpustr [lindex $tokens 6] set ret [list "0" $line] return $ret } } if {$ostype == "OS_UNIXWARE7" || $ostype == "OS_OSR6"} { set lines [exec uname -X] set list [split $lines "\n"] foreach line $list { if {[csubstr $line 0 10] != "Machine = "} { continue } set hint $line set ret [list "0" $hint] return $ret } } } proc \ chwp_hw_memsize {} \ { # get output of hw set ostype [sct_ostype] set line [exec "memsize"] set line [string trim $line " "] set tokens [split $line " "] set memsize [lindex $tokens 0] set kb [expr $memsize / 1024] set mb [expr $kb / 1024] set list [list "1" "$mb Mb"] return $list } proc \ chwp_hw_mainbiosstring {} \ { # get output of hw set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set lines [exec hw -v ROM] set list [split $lines "\n"] set start 0 set ret "" foreach line $list { if {$start == 0} { set ndx [string first "System BIOS ROM" $line] if {$ndx >= 0} { set start 1 } continue } if {$start == 1} { set ndx [string first "Messages found in the BIOS ROM:" $line] if {$ndx >= 0} { set start 2 } else { continue } } # these are BIOS strings set line [string trim $line] if {$line == ""} { break } set ret "$ret$line\n" } if {$ret != ""} { set ret [list "0" $ret] return $ret } } if {$ostype == "OS_OSR6"} { set lines [exec hw -v -r ROM] set list [split $lines "\n"] set start 0 set ret "" foreach line $list { if {$start == 0} { set ndx [string first "System BIOS ROM" $line] if {$ndx >= 0} { set start 1 } continue } if {$start == 1} { set ndx [string first "Messages found in the BIOS ROM:" $line] if {$ndx >= 0} { set start 2 } else { continue } } # these are BIOS strings set line [string trim $line] if {$line == ""} { break } set ret "$ret$line\n" } if {$ret != ""} { set ret [list "0" $ret] return $ret } } } #!/bin/osavtcl # only if on Unixware, there is a way to check for this somehow. #loadlibindex /usr/lib/sysadm.tlib # globals set ME "[pwd]/chwp" set IC(folder_closed) 0 set IC(folder_open) 1 set IC(item_middle) 2 set IC(item_last) 3 set IC(item_hbar) 4 set IC(item_blank) 5 set IC(item_requiredok) 6 set IC(item_requiredbad) 7 set DIRTY 0 proc \ chwp_cmd_line {} \ { global argv if {$argv == ""} { return } if {[lindex $argv 0] == "-autodetect"} { set new [chwp_db_read] set string [chwp_hw_autodetect 1] echo $string } else { echo "usage: chwp \[-autodetect\]" } exit 0 } # # put up an information dialog box with the given callbacks # (ok Ok) # proc \ chwp_query_ok { msg ok } \ { global app set ret [VtInformationDialog $app.ok \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ ] VtShow $ret } # # put up an error dialog box with the given callbacks # (eok Error Ok) # proc \ chwp_query_eok { msg ok } \ { global app set ret [VtErrorDialog $app.eok \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ ] VtShow $ret } # # put up a question dialog box with the given callbacks # (qyn Question Yes No) # proc \ chwp_query_qyn { msg yes no } \ { global app set ret [VtQuestionDialog $app.qyn \ -message $msg \ -ok -okLabel Yes -okCallback $yes \ -cancel -cancelLabel no -cancelCallback $no \ ] VtShow $ret } # # user wants to redetect hardware, probably they want to see the message again. # proc \ chwp_menu_detect_cb { cbs } \ { global DIRTY set DIRTY 1 set string [chwp_hw_autodetect 0] chwp_query_ok $string chwp_nop } # # user elected to save changes unconditionally # proc \ chwp_menu_save_changes_cb { cbs } \ { set ret [chwp_query_qyn "Save Changes?" chwp_really_save_changes chwp_nop] } proc \ chwp_really_save_changes { cbs } \ { global DIRTY set DIRTY 0 chwp_db_write } # nop - no-op - no operation - dummy proc proc \ chwp_nop { cbs } \ { set nop b } proc \ chwp_menu_exit_cb { cbs } \ { global DIRTY if {$DIRTY} { chwp_query_qyn "Save Changes?" \ "chwp_really_save_and_exit save" \ "chwp_really_save_and_exit nosave" \ } else { VtClose exit 0 } } proc \ chwp_really_save_and_exit { code cbs } \ { if {$code == "save"} { chwp_db_write } VtClose exit 0 } proc \ chwp_stand_edit { file } \ { global MS app chwp_dialog_form global combo_values list_values text_value global chwp_stand_object chwp_stand_objectdef global chwp_stand_file set chwp_stand_file $file set fd [open $file r] set arglist [read $fd nonewline] close $fd system "rm -f $file" set chwp_stand_object [lindex $arglist 0] set chwp_stand_objectdef [lindex $arglist 1] set hint [lindex $arglist 2] set object $chwp_stand_object set objectdef $chwp_stand_objectdef set type [keylget objectdef DisplayType] set description [lindex $object $MS(description)] set value [lindex $object $MS(value)] # four types of dialogs, based on object type: # simple text dialog # multiple line text dialog. # combobox (single select, analogous to radio box. # multiple select list (analogous to checkbox) set app [VtOpen chwpchild] set chwp_dialog_form [ \ VtFormDialog $app.edit \ -title "Edit Attribute" \ -ok -okLabel Ok -okCallback chwp_stand_ok \ -cancel -cancelLabel "Cancel" -cancelCallback chwp_stand_quit \ ] set label [VtLabel $chwp_dialog_form.label \ -leftSide FORM -rightSide FORM \ -label "$description:" \ -labelLeft \ ] case $type { Text { set text_value [ \ VtText $chwp_dialog_form.text \ -topSide $label \ -columns 70 \ -value $value \ ] } TextMultiline { set text_value [ \ VtText $chwp_dialog_form.text \ -topSide $label \ -columns 70 \ -value $value \ -rows 12 \ -verticalScrollBar 1 \ ] } SingleSelect { set values [keylget objectdef DisplayValues] set combo_values [ \ VtComboBox $chwp_dialog_form.combo \ -itemList $values \ -readOnly \ -value $value \ -topSide $label \ ] } MultiSelect { set values [keylget objectdef DisplayValues] if {$hint == ""} { set rows 12 } else { set rows 7 } set list_values [ \ VtList $chwp_dialog_form.list \ -leftSide FORM -rightSide FORM -topSide $label \ -columns 70 -rows $rows \ -selection MULTIPLE \ -itemList $values \ ] set valuelist [mysplit $value ", " 999] if {$valuelist != ""} { VtListSelectItem $list_values -itemList $valuelist } } } if {$hint != ""} { set tmp "The following hints are available:" set hint_label [VtLabel $chwp_dialog_form.hint_label \ -leftSide FORM -rightSide FORM \ -label "$tmp" \ -labelLeft \ ] set hint_values [ \ VtText $chwp_dialog_form.hint \ -bottomSide FORM \ -columns 70 \ -rows 5 \ -value $hint \ -readOnly \ -verticalScrollBar 1 \ ] } VtShow $chwp_dialog_form VtMainLoop } proc \ chwp_stand_ok { cbs } \ { global MS app chwp_dialog_form global combo_values list_values text_value global chwp_stand_object chwp_stand_objectdef global chwp_stand_file set object $chwp_stand_object set objectdef $chwp_stand_objectdef set type [keylget objectdef DisplayType] case $type { Text { set value [VtGetValues $text_value -value] } TextMultiline { set value [VtGetValues $text_value -value] } SingleSelect { set value [VtGetValues $combo_values -value] } MultiSelect { set valuelist [VtListGetSelectedItem $list_values -byItemList ] set value [join $valuelist ", "] } } set object [lreplace $object $MS(value) $MS(value) $value] if {[catch {open $chwp_stand_file w} fd] == 0} { puts $fd $object close $fd } VtClose exit 0 } proc \ chwp_stand_quit { cbs } \ { VtClose exit 0 } # special combo box routine, # list in the file is three items: # 1 - title of dialog box # 2 - name of item # 3 - list of valid values for item # passed back is the item selected or an empty file for cancel proc \ chwp_stand_query_combo { file } \ { global MS app chwp_dialog_form global combo_values global chwp_stand_file set chwp_stand_file $file set fd [open $file r] set arglist [read $fd nonewline] close $fd system "rm -f $file" set title [lindex $arglist 0] set description [lindex $arglist 1] set values [lindex $arglist 2] set app [VtOpen chwpchild] set chwp_dialog_form [ \ VtFormDialog $app.edit \ -title "$title" \ -ok -okLabel Ok -okCallback chwp_stand_query_combo_ok \ -cancel -cancelLabel "Cancel" -cancelCallback chwp_stand_quit \ ] set label [VtLabel $chwp_dialog_form.label \ -leftSide FORM -rightSide FORM \ -label "$description:" \ -labelLeft \ ] set value [lindex $values 0] set combo_values [ \ VtComboBox $chwp_dialog_form.combo \ -itemList $values \ -readOnly \ -value $value \ -topSide $label \ ] VtShow $chwp_dialog_form VtMainLoop } proc \ chwp_stand_query_combo_ok { cbs } \ { global MS app chwp_dialog_form global combo_values global chwp_stand_file set value [VtGetValues $combo_values -value] if {[catch {open $chwp_stand_file w} fd] == 0} { puts $fd $value close $fd } VtClose exit 0 } # # enable and disable menu buttons as we go # proc \ chwp_select_cb { cbs } \ { global chwp_main_list mainscreen_db MS global chwp_edit_button chwp_delete_button chwp_add_button set index [VtDrawnListGetSelectedItem $chwp_main_list] if {$index == 0} { chwp_query_eok "Select an item first" chwp_nop return } keylset cbs itemPosition $index set index [expr $index - 1] set list [lindex $mainscreen_db $index] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] set action [lindex $list $MS(action)] if {[lsearch $action edit] < 0} { VtSetValues $chwp_edit_button -sensitive 0 } else { VtSetValues $chwp_edit_button -sensitive 1 } if {[lsearch $action delete] < 0} { VtSetValues $chwp_delete_button -sensitive 0 } else { VtSetValues $chwp_delete_button -sensitive 1 } } # # delete a peripheral # proc \ chwp_delete_cb { cbs } \ { global chwp_main_list mainscreen_db MS DIRTY set index [VtDrawnListGetSelectedItem $chwp_main_list] if {$index == 0} { chwp_query_eok "Select an item first" chwp_nop return } set index [expr $index - 1] set list [lindex $mainscreen_db $index] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] set description [lindex $list $MS(description)] set value [lindex $list $MS(value)] set backlink [lindex $list $MS(backlink)] chwp_db_delete $backlink chwp_display_mainlist set DIRTY 1 } # # add a new peripheral, prompt for type # proc \ chwp_add_cb { cbs } \ { global chwp_main_list mainscreen_db MS DIRTY PID ME # ask which one to add. # call to put up a combo box set file "/tmp/chwp.$PID" system "rm -f $file" set title "Select Peripheral to Add" set description "Peripheral" set values [chwp_db_add_list] set arglist [list $title $description $values] if {[catch {open $file w} fd] != 0} { chwp_query_eok "Unable to write file $file" chwp_nop return } puts $fd $arglist close $fd VtLock VtControl -suspend system "$ME -chwp_stand_query_combo $file" VtControl -resume VtUnLock if {[file exists $file] == 1} { set name [exec cat $file] system "rm -f $file" if {$name != ""} { chwp_db_add $name chwp_display_mainlist set DIRTY 1 } } } # # alternate way to edit an item, using the menu # proc \ chwp_edit_cb { cbs } \ { global chwp_main_list mainscreen_db MS set index [VtDrawnListGetSelectedItem $chwp_main_list] if {$index == 0} { chwp_query_eok "Select an item first" chwp_nop return } keylset cbs itemPosition $index set list [lindex $mainscreen_db $index] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] chwp_activate_cb $cbs } # # This is the master call to edit an item. # it calls different edit forms based on the class and type of the item. # we need to pass the edit object and the class definition object. # proc \ chwp_activate_cb { cbs } \ { global mainscreen_db MS PID ME DIRTY set index [keylget cbs itemPosition] set index [expr $index - 1] set list [lindex $mainscreen_db $index] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] set action [lindex $list $MS(action)] set hintkey [lindex $list $MS(hintkey)] # if a container expand/contract and redraw if {$class == "Container"} { chwp_db_container_expand $index chwp_display_mainlist chwp_select_mainlist $index chwp_select_cb $cbs return } if {[lsearch $action edit] < 0} { return } # call edit if an attribute # file is used to pass arguments to and results from child processes # this preserves stdout for the child process and avoids # passing long complicated tcl strings through the shell # which is problematic at best. set file "/tmp/chwp.$PID" system "rm -f $file" # pass two lists (as a single list) the onscreen item, and the # object definition from db_def set object [chwp_db_attr_get_def $name] set hint "" if {$hintkey != ""} { set hint [chwp_hw_get_hint $hintkey] set auth [lindex $hint 0] if {$auth == 0} { set hint [lindex $hint 1] } } set arglist [list $list $object $hint] if {[catch {open $file w} fd] != 0} { chwp_query_eok "Unable to write file $file" chwp_nop return } puts $fd $arglist close $fd VtLock VtControl -suspend system "$ME -chwp_stand_edit $file" VtControl -resume VtUnLock if {[file exists $file] == 1} { set newobject [exec cat $file] system "rm -f $file" if {$newobject != ""} { chwp_db_attr_set $index $newobject chwp_display_mainlist set DIRTY 1 } } chwp_status_bar_update } # # build main form, lock it, and return. proc \ chwp_uistart {} \ { global app version chwp_main_form menuBar global chwp_top_status chwp_bottom_status chwp_main_list global RESPATH chwp_save_button chwp_stop_button chwp_exit_button global chwp_edit_button chwp_delete_button chwp_add_button global LOADING set app [VtOpen sct -helpBook SCTDOC] set chwp_main_form [ \ VtFormDialog $app.main \ -title "CHWP Information Editor - version $version" \ ] # menu bar set menuBar [VtMenuBar $chwp_main_form.menubar \ -helpMenuItemList "ON_WINDOW ON_VERSION"] set optionsMenu [VtPulldown $menuBar.optionsMenu -label "Options" \ -mnemonic O] set chwp_detect_button [VtPushButton $optionsMenu.detect \ -label "Re-Auto-Detect Hardware" \ -callback chwp_menu_detect_cb -mnemonic D] set chwp_save_button [VtPushButton $optionsMenu.save -label \ "Save Changes" -callback chwp_menu_save_changes_cb -mnemonic S] VtSeparator $optionsMenu.sep1 set chwp_exit_button [VtPushButton $optionsMenu.exit -label "Exit" \ -callback chwp_menu_exit_cb -mnemonic E] set editMenu [VtPulldown $menuBar.editMenu -label "Edit" \ -mnemonic E] set chwp_edit_button [VtPushButton $editMenu.edit -label \ "Edit Item" -callback chwp_edit_cb -mnemonic E \ -sensitive 0] VtSeparator $editMenu.sep1 set chwp_add_button [VtPushButton $editMenu.add -label \ "Add Peripheral" -callback chwp_add_cb -mnemonic D] set chwp_delete_button [VtPushButton $editMenu.delete -label \ "Delete Peripheral" -callback chwp_delete_cb -mnemonic D \ -sensitive 0] # Top status line set chwp_top_status [VtLabel $chwp_main_form.toplab \ -leftSide FORM -rightSide FORM \ -labelLeft \ ] # main list widget set chwp_main_list [VtDrawnList $chwp_main_form.list \ -columns 75 -rows 14 \ -autoSelect TRUE -selection BROWSE \ -callback chwp_select_cb \ -defaultCallback chwp_activate_cb \ -leftSide FORM -rightSide FORM \ -horizontalScrollBar 1 \ -iconList [list \ $RESPATH/e00folder_closed.px \ $RESPATH/e01folder_open.px \ $RESPATH/e02item_middle.px \ $RESPATH/e03item_last.px \ $RESPATH/e04hbar.px \ $RESPATH/e05blank.px \ $RESPATH/e06requiredok.px \ $RESPATH/e07requiredbad.px \ ] \ -CHARM_iconList [list ">" ">" " " " " "-" " " "*" "x" ] \ ] # Bottom status line set chwp_bottom_status [VtLabel $chwp_main_form.status \ -leftSide FORM -rightSide FORM \ -labelLeft \ ] chwp_status_bar_update VtShow $chwp_main_form } # # update our status lines # proc \ chwp_status_bar_update {} \ { global app chwp_bottom_status chwp_top_status version LOADING if {$LOADING == 0} { VtSetAppValues $app -versionString "CHWP editor $version, CHWP database version: [chwp_db_version]" set label "CHWP database version [chwp_db_version]" if {[chwp_db_cert_valid nopassthru] == 0} { set label "$label, some required fields missing for certification" } VtSetValues $chwp_bottom_status -label $label VtSetValues $chwp_top_status -label "Select an item to edit it." } else { VtSetValues $chwp_bottom_status -label "Loading please wait..." VtSetValues $chwp_top_status -label "Loading please wait..." } } # # convert a db entry to the stuff needed to add it to the main_list # proc \ chwp_display_item { index } \ { global mainscreen_db MS IC # Current object set list [lindex $mainscreen_db $index] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] set level [lindex $list $MS(level)] set action [lindex $list $MS(action)] set open [lindex $list $MS(open)] set description [lindex $list $MS(description)] set value [lindex $list $MS(value)] set required [lindex $list $MS(required)] # look ahead set next [expr $index + 1] set list [lindex $mainscreen_db $next] set nextclass [lindex $list $MS(class)] if {$nextclass == ""} { set nextclass "Container" } set formatlist "" set fieldlist "" if {$class == "Container"} { lappend formatlist "ICON 1" if {$nextclass == "Container"} { lappend fieldlist $IC(folder_closed) } else { lappend fieldlist $IC(folder_open) } lappend formatlist "STRING 256" lappend fieldlist "$description: $value" } else { if {$level == 1} { # contained lappend formatlist "ICON 1" lappend formatlist "ICON 1" if {$nextclass == "Container"} { lappend fieldlist $IC(item_last) } else { lappend fieldlist $IC(item_middle) } lappend fieldlist $IC(item_hbar) } else { # top level attribute lappend formatlist "ICON 1" lappend fieldlist $IC(item_blank) } # required status lappend formatlist "ICON 1" set icon $IC(item_blank) if {$required != ""} { set icon $IC(item_requiredbad) if {[chwp_required_attribute_valid $value]} { set icon $IC(item_requiredok) } } lappend fieldlist $icon lappend formatlist "STRING 45" lappend fieldlist "$description" lappend formatlist "STRING 256" lappend fieldlist "$value" } return [list $fieldlist $formatlist] } # now draw them proc \ chwp_display_mainlist {} \ { global mainscreen_db chwp_main_list set llist [VtDrawnListGetItem $chwp_main_list -all] set mlen [llength $llist] set length [llength $mainscreen_db] # coerce list length if not match while {$length != $mlen} { if {$mlen < $length} { VtDrawnListAddItem $chwp_main_list \ -position 0 \ -formatList [list "STRING 1"] \ -fieldList [list " "] set mlen [expr $mlen + 1] } if {$mlen > $length} { VtDrawnListDeleteItem $chwp_main_list -position 0 set mlen [expr $mlen - 1] } } loop i 0 $length { set list [chwp_display_item $i] set fieldlist [lindex $list 0] set formatlist [lindex $list 1] set position [expr $i + 1] VtDrawnListSetItem $chwp_main_list \ -position $position \ -fieldList $fieldlist \ -formatList $formatlist } } # set an item as selected in the main list, 0 based argument proc \ chwp_select_mainlist { index } \ { global chwp_main_list set index [expr $index + 1] VtDrawnListSelectItem $chwp_main_list -position $index } proc \ main {} \ { global LOADING DIRTY # do command line options, # the routine does not return if command line arguments exist. chwp_cmd_line set LOADING 1 chwp_uistart VtLock set new [chwp_db_read] if {$new} { set DIRTY 1 set string [chwp_hw_autodetect 0] chwp_query_ok $string chwp_nop } set LOADING 0 chwp_display_mainlist chwp_status_bar_update VtUnLock VtMainLoop } if {[lindex $argv 0] == "-chwp_stand_edit"} { chwp_stand_edit [lindex $argv 1] exit } if {[lindex $argv 0] == "-chwp_stand_query_combo"} { chwp_stand_query_combo [lindex $argv 1] exit } main 0707070000000000031006440000000000030000010000001025235521200002700000125456root/home/sct/chwpdump#!/bin/osavtcl # # miscellaneous utilities shared by a few programs. # # globals set version 9.0.0g set RESPATH "[pwd]/res" set BINPATH "[pwd]/tests" set LICENSE "$RESPATH/license" set EULA "$RESPATH/eula" set PID [pid] set sct_config_file "$RESPATH/sct.config" # path to user created machine data file. set chwp_db_data_file "$RESPATH/chwp.data" # path where test run logs are kept set sctrun_logdir "[pwd]/logs" # path where test binaries are kept set sctrun_testdir "[pwd]/tests" # path where handoffs are created set sct_handoffdir "[pwd]/handoffs" # Test data items (cheap way to make a list work like a C structure) set TS(class) 0 set TS(type) 1 set TS(name) 2 set TS(description) 3 set TS(required) 4 set TS(media) 5 set TS(enabled) 6 set TS(mode) 7 set TS(running) 8 set TS(iteration) 9 set TS(errors) 10 set TS(pid) 11 set TS(elapsed) 12 set TS(normalstop) 13 # Configuration data items set CS(runtime) 0 set CS(netmachine) 1 set CS(ftpuser) 2 set CS(ftppass) 3 set CS(localgraphics) 4 set CS(certrun) 5 set CS(nofloppy) 6 set CS(nocdrom) 7 set CS(errormax) 8 set CS(cddevice) 9 set CS(usbdevice) 10 set CS(cdpattern) 11 # full list of run times set sct_run_list_full [list \ "1 min" "5 min" "15 min" "30 min" "1 hr" \ "2 hr" "4 hr" "8 hr" "16 hr" "24 hr" "36 hr" \ "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] # certification (short) list of run times. set sct_run_list_cert [list \ "36 hr" "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] set sct_run_indefinite_time 3600000 # # read in our saved values if any # returns zero if no file to read # proc \ sct_read_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file if {$file == ""} { set file $sct_config_file } if {[catch {open $file r} fd] != 0} { return 0 } # silently ignore errors while {[gets $fd line] != -1} { set list [split $line ":"] set type [lindex $list 0] case $type { config { set name [lindex $list 1] set value [lindex $list 2] if {$name == "certrun"} { set sct_config_db [lreplace $sct_config_db $CS(certrun) $CS(certrun) $value] } if {$name == "runtime"} { set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $value] } if {$name == "netmachine"} { set sct_config_db [lreplace $sct_config_db $CS(netmachine) $CS(netmachine) $value] } if {$name == "ftpuser"} { set sct_config_db [lreplace $sct_config_db $CS(ftpuser) $CS(ftpuser) $value] } if {$name == "ftppass"} { set sct_config_db [lreplace $sct_config_db $CS(ftppass) $CS(ftppass) $value] } if {$name == "localgraphics"} { set sct_config_db [lreplace $sct_config_db $CS(localgraphics) $CS(localgraphics) $value] } if {$name == "nofloppy"} { set sct_config_db [lreplace $sct_config_db $CS(nofloppy) $CS(nofloppy) $value] } if {$name == "nocdrom"} { set sct_config_db [lreplace $sct_config_db $CS(nocdrom) $CS(nocdrom) $value] } if {$name == "errormax"} { set sct_config_db [lreplace $sct_config_db $CS(errormax) $CS(errormax) $value] } if {$name == "cddevice"} { set sct_config_db [lreplace $sct_config_db $CS(cddevice) $CS(cddevice) $value] } if {$name == "cdpattern"} { set sct_config_db [lreplace $sct_config_db $CS(cdpattern) $CS(cdpattern) $value] } if {$name == "usbdevice"} { set sct_config_db [lreplace $sct_config_db $CS(usbdevice) $CS(usbdevice) $value] } } test { set name [lindex $list 1] set enabled [lindex $list 2] set mode [lindex $list 3] # find the test and update it set end [llength $mainscreen_db] loop ndx 0 $end { set entry [lindex $mainscreen_db $ndx] set tname [lindex $entry $TS(name)] if {$tname == $name} { set entry [lreplace $entry $TS(enabled) $TS(enabled) $enabled] set entry [lreplace $entry $TS(mode) $TS(mode) $mode] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } } } } } close $fd return 1 } # # write out the current configuration # proc \ sct_save_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file BINPATH if {$file == ""} { set file $sct_config_file } if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return 0 } # save config first set list $sct_config_db set certrun [lindex $list $CS(certrun)] set runtime [lindex $list $CS(runtime)] set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set ostype [sct_ostype] set osversion [sct_osversion] set nofloppy [lindex $list $CS(nofloppy)] set nocdrom [lindex $list $CS(nocdrom)] set localgraphics [sct_localgraphics] set errormax [lindex $list $CS(errormax)] set cddevice [lindex $list $CS(cddevice)] set cdpattern [lindex $list $CS(cdpattern)] set usbdevice [lindex $list $CS(usbdevice)] puts $fd "config:certrun:$certrun" puts $fd "config:runtime:$runtime" puts $fd "config:netmachine:$netmachine" puts $fd "config:ftpuser:$ftpuser" puts $fd "config:ftppass:$ftppass" puts $fd "config:binpath:$BINPATH" puts $fd "config:ostype:$ostype" puts $fd "config:osversion:$osversion" puts $fd "config:localgraphics:$localgraphics" puts $fd "config:nofloppy:$nofloppy" puts $fd "config:nocdrom:$nocdrom" puts $fd "config:errormax:$errormax" puts $fd "config:cddevice:$cddevice" puts $fd "config:cdpattern:$cdpattern" puts $fd "config:usbdevice:$usbdevice" foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] puts $fd "test:$name:$enabled:$mode" } close $fd return 1 } # load up the test list, and set all default values. proc \ sct_init_tests {} \ { global mainscreen_db sct_config_db set db "" set list [list test test cpu "CPU" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test disk "Disk" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test network "Network" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test memory "Memory" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test cdrom "CD/DVD" "Required" "CD or DVD with at least 300 Mb of data on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test floppy "Floppy" "Required" "Formatted Floppy with no bad spots" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test graphics "Graphics" "Optional" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test usbflash "USB Flash Mem" "Optional" "USB Flash Memory - with test pattern on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set mainscreen_db $db # init config data set sct_config_db "{36 hr} unknown.sco.com ftp ftp@unknown.com [sct_localgraphics] 0 0 0 100 auto auto 0" } # # get the ostype, known types are OS_OSR5, OS_OSR6, OS_UNIWARE7 # proc \ sct_ostype {} \ { global BINPATH set ostype [exec $BINPATH/ostype] return $ostype } # # get the version of the os # proc \ sct_osversion {} \ { global BINPATH set osversion [exec $BINPATH/ostype -v] return $osversion } # # given an ostype, produce a user readable form # proc \ sct_display_ostype { ostype } \ { case $ostype { OS_OSR5 { set osdisplay "Open Server 5" } OS_OSR6 { set osdisplay "Open Server 6" } OS_UNIXWARE7 { set osdisplay "UnixWare 7" } default { set osdisplay "Unknown Operating System" } } return $osdisplay } # # like split but instead of chars the entire string is the delimiter # allows multi-char delimiters. PERL had regular expressions for delimiters. # max is the maximum number of elements to split into # proc \ mysplit { string delimiter max } \ { set list "" set count 1 set len [clength $delimiter] while {$string != ""} { set ndx [string first $delimiter $string] if {$ndx < 0 || $count == $max} { lappend list $string set string "" } else { set str1 [csubstr $string 0 $ndx] lappend list $str1 set ndx [expr $ndx + $len] set string [csubstr $string $ndx 9999] } set count [expr $count + 1] } return $list } # # convert internal mode to display version # proc \ sct_mode_external { mode } \ { if {"$mode" == "Hard"} { set display_mode "Max-Stress Mode" } else { set display_mode "Certification Mode" } } # # convert external display mode to internal name # proc \ sct_mode_internal { mode } \ { if {"$mode" == "Max-Stress Mode"} { set internal_mode "Hard" } else { set internal_mode "Gentle" } } # # detect if we are in graphics mode and local # proc \ sct_localgraphics {} \ { global env # get DISPLAY from environment set list [array names env] if {[lsearch $list DISPLAY] == -1} { return 0 } set display $env(DISPLAY) set tokens [split $display ":"] set displayname [lindex $tokens 0] set hostname [exec hostname -s] if {$hostname == $displayname} { return 1 } return 0 } # # fixup our path so exec works. # we have a minimum set of path requirements. # this was provoked by /sbin and /usr/sbin being missing when # you log into X on legend., which broke hardware inquiries (hw command failed). # proc \ sct_fixpath {} \ { global env set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set minpath "/bin:/etc:/usr/bin:/tcb/bin" } if {$ostype == "OS_UNIXWARE7"} { set minpath "/sbin:/usr/sbin:/etc:/usr/bin:/usr/ccs/bin" } if {$ostype == "OS_OSR6"} { set minpath "/bin:/usr/bin:/tcb/bin:/sbin:/usr/sbin:/etc" } # make sure all required components are in the real path set envlist [split $env(PATH) ":"] set minlist [split $minpath ":"] foreach required $minlist { if {[lsearch $envlist $required] < 0} { lappend envlist $required } } set newpath [join $envlist ":"] set env(PATH) $newpath } # given a global variable name in a variable, get the value of it. proc\ ind { varname } \ { global $varname set iname "\$\{$varname\}" [eval return $iname] } # time conversion routines from my internal format "xx hr xx min xx sec" to secs proc \ sct_time_to_secs { timestr } \ { global sct_run_indefinite_time if {$timestr == "Indefinite"} { return $sct_run_indefinite_time } set list [split $timestr " "] # now we have pairs set len [llength $list] set secs 0 for {set i 0} {$i < $len} {set i [expr $i + 2]} { set str [lindex $list $i] set specndx [expr $i + 1] set specstr [lindex $list $specndx] if {$specstr == "hr"} { set secs [expr $secs + ( $str * 3600 ) ] } if {$specstr == "min"} { set secs [expr $secs + ( $str * 60 ) ] } if {$specstr == "sec"} { set secs [expr $secs + $str ] } } return $secs } # time conversion from seconds to my internal format "xx hr xx min". proc \ sct_secs_to_time { secs } \ { set remain $secs set hours [expr $remain / 3600] set remain [expr $remain % 3600] set mins [expr $remain / 60] set remain [expr $remain % 60] set secs $remain if {$hours} { set str "$hours hr $mins min $secs sec" } elseif {$mins} { set str "$mins min $secs sec" } else { set str "$secs sec" } return $str } # chwpobject.tcl # # The back-end object manager for the chwp program. # # # API is as follows: # # external routines # chwp_db_read - read the saved chwp data. Makes default file as needed. # chwp_db_write - writes modified chwp data back out - can be called as needed. # # chwp_db_container_expand(index) - mark a container as open or closed. # # chwp_db_attr_get_def(name) - get the object definition for editting. # chwp_db_attr_set(index, value) - updates the two internal views with the # new value for the attribute. index is relative to the onscreen view. # # chwp_db_version - get the database version. # chwp_db_cert_valid - get status of whether required fields are filled in. # # chwp_db_delete - delete the given container by backlink index # chwp_db_add_list - get list of valid containers to add # chwp_db_add - add the new container type to end of list # # chwp_db_def_dump - dump the object definition for comparison to CHWP website. # # internal routines (incomplete list): # chwp_dbi_make_mainscreen_db - make a new view from the internal database. # # chwp_dbi_read_def - read the definition file, validates object contents. # chwp_dbi_check_def - validate the object structure after the read. # chwp_dbi_read_data - read the data file - return error if fail. # chwp_dbi_make_data - make a default data file if read fails. # chwp_dbi_reconcile_dbs - reconcile the data file with the object definition. # # data structures maintained by these routeins: # chwp_db_def - the object definition from the definition file. # Just a list of objects, each object is a pair of items, # the key and value taken directory from the def file. # chwp_db_data - the user modified list of objects and values, # fully expanded even if values aren't defined. # mainscreen_db - the viewable portion of chwp_object_db # # db_data/mainscreen_db entry index definitions # object class: set MS(class) 0 # internal attribute/object name: set MS(name) 1 # indentation level for display: set MS(level) 2 # valid activate actions (edit/expand/del): set MS(action) 3 # containers only, if they are expanded or not.: set MS(open) 4 # attributes only, hardware hintkey and required for certification set MS(hintkey) 5 set MS(required) 6 # the description (for an attribute DisplayName). set MS(description) 7 # normally this is value entered by the user. # but for a container it is special: # contains the name of AttributeName in chwp_db_def # contains the value of AttributeName in mainscreen_db and chwp_db_data set MS(value) 8 # only in mainscreen_db, index of the db_data item it came from. set MS(backlink) 9 # list of attributes that can have multiple values set chwp_multiple [list {MustContain {}} {MayContain {}} {Attributes {}} {DisplayValues {}}] # path to chwp definition file. set chwp_db_def_file "$RESPATH/chwp.def" # # Begin chwp_db external routines # # # parse and read the definition file and the user data file. # create the default data file if not present. # if the data file version does not match the definition version, # do reconciliation. # returns if it is a new configuration or not. # proc \ chwp_db_read {} \ { global chwp_db_def global chwp_db_data mainscreen_db # phase one, read the definition file. chwp_dbi_read_def chwp_dbi_check_def # read the data file set new 0 if {[chwp_dbi_read_data] == 0} { chwp_dbi_make_data 0 set new 1 } # always reconcile for now if {[chwp_dbi_reconcile_dbs]} { echo "Updated to new chwp.def file" set new 2 } chwp_dbi_make_mainscreen_db return $new } # # save our data file # proc \ chwp_db_write {} \ { global chwp_db_data chwp_db_data_file MS global chwp_db_data_file_version if {[catch {open $chwp_db_data_file w} fd] == 0} { puts $fd "Version:$chwp_db_data_file_version:" foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set level [lindex $entry $MS(level)] set object [chwp_db_attr_get_def $name] set dtype "" keylget object "DisplayType" dtype if {$dtype == "TextMultiline"} { if {$level} { set prefix "\n\t\t" } else { set prefix "\n\t" } set list [split $value "\n"] set value [join $list $prefix] } set line "$class:$name:$value" if {$level} { set line "\t$line" } puts $fd $line } close $fd } } # # expand or contract the given container, index is relative to mainscreen_db # proc \ chwp_db_container_expand { index } \ { global chwp_db_data mainscreen_db MS # get the mainscreen object set object [lindex $mainscreen_db $index] set backlink [lindex $object $MS(backlink)] set entry [lindex $chwp_db_data $backlink] # change expanded state set open [lindex $entry $MS(open)] if {$open == "open"} { set open closed } else { set open open } # update the entry set entry [lreplace $entry $MS(open) $MS(open) $open] # update the data entry set chwp_db_data [lreplace $chwp_db_data $backlink $backlink $entry] chwp_dbi_make_mainscreen_db } # # given the attribute name, fetch the definition object # proc \ chwp_db_attr_get_def { name } \ { global chwp_db_def foreach entry $chwp_db_def { set tname [keylget entry ObjectName] if {$tname == $name} { return $entry } } echo "fatal error: definition for $name not found" exit 1 } # # Update both mainscreen_db and the data view with a changed object. # index is relative to mainscreen_db # proc \ chwp_db_attr_set { index entry } \ { global chwp_db_data mainscreen_db MS # get the mainscreen object set object [lindex $mainscreen_db $index] set backlink [lindex $object $MS(backlink)] # update the data entry set chwp_db_data [lreplace $chwp_db_data $backlink $backlink $entry] chwp_dbi_make_mainscreen_db } # # get the database version # proc \ chwp_db_version { } \ { global chwp_db_def_file_version chwp_db_data_file_version return $chwp_db_def_file_version } # # check if required fields are filled in for certification # proc \ chwp_db_cert_valid { passthru } \ { global chwp_db_data MS if {$passthru != "passthru" && $passthru != "nopassthru"} { echo Internal error chwp_db_cert_valid bad argument exit 1 } set valid 1 foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set required [lindex $entry $MS(required)] if {$name == "PassThruNumber"} { if {$passthru == "nopassthru"} { continue } } elseif {$required == ""} { continue } if {[chwp_required_attribute_valid $value]} { continue } set valid 0 break } return $valid } proc \ chwp_required_attribute_valid { value } \ { if {$value != "" && $value != "None" && $value != "Unknown"} { return 1 } return 0 } # # delete a given container, rebuild mainscreen db # proc \ chwp_db_delete { index } \ { global chwp_db_data MS # delete the container node down to the next container node or the end set start [expr $index + 1] set length [llength $chwp_db_data] for {set i $start} {$i < $length} {set i [expr $i + 1]} { set list [lindex $chwp_db_data $i] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] if {$class == "Container"} { break } } set i [expr $i - 1] set chwp_db_data [lreplace $chwp_db_data $index $i] chwp_dbi_make_mainscreen_db } # # enumerate the valid list of containers to add # proc \ chwp_db_add_list {} \ { global chwp_dbi_rootmay set list "" foreach name $chwp_dbi_rootmay { set object [chwp_dbi_def_find_object Container $name] set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] lappend list $description } return $list } # # add a new given container type, rebuild mainscreen db # proc \ chwp_db_add { tname } \ { global chwp_db_data rec_attributes MS global chwp_dbi_rootmay # translate display name to internal name foreach name $chwp_dbi_rootmay { set object [chwp_dbi_def_find_object Container $name] set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] if {$tname == $description} { set type $name } } set entry [chwp_dbi_make_new_container $type] lappend chwp_db_data $entry set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend chwp_db_data $entry } chwp_dbi_make_mainscreen_db } # # dump the object definitions for comparison with the CHWP website # fileter out the "None" values for various fields because those are # internal values to detect if a required field is filled in or not. # proc \ chwp_db_def_dump {} \ { global chwp_db_data chwp_data_def MS # first make a new list with all objects instantiated chwp_dbi_make_data 1 # now dump them and their complete attribute list set first 0 foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] # get object definition set object [chwp_dbi_def_find_object $class $name] set object [lindex $object 0] set description [keylget object DisplayName] if {$class == "Container"} { if {$first} { echo } else { set first 1 } echo $description } else { # name, type, value list if not text set required "" set ret [keylget object Required required] if {$required != ""} { set required Required } else { set required Optional } set type [keylget object DisplayType] if {[csubstr $type 0 4] != "Text"} { set values [keylget object DisplayValues] # remove "None" if present. # set ndx [lsearch $values None] # if {$ndx >= 0} { # set values [lreplace $values $ndx $ndx] # } echo "\t$description $required $type $values" } else { echo "\t$description $required $type" } } } } # # Begin chwp_dbi internal routines # proc \ chwp_dbi_read_def {} \ { global chwp_db_def chwp_db_def_file chwp_db_def_file_version # open and parse the definition file into our main structure. if {[catch {open $chwp_db_def_file r} fd] != 0} { echo "Unable to open $chwp_db_def_file" exit 1 } set linenum 0 set chwp_db_def "" set object "" set attribute "" gets $fd line2 while {1} { set linenum [expr $linenum + 1] # one line behind set line $line2 # the lookahead line for blank lines and continuation lines if {[gets $fd line2] == -1} { if {$line == ""} { break } set line2 "" # fake a blank line if eof } set c [cindex $line 0] if {$c == "#"} { continue } if {$line != ""} { # check if continuation line if {[ctype space $c]} { set line [string trim $line "\t "] set attribute [concat $attribute $line] } else { set attribute $line } # if next line continuation go get it set c [cindex $line2 0] if {[ctype space $c]} { continue } } if {$attribute != ""} { # save new attribute line # verify that braces match, lrange bombs if not if {[catch {lrange $line 0 99}] != 0} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo "Mismatched curly braces" echo "$linenum:$line" exit 1 } # have a completed attribute set key [lindex $attribute 0] set val [lrange $attribute 1 999] # strip ':' set ndx [clength $key] set ndx [expr $ndx - 1] if {[cindex $key $ndx] != ":"} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo Missing key/colon: echo $linenum:$line exit 1 } set key [csubstr $key 0 $ndx] if {"$key" == ""} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo "Null key before the colon:" echo $linenum:$line exit 1 } set attribute "" # special case for version line, not part # of the object structure if {$key == "Version"} { set chwp_db_def_file_version $val continue } keylset object $key $val } if {$object == ""} { continue; } if {$line != ""} { continue } # end of a valid object, got a blank line # validate our known object types if {[keylget object "ObjectName" name] == 0} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing attribute ObjectName for object ending on line $linenum" exit 1 } if {[keylget object "ObjectType" type] == 0} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing attribute ObjectType for object ending on line $linenum" exit 1 } # validate each object type set optional "" if {$type == "RootContainer"} { set required [list ObjectName ObjectType MustContain Attributes MayContain] } elseif {$type == "Container"} { set required [list ObjectName ObjectType DisplayName Attributes MultipleObjects AttributeName] } elseif {$type == "Attribute"} { set required [list ObjectName ObjectType DisplayName DisplayType] set optional [list HintKey ReadOnly Required] keylget object "DisplayType" dtype case $dtype { SingleSelect { lappend required DisplayValues DisplayDefault } MultiSelect { lappend required DisplayValues } Text { lappend optional DisplayDefault } TextMultiline { lappend optional DisplayDefault } default { echo "$chwp_db_def_file: Error line $linenum:" echo "Bad attribute DisplayType for object ending on line $linenum" exit 1 } } if {[keylget object "Required" mtype]} { if {$mtype != "Yes"} { echo "Bad value for Required for object ending on line $linenum, only Yes value is allowed" exit 1 } } } else { echo "$chwp_db_def_file: Error line $linenum:" echo "Bad ObjectType: $type for object ending on line $linenum" exit 1 } chwp_dbi_validate_object_def $object $chwp_db_def_file $linenum $required $optional lappend chwp_db_def $object set object "" } close $fd # if any remnants then a trailing newline was missing. if {$object != ""} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing Newline at end of last object" exit 1 } if {$attribute != ""} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing Newline at end of last object" exit 1 } } # # routine to verify an object definition contains what we think it should # proc \ chwp_dbi_validate_object_def { object file linenum required optional } \ { global chwp_multiple set all [concat $required $optional] set keys [keylget object] # first make sure all attributes in the object are valid foreach i $keys { set found 0 foreach j $all { if {$i == $j} { set found 1 break } } if {$found} { set attribute [keylget object $i] # attributes cannot have colons or commas in them if {[lsearch $attribute "*\[,:\]*"] >= 0} { echo "$file: Error" echo "Bad attribute $i has colon or comma near line $linenum" } # verify the number of items is correct # one is always ok if {[llength $attribute] == 1} { continue } # only a few can have multiple values if {[keylget chwp_multiple $i ret] == 0} { echo "$file: Error" echo "Bad attribute $i has zero or multiple values near line $linenum" } continue } echo "$file: Error" echo "Bad attribute $i for object ending on line $linenum" exit 1 } # make sure all required ones are there. foreach i $required { set found 0 foreach j $keys { if {$i == $j} { set found 1 break } } if {$found} { continue } echo "$file: Error" echo "Missing attribute $i for object ending on line $linenum" exit 1 } } # # check the structure of the object definitions that have been read in # We check for hanging (uncontained objects), and that all # contained attributes are present. # the way we do this is to open the root container, find # all the rest of the containers, and build a container list. # We build an attribute list of all valid (contained attributes) and # check them in several passes, # 1) Check that no duplicate names exist (both attributes and containers). # 2) scan through all attributes and containers # and verify that they are contained properly. # 3) scan through container and attribute lists and validate # that they all exist. # proc \ chwp_dbi_check_def {} \ { global chwp_db_def chwp_db_def_file global chwp_dbi_rootmust chwp_dbi_rootmay # structural checking # find root container, make sure exactly one. set object [chwp_dbi_def_find_object RootContainer Root] if {[llength $object] != "1"} { echo "$chwp_db_def_file: Error: missing or multiple root containers" exit 1 } # save the list of all containers for later set object [lindex $object 0] set chwp_dbi_rootmust [keylget object MustContain] set chwp_dbi_rootmay [keylget object MayContain] # include Root because it has attributes too set containers [concat Root $chwp_dbi_rootmust $chwp_dbi_rootmay] # now for the attributes # pass 1 # have the bare bones structure, now check that no duplicate names # exist. Just go through and query on every name and count them. # brute force and inefficient, but modern computers got HP. foreach i $chwp_db_def { set name [keylget i ObjectName] set object [chwp_dbi_def_find_object "" $name] if {[llength $object] != "1"} { echo "$chwp_db_def_file: Error: multiple objects named: $name" exit 1 } } # pass 2 verify that every attribute is found in a container somewhere. # get each container's attribute list, we have the list already. set attributes "" foreach container $containers { set object [chwp_dbi_def_find_object "" $container] set object [lindex $object 0] set attributes [concat $attributes [keylget object Attributes]] } set kattributes "" foreach attribute $attributes { keylset kattributes $attribute "1" } foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$type != "Attribute"} { continue; } # search to see it is contained if {[keylget kattributes $name ret] == 0} { echo "$chwp_db_def_file: Error: Attribute $name is not contained in a container" exit 1 } } # pass 3, scan to see that each named attribute in containes # actually exists as an object. foreach attribute $attributes { set object [chwp_dbi_def_find_object "" $attribute] if {[llength $object] != 1} { echo "$chwp_db_def_file: Error: Referenced attribute does not exist: $attribute" exit 1 } } # scan the containers two passes. # verify referenced containers exist. foreach container $containers { set object [chwp_dbi_def_find_object "" $container] if {[llength $object] != 1} { echo "$chwp_db_def_file: Error: Referenced container does not exist: $container" exit 1 } } # verify that each container is referenced set kcontainers "" foreach container $containers { keylset kcontainers $container "1" } foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$type != "Container"} { continue; } # search to see it is contained if {[keylget kcontainers $name ret] == 0} { echo "$chwp_db_def_file: Error: Container $name is not referenced in the root container" exit 1 } } } # # find objects either by type or name or both # all matching objects are returned # proc \ chwp_dbi_def_find_object { want_type want_name } \ { global chwp_db_def set found "" foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$want_type != ""} { if {$type != $want_type} { continue } } if {$want_name != ""} { if {$name != $want_name} { continue } } lappend found $object } return $found } proc \ chwp_dbi_read_data {} \ { global chwp_db_def MS global chwp_db_data chwp_db_data_file chwp_db_data_file_version # open and parse the data file into our main structure. if {[catch {open $chwp_db_data_file r} fd] != 0} { return 0 } set linenum 0 set chwp_db_data "" set object "" set attribute "" set chwp_db_data_file_version "Unknown" while {[gets $fd line] != -1} { set linenum [expr $linenum + 1] set level 0 if {[cindex $line 0] == "\t"} { set level 1 set line [csubstr $line 1 -1] } set list [mysplit $line ":" 3] set class [lindex $list 0] set name [lindex $list 1] # value is a comma seperated list set value [lindex $list 2] # special case for Version if {$class == "Version"} { set chwp_db_data_file_version $name continue } # validate class case $class { Attribute { set err 0 } Container { set err 0 } default { set err 1 } } if {$err} { echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid class: $class" set err 1 continue } # fetch the display name from the def file set object [chwp_dbi_def_find_object $class $name] if {$object == ""} { # object not found echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid name: $name" set err 1 continue } set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] set readonly "" set ret [keylget object ReadOnly readonly] set hintkey "" set ret [keylget object HintKey hintkey] set required "" set ret [keylget object Required required] if {"$required" != ""} { set required "required" } set oa [chwp_dbi_set_action $class $name $readonly] set open [lindex $oa 0] set action [lindex $oa 1] set entry [list $class $name $level $action $open $hintkey $required $description $value] # validate the value if {$class != "Attribute"} { lappend chwp_db_data $entry continue } set type [keylget object DisplayType] case $type { MultiSelect { # zero, one, or many may be set set vals [keylget object DisplayValues] } SingleSelect { # exactly one must be set set vals [keylget object DisplayValues] } Text { # anything goes set vals "" } TextMultiline { # scan ahead and get the whole thing if {$level} { set tlen 2 set tstr "\t\t" } else { set tlen 1 set tstr "\t" } set last [tell $fd] while {[gets $fd line] != -1} { if {[csubstr $line 0 $tlen] != $tstr} { seek $fd $last break } set new [csubstr $line $tlen 9999] set value "$value\n$new" set last [tell $fd] set linenum [expr $linenum + 1] } set entry [lreplace $entry $MS(value) $MS(value) $value] set vals "" } } if {$vals != ""} { # Now compare the values with the good list. set values [mysplit $value ", " 999] set err 0 foreach val1 $values { set found 0 foreach val2 $vals { if {$val1 == $val2} { set found 1 break } } if {$found == 0} { echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid value: $val1" set err 1 break } } } lappend chwp_db_data $entry } close $fd return 1 } # # make the data structure from the def structure. # all is whether all containers are enumerated # or if false only the required containers are enumerated. # all possible attributes are enumerated in order # for each container. # containers get an entry including their closed/open status. # we mirror mainscreen_db with this list. # onscreen order is driven by the def structure. # proc \ chwp_dbi_make_data { all } \ { global chwp_db_def chwp_db_data rec_attributes global chwp_db_data_file_version chwp_db_def_file_version global chwp_dbi_rootmust chwp_dbi_rootmay set chwp_db_data "" set chwp_db_data_file_version $chwp_db_def_file_version if {$all} { set containers [concat $chwp_dbi_rootmust $chwp_dbi_rootmay] } else { set containers $chwp_dbi_rootmust } # get root object set object [chwp_dbi_def_find_object RootContainer Root] set object [lindex $object 0] set topattributes [keylget object Attributes] # first do any attributes in the top level list foreach attribute $topattributes { set entry [chwp_dbi_make_new_attribute $attribute 0] lappend chwp_db_data $entry } # two loops, # outer one the container list # inner one the attributes for that container. foreach container $containers { # get attribute list for this container name set entry [chwp_dbi_make_new_container $container] lappend chwp_db_data $entry set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend chwp_db_data $entry } } } # # given an attribute name, make its entry for db_data # proc \ chwp_dbi_make_new_attribute { attribute level } \ { set object [chwp_dbi_def_find_object Attribute $attribute] set object [lindex $object 0] set name [keylget object DisplayName] set name [string trim $name "{}"] set value "" set ret [keylget object DisplayDefault value] set readonly "" set ret [keylget object ReadOnly readonly] set action [chwp_dbi_set_action Attribute $name $readonly] set hintkey "" set ret [keylget object HintKey hintkey] set required "" set ret [keylget object Required required] if {$required != ""} { set required "required" } set entry [list Attribute $attribute $level $action "" $hintkey $required $name $value] return $entry } # # rules for building the action list for an attribute or a container # proc \ chwp_dbi_set_action { class name readonly } \ { global chwp_dbi_rootmust chwp_dbi_rootmay if {$class == "Attribute"} { set action "" set open "" if {$readonly != "Yes"} { set action edit } } else { set open closed if {[lsearch $chwp_dbi_rootmust $name] >= 0} { set action expand } else { set action [list expand delete] } } return [list $open $action] } # # given a container name, make its entry for the db_data # proc \ chwp_dbi_make_new_container { container } \ { global rec_attributes set object [chwp_dbi_def_find_object Container $container] set object [lindex $object 0] set rec_attributes [keylget object Attributes] set name [keylget object DisplayName] set name [string trim $name "{}"] # get the attribute name set attributename [keylget object AttributeName] # create container entry set hintkey "" set required "" set readonly "" set class Container set ret [keylget object ReadOnly readonly] set oa [chwp_dbi_set_action $class $container $readonly] set open [lindex $oa 0] set action [lindex $oa 1] set entry [list Container $container 0 $action $open $hintkey $required $name $attributename] return $entry } # # reconcile a new def file with an existing data file # reconcile affects the attributes and the order of those attributes. # all we have to do is check for attributes appearing and disappearing. # everything else is checked for already. # proc \ chwp_dbi_reconcile_dbs {} \ { global chwp_db_def chwp_db_data MS chwp_db_data_file global chwp_db_def_file_version chwp_db_data_file_version global rec_attributes # get the def version set version_def $chwp_db_def_file_version # get the data version set version_data $chwp_db_data_file_version # Here we reconcile. # first extract the objects we read in. # this is an oddly structured list intended to make searching easier # one list item per container, and that item contains the container # and all its attributes set oldobjects "" set list "" foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] if {$class == "Container"} { lappend oldobjects $list set list "" } lappend list $entry } if {$list != ""} { lappend oldobjects $list } # now scan through the new objects and extract as needed # special case for the root attributes if any. set rootdef [chwp_dbi_def_find_object RootContainer Root] set rootdef [lindex $rootdef 0] set rootattributes [keylget rootdef Attributes] set must [keylget rootdef MustContain] set may [keylget rootdef MayContain] set rootcontainers [concat $must $may] # the new data list set newlist "" foreach attribute $rootattributes { set object [chwp_dbi_rec_root_srch $oldobjects $attribute] # keep it if found if {$object != ""} { lappend newlist $object continue } # otherwise make a new one set entry [chwp_dbi_make_new_attribute $attribute 0] lappend newlist $entry } # now do all of each container type foreach containertype $rootcontainers { set match [chwp_dbi_rec_container_srch $oldobjects $containertype] if {$match == "" && [lsearch $must $containertype] >= 0} { # missing required container lappend newlist [chwp_dbi_make_new_container $containertype] set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend newlist $entry } } if {$match == ""} { continue } lappend newlist [chwp_dbi_make_new_container $containertype] # fetch the definition set containerdef [chwp_dbi_def_find_object Container $containertype] set containerdef [lindex $containerdef 0] set attributes [keylget containerdef Attributes] foreach container $match { # have a single container and its attributes foreach attribute $attributes { set newattr [chwp_dbi_rec_container_attribute_srch $container $attribute] if {$newattr != ""} { lappend newlist $newattr } else { lappend newlist [chwp_dbi_make_new_attribute $attribute 1] } } } } if {$newlist != $chwp_db_data} { set chwp_db_data $newlist return 1 } if {$version_def != $version_data} { return 1 } return 0 } # search the root attributes for the given attribute type. proc \ chwp_dbi_rec_root_srch { oldobjects attribute } \ { global MS set attributes [lindex $oldobjects 0] set firstentry [lindex $attributes 0] set class [lindex $firstentry $MS(class)] if {$class != "Attribute"} { return "" } foreach entry $attributes { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$name == $attribute} { return $entry } } return "" } # search for all containers matching the given type proc \ chwp_dbi_rec_container_srch { oldobjects containertype } \ { global MS set newlist "" foreach object $oldobjects { set firstentry [lindex $object 0] set class [lindex $firstentry $MS(class)] set name [lindex $firstentry $MS(name)] if {$class != "Container"} { continue } if {$name != $containertype} { continue } lappend newlist $object } return $newlist } # given a container and its attributes find the given attribute proc \ chwp_dbi_rec_container_attribute_srch { containerobject attribute } \ { global MS set newlist "" foreach entry $containerobject { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$class != "Attribute"} { continue } if {$name != $attribute} { continue } set newlist $entry break } return $newlist } # # build the mainscreen display database from the internal database # we filter out closed items and fill in container names # proc \ chwp_dbi_make_mainscreen_db {} \ { global chwp_db_def chwp_db_data MS mainscreen_db set mainscreen_db "" # assume one level of hierarchy set open open set index -1 set end [llength $chwp_db_data] foreach entry $chwp_db_data { set index [expr $index + 1] lappend entry $index set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$class == "Attribute"} { if {$open == "open"} { lappend mainscreen_db $entry } continue } # have a container, extract its open state. set open [lindex $entry $MS(open)] # find the name attribute, get this from the object definition. set entrydef [chwp_dbi_def_find_object $class $name] set entrydef [lindex $entrydef 0] set sname [keylget entrydef AttributeName] # now find the value of it set found 0 set start [expr $index + 1] for {set ndx $start} {$ndx < $end} {set ndx [expr $ndx + 1]} { set object [lindex $chwp_db_data $ndx] set tname [lindex $object $MS(name)] if {$tname == $sname} { set value [lindex $object $MS(value)] set entry [lreplace $entry $MS(value) $MS(value) $value] set found 1 break } } if {$found == "0"} { error "Internal error, $sname object not found" } # add the entry to the mainscreen lappend mainscreen_db $entry } } #!/bin/osavtcl # # dump the object definitions so they can be compared with # the CHWP database definition # proc \ main {} \ { chwp_db_read chwp_db_def_dump } main 0707070000000000041006440000000000030000010000001023123603600004000000001011root/home/sct/doc/CONTENTS.html System Certification Tests

System Certification Tests

Using the SCO System Certification Tests (SCT)
0707070000000000051006440000000000030000010000001023123603600004400000005775root/home/sct/doc/CTOC-scthelp.html Using the SCO System Certification Tests (SCT)

Using the SCO System Certification Tests (SCT)

About Certification
    Rebranded hardware and compatible hardware programs

Overview

Starting the SCT application

Defining test machine configuration

Configuring Device Tests
    Certification Mode versus Max Stress Mode
    Setting test attributes
    Understanding the certification tests

Running the tests
    About the test display
    Viewing test results

Preparing test media

Handing off test data

About the test pattern used for storage devices
0707070000000000061006440000000000030000010000001023153556600003100000005044root/home/sct/doc/READMESystem Certification Test SuiteSystem Certification Test Suite README The System Certification Tests (sct) are a suite of automated tests to satisfy system configuration and stability requirements for the SCO Certified Hardware Program. The SCT interface controls the configuration and execution of system load tests and ensures that the necessary hardware configuration information is recorded. Finally, the SCT interface provides functions that collect and prepare a handoff file for delivery to SCO. The SCT package replaces the SCO Balanced Load Tests, and is certified for the following SCO Operating System releases: SCO OpenServer Release 6 SCO OpenServer Releases 5.0.6 and 5.0.7 UnixWare 7.1.3, 7.1.4 Those with older releases should continue to use the Balanced Load Test programs. For current information about the entire UnixWare and SCO OpenServer Hardware Development Kit (HDK) release, see the HDK Release Notes. NOTE: The documentation references man pages for the UnixWare and SCO OpenServer platforms. The sct documentation is available from the online library or from within the sct application in the context-sensitive help. Installation on UnixWare 7 The package can be installed from a download or media distribution. Downloaded files 1 Log in as root. 2 Download the package to an installation directory; for example, /tmp. 3 Use the pkgadd(1M) command to install it by entering: pkgadd -d /tmp/sct.pkg all Media distribution 1 Log in as root. 2 Insert the CD-ROM in the drive 3 Use the pkgadd(1M) command to install it by entering: pkgadd -d cdrom1 sct.pkg all Installation on OpenServer The package can be installed from a download or media distribution. Downloaded files 1 Log in as root. 2 Download the SCT distribution file (a tar achive named sct.tar) to an installation directory; for example, /tmp. 3 Extract the files as follows: tar xvf /tmp/sct.tar The extracted files are of the form VOL.000.000, VOL.001.000, etc. 4 Start the SCOAdmin Software Manager or custom(ADM). 5 From the Software menu, select Install New. 6 Select Media Images as the media device and identify the image directory (such as /tmp) and click on OK. 7 Select the package to install and follow the prompts. Media distribution 1 Log in as root. 2 Insert the CD-ROM in the drive. 3 Select the Software Certification Tests from the list of products and click on Install. Configuration See the online help within the application for detailed information about configuration and usage. 0707070000000000071006440000000000030000010000001023153457700003600000013261root/home/sct/doc/README.html System Certification Test Suite

System Certification Test Suite

README

The System Certification Tests (sct) are a suite of automated tests to satisfy system configuration and stability requirements for the SCO Certified Hardware Program. The SCT interface controls the configuration and execution of system load tests and ensures that the necessary hardware configuration information is recorded. Finally, the SCT interface provides functions that collect and prepare a handoff file for delivery to SCO.

 

The SCT package replaces the SCO Balanced Load Tests, and is certified for the following SCO Operating System releases:

Those with older releases should continue to use the Balanced Load Test programs.

For current information about the entire UnixWare and SCO OpenServer Hardware Development Kit (HDK) release, see the HDK Release Notes.

NOTE: The documentation references man pages for the UnixWare and SCO OpenServer platforms. The sct documentation is available from the online library or from within the sct application in the context-sensitive help.

Installation on UnixWare 7

The package can be installed from a download or media distribution.

 

Downloaded files

  1. Log in as root.
  2. Download the package to an installation directory; for example, /tmp.
  3. Use the pkgadd(1M) command to install it by entering:

pkgadd  -d  /tmp/sct.pkg all

 

Media distribution

  1. Log in as root.
  2. Insert the CD-ROM in the drive
  3. Use the pkgadd(1M) command to install it by entering:

pkgadd  -d  cdrom1  sct.pkg all

 

Installation on OpenServer

The package can be installed from a download or media distribution.

 

Downloaded files

  1. Log in as root.
  2. Download the SCT distribution file (a tar achive named sct.tar) to an installation directory; for example, /tmp.
  3. Extract the files as follows:

tar  xvf  /tmp/sct.tar

      The extracted files are of the form VOL.000.000, VOL.001.000, etc.

  1. Start the SCOAdmin Software Manager or custom(ADM).
  2. From the Software menu, select Install New.
  3. Select Media Images as the media device and identify the image directory (such as /tmp) and click on OK.
  4. Select the package to install and follow the prompts.

 

Media distribution

  1. Log in as root.
  2. Insert the CD-ROM in the drive.
  3. Select the Software Certification Tests from the list of products and click on Install.

Configuration

See the online help within the application for detailed information about configuration and usage.

 

0707070000000000101006440000000000030000010000001023123603600003600000000177root/home/sct/doc/SCTDOC.bookSCTDOC: Title = System Certification Tests TOCType = chapter TOCFilename = CONTENTS.html PrefaceURL = /SCTDOC/scthelp.html 0707070000000000111006440000000000030000010000001021561526200004600000000207root/home/sct/doc/SCTDOC.desktop.osr5[Desktop Entry] Name=System Certification Test Documentation DocPath=/usr/share/doc/OpenServer/en/SCTDOC/CONTENTS.html X-COL-Weight=10 0707070000000000121006440000000000030000010000001021561526400004500000000205root/home/sct/doc/SCTDOC.desktop.uw7[Desktop Entry] Name=System Certification Test Documentation DocPath=/usr/share/doc/unixware/en/SCTDOC/CONTENTS.html X-COL-Weight=10 0707070000000000131006440000000000030000010000001023123603600003400000000502root/home/sct/doc/SCTDOC.hkA1746010282 scthelp.html A1981416726 scthelp.html#sct_testview A1087250097 scthelp.html#sct_testrun A1981424726 scthelp.html#sct_mach_attr A1128477335 scthelp.html#sct_testview A1894822122 scthelp.html#sct_testview A1981422118 scthelp.html#sct_testview A1711025338 scthelp.html#sct_chgtest 0707070000000000141006440000000000030000010000001023123603600003600000000362root/home/sct/doc/SCTDOC.node scthelp.html: Title = Using the SCO System Certification Tests (SCT) Version = 1.0 PrintSequence = /SCTDOC/CTOC-scthelp.html CTOC-scthelp.html: Title = Using the SCO System Certification Tests (SCT) Version = 1.0 ChapterTOCWeight = 1 0707070000000000151006440000000000030000010000001023123622400004400000027341root/home/sct/doc/graphics/edit.gifGIF89aqϊÊEEE! ,PI8ͻ`(dihlp,tm!|pH,Ȋn48Ш4ZجvzxL.zn|ͻpvfxhPd{z\cb^axROKI H {y< Ç#JXV^sqJG CIG* ]4J-'KʜIM91̢1N09o>@)G $}IRPR4/QNyЯs|'wb vXU\e*שQ^YK_s/ 0)KIܶXFjYm%ȍJ lWԦf\-)ed(dxVdiVVxy6ȾWޙ.U}{h󧠕GTgz:;}]@3:米~߳7amk'C;IIq5gum5^%݂pu` Na]UX!ޅ"`gkl@{ ٖYYˀgJB%.W6\_JhV5ʤ,16&{T螞Ĭyg]GAͩuŢŊ^j+xiahr j)z*b6۪/d}}%y.^%~k*f T~ SWziں%Ƌ-$ qii(h٦b}șX0/[p[y)fn\(y܃ hAkbhf<.l X{ŷa8̫o똲\mhܛ|-t/C: 7u6ݭnb#<'7G.W`Mޚ[砇.褗nS޹>n.n7:/2K7Чpigw/o觯/3O? HL`ǹ @'H Z̠@ GH(L!:xC0 gHcZX=@ H0l,&:%<*ZX̢'Ep[ H2Ⰻ!B>؏hXc F3x#>^ϏC#@"y#DQ$ɘDɒh'ȓDGєL*WYJ9Lc yGrJ:җ)9L2eS:q &4IEaleyLbh#%8}W.LbB3ڣ,aIOlBԦ>s~ 3IЂ4)oimN!!kiMEpmAGJҒ¯@-z=yJTF7Q|Ҥ(-m*R@JҍN39NAzSʔ3}G UXPYԇ4rĩTJSբ55*=yֲfp-V}faSjL;:}fh)?ZNw5Ml2QRHͫJNiQd>T Yǒ5^iNѺgWնͭnw[(^$| _m.t Qә ]z)nwciݗMQ Ve W`l\ N0h 9'L [q$܅7{ *(^p)؋gLe5αyc/@d"Cd+&ٽMo)[T^+؝*_~fLf;V9fmvkEZ:?̛ToK?8}Lhyn5z]MKGDGLFmfOϽwOO;ЏOOxRl'[OOc>{}žȲo8{Ӏ@1zP8Xx|#Փ}elrJ ǂ'8{04X6x8緁Ё׃ x'"x G8%8|3Ȅ*(g7:\؅^ķj#C2jH KX.2~tz|؇(DDxGxjs؄-Ȉ% -w((EH{&{rЄEX((hUX W臰8w•}e#W؋hxX8px،ʘ舕Ȃhx؈⨁hȀ&VѰȍȌ(yhxȏXG舢8 'Ր!,V @ II8؏Xih؉hH̸(4Y6y y )eeBB)ّ؍l"h(!yZ\ 8:ʳZ@BKK[jʯj*u(K OlV;a۷ l][v[~c e뀚۸J2;,˫wKڲ{뵅8;˹ {z*$K Q k[۳ջź)_Hǹk*deLĻztz˽jfD˱I+껾۳훧䫋ˠ{~;K r\쪿|˓;L<\$WYZ&|´ץ(0: l#L2:^ŦA[h$F|H~47<ǒg  }vQ/pI|֙[) NL8őbSٛ_\+NH'gȊi|{.l|PƷ|x}LSY|iُp,lSi{L||]LhlZXLWʗyʤyi_L|<2̜˞(̚l> Ă O|ȲY3ə͌(윍9L<8r\ϓx9g H {'loxɖβ<{8 )IЁnD^]8\pFNNHnB~V~m.}@{_d X^/$HC|%^{ovf^(_-|{o汍lnx$].m}~ĉKGq}<J@7`t"Y觞d#՞@ӊ=溞j~|!Em̊~;~Π /oQ _ooL {&o#'D0.x(ߕߗ6]3Tu\|ٮH>̜M.s7G/H_:=h֥P%T-ijmLܽ9x̏=0<\տR/^\.Hwsn|䰎^s^{(}Xʏܐ~\~ c}o܄nԊ-־>WNe?ҷpxמߍАϵ2E .ݖMpًo@LBQo|NBOB  3_Cq$KDSue[cykF,ur7bxDBPY:P, [.^P0f oPD; >L $,4; 8.UD6Ѣwܼ@X46ĥG|񘟐-ޭlUFC6ݙЇA.nm6ۺ9g=7Fd$葄G"Ͻq4ߐ~{{iT$I0@ :ވ3at3:{PqB00"A|r _1Ñ [D~ܑG$َFDRz$)$R,QMF-0!1L Ǵq$/#s3sT3Nld1r.6S60qSL5qI6܍L9 N;'-t:ߤz QG%T33=cՎt,V3 5k6 b85U2t0H PEVR_3]Mk+bE8 68J"5/?<X\\_}F)4%a`t]υ8c7G'6iݨfmZm;Cg-!JPgjT>oC U% QASszV<֕Qt!XRXws?+ pYTQp;ˬ9/oxC |O@x} oM m:i.{a^ ߩ,,G'X(YAHZ/P;ں_b ·vpp5ҕ/hU 4aCA lSA #mB{EH?wz.@kf**xɃURo>{`%M|w1 YV<+Teƭ"@Fu'X(/H# y# 1+~MNkc&E9Jjlrbg#V 76Rҕ0%EPYO.b a.9ޕl~9`ә4.2HҐf6YAc Mr3i7%]Ӝg uS"~f~ (3*7vI C)NPΠu(J@ԣ/H%(Ԗ1 PzQ"ԈyLwuD&2MOk;jO.~Q3jVqTuh9TG*+giխ6*xOK3kUSZ+|k`CWj֔Ck*RYa4ԬN(XSW |Vѳli xS1QX*Z6D)7&U5LW-v!U:[7a(9շeiЦ$JWu[RLz-o; {{Sj'@c.h֬+[7޽ x3_βb'~'L tP}oKX~%˸]^A ey-\bԲ.v-g!0srLUm2j-k~wF4!C ذh\:ql =1'y/ f-6n~s޷9AӞv0)|)~%VyB|5 ,kӚꚨv H`u̺E;EV呑e\&jn+/O[Ķ7y݀v,jļ7N*;zw=pt+xx·kUxoRpvxol/yG(czk;'Ol/'er_p?]d]zY`M pns`8^ zB7Bnb${)xAgp<]B[-zo,ul4WqAP}8<8<^l-Pt\kAWw!Zysn@^礥z!E/Z\b-zlkבyEg~>ϻjytoI6R l(BKu|mϙRtW&6=k|.4[&fZkͯzݢ c)::Q*=f<[Kacc++  @۾컟+AQi# [5vAGq><-*- ڙ#z#c!AkAyAk&DReAf#B˗8b==( *>Ws6y¥BD6\كyá*CW<d?Io ?$C2à#. =yÒs9p 6<ıĞDM4NTsPQD3S˼ЬX ӫl 1hC??L$GPNɕ@DDHr!L~ap{hM, N-BI-4PO̤ɚd#oKd"LKR\бiЮڰt{ƺN9ÍIQ Q%2yHDA #-CP+EkJSpN!E)#>TC`cR'/(-,ǬG8̡FNHDLPHQ25 M9-$葳 58ؕ٥ڵ%5EUeu]ը]5_%_ ۥeu&( YVfv _\ &6]Vfv >ӻ@ !&"6#F$V%f&v'(b(_ e,-./01&26#Κ]]~+7ٝ9:;_5aH'͵8d8nc<6CFDc7]cZcE6͵LMdYu>vJNNaLFUfVveFf*e䫩W`U^_m`\vGEevg懗c]*,.dSff.mo mek o[r nuvwg-7r\ 9PxVvN'}f5]03f舖hebn߃vdhix)guAFVfv闆阖NSi{&6jS>fvjN꧖ꩦꪦasuc뱖&F봎gVve빦Fd^a`B(F_p[)Ȏl+vn̖n_ͮ_^a>mFe~_.6Sp׎meml.kَVnV̮m6Nn+֞m>ܞmn&omo>olNnoˮlonvM6vnpwfmfVoVpepo'ppGm>nlpp>l wn 7qp?q 'p Gq^q#wq&O"q!%'rr%Gs'r qn%7 n./6O)o*n:s=/o?s4sBo/AA;0WEs-sI_^MsHJs'GsE7?;s(vsOpeeuab_2qv7ovd/ up7qk7\WvwfOrx`/gw)u'vw?4egBK7vt/yGewx vlnc/$_u>wFq[Q?nqt7oT8m}/uuxvh1'tw'q#u?ohz'y7WyPyt7ztK'{t,}Ot롟GyOwuxo{wVw/Wz/w{y7{D?{u{aWx}||vWjGů|i^?vڏw]zswp1u߷ׯoO}o~ppy}Ojїg}~}zOotN?Tu(r*/xV]< %dyniv'›h<ߴZ:) Db]KGt)ܭ,]6E~7<.;~  ?^ߟ_[[S"҈WS%cO gciOYQXY䔪(fZWb/.Z/l#.ks,kki^6w a!x9z:;s;8A+h B9!L'Rhq?@#$!8i*W@p0 i&8M×1j(ҤJ2m̡;:j*֬ZU@bǒ-k,ڴjײm-ܸrҭk.޼z/6 |3n1Ȓ'Sl2̚7s3ТG.m4ԪWnZrTgӮm6ܺw7c'ix!ȗ3o9ҧSn:ڷs;Ǔ/o^;{x * _vZZx!j!2Gz/U%x")b$(8#5x#9~(VaA 9$Ey$I*$M:xE$UZy%Yj%]zd;0707070000000000161006440000000000030000010000001023123622400005000000035335root/home/sct/doc/graphics/logfiles.gifGIF89aqϊ(,0,I8ͻ`(dihlp,tm|pH,BJYh:(T'ZجvzxL.znK5|duewgczyZbaŬxOw:QH.,)\ȰÇ`ZXU=ȶPȱǏ OmAGSJf˗0caiłMhbYˀB> $`*iQ>]jԩE`UΜ8윂W*b:*l %J\3[2VŲur>Q*ZTg9vYȓg gQAlӋQ tփ~fڵHdP߮TT?m8_B.WqrE":qk:wkw{ˮ~Mv[igǜzbt5Z]!x :8aiYX] &y!8y(8.xuRIay*RajHHrGIx^ >HXc>bbgP`L~(ߑ+:}*RcJh#Y(ՔhY rK^`rGBxr&Ag'zfeRאw\:Y D^fPp]!B>jY哆ʠ[ny`^yk)EgI*7y*%s*bb:kQeZ%bv'Z"l۫߳꛴jTm+%.~] (d&Jps2eÊWa뎋ȾlV^]R[ʊ3}UQyzY3{.yhav328LYtJ16h\M^s!3}$ i=5q q 8 n~۴7j8&re(/8Je*PJM򕰌[Y@Z&Ж$xKT})L22AⲘLfu=^Pє*gM 8gj 5M"<1)h3l*yLl hNӞm:=9K[\%2IL݄ANz aE'_jTdg/Wzy.iKIӚ6EҞ'NR:pR$:YOni>1zQ>@ͪVJJmﴪJkfCiX UvԦޤgZպUu+6 ױ ]*\ς֫([z:ZzԿ&ugAN)_K 4%MDeS=hY)?j6ydqZY^ =hr[:nL +Z .GZ1k1$-[>RP药|A~uKq%~}#^N0z ^ץB}k #,a[Np1` l*u(N}x0q[8/);~LvK&;PVG)[Xβ.A,hNsVL`5eL:3S.I<Ǐπ4#L;A~$FQюiOU<0hZߡjzҠ&a(rj9jFTcZpԲf-TC/o l[`.+ a^˅p:cP^5s~]:4Nq]RWڴ*xt߬Un26.aN4}fXS۰ej%YW7LY{zfsgk~[Vx@kC,&] srkmu.g=]tN붇[݂,w8%nok2omkqeӫ[[DNv2ͤ&عjfݖpm~_8vO|-jǽ-y\[rs8w,>NvޙzQԿ@n7}#rO:ȷkw'>wݾ㸥tO]=okܷO~>ψwgۿ#g8Hgx f Xda8Xx؁ "8$X&x(*h)~]+284X6x8:<؃>}䂋VP^VFxHJPJpTBHUL8TXVxX0p?8dXfxhjlÅtb6QJb؆xz|؇~ytd>T u؈848x MH8XxxJx_8@H@X@`Ȉ*RxB{v[ȋqXp0EߥD)ȋǨYhsHrHnULJڸ~ȌGHqe(숋ah#(\؏zI<莚 )h2JgSȨ?zux6]!HUiL!ptYp.L3ɑ6 'F،Nx{&Qy<w|DƸm6WRXWnYMtH+œ9zݵ]Zז8nYnly/sNuxiypr'ȐH& =9Cuyɘ3Hٗ)#`~llIoYLX$?IYYY)4ș9ٚ%9y)i9 )9@y藖҉"Y5xI9JyiY蘿~ܩyٕU)oyWXWiShrUTɕ u)NYQDxy)WҖg9*$x/P{&%U3&$BZQ@5՘e6 R:hX,=H FafLJNoTڝa:dVXjv! e*q:tg^ uڧ~zlt)nFRPzک:Zzڪ:ZzHgt:ZzȚʺڬ zjzؚںڭ ʫcᚮ꺮ڮ:G[ ڪ΀ʩ*@̐[{ [+Z `[#{&Zʲ*.2:K([ j Yj˯7 B{P$۳ +O+ *{<)YcD;zȲZ3˰ ;rt8! 54;芷$L q۷K *> K]7+Ϛ{|۹ʸq[;g[k**}ۻru\;˺뻽[pk˪#ۼ" K [d0+k国K۲|kfk:JԊHm붿;+쯀<+w.k Mlۯ,&l %;"l۫;[+KK,G+ ĕ'LK '$|- D|1\3̥57|8;_UY<<{~ǼkrLߪv,Ǖkk\l*O<țZFj6 t|A\ lzĔɎȑbjȧɦ|:˭˫:€\62ٿ|ʠܾlX H˼L|jܽȰ̬Ν \\xzgڶ©, Vk9,Ku\}jl" m,ɚ{z̲ [јjɡΜ>?B=Գ8M:=MNOR=^G̟݉M^]ob=* =Ō̃Z$hLpr=tͪW=I a]|~|lՀ}؈؊ mma׋=ٔ]ٖ]ݱٜٞMɑ٤]ڦ}ڜyƞWж*ٕ-ūZ 9ۻ۪ܺk_תڏMÞԛݲMŷ;E+N Y+U-BҷJwƝժIܚܰMcܴ- J @k޳ݳKݫFƢ #Ư[~3ѥL}/޸ѱ2kӒ;& (^+ *ݺ>ЧkK9㦛i̱]ݩoKa|͍Nlk,ӻ<^ <\k˿-C͊d n=Q mm^шN%] l뽼[, .칙nK썞^ք\~=>mŬIڡy^~퉮>ʸޝŔWNܪЮq^^ϱ~Ilښ}ۋ[-O%}^l߬.| },5H[K\I/lK,.XnQ?\+LuNJ\?#^ጾ≫ݵ7K~!+cVA@,v{!˫[;\1dD²"2$stAS1}\e-t9mSlyͻ }mm><ڰ U=[0"L.oG* p9GYj|ef[=teyZØܭ?'BÎvFѣI"C0>jEΌ.mFIR"Е!̧RťAqzu(~XOZI8CB^%JZm{e\{O9e+D\kM/^8mK#furď-祋ϯb0HI`WOf +×B9d]l+xf!{,[.ou \poG^;_T,: !5dM[l߯;Ko#΍|˹ݖKз0b̹NAD0|K䳐j4M:ѫOFK?  @O 19(zL&yQTC&;kPF 41SѼh1x/:,38( 1NvԮF$0N%g|'l2HŹ84f.)JNOC(M^LC3Ǎ.CS91VXrPVܤuZW94T|G*sW^cuBf4LhR#eM%gT7ZE> u%"׭FNni"xZQ~݅׺-NrvYqҒ_5:RI0VӬQu2]99eWfyau&c->TD @mg9J9he5LLYiyg:aKKoӚvjF;mf[ޘiƹm;o~{Yk޻pG}wͅizK[Z?%kG `P{*0<2]$ %q`w*) f8) ưOl3i;6L9 a~$75&XK gr.J VHaxF1| x5NZނ q`7&LfIuQBKޏD$Q1S#!ykMHI2 ? R5-4GEr;$'C 4$(;K.$RS|H@GD2gY˟aR=/'RǘKZГ|B#Bc>*}2ㆨGmڎԠ+GUMjëG鳡|ػ\fiO%DGեKz2&*9+_IM QhXGyV1ˆ9M*"YPlԠ2%HBnݴw\"O8|qM"a A]qU:ɶ9 ׇ q(.fpQfMj\=1Yyb~ߠHٚBgŜfQZyq~h Ejq[px{)b۹Enr{:nUr;]f+'j[]v׻+k3Eozۅ5Uo|;Cm%|_w]e;ޏ;dp[O2h}Kn\ q݁/.G@h>w>Xdg g:IB/X!֛ []a0\'07g=j8(&; L e0kmfO g6թg> <,M䰵<\WMfŜLZ)xn+CK4QԜ3G&}L㦣RRĵ2MCLH6}TZ &oL" C~fFi΍>&Iikgd 4Ӟ2qA'@A@HsAx)U U'S5Y(*$S2#6|c1 zqp⃭?[WjA(fJ<'01 #!7-dy#B416JAõÁ:"Ʌ9)B 4:3.45c Ӄ!ҫj4BEQ1<>=A?#C2ʋj*z$,cBC:LtKOt23*kA3Q[# pl*e 2+4Ca,;3>,qBD3,a%ےWk:3~[)'6&;ïYK$>{lEG:2T2!إ-;&sțl'ғI[j:lGwl',DSB8\FKDI C2:fBdkbJBʑ+`'$K%H?jF CCuJJd38`KÍxKH'56kƜ+\%dGL[¸ =ؤɴFzAM/d ޴|w\ H"J ;×qGA,tA 4zMY =˷+!b}q=+󔽺T7,SI[ĚO$MP4? 0B~4AzmᲿT;PKЊ8 D P?3<d\tіAMNP!% $$U{0R%(]7',8hRe-0=.Q d(4m0OTE6 Y8- ;126 ;M9  +L|T{ R>R3mTǘOT ĬNSD1DH=EB*uGLսŤLZ,L OL47| М5sEa`tYLPc3p3ľ\>FS CIS<"Τq|Tk@dԜU_{ID]ms]GȜD&|"׉EQl=t[aELUE9Qؖ HNTlK!'f\ULv$^ՑE84UջeKc1jk{CKOOrS%W !dymζ;5x][ZUQn8QeS,R ?l >Ê?OUO!\h\}]U׭?]XSh]ۧ]]We^!Urk2^^l}[_ؽX9A܋U)BD]`Dsh?S!VSZusQ^uD3F_GJH]ࣕڶ˷]MbQ_VZH:Ua; _i*U}U`V\5sZU\Ĥ8V5cE6V[D֢eU]uOQՈH$+6kפ dzEGLrK(.kZ.i>>@ e6NmY<<Zɍ{SDXSXDd4aߍ2+vԅƸ[&_ NFmXͼ!.eJRY̤[JK᫵XaY T X?^ٍrK3&c>feZ(vQ[X@U] ̌:NfG&g^{Lf>eM3[8j]|=,gʺx M}ai3\_~vgxcD%U,3VݦM6̅be' ]3ëݼEwI9. Kdwf"iiif@?&?F^0fꧦ/N/.N ]iR=+V2j`}>L \CZ5Ri WTbeOLO͞2Nn./3ƹn#{cp5WeFu6c6gv$f$L5Tfڂ5re Km-[TU~=!Afbڥ!}dS.Yvʤ6΍OEihO'n=Խܕf/O/]/?G/@`AG/B?/CgkDW/EwHW$HJJLLNN[R)N7TGTGvS빞UdCoӴD$jV#dYaK1Omkov>PvE nkPz^'"Ɔ 9a삓pkGaѣUz ➵w3,YĆv%ZwnE$.d-V܆w-mӪk'g/_p0Ǿ&<^Nc;wWel< jgU_T g*p~ iQFjh7 _hDaVɰ~oVooCyEC&L_\6H[߉ljcw?zKa>[{†zib/&%OlgV xdLgOgt=qů2Qzng{q$sO-'(_rj,.誚rxg ɍxO1w+ֵ!>xȭT&]]_ϑ+ӵ7XUiylWݿ.~Uך.j?Q(s$0PY'+ۺ/3]7;?0(POV.媑N;1,3:^n_r)vOUK^w a!b"#c_ƞU`c(i)jcU&^ߧ.o/p/쓝e^_2Tn0t4u1+Drӳy {{: <} |>L~3 _<JVl8*ްlu0@IB|*Ba^$ycǒ"w\Y"f 3ki!τ r b,Y-C#}_Л& "+װ2dYV5H3ND2Q۝L'TZŎ$L5u9Ba.;q\!p1sl2qȂu]<7CWVϴ^!Z2ܢcw4/_[<׶e#o~d'd> d3ÓvUvOo~\O~Op'@TFd!rQ5m 6h)=WU*=sMօ WBa'XaCVGK 痂*\OhhE|"j f^d<!DV6Q"V^f9ez8a3ن]I3āWvLC&=-)O(JTV(wqZ ijZ⚝&Qqb{㥁*j[TV뢈v(BjJx&nꫮ: #oP; 92`~il9鞱jň}fInyhwߵ[G@k,aX-&e*ܦj\A'sAy^x?8M %!idj䞞ej= 6g&v]̴Z6[01Ԩp$iعsό I;.?sc-ݔ*Pt\k5؊0U0w_j:뭻:>;~;;; ?<<ɻ)G/\t<*?=[=k={=3/Gj髿>>?????(< @&x˜ވ R 3 r -# K8 F<"%2N|"HB9ea"-r^"(1f<#Ө5n|#(916bQ=~# )A<$"x9|g\IR$&3M^Ow3 YXr'SU|%,a#)L(rRZ"0)a<1KYP(hJ)ҙȼ&6mrMT&]QKYs4_z|'<)mG%;qIE]ZM0<*Ёa=x#u#Qj(F3 τ(( yFj(JSҕ+>J;>tyDҖ>O_$r4='?IӒ&|*T*թRV*=)4"ITf=+ZӪֵvQ9!8D=Ʋv+^׽uuGk=,bK*Cs@},d#+ɢ,f3rֈ,hC+ђ65kiSղ6m-lc+^-nscv-p =.rXG&}o Ru.x{P=/=O{Yzҷ/~6Zm败b,~ek2/R! S1$3nK=[|7,VH(*x$~1Y;/ s' 0#lȠE:TȨ52$P-sYoR,1T@5@&eU>H|9orH,E9ڇn᡻hys>?;:{4Ti5}ƴgBkz~Ӭ6:oN0'{BO4>Cԥ~IQZ4 IkHӖn4Es=:+־S+ͯEdi [7,J:o[Зֳ-\]~[nMd*#` egMoo7;in7ߵK^rJ{٘~9#no/AĞOl^9{99.q7;[^1:ʭl;>ц~49$m#tݮv7gw;鹗=.zk]J !ɗqǻ~y>knw)vV8=,y ?xv[Gly~3vi;~k7egDwyCv'!loZTcT>2%F_>ԟa>=xc݇9^ ǁ^% !2~_ ! _`=M J daQ_ # ł>߉\ Aݝ`*"!M_ *" 2&_jARҝ!"EV!Jah0gܠia c խ`=\ Z6UR!!: : 4!E""(!nb$&b!"`gCI@,@,΢,"!Õ_*j!1. Q_$6/.`"#2^/b>^}_$c)9a#i #(bD#,-#UNmUt"/f](^a0.c~_f9J ]B:]!#:"QmIDm%^έ:nܑAf=== rX`%4" If $ 0"R^cQd+~`>aٙ] 0% f%T>/ [^4%FգcM2%a}_># A&IN]?&dB&.>d؄bng=MZgcN_?O>i %se&Xr&lWc֢cdNi2o&oZf!u]l $m&_ʢr-͒oNneP^Pvnm2sMdfjV&unzUq'{n'{⦐ȧL]Qygojbgk|c)FNP)fn)v~))ZiV)Ʃ)֩)橞))**&ꞲiɢꈢFN*V^*fn*v)i~**j* **檮*j ++&.+6kjBV^+fnk@j^++BѺ+ƫUE;0707070000000000171006440000000000030000010000001023123622400004400000033276root/home/sct/doc/graphics/main.gifGIF87aSqϊ(,0,Sx0I8ͻ`(dihp,tmx#_p(lȤrl:ШtJZجvz[#zn|>W1}uYd vzVUPTEdȷCA<:x@KfQIL$R܏[ȰCA(TRDyg*xRǓє,0rHK(G2Sp:yQWbPqR¤E%%CJN&WD ̚Y Oga> BW/oĔ菌f0/^{ i˶.Ar!I6!wM<랕'Kf.0FSPz{-7ig'ѦmsX/?qSڱ}WM-O-iLYkX9G_]mwǝycK%K_yk=x.nZ6e7T7v7l*xW םaGm `ۅai 68y(V Ϲ|b^o&au`!1z܄)`a$w]Qhd5e{Inib܅ Xe_VN:iqkcG݅|:g@>±`Q'TcNimjրJj*J&Xs i蠓()**fj$}&W!A5#|+5g+^Z=왖l 쒅, :jefYy;RzZnp)Kv=:U*ʨfV~z/B_vkⵖ:*J ̎h^ml'AXBIqU)q):0+xfש7/\"M&qySl\8ψN4[-dSz;^5́-NO;'N[w{ GN(w~r>Wsy}c9#]Cw7֖]P֔,iED{˞sw:nrKůJoWH=>~a!9|+ũx"y}hD6;ݓWYԗ¾roݣ1_'sXt=kFCޠOuދYrduvYq7Ӗtq7}?l?W?Bl7˟b&eXFuHŷ~M Uͅ\Zw@W5v[S]=;6TdՕcXd׀"Xe֦y9G%]Yʫeꫫj>}7fN9*IZZ dڭ޺ZzŇe3yem)tg:JߺBezj}s.Hhy79$bJ˯k-I|V:Uփ)`9H;˥ ܺ8+;Jf%Y_HM/z2R;.B :Q:{uκIE;Q۴3N;lK;K(̸XfcH˴4Pm{jBY>ۢZ{,؁O)+ZPh;rW8ZD+iJJfKKBhOڟj{;뤪ɻ[K" ӻZ8U׻v)NG~fM}ƾﹸV#I@%<|$ f<|&d <†$T'L“d3ѹxڧt٘z7H\a{-VŠ֌R)2XN[xv4Kfv#*In'ʲYj.l$˟UTeU`Wt`˖\~(i~hdpL\^kQh>ln(TɍzKfM7G^{^GF~ WȴE/]hIlu.nt銈L|Ǚ:Lћ(v'5ɲލa Ύg'}gd;* 1Oɑnnbd%FKkĐҗWoýΤ.wH΍^@ MwP$ӊ|\t%Fϝ@KE_=^FfH>RK_~S/-b_dflT/r 2|oz|~[a?Z=:oo[]oY疘 VL?VO/E OZ3op 7zE>V0jVߺ@ng^jN\mOFL'ĘDHmuD햸5S?F0>Igmg\(vciBT*Xe^l(0Q@EHDA0GTJZجv+ ) T`?q03~g}Jhy~fpu^In{vn$/oqCDB> G^xwVSS\sV-]go› tyv}LͧKĺOɔj {h 4vYp!!vc)hP刖!)cosZF4'vJ6(}-eqZZ&bTa@FZXci$qVDgch5Yc^F*iND`饗kr*)Jꪬ*:78鬴z*:fj`klSRɚ=%КxVkfBzц랶km'.Ze+kVݶ /|l[W p_G,p>U ŌL,$Wɰls*/Ƽl',DͲL7".%ۨ{ ]/7u;zזZkqq-|m\s$k܂HI Sr}τQIVA0/Kjl AmIr 7hQ8\93!P|"ݩ#U@I!= mvqBW2aIrȅr|jCυ" (=9 1P (9F)P j(3l6,(,ǃ؅Lk(aj=Ar~k_CItF  s8"PĂs 7TpӐF@L',vj+9f+$HO4fGҩ)AY6շ):09$ (Nc? :S>ӝ %dGivu-9}RQ#r;.eԕh{f'ѢƑ\᪽zᤣ:Aug05hXYIF4Oh!"5b&kVC&O%d0K>?,6R̶u*V{Z`UlTҶlխ8;FsЍ~K:BK.UjUֺҮx+z׷om )[+wԥ&}%uf7/K8pL0^ [E?0L Jo{[ f Zq\LcX2Gw8dz౐]9wCNNJ|q)crߣimV>n۪w; S!Zxi^5̆w_{f^"8qǬm3&Qx= ϊ~\f ?b]>,X)(HwuN] YPْru בֆӄfh]P2edܪFCg"&(.8O"4D ] ;?Ýp3%+_?ZꡗSi!yB󴷶-mY$]'mkM= y# b~5__Ԯn̑3kFˣ}q?:3qOEʛ( 3B:&9@I{Fmq;晻c9I:#vUdjqz5aC=/6E:CUVCI{D_.uwv\QMT6݈{ykp0̼ UkgbR!{^:HKu?[uE!̓T̫]ܫB#a)hDĝ$JUTN4wK}Oyh6s~jaz`tml*wosLLiL{HV>4Viw=5e{\;:e]_gFy2M`\C\e8`AbPkO1RxCUcX؅[d^8addugȅjĆ}orCJth+E؅Xe(df臃ֈ{<}Mg Ƈ͕ĉB8uWGa9(H3K؃hR?Xx:h˨8u\cp@f;hq'zjBoiبLs;^wo% 8XJ@'8iHw8tijbIOW"k&m ~fhVT1mG߇Ewz$yD .]8h'l|w{Ghs#)zB%RV|Ir5 QW-'JX}ԋxnT{/DDmF"(ZE\t)$P~rx0'OiALٖۂԊ9kיd{jQX'iYCLNfNT"Pu!MzG~#sa:=nGcל_њ(gn'BwP|~)"'gtILI{;RgةZZuwIT#9'~6JdRײjEj1 ,sjijԱgBTMK'&D+y?ǵ2'3BQW^,Lm>AvK^*'IeDЙ4 ƫܭ<n7.[ ;8zйޮJ|l8zp Kbn!IT)\^cѾc.^c>eNcdbޥʋ>`|_-NMNކ>?~~ H 1N.^(˪8!?/&ҁNOۻ!#='=\!;#һS1;9΄9pA3@N~A]>'_5O]@n0}*1O>>@/l.[ +nMCV8tԎm-r)(dm=9|lR^ _k]ɥbe/v`>?[Ͻu>qޓdp-~/*YP.Es2禮 Ÿڙ<ցYX/7_񍞲X0yKYLTu&$zÆ9 0κ~l +0I l 3HX,ckkٍLb )K7s,k*%p{*]fzAـY4^K%9ǀ1Ofe;Xu_x{zvD<%b>G9}}y\Q# ,!?bwnomirdFB]γђt΢Z-5 ۋ|z(г즀֚|`z oҮj+X^L/A+_0 112)V+cKv4=y0rOfDy(֒RWvl>2-y%'rL0N{gbd`*ZDykcX--,j6 팱LQ\漲%p :m㷘js̠CҢSٳkcw-NrC۔Y.(ׯ} _ÓZsfpGrϳkνz꺯Ͼç=Ͽ'}Th&'U}pm Vhfanh($h"\}ys0(>Hx3<W#u7Did.?ڧbMPF)N6.٠XfI l)d"yAXlޙ~ytiTi%wu`N 衈&JCJɧFꧠ+6T(f閔ߦDžZ&s͑qdvIԕRU %vZکk zrvV(]^riʒl]ŧnTFfŊS1Qkf5K,=۪pqҮ3ēv1D2%s261"0:{4sdJlp5/QmֹًM/2W(*4|-cvX-#eb1 p3j9"b*)֓p`H|[BgDt'|52s)/O 'FR%e3fSR7i־|IxPG{6;uGt*M[L"ӸA]9r%d0 #SqWe5M6nj@744)E`ƚUs#L鱏VP]0*e FV- W%sD[ 9ԾYU1oe4KUE^ߐJSa+<0u؟Woz$gv,K[]vk:ԲƶsC4` C湭 ya&VBUQ~V< &$QНVAV`f Ȣ/Qlid\ yh1 *F` m<"y#*b6vG1 {$I~25vd89uns;7>3J"&ҭz}FH^t`轏RyHJMƍ<`/gɦ k<&Qh>ޡ\WF nfS V(@<:Gsi2ˡaeH3% ̘yXlM:,fYejMROj-S%(Te%I%(ChS 8ɢf(I-eҔ&Z ӚڔD2ECoӞ*(PHM*w(:jv ժZ56LUհd] X *9MZֶp\J׺xͫ^׾Ul`MbY̳.UccZ e7{d f QњiW;V2S4:#V=[d3A33Zs~Go!K ۑZlp\7ᄖq+]~*Scw ^Azr'7=΅2ŝʁ渢m%kD/xt%1N ;NsEHGU;^isn{=ҝm\ iƩ2%XeizUMĒd Aw NLrV~;N<#f-,[g\ .5iE`z o&/3CϸC ўXaSgf(^,2Eڃ.,h4xМ|G[s([JSȨǦNߥ3oK=x(~Luj&9ϓd|h7Z-఺vmIxϻ=O;񐏼'O[ϼ7{ϼYқOWֻG۞ wOO;ЏBr?| Ͼ{Oc?7O"X~W|g7 ؀W՗x |`W x$X&x(*,,#(-284X6x8hw ;0707070000000000201006440000000000030000010000001023123622400005200000025115root/home/sct/doc/graphics/testinprog.gifGIF87aqϊ(,0,I8ͻ`(dihlp,tmS|pH,KUl:g.JZجvzxL.znp X~sdufybxwa`_Nu9PMIGvƭ F e`T82Qŋ3j|Tq1qɓ(S8RN+ IyidB8 4'b|~I4BQ(P]#S6WW) RBJEMAPp-SUK]*o6a U+Uf6OMի+Z1$g6Z3.홆p{S;_ҭ! =5vmЮЎfDdX7QB=lt恭8Oibg+]K:x6^۾]sSϴby=VQpWg2aiW\ r؜jv}"E"֢tbjb%η~Ҙ_l8ҘZ)ƨUOPp1IL)H(ZtXߋhߍ%eGWdjYҹprehI${ihmtK'yDpXFOb҈ _\QቝqBV%xڍ虦j)q ^jZo-*ѓF9iXTZ3^j f+Zh+ƥ‰)Ŧ*Aň/nEҵD;:q֞m p襛'9ry/h۾/VRJH8g(A*Bt *536()ydQ\*[I WR6Xm$}񷪷MԢVGݵy_i9l~1{*xP~7Ye箞KrYF.V{$ͬγ.h IBmcx@D:򑐌$'IJZ"׽Ff (GIRT$:GT򕰌,gIQ2le-w^ o<xRL2fꑘrc%IjZ\&43if 8)m:W:IFvѝSt'O0Y\@~q=І6 hD\zӊbFh9γ HGJj\4ς*tGa*vT7eDk:љ&@%PJ>.*MRc2-M@{*StUDT41-XJ4bZ)RsT'Z4; jV*՘F? V*ם-`Kؓ5au)`jŦ\g`JUuve,\-vv hzTςWte T*V5|ld1YͺŪZj -YcK۶𭛅mqJְQEZ ZheEsݹVҕlt^^ͦpKܺjѻ t}vU"6N2 ,`R7n]DW~*JYX 1/ \`ʲw~9[0fㆫ>3wcOhs"D"W<PqS$Jݫǿ\,;Kv+ʇ79UjT)rwX~)seQנ_75YWX3/qڎ+1WvA^nޖ0m{n4aQ>+; G /vCzz+Rwl~p={ovS]1X'a9~ۨ]:ztO>&}!?綯|wԃĕx^Mm}o ǫUdy?t'7v߲w||7}t7}XsxsaxwH~U|^ y8\{7eOwyvU~WQg}W|.W{08~WOAxq#|XyEX_s'E_)G'H'rqYxTT؄<G>^wxzwwgwwp74u^_'uWs{+bdžLJWQfֆ.`Vf|mve~w~6xHtk@wG{)(yaD`V({lX! huHrmpFXf(cWglKxݶwxj$h8f؍ȃuXl瘎(l؎kjXHje؏9Yy ِ9YFhّ "9$Y&)yW֒.02?D (S3<ٓ>@ PoLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖ\i@DIEbfeGhȒKz|ٗ~9YyL USd@ИF9LHkJyٙjTR䘐yvUٚ9I)PĘQD9Q jy N MYiI)YZ Yɛ9MJ6VO p9bɚLɞP9VٕٗʙYi@IěIel䙜әڞZiJ˹kyyQ  I) Sy&Jڡ9:K ?*ٞ"jIFMNʣyAOʤ:Wj*TԠI47S:ɉvJa]ڤHz|pڟuڧ:{:UwJùJGz*Ze*fg )9o:J9~ zEʪgZc*ʨ*ʜ̀9ZIV: jzZꨕ*:`Szù:Y@ϠjĬ͚ Zڙ8*;6zjيj {ZiJ*E mگK۰Ě){%+ Kʲyt [:Zj ~ڴתR;)I;>@O$Ů<[ʟʵՉLjoU[Z: }K" P겍k:VfchK3۳{UŶۺ'>XT9Kc]ʻÛJśZ;[{ ;LXӻ;䫼۫dKc{[[+;Kۿ\K{k^:4{FJ<כ[Aj+Lx)˕/B-\3л!{ڷv*̖C\1|[TY8Li+K~;ZKJ;q+iٴ`Zi*Ǝ 勮Rd *:Z@ T۵m,zW `˯q /;x\LŖWY>C6+,: \~ ŭ|9|,~: k]ڭ`<|l{ؚl)S U\͇jȇ|\|ˌPĶ:L^zl\LVll۽͗(~a&nߑMjl_'>㔝ѽMpbZN+4tm\ߺU;BNMx-V~|)m15X`.ZMa~h½i}㆝irNc~N=xOY?tzse^V.چB}W\Sml]H\_ꁙĂשߜNǜԏZ=Lq=NkνM>6z\3-w| ^\z-\o+\J[b y8* Ӆο>>?ի\]|[Nꐎm#Nyιl[?!/'ߚnn^)@)? 4m6mO#/nl LD_DdxKAOyMx,zb=2R ъOɎW{{Y8 |K$fslȫT-Pe}zT*߂.DzbFݺ{K,ۋk|6.g~ȼ9줣> <)HIp:l@YJ0 N ZqF#Dѓ /Ѝ 7R;\FD1JYb@-mr)#H* T9r)S3 44sL?BAD;4E;kT>m-Yʔ쨑RlΪ4'BTR-frKKYԏ?-UFtՃܓ&jn@$6q#S9Am֓Zv[4STQOU>FCw]vWY 9m^@Lw_~9xgU5`_gXz Vxb+a#bCYی90=ye[6dSN7]fYY?%㜃z?vhHXvFiƂRzkhÀ6;:eT2+ҳǴ^C7sn W.o9'6|rAQvS ڪo rKͩfc|<3M}KP(=o}6ȷvOZw]6ym4%DBV?{{R~w9_|g}O!~3d]TI$gΡObd`)2=xQ/fxA nĕ;/#$ A!+da6& a mxCAؑPC qDj"Ļ4L!&[̚r*07#͈0/ QDƦ+ıKh4l~*tcc^<@&?c!GLz'RC$hŹ8gy$TIa!Iu(].R=VJ򕻔T,xIPUj^#W_Rx{zb:1dHh%%cEL\f7>Ӈ_,%03Lo2<4 Nu!L) "O|&Ҵg>}V$(jwT;hR̹PًhEg7QEZTègmQUsQ¯3=XRMrӓT*@epMlpH4}TOcʭ\$rMTaK:Kt:Qi7Ĭj[T.M)p51[u ׇ@ƌQ_ XnNJ,jL*W]rcî論(T\ڲXيBvCmdjfڧ2!3frTi ۔:VbpWBjh:[ZFW.]r m4w_ z bgmd{_i_[ eśa;z`#Xԝu)a KxoI x{fW+&`:,(]_hz3q[_xj/vc$ 6_9d(iye,n=e-ٙBed0YB[p3f80AfWg<*s,f5 ݅=~N}F?Zl7OZ(=?6w8FM-NZ Uu/@k[ZֵykYثO]lc=ig?і]mC_}moNesV7n$=i\o{a ^Up)]_xg9q~m= hry(.M>Vxw~K^k34E|sk/xqeYD/{W~Of@[:a}u6h:voPک<aO)dwA<{Q63w} bE#>R|?xW{/~>\2w<[z+=9yA B|f#]'~|'_g~|G_ӧ~}g_~}_孏~_g~_;8?~=8 @@,@<@L@\@l@|@@ @ @ @ @ @@Nʿ,AC?C@ 8DB24<3DDLDE\DFlDG|DHDIDJLDB=]?ODP EQER,ES<ŭ!Y0Lt(:XDEZE[E\E]EE H"`D_YD1\FflFg|FhFiaE:U$DWkƶFj GqGr,Gs^\:>ie%d4\՛b d+6.`N]PPa)L^]ZZ%Z'~ߗN_E.`ڦ%cuU_&n?VZ=dfe;-b}߃UffWeldJnIoՋO&:/6 Tnf=3Vd^Y^)Fxa傅}yg}V]aV\%~emMcY`WcMS ΡbodNM,gR.e_iTkNgTk†n>FnF,l˖kd3lglvQulOqi+Kdi.k~l>m  @G_m/ n>nBNnnntnnn@*nnnoo.o>oNo^ono~oooooonoopp/p?pOp_p6/Ixp p p p pppqq/q?qOq_qoqp qqqqqqq r!q r%_r&or'r(r)/r?rr*r.r/r0s1r-$s5_s6os7s8g23G8s9rnB/tC?tDO<t Using the SCO System Certification Tests (SCT)

Using the SCO System Certification Tests (SCT)

The System Certification Tests are a suite of automated tests designed to satisfy system configuration and stability requirements for the SCO Certified Hardware Program. The SCT interface controls the configuration and execution of these tests and ensures the necessary hardware configuration information is recorded. In addition, the SCT interface provides functions that collect and prepare a handoff file for delivery to SCO.

The SCT package replaces the SCO Platform Load Tests (PLT), and should be used on the following SCO Operating System releases:

  • SCO OpenServer Release 6

  • SCO OpenServer Releases 5.0.6 and 5.0.7

  • UnixWare 7.1.3, 7.1.4
The Platform Load Tests should be used for certification and testing on previous releases of SCO OpenServer and UnixWare7 releases.

About Certification

When a vendor makes a new system or configuration available, it can be certified on SCO platforms by submitting a data handoff created with the SCT package for evaluation by the SCO Hardware Certification Program.

A certification handoff requires a full definition of the machine configuration and a minimum test duration of 36 hours with all mandatory tests:

  • CPU

  • Disk

  • Network (requires ftp access to another system so that data transfer can be tested)

  • Memory

  • CD/DVD

  • Floppy
It is possible to waive tests on the floppy and/or CD/DVD drive if these devices are not installed. The tests are discussed in detail in Understanding the certification tests.

Rebranded hardware and compatible hardware programs

There are two additional programs related to hardware:


Engineering Services Rebranding Certification Program
A pass-thru handoff certifies existing OEM hardware. SCT testing is not required, but a so-called pass-thru number (a token assigned by SCO) must be entered into the machine attributes along with the normal set of machine attributes to be filled in by the vendor.

Channel Partner Computer System Listing Program
Channel Partners can also list a rebranded system in the SCO Hardware Certification Program as "Compatible."
For more information on both programs, see:

http://www.sco.com/chwp/programs/

Overview

To submit test data for the SCO System Certification test program, you must perform the following tasks:

  1. Start the SCT interface.

  2. Define the test machine configuration by supplying vendor and device information for the CHWP database.

  3. Configure the device tests. Networking tests require that you supply the machine, username, and password for the ftp account. If you are using the SCT to test individual devices or drivers (instead of the comprehensive certification tests), you have the option of disabling any tests you do not wish to run.

  4. Execute the tests. The test displays the elasped time of the test run and the time remaining. When complete, a summary of the test results is displayed.

  5. Archive and hand off the test data to SCO. The results of each test run are stored by the SCT application. When the test results are satisfactory, you can choose the test results to submit and the application will archive them in a form that can be submitted to the SCO website for acceptance review.

Starting the SCT application

To use the SCT interface:

  1. Log in as root and open a command line window.

  2. Move to the SCT directory:

    cd /home/sct

  3. Start the SCT interface:

    ./sct


NOTE: About character mode:

The SCT interface can be operated in character mode, but the Graphics test will not run. If the character display becomes scrambled, you can redraw the screen by pressing <Ctrl>r or reset the display by entering the following:

<Ctrl>jstty sane<Ctrl>j


Defining test machine configuration

Before test data can be submitted for certification, the machine configuration information must be supplied.

To define the machine configuration, run SCT and select Edit Machine Configuration from the Edit menu. The default attributes are displayed in a collapsible list. To configure an attribute, double-click on it and select a value. (To add a new attribute/peripheral device, select Add Peripheral from the Edit menu.)

The SCT software performs basic auto-detection of the following:

  • CPU type

  • Number of CPUs

  • CPU speed

  • RAM size
The software also examines the hardware configuration and displays "hints" at the bottom of the data entry form for each attribute. After making changes, select Save Changes from the Options menu.

You can repeat the auto-detection at any time by selecting Re-Auto-Detect Hardware from the Options menu.

Configuring Device Tests

The main SCT display includes all the controls used to configure device tests.

Some device tests are required (and are highlighted), while the rest are optional. To enable a device for testing, activate the Enabled button in the "Test State" column.

If the system to be tested lacks a floppy or CD/DVD drive, you must select No CD/DVD Drive and/or No Floppy Drive. This enables you to run certification tests without these devices. However, if an external floppy or CD/DVD drive is required for initial OS installation, the same device must be included in the certification test run.

The default "Test Duration" for a certification test is 36 hours and cannot be changed unless you de-select Set for Certification Test Run.

Certification Mode versus Max Stress Mode

The default testing mode is Certification Mode, which runs the system with a consistent load. Max(imum) Stress Mode can be used to perform high-stress testing on individual devices and drivers, but is not necessary for certification. When the Set for Certification Test Run button is de-selected, you can select the Max Stress Mode button in the Test Mode column of the display.


NOTE: When the certification button is de-selected, test results are not eligible for certification.

Setting test attributes

To change the test attributes, select Network/Misc. Configuration from the Edit menu. The following are available:


Ftp Server Machine/Username/Password
the ftp account to be used for network transfer tests

Maximum errors per test
To prevent tests from continuing to run when the error message count reaches a set threshold for any one test, this value is set to 100 by default. If the value is zero (0), the test run will continue no matter how many errors a test generates.

CD Record Device (auto or N,N,N)
If auto, the system default CD/DVD recorder is used, otherwise the SCSI-style device address (also used for IDE drives) can be entered. The system default device address is found in /etc/default/cdrecord. You can also obtain a list of device addresses with the cdrecord -scanbus command.

CD Has Test Pattern
The CD/DVD drive test can use a special data disc written with a pattern, or any data disc 300MB or larger. If you have created a pattern disc using the SCT application, select the Validate CD Test Pattern button, which tells the test to verify every byte. Do not select this button if you are using a normal data disc. When Validate CD Test Pattern is not selected, the test sums each 1K block on the first pass and compares this sum on subsequent passes.

USB Memory Device (auto or /dev/...)
If auto, the default device is used, or you can enter the actual device name.

Understanding the certification tests

The Certification Tests are listed below; those marked with an asterisk (*) are mandatory. For more information on the test patterns used for disk writes (whether local or over the network), see About the test pattern used for storage devices.

Test Description
CPU* Generates a CPU load by running both integer and floating point operations. When run alone, the test produces statistics of CPU throughput. In Certification Mode, systems with more than one CPU are exercised with one test per CPU up to the total number of CPUs minus one. In Maximum Stress Mode, one test is run for every CPU.
Disk* Reads and writes large files with a test pattern. If Certification Mode is selected (default), a single file is used. In Maximum Stress Mode, four files are used simultaneously.
Network* Continuously executes ftp commands to transmit a test pattern back and forth. In Certification Mode, a single ftp process is run continuously. Time for a send and receive cycle is timed for minute. If Maximum Stress Mode is selected, four ftp commands are run with a cycle of one minute.
Memory* Creates a very large working set of memory pages and randomly accesses them. These tests autoscale to handle large and small memory configurations appropriately.
Floppy* Reads and writes the floppy drive with a test pattern.
Graphics The system cycles through forty standard x11perf tests to exercise the graphics system. Certification Mode is identical to Maximum Stress Mode for this test.
CD/DVD*
USB Flash Mem
For these tests, appropriate data media must be inserted for read testing. For USB drives, there must be at least 300MB of data present. For CD-ROM and DVD-ROM tests, the installation CD for your SCO operating system is ideal for testing. If the media inserted is inappropriate for testing (such as a music CD), you are prompted to insert another disc. The mode does not affect these tests.

Running the tests

To run the configured tests, select Run Test from the Options menu. The test display is dynamic and shows the progress and any errors as they occur. You can make menu selections or view log files from the SCT interface without disturbing a test in progress.

You can stop or abort testing at any time by selecting Stop All Tests Now from the Options menu. (Selecting Exit from the Options menu also stops all tests.)

About the test display

When you start a test, the main SCT screen switches to display test status and is refreshed every ten seconds. A green light indicates a test is running. A test flagged with a red exclamation point (!) indicates one or more errors have occurred. The number of test iterations is also displayed along with the number of errors for each test.

Viewing test results

To view test results, select Handoff/View Test Results from the Handoff/View menu. A list of test sessions is displayed along with a summary of the results. In this example, a session named "run1" was run with all required tests, encountered 124 errors and was aborted by the operator:

! run1 36hr missing:0 abnormal_stop errors:124 tests:6 NOTOK

To display the details of a given test session, double-click the entry. The test list resembles the main SCT display, with the addition of the number of errors and whether the tests ran to completion.

Double-click on an individual device test for a given session to display the log file contents. The individual test logs are located in the /home/sct/logs directory.

Tests are marked whether they conform to the certification handoff requirements:

  • they must have run without errors for at least 36 hours

  • all tests required for certification must have been enabled
In addition, the machine configuration must include all items marked as required with an asterisk (*). The handoff process displays a warning if any of these requirements is not complete.

Preparing test media

A data disc of at least 300MB is required for testing CD and DVD drives. (music discs are not suitable). The installation media for your SCO operating system is ideal for testing. If you need to generate a suitable test disc and you have a writable drive installed, insert blank media into the drive and select Burn a CD with a Test Pattern or Burn a DVD with a Test Pattern from the Options menu.

For USB flash media (an optional test), insert the drive in a recognized USB port and select Format USB Flash Device from the Options menu.

Handing off test data

Handing off test data for certification consists of sending an archive of the test data to SCO for evaluation. To do this:

  1. Select Create Handoff File from the Handoff/View menu.

  2. Highlight the desired test results from the displayed list.

  3. Select Create Handoff File From Certification Test Run from the Options menu. If you are a vendor authorized for Pass-Thru Certification, select Create Handoff File For Pass Thru Certification from the Options menu. The data file is stored in /home/sct/handoffs/runxxx.tar.Z.

  4. Log on to the SCO Hardware Certification site and follow the instructions for submitting your test results.

About the test pattern used for storage devices

The file tests produce a test pattern that can be examined by a sophisticated user for troubleshooting test runs.

The filename for the network tests (as placed on the ftp server) is located in the root directory and named as follows:

/sct.pid

where pid is the process ID number of the the sct invocation. This ftp file has a maximum size of 1GB.

The disk test also produces a file called disk.file in the /home/sct directory. (If Max Stress Mode is used the filename is disk.n, where n is 0-3.) Each test run creates a new directory in /home/sct/logs/runNN. The disk files have a maximum size of 1 GB each.

The test pattern consists of text lines of 16 bytes each, with 64 lines making up a 1024 byte block. Lines are of the form:

000bBBBBBBBoXXX

000 is the sequence number and is always zero (the test pattern was borrowed from other tests where the number could vary). BBBBBBB is a decimal zero-padded (no blanks) block number. XXX is the offset (hexadecimal). It increases by 16 for each line (hex 10) and the hex letters are in caps.

Some example lines follow:

   000b0000000o000
   000b0000000o010
   000b0000000o020
   000b0000000o030
   000b0000000o040
   000b0000000o050
   000b0000000o060
   000b0000000o070
   000b0000000o080
   000b0000000o090
   000b0000000o0A0
   000b0000000o0B0
   000b0000000o0C0
   000b0000000o0D0
   000b0000000o0E0
   000b0000000o0F0
   000b0000000o100
   000b0000000o3E0
   000b0000000o3F0
   000b0000001o000
   000b0000001o010
   000b0000001o020
The purpose of the test pattern is to allow every block to be identified uniquely, and to allow the test pattern itself to identify which block it came from. Thus we have a human readable format that allows relatively easy tracking down of various kinds of data errors.


© 2005 The SCO Group, Inc. All rights reserved.
0707070000000000221006440000000000030000010000001025235521200002600000210650root/home/sct/handoff#!/bin/osavtcl # # miscellaneous utilities shared by a few programs. # # globals set version 9.0.0g set RESPATH "[pwd]/res" set BINPATH "[pwd]/tests" set LICENSE "$RESPATH/license" set EULA "$RESPATH/eula" set PID [pid] set sct_config_file "$RESPATH/sct.config" # path to user created machine data file. set chwp_db_data_file "$RESPATH/chwp.data" # path where test run logs are kept set sctrun_logdir "[pwd]/logs" # path where test binaries are kept set sctrun_testdir "[pwd]/tests" # path where handoffs are created set sct_handoffdir "[pwd]/handoffs" # Test data items (cheap way to make a list work like a C structure) set TS(class) 0 set TS(type) 1 set TS(name) 2 set TS(description) 3 set TS(required) 4 set TS(media) 5 set TS(enabled) 6 set TS(mode) 7 set TS(running) 8 set TS(iteration) 9 set TS(errors) 10 set TS(pid) 11 set TS(elapsed) 12 set TS(normalstop) 13 # Configuration data items set CS(runtime) 0 set CS(netmachine) 1 set CS(ftpuser) 2 set CS(ftppass) 3 set CS(localgraphics) 4 set CS(certrun) 5 set CS(nofloppy) 6 set CS(nocdrom) 7 set CS(errormax) 8 set CS(cddevice) 9 set CS(usbdevice) 10 set CS(cdpattern) 11 # full list of run times set sct_run_list_full [list \ "1 min" "5 min" "15 min" "30 min" "1 hr" \ "2 hr" "4 hr" "8 hr" "16 hr" "24 hr" "36 hr" \ "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] # certification (short) list of run times. set sct_run_list_cert [list \ "36 hr" "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] set sct_run_indefinite_time 3600000 # # read in our saved values if any # returns zero if no file to read # proc \ sct_read_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file if {$file == ""} { set file $sct_config_file } if {[catch {open $file r} fd] != 0} { return 0 } # silently ignore errors while {[gets $fd line] != -1} { set list [split $line ":"] set type [lindex $list 0] case $type { config { set name [lindex $list 1] set value [lindex $list 2] if {$name == "certrun"} { set sct_config_db [lreplace $sct_config_db $CS(certrun) $CS(certrun) $value] } if {$name == "runtime"} { set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $value] } if {$name == "netmachine"} { set sct_config_db [lreplace $sct_config_db $CS(netmachine) $CS(netmachine) $value] } if {$name == "ftpuser"} { set sct_config_db [lreplace $sct_config_db $CS(ftpuser) $CS(ftpuser) $value] } if {$name == "ftppass"} { set sct_config_db [lreplace $sct_config_db $CS(ftppass) $CS(ftppass) $value] } if {$name == "localgraphics"} { set sct_config_db [lreplace $sct_config_db $CS(localgraphics) $CS(localgraphics) $value] } if {$name == "nofloppy"} { set sct_config_db [lreplace $sct_config_db $CS(nofloppy) $CS(nofloppy) $value] } if {$name == "nocdrom"} { set sct_config_db [lreplace $sct_config_db $CS(nocdrom) $CS(nocdrom) $value] } if {$name == "errormax"} { set sct_config_db [lreplace $sct_config_db $CS(errormax) $CS(errormax) $value] } if {$name == "cddevice"} { set sct_config_db [lreplace $sct_config_db $CS(cddevice) $CS(cddevice) $value] } if {$name == "cdpattern"} { set sct_config_db [lreplace $sct_config_db $CS(cdpattern) $CS(cdpattern) $value] } if {$name == "usbdevice"} { set sct_config_db [lreplace $sct_config_db $CS(usbdevice) $CS(usbdevice) $value] } } test { set name [lindex $list 1] set enabled [lindex $list 2] set mode [lindex $list 3] # find the test and update it set end [llength $mainscreen_db] loop ndx 0 $end { set entry [lindex $mainscreen_db $ndx] set tname [lindex $entry $TS(name)] if {$tname == $name} { set entry [lreplace $entry $TS(enabled) $TS(enabled) $enabled] set entry [lreplace $entry $TS(mode) $TS(mode) $mode] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } } } } } close $fd return 1 } # # write out the current configuration # proc \ sct_save_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file BINPATH if {$file == ""} { set file $sct_config_file } if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return 0 } # save config first set list $sct_config_db set certrun [lindex $list $CS(certrun)] set runtime [lindex $list $CS(runtime)] set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set ostype [sct_ostype] set osversion [sct_osversion] set nofloppy [lindex $list $CS(nofloppy)] set nocdrom [lindex $list $CS(nocdrom)] set localgraphics [sct_localgraphics] set errormax [lindex $list $CS(errormax)] set cddevice [lindex $list $CS(cddevice)] set cdpattern [lindex $list $CS(cdpattern)] set usbdevice [lindex $list $CS(usbdevice)] puts $fd "config:certrun:$certrun" puts $fd "config:runtime:$runtime" puts $fd "config:netmachine:$netmachine" puts $fd "config:ftpuser:$ftpuser" puts $fd "config:ftppass:$ftppass" puts $fd "config:binpath:$BINPATH" puts $fd "config:ostype:$ostype" puts $fd "config:osversion:$osversion" puts $fd "config:localgraphics:$localgraphics" puts $fd "config:nofloppy:$nofloppy" puts $fd "config:nocdrom:$nocdrom" puts $fd "config:errormax:$errormax" puts $fd "config:cddevice:$cddevice" puts $fd "config:cdpattern:$cdpattern" puts $fd "config:usbdevice:$usbdevice" foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] puts $fd "test:$name:$enabled:$mode" } close $fd return 1 } # load up the test list, and set all default values. proc \ sct_init_tests {} \ { global mainscreen_db sct_config_db set db "" set list [list test test cpu "CPU" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test disk "Disk" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test network "Network" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test memory "Memory" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test cdrom "CD/DVD" "Required" "CD or DVD with at least 300 Mb of data on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test floppy "Floppy" "Required" "Formatted Floppy with no bad spots" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test graphics "Graphics" "Optional" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test usbflash "USB Flash Mem" "Optional" "USB Flash Memory - with test pattern on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set mainscreen_db $db # init config data set sct_config_db "{36 hr} unknown.sco.com ftp ftp@unknown.com [sct_localgraphics] 0 0 0 100 auto auto 0" } # # get the ostype, known types are OS_OSR5, OS_OSR6, OS_UNIWARE7 # proc \ sct_ostype {} \ { global BINPATH set ostype [exec $BINPATH/ostype] return $ostype } # # get the version of the os # proc \ sct_osversion {} \ { global BINPATH set osversion [exec $BINPATH/ostype -v] return $osversion } # # given an ostype, produce a user readable form # proc \ sct_display_ostype { ostype } \ { case $ostype { OS_OSR5 { set osdisplay "Open Server 5" } OS_OSR6 { set osdisplay "Open Server 6" } OS_UNIXWARE7 { set osdisplay "UnixWare 7" } default { set osdisplay "Unknown Operating System" } } return $osdisplay } # # like split but instead of chars the entire string is the delimiter # allows multi-char delimiters. PERL had regular expressions for delimiters. # max is the maximum number of elements to split into # proc \ mysplit { string delimiter max } \ { set list "" set count 1 set len [clength $delimiter] while {$string != ""} { set ndx [string first $delimiter $string] if {$ndx < 0 || $count == $max} { lappend list $string set string "" } else { set str1 [csubstr $string 0 $ndx] lappend list $str1 set ndx [expr $ndx + $len] set string [csubstr $string $ndx 9999] } set count [expr $count + 1] } return $list } # # convert internal mode to display version # proc \ sct_mode_external { mode } \ { if {"$mode" == "Hard"} { set display_mode "Max-Stress Mode" } else { set display_mode "Certification Mode" } } # # convert external display mode to internal name # proc \ sct_mode_internal { mode } \ { if {"$mode" == "Max-Stress Mode"} { set internal_mode "Hard" } else { set internal_mode "Gentle" } } # # detect if we are in graphics mode and local # proc \ sct_localgraphics {} \ { global env # get DISPLAY from environment set list [array names env] if {[lsearch $list DISPLAY] == -1} { return 0 } set display $env(DISPLAY) set tokens [split $display ":"] set displayname [lindex $tokens 0] set hostname [exec hostname -s] if {$hostname == $displayname} { return 1 } return 0 } # # fixup our path so exec works. # we have a minimum set of path requirements. # this was provoked by /sbin and /usr/sbin being missing when # you log into X on legend., which broke hardware inquiries (hw command failed). # proc \ sct_fixpath {} \ { global env set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set minpath "/bin:/etc:/usr/bin:/tcb/bin" } if {$ostype == "OS_UNIXWARE7"} { set minpath "/sbin:/usr/sbin:/etc:/usr/bin:/usr/ccs/bin" } if {$ostype == "OS_OSR6"} { set minpath "/bin:/usr/bin:/tcb/bin:/sbin:/usr/sbin:/etc" } # make sure all required components are in the real path set envlist [split $env(PATH) ":"] set minlist [split $minpath ":"] foreach required $minlist { if {[lsearch $envlist $required] < 0} { lappend envlist $required } } set newpath [join $envlist ":"] set env(PATH) $newpath } # given a global variable name in a variable, get the value of it. proc\ ind { varname } \ { global $varname set iname "\$\{$varname\}" [eval return $iname] } # time conversion routines from my internal format "xx hr xx min xx sec" to secs proc \ sct_time_to_secs { timestr } \ { global sct_run_indefinite_time if {$timestr == "Indefinite"} { return $sct_run_indefinite_time } set list [split $timestr " "] # now we have pairs set len [llength $list] set secs 0 for {set i 0} {$i < $len} {set i [expr $i + 2]} { set str [lindex $list $i] set specndx [expr $i + 1] set specstr [lindex $list $specndx] if {$specstr == "hr"} { set secs [expr $secs + ( $str * 3600 ) ] } if {$specstr == "min"} { set secs [expr $secs + ( $str * 60 ) ] } if {$specstr == "sec"} { set secs [expr $secs + $str ] } } return $secs } # time conversion from seconds to my internal format "xx hr xx min". proc \ sct_secs_to_time { secs } \ { set remain $secs set hours [expr $remain / 3600] set remain [expr $remain % 3600] set mins [expr $remain / 60] set remain [expr $remain % 60] set secs $remain if {$hours} { set str "$hours hr $mins min $secs sec" } elseif {$mins} { set str "$mins min $secs sec" } else { set str "$secs sec" } return $str } # # sctrun.tcl # # Routines for runtime and logfile management # # sctrun_start - make a new test run, initialize the logfile area, start the run # sctrun_poll - call this routine to poll the status, updates mainscreen_db # sctrun_stop - stop the test run cleanly. # sctrun_abort - attempt to kill all test processes. # # post mortem test analysis: # sctrun_list - list all test runs by name and their attributes # sctrun_load - load data for a given test run # # these routines work both for running and post mortem # sctrun_logfile - get logfile for the current test run given a test name # sctrun_logdir - get log directory for the current test run # # internal routines not for public consumption # sctrun_statfile - get status file for a current test run and test name # sctrun_initpaths - set up our internal global pathnames # set sctrun_stopping 0 set sctrun_aborting 0 # # create a new run, create the set of files # doesn't run any tests yet # proc \ sctrun_start {} \ { global sctrun_logdir sctrun_rundir mainscreen_db global sctrun_config_file TS CS sct_config_db global sctrun_testdir sctrun_stop_file sctrun_runndx global sctrun_stopping sctrun_aborting # have to scan for a new directory name if {[file exists $sctrun_logdir] == 0} { system "mkdir -p $sctrun_logdir" } set found 0 loop ndx 1 99 { set file [format "%s/run%02d" $sctrun_logdir $ndx] if {[file exists $file]} { continue } set found 1 break } if {$found == 0} { return "Test log directory full" } set sctrun_runndx $ndx if {[file exists $file] == 0} { system "mkdir -p $file" } sctrun_init_paths $file set sctrun_stopping 0 set sctrun_aborting 0 if {[sct_save_config $sctrun_config_file] == 0} { return "" } # start the tests foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] if {$enabled != "Enabled"} { continue } set testname "$sctrun_testdir/$name" set statfile [sctrun_statfile $name] set logfile [sctrun_logfile $name] # create blank status and log files set fd [open $statfile w] puts $fd "running=Starting" puts $fd "iteration=0" puts $fd "errors=0" puts $fd "elapsed=0" close $fd set fd [open $logfile w] close $fd system "$testname $sctrun_rundir &" } return "" } # # poll the results of the current test run, updates mainscreen_db # return whether anything is running or not. # proc \ sctrun_poll {} \ { global sctrun_logdir sctrun_rundir mainscreen_db global sctrun_config_file TS CS sct_config_db global sctrun_testdir sctrun_stopping sctrun_aborting # first check are we stopping? set stopping $sctrun_stopping set aborting $sctrun_aborting set anyrunning 0 set length [llength $mainscreen_db] loop ndx 0 $length { set entry [lindex $mainscreen_db $ndx] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled != "Enabled"} { continue } # read the status file set statfile [sctrun_statfile $name] set fd [open $statfile r] set running "Starting" set iteration 0 set errors 0 set pid 0 set elapsed 0 while {[gets $fd line] != -1} { set list [mysplit $line "=" 2] set key [lindex $list 0] set val [lindex $list 1] case $key { running { # check for stopped if {$stopping && ($val != "Stopped")} { set val Stopping } if {$aborting && ($val != "Stopped")} { set val Stopped } set entry [lreplace $entry $TS(running) $TS(running) $val] if {$val != "Stopped"} { set anyrunning 1 } } iteration { set entry [lreplace $entry $TS(iteration) $TS(iteration) $val] } errors { set entry [lreplace $entry $TS(errors) $TS(errors) $val] } pid { set entry [lreplace $entry $TS(pid) $TS(pid) $val] } elapsed { set entry [lreplace $entry $TS(elapsed) $TS(elapsed) $val] } } } close $fd # now check logfile set logfile [sctrun_logfile $name] set fd [open $logfile r] seek $fd 0 end set len [tell $fd] if {$len > 500} { set len [expr $len - 500] } else { set len 0 } # read until get last line seek $fd $len start set lastline "" while {[gets $fd line] != -1} { set lastline $line } close $fd # look for Stopping normally if {[string first "Stopping test normally," $lastline] > 0} { set val 1 } else { set val 0 } set entry [lreplace $entry $TS(normalstop) $TS(normalstop) $val] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } return $anyrunning } # # stop the current test run # may be a no-op if all tests are already complete # proc \ sctrun_stop {} \ { global sctrun_stop_file TS CS sctrun_stopping # create the stop file. set fd [open $sctrun_stop_file w] close $fd set sctrun_stopping 1 } # # abort the current test run # does a stop then sends sighup to all running processes # proc \ sctrun_abort {} \ { global sctrun_stop_file TS CS sctrun_rundir mainscreen_db global sctrun_aborting # make sure we have all the pids sctrun_poll # issue stop sctrun_stop set sctrun_aborting 1 set length [llength $mainscreen_db] loop ndx 0 $length { set entry [lindex $mainscreen_db $ndx] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set running [lindex $entry $TS(running)] set pid [lindex $entry $TS(pid)] if {$enabled != "Enabled"} { continue } if {$running == "Stopped"} { continue } if {$pid} { catch {kill 1 $pid} ret } } } # setup our paths proc \ sctrun_init_paths { path } \ { global sctrun_rundir sctrun_config_file sctrun_stop_file set sctrun_rundir "$path" set sctrun_config_file "$sctrun_rundir/config" set sctrun_stop_file "$sctrun_rundir/stop" } # # given a test name, cough up the log file name in the current test run. # proc \ sctrun_logfile { name } \ { global sctrun_rundir set logfile "$sctrun_rundir/$name.log" } # # given a test name, cough up the status file name in the current test run # proc \ sctrun_statfile { name } \ { global sctrun_rundir set logfile "$sctrun_rundir/$name.status" } # # get the run directory # proc \ sctrun_logdir {} \ { global sctrun_rundir return $sctrun_rundir } # # get the current test run number # proc \ sctrun_current {} \ { global sctrun_runndx return $sctrun_runndx } # # get a list of the test runs and their attributes # proc \ sctrun_list {} \ { global sctrun_logdir sctrun_rundir sctrun_config_file sctrun_stop_file global sct_config_db mainscreen_db global sct_testrun_db TS TD CS # the master list of test runs set sct_testrun_db "" set rundirlist "" if {[file exists $sctrun_logdir]} { set rundirlist [readdir $sctrun_logdir] } foreach rundir $rundirlist { set dirpath $sctrun_logdir/$rundir if {[file isdirectory $dirpath] == 0} { continue } if {[csubstr $rundir 0 3] != "run"} { continue } sctrun_init_paths $dirpath # load the config file for this run sct_init_tests sct_read_config $sctrun_config_file sctrun_poll # make totals set run_duration [lindex $sct_config_db $CS(runtime)] set run_localgraphics [lindex $sct_config_db $CS(localgraphics)] set run_nofloppy [lindex $sct_config_db $CS(nofloppy)] set run_nocdrom [lindex $sct_config_db $CS(nocdrom)] set run_missing 0 set run_abnormal 0 set run_errors 0 set run_tests 0 foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set required [lindex $entry $TS(required)] set running [lindex $entry $TS(running)] set errors [lindex $entry $TS(errors)] set elapsed [lindex $entry $TS(elapsed)] set normalstop [lindex $entry $TS(normalstop)] if {$name == "cdrom" && $run_nocdrom} { set required "Optional" } if {$name == "floppy" && $run_nofloppy} { set required "Optional" } if {$enabled != "Enabled"} { if {$required == "Required"} { set run_missing [expr $run_missing + 1] } continue } set run_tests [expr $run_tests + 1] if {$normalstop == 0} { set run_abnormal [expr $run_abnormal + 1] } set run_errors [expr $run_errors + $errors] } # calculate eligible set run_eligible 1 if {$run_duration != "36 hr"} { set run_eligible 0 } if {$run_missing} { set run_eligible 0 } if {$run_abnormal} { set run_eligible 0 } if {$run_errors} { set run_eligible 0 } if {$run_localgraphics == 0} { set run_eligible 0 } set list [list $rundir $run_duration $run_missing \ $run_abnormal $run_errors $run_tests \ $run_localgraphics $run_eligible] lappend sct_testrun_db $list } } # # load up the data for a given test run (index into sct_testrun_db) # proc \ sctrun_load { index } \ { global sct_testrun_db mainscreen_db TS TD CS global sctrun_logdir sctrun_config_file set list [lindex $sct_testrun_db $index] set name [lindex $list $TD(name)] set dirpath $sctrun_logdir/$name sctrun_init_paths $dirpath sct_init_tests sct_read_config $sctrun_config_file sctrun_poll } # chwpobject.tcl # # The back-end object manager for the chwp program. # # # API is as follows: # # external routines # chwp_db_read - read the saved chwp data. Makes default file as needed. # chwp_db_write - writes modified chwp data back out - can be called as needed. # # chwp_db_container_expand(index) - mark a container as open or closed. # # chwp_db_attr_get_def(name) - get the object definition for editting. # chwp_db_attr_set(index, value) - updates the two internal views with the # new value for the attribute. index is relative to the onscreen view. # # chwp_db_version - get the database version. # chwp_db_cert_valid - get status of whether required fields are filled in. # # chwp_db_delete - delete the given container by backlink index # chwp_db_add_list - get list of valid containers to add # chwp_db_add - add the new container type to end of list # # chwp_db_def_dump - dump the object definition for comparison to CHWP website. # # internal routines (incomplete list): # chwp_dbi_make_mainscreen_db - make a new view from the internal database. # # chwp_dbi_read_def - read the definition file, validates object contents. # chwp_dbi_check_def - validate the object structure after the read. # chwp_dbi_read_data - read the data file - return error if fail. # chwp_dbi_make_data - make a default data file if read fails. # chwp_dbi_reconcile_dbs - reconcile the data file with the object definition. # # data structures maintained by these routeins: # chwp_db_def - the object definition from the definition file. # Just a list of objects, each object is a pair of items, # the key and value taken directory from the def file. # chwp_db_data - the user modified list of objects and values, # fully expanded even if values aren't defined. # mainscreen_db - the viewable portion of chwp_object_db # # db_data/mainscreen_db entry index definitions # object class: set MS(class) 0 # internal attribute/object name: set MS(name) 1 # indentation level for display: set MS(level) 2 # valid activate actions (edit/expand/del): set MS(action) 3 # containers only, if they are expanded or not.: set MS(open) 4 # attributes only, hardware hintkey and required for certification set MS(hintkey) 5 set MS(required) 6 # the description (for an attribute DisplayName). set MS(description) 7 # normally this is value entered by the user. # but for a container it is special: # contains the name of AttributeName in chwp_db_def # contains the value of AttributeName in mainscreen_db and chwp_db_data set MS(value) 8 # only in mainscreen_db, index of the db_data item it came from. set MS(backlink) 9 # list of attributes that can have multiple values set chwp_multiple [list {MustContain {}} {MayContain {}} {Attributes {}} {DisplayValues {}}] # path to chwp definition file. set chwp_db_def_file "$RESPATH/chwp.def" # # Begin chwp_db external routines # # # parse and read the definition file and the user data file. # create the default data file if not present. # if the data file version does not match the definition version, # do reconciliation. # returns if it is a new configuration or not. # proc \ chwp_db_read {} \ { global chwp_db_def global chwp_db_data mainscreen_db # phase one, read the definition file. chwp_dbi_read_def chwp_dbi_check_def # read the data file set new 0 if {[chwp_dbi_read_data] == 0} { chwp_dbi_make_data 0 set new 1 } # always reconcile for now if {[chwp_dbi_reconcile_dbs]} { echo "Updated to new chwp.def file" set new 2 } chwp_dbi_make_mainscreen_db return $new } # # save our data file # proc \ chwp_db_write {} \ { global chwp_db_data chwp_db_data_file MS global chwp_db_data_file_version if {[catch {open $chwp_db_data_file w} fd] == 0} { puts $fd "Version:$chwp_db_data_file_version:" foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set level [lindex $entry $MS(level)] set object [chwp_db_attr_get_def $name] set dtype "" keylget object "DisplayType" dtype if {$dtype == "TextMultiline"} { if {$level} { set prefix "\n\t\t" } else { set prefix "\n\t" } set list [split $value "\n"] set value [join $list $prefix] } set line "$class:$name:$value" if {$level} { set line "\t$line" } puts $fd $line } close $fd } } # # expand or contract the given container, index is relative to mainscreen_db # proc \ chwp_db_container_expand { index } \ { global chwp_db_data mainscreen_db MS # get the mainscreen object set object [lindex $mainscreen_db $index] set backlink [lindex $object $MS(backlink)] set entry [lindex $chwp_db_data $backlink] # change expanded state set open [lindex $entry $MS(open)] if {$open == "open"} { set open closed } else { set open open } # update the entry set entry [lreplace $entry $MS(open) $MS(open) $open] # update the data entry set chwp_db_data [lreplace $chwp_db_data $backlink $backlink $entry] chwp_dbi_make_mainscreen_db } # # given the attribute name, fetch the definition object # proc \ chwp_db_attr_get_def { name } \ { global chwp_db_def foreach entry $chwp_db_def { set tname [keylget entry ObjectName] if {$tname == $name} { return $entry } } echo "fatal error: definition for $name not found" exit 1 } # # Update both mainscreen_db and the data view with a changed object. # index is relative to mainscreen_db # proc \ chwp_db_attr_set { index entry } \ { global chwp_db_data mainscreen_db MS # get the mainscreen object set object [lindex $mainscreen_db $index] set backlink [lindex $object $MS(backlink)] # update the data entry set chwp_db_data [lreplace $chwp_db_data $backlink $backlink $entry] chwp_dbi_make_mainscreen_db } # # get the database version # proc \ chwp_db_version { } \ { global chwp_db_def_file_version chwp_db_data_file_version return $chwp_db_def_file_version } # # check if required fields are filled in for certification # proc \ chwp_db_cert_valid { passthru } \ { global chwp_db_data MS if {$passthru != "passthru" && $passthru != "nopassthru"} { echo Internal error chwp_db_cert_valid bad argument exit 1 } set valid 1 foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] set value [lindex $entry $MS(value)] set required [lindex $entry $MS(required)] if {$name == "PassThruNumber"} { if {$passthru == "nopassthru"} { continue } } elseif {$required == ""} { continue } if {[chwp_required_attribute_valid $value]} { continue } set valid 0 break } return $valid } proc \ chwp_required_attribute_valid { value } \ { if {$value != "" && $value != "None" && $value != "Unknown"} { return 1 } return 0 } # # delete a given container, rebuild mainscreen db # proc \ chwp_db_delete { index } \ { global chwp_db_data MS # delete the container node down to the next container node or the end set start [expr $index + 1] set length [llength $chwp_db_data] for {set i $start} {$i < $length} {set i [expr $i + 1]} { set list [lindex $chwp_db_data $i] set class [lindex $list $MS(class)] set name [lindex $list $MS(name)] if {$class == "Container"} { break } } set i [expr $i - 1] set chwp_db_data [lreplace $chwp_db_data $index $i] chwp_dbi_make_mainscreen_db } # # enumerate the valid list of containers to add # proc \ chwp_db_add_list {} \ { global chwp_dbi_rootmay set list "" foreach name $chwp_dbi_rootmay { set object [chwp_dbi_def_find_object Container $name] set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] lappend list $description } return $list } # # add a new given container type, rebuild mainscreen db # proc \ chwp_db_add { tname } \ { global chwp_db_data rec_attributes MS global chwp_dbi_rootmay # translate display name to internal name foreach name $chwp_dbi_rootmay { set object [chwp_dbi_def_find_object Container $name] set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] if {$tname == $description} { set type $name } } set entry [chwp_dbi_make_new_container $type] lappend chwp_db_data $entry set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend chwp_db_data $entry } chwp_dbi_make_mainscreen_db } # # dump the object definitions for comparison with the CHWP website # fileter out the "None" values for various fields because those are # internal values to detect if a required field is filled in or not. # proc \ chwp_db_def_dump {} \ { global chwp_db_data chwp_data_def MS # first make a new list with all objects instantiated chwp_dbi_make_data 1 # now dump them and their complete attribute list set first 0 foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] # get object definition set object [chwp_dbi_def_find_object $class $name] set object [lindex $object 0] set description [keylget object DisplayName] if {$class == "Container"} { if {$first} { echo } else { set first 1 } echo $description } else { # name, type, value list if not text set required "" set ret [keylget object Required required] if {$required != ""} { set required Required } else { set required Optional } set type [keylget object DisplayType] if {[csubstr $type 0 4] != "Text"} { set values [keylget object DisplayValues] # remove "None" if present. # set ndx [lsearch $values None] # if {$ndx >= 0} { # set values [lreplace $values $ndx $ndx] # } echo "\t$description $required $type $values" } else { echo "\t$description $required $type" } } } } # # Begin chwp_dbi internal routines # proc \ chwp_dbi_read_def {} \ { global chwp_db_def chwp_db_def_file chwp_db_def_file_version # open and parse the definition file into our main structure. if {[catch {open $chwp_db_def_file r} fd] != 0} { echo "Unable to open $chwp_db_def_file" exit 1 } set linenum 0 set chwp_db_def "" set object "" set attribute "" gets $fd line2 while {1} { set linenum [expr $linenum + 1] # one line behind set line $line2 # the lookahead line for blank lines and continuation lines if {[gets $fd line2] == -1} { if {$line == ""} { break } set line2 "" # fake a blank line if eof } set c [cindex $line 0] if {$c == "#"} { continue } if {$line != ""} { # check if continuation line if {[ctype space $c]} { set line [string trim $line "\t "] set attribute [concat $attribute $line] } else { set attribute $line } # if next line continuation go get it set c [cindex $line2 0] if {[ctype space $c]} { continue } } if {$attribute != ""} { # save new attribute line # verify that braces match, lrange bombs if not if {[catch {lrange $line 0 99}] != 0} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo "Mismatched curly braces" echo "$linenum:$line" exit 1 } # have a completed attribute set key [lindex $attribute 0] set val [lrange $attribute 1 999] # strip ':' set ndx [clength $key] set ndx [expr $ndx - 1] if {[cindex $key $ndx] != ":"} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo Missing key/colon: echo $linenum:$line exit 1 } set key [csubstr $key 0 $ndx] if {"$key" == ""} { echo "$chwp_db_def_file: Syntax Error line $linenum:" echo "Null key before the colon:" echo $linenum:$line exit 1 } set attribute "" # special case for version line, not part # of the object structure if {$key == "Version"} { set chwp_db_def_file_version $val continue } keylset object $key $val } if {$object == ""} { continue; } if {$line != ""} { continue } # end of a valid object, got a blank line # validate our known object types if {[keylget object "ObjectName" name] == 0} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing attribute ObjectName for object ending on line $linenum" exit 1 } if {[keylget object "ObjectType" type] == 0} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing attribute ObjectType for object ending on line $linenum" exit 1 } # validate each object type set optional "" if {$type == "RootContainer"} { set required [list ObjectName ObjectType MustContain Attributes MayContain] } elseif {$type == "Container"} { set required [list ObjectName ObjectType DisplayName Attributes MultipleObjects AttributeName] } elseif {$type == "Attribute"} { set required [list ObjectName ObjectType DisplayName DisplayType] set optional [list HintKey ReadOnly Required] keylget object "DisplayType" dtype case $dtype { SingleSelect { lappend required DisplayValues DisplayDefault } MultiSelect { lappend required DisplayValues } Text { lappend optional DisplayDefault } TextMultiline { lappend optional DisplayDefault } default { echo "$chwp_db_def_file: Error line $linenum:" echo "Bad attribute DisplayType for object ending on line $linenum" exit 1 } } if {[keylget object "Required" mtype]} { if {$mtype != "Yes"} { echo "Bad value for Required for object ending on line $linenum, only Yes value is allowed" exit 1 } } } else { echo "$chwp_db_def_file: Error line $linenum:" echo "Bad ObjectType: $type for object ending on line $linenum" exit 1 } chwp_dbi_validate_object_def $object $chwp_db_def_file $linenum $required $optional lappend chwp_db_def $object set object "" } close $fd # if any remnants then a trailing newline was missing. if {$object != ""} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing Newline at end of last object" exit 1 } if {$attribute != ""} { echo "$chwp_db_def_file: Error line $linenum:" echo "Missing Newline at end of last object" exit 1 } } # # routine to verify an object definition contains what we think it should # proc \ chwp_dbi_validate_object_def { object file linenum required optional } \ { global chwp_multiple set all [concat $required $optional] set keys [keylget object] # first make sure all attributes in the object are valid foreach i $keys { set found 0 foreach j $all { if {$i == $j} { set found 1 break } } if {$found} { set attribute [keylget object $i] # attributes cannot have colons or commas in them if {[lsearch $attribute "*\[,:\]*"] >= 0} { echo "$file: Error" echo "Bad attribute $i has colon or comma near line $linenum" } # verify the number of items is correct # one is always ok if {[llength $attribute] == 1} { continue } # only a few can have multiple values if {[keylget chwp_multiple $i ret] == 0} { echo "$file: Error" echo "Bad attribute $i has zero or multiple values near line $linenum" } continue } echo "$file: Error" echo "Bad attribute $i for object ending on line $linenum" exit 1 } # make sure all required ones are there. foreach i $required { set found 0 foreach j $keys { if {$i == $j} { set found 1 break } } if {$found} { continue } echo "$file: Error" echo "Missing attribute $i for object ending on line $linenum" exit 1 } } # # check the structure of the object definitions that have been read in # We check for hanging (uncontained objects), and that all # contained attributes are present. # the way we do this is to open the root container, find # all the rest of the containers, and build a container list. # We build an attribute list of all valid (contained attributes) and # check them in several passes, # 1) Check that no duplicate names exist (both attributes and containers). # 2) scan through all attributes and containers # and verify that they are contained properly. # 3) scan through container and attribute lists and validate # that they all exist. # proc \ chwp_dbi_check_def {} \ { global chwp_db_def chwp_db_def_file global chwp_dbi_rootmust chwp_dbi_rootmay # structural checking # find root container, make sure exactly one. set object [chwp_dbi_def_find_object RootContainer Root] if {[llength $object] != "1"} { echo "$chwp_db_def_file: Error: missing or multiple root containers" exit 1 } # save the list of all containers for later set object [lindex $object 0] set chwp_dbi_rootmust [keylget object MustContain] set chwp_dbi_rootmay [keylget object MayContain] # include Root because it has attributes too set containers [concat Root $chwp_dbi_rootmust $chwp_dbi_rootmay] # now for the attributes # pass 1 # have the bare bones structure, now check that no duplicate names # exist. Just go through and query on every name and count them. # brute force and inefficient, but modern computers got HP. foreach i $chwp_db_def { set name [keylget i ObjectName] set object [chwp_dbi_def_find_object "" $name] if {[llength $object] != "1"} { echo "$chwp_db_def_file: Error: multiple objects named: $name" exit 1 } } # pass 2 verify that every attribute is found in a container somewhere. # get each container's attribute list, we have the list already. set attributes "" foreach container $containers { set object [chwp_dbi_def_find_object "" $container] set object [lindex $object 0] set attributes [concat $attributes [keylget object Attributes]] } set kattributes "" foreach attribute $attributes { keylset kattributes $attribute "1" } foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$type != "Attribute"} { continue; } # search to see it is contained if {[keylget kattributes $name ret] == 0} { echo "$chwp_db_def_file: Error: Attribute $name is not contained in a container" exit 1 } } # pass 3, scan to see that each named attribute in containes # actually exists as an object. foreach attribute $attributes { set object [chwp_dbi_def_find_object "" $attribute] if {[llength $object] != 1} { echo "$chwp_db_def_file: Error: Referenced attribute does not exist: $attribute" exit 1 } } # scan the containers two passes. # verify referenced containers exist. foreach container $containers { set object [chwp_dbi_def_find_object "" $container] if {[llength $object] != 1} { echo "$chwp_db_def_file: Error: Referenced container does not exist: $container" exit 1 } } # verify that each container is referenced set kcontainers "" foreach container $containers { keylset kcontainers $container "1" } foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$type != "Container"} { continue; } # search to see it is contained if {[keylget kcontainers $name ret] == 0} { echo "$chwp_db_def_file: Error: Container $name is not referenced in the root container" exit 1 } } } # # find objects either by type or name or both # all matching objects are returned # proc \ chwp_dbi_def_find_object { want_type want_name } \ { global chwp_db_def set found "" foreach object $chwp_db_def { set name [keylget object ObjectName] set type [keylget object ObjectType] if {$want_type != ""} { if {$type != $want_type} { continue } } if {$want_name != ""} { if {$name != $want_name} { continue } } lappend found $object } return $found } proc \ chwp_dbi_read_data {} \ { global chwp_db_def MS global chwp_db_data chwp_db_data_file chwp_db_data_file_version # open and parse the data file into our main structure. if {[catch {open $chwp_db_data_file r} fd] != 0} { return 0 } set linenum 0 set chwp_db_data "" set object "" set attribute "" set chwp_db_data_file_version "Unknown" while {[gets $fd line] != -1} { set linenum [expr $linenum + 1] set level 0 if {[cindex $line 0] == "\t"} { set level 1 set line [csubstr $line 1 -1] } set list [mysplit $line ":" 3] set class [lindex $list 0] set name [lindex $list 1] # value is a comma seperated list set value [lindex $list 2] # special case for Version if {$class == "Version"} { set chwp_db_data_file_version $name continue } # validate class case $class { Attribute { set err 0 } Container { set err 0 } default { set err 1 } } if {$err} { echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid class: $class" set err 1 continue } # fetch the display name from the def file set object [chwp_dbi_def_find_object $class $name] if {$object == ""} { # object not found echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid name: $name" set err 1 continue } set object [lindex $object 0] set description [keylget object DisplayName] set description [lindex $description 0] set readonly "" set ret [keylget object ReadOnly readonly] set hintkey "" set ret [keylget object HintKey hintkey] set required "" set ret [keylget object Required required] if {"$required" != ""} { set required "required" } set oa [chwp_dbi_set_action $class $name $readonly] set open [lindex $oa 0] set action [lindex $oa 1] set entry [list $class $name $level $action $open $hintkey $required $description $value] # validate the value if {$class != "Attribute"} { lappend chwp_db_data $entry continue } set type [keylget object DisplayType] case $type { MultiSelect { # zero, one, or many may be set set vals [keylget object DisplayValues] } SingleSelect { # exactly one must be set set vals [keylget object DisplayValues] } Text { # anything goes set vals "" } TextMultiline { # scan ahead and get the whole thing if {$level} { set tlen 2 set tstr "\t\t" } else { set tlen 1 set tstr "\t" } set last [tell $fd] while {[gets $fd line] != -1} { if {[csubstr $line 0 $tlen] != $tstr} { seek $fd $last break } set new [csubstr $line $tlen 9999] set value "$value\n$new" set last [tell $fd] set linenum [expr $linenum + 1] } set entry [lreplace $entry $MS(value) $MS(value) $value] set vals "" } } if {$vals != ""} { # Now compare the values with the good list. set values [mysplit $value ", " 999] set err 0 foreach val1 $values { set found 0 foreach val2 $vals { if {$val1 == $val2} { set found 1 break } } if {$found == 0} { echo "$chwp_db_data_file; Warning on line $linenum" echo "Ignoring invalid value: $val1" set err 1 break } } } lappend chwp_db_data $entry } close $fd return 1 } # # make the data structure from the def structure. # all is whether all containers are enumerated # or if false only the required containers are enumerated. # all possible attributes are enumerated in order # for each container. # containers get an entry including their closed/open status. # we mirror mainscreen_db with this list. # onscreen order is driven by the def structure. # proc \ chwp_dbi_make_data { all } \ { global chwp_db_def chwp_db_data rec_attributes global chwp_db_data_file_version chwp_db_def_file_version global chwp_dbi_rootmust chwp_dbi_rootmay set chwp_db_data "" set chwp_db_data_file_version $chwp_db_def_file_version if {$all} { set containers [concat $chwp_dbi_rootmust $chwp_dbi_rootmay] } else { set containers $chwp_dbi_rootmust } # get root object set object [chwp_dbi_def_find_object RootContainer Root] set object [lindex $object 0] set topattributes [keylget object Attributes] # first do any attributes in the top level list foreach attribute $topattributes { set entry [chwp_dbi_make_new_attribute $attribute 0] lappend chwp_db_data $entry } # two loops, # outer one the container list # inner one the attributes for that container. foreach container $containers { # get attribute list for this container name set entry [chwp_dbi_make_new_container $container] lappend chwp_db_data $entry set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend chwp_db_data $entry } } } # # given an attribute name, make its entry for db_data # proc \ chwp_dbi_make_new_attribute { attribute level } \ { set object [chwp_dbi_def_find_object Attribute $attribute] set object [lindex $object 0] set name [keylget object DisplayName] set name [string trim $name "{}"] set value "" set ret [keylget object DisplayDefault value] set readonly "" set ret [keylget object ReadOnly readonly] set action [chwp_dbi_set_action Attribute $name $readonly] set hintkey "" set ret [keylget object HintKey hintkey] set required "" set ret [keylget object Required required] if {$required != ""} { set required "required" } set entry [list Attribute $attribute $level $action "" $hintkey $required $name $value] return $entry } # # rules for building the action list for an attribute or a container # proc \ chwp_dbi_set_action { class name readonly } \ { global chwp_dbi_rootmust chwp_dbi_rootmay if {$class == "Attribute"} { set action "" set open "" if {$readonly != "Yes"} { set action edit } } else { set open closed if {[lsearch $chwp_dbi_rootmust $name] >= 0} { set action expand } else { set action [list expand delete] } } return [list $open $action] } # # given a container name, make its entry for the db_data # proc \ chwp_dbi_make_new_container { container } \ { global rec_attributes set object [chwp_dbi_def_find_object Container $container] set object [lindex $object 0] set rec_attributes [keylget object Attributes] set name [keylget object DisplayName] set name [string trim $name "{}"] # get the attribute name set attributename [keylget object AttributeName] # create container entry set hintkey "" set required "" set readonly "" set class Container set ret [keylget object ReadOnly readonly] set oa [chwp_dbi_set_action $class $container $readonly] set open [lindex $oa 0] set action [lindex $oa 1] set entry [list Container $container 0 $action $open $hintkey $required $name $attributename] return $entry } # # reconcile a new def file with an existing data file # reconcile affects the attributes and the order of those attributes. # all we have to do is check for attributes appearing and disappearing. # everything else is checked for already. # proc \ chwp_dbi_reconcile_dbs {} \ { global chwp_db_def chwp_db_data MS chwp_db_data_file global chwp_db_def_file_version chwp_db_data_file_version global rec_attributes # get the def version set version_def $chwp_db_def_file_version # get the data version set version_data $chwp_db_data_file_version # Here we reconcile. # first extract the objects we read in. # this is an oddly structured list intended to make searching easier # one list item per container, and that item contains the container # and all its attributes set oldobjects "" set list "" foreach entry $chwp_db_data { set class [lindex $entry $MS(class)] if {$class == "Container"} { lappend oldobjects $list set list "" } lappend list $entry } if {$list != ""} { lappend oldobjects $list } # now scan through the new objects and extract as needed # special case for the root attributes if any. set rootdef [chwp_dbi_def_find_object RootContainer Root] set rootdef [lindex $rootdef 0] set rootattributes [keylget rootdef Attributes] set must [keylget rootdef MustContain] set may [keylget rootdef MayContain] set rootcontainers [concat $must $may] # the new data list set newlist "" foreach attribute $rootattributes { set object [chwp_dbi_rec_root_srch $oldobjects $attribute] # keep it if found if {$object != ""} { lappend newlist $object continue } # otherwise make a new one set entry [chwp_dbi_make_new_attribute $attribute 0] lappend newlist $entry } # now do all of each container type foreach containertype $rootcontainers { set match [chwp_dbi_rec_container_srch $oldobjects $containertype] if {$match == "" && [lsearch $must $containertype] >= 0} { # missing required container lappend newlist [chwp_dbi_make_new_container $containertype] set attributes $rec_attributes # value of the AttributeName is filled in later foreach attribute $attributes { set entry [chwp_dbi_make_new_attribute $attribute 1] lappend newlist $entry } } if {$match == ""} { continue } lappend newlist [chwp_dbi_make_new_container $containertype] # fetch the definition set containerdef [chwp_dbi_def_find_object Container $containertype] set containerdef [lindex $containerdef 0] set attributes [keylget containerdef Attributes] foreach container $match { # have a single container and its attributes foreach attribute $attributes { set newattr [chwp_dbi_rec_container_attribute_srch $container $attribute] if {$newattr != ""} { lappend newlist $newattr } else { lappend newlist [chwp_dbi_make_new_attribute $attribute 1] } } } } if {$newlist != $chwp_db_data} { set chwp_db_data $newlist return 1 } if {$version_def != $version_data} { return 1 } return 0 } # search the root attributes for the given attribute type. proc \ chwp_dbi_rec_root_srch { oldobjects attribute } \ { global MS set attributes [lindex $oldobjects 0] set firstentry [lindex $attributes 0] set class [lindex $firstentry $MS(class)] if {$class != "Attribute"} { return "" } foreach entry $attributes { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$name == $attribute} { return $entry } } return "" } # search for all containers matching the given type proc \ chwp_dbi_rec_container_srch { oldobjects containertype } \ { global MS set newlist "" foreach object $oldobjects { set firstentry [lindex $object 0] set class [lindex $firstentry $MS(class)] set name [lindex $firstentry $MS(name)] if {$class != "Container"} { continue } if {$name != $containertype} { continue } lappend newlist $object } return $newlist } # given a container and its attributes find the given attribute proc \ chwp_dbi_rec_container_attribute_srch { containerobject attribute } \ { global MS set newlist "" foreach entry $containerobject { set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$class != "Attribute"} { continue } if {$name != $attribute} { continue } set newlist $entry break } return $newlist } # # build the mainscreen display database from the internal database # we filter out closed items and fill in container names # proc \ chwp_dbi_make_mainscreen_db {} \ { global chwp_db_def chwp_db_data MS mainscreen_db set mainscreen_db "" # assume one level of hierarchy set open open set index -1 set end [llength $chwp_db_data] foreach entry $chwp_db_data { set index [expr $index + 1] lappend entry $index set class [lindex $entry $MS(class)] set name [lindex $entry $MS(name)] if {$class == "Attribute"} { if {$open == "open"} { lappend mainscreen_db $entry } continue } # have a container, extract its open state. set open [lindex $entry $MS(open)] # find the name attribute, get this from the object definition. set entrydef [chwp_dbi_def_find_object $class $name] set entrydef [lindex $entrydef 0] set sname [keylget entrydef AttributeName] # now find the value of it set found 0 set start [expr $index + 1] for {set ndx $start} {$ndx < $end} {set ndx [expr $ndx + 1]} { set object [lindex $chwp_db_data $ndx] set tname [lindex $object $MS(name)] if {$tname == $sname} { set value [lindex $object $MS(value)] set entry [lreplace $entry $MS(value) $MS(value) $value] set found 1 break } } if {$found == "0"} { error "Internal error, $sname object not found" } # add the entry to the mainscreen lappend mainscreen_db $entry } } #!/bin/osavtcl # only if on Unixware, there is a way to check for this somehow. #loadlibindex /usr/lib/sysadm.tlib # globals set ME "[pwd]/handoff" # Test run data items set TD(name) 0 set TD(duration) 1 set TD(missing) 2 set TD(abnormal) 3 set TD(errors) 4 set TD(tests) 5 set TD(localgraphics) 6 set TD(eligible) 7 set IC(disabled) 0 set IC(enabled) 1 set IC(error) 2 set IC(noerror) 3 # global for we are choosing a test or displaying it set CHOOSING 0 # nop - no-op - no operation - dummy proc proc \ hand_nop { cbs } \ { set nop b } # # put up an error dialog box with the given callbacks # (eok Error Ok) # proc \ hand_query_eok { msg ok } \ { global app set ret [VtErrorDialog $app.eok \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ ] VtShow $ret } # # put up a question dialog box with the given callbacks # (qyn Question Yes No) # proc \ hand_query_qyn { msg yes no } \ { global app set ret [VtQuestionDialog $app.qyn \ -message $msg \ -ok -okLabel Yes -okCallback $yes \ -cancel -cancelLabel no -cancelCallback $no \ ] VtShow $ret } proc \ hand_cmd_line {} \ { } proc \ hand_set_sensitive {} \ { global CHOOSING sct_testrun_db global hand_handoffcert_button hand_back_button hand_view_button global hand_log_button if {$CHOOSING} { VtSetValues $hand_back_button -sensitive 0 VtSetValues $hand_view_button -sensitive 1 VtSetValues $hand_log_button -sensitive 0 } else { VtSetValues $hand_back_button -sensitive 1 VtSetValues $hand_view_button -sensitive 0 VtSetValues $hand_log_button -sensitive 1 } if {[llength $sct_testrun_db]} { VtSetValues $hand_handoffcert_button -sensitive 1 } else { VtSetValues $hand_handoffcert_button -sensitive 0 VtSetValues $hand_view_button -sensitive 0 } } proc \ hand_menu_exit_cb { cbs } \ { VtClose exit 0 } # do nothing here. proc \ hand_select_cb { cbs } \ { } # # Called from a seperate process to give us a truly modal dialog box. # display the given logfile # proc \ hand_stand_view { file } \ { global app hand_main_form hand_dialog_form global hand_stand_file set hand_stand_file $file set fd [open $file r] gets $fd logfile close $fd system "rm -f $file" # create the dialog box. set app [VtOpen sctchild] set hand_dialog_form [ \ VtFormDialog $app.edit \ -title "View Logfile $logfile" \ -ok -okLabel Ok -okCallback hand_stand_quit \ ] set text_file [ \ VtText $hand_dialog_form.text \ -columns 75 -rows 13 \ -filename $logfile \ -horizontalScrollBar 1 \ -verticalScrollBar 1 \ -readOnly \ ] VtShow $hand_dialog_form VtMainLoop } proc \ hand_stand_quit { cbs } \ { VtClose exit 0 } # # the menu entrypoint to view a test run # proc \ hand_menu_view_cb { cbs } \ { global CHOSEN SAVETOP hand_main_list set index [VtDrawnListGetSelectedItem $hand_main_list] if {$index == 0} { hand_query_eok "Select an item first" hand_nop return } set SAVETOP [VtGetValues $hand_main_list -topItemPosition] keylset cbs itemPosition $index hand_activate_choose_cb $cbs set CHOSEN $index } # # the menu entrypoint for viewing a test logfile # proc \ hand_menu_log_cb { cbs } \ { global hand_main_list set index [VtDrawnListGetSelectedItem $hand_main_list] if {$index == 0} { hand_query_eok "Select an item first" hand_nop return } keylset cbs itemPosition $index hand_activate_log_cb $cbs } # # the menu entrypoint for viewing a test summary file # proc \ hand_menu_summary_cb { cbs } \ { global ME PID hand_main_list CHOOSING CHOSEN if {$CHOOSING} { set index [VtDrawnListGetSelectedItem $hand_main_list] if {$index == 0} { hand_query_eok "Select an item first" hand_nop return } } else { set index $CHOSEN } sctrun_load [expr $index - 1] set sumfile "[sctrun_logdir]/summary" if {![file exists $sumfile]} { hand_query_eok "Missing summary file for this test run" hand_nop return } set file "/tmp/sct.$PID" system "rm -f $file" if {[catch {open $file w} fd] != 0} { hand_query_eok "Unable to write file $file" hand_nop return } puts $fd $sumfile close $fd VtLock VtControl -suspend system "$ME -hand_stand_view $file" VtControl -resume VtUnLock } # # This is double-click entrypoint to choose an item or view its logfile. # proc \ hand_activate_cb { cbs } \ { global CHOOSING CHOSEN SAVETOP hand_main_list # only allowed to edit if not running. if {$CHOOSING} { set SAVETOP [VtGetValues $hand_main_list -topItemPosition] hand_activate_choose_cb $cbs set CHOSEN [keylget cbs itemPosition] } else { hand_activate_log_cb $cbs } } proc \ hand_activate_choose_cb { cbs } \ { global mainscreen_db TS PID ME CHOOSING hand_main_list set index [keylget cbs itemPosition] set index [expr $index - 1] set list [lindex $mainscreen_db $index] sctrun_load $index set CHOOSING 0 VtDrawnListSelectItem $hand_main_list -position 1 hand_display_mainlist VtSetValues $hand_main_list -topItemPosition 1 hand_set_sensitive hand_status_bar_update } # # go back to main choose list, restore the selection # proc \ hand_menu_back_cb { cbs } \ { global CHOOSING CHOSEN SAVETOP hand_main_list set CHOOSING 1 hand_display_mainlist VtDrawnListSelectItem $hand_main_list -position $CHOSEN VtSetValues $hand_main_list -topItemPosition $SAVETOP hand_set_sensitive hand_status_bar_update set CHOSEN 0 } # # edit the machine configuration # proc \ hand_menu_edit_machine_cb { cbs } \ { global LOADING # the lock/suspend stuff is really only needed for CHARM. VtLock VtControl -suspend system "./chwp" VtControl -resume VtUnLock set LOADING 1 hand_status_bar_update chwp_db_read set LOADING 0 hand_status_bar_update } # # make a handoff file from a certification test run # proc \ hand_menu_handoffcert_cb { cbs } \ { global CHOOSING CHOSEN hand_main_list sct_testrun_db TD if {$CHOOSING} { set index [VtDrawnListGetSelectedItem $hand_main_list] if {$index == 0} { hand_query_eok "Select an item first" hand_nop return } } else { set index $CHOSEN } set index [expr $index - 1] set list [lindex $sct_testrun_db $index] set name [lindex $list $TD(name)] set eligible [lindex $list $TD(eligible)] if {$eligible == 0} { set ret [ hand_query_qyn \ "This test run is not eligible, proceed anyway?" \ "hand_really_handoffcert $index" hand_nop \ ] return } hand_really_handoffcert $index $cbs } # # callback if we are sure we want to handoff # proc \ hand_really_handoffcert { index cbs } \ { global sct_testrun_db TD sct_handoffdir CHOOSING global chwp_db_data_file set list [lindex $sct_testrun_db $index] set name [lindex $list $TD(name)] set eligible [lindex $list $TD(eligible)] # trick is to add files to the run log and tar it up if {[file exists $sct_handoffdir] == 0} { system "mkdir -p $sct_handoffdir" } # first mark the thingy if {$CHOOSING} { sctrun_load $index } set rundir [sctrun_logdir] # copy the chwp data file if {[file exists $chwp_db_data_file]} { system "copy $chwp_db_data_file $rundir" } set tarfile "$sct_handoffdir/$name.tar" set tarfilez "$sct_handoffdir/$name.tar.Z" system "rm -f $tarfile $tarfilez" system "cd $rundir; tar -cvf $tarfile . > /dev/null 2>&1" system "cd $sct_handoffdir; compress $tarfile" hand_query_eok "Handoff created successfuly in $tarfile" hand_nop } # # make a handoff file for pass thru # proc \ hand_menu_handoffpassthru_cb { cbs } \ { global hand_main_list sct_testrun_db TD set eligible [chwp_db_cert_valid passthru] if {$eligible == 0} { set ret [ hand_query_qyn \ "CHWP data incomplete (pass thru number required), proceed anyway?" \ "hand_really_handoffpassthru" hand_nop \ ] return } hand_really_handoffpassthru $cbs } # # really do a pass thru handoff # proc \ hand_really_handoffpassthru { cbs } \ { global sct_testrun_db TD sct_handoffdir CHOOSING global chwp_db_data_file set name passthru # populate the passthru directory and tar it up set handoffdir "$sct_handoffdir/passthru" if {[file exists $handoffdir] == 0} { system "mkdir -p $handoffdir" } # copy the chwp data file if {[file exists $chwp_db_data_file]} { system "copy $chwp_db_data_file $handoffdir" } set eligible [chwp_db_cert_valid passthru] set tarfile "$sct_handoffdir/$name.tar" set tarfilez "$sct_handoffdir/$name.tar.Z" system "rm -f $tarfile $tarfilez" system "cd $handoffdir; tar -cvf $tarfile . > /dev/null 2>&1" system "cd $sct_handoffdir; compress $tarfile" hand_query_eok "Handoff created successfuly in $tarfile" hand_nop } # # called when a test is chosen, allows one to view a logfile for a test. # proc \ hand_activate_log_cb { cbs } \ { global mainscreen_db TS PID ME CHOOSING set index [keylget cbs itemPosition] set index [expr $index - 1] set entry [lindex $mainscreen_db $index] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled != "Enabled"} { hand_query_eok "Only enabled tests have log files" hand_nop return; } set logfile [sctrun_logfile $name] # file is used to pass results to preserve stdout for child processes. set file "/tmp/sct.$PID" system "rm -f $file" if {[catch {open $file w} fd] != 0} { hand_query_eok "Unable to write file $file" hand_nop return } puts $fd $logfile close $fd VtLock VtControl -suspend system "$ME -hand_stand_view $file" VtControl -resume VtUnLock } # # build main form, lock it, and return. proc \ hand_uistart {} \ { global app version hand_main_form menuBar global hand_top_status hand_bottom_status hand_main_list global hand_exit_button hand_handoffcert_button hand_back_button global hand_view_button hand_log_button global RESPATH LOADING set app [VtOpen sct -helpBook SCTDOC] VtSetAppValues $app -versionString "SCT version $version" set hand_main_form [ \ VtFormDialog $app.main \ -title "System Certification Tests (SCT) - Version $version" \ ] # menu bar set menuBar [VtMenuBar $hand_main_form.menubar \ -helpMenuItemList "ON_WINDOW ON_VERSION"] set optionsMenu [VtPulldown $menuBar.optionsMenu -label "Options" \ -mnemonic O] set hand_back_button [VtPushButton $optionsMenu.back \ -label "Go back to test run list" \ -callback hand_menu_back_cb -mnemonic B] set hand_handoffcert_button [VtPushButton $optionsMenu.handoffcert \ -label "Create Handoff File From Certification Test Run" \ -callback hand_menu_handoffcert_cb -mnemonic H] set hand_handoffpasthru_button [VtPushButton $optionsMenu.handoffpassthru \ -label "Create Handoff File For Pass Thru Certification" \ -callback hand_menu_handoffpassthru_cb -mnemonic P] VtSeparator $optionsMenu.sep1 set hand_exit_button [VtPushButton $optionsMenu.exit -label "Exit" \ -callback hand_menu_exit_cb -mnemonic E] set editMenu [VtPulldown $menuBar.editMenu -label "Edit" \ -mnemonic E] set hand_edit_button [VtPushButton $editMenu.run -label \ "Edit Machine Configuration" \ -callback hand_menu_edit_machine_cb -mnemonic M ] set viewMenu [VtPulldown $menuBar.viewMenu -label "View" \ -mnemonic V] set hand_view_button [VtPushButton $viewMenu.view \ -label "View selected test run" \ -callback hand_menu_view_cb -mnemonic V] set hand_log_button [VtPushButton $viewMenu.log \ -label "View selected test logfile" \ -callback hand_menu_log_cb -mnemonic L] set hand_summary_button [VtPushButton $viewMenu.summary \ -label "View selected test summary file" \ -callback hand_menu_summary_cb -mnemonic S] # Top status line set hand_top_status [VtLabel $hand_main_form.toplab \ -leftSide FORM -rightSide FORM \ -labelLeft \ ] # main list widget set hand_main_list [VtDrawnList $hand_main_form.list -columns 75 -rows 13 \ -autoSelect TRUE -selection BROWSE \ -callback hand_select_cb \ -defaultCallback hand_activate_cb \ -leftSide FORM -rightSide FORM \ -horizontalScrollBar 1 \ -iconList [list \ $RESPATH/p00disabled.px \ $RESPATH/p01enabled.px \ $RESPATH/p04error.px \ $RESPATH/p05noerror.px \ ] \ -CHARM_iconList [list " " "+" "!" " " ] \ ] # Bottom status line set hand_bottom_status [SaStatusBar $hand_main_form.status 1] hand_set_sensitive hand_status_bar_update VtSetValues $hand_main_list -bottomSide $hand_bottom_status VtShow $hand_main_form } # # convert a db entry to the stuff needed to add it to the main_list # proc \ hand_display_item { index } \ { global sct_testrun_db mainscreen_db TS TD CHOOSING IC # two completely different item types to display set formatlist "" set fieldlist "" if {$CHOOSING} { set list [lindex $sct_testrun_db $index] set name [lindex $list $TD(name)] set duration [lindex $list $TD(duration)] set missing [lindex $list $TD(missing)] set abnormal [lindex $list $TD(abnormal)] set errors [lindex $list $TD(errors)] set tests [lindex $list $TD(tests)] set localgraphics [lindex $list $TD(localgraphics)] set eligible [lindex $list $TD(eligible)] # sumary lines for test runs lappend formatlist "ICON 1" if {$eligible} { lappend fieldlist $IC(enabled) } else { lappend fieldlist $IC(error) } lappend formatlist "STRING 7" lappend fieldlist "$name" lappend formatlist "STRING 7" lappend fieldlist "$duration" lappend formatlist "STRING 11" lappend fieldlist "missing:$missing" lappend formatlist "STRING 14" if {$abnormal} { lappend fieldlist "abnormal_stop" } else { lappend fieldlist "normal_stop" } lappend formatlist "STRING 13" lappend fieldlist "errors:$errors" lappend formatlist "STRING 15" if {$localgraphics} { lappend fieldlist "graphics_ok" } else { lappend fieldlist "graphics_notok" } lappend formatlist "STRING 6" if {$eligible} { lappend fieldlist "OK" } else { lappend fieldlist "NOTOK" } } else { set list [lindex $mainscreen_db $index] set class [lindex $list $TS(class)] set name [lindex $list $TS(name)] set description [lindex $list $TS(description)] set required [lindex $list $TS(required)] set enabled [lindex $list $TS(enabled)] set mode [lindex $list $TS(mode)] set display_mode [sct_mode_external $mode] set running [lindex $list $TS(running)] set iteration [lindex $list $TS(iteration)] set errors [lindex $list $TS(errors)] set normalstop [lindex $list $TS(normalstop)] # individual tests, same as parent application lappend formatlist "ICON 1" if {"$enabled" == "Enabled"} { lappend fieldlist $IC(enabled) } else { lappend fieldlist $IC(disabled) } lappend formatlist "ICON 1" if {$errors} { lappend fieldlist $IC(error) } else { lappend fieldlist $IC(noerror) } lappend formatlist "STRING 22" lappend fieldlist "$description" lappend formatlist "STRING 9" lappend fieldlist "$required" lappend formatlist "STRING 19" lappend fieldlist "$display_mode" if {"$enabled" == "Enabled"} { lappend formatlist "STRING 12" lappend fieldlist "Errors: $errors" lappend formatlist "STRING 11" if {$normalstop} { lappend fieldlist "norm_stop" } else { lappend fieldlist "abnorm_stop" } } } return [list $fieldlist $formatlist] } # update our two status bars proc \ hand_status_bar_update {} \ { global mainscreen_db hand_config_db LOADING global CHOOSING hand_bottom_status CS hand_top_status if {$LOADING == 0} { if {$CHOOSING} { VtSetValues $hand_top_status \ -label "Select a test run to view details" } else { VtSetValues $hand_top_status \ -label "Select a test to view its logfile" } if {[chwp_db_cert_valid nopassthru] == 0} { set label "CHWP Machine configuration info INCOMPLETE for certification" } else { set label "CHWP Machine configuration info complete" } SaStatusBarSet $hand_bottom_status $label } else { VtSetValues $hand_top_status -label "Loading please wait..." SaStatusBarSet $hand_bottom_status "Loading please wait..." } } # now draw them proc \ hand_display_mainlist {} \ { global sct_testrun_db mainscreen_db hand_main_list CHOOSING set llist [VtDrawnListGetItem $hand_main_list -all] set mlen [llength $llist] if {$CHOOSING} { set length [llength $sct_testrun_db] } else { set length [llength $mainscreen_db] } # coerce onscreen list length if not match while {$length != $mlen} { if {$mlen < $length} { VtDrawnListAddItem $hand_main_list \ -position 0 \ -formatList [list "STRING 1"] \ -fieldList [list " "] set mlen [expr $mlen + 1] } if {$mlen > $length} { VtDrawnListDeleteItem $hand_main_list -position 0 set mlen [expr $mlen - 1] } } loop i 0 $length { set list [hand_display_item $i] set fieldlist [lindex $list 0] set formatlist [lindex $list 1] set position [expr $i + 1] VtDrawnListSetItem $hand_main_list \ -position $position \ -fieldList $fieldlist \ -formatList $formatlist } } proc \ main {} \ { global LOADING CHOOSING sct_testrun_db # start in this mode set CHOOSING 1 # do command line options, if any the routine does not return. hand_cmd_line set LOADING 1 set sct_testrun_db "" hand_uistart VtLock chwp_db_read set LOADING 0 sct_init_tests sctrun_list hand_display_mainlist hand_status_bar_update hand_set_sensitive VtUnLock VtMainLoop } if {[lindex $argv 0] == "-hand_stand_view"} { hand_stand_view [lindex $argv 1] exit } main 0707070000000000231006440000000000030000010000001023147530000003300000023740root/home/sct/res/chwp.def# Notes, Ultra320 is new, should be added. # what about AGP2 (8x)? # Cardbus type missing for SCSI controllers, guess we don't support those. # floppy support should be radiobox not check box? # Maximum Colors does not have 32-bit color, only goes to 24 bit (16m). # Why does VESA not have a NONE? I do not wish to deal with this special # case if I don't have to. tnx :-) # OS Network Installable is a check box not a radio box, not a problem for me. # # The CHWP data file, the menus are driven from here. # # Types of onscreen attributes: # MultiSelect: attribute with zero, on or many values # SingleSelect: attribute with exactly one value # Text: single line of text # TextMultiline: multiple line text field # # format is TCL friendly, we use curly braces for quotes. # continuation line begins with white space. # end of an object is a blank line (required). # object names must be globally unique. # # A note about the onscreen order, it is derived from by # looking first at the root container which lists sub-containers. # an empty subcontainer in the order given will be created by default. # the attributes lists of each subcontainer define the order # of the container's onscreen display. # # Also containers have a special feature, they display both # their name, and the contents of the attribute given in # AttributeName, example: "Storage Controller: Adaptec 2940" # # Since multiple display values can occur for a checkbox, # the contents are restricted, obviously no braces are allowed, # but also, no colons or commas please. # # Version: 1.0.1 # root psuedo-container defines our structure # just a list of mandatory and optional containers # the name "Root" is special and is reserved for this object ObjectName: Root ObjectType: RootContainer MustContain: Machine MayContain: StorageController GraphicsController NetworkDevice Attributes: ObjectName: Machine ObjectType: Container MultipleObjects: No DisplayName: {Machine Attributes} Attributes: MachineName PassThruNumber Ports ClockSpeed CPUManufacturer MaxCPUs CPUType CaseType Memory MemoryType BIOSManufacturer BIOSRevision BIOSFlashable MotherboardManufacturer MotherboardModel MotherboardSlots ExternalRAMCacheType L2Cache L3Cache MonitorManufacturer MonitorModel MonitorScreenSizePublished MonitorScreenSizeActual BusType HardDriveTypeAndSize HardDriveModel SpecialConfigurationNotes AttributeName: MachineName # # Begin the machine attributes. # ObjectName: MachineName ObjectType: Attribute DisplayName: {Machine Name} DisplayType: Text DisplayDefault: Unknown Required: Yes ObjectName: PassThruNumber ObjectType: Attribute DisplayName: {Pass Through Certification Number} DisplayType: Text DisplayDefault: Unknown ObjectName: Ports ObjectType: Attribute DisplayName: Ports DisplayType: MultiSelect DisplayValues: {1 Serial} {2 Serial} {4 Serial} {5 Serial} {1 Parallel} {2 Parallel} {1 USB} {2 USB} {3 USB} {4 USB} {6 USB} {8 USB} {Bus Mouse} {Keyboard Mouse} Required: Yes ObjectName: ClockSpeed ObjectType: Attribute DisplayName: {Clock Speed} DisplayType: Text HintKey: CPUSpeed Required: Yes ObjectName: CPUManufacturer ObjectType: Attribute DisplayName: {CPU Manufacturer} DisplayType: MultiSelect DisplayValues: Intel AMI AMD Cyrix HintKey: CPUManufacturer Required: Yes ObjectName: MaxCPUs ObjectType: Attribute DisplayName: {Max # of CPUs} DisplayType: MultiSelect DisplayValues: 1 2 3 4 5 6 8 10 12 16 20 24 28 32 HintKey: CPUCount Required: Yes ObjectName: CPUType ObjectType: Attribute DisplayName: {CPU Type} DisplayType: MultiSelect DisplayValues: {Itanium 2} {Intel Xeon} {Pentium 4} {Pentium III Xeon} {Pentium III} {Pentium II Xeon} {Pentium II} {Pentium Pro} {Pentium M} {Pentium MMX} Pentium {Intel Celeron} {AMD K6} {AMD Athlon MP} {AMD Opteron} {AMD Athlon} 586 486 386 HintKey: CPUType Required: Yes ObjectName: CaseType ObjectType: Attribute DisplayName: {Case Type} DisplayType: MultiSelect DisplayValues: {Server Rack Mount} Mini-Tower Desktop Notebook {Special Purpose} Ruggedized/rack {Single Board Computer} Tower Required: Yes ObjectName: Memory ObjectType: Attribute DisplayName: {Installed Memory in System (MB)} DisplayType: Text HintKey: Memsize Required: Yes ObjectName: MemoryType ObjectType: Attribute DisplayName: {Memory Type} DisplayType: Text Required: Yes ObjectName: BIOSManufacturer ObjectType: Attribute DisplayName: {BIOS Manufacturer} DisplayType: SingleSelect DisplayValues: Acer Award AMI Asustek Compaq Dell Gigabyte Hewlett-Packard {IBM Surepath} Intel Phoenix Toshiba Wistron None DisplayDefault: None HintKey: MainBiosString Required: Yes ObjectName: BIOSRevision ObjectType: Attribute DisplayName: {BIOS Revision} DisplayType: Text HintKey: MainBiosString Required: Yes ObjectName: BIOSFlashable ObjectType: Attribute DisplayName: {BIOS is Flashable} DisplayType: SingleSelect DisplayValues: Yes No None DisplayDefault: None Required: Yes ObjectName: MotherboardManufacturer ObjectType: Attribute DisplayName: {Motherboard Manufacturer} DisplayType: SingleSelect DisplayValues: Acer ALR AMD AOpen ASUtek ASUS BMC Bull Compaq Dell {Digital Equipment Corporation} FIC {Fujitsu ICL} {Fujitsu Siemens} Gateway HP IBM Intel Micronics {Micro Star} Motorola NTT Radisys SNI SuperMicro Sun {Texas Micro} Toshiba {Tulip Computers International} Tyan None DisplayDefault: None Required: Yes ObjectName: MotherboardModel ObjectType: Attribute DisplayName: {Motherboard Model Number} DisplayType: Text Required: Yes ObjectName: MotherboardSlots ObjectType: Attribute DisplayName: {Card Slots on Motherboard} DisplayType: MultiSelect DisplayValues: {1 ISA} {2 ISA} {3 ISA} {4 ISA} {5 ISA} {6 ISA} {7 ISA} {8 ISA} {9 ISA} {10 ISA} {11 ISA} {12 ISA} {1 EISA} {2 EISA} {3 EISA} {4 EISA} {5 EISA} {6 EISA} {7 EISA} {8 EISA} {1 VESA} {2 VESA} {3 VESA} Microchannel {2 PCMCIA} {8 SCM} AGP {Zero HotPlug PCI} {3 HotPlug PCI} {4 HotPlug PCI} {6 HotPlug PCI} {10 HotPlug PCI} {11 HotPlug PCI} {12 HotPlug PCI} {Hot Plug PCI-X} {2 Hot Plug PCI-X} {3 Hot Plug PCI-X} {4 Hot Plug PCI-X} {6 Hot Plug PCI-X} {10 Hot Plug PCI-X} {11 Hot Plug PCI-X} {12 Hot Plug PCI-X} {64 bit PCI} {32 bit PCI} {1 PCI} {2 PCI} {3 PCI} {4 PCI} {5 PCI} {6 PCI} {7 PCI} {8 PCI} {9 PCI} {10 PCI} {11 PCI} {12 PCI} {13 PCI} {14 PCI} {15 PCI} {1 PCI-X} {2 PCI-X} {3 PCI-X} {4 PCI-X} {5 PCI-X} {6 PCI-X} {7 PCI-X} {9 PCI-X} {1 PCI Express} {2 PCI Express} {3 PCI Express} {4 PCI Express} {5 PCI Express} {6 PCI Express} {7 PCI Express} {8 PCI Express} {9 PCI Express} Required: Yes ObjectName: ExternalRAMCacheType ObjectType: Attribute DisplayName: {Installed External RAM Cache Type} DisplayType: SingleSelect DisplayValues: Synchronous Asynchronous Pipelined-burst None DisplayDefault: None ObjectName: L2Cache ObjectType: Attribute DisplayName: {L2 Cache (kbytes)} DisplayType: Text ObjectName: L3Cache ObjectType: Attribute DisplayName: {L3 Cache (kbytes)} DisplayType: Text ObjectName: MonitorManufacturer ObjectType: Attribute DisplayName: {Monitor Manufacturer} DisplayType: Text ObjectName: MonitorModel ObjectType: Attribute DisplayName: {Monitor Model} DisplayType: Text ObjectName: MonitorScreenSizePublished ObjectType: Attribute DisplayName: {Monitor Screen Size Published (inches)} DisplayType: Text ObjectName: MonitorScreenSizeActual ObjectType: Attribute DisplayName: {Monitor Screen Size Actual} DisplayType: Text ObjectName: BusType ObjectType: Attribute DisplayName: {Bus Type} DisplayType: MultiSelect DisplayValues: {64 bit PCI} {32 bit PCI} PCI {PCI Express} PCI-X ISA EISA VLB MCA AGP {Compact PCI} PCMCIA Other Required: Yes ObjectName: HardDriveTypeAndSize ObjectType: Attribute DisplayName: {Hard Drive Type and Size} DisplayType: Text Required: Yes ObjectName: HardDriveModel ObjectType: Attribute DisplayName: {Hard Drive Model} DisplayType: Text Required: Yes ObjectName: SpecialConfigurationNotes ObjectType: Attribute DisplayName: {Special Configuration Notes} DisplayType: TextMultiline # # Begin the storage controller container and attributes # ObjectName: StorageController ObjectType: Container MultipleObjects: Yes DisplayName: {Storage Controller} Attributes: StorageControllerName StorageControllerManufacturer StorageControllerModel AttributeName: StorageControllerName ObjectName: StorageControllerName ObjectType: Attribute DisplayName: {Storage Controller Name} DisplayType: Text DisplayDefault: Unknown ObjectName: StorageControllerManufacturer ObjectType: Attribute DisplayName: {Storage Controller Manufacturer} DisplayType: Text DisplayDefault: Unknown ObjectName: StorageControllerModel ObjectType: Attribute DisplayName: {Storage Controller Model} DisplayType: Text DisplayDefault: Unknown # # Begin the Graphics controller container and attributes # ObjectName: GraphicsController ObjectType: Container MultipleObjects: Yes DisplayName: {Graphics/Video Controller} Attributes: GraphicsControllerName GraphicsControllerManufacturer GraphicsControllerModel AttributeName: GraphicsControllerName ObjectName: GraphicsControllerName ObjectType: Attribute DisplayName: {Graphics Controller Name} DisplayType: Text DisplayDefault: Unknown ObjectName: GraphicsControllerManufacturer ObjectType: Attribute DisplayName: {Graphics Controller Manufacturer} DisplayType: Text DisplayDefault: Unknown ObjectName: GraphicsControllerModel ObjectType: Attribute DisplayName: {Graphics Controller Model} DisplayType: Text DisplayDefault: Unknown # # Begin the Network device container and attributes # ObjectName: NetworkDevice ObjectType: Container MultipleObjects: Yes DisplayName: {Network Device} Attributes: NetworkDeviceName NetworkControllerManufacturer NetworkControllerModel AttributeName: NetworkDeviceName ObjectName: NetworkDeviceName ObjectType: Attribute DisplayName: {Network Device Name} DisplayType: Text DisplayDefault: Unknown ObjectName: NetworkControllerManufacturer ObjectType: Attribute DisplayName: {Network Controller Manufacturer} DisplayType: Text DisplayDefault: Unknown ObjectName: NetworkControllerModel ObjectType: Attribute DisplayName: {Network Controller Model} DisplayType: Text DisplayDefault: Unknown # please leave a blank line after the last object 0707070000000000241006440000000000030000010000001016702620300004600000001225root/home/sct/res/e00folder_closed.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #000000000000", "X m white c #ffffffff0000", "o m white c #c3c3c3c3c3c3", " ", " ", " ", " ", " .... ", " .XoXo. ", " .oXoXo....... ", " ......oXoXoXo. ", " .oXoXoXoXoXoX. ", " .XoXoXoXoXoXo. ", " .oXoXoXoXoXoX. ", " .XoXoXoXoXoXo. ", " .oXoXoXoXoXoX. ", " .XoXoXoXoXoXo. ", " .oXoXoXoXoXoX. ", " .............. ", " ............ ", " ", " ", " "}; 0707070000000000251006440000000000030000010000001016702620300004400000001422root/home/sct/res/e01folder_open.px/* XPM */ static char * collapsable_folder3.px [] = { "20 20 8 1", " m None c None", ". m black c #000000000000", "X m white c #ffffffff0000", "o m black c #820082008200", "O m white c #c3c3c3c3c3c3", "1 m white c #444444444444", "2 m white c #888888888888", "3 m white c #CCCCCCCCCCCC", " ", " ", " ", " ", " .... ", " .XoXo. ", " .oXoXo....... ", " .XoXoXoXoXoXo. ", " .oXoXoXoXoXoX. ", " .XoXoXoX.......o ", " .oo.....XOXOXOX. ", " .X.XOXOXOXOXOXO. ", " .o.OXOXOXOXOXOX. ", " ..OXOXOXOXOXOX. ", " ..XOXOXOXOXOXO. ", " .............. ", " ............ ", " 23321 ", " 23321 ", " 23321 "}; 0707070000000000261006440000000000030000010000001016702620300004400000001224root/home/sct/res/e02item_middle.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #444444444444", "o m black c #888888888888", "O m black c #CCCCCCCCCCCC", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOooooooooo", " oOOOOOOOOOOO", " oOOOOOOOOOOO", " oOOooooooooo", " oOOo........", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", " oOOo. ", 0707070000000000271006440000000000030000010000001016702620300004200000001224root/home/sct/res/e03item_last.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", "1 m black c #444444444444", "2 m white c #888888888888", "3 m white c #CCCCCCCCCCCC", " 23321 ", " 23321 ", " 23321 ", " 23321 ", " 23321 ", " 23321 ", " 23321 ", " 23321 ", " 233222222222", " 233333333333", " 233333333333", " 222222222222", " 211111111111", " ", " ", " ", " ", " ", " ", " ", 0707070000000000301006440000000000030000010000001016702620300003500000001224root/home/sct/res/e04hbar.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #444444444444", "o m black c #888888888888", "O m white c #CCCCCCCCCCCC", " ", " ", " ", " ", " ", " ", " o. ", " oo. ", "oooooooooooooooo. ", "OOOOOOOOOOOOOOOo. ", "OOOOOOOOOOOOOOOo. ", "ooooooooooooooOo. ", "..............oo. ", " .o. ", " .. ", " ", " ", " ", " ", " ", 0707070000000000311006440000000000030000010000001016702620300003600000001066root/home/sct/res/e05blank.px/* XPM */ static char * a11_next_message.px [] = { "20 20 1 1", " m None c None", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; 0707070000000000321006440000000000030000010000001017400247000004300000001220root/home/sct/res/e06requiredok.px/* XPM */ static char * a11_next_message.px [] = { "20 20 4 1", " m None c None", ". m red c #FFFF00000000", "o m black c #000000000000", "O m white c #FFFFFFFFFFFF", " ", " ", " ", " ", " ", " ", " ", " o o ", " oo ", " oooooo ", " oo ", " o o ", " ", " ", " ", " ", " ", " ", " ", " "}; 0707070000000000331006440000000000030000010000001017400245500004400000001220root/home/sct/res/e07requiredbad.px/* XPM */ static char * a11_next_message.px [] = { "20 20 4 1", " m None c None", ". m red c #FFFF00000000", "o m black c #000000000000", "O m white c #FFFFFFFFFFFF", " ", " ", " ", " ", " ", " . . ", " .. .. ", " ... ", " ....... ", " ....... ", " ... ", " .. .. ", " . . ", " ", " ", " ", " ", " ", " ", " "}; 0707070000000000341006440000000000030000010000001023400552100002700000021654root/home/sct/res/eula THE SCO GROUP, INC. SCO SYSTEM CERTIFICATION TESTS (SCT) SOFTWARE LICENSE AGREEMENT IMPORTANT, READ CAREFULLY ALL TERMS AND CONDITIONS OF THIS SOFTWARE LICENSE AGREEMENT ("LICENSE") THAT IS INCLUDED WITH THE PRODUCT OR THAT APPEARS AS PART OF INSTALLATION OF THE SOFTWARE. BY USING THE SOFTWARE, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS LICENSE AND UNDERSTAND IT, AND YOU AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, DO NOT USE THE SOFTWARE IN ANY MANNER AND IMMEDIATELY RENDER IT UNUSEABLE; AND IN THE CASE OF PACKAGED PRODUCT, RETURN THE MEDIA PACKAGE AND THE ACCOMPANYING ITEMS (INCLUDING WRITTEN MATERIALS AND BINDERS OR OTHER CONTAINERS) TO THE PLACE YOU OBTAINED THEM. DEFINITIONS "Agreement" is the contract between you ("You") and The SCO Group, Inc. ("SCO"), relating to the Product acquired by You. The Agreement comprises (i) this document, (ii) any additional terms contained in the Documentation, and (iii) any amendments agreed by both You and SCO in writing. "Documentation" is the documentation supplied for the Software. "Object Code" means the Code that results when Source Code is processed by a software compiler and is directly executable by a computer. "Product" is a SCO System Certification Tests Software offering consisting of any or all of the following: (i) the Software, (ii) the Documentation, (iii) the Updates and (iv) any copy of the Software, Documentation or Updates; to the extent made available by SCO. "Software" is the machine-readable Object Code, or Source Code, copies of the Product. "Source Code" means the human-readable form of the Product and related system documentation, including all comments and any procedural language. "Update" is the updates or revisions of the Software or Documentation that You may receive. GRANT SCO grants You and You accept from SCO, the following limited, personal, nontransferable, nonassignable and nonexclusive limited right to use, in the United States, the Product solely for Your own internal business purposes. You are not granted any other right in the Software. All proprietary rights in or related to the Software are and will remain the exclusive property of SCO. The Software, and SCO's rights therein, are protected by copyright, under local law and under international copyright conventions. You further acknowledge that the Software contains confidential information owned by SCO and You agree to take reasonable steps to protect the confidentiality of such information. You may load, copy or transmit the Software in whole or in part, only as necessary to enable the Software to be used by You solely for internal use. You may make archival copies of the Software as required for back-up purposes. YOU MAY PRINT OR COPY THE DOCUMENTATION ONLY FOR USE WITH LICENSED SCO SOFTWARE. All trademarks, service marks, patents, copyright and other proprietary notices must be reproduced when making copies in whole or in part. You shall not modify, decompile, disassemble, decrypt, extract or reverse engineer the Software for any purpose, except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation. If You wish to exercise any rights under Article 6.1b of the EC Directive on the Legal Protection of Software, (Directive 91/250), You shall, in the first instance, write to SCO's Legal Department. You may request a Source Code copy of the Software which SCO may provide to You, at SCO's sole discretion. Source Code will be provided to You under the following additional terms and conditions. The Source Code format of the Product is provided solely for Your own internal business purposes for reference purposes only. Such right to use does not include any right to modify such Source Code or prepare derivative works based on such Source Code; or to distribute, to any other party the Source Code. No right is granted to You to allow anyone other than Your employees to use Source Code. The term "employees" as used in this License means both direct and contract employees. LIMITED WARRANTY SCO warrants that upon Your receipt of the Product and for a period of 90 calendar days thereafter, the media, if any, on which the Software is embedded will be free of defects in material and workmanship under normal use. SCO does not warrant that (i) the Software and any related Updates will be free of defects, (ii) the Software will satisfy all of Your requirements or (iii) the use of the Software will be uninterrupted or error-free. In case of breach of warranty related to the quality of the media, You must return at Your expense and no later than 10 days after the expiration of the warranty period, the Product to SCO or its local authorized representative, together with a copy of Your dated Proof of Purchase. SCO or its representative will replace any defective media, or if not practicable, may terminate this Agreement. You acknowledge that this Paragraph sets forth Your exclusive remedy and SCO's exclusive liability for any breach of warranty or other duty related to the quality of the Product. LIMITATION OF LIABILITY EXCEPT FOR THE SCO WARRANTY SET OUT ABOVE, OR OTHERWISE EXPRESSLY PROVIDED IN A SEPARATE AGREEMENT WITH SCO, ALL WARRANTIES, TERMS, CONDITIONS, REPRESENTATIONS, INDEMNITIES AND GUARANTEES WITH RESPECT TO THE SOFTWARE, WHETHER EXPRESS OR IMPLIED, ARISING BY LAW, CUSTOM, PRIOR ORAL OR WRITTEN STATEMENTS BY SCO OR OTHERWISE (INCLUDING, BUT NOT LIMITED TO ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR ANY IMPLIED WARRANTY OF NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS) ARE HEREBY OVERRIDDEN, EXCLUDED AND DISCLAIMED. SOME STATES OR COUNTRIES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU. THIS WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS AND YOU MAY ALSO HAVE OTHER RIGHTS WHICH VARY FROM STATE TO STATE OR COUNTRY TO COUNTRY. UNDER NO CIRCUMSTANCES WILL SCO BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, SPECIAL, PUNITIVE, OR INCIDENTAL DAMAGES, WHETHER FORESEEABLE OR UNFORESEEABLE, BASED ON YOUR CLAIMS (INCLUDING BUT NOT LIMITED TO, CLAIMS FOR LOSS OF DATA, GOODWILL, PROFITS, USE OF MONEY OR USE OF THE PRODUCTS, INTERRUPTION IN USE OR AVAILABILITY OF DATA, STOPPAGE OF OTHER WORK OR IMPAIRMENT OF OTHER ASSETS), ARISING OUT OF BREACH OR FAILURE OF EXPRESS OR IMPLIED WARRANTY, BREACH OF CONTRACT, MISREPRESENTATION, NEGLIGENCE, STRICT LIABILITY IN TORT OR OTHERWISE, EXCEPT ONLY IN THE CASE OF PERSONAL INJURY WHERE AND TO THE EXTENT THAT APPLICABLE LAW REQUIRES SUCH LIABILITY. IN NO EVENT WILL THE AGGREGATE LIABILITY WHICH SCO OR ITS LICENSORS MAY INCUR IN ANY ACTION OR PROCEEDING EXCEED THE TOTAL AMOUNT ACTUALLY PAID BY YOU FOR THE SPECIFIC PRODUCT THAT DIRECTLY CAUSED THE DAMAGE. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF EXCLUSION OF LIABILITY FOR INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU. EXPORT RESTRICTIONS You acknowledge that the Product and the media are subject to export controls under the U.S. Export Administration Regulations and the export regulations of other countries. You may not export or re-export, directly or indirectly, the Product, the media, or any related technical information or materials unless you have obtained an appropriate authorization from the U.S. Commerce Department and any other relevant government authority. TERM AND TERMINATION This license shall remain in effect until terminated as set forth herein. You may terminate this Agreement, without right to refund, by notifying SCO of such termination. SCO may terminate this Agreement, upon reasonable notice and without judicial or administrative resolution, upon written notice to You. Upon the termination of this Agreement for any reason, all rights granted to you hereunder will cease, and You must promptly (i) purge the Software and any related Updates from all your computer systems, storage media and other files, (ii) destroy the Products and all copies thereof and (iii) deliver to SCO an affidavit that certifies that you have complied with these termination obligations. ASSIGNMENT Neither this Agreement nor any rights hereunder, in whole or in part, shall be assignable or otherwise transferable by You and any purported assignment or transfer shall be null and void. MISCELLANEOUS All notices or approvals required or permitted under this Agreement must be given in writing. Any waiver or modification of this Agreement will not be effective unless executed in writing and signed by SCO. This Agreement will bind your successors-in-interest. This Agreement is governed by the laws of the State of Utah, U.S.A.; excluding (i) Utah's choice of law principles and (ii) the United Nations Convention on Contracts for the International Sale of Goods. If any provision of this Agreement is held to be unenforceable, in whole or part, such holding will not affect the validity of the other provisions of this Agreement. 0707070000000000351006440000000000030000010000001016702620300004100000001066root/home/sct/res/p00disabled.px/* XPM */ static char * a11_next_message.px [] = { "20 20 1 1", " m None c None", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; 0707070000000000361006440000000000030000010000001016702620300004000000001226root/home/sct/res/p01enabled.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #000000000000", "X m green c #0000ffff0000", "o m red c #ffff00000000", " ", " ", " ", " ", " XXX ", " XX ", " XXX ", " XX ", " XXX ", " XX ", " XXX ", " XX ", " XXX ", " XX ", " XX XXX ", " XXX XX ", " XXXXX ", " XXX ", " ", " "}; 0707070000000000371006440000000000030000010000001016702620300004000000001226root/home/sct/res/p02running.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #000000000000", "X m yellow c #ffffffff0000", "o m green c #0000ffff0000", " ", " ", " ", " ", " ..... ", " .ooooo. ", " .ooooooo. ", " .ooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooo. ", " .ooooooo. ", " .ooooo. ", " ..... ", " ", " ", " "}; 0707070000000000401006440000000000030000010000001016702620300004000000001225root/home/sct/res/p03stopped.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #000000000000", "X m yellow c #ffffffff0000", "o m red c #ffffffffffff", " ", " ", " ", " ", " ..... ", " .ooooo. ", " .ooooooo. ", " .ooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooooo. ", " .ooooooooo. ", " .ooooooo. ", " .ooooo. ", " ..... ", " ", " ", " "}; 0707070000000000411006440000000000030000010000001016702620300003600000001225root/home/sct/res/p04error.px/* XPM */ static char * expandable_folder3.px [] = { "20 20 4 1", " m None c None", ". m black c #000000000000", "X m yellow c #ffffffff0000", "o m red c #ffff00000000", " ", " ", " ", " ", " o ", " ooo ", " ooo ", " ooo ", " ooo ", " ooo ", " ooo ", " o ", " o ", " ", " o ", " ooo ", " o ", " ", " ", " "}; 0707070000000000421006440000000000030000010000001016702620300004000000001066root/home/sct/res/p05noerror.px/* XPM */ static char * a11_next_message.px [] = { "20 20 1 1", " m None c None", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "}; 0707070000000000431006440000000000030000010000001020720571700003400000462054root/home/sct/res/splash.px/* XPM */ static char *magick[] = { /* columns rows colors chars-per-pixel */ "320 240 128 2", " c #215693", ". c #f6d746", "X c #f7e598", "o c #224873", "O c #f8c838", "+ c #8fa1a7", "@ c Gray90", "# c #2866ad", "$ c #1e4f8b", "% c #cab14c", "& c #113760", "* c #b5c6d4", "= c #526c8b", "- c #d7d8d8", "; c #2563ab", ": c #93b3d4", "> c #6a8eb6", ", c #4d6378", "< c #fce86f", "1 c #ecb93c", "2 c #4c7aac", "3 c #2666b1", "4 c #6f9ac5", "5 c #8f996c", "6 c #195ba9", "7 c #1c67b8", "8 c #f3c723", "9 c #d9e6ed", "0 c #e7aa39", "q c #326197", "w c #e3edf3", "e c #abbcc9", "r c #efc33d", "t c #708a95", "y c #f1d57b", "u c #cedae4", "i c #245d9f", "p c #e9f4f8", "a c #baaa53", "s c #fefdf3", "d c #2868ad", "f c #cdcdcd", "g c #fffef8", "h c #f9e153", "j c #5787bb", "k c #83a4c6", "l c #2461a4", "z c #2a63a6", "x c #f8d33d", "c c #f5b939", "v c #c8d3dc", "b c #f2f4f4", "n c #788f7a", "m c #97adc3", "M c #f8ecc4", "N c #366aa4", "B c #f4fdfe", "V c #2568ad", "C c #9fb4c5", "Z c #62788f", "A c #a8a865", "S c #e49e37", "D c #1b6bc2", "F c #8b865c", "G c #fafffe", "H c Gray98", "J c #3376b8", "K c #f2ab34", "L c #837554", "P c #bfcdd7", "I c #a89451", "U c #98a171", "Y c #578292", "T c #fdf7e0", "R c #dfae38", "E c #fefbfa", "W c #8099a8", "Q c #fbfdf9", "! c #4072a5", "~ c #eebe31", "^ c #cd9639", "/ c #2368a5", "( c #bcbf70", ") c #fefbfe", "_ c #91b7da", "` c #f1f7fa", "' c #eda231", "] c #89add2", "[ c #eaf0ed", "{ c #d5bc49", "} c #2a67a7", "| c #246db7", " . c #f5faf7", ".. c #3068b3", "X. c #f7b631", "o. c #9db1d3", "O. c #dddfe1", "+. c #efc431", "@. c #8dafc8", "#. c #ebebec", "$. c #2e6fad", "%. c #f8fafd", "&. c #edab2c", "*. c #2685d2", "=. c #5e7fa5", "-. c #1b5a9d", ";. c #fece31", ":. c #faf7f4", ">. c #f1d140", ",. c #f7f7f8", "<. c #a1a060", "1. c #3c597c", "2. c #7f9cbc", "3. c #06264e", "4. c #fdffff", "5. c #fdfdfd", "6. c #fffffd", "7. c #fdfffd", "8. c #fffdff", "9. c #fffdfc", "0. c #fcfdff", "q. c #144174", "w. c #4582b6", "e. c #eff0f1", "r. c #f2cb32", "t. c #2766ab", "y. c Gray100", "u. c #2867ac", /* pixels */ "t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.", "t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.t.d u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.d t.t.d u.u.u.u.t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.d d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.d u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.d u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.d d t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.", "t.u.u.t.t.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.d u.u.u.u.u.u.u.u.t.u.u.u.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.", "t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.d u.u.t.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.t.t.t.t.u.u.u.u.u.u.u.u.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.u.u.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.d u.u.t.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.t.u.u.t.t.d u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.d u.t.t.u.u.d u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.d u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.u.d t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.t.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.t.t.t.u.u.u.u.t.t.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.", "t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.t.t.u.u.u.u.u.t.t.u.u.t.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.d t.t.d u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.t.t.t.", "u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.d t.t.d u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.t.t.t.", "u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.t.t.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d t.t.d u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.t.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.d u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.t.", "u.u.u.u.u.u.u.u.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.t.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.t.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.t.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.d t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.t.t.t.t.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.d d t.t.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.d u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.d u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # # # # # # # # # # # # # # # d # # d u.u.# u.# # # # # # # u.# # # # # # # # u.u.u.u.# # # # # # # # # # # # # # # # # # # # # # # # # # # # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.d d # t.t.t.t.t.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.d d u.u.u.u.u.u.u.t.# u.u.# # # # # u.u.u.u.u.u.u.t.# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# u.# 3 u.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.} } } } } } } } t.t.t.t.t.t.t.t.t.t.t.t.} } } } } } } } t.t.t.t.} } } } } } } } } } } } } } } } t.t.t.} t.} t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.V t.} # # / -.6 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.l ; t.} } V V u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.", "u.u.u.u.u.u.u.d u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.3 } z z 6 N 4 m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m k ! l ; t.u.} t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.", "u.u.u.u.d u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.d u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# / V i > 9 6.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.w > $ l ; } } # t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.d u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.", "u.u.u.u.u.u.u.u.u.t.t.u.u.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.3 i @.0.y.T X y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y T g p Z $ l t.# u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.", "u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.# i > B s M r ~ ~ ~ ~ ~ ~ ~ +.+.r +.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1 ~ ~ ~ ~ ~ ~ ~ ~ r M y.e $ -.; z u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.u.u.t.t.t.t.t.u.u.u.u.u.u.u.u.# # # # d # # # u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.d u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.# l N 9 g X 1 1 r O >.>.>.>.. . . . h h h h < h < h < < < < h < h h h h h h h h . h . . . . . x x >.>.>.>.>.O >.r.>.O O O r r r r r r r r r r r r r r r r r r r r ~ y E w 1. i z u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.# # # # # d d # u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d -.4 G :.r +.r.>.>.>.. . . h h h < < < < X < X X X X X < X X < X < < < < < < < < < h h h h . . h x x . x x >.>.r r r r r >.O O ;.O r.+.r r r r r r r r r r 1 1 1 1 r s p 1.$ i ; u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.t.t.d d u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t. C 8.X 1 r >.x . . x . h h h < < < < X < X X < X X X X X < X < X < < < < < < < h h h h h h . >.( ( + + 4 j j w.w.w.w.w.Y t 5 U a { r.r.O r r r r r r 1 1 r 1 1 r >.) w 1.$ i z t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.# # # # t.t.# # # # # # t.t.t.t.t.t.t.t.t.t.# # # # # # # # t.# u.u.u.u.u.u.u.u.t.u.u.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.u.u.u.u.u.u.u.u.t.# # t.# # # # t.u.u.u.t.t.t.t.# # # # t.t.u.# u.u.u.u.u.u.u.# u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.# # # u.l i P y.y r >.x >.x . . . . h h h < < < < < X < X X < X < X X X < < < < < < h < h < h h h ( + 4 j *.*.*.*.*.*.*.*.| *.D D D D D D | $.Y 5 % 1 1 r r r r r 1 1 1 1 1 y y.v o $ i z t.u.u.u.u.u.u.u.# # u.# u.d t.t.; l l l l l i l l l l l l l l l l l l l l l l l 6 i i 6 l l l ; t.u.V V V u.t.} } z ; ; l -.6 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.6 -.-.i t.V t.# # # t.z ; l i -.i -.-.-.-.6 -.6 -.6 -.6 -.-.-.-.i -.6 ; 3 z } t.V } } 7 ; ; 3 t.} } d 3 t.d d t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # # # l N w g y ~ >.. . . . . . h h h h < < < < X < X < X X X X < < < < < < < < < < h h h h y U @.+ + + + U W n n n n n n n n n n n t t n t Y Y n <.r r r r r 1 1 1 R 1 1 X y.C & $ i z t.u.u.u.u.u.u.u.u.u.# 3 3 ; -.i N 2 w.2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 # ; # # } } / V / ; 6 l N j 4 k k k k k k k k k k k k k k k k k k k k k k k k k > l ; 3 V / / -.6 N 2 j > > > > > > > > > > > > > > > > > j > 2 N 6 V # # d ; N ! z l u.t.u.d 3 u.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.# # # # i 2 %.T r r x . . . . . . h h h h < < < < < < < < X < < < X < < < < < < < h h h h . . . . ;.r.>.{ % a a a A A A A A a % { { r 8 8 ;.O O r.+.r 1 ~ r r 1 1 1 R 0 1 1 M y.W & ; t.u.u.u.u.u.u.u.} u.# ; i q > * @ ,.H ,. .:.,.,.,.,.,.,.H H H H H H H H H H H H H ,.H ,.:. .B =.i z t.# # 3 l -.! k P #.:.6.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.7.7.y.v i i } ; 6 q > * @ ` 5.G Q Q 7.Q 7.7.7.7.7.7.7.7.5.5.5.9.9.4.%.#.e 2 l ; l ! ] ] ] N l t.V u.# u.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.t.t.t.t.t.t.u.u.u.u.u.# # # t.-.4 9.M r O . . . . . . h h h h h h < < < < < < < < < < < < < < < < h h h h h h . >.{ ( 5 t Y J $.| | | D D D 7 7 | | | $.! 2 Z n <.% 1 r O O r r r 1 1 1 0 R 0 1 r T B Z q. q ; # u.u.u.u.u.u.u.} # ; =.v 4.7.y.4.4.7.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.6.4.G 4.y.g y.* i z t.V ; ! : e.y.y.y.g 6.5.Q 6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.9.g 4.G 7.g y.w Z i i i > u y.7.y.6.6.9.6.y.y.y.6.6.6.6.6.6.6.6.y.y.y.y.6.6.6.y.y.e.> ; i 2.] e 2.j i t.V u.# u.d d t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.t.d d t.u.u.u.u.u.u.t.t.t.u.u.t.u.t.t.u.3 # t.u.# # ; -.C y.M ~ >.. x . . . . . . . h h h h h < < < < < < < < < < h < < h h h h >.( U > w.D D D D D | | | D D D | 7 | 7 D D 7 D 7 7 D 7 7 7 N Y 5 a r c r r 1 0 0 0 0 1 >.T ` 1.q. l ; # # # # # # # # } ; 6 2.b 4.G E 6.6.6.6.5.5.5.5.4.4.4.4.4.4.4.4.5.5.4.G Q Q E g 0.5.s g y.e $ $ i l / l i > @ y.y.y.4.4.4.4.5.9.6.4.6.6.7.5.6.5.9.9.5.0.0.4.5.5.G 5.g g y.v = q. -.z C 6.y.4.8.9.6.5.9.5.5.5.5.5.5.5.5.5.5.5.9.5.5.9.5.4.6.6.6.8.6.b 2 i 2.k @.2.j i ; # # } u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.t.t.u.u.t.u.t.t.u.u.t.} u.# # l z v 6.y 1 >.. x . h . . . . h . h h h h h h < h < h h h h h h h h h . x . ( U + 5 5 U 5 5 5 5 Y | 2 5 5 5 5 5 U <.<.<.<.<.U U U U 5 5 5 5 n 5 % r 1 1 1 0 0 S 0 1 y Q O.o $ l # # # # # # # # # ; -.k B y.8.9.G 4.y.y.4.4.4.4.4.5.5.5.5.5.5.5.5.9.5.9.9.5.E ) ) g 6.y.9 t o o i / l i o.G y.E y.y.y.y.4.4.4.4.4.4.4.4.4.0.G 0.4.4.7.7.Q Q 9.9.g 6.y.w + o q.$ $ q v y.6.G 4.E 5.8.8.8.6.8.9.6.5.5.5.5.5.5.5.7.g g g 9.6.8.8.8.7.E 6.P $ ! : 2.] q i l # # # u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.t.t.u.u.t.u.u.t.u.t.t.u.u.} u.u.3 # l N w s y r >.. . h . . . . . . . . . h h h h h h h h . h . . . . x . x x x x x ;.r { { % a A A n ! $.n n t n n t n n n 5 U <.a % { 1 O 8 ;.;.O O r r 1 K 0 S 0 R 1 y y.e & $ i l z # # # # # # t.# -.> .s G 4.g G y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.6.6.y.y.y. .v W 1.& o i i i i * 6.s ) Q y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.` v W 1.& q.$ $ q u 4.s G G 4.9.9.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.6.y.8.8.G ) g ,.2 $ q N i l ; t.u.# u.u.u.u.u.u.u.u.t.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.t.u.u.t.u.t.t.u.# u.d # # # i 2 0.T +.r . . . . h . . . . . . . . . . . . . . . . . . . x x x x >.{ ( A 5 t Y ! ! | | D 7 7 | | | | D 7 7 7 7 7 7 | D 7 7 | V | $.! Y t 5 <.% R 1 c 0 0 S 0 1 1 X y.+ q.$ i / } # # # # # # # l N w y.0.G 7.5.y.y.5.e.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.@ u * C t , o & q.$ i i l i * 0.g ) %.0.6.6.6.y.y.y.,.#.O.O.O.O.O.- v v v v v v P e m t 1.o & q.$ $ P y.s G G 9.9.4.y.e.v f v v v v v v v v v v v v v v f [ y.4.6.6.G 5.E g W $ i i i l z t.u.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# V # } / -.2.4.M +.r.. . . h . . . . . . . . . . . . . . . >.. x x >.. % U t Y ! J D D 7 7 | | | | | | | | | $.| | | $.$.| | | | | | | | | | | 7 7 7 7 ; } N = F R ' S ' 1 r M 6.t & $ i z t.} 3 3 } } # ; -.C y.9.G G g y.w + , 1.o o 1.o 1.o 1.o o 1.o o 1.o o o o o q.& & q.q.$ $ i i z k 0.g 5.G G ) E y.y.[ C t 1.o o o o o o o o o o o o o q.& & & q.o $ $ -. m y.6.7.4.) ) 8.y.e 1.& o o o o o o o o o o o o o o o & , 9 6.E 4.6.7.9.6.C q. i l l l z t.u.d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.d # / 3 } / -.C y.X 1 >.. . . . . . . . . . . >.x . x x x . >.x x >.>.r.r % ( a % ( % % % % % a a a a a a a a a a ! Y a % a % % % % % % % % % % % a a a a a a a I I 0 S S 0 ~ r :.G , q. l z u.} 3 3 } } # i N w 6.s 5.0.6.p , 3.& q.q.o q.q.q.q.q.o o q.q.o q.o q.o o o o $ $ $ i l / l -.=.B g E ) Q Q E y.b + 1.& & q.q.o o o o q.o q.o q.o o o o $ $ $ $ i i =.G y.4.4.6.9.) y.+ & & q.o q.o o q.o q.o o q.o q.o o q.q.& m y.9.4.8.7.8.y.e o -.i z z z t.} u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.t.t.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.# # / 3 z ; i v 4.y r r.. . h . . h . . . . >.>.>.>.>.>.>.>.x >.. x ;.x x O +.{ { % a <.5 5 n n n t Y Y Y Y Y Y =.$.$.Y Y Z t Y n n 5 <.A a % { 1 +.8 8 O c c ~ c X.' S S R 1 y g w 1.q. l z # V # # } V 3 4 y.g g G Q y.e & q.o $ $ $ i i i z z ; ; l q u 7.s ) ) Q g y.u , & & q.$ $ $ -. i i i l l l q O.y.6.y.y.6.6.y.C & q.o q.W y.6.g 6.7.8.y.e o z t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # / d # l N p s y 1 x . . . . . . . >.>.>.x >.x >.>.x x x x >.{ ( A 5 t Y 2 $.$.| 7 D 7 D D D D 7 7 | | | 7 | V | | | D 7 7 | D D D 7 7 7 V d ! 2 Y n 5 a % R 1 ' S S ' R ~ y y.v o $ i l # # V # # } V ; e y.9.5.0.9.6.* q.q.$ $ $ $ $ $ -.$ $ -.$ $ $ -.i i l ; z z t.3 ; k y.g s 0.5.g y.P o & o $ i i i l l l l l l l i l i l l l z l / t.q z 6 2.4.G 6.y.8.8.y.u o q.$ i i z i l l l l l l l l l l l l i $ W y.g g 4.7.8.y.e o -.i t.u.u.u.t.u.u.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.u.u.u.u.u.u.u.t.d d u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.} # # } ; -.=.0.T r r.. . h . h . . . x >.>.>.>.>.>.O >.( U W Y 2 J | 3 V V V $.d $.$.$.$.$.$.$.$.$.$.$.$.$.$...$.$.$.$.$.$.$./ $.$.d u.t.} u./ ; ; ; 6 i i q q , I R S S 1 1 X y.C & $ i z } # # # / 3 # l P y.y.y.y.4.6.g f m 2.k k k k k k k k k k k k k k k k k 4 2 N l ; z t.# z l N w y.g g 6.9.7.O.o & o i z z z t.; ; t.t.t.t.t.t.t.t.t.t.t.t.t.} # # l q 9 s G 4.5.9.6.H Z & $ i l z t.} t.z z t.t.t.t.t.t.} z / l $ k y.) g G 5.9.y.m q. l t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.", "t.u.u.u.u.u.u.u.d t.t.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.} V # z t.-.2.y.M r r.. . . . . . . x >.>.>.O >.r O O >.% ( % { { { % { { { { % { % % % % % % % % % a % a % % % % Y ! a { { % { % % % % % % % % % % a % a a a ^ I S S S S ~ 1 M y.W & $ i z } # # # / 3 z l i P y.y.y.y.5.5.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.6.s s 9 @.q z V V z k y.y.6.6.8.6.%.= & $ i z z t.# # u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.} # # 2.4.s 0.0.5.g y.e & o i z t.# # # # # # # # # # # # # # } ; $ C y.8.g 7.8.9.y.W q.i l t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.u.u.u.", "t.u.u.u.u.u.u.u.d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.} V V # t.-.C 4.X 1 >.. . h . . . . >.>.O >.r O O >.>.x x ;.x >.r { % a a <.5 5 n n n n t Y Y Y Y Y Y 2 2 Y Y Y Y $...n n n 5 5 <.a a % { 1 ~ c O O c c X.X.X.1 0 S S S R ~ 1 T G = q. i z } # # # / # z l * y.y.y.y.5.5.5.5.5.9.5.5.6.6.6.6.6.6.6.6.6.6.6.g s Q 0.0.4.y.y.O.= -.; ; l q u 6.g 8.8.6.y.e & o i l t.# V u.d u.u.u.u.t.t.t.t.u.u.u.t.u.u.u.u.} V ; v y.0.g G 9.6.` , q.$ i l # # # # # u.# u.u.u.u.u.u.u.u.# t.l P y.6.g 9.8.6.B Z o -./ t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.", "t.u.u.u.u.u.u.u.t.d d u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.} V V u.l l v Q y c >.. x . . . . >.>.x x ;.x >.r { a A U W t Y J $...| D 7 7 D D D D D 7 | | | | 7 | | | | D | 7 | | 7 D 7 7 7 7 7 7 d N ! = Y n F I a R 0 0 K &.S S S 0 ~ >.E p 1.q. l } } # V # } # z l $ 2.y.y.6.6.5.4.5.5.5.5.6.5.6.7.7.7.7.7.7.7.g 5.g Q s g 5.0.5.Q 9.y.u i -.q -.2 B s g 8.8.g Q = q.$ i z z # # d t.} # # # # # # # # u.u.u.# # # # # # V 6 Z ` 0.0.s G g 6.* & $ i } u.d u.d u.t.t.u.# t.u.# # # # # t.i q w 6.6.g 9.8.y.w 1.$ i l t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.", "t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.3 } # / l N w 9.>.r >.x x . . . . >.>.{ A U t Y w.J *.D D D D D | D D 7 7 7 | 7 7 7 | 7 7 | D 7 | 7 | 7 | | D / | V 7 7 7 7 7 ; 3 V 7 7 7 6 6 6 6 6 6 -.-.1., L F S S S R 1 y g u o $ z V V } } u.# # # z q O.y.g g 5.G 5.5.6.6.6.6.9.9.9.9.6.6.6.6.6.7.6.5.0.5.4.5.9.6.8.y.4.t $ i $ m y.8.6.G 6.6.u o $ l } # # # # u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.# / -.2.y.8.g 6.Q g y.W q.$ i ; t.u.d u.u.u.t.t.u.u.u.u.t.u.u.u.# / > 5.6.0.g ) s y.C q. i z t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.t.u.u.u.u.", "t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.# } # t.-.=.B T r r >.x . . . >.x O >.% A U U U U U A A A U A U U U <.U <.<.<.<.<.<.<.<.A <.<.A a a A a a A A n V } 5 a <.a <.a n l n A <.I <.I I 5 I F F F F F F S ^ S 1 ~ y y.e & $ z V V } } u.# # # z i $ , u y.y.6.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.g g 9.5.8.y.y.y.y.C $ v y.) 6.4.y.y.m & $ i z } # # # # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# l e y.8.g y.G g %.= q. q t.u.t.t.d u.u.u.u.u.u.u.u.d t.u.u.# ; * y.6.4.g 5.g G = q. i z u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.t.u.u.u.u.", "t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.u.# } # k y.M 1 r x . . . . x >.>.>.O x O ;.x x x O O ;.;.O O 8 ;.;.;.;.;.;.O r 1 { % % a a <.<.U 5 5 5 n n 2 V # n 5 5 I <.A Z / a 0 1 1 ~ X.X.X.X.X.X.X.K ' ' S S ' 1 ~ M y.+ q.$ i z V V z u.u.# # # z z i $ o W * O.[ #.#.#.#.#.#.#.#.#.#.#.#.#.w #.w #.[ .y.4.5.6.6.y.4.y.e $ $ q p 6.9.9.4.y.y.W q. i z } u.# # # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.z l i P 6.8.Q 4.0.6.9 o $ z t.t.u.u.u.u.u.u.u.u.u.u.u.d t.u.u.t.-.2 p 8.4.G 6.9.y.* q.$ l # u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.", "t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.u.u.u.3 } ; e y.X 1 O >.>.>.. >.r.r r r r r >.r O r r r r O O O O r { a <.5 n Y Y ! ! $.$.| | | | 7 7 7 7 7 7 D / V ..7 7 ; 7 7 ; 7 / z q q = = Z L F I ^ S R 0 K ' ^ S 0 c r M y.t q.$ i z / V # u.u.d d u.# z l i $ q.q.o 1.o 1.o o 1.o o 1.o o 1.o o 1.o 1.o o 1.+ ` Q g g y.y.y.e q.$ 2 ,.7.9.9.4.y.y.W q.-.q } } u.# # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.z i q 9 6.8.Q 4.G y.P o $ i z 3 u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.l e y.8.4.G 8.9.G Z q. i / t.u.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.# } l i u 4.y r r x >.x >.>.r r r r r r r r r r.r r { a U n Y ! $.3 7 D D 7 7 D 7 7 D 7 D 7 7 7 7 7 7 ; ; | / } 3 ; 7 7 d 3 ; ; 6 6 6 6 6 -.-.6 -.-. , , L ^ S S 1 1 r T %.= q. i z u.u.# # # # # u.# t.; i $ $ q.o q.o q.q.o o q.o o q.o o q.q.q.q.o & & e y.4.6.y.g g k q.o 2 %.G 9.7.8.8.y.C q. i t.d u.u.u.u.u.# # # # # } } } } # # # d u.u.d d ; i } w y.y.y.4.Q 6.* o i z # # # # # # # # # } # V V t.} } # -.> G 9.5.G Q 8.y.* & $ l } # u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.# } l N e.g y ~ O >.>.>.>.r r r r r r r r r r r +.r % 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 n ; 3 N 5 5 5 <.! l n F F F F F F F F L F L F L L L L ^ S S 1 1 y s @ o o l t.} u.# # # # # # # # # z l i i $ $ $ o O.6.9.8.y.6.6.=.q.$ = %.7.E 4.8.) 6.p Z $ -.; t.# # # # # # V V V V V V V t.# # # u.u.u.u.d ; i q w y.y.y.8.G y.P o $ i z 3 t.t.t.t.# # # # # # z z } t.; -.= w 6.) ) Q Q 6.` , q. i z # u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.V # } -.j 0.T r r r O >.r r r r r r r r r r r r r r r r O O O r.O O O O O O O O O O O O O O O ~ O c +.8 O 5 z ; Y c O O F i F ~ c c X.1 X.X.1 K K K K K K K 0 S S S 0 1 1 y 6.P o $ i l } } # 3 # # # # # # # # t.; i i i -. -.-.-.-.-.-.-.-.-.-.-.-.-.-. $ o m G g 9.8.4.y.@ $ o $ q b 4.E 4.6.8.8.y.w t -.i 6 6 l l i l l l l l l l l l l t.t.# t.t.t.t.i z 9 y.y.y.8.G 9.9 1.$ i ; ; ; ; ; ; ; ; ; ; ; l l ; l 2 9 6.s ) ) 5.g y.+ & $ l z # d u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.", "u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.V # } 2.y.M r r r >.r r r r r r r r r r r r r r r r r r r r c r r r r ~ r r ~ r ~ r 1 ~ 1 1 c c ~ 1 c r Z ; l Z O % Z -.F K 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S S S S S ' 1 1 X y.C & $ i l } } # 3 # # # # # # ; l -.-.l N ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 2 > P G 9.E 6.4.y.y.W q.$ 1.v 4.5.8.g G 0.E s G u : 4 =.2 2 2 2 2 2 2 2 2 2 2 2 ! } i -.-.; t.t.t.; i f y.y.y.6.5.s y.C q q N N N N N N N N N N $.N N N $.! k p y.Q Q G ) E y.v o q. i z } u.d u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.", "u.t.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # / -.e y.X ~ r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r 1 r 1 1 1 1 1 1 1 1 1 1 1 Z ; / = n i $ n 1 K R 0 0 0 0 0 0 0 0 0 0 S 0 S S S S S S 0 r 1 M 8.W & $ i z } } t.V V # } t.; -.i 2 k e v w p e.e.e.e.e.e.e.e.e.e.e.b b b b e.e. .y.y.y.4.4.E E y.u o o $ 2.y.s 6.4.4.4.y.6.6.y.y.y.E E H H H H H H H H H H ,.e.O.* @.2 i -.; z } l $ C y.E ) 0.6.6.4.y.e.@ #.w w w w w w w w w #.w #.w w ` y.y.g 5.G G E 6.w 1.q.$ i l V V u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.", "u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.# u.l q v y.y 1 r r r r r r r r r r r r r r r r r r r r r r r r ~ r r 1 r r ~ r 1 1 1 1 r 1 1 1 1 1 1 1 1 = l l i 6 F R 0 0 0 0 0 0 0 0 0 0 0 0 S 0 S S S S S S ' 1 ~ r T Q = q. i z # } t.V 3 u.z l i j P b 4.y.y.4.y.y.y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.6.9.6.4.6.E y.p , q.$ i i 1.9 g 6.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.6.g H * 2 z l z $ =.G 9.9.0.y.y.4.y.y.y.y.y.6.6.6.6.6.6.6.6.y.y.y.y.y.y.y.4.5.0.5.9.6.` Z & $ i z t.# u.} u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.", "u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.} # l ! p s y +.r r r r r r r r r 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 K 1 1 Z i i 1.L 0 0 0 R S 0 0 S 0 S S S S S S S S S S S S S 0 1 1 y s ` 1.q. l t.# } t.V z V 6 N * Q 7.g 7.Q 0.0.4.5.g g 9.9.9.9.9.9.9.9.9.9.9.9.9.6.6.9.9.6.6.6.y.` Z & $ i ; -.$ t G y.6.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.y.y.6.E G B 6.g b > -.l l i $ P y.g 5.4.4.y.y.4.4.4.4.0.0.0.0.0.0.0.0.6.6.6.6.6.5.6.6.0.5.9.y.` Z & $ i z t.t.# u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.", "u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.} # 6 ! ,.T 1 ~ r r r r 1 r 1 1 1 1 1 1 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 S 0 L $ $ , R ' S S S ' S S S S S S S S S S S S S S S S S 0 ~ r y s - o o l u.u.} t.V 3 i 2 9 y.g E G 5.5.Q g 6.5.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.y.4.6.6.y.y.O.= & $ i z z l o > H y.y.6.6.6.y.4.y.y.y.y.y.y.y.y.y.y.y.y.4.4.4.4.9.0.G 5.E y.p = l i $ = ` g E 6.6.6.6.5.9.5.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.Q g y.9 Z & $ i z z # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.t.d d u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.# } z l ! .M O O O O O O O O O ~ X.X.X.K X.K K K K K K K K ' K ' K ' K K K K K K K K K X.K K &.K K ' &.0 K I o $ $ o F &.' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' K ' K &.c O 8 y y.e q.q. i l 3 # } 3 ; N u y.6.y.y.g 6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.y.6.y.b m o & o i l t.t.; i q.Z u y.y.g 6.6.G 6.6.6.6.y.y.y.y.y.y.y.y.y.6.y.y.6.6.6.6.6.6.y.e $ i l -.o =.w y.y.6.6.9.6.6.6.6.6.6.6.6.6.6.6.6.4.6.6.6.6.6.6.y.y.Q e 1.& o $ i l ; u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.d t.t.d u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.d u.u.u.u.u.u.u.u.t.u.t.3 z i = .f 5 5 5 U 5 5 5 5 F F F F F F F L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L o o 1.$ 1.L L L L L L L L L L L L L L L L L L F F F F 5 5 5 - y.2.& =.j 2 2 t.t./ t. 4 Q Q Q %.Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q H H H H H . .@ * W 1.& o $ i l z t.# t.z i q.o t e @ ,.H Q 5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.g Q G 5.E 9.4.P i l l o 1.C #.%.y.6.y.6.6.y.y.y.y.y.y.y.y.y.y.6.6.6.6.6.Q #.e = & q.$ i l t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.d t.t.d u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.d u.u.u.u.u.t.u.u./ z i ! B e 6 D | 7 | 7 7 ; 6 6 6 $ $ $ $ $ $ $ $ q.$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ o $ $ $ $ $ $ $ $ $ $ $ $ $ $ 6 6 D 6 j .H , q.W ] * _ q l } # l q 2 Z = = = = = = = = = = = = = = = = = = = = = = = = = = 1.o q.& q.o $ i l t.t.# # # } l i -.$ q.o o , = = = = = = = = = = = = = = = = = = = = = = = Z Z q $ i z l i $ q.1.= =.Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z = 1.& q.o $ i z z t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.d d t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u./ ; i ! s @ J / | | | 7 V 7 ; # ; ; ; 6 l i i i i i i i i i -.i i i i i i i i i i i i i i i i i i i i i i i i i i i l i i i i i i i i l l l ; ; ; 7 3 3 7 ; j w y.e & q.2 =.4 > } ; / z z 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.o o $ i l z z t.# # # # # t.z 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.$ i z z l i $ $ q.q.q.q.q.q.q.& q.q.& q.q.& q.q.q.q.& q.q.q.q.o $ i l t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.z 3 l q @ y.v j J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J w.: ` y.- o q.$ i i i l t.} z l i $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -. i i l t.t.t.u.u.u.u.u.u.t.t.z l i $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ i i l z t.t.z l i $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ -.i i z z t.t.d u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.# ; l $ =.p y.B w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ` y.y.P 1.& $ i i i i l l t.t.t.z l l i i i i i i i i i i i i i i i i i i i i i i i i i i i i i z l } } t.u.t.u.u.u.u.t.t.u.u.# t.z z l l i i i i i i i i i i i i i i i i i i i i i i i i i l z z t.# u.t.z z l i i i i i i i i i i i i i i i i i i i i i i i l z z z t.u.u.d u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.d d # # z i $ = * e.E Q H E E E E E E E E E E E ) E ) E E E H E H E E E E E E E E E E E E E E E E E E 5.5.5.E E E E E E E E E E E E E E E E E E E E E E E H E E E Q b v t & & $ $ l l z l z z t.# # # t.t.z z z z ; ; ; z ; z ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; t.# t.t.t.# # # u.t.u.u.u.u.t.t.u.u.u.# # u.t.t.z z ; ; z z z z z z z z l ; z z z z z z z ; l ; t.t.} # # # u.# # t.t.; ; ; z z z z z z z ; z z z z ; ; ; ; ; t.; ; t.t.t.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # t.l i $ o q 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.o & o $ i l z z } t.t.t.# # u.u.u.d u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.# # # # # # # # u.u.u.u.u.u.u.u.u.# # # u.u.t.t.t.} u.u.t.t.t.t.t.t.t.} t.t.t.t.# # # # u.u.u.u.# # # # t.# # # u.u.u.t.# # # # u.u.u.} u.} u.} t.u.u.u.u.u.t.u.d u.# # # # # # u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# u.V ; l -. $ o 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.o $ $ i l ; t.u.u.t.t.t.u.u.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.", "t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # # t.t.l i $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ i l z t.t.u.d d u.t.t.u.u.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # # # } z z z l i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i l l z t.t.d d u.u.u.u.u.t.u.u.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # # # # # t.t.} } t.; ; ; ; ; t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.z t.z t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.} t.z t.t.; # # t.t.u.t.u.t.t.u.u.t.u.u.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.u.u.u.u.t.t.t.t.t.t.u.t.u.u.u.u.t.t.t.t.u.u.u.u.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.u.u.u.u.u.u.u.u.u.# # # u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.d t.t.d u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.t.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.t.u.u.u.u.u.d t.t.d u.u.u.u.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.u.t.u.u.t.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.t.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.d t.t.d u.u.u.u.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.t.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.t.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.d u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.u.u.u.u.t.t.u.u.t.t.t.t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.d t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.", "d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.", "t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.d u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.d u.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.", "t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.d u.t.t.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.t.t.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.", "d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.t.t.# # u.d u.u.} } # u.u.u.u.# u.u.u.u.u.u.u.u.} u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.t.t.# u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.d V u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.t.u.u.V d u.u.t.t.u.# u.3 # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# d u.# u.u.d V d u.u.u.u.u.# u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# u.u.d u.# # } V # u.u.u.u.u.u.u.t.t.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.# u.t.u.u.u.d # # u.t.u.u.# t.u.# u.} u.u.u.t.u.u.u.d # # u.t.# # u.d t.u.t.u.t.u.u.u.u.u.u.u.u.d t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.V # } } t.; 6 6 6 -.7 7 z d 7 i 6 6 6 6 V t.} # l 6 6 6 6 ; u.V # u.V t.# # 3 ; 6 6 -.6 6 V u.# u.u.u.u.d t.t.u.} u.V V } } } t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.# u.u.} } # # ; l 6 6 6 6 ; # # u.u.u.u.u.u.u.u.} # V V } } t.u.V u.} u.V -.l 3 # V 6 6 i 7 6 i u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.# # / / 3 3 V / 7 -.z 3 V } } V u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.# 3 -.6 6 -.6 6 6 ; # # u.V u.t.u.u.t.u.u.d d u.V t.# # # t.t.V u.u.u.u.u.u.u.u.V 3 # } } 3 3 ; 6 l / V ..6 6 -.-.6 3 } } 3 3 -.-.6 i i V 7 -.6 6 6 6 -.-.; V i l ; # # # V d # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.z 3 V / ; 2 k : _ : > z ..; $.4 : _ : 4 N 3 V z j ] : : k w.z u.# u.} V 3 # l w.k _ : : j # 3 V u.u.u.u.t.d d u.V u.# # # 3 ; 6 t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# } } V 3 # l N 4 : o.: 4 N t.V u.u.u.u.u.u.u.u.d u.} # # 3 ; ; V z 3 7 } m 2.3 7 / 4 o.k 3 ] 2.} t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.# V ; ; V V # ; j : 2 3 V d # } u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u./ $.@.o.: : _ : C 2 ; 3 } z } 3 u.u.t.u.d t.t.d z 3 3 l ; 3 3 # u.u.u.u.u.u.u.u./ # # } V 3 ; ! k 4 z / } 4 ] o.: k ! 3 V z j ] : _ ] w.7 N : o.: : : o.: w./ k 4 N z 3 V } } } u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.3 V i 4 ` y.E s g B > 6 2 9 y.:.H 4.6.o.i z * y.g E 6.6.p j i # } } V 3 i 4 ` 4.) 9.g 0.> i V u.u.u.u.t.d d u.V u.} # 3 ; 2 > $.t.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# } } V 3 l 2 9 y.E s g 6.: i 3 d u.u.u.u.u.u.u.V u.} # 3 ; 2 > $.z # 7 $.9 C i k 4.u W z 9 m z } u.# u.u.} u.u.u.u.u.u.u.u.# ; 2 > $.V z 6 k w = i / 3 3 V u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.# ; j B Q 6.y.4.s p =.i 3 } } # 3 u.u.u.u.d t.t.u.z 3 u.> 2 V 7 # t.u.u.u.u.u.u.u.} # # V V ; 2 9 y.+ -...P g G .E y.P l l : 0.y.E Q g p ! =.B 9.6.y.6.s ,.2 q .y.@.i d V u.# 3 u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.} / 3 N 9 [ = o & m y.t $ v 0.t o & Z y.P q.> y.P 1.q.o C y.W $ 3 } } u.; N w #.= q.& C y.> q.6 3 u.; 6 ; u.; 6 6 6 l 3 7 -.e p i -.; u.# ; 6 6 6 ; d t.l ; 6 6 6 ; ; 6 6 ; u.V V } } V 3 z u H t o & Z y.P o ; ; 6 6 6 ; d u.6 ; 6 -.; | e p i -.; d ; q.$ u v & & $ o $ l ; 6 6 6 ; } d t.l 6 6 -.; # # 6 e p 6 6 q | 6 $ q. 3 i 6 -.6 t.d u.; 6 ; 6 6 l 3 d t.u.u.u.z | q o e g , & o & l 6 6 6 l # u.V 6 6 6 6 l } 6 2 B + $ 6 d # l 6 6 6 ; u.u.V # # u.V i e 4.=.& q.k y.m o & 1.4.O.o > 5.P 1.q.o f y.2 i q o e g , & o & > 4.e $ / V } } # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.} ; j y.e 3.3.& 1.t o q 4.e 3.& & 1.e Z & * 4., 3.& & W y.Z q./ ..V } ; j Q e 3.3.& 1.t o =.] $.z J : j i w.: _ _ 4 ..# 2.[ p o.: w./ z j _ e ] 2 3 z 4 j 4 _ k J j o.] 2 z / / # 3 / l j y.e 3.& q.1.e Z & -.j : _ ] 2 3 ..4 > k _ w.l 2.w b o._ w.i j m i : s O.+ $ =.@.i $ ; j : o.] w.; 3 / j : _ ] 2 3 z 4 w b o.o.w.# : =.$ i J k e _ 4 N / l w.k j : _ > V V } # # u.u.; -.o - #.& & q.$ j _ _ ] 2 ; / } 4 _ o.] w.i w.* 4.P o.k / V 4 o.e ] w.; } u.# # z 3 d 9 - & & $ * E 1.3.& q.=.= & e y.1.3.& & t C o $ o - [ & & q.$ -.=.y.W & z u.} u.V u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.d d u.t.u.u.u.u.u.u.u.u.t.d d u.3 z ; j 8.#.m m k > o & > y.t 3. z ; o & o O.e.& q.q i * y.1.q.} ..3 / ; j y.#.m m k j $ 3.e s N 6 e Q ! 2 w O.e - y.> i @.g f + m N k p P e #.9 ; J B p e - 6.O.* P g P l 3 d } # } -.4 y.t 3. / ; o & q.k ` P e #.9 l j 8.9 * 9.P i ] Q P + m N P B z N P 0.e + * B q -.2.B v * s w N -.k B v * [ w z ; @.6.f + @.q 2 y.@.$ $.9 e.* u y.C 6 i o.y.v * #.Q 2 l ..7 u.} V # l ! G * & o z i k ` P e #.9 / l e ` P * 9.u i 2 9 Q + m > e %.* * G u l z d t.# } ; 2 G m 3. z P y.P + @.4 = & o 9 #.& q.z } i & & l J 0.* & $ q / -.k y.= & l # # # V u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d u./ # 3 z m - e.Q 4.y.C $ e y., & / 3 6 -.$ ! ) * & 7 N w @ & o # z 3 3 3 z m - b Q g y.C $ k Q 1.q p C 3.m y.=.q.1.t 1.$ j y., 3.& q.q p * o q.C 4.o > 6.W & q 5.e q.o #.* $ i # } V # i e 6., q.l V 6 -. q b * o q.C 4.o 2.y.Z & v e q.=.g = 3.& q.q w * & $ 2.g o 3.o 9 * & q w * q.& W * $ -.j W 1.& m Q j g = 3.& q.2.B = & m y.= & o H e $ / u 9 1.3.W y.! } V u...3 # i 4 y.+ & i V N b * o q.C 8.$ N G P o o Z Z $ i P - 3.3.& q y.P o o =.Z $ l V } u.# 6 4 y.t & l l 2 * @ G g y.p ! N E e & ..7 6 l l 4 y.+ 3.i } 7 l * g o q.# # # # V u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.u./ # 3 $. q.& & Z 4.* $ v b o o z } 4 2.l > y.+ 3. 7 2 y.e & V z d # # $. q.& & Z y.P q.4 Q 1.W 9.1.& > e.#.#.@ m q.$ m G 1.3.$ -.j G #.O.@ @ P & + B 1.3.=.y.Z 3.q E + & i # } V # N u b o q./ z 4 4 t.j 4.#.O.9 #.P & C ,.q.q.1.q.& m B 1.3.$ ! ) + & P w & & ! G + 3.=.G t 3.$ q.& q.q _ 9 #.v O.v & $ @.G 1.3.$ $ C .o q.P 9 & & N 8.W & N B m 3.q.e [ & $ z V / # 3 z ] y.Z & i l > B #.9 9 @ P & q v e.#.[ v = q.q B C 3.q. z v [ @ e.f , q.l 3 z # 3 6 C y.1.q.l $...o & & o * y.= =.y.+ 3.i l 2 k j z 7 i m y.Z & l N 3 } 9 O.& $ t.3 # } d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.z J ` P q.q.& Z y.W & e.O.& q.6 ! B 9 k y.t 3.-.i @.y.t & i d } 3 / ! p P $ q.& Z y.W & j Q Z u * 3.$ w.1.1.1.* y.q P @ & > 4 -.] 9., & o 2 1.& * 9 & q.m g o & > Q Z & ; / u.# ; N p O.& q.-.2 %.9 k 4., & o = 1.& u f & $ -.$ $ P 9 & > 4 l 4 Q Z & z w e & $ 4 G Z 3.2.g 1.& N m =.q.2.7.> 1.Z y.m & P @ & > 4 z 9 f & p e 3.q.4 y., & j 0.t 3.i 9 P & $ # V d u.3 } z P Q o q.; 6 @.Q , & o = 1.& N 2 1.1.Z y.C q.j E t o @.2 J 2 1.1.Z y.C $ / # } 3 ; / v e.& o -.C ` 2 q.& q.v ` & W y.t 3.-.6 e y.4 -./ ; P .1.q.z z 7 2 G C & # # # } # u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.d u.u.u.u.u.u.u.3 i w.y. .: m : p H 1.& e.y.e m o.9 y.t & 4 y.O.m o.* ) O.o q.i } V 3 l w.4.:.C @.: p .1.& ! ` f .= 3.! 6.e 1., O.u & 1.9 v , s o.$ @.y.Z 1.W 9.Z o p e & $ v @ & q.C y.o q.; } # 3 3 $.w g e m _ 9 0.t & @.y.Z 1.W 4.Y 1.5.+ & / ; z w v , s C $ m y.o q.2 7.+ & $ C 7.o q.] y.t q e y.j $ * 4.= 1.W y.t & i #.v = :.C z B m 3.1.B v , =.w O.& q.k y., q.! y.+ & # 3 # } 3 7 N p O.& $ # -.C y.Z 1.W y.Y q.e Q Z 1.W y.Z & 4 y.t m %.q e .Z 1.W y.Z q.l # } V ; $.p P & l * y.v @.m P y.m 3.W y.O.m @.* y.9 o $ / N e.@ & $ z # 6 4 y.t 3.i V # } # d u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.d u.u.u.d 3 # q @.@ .E ` v Z 3.o > u .Q ` u W & q.N e @ :.s w e 1.3.$ / } V 3 z # @.9 .s ` v Z 3.$ } 9 y.* & o ..* [ w w P 1.& -._ [ #.* o q.2 v e.w #.C o N b W 3.z #.e & $ P - & $ z z 3 V u.l > - .E p u W & q.! v #.#.w C q.2 ` Z & l u.} z : [ #.* o q.* - & $ > b = & i * - & $ 2 v e.[ 9 W & $ > 9 #.- * u 1.& z o.#.w * o = b Z & i @.@ e.w v , & $ e @ & q.> e.Z & q 3 3 t.} z / w.b C & # 7 2 v w #.e.C o $ > 9 #.w u W & q.=.u w - t & > 9 w #.O.W & o z # } # l w.y.+ 3.i ; 2 v b 5.B #.C & & q e [ Q s [ e , 3. ; w.b C & -.} 3 -.o.y.1.q.z V u.} } V u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.z u.# q.& o & & 3.q.i o & o & & 3.& $ z $ & o & & & 3.o i # V V ..z 3 o & o & & 3.o -.2.y., 3.-./ o o o q.& o z i o o & & l $ o o o & & q & q./ N o & i N o & d } V } } 3 i o & & o & 3.& q $ o o o & q.i 1.& o ; t.} V i o o & & N o & -.N q & o z N o & l $ o o o & q. z o o o q.o & $ 3 i o o & & q & o ; o o o q.& o i N o & -.N q & $ z } V d t.d / ..q & & q t.} ; $ o o o & & ; $ o o o & & l o & & q. $ o o o & & # 3 } V i j y.#.Z d ; $ & & o & & & $ i o o & & & & 3.o l z ..q & & } d C 4.P & o } 3 # } } V u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.", "t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.d u.u.z o q.o o $ i # # o q.o o $ z } / $ q.o q.o i # 3 # # # u.u.z $ o q.o o $ -.N j w f & q.z } i $ q.q.o $ i z l $ q.o $ z } i $ q.o o q $ } $ z l $ $ z # # u.t.t.V z o o q.q.$ z } l o o q.o q $ -.} u.3 # z q.q. q l $ $ z z $ i z i $ q # i o o q.$ z } $ q.$ o $ i # z $ q.o q -.$ z z q.q.o $ i } l $ i z $ } # u.d d V u.} $ z } # # i o q.q.$ z } o q.q.$ z } $ q.$ i q o q.q.$ z u.# } d ; N e w t $ } / i $ o q.q.o $ z ..l $ o o q.o $ l } } } i o / ; j p P o & } # # # # # u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.", "t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d # # # z z ; t.u.V V 3 ; z z z ; # # # # u.t.z z z z # 3 3 t.# # # # d } z ; z z z i > p f 1.3. V 3 d t.t.z / ; V d # t.t.V t.V V d t.t.z ; # # # ; V V V } z 3 3 V / u.3 } u.t.# # # } z z z z } # # # # V ; ; V t.u.t./ # # d d t.} z z t.t.3 # t./ t.3 V ; 3 d # ; V V V d 3 ; ; z V V V V l ; z # u.# d V t.t.; t.V t.; # # # 3 # z z 3 # # # t./ t.3 } / u.# u.u.u.u.V # u.} z z } t.d # # # z z l } 3 # # # z ; t.d 3 # # z z # ; 3 u.t.; ; # # 3 3 # u.# 3 z $ o & $ } # t.z z z z # # d V V t.; z z z t.u.# # # # ; / / 3 ..q & & o z } # # } } d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.", "u.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.} } u.t.t.d V V # # # } } # # # d d d V V t.d u.d d d d u.t.t.u.} } u.u.# # # # u.} V V 3 ..q q.& o z u.t.} u.d # # t.d t.# # # # u.} } } u.# # # # # # u.u.} } } t.d d d d d u.u.u.t.t.# # # # V d d t.u.t.t.t.d d u.d u.t.t.d 3 3 d t.t.u.# 3 u.u.# # } } } # # # u.t.t.u.u.# } t.# # # # # } t.u.# # # # # } } } u.# # # u.d u.t.u.d d d 3 # t.u.3 u.t.} d # 3 3 # u.u.u.u.u.# # # u.# u.# # # # # # d d 3 3 } } } d u.u.# # d u.u.u.V V V V # # # # u.# # # u.# # d u.l $ o i z V u.u.} V 3 # # # } } # # 3 V V d 3 3 # d # 3 } } # # i $ $ i } V V t.} t.V u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.t.u.u.u.u.u.", "u.u.u.t.u.u.t.t.u.t.t.u.u.u.u.u.u.u.u.t.u.u.u.u.# u.# # u.t.d V V u.# # # # u.u.u.u.# # # u.# # t.} u.# # # u.t.u.u.u.u.# # # # # # V V # z $ $ l # # # } u.# V V # # # # # # u.t.# # # t.t.} u.u.t.t.# # # # # # } u.# # # } u.u.t.t.u.u.t.V V t.u.u.# t.t.# } u.u.u.u.t.u.d } # # # # # t.t.} t.# # u.} # # # # # t.} u.# # # u.t.V V u.# # 3 3 # u.d u.u.# # # # u.V d u.# # # # # t.t.V V t.u.3 # u.t.u.# # # # t.u.u.# # # # # # d # # # } u.d u.u.u.# # u.V u.# V # # # t.u.# # # # # # u.u.t.# u.# # # } # u.} t.3 3 / d V 3 # u.} u.3 t.u.# # # # V V V d d t.t.u.# d } # # # t.t.z } # # V V } } u.3 u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.d t./ t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.# u.u.# u.u.u.u.u.u.u.u.u.u.u.u.u.3 # d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.u.u.d u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.d u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.t.t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.t.t.d u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.t.t.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.t.u.", "u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.d t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.d t.t.d u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.d d u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.d u.u.u.u.t.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.d u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d t.t.d u.u.u.u.t.d d t.u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.d d u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.d d t.t.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.d u.u.u.u.u.u.u.u.t.t.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.d u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.d t.t.d u.u.u.u.t.d d t.u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.t.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.d t.t.d u.u.u.t.u.u.u.u.u.u.u.u.", "u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.u.t.t.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.d t.t.u.u.t.u.u.u.u.u.u.", "u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.t.t.d u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.d t.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.t.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.t.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.d u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.t.t.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d d u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.d t.t.d u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.d t.t.t.t.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.t.t.u.u.u.u.t.t.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.d u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.t.t.t.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.t.t.t.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.t.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.d u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.t.t.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.t.t.u.u.t.t.t.t.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.t.t.t.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.t.t.t.d u.u.t.u.u.t.t.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.d d t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.d t.t.d u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.", "u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.t.u.t.t.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.t.u.u.u.u.u.u.u.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.t.t.t.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.t.u.u.t.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.t.u.u.u.t.u.u.u.u.u.u.u.u.u.", "6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ", ": : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : ", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.Q Q Q Q 5.5.5.5.5.5.5.5.Q Q Q Q 5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.E E E E Q Q Q Q 5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.", "4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.4.5.y.y.y.y.4.y.y.y.4.5.4.5.5.y.y.y.y.y.y.y.y.4.4.y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.4.4.5.4.4.4.y.y.4.5.5.4.5.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.4.5.H H H H H H H 5.y.y.5.5.y.y.y.y.y.y.y.y.y.4.5.H 5.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.y.y.4.4.4.H H H H 5.y.y.5.5.5.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.5.y.H f f f f f f f f - b y.4.y.y.y.y.y.y.y.y.y.4.H f @ y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.4.y.e.- f f f f f O.b 4.5.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.y.H f - #.#.#.#.#.@ f f H y.4.y.y.y.y.y.y.y.y.4.H f @ y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.4.5.y.,.f f @ #.#.#.@ f f H y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.y.y.y.y.y.b f #.y.4.4.4.4.5.4.5.4.4.y.H f @ y.4.4.4.4.4.4.y.5.5.4.5.5.4.4.4.y.4.4.4.4.5.4.4.5.4.5.4.4.4.5.4.4.5.4.4.4.4.4.5.4.y.5.5.y.y.y.y.y.y.y.#.f ,.y.y.y.y.y.e.f e.y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.4.4.4.y.y.H f @ y.5.5.y.y.y.y.y.y.5.y.H f @ y.4.5.y.y.y.y.y.y.y.5.5.4.4.y.y.y.y.y.y.4.4.4.4.y.y.y.y.y.y.y.4.4.4.4.4.y.y.y.y.y.4.5.4.y.y.y.y.y.4.y.@ f H y.4.4.4.y.H f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.4.4.4.y.y.H f @ y.4.5.e.@ @ @ #.,.4.y.H f @ y.y.y.5.e.@ @ @ @ ,.4.y.4.4.e.@ @ O.@ b y.y.4.y.,.#.@ @ @ #.H 4.4.5.y.,.#.@ O.@ e.5.4.4.y.y.y.y.4.4.y.@ f H y.y.4.4.4.H f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.y.y.4.4.y.b f #.y.4.O.f - O.- - f e.y.H f @ y.y.4.O.f - - O.- f e.y.y.@ f - O.O.- f #.y.y.,.f f - - - f f b 4.y.e.f - - - O.f - 5.5.y.y.y.y.4.4.y.@ f H y.y.4.4.y.H f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ 4.5.5.5.5.H O.f ,.y.b f #.y.y.y.5.- - y.5.f @ y.y.b f #.y.y.y.5.- - y.5.f O.y.y.y.4.- f 5.y.@ f ,.y.4.y.,.f @ y.y.- - 5.y.y.y.#.f e.y.y.y.y.y.5.4.y.e.f @ 5.5.5.5.5.O.f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f f f - f f f f - e.5.y.@ f H y.y.y.y.O.f 4.5.f @ y.y.@ f 5.y.y.y.y.@ f 5.5.e.H y.y.y.y.@ f H y.@ f H y.y.y.y.H H y.H f @ y.y.y.y.H f @ y.y.y.y.y.4.y.y.5.O.f f f f - f - f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f - @ O.@ @ @ - f #.4.y.@ f - - O.- O.f f 5.5.f @ y.y.@ f - O.O.- O.f f H y.5.#.- - O.#.O.f H y.e.f - @ @ @ #.H y.4.H f - O.- - - - f O.y.y.y.y.y.y.4.4.y.5.e.@ @ @ O.e.,.f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.y.y.y.y.4.- f 5.y.@ f O.@ O.@ O.@ @ 5.H f @ y.y.@ f O.@ O.@ O.@ @ 5.4.O.f O.@ O.O.f f H y.4.#.- - f - f - ,.y.H f - O.@ @ @ @ O.e.y.y.y.y.y.y.4.4.y.y.y.y.y.y.y.y.H f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.4.4.4.4.y.@ f H y.@ f y.y.y.y.y.y.5.y.H f @ y.y.@ f 5.y.y.y.y.y.5.y.5.f @ y.y.y.y.O.f H 4.5.5.4.5.5.5.b f @ y.5.f @ y.y.y.y.y.5.4.4.y.y.y.y.5.4.H O.e.y.5.5.4.4.4.H f @ y.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.4.4.4.4.y.@ f 5.y.#.f ,.y.4.4.y.@ f 5.5.f @ y.y.#.f H y.y.y.y.@ f H 5.f @ y.4.y.y.@ f H y.@ f H y.y.y.5.f @ y.5.f O.y.y.y.y.5.f @ y.y.y.y.y.4.4.5.f O.y.y.y.y.y.y.e.f #.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.4.4.4.4.y.@ f 5.y.H f - e.b b e.f - 4.5.f @ y.4.,.f - b b b e.f - 4.5.- f e.b b #.f f H y.@ f @ e.e.e.O.f #.y.4.@ f #.b b b @ f e.y.y.y.y.y.4.5.y.O.f O.@ #.#.#.@ f f H 4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.H f @ y.4.4.4.4.y.@ f H y.y.b - f f f f O.,.y.H f @ y.4.4.e.- - f f - O.,.5.y.,.- f f f O.O.- 5.4.5.@ f f f f f @ 5.4.5.5.@ - f f f - @ 4.4.y.y.y.y.4.4.y.H O.- f f f f f O.b y.4.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.5.5.y.y.y.y.y.y.5.5.y.y.y.y.y.5.E 5.5.y.y.y.y.5.5.y.y.y.y.y.E E H E y.y.y.y.y.y.4.5.5.y.y.5.y.y.y.y.y.5.H 5.y.y.y.y.y.y.y.4.5.5.5.y.y.y.y.y.y.y.y.y.y.y.y.y.5.5.5.5.5.4.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.8.8.8.8.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.y.", "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.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.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.5.5.5.5.5.5.5.5.0.0.0.0.0.0.0.0.5.5.5.5.5.5.5.5.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.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.0.0.0.0.0.0.5.5.5.5.5.5.5.5.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.5.5.5.5.5.5.5.5.0.0.0.0.0.0.0.0.5.5.5.5.5.5.5.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.5.5.5.5.5.5.5.0.0.0.0.0.0.0.0.5.5.5.5.5.5.5.5.0.0.0.0.0.0.0.0.", "4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.", "X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", "8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.", "r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r." }; 0707070000000000441006440000000000030000010000001025235521200002200000124246root/home/sct/sct#!/bin/osavtcl # # miscellaneous utilities shared by a few programs. # # globals set version 9.0.0g set RESPATH "[pwd]/res" set BINPATH "[pwd]/tests" set LICENSE "$RESPATH/license" set EULA "$RESPATH/eula" set PID [pid] set sct_config_file "$RESPATH/sct.config" # path to user created machine data file. set chwp_db_data_file "$RESPATH/chwp.data" # path where test run logs are kept set sctrun_logdir "[pwd]/logs" # path where test binaries are kept set sctrun_testdir "[pwd]/tests" # path where handoffs are created set sct_handoffdir "[pwd]/handoffs" # Test data items (cheap way to make a list work like a C structure) set TS(class) 0 set TS(type) 1 set TS(name) 2 set TS(description) 3 set TS(required) 4 set TS(media) 5 set TS(enabled) 6 set TS(mode) 7 set TS(running) 8 set TS(iteration) 9 set TS(errors) 10 set TS(pid) 11 set TS(elapsed) 12 set TS(normalstop) 13 # Configuration data items set CS(runtime) 0 set CS(netmachine) 1 set CS(ftpuser) 2 set CS(ftppass) 3 set CS(localgraphics) 4 set CS(certrun) 5 set CS(nofloppy) 6 set CS(nocdrom) 7 set CS(errormax) 8 set CS(cddevice) 9 set CS(usbdevice) 10 set CS(cdpattern) 11 # full list of run times set sct_run_list_full [list \ "1 min" "5 min" "15 min" "30 min" "1 hr" \ "2 hr" "4 hr" "8 hr" "16 hr" "24 hr" "36 hr" \ "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] # certification (short) list of run times. set sct_run_list_cert [list \ "36 hr" "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] set sct_run_indefinite_time 3600000 # # read in our saved values if any # returns zero if no file to read # proc \ sct_read_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file if {$file == ""} { set file $sct_config_file } if {[catch {open $file r} fd] != 0} { return 0 } # silently ignore errors while {[gets $fd line] != -1} { set list [split $line ":"] set type [lindex $list 0] case $type { config { set name [lindex $list 1] set value [lindex $list 2] if {$name == "certrun"} { set sct_config_db [lreplace $sct_config_db $CS(certrun) $CS(certrun) $value] } if {$name == "runtime"} { set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $value] } if {$name == "netmachine"} { set sct_config_db [lreplace $sct_config_db $CS(netmachine) $CS(netmachine) $value] } if {$name == "ftpuser"} { set sct_config_db [lreplace $sct_config_db $CS(ftpuser) $CS(ftpuser) $value] } if {$name == "ftppass"} { set sct_config_db [lreplace $sct_config_db $CS(ftppass) $CS(ftppass) $value] } if {$name == "localgraphics"} { set sct_config_db [lreplace $sct_config_db $CS(localgraphics) $CS(localgraphics) $value] } if {$name == "nofloppy"} { set sct_config_db [lreplace $sct_config_db $CS(nofloppy) $CS(nofloppy) $value] } if {$name == "nocdrom"} { set sct_config_db [lreplace $sct_config_db $CS(nocdrom) $CS(nocdrom) $value] } if {$name == "errormax"} { set sct_config_db [lreplace $sct_config_db $CS(errormax) $CS(errormax) $value] } if {$name == "cddevice"} { set sct_config_db [lreplace $sct_config_db $CS(cddevice) $CS(cddevice) $value] } if {$name == "cdpattern"} { set sct_config_db [lreplace $sct_config_db $CS(cdpattern) $CS(cdpattern) $value] } if {$name == "usbdevice"} { set sct_config_db [lreplace $sct_config_db $CS(usbdevice) $CS(usbdevice) $value] } } test { set name [lindex $list 1] set enabled [lindex $list 2] set mode [lindex $list 3] # find the test and update it set end [llength $mainscreen_db] loop ndx 0 $end { set entry [lindex $mainscreen_db $ndx] set tname [lindex $entry $TS(name)] if {$tname == $name} { set entry [lreplace $entry $TS(enabled) $TS(enabled) $enabled] set entry [lreplace $entry $TS(mode) $TS(mode) $mode] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } } } } } close $fd return 1 } # # write out the current configuration # proc \ sct_save_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file BINPATH if {$file == ""} { set file $sct_config_file } if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return 0 } # save config first set list $sct_config_db set certrun [lindex $list $CS(certrun)] set runtime [lindex $list $CS(runtime)] set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set ostype [sct_ostype] set osversion [sct_osversion] set nofloppy [lindex $list $CS(nofloppy)] set nocdrom [lindex $list $CS(nocdrom)] set localgraphics [sct_localgraphics] set errormax [lindex $list $CS(errormax)] set cddevice [lindex $list $CS(cddevice)] set cdpattern [lindex $list $CS(cdpattern)] set usbdevice [lindex $list $CS(usbdevice)] puts $fd "config:certrun:$certrun" puts $fd "config:runtime:$runtime" puts $fd "config:netmachine:$netmachine" puts $fd "config:ftpuser:$ftpuser" puts $fd "config:ftppass:$ftppass" puts $fd "config:binpath:$BINPATH" puts $fd "config:ostype:$ostype" puts $fd "config:osversion:$osversion" puts $fd "config:localgraphics:$localgraphics" puts $fd "config:nofloppy:$nofloppy" puts $fd "config:nocdrom:$nocdrom" puts $fd "config:errormax:$errormax" puts $fd "config:cddevice:$cddevice" puts $fd "config:cdpattern:$cdpattern" puts $fd "config:usbdevice:$usbdevice" foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] puts $fd "test:$name:$enabled:$mode" } close $fd return 1 } # load up the test list, and set all default values. proc \ sct_init_tests {} \ { global mainscreen_db sct_config_db set db "" set list [list test test cpu "CPU" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test disk "Disk" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test network "Network" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test memory "Memory" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test cdrom "CD/DVD" "Required" "CD or DVD with at least 300 Mb of data on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test floppy "Floppy" "Required" "Formatted Floppy with no bad spots" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test graphics "Graphics" "Optional" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test usbflash "USB Flash Mem" "Optional" "USB Flash Memory - with test pattern on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set mainscreen_db $db # init config data set sct_config_db "{36 hr} unknown.sco.com ftp ftp@unknown.com [sct_localgraphics] 0 0 0 100 auto auto 0" } # # get the ostype, known types are OS_OSR5, OS_OSR6, OS_UNIWARE7 # proc \ sct_ostype {} \ { global BINPATH set ostype [exec $BINPATH/ostype] return $ostype } # # get the version of the os # proc \ sct_osversion {} \ { global BINPATH set osversion [exec $BINPATH/ostype -v] return $osversion } # # given an ostype, produce a user readable form # proc \ sct_display_ostype { ostype } \ { case $ostype { OS_OSR5 { set osdisplay "Open Server 5" } OS_OSR6 { set osdisplay "Open Server 6" } OS_UNIXWARE7 { set osdisplay "UnixWare 7" } default { set osdisplay "Unknown Operating System" } } return $osdisplay } # # like split but instead of chars the entire string is the delimiter # allows multi-char delimiters. PERL had regular expressions for delimiters. # max is the maximum number of elements to split into # proc \ mysplit { string delimiter max } \ { set list "" set count 1 set len [clength $delimiter] while {$string != ""} { set ndx [string first $delimiter $string] if {$ndx < 0 || $count == $max} { lappend list $string set string "" } else { set str1 [csubstr $string 0 $ndx] lappend list $str1 set ndx [expr $ndx + $len] set string [csubstr $string $ndx 9999] } set count [expr $count + 1] } return $list } # # convert internal mode to display version # proc \ sct_mode_external { mode } \ { if {"$mode" == "Hard"} { set display_mode "Max-Stress Mode" } else { set display_mode "Certification Mode" } } # # convert external display mode to internal name # proc \ sct_mode_internal { mode } \ { if {"$mode" == "Max-Stress Mode"} { set internal_mode "Hard" } else { set internal_mode "Gentle" } } # # detect if we are in graphics mode and local # proc \ sct_localgraphics {} \ { global env # get DISPLAY from environment set list [array names env] if {[lsearch $list DISPLAY] == -1} { return 0 } set display $env(DISPLAY) set tokens [split $display ":"] set displayname [lindex $tokens 0] set hostname [exec hostname -s] if {$hostname == $displayname} { return 1 } return 0 } # # fixup our path so exec works. # we have a minimum set of path requirements. # this was provoked by /sbin and /usr/sbin being missing when # you log into X on legend., which broke hardware inquiries (hw command failed). # proc \ sct_fixpath {} \ { global env set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set minpath "/bin:/etc:/usr/bin:/tcb/bin" } if {$ostype == "OS_UNIXWARE7"} { set minpath "/sbin:/usr/sbin:/etc:/usr/bin:/usr/ccs/bin" } if {$ostype == "OS_OSR6"} { set minpath "/bin:/usr/bin:/tcb/bin:/sbin:/usr/sbin:/etc" } # make sure all required components are in the real path set envlist [split $env(PATH) ":"] set minlist [split $minpath ":"] foreach required $minlist { if {[lsearch $envlist $required] < 0} { lappend envlist $required } } set newpath [join $envlist ":"] set env(PATH) $newpath } # given a global variable name in a variable, get the value of it. proc\ ind { varname } \ { global $varname set iname "\$\{$varname\}" [eval return $iname] } # time conversion routines from my internal format "xx hr xx min xx sec" to secs proc \ sct_time_to_secs { timestr } \ { global sct_run_indefinite_time if {$timestr == "Indefinite"} { return $sct_run_indefinite_time } set list [split $timestr " "] # now we have pairs set len [llength $list] set secs 0 for {set i 0} {$i < $len} {set i [expr $i + 2]} { set str [lindex $list $i] set specndx [expr $i + 1] set specstr [lindex $list $specndx] if {$specstr == "hr"} { set secs [expr $secs + ( $str * 3600 ) ] } if {$specstr == "min"} { set secs [expr $secs + ( $str * 60 ) ] } if {$specstr == "sec"} { set secs [expr $secs + $str ] } } return $secs } # time conversion from seconds to my internal format "xx hr xx min". proc \ sct_secs_to_time { secs } \ { set remain $secs set hours [expr $remain / 3600] set remain [expr $remain % 3600] set mins [expr $remain / 60] set remain [expr $remain % 60] set secs $remain if {$hours} { set str "$hours hr $mins min $secs sec" } elseif {$mins} { set str "$mins min $secs sec" } else { set str "$secs sec" } return $str } # # sctrun.tcl # # Routines for runtime and logfile management # # sctrun_start - make a new test run, initialize the logfile area, start the run # sctrun_poll - call this routine to poll the status, updates mainscreen_db # sctrun_stop - stop the test run cleanly. # sctrun_abort - attempt to kill all test processes. # # post mortem test analysis: # sctrun_list - list all test runs by name and their attributes # sctrun_load - load data for a given test run # # these routines work both for running and post mortem # sctrun_logfile - get logfile for the current test run given a test name # sctrun_logdir - get log directory for the current test run # # internal routines not for public consumption # sctrun_statfile - get status file for a current test run and test name # sctrun_initpaths - set up our internal global pathnames # set sctrun_stopping 0 set sctrun_aborting 0 # # create a new run, create the set of files # doesn't run any tests yet # proc \ sctrun_start {} \ { global sctrun_logdir sctrun_rundir mainscreen_db global sctrun_config_file TS CS sct_config_db global sctrun_testdir sctrun_stop_file sctrun_runndx global sctrun_stopping sctrun_aborting # have to scan for a new directory name if {[file exists $sctrun_logdir] == 0} { system "mkdir -p $sctrun_logdir" } set found 0 loop ndx 1 99 { set file [format "%s/run%02d" $sctrun_logdir $ndx] if {[file exists $file]} { continue } set found 1 break } if {$found == 0} { return "Test log directory full" } set sctrun_runndx $ndx if {[file exists $file] == 0} { system "mkdir -p $file" } sctrun_init_paths $file set sctrun_stopping 0 set sctrun_aborting 0 if {[sct_save_config $sctrun_config_file] == 0} { return "" } # start the tests foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] if {$enabled != "Enabled"} { continue } set testname "$sctrun_testdir/$name" set statfile [sctrun_statfile $name] set logfile [sctrun_logfile $name] # create blank status and log files set fd [open $statfile w] puts $fd "running=Starting" puts $fd "iteration=0" puts $fd "errors=0" puts $fd "elapsed=0" close $fd set fd [open $logfile w] close $fd system "$testname $sctrun_rundir &" } return "" } # # poll the results of the current test run, updates mainscreen_db # return whether anything is running or not. # proc \ sctrun_poll {} \ { global sctrun_logdir sctrun_rundir mainscreen_db global sctrun_config_file TS CS sct_config_db global sctrun_testdir sctrun_stopping sctrun_aborting # first check are we stopping? set stopping $sctrun_stopping set aborting $sctrun_aborting set anyrunning 0 set length [llength $mainscreen_db] loop ndx 0 $length { set entry [lindex $mainscreen_db $ndx] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled != "Enabled"} { continue } # read the status file set statfile [sctrun_statfile $name] set fd [open $statfile r] set running "Starting" set iteration 0 set errors 0 set pid 0 set elapsed 0 while {[gets $fd line] != -1} { set list [mysplit $line "=" 2] set key [lindex $list 0] set val [lindex $list 1] case $key { running { # check for stopped if {$stopping && ($val != "Stopped")} { set val Stopping } if {$aborting && ($val != "Stopped")} { set val Stopped } set entry [lreplace $entry $TS(running) $TS(running) $val] if {$val != "Stopped"} { set anyrunning 1 } } iteration { set entry [lreplace $entry $TS(iteration) $TS(iteration) $val] } errors { set entry [lreplace $entry $TS(errors) $TS(errors) $val] } pid { set entry [lreplace $entry $TS(pid) $TS(pid) $val] } elapsed { set entry [lreplace $entry $TS(elapsed) $TS(elapsed) $val] } } } close $fd # now check logfile set logfile [sctrun_logfile $name] set fd [open $logfile r] seek $fd 0 end set len [tell $fd] if {$len > 500} { set len [expr $len - 500] } else { set len 0 } # read until get last line seek $fd $len start set lastline "" while {[gets $fd line] != -1} { set lastline $line } close $fd # look for Stopping normally if {[string first "Stopping test normally," $lastline] > 0} { set val 1 } else { set val 0 } set entry [lreplace $entry $TS(normalstop) $TS(normalstop) $val] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } return $anyrunning } # # stop the current test run # may be a no-op if all tests are already complete # proc \ sctrun_stop {} \ { global sctrun_stop_file TS CS sctrun_stopping # create the stop file. set fd [open $sctrun_stop_file w] close $fd set sctrun_stopping 1 } # # abort the current test run # does a stop then sends sighup to all running processes # proc \ sctrun_abort {} \ { global sctrun_stop_file TS CS sctrun_rundir mainscreen_db global sctrun_aborting # make sure we have all the pids sctrun_poll # issue stop sctrun_stop set sctrun_aborting 1 set length [llength $mainscreen_db] loop ndx 0 $length { set entry [lindex $mainscreen_db $ndx] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set running [lindex $entry $TS(running)] set pid [lindex $entry $TS(pid)] if {$enabled != "Enabled"} { continue } if {$running == "Stopped"} { continue } if {$pid} { catch {kill 1 $pid} ret } } } # setup our paths proc \ sctrun_init_paths { path } \ { global sctrun_rundir sctrun_config_file sctrun_stop_file set sctrun_rundir "$path" set sctrun_config_file "$sctrun_rundir/config" set sctrun_stop_file "$sctrun_rundir/stop" } # # given a test name, cough up the log file name in the current test run. # proc \ sctrun_logfile { name } \ { global sctrun_rundir set logfile "$sctrun_rundir/$name.log" } # # given a test name, cough up the status file name in the current test run # proc \ sctrun_statfile { name } \ { global sctrun_rundir set logfile "$sctrun_rundir/$name.status" } # # get the run directory # proc \ sctrun_logdir {} \ { global sctrun_rundir return $sctrun_rundir } # # get the current test run number # proc \ sctrun_current {} \ { global sctrun_runndx return $sctrun_runndx } # # get a list of the test runs and their attributes # proc \ sctrun_list {} \ { global sctrun_logdir sctrun_rundir sctrun_config_file sctrun_stop_file global sct_config_db mainscreen_db global sct_testrun_db TS TD CS # the master list of test runs set sct_testrun_db "" set rundirlist "" if {[file exists $sctrun_logdir]} { set rundirlist [readdir $sctrun_logdir] } foreach rundir $rundirlist { set dirpath $sctrun_logdir/$rundir if {[file isdirectory $dirpath] == 0} { continue } if {[csubstr $rundir 0 3] != "run"} { continue } sctrun_init_paths $dirpath # load the config file for this run sct_init_tests sct_read_config $sctrun_config_file sctrun_poll # make totals set run_duration [lindex $sct_config_db $CS(runtime)] set run_localgraphics [lindex $sct_config_db $CS(localgraphics)] set run_nofloppy [lindex $sct_config_db $CS(nofloppy)] set run_nocdrom [lindex $sct_config_db $CS(nocdrom)] set run_missing 0 set run_abnormal 0 set run_errors 0 set run_tests 0 foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set required [lindex $entry $TS(required)] set running [lindex $entry $TS(running)] set errors [lindex $entry $TS(errors)] set elapsed [lindex $entry $TS(elapsed)] set normalstop [lindex $entry $TS(normalstop)] if {$name == "cdrom" && $run_nocdrom} { set required "Optional" } if {$name == "floppy" && $run_nofloppy} { set required "Optional" } if {$enabled != "Enabled"} { if {$required == "Required"} { set run_missing [expr $run_missing + 1] } continue } set run_tests [expr $run_tests + 1] if {$normalstop == 0} { set run_abnormal [expr $run_abnormal + 1] } set run_errors [expr $run_errors + $errors] } # calculate eligible set run_eligible 1 if {$run_duration != "36 hr"} { set run_eligible 0 } if {$run_missing} { set run_eligible 0 } if {$run_abnormal} { set run_eligible 0 } if {$run_errors} { set run_eligible 0 } if {$run_localgraphics == 0} { set run_eligible 0 } set list [list $rundir $run_duration $run_missing \ $run_abnormal $run_errors $run_tests \ $run_localgraphics $run_eligible] lappend sct_testrun_db $list } } # # load up the data for a given test run (index into sct_testrun_db) # proc \ sctrun_load { index } \ { global sct_testrun_db mainscreen_db TS TD CS global sctrun_logdir sctrun_config_file set list [lindex $sct_testrun_db $index] set name [lindex $list $TD(name)] set dirpath $sctrun_logdir/$name sctrun_init_paths $dirpath sct_init_tests sct_read_config $sctrun_config_file sctrun_poll } #!/bin/osavtcl # globals set ME "[pwd]/sct" # nop - no-op - no operation - dummy proc proc \ sct_nop { cbs } \ { set nop b } # # put up the license screen # proc \ sct_license {} \ { global ME VtLock VtControl -suspend system "$ME -sct_stand_license" VtControl -resume VtUnLock } # # put up the license screen # proc \ sct_stand_license {} \ { global app RESPATH EULA # create the dialog box. set app [VtOpen sctchild] set sct_dialog_form [ \ VtFormDialog $app.license \ -title "SCT license" \ -cancel -cancelLabel Cancel -cancelCallback sct_stand_quit \ -ok -okLabel "Accept License" -okCallback sct_stand_license_ok \ ] set text_file [ \ VtText $sct_dialog_form.text \ -bottomSide FORM -rightSide FORM \ -columns 72 -rows 17 \ -filename $EULA \ -horizontalScrollBar 1 \ -verticalScrollBar 1 \ -readOnly \ ] VtShow $sct_dialog_form VtMainLoop } proc \ sct_stand_license_ok { cbs } \ { global LICENSE VtClose # create license marker. set fd [open $LICENSE w] close $fd exit 0 } # # put up the splash screen # proc \ sct_splash {} \ { global ME VtLock VtControl -suspend system "$ME -sct_stand_splash" VtControl -resume VtUnLock } # # put up the splash screen # proc \ sct_stand_splash {} \ { global app sct_main_form sct_dialog_form RESPATH version # create the dialog box. set app [VtOpen sctchild] set sct_dialog_form [ \ VtFormDialog $app.splash \ -title "SCT" \ -ok -okLabel Ok -okCallback sct_stand_quit \ ] VtLabel $sct_dialog_form.lab1 -labelCenter \ -label "Welcome to the System Certification Tests (SCT)\n" VtLabel $sct_dialog_form.lab2 -labelCenter \ -label "Version - $version" \ -leftSide FORM -rightSide FORM if {[VtInfo -charm] == 0} { VtLabel $sct_dialog_form.labpx -pixmap $RESPATH/splash.px \ -leftSide FORM -rightSide FORM } VtShow $sct_dialog_form VtMainLoop } # # format a device with rudimentary percent complete progress information # essentially more the output of the format program accounting # for carriage returns (delete lines overwritten by them). # proc \ sct_stand_format { program } \ { global FORMATDONE sct_format_text sctrun_testdir sct_format_file PID global sct_format_pid sct_dialog_form set app [VtOpen sctformat] set FORMATDONE 0 set sct_dialog_form [ \ VtFormDialog $app.format \ -title "Format $program" \ -ok -okLabel Cancel -okCallback sct_format_quit \ ] set sct_format_text [ \ VtText $sct_dialog_form.text \ -bottomSide FORM -rightSide FORM \ -columns 60 -rows 12 \ -verticalScrollBar 1 \ -readOnly \ -value "Preparing to format..." \ ] set sct_format_pid 0 set sct_format_file "/tmp/sct.$PID" system "$sctrun_testdir/$program > $sct_format_file &" VtAddTimeOut -callback sct_format_poll_cb -interval 2000 VtShow $sct_dialog_form VtMainLoop } proc \ sct_format_poll_cb { cbs } \ { global sct_format_file PID sct_format_text global sct_format_pid global sct_dialog_form if {[catch {open $sct_format_file r} fd] != 0} { VtAddTimeOut -callback sct_format_poll_cb -interval 5000 return } # read the file, first line is pid set percent "" set lines "" while {[gets $fd line] != -1} { if {[csubstr $line 0 4] == "pid:"} { set sct_format_pid [csubstr $line 4 99] continue } if {[string first "percent complete" $line] >= 0} { set percent $line } else { if {$percent != ""} { set lines "$lines\n$percent" set percent "" } if {$lines != ""} { set lines "$lines\n$line" } else { set lines $line } } } close $fd if {$percent != ""} { set lines "$lines\n$percent" } VtSetValues $sct_format_text -value $lines # send a hangup signal (which is ignored) to test if process is still there if {$sct_format_pid} { set ret [catch {kill 1 $sct_format_pid} out] if {$ret} { # the process has exited VtSetValues $sct_dialog_form -okLabel Ok # no more timeout needed return } } VtAddTimeOut -callback sct_format_poll_cb -interval 5000 } proc \ sct_format_quit { cbs } \ { global FORMATDONE sct_format_pid sct_format_file if {$sct_format_pid == 0} { return } catch {kill 15 $sct_format_pid} ret system "rm -f $sct_format_file" exit } # # put up an information dialog box with the given callbacks # (ok Ok) # proc \ sct_query_okcancel { msg ok cancel } \ { global app set ret [VtInformationDialog $app.okcancel \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ -cancel -cancelLabel "Cancel" -cancelCallback $cancel \ ] VtShow $ret } # # put up an error dialog box with the given callbacks # (eok Error Ok) # proc \ sct_query_eok { msg ok } \ { global app set ret [VtErrorDialog $app.eok \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ ] VtShow $ret } proc \ sct_cmd_line {} \ { } proc \ sct_menu_run_test_cb { cbs } \ { global mainscreen_db PID ME sct_config_db TS CS sct_get_mainscreen # check that at least one test enabled set count 0 set network 0 foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled == "Enabled"} { if {$name == "network"} { set network 1 } set count [expr $count + 1] } } # if nothing enabled quit if {$count == 0} { sct_query_eok "No tests enabled" sct_nop return } # check that networking is configured (if networking test is enabled) if {$network} { set list $sct_config_db set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set configured 1 if {$netmachine == "unknown.sco.com"} { sct_query_eok "Networking is not configured" sct_nop return } } sct_get_mainscreen sct_save_config "" VtLock VtControl -suspend system "./sctrun" VtControl -resume VtUnLock } proc \ sct_menu_config_tests_cb { cbs } \ { global mainscreen_db PID ME sct_save_config "" VtLock VtControl -suspend system "$ME -sct_stand_config" VtControl -resume VtUnLock sct_read_config "" } proc \ sct_menu_exit_cb { cbs } \ { sct_get_mainscreen sct_save_config "" VtClose exit 0 } # call the format program for usb flash memory devices proc \ sct_menu_format_usb_cb { cbs } \ { global ME sct_get_mainscreen sct_save_config "" # the lock/suspend stuff is really only needed for CHARM. VtLock VtControl -suspend system "$ME -sct_stand_format usbflashrw" VtControl -resume VtUnLock } # call the format program for a CD proc \ sct_menu_format_cd_cb { cbs } \ { sct_query_okcancel "Insert a blank CD (CDR or CDRW is ok)" \ sct_really_format_cd_cb sct_nop } proc \ sct_really_format_cd_cb { cbs } \ { global ME sct_get_mainscreen sct_save_config "" # the lock/suspend stuff is really only needed for CHARM. VtLock VtControl -suspend system "$ME -sct_stand_format cdrw" VtControl -resume VtUnLock } # call the format program for a DVD proc \ sct_menu_format_dvd_cb { cbs } \ { sct_query_okcancel "Insert a blank DVD (DVDR or DVDRW is ok)" \ sct_really_format_dvd_cb sct_nop } proc \ sct_really_format_dvd_cb { cbs } \ { global ME sct_get_mainscreen sct_save_config "" # the lock/suspend stuff is really only needed for CHARM. VtLock VtControl -suspend system "$ME -sct_stand_format dvdrw" VtControl -resume VtUnLock } # call the chwp proc \ sct_menu_edit_machine_cb { cbs } \ { # the lock/suspend stuff is really only needed for CHARM. VtLock VtControl -suspend system "./chwp" VtControl -resume VtUnLock } # # Call the handoff program # proc \ sct_menu_handoff_cb { cbs } \ { # the lock/suspend stuff is really only needed for CHARM. VtLock VtControl -suspend system "./handoff" VtControl -resume VtUnLock } # # Called from a seperate process to give us a truly modal dialog box. # prompt for the configuration information. # proc \ sct_stand_config {} \ { global mainscreen_db sct_config_db CS app sct_main_form sct_dialog_form global combo_runtime text_netmachine text_ftpuser text_ftppass global text_errormax text_cddevice text_usbdevice button_cdpattern global sct_stand_object sct_stand_file toggle_certrun global app # read in the data files sct_init_tests sct_read_config "" set list $sct_config_db set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set errormax [lindex $list $CS(errormax)] set cddevice [lindex $list $CS(cddevice)] set cdpattern [lindex $list $CS(cdpattern)] set usbdevice [lindex $list $CS(usbdevice)] # create the dialog box. set app [VtOpen sctchild] set sct_dialog_form [ \ VtFormDialog $app.config \ -title "Network/Misc Configuration" \ -ok -okLabel Ok -okCallback sct_stand_config_ok \ -cancel -cancelLabel "Cancel" -cancelCallback sct_stand_quit \ ] # make our label/textbox pairs fit in single rows. # numColumns means rows when horizontal is set. set rowcolc [VtRowColumn $sct_dialog_form.rowcolc \ -numColumns 7 -packing COLUMN -horizontal \ ] VtLabel $rowcolc.lab1 -label "Ftp Server Machine:" set text_netmachine [VtText $rowcolc.netmachine \ -value $netmachine \ ] VtLabel $rowcolc.lab2 -label "Ftp Server Username:" set text_ftpuser [VtText $rowcolc.ftpuser \ -value $ftpuser \ ] VtLabel $rowcolc.lab3 -label "Ftp Server Password:" set text_ftppass [VtText $rowcolc.ftppass \ -value $ftppass \ ] VtLabel $rowcolc.lab4 -label "Maximum errors per test (0 unlimited):" set text_errormax [VtText $rowcolc.errormax \ -value $errormax \ ] VtLabel $rowcolc.lab5 -label "CD Record device (auto or N,N,N):" set text_cddevice [VtText $rowcolc.cddevice \ -value $cddevice \ ] VtLabel $rowcolc.lab6 -label "CD Has Test Pattern:" set button_cdpattern [VtToggleButton $rowcolc.cdpattern \ -noCallback \ -label "Validate CD Test Pattern" \ -value $cdpattern \ ] VtLabel $rowcolc.lab7 -label "USB Memory Device (auto or /dev/...):" set text_usbdevice [VtText $rowcolc.usbdevice \ -value $usbdevice \ ] VtShow $sct_dialog_form VtMainLoop } proc \ sct_stand_config_ok { cbs } \ { global mainscreen_db sct_config_db global combo_runtime text_netmachine text_ftpuser text_ftppass global sct_stand_object sct_stand_file CS toggle_certrun global text_errormax text_cddevice text_usbdevice button_cdpattern set list $sct_config_db set netmachine [VtGetValues $text_netmachine -value] set ftpuser [VtGetValues $text_ftpuser -value] set ftppass [VtGetValues $text_ftppass -value] set errormax [VtGetValues $text_errormax -value] set cddevice [VtGetValues $text_cddevice -value] set cdpattern [VtGetValues $button_cdpattern -value] set usbdevice [VtGetValues $text_usbdevice -value] set list [lreplace $list $CS(netmachine) $CS(netmachine) $netmachine] set list [lreplace $list $CS(ftpuser) $CS(ftpuser) $ftpuser] set list [lreplace $list $CS(ftppass) $CS(ftppass) $ftppass] set list [lreplace $list $CS(cddevice) $CS(cddevice) $cddevice] set list [lreplace $list $CS(cdpattern) $CS(cdpattern) $cdpattern] set list [lreplace $list $CS(usbdevice) $CS(usbdevice) $usbdevice] if {[ctype digit $errormax]} { set list [lreplace $list $CS(errormax) $CS(errormax) $errormax] } set sct_config_db $list sct_save_config "" VtClose exit 0 } proc \ sct_stand_quit { cbs } \ { VtClose exit 0 } # # build main form, lock it, and return. # proc \ sct_uistart {} \ { global mainscreen_db sct_config_db CS TS global app version sct_main_form menuBar global RESPATH sct_run_button sct_exit_button global sct_config_button global sct_edit_button sct_handoff_button global sct_certrun_button global sct_runtime_combo sct_nofloppy_button sct_nocdrom_button # set the help book name set app [VtOpen sct -helpBook SCTDOC] VtSetAppValues $app -versionString "SCT version $version" set ostype [sct_ostype] set osdisplay [sct_display_ostype $ostype] set sct_main_form [ \ VtFormDialog $app.main \ -title "System Certification Tests (SCT) - Version $version - $osdisplay" \ ] # menu bar set menuBar [VtMenuBar $sct_main_form.menubar \ -helpMenuItemList "ON_WINDOW ON_VERSION"] set optionsMenu [VtPulldown $menuBar.optionsMenu -label "Options" \ -mnemonic O] set sct_run_button [VtPushButton $optionsMenu.run -label "Run Test" \ -callback sct_menu_run_test_cb -mnemonic R] VtSeparator $optionsMenu.sep1 set sct_formatusb_button [VtPushButton $optionsMenu.formatusb \ -label "Format USB Flash Memory Device" \ -callback sct_menu_format_usb_cb -mnemonic U] set sct_formatcd_button [VtPushButton $optionsMenu.formatcd \ -label "Burn a CD with a test pattern" \ -callback sct_menu_format_cd_cb -mnemonic C] set sct_formatdvd_button [VtPushButton $optionsMenu.formatdvd \ -label "Burn a DVD with a test pattern" \ -callback sct_menu_format_dvd_cb -mnemonic D] VtSeparator $optionsMenu.sep2 set sct_exit_button [VtPushButton $optionsMenu.exit -label "Exit" \ -callback sct_menu_exit_cb -mnemonic E] set editMenu [VtPulldown $menuBar.editMenu -label "Edit" \ -mnemonic E] set sct_edit_button [VtPushButton $editMenu.run -label \ "Edit Machine Configuration" \ -callback sct_menu_edit_machine_cb -mnemonic M ] set sct_config_button [VtPushButton $editMenu.config \ -label "Network/Misc Configuration" -mnemonic C \ -callback sct_menu_config_tests_cb ] set handoffMenu [VtPulldown $menuBar.handoffMenu -label "Handoff/View" \ -mnemonic H] set sct_handoff_button [VtPushButton $handoffMenu.handoff -label \ "Handoff/View Test Runs" \ -callback sct_menu_handoff_cb -mnemonic C ] # master certification run checkbox. set certrun [lindex $sct_config_db $CS(certrun)] set sct_certrun_button [VtToggleButton $sct_main_form.certrun \ -noCallback -value $certrun \ -label "Set for Certification Test Run (restrict to certification configurations)" \ -callback sct_certrun_callback ] # put up the runtime and the hardware exception boxes. # numColumns means rows when horizontal is set. set rowcolc [VtRowColumn $sct_main_form.rowcolc \ -numColumns 2 -packing COLUMN -horizontal \ -spacing 2 \ ] VtLabel $rowcolc.lab1 -label "Test Duration:" set sct_runtime_combo [VtComboBox $rowcolc.runtime \ -readOnly \ ] set sct_nocdrom_button [VtToggleButton $rowcolc.nocdrom \ -label "No CD/DVD Drive" \ -callback sct_nocdorfloppy_callback \ ] set sct_nofloppy_button [VtToggleButton $rowcolc.nofloppy \ -label "No Floppy Drive" \ -callback sct_nocdorfloppy_callback \ ] # put up the tests in rowcol form # numColumns means rows when horizontal is set. set len [llength $mainscreen_db] set len [expr $len + 1] set rowcolt [VtRowColumn $sct_main_form.rowcolt \ -numColumns $len \ -horizontal \ -borderWidth 1 \ -rightSide FORM \ ] # add column headers VtLabel $rowcolt.lab1 -label "Test Name" VtLabel $rowcolt.lab2 -label "Test State" VtLabel $rowcolt.lab3 -label "Test Mode" VtLabel $rowcolt.lab4 -label "" foreach list $mainscreen_db { set name [lindex $list $TS(name)] global $name.name set $name.name [VtLabel $rowcolt.$name] global $name.enabled set $name.enabled [VtToggleButton $rowcolt.${name}enabled \ -label "Enabled" \ ] global $name.certmode set $name.certmode [VtToggleButton $rowcolt.${name}certmode \ -callback "sct_certmode_callback $name" \ -label "Certification" ] global $name.stressmode set $name.stressmode [VtToggleButton $rowcolt.${name}stressmode \ -callback "sct_stressmode_callback $name" \ -label "Max Stress" ] } if {[VtInfo -charm] == 0} { set label "Tests required for certification are highlighted" } else { set label "* - test is required for certification" } set sct_key [VtLabel $sct_main_form.key -label $label] VtShow $sct_main_form } # the certmode callback, make it work like a radio button in a rowcol widget proc \ sct_certmode_callback { name cbs } \ { global $name.certmode $name.stressmode set value [keylget cbs value] if {$value == 0} { set opposite 1 } else { set opposite 0 } VtSetValues [ind $name.stressmode] -value $opposite } # the stressmode callback, make it work like a radio button in a rowcol widget proc \ sct_stressmode_callback { name cbs } \ { global $name.certmode $name.stressmode set value [keylget cbs value] if {$value == 0} { set opposite 1 } else { set opposite 0 } VtSetValues [ind $name.certmode] -value $opposite } # # the callback if the certrun button is changed. # this is the big one, it changes nearly everything. # proc \ sct_certrun_callback { cbs } \ { sct_get_mainscreen sct_redraw_mainscreen } # # callback if the nocd or nofloppy button is pressed in certrun mode. # proc \ sct_nocdorfloppy_callback { cbs } \ { sct_get_mainscreen sct_redraw_mainscreen } # # this sets all the sensitive stuff and resets all defaults # if the cert test run box is checked. # all the field precedence logic goes here. # it also exports all the values to the screen widgets. # proc \ sct_redraw_mainscreen {} \ { global mainscreen_db sct_config_db CS TS global sct_certrun_button sct_runtime_combo global sct_nofloppy_button sct_nocdrom_button global sct_run_list_cert sct_run_list_full set list $sct_config_db set certrun [lindex $list $CS(certrun)] set runtime [lindex $list $CS(runtime)] set nofloppy [lindex $list $CS(nofloppy)] set nocdrom [lindex $list $CS(nocdrom)] if {$certrun} { # set the runtime VtSetValues $sct_runtime_combo -itemList $sct_run_list_cert if {[lsearch $sct_run_list_cert $runtime] == -1} { set runtime "36 hr" set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $runtime] } } else { VtSetValues $sct_runtime_combo -itemList $sct_run_list_full } # export the values so far VtSetValues $sct_certrun_button -value $certrun VtSetValues $sct_runtime_combo -value $runtime VtSetValues $sct_nofloppy_button -value $nofloppy VtSetValues $sct_nocdrom_button -value $nocdrom # iterate through each test and update their widgets accordingly set len [llength $mainscreen_db] for {set i 0} {$i < $len} { set i [expr $i + 1]} { set list [lindex $mainscreen_db $i] set name [lindex $list $TS(name)] set required [lindex $list $TS(required)] set enabled [lindex $list $TS(enabled)] set mode [lindex $list $TS(mode)] set description [lindex $list $TS(description)] set enabledptr $name.enabled set certmodeptr $name.certmode set stressmodeptr $name.stressmode # here is the update logic if {$name == "floppy"} { if {$nofloppy} { set required "Optional" } else { set required "Required" } } if {$name == "cdrom"} { if {$nocdrom} { set required "Optional" } else { set required "Required" } } if {$certrun} { if {$name == "floppy"} { if {$nofloppy} { set enabled "Disabled" } else { set enabled "Enabled" } } if {$name == "cdrom"} { if {$nocdrom} { set enabled "Disabled" } else { set enabled "Enabled" } } set msflag 0 set esflag 0 set mode "Gentle" if {$required == "Required"} { set enabled "Enabled" } if {$name == "graphics"} { set esflag 1 } if {$name == "usbflash"} { set esflag 1 } } else { set msflag 1 set esflag 1 } set list [lreplace $list $TS(enabled) $TS(enabled) $enabled] set list [lreplace $list $TS(mode) $TS(mode) $mode] set list [lreplace $list $TS(required) $TS(required) $required] set mainscreen_db [lreplace $mainscreen_db $i $i $list] # now draw onscreen # label first if {$required == "Required"} { if {[VtInfo -charm] == 0} { VtSetValues [ind $name.name] \ -label "$description:" \ -foreground backgroundColor \ -background foregroundColor } else { VtSetValues [ind $name.name] \ -label "*$description:" } } else { if {[VtInfo -charm] == 0} { VtSetValues [ind $name.name] \ -label "$description:" \ -foreground foregroundColor \ -background backgroundColor } else { VtSetValues [ind $name.name] \ -label " $description:" \ } } if {$enabled == "Enabled"} { set eflag 1 } else { set eflag 0 } if {$mode == "Gentle"} { set mflag 1 VtSetValues [ind $name.certmode] -value 1 \ -sensitive $msflag VtSetValues [ind $name.stressmode] -value 0 \ -sensitive $msflag } else { set mflag 0 VtSetValues [ind $name.certmode] -value 0 \ -sensitive $msflag VtSetValues [ind $name.stressmode] -value 1 \ -sensitive $msflag } VtSetValues [ind $name.enabled] -value $eflag -sensitive $esflag } } # # this gets from our widgets and stores into our variables # it has no logic other than that. sct_redraw_mainscreen has the special # logic for field precedence. # proc \ sct_get_mainscreen {} \ { global mainscreen_db sct_config_db CS TS global sct_certrun_button sct_runtime_combo global sct_nofloppy_button sct_nocdrom_button set certrun [VtGetValues $sct_certrun_button -value] set runtime [VtGetValues $sct_runtime_combo -value] set nofloppy [VtGetValues $sct_nofloppy_button -value] set nocdrom [VtGetValues $sct_nocdrom_button -value] set sct_config_db [lreplace $sct_config_db $CS(certrun) $CS(certrun) $certrun] set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $runtime] set sct_config_db [lreplace $sct_config_db $CS(nofloppy) $CS(nofloppy) $nofloppy] set sct_config_db [lreplace $sct_config_db $CS(nocdrom) $CS(nocdrom) $nocdrom] # now iterate through the tests set len [llength $mainscreen_db] for {set i 0} {$i < $len} { set i [expr $i + 1]} { set list [lindex $mainscreen_db $i] set name [lindex $list $TS(name)] set enabledptr $name.enabled set certmodeptr $name.certmode set eflag [VtGetValues [ind $name.enabled] -value] set mflag [VtGetValues [ind $name.certmode] -value] if {$eflag} { set enabled Enabled } else { set enabled Disabled } if {$mflag} { set certmode Gentle } else { set certmode Hard } set list [lreplace $list $TS(enabled) $TS(enabled) $enabled] set list [lreplace $list $TS(mode) $TS(mode) $certmode] set mainscreen_db [lreplace $mainscreen_db $i $i $list] } } proc \ sct_main_close {} \ { } proc \ main {} \ { global LICENSE # do command line options, if any the routine does not return. sct_fixpath sct_cmd_line sct_init_tests if {[sct_read_config ""] == 0} { sct_save_config "" } sct_uistart sct_redraw_mainscreen # put license screen if needed if {[file exists $LICENSE] == 0} { sct_license if {[file exists $LICENSE] == 0} { VtClose exit 0 } } sct_splash VtMainLoop } if {[lindex $argv 0] == "-sct_stand_edit"} { sct_stand_edit [lindex $argv 1] exit } if {[lindex $argv 0] == "-sct_stand_config"} { sct_stand_config exit } if {[lindex $argv 0] == "-sct_stand_splash"} { sct_stand_splash exit } if {[lindex $argv 0] == "-sct_stand_format"} { sct_stand_format [lindex $argv 1] exit } if {[lindex $argv 0] == "-sct_stand_license"} { sct_stand_license exit } main 0707070000000000451006440000000000030000010000001025235521200002500000107722root/home/sct/sctrun#!/bin/osavtcl # # miscellaneous utilities shared by a few programs. # # globals set version 9.0.0g set RESPATH "[pwd]/res" set BINPATH "[pwd]/tests" set LICENSE "$RESPATH/license" set EULA "$RESPATH/eula" set PID [pid] set sct_config_file "$RESPATH/sct.config" # path to user created machine data file. set chwp_db_data_file "$RESPATH/chwp.data" # path where test run logs are kept set sctrun_logdir "[pwd]/logs" # path where test binaries are kept set sctrun_testdir "[pwd]/tests" # path where handoffs are created set sct_handoffdir "[pwd]/handoffs" # Test data items (cheap way to make a list work like a C structure) set TS(class) 0 set TS(type) 1 set TS(name) 2 set TS(description) 3 set TS(required) 4 set TS(media) 5 set TS(enabled) 6 set TS(mode) 7 set TS(running) 8 set TS(iteration) 9 set TS(errors) 10 set TS(pid) 11 set TS(elapsed) 12 set TS(normalstop) 13 # Configuration data items set CS(runtime) 0 set CS(netmachine) 1 set CS(ftpuser) 2 set CS(ftppass) 3 set CS(localgraphics) 4 set CS(certrun) 5 set CS(nofloppy) 6 set CS(nocdrom) 7 set CS(errormax) 8 set CS(cddevice) 9 set CS(usbdevice) 10 set CS(cdpattern) 11 # full list of run times set sct_run_list_full [list \ "1 min" "5 min" "15 min" "30 min" "1 hr" \ "2 hr" "4 hr" "8 hr" "16 hr" "24 hr" "36 hr" \ "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] # certification (short) list of run times. set sct_run_list_cert [list \ "36 hr" "48 hr" "72 hr" "96 hr" "120 hr" "Indefinite" ] set sct_run_indefinite_time 3600000 # # read in our saved values if any # returns zero if no file to read # proc \ sct_read_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file if {$file == ""} { set file $sct_config_file } if {[catch {open $file r} fd] != 0} { return 0 } # silently ignore errors while {[gets $fd line] != -1} { set list [split $line ":"] set type [lindex $list 0] case $type { config { set name [lindex $list 1] set value [lindex $list 2] if {$name == "certrun"} { set sct_config_db [lreplace $sct_config_db $CS(certrun) $CS(certrun) $value] } if {$name == "runtime"} { set sct_config_db [lreplace $sct_config_db $CS(runtime) $CS(runtime) $value] } if {$name == "netmachine"} { set sct_config_db [lreplace $sct_config_db $CS(netmachine) $CS(netmachine) $value] } if {$name == "ftpuser"} { set sct_config_db [lreplace $sct_config_db $CS(ftpuser) $CS(ftpuser) $value] } if {$name == "ftppass"} { set sct_config_db [lreplace $sct_config_db $CS(ftppass) $CS(ftppass) $value] } if {$name == "localgraphics"} { set sct_config_db [lreplace $sct_config_db $CS(localgraphics) $CS(localgraphics) $value] } if {$name == "nofloppy"} { set sct_config_db [lreplace $sct_config_db $CS(nofloppy) $CS(nofloppy) $value] } if {$name == "nocdrom"} { set sct_config_db [lreplace $sct_config_db $CS(nocdrom) $CS(nocdrom) $value] } if {$name == "errormax"} { set sct_config_db [lreplace $sct_config_db $CS(errormax) $CS(errormax) $value] } if {$name == "cddevice"} { set sct_config_db [lreplace $sct_config_db $CS(cddevice) $CS(cddevice) $value] } if {$name == "cdpattern"} { set sct_config_db [lreplace $sct_config_db $CS(cdpattern) $CS(cdpattern) $value] } if {$name == "usbdevice"} { set sct_config_db [lreplace $sct_config_db $CS(usbdevice) $CS(usbdevice) $value] } } test { set name [lindex $list 1] set enabled [lindex $list 2] set mode [lindex $list 3] # find the test and update it set end [llength $mainscreen_db] loop ndx 0 $end { set entry [lindex $mainscreen_db $ndx] set tname [lindex $entry $TS(name)] if {$tname == $name} { set entry [lreplace $entry $TS(enabled) $TS(enabled) $enabled] set entry [lreplace $entry $TS(mode) $TS(mode) $mode] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } } } } } close $fd return 1 } # # write out the current configuration # proc \ sct_save_config { file } \ { global CS TS sct_config_db mainscreen_db sct_config_file BINPATH if {$file == ""} { set file $sct_config_file } if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return 0 } # save config first set list $sct_config_db set certrun [lindex $list $CS(certrun)] set runtime [lindex $list $CS(runtime)] set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set ostype [sct_ostype] set osversion [sct_osversion] set nofloppy [lindex $list $CS(nofloppy)] set nocdrom [lindex $list $CS(nocdrom)] set localgraphics [sct_localgraphics] set errormax [lindex $list $CS(errormax)] set cddevice [lindex $list $CS(cddevice)] set cdpattern [lindex $list $CS(cdpattern)] set usbdevice [lindex $list $CS(usbdevice)] puts $fd "config:certrun:$certrun" puts $fd "config:runtime:$runtime" puts $fd "config:netmachine:$netmachine" puts $fd "config:ftpuser:$ftpuser" puts $fd "config:ftppass:$ftppass" puts $fd "config:binpath:$BINPATH" puts $fd "config:ostype:$ostype" puts $fd "config:osversion:$osversion" puts $fd "config:localgraphics:$localgraphics" puts $fd "config:nofloppy:$nofloppy" puts $fd "config:nocdrom:$nocdrom" puts $fd "config:errormax:$errormax" puts $fd "config:cddevice:$cddevice" puts $fd "config:cdpattern:$cdpattern" puts $fd "config:usbdevice:$usbdevice" foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] puts $fd "test:$name:$enabled:$mode" } close $fd return 1 } # load up the test list, and set all default values. proc \ sct_init_tests {} \ { global mainscreen_db sct_config_db set db "" set list [list test test cpu "CPU" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test disk "Disk" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test network "Network" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test memory "Memory" "Required" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test cdrom "CD/DVD" "Required" "CD or DVD with at least 300 Mb of data on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test floppy "Floppy" "Required" "Formatted Floppy with no bad spots" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test graphics "Graphics" "Optional" "" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set list [list test test usbflash "USB Flash Mem" "Optional" "USB Flash Memory - with test pattern on it" "Disabled" "Gentle" "Stopped" 0 0 0 0 0] lappend db $list set mainscreen_db $db # init config data set sct_config_db "{36 hr} unknown.sco.com ftp ftp@unknown.com [sct_localgraphics] 0 0 0 100 auto auto 0" } # # get the ostype, known types are OS_OSR5, OS_OSR6, OS_UNIWARE7 # proc \ sct_ostype {} \ { global BINPATH set ostype [exec $BINPATH/ostype] return $ostype } # # get the version of the os # proc \ sct_osversion {} \ { global BINPATH set osversion [exec $BINPATH/ostype -v] return $osversion } # # given an ostype, produce a user readable form # proc \ sct_display_ostype { ostype } \ { case $ostype { OS_OSR5 { set osdisplay "Open Server 5" } OS_OSR6 { set osdisplay "Open Server 6" } OS_UNIXWARE7 { set osdisplay "UnixWare 7" } default { set osdisplay "Unknown Operating System" } } return $osdisplay } # # like split but instead of chars the entire string is the delimiter # allows multi-char delimiters. PERL had regular expressions for delimiters. # max is the maximum number of elements to split into # proc \ mysplit { string delimiter max } \ { set list "" set count 1 set len [clength $delimiter] while {$string != ""} { set ndx [string first $delimiter $string] if {$ndx < 0 || $count == $max} { lappend list $string set string "" } else { set str1 [csubstr $string 0 $ndx] lappend list $str1 set ndx [expr $ndx + $len] set string [csubstr $string $ndx 9999] } set count [expr $count + 1] } return $list } # # convert internal mode to display version # proc \ sct_mode_external { mode } \ { if {"$mode" == "Hard"} { set display_mode "Max-Stress Mode" } else { set display_mode "Certification Mode" } } # # convert external display mode to internal name # proc \ sct_mode_internal { mode } \ { if {"$mode" == "Max-Stress Mode"} { set internal_mode "Hard" } else { set internal_mode "Gentle" } } # # detect if we are in graphics mode and local # proc \ sct_localgraphics {} \ { global env # get DISPLAY from environment set list [array names env] if {[lsearch $list DISPLAY] == -1} { return 0 } set display $env(DISPLAY) set tokens [split $display ":"] set displayname [lindex $tokens 0] set hostname [exec hostname -s] if {$hostname == $displayname} { return 1 } return 0 } # # fixup our path so exec works. # we have a minimum set of path requirements. # this was provoked by /sbin and /usr/sbin being missing when # you log into X on legend., which broke hardware inquiries (hw command failed). # proc \ sct_fixpath {} \ { global env set ostype [sct_ostype] if {$ostype == "OS_OSR5"} { set minpath "/bin:/etc:/usr/bin:/tcb/bin" } if {$ostype == "OS_UNIXWARE7"} { set minpath "/sbin:/usr/sbin:/etc:/usr/bin:/usr/ccs/bin" } if {$ostype == "OS_OSR6"} { set minpath "/bin:/usr/bin:/tcb/bin:/sbin:/usr/sbin:/etc" } # make sure all required components are in the real path set envlist [split $env(PATH) ":"] set minlist [split $minpath ":"] foreach required $minlist { if {[lsearch $envlist $required] < 0} { lappend envlist $required } } set newpath [join $envlist ":"] set env(PATH) $newpath } # given a global variable name in a variable, get the value of it. proc\ ind { varname } \ { global $varname set iname "\$\{$varname\}" [eval return $iname] } # time conversion routines from my internal format "xx hr xx min xx sec" to secs proc \ sct_time_to_secs { timestr } \ { global sct_run_indefinite_time if {$timestr == "Indefinite"} { return $sct_run_indefinite_time } set list [split $timestr " "] # now we have pairs set len [llength $list] set secs 0 for {set i 0} {$i < $len} {set i [expr $i + 2]} { set str [lindex $list $i] set specndx [expr $i + 1] set specstr [lindex $list $specndx] if {$specstr == "hr"} { set secs [expr $secs + ( $str * 3600 ) ] } if {$specstr == "min"} { set secs [expr $secs + ( $str * 60 ) ] } if {$specstr == "sec"} { set secs [expr $secs + $str ] } } return $secs } # time conversion from seconds to my internal format "xx hr xx min". proc \ sct_secs_to_time { secs } \ { set remain $secs set hours [expr $remain / 3600] set remain [expr $remain % 3600] set mins [expr $remain / 60] set remain [expr $remain % 60] set secs $remain if {$hours} { set str "$hours hr $mins min $secs sec" } elseif {$mins} { set str "$mins min $secs sec" } else { set str "$secs sec" } return $str } # # sctrun.tcl # # Routines for runtime and logfile management # # sctrun_start - make a new test run, initialize the logfile area, start the run # sctrun_poll - call this routine to poll the status, updates mainscreen_db # sctrun_stop - stop the test run cleanly. # sctrun_abort - attempt to kill all test processes. # # post mortem test analysis: # sctrun_list - list all test runs by name and their attributes # sctrun_load - load data for a given test run # # these routines work both for running and post mortem # sctrun_logfile - get logfile for the current test run given a test name # sctrun_logdir - get log directory for the current test run # # internal routines not for public consumption # sctrun_statfile - get status file for a current test run and test name # sctrun_initpaths - set up our internal global pathnames # set sctrun_stopping 0 set sctrun_aborting 0 # # create a new run, create the set of files # doesn't run any tests yet # proc \ sctrun_start {} \ { global sctrun_logdir sctrun_rundir mainscreen_db global sctrun_config_file TS CS sct_config_db global sctrun_testdir sctrun_stop_file sctrun_runndx global sctrun_stopping sctrun_aborting # have to scan for a new directory name if {[file exists $sctrun_logdir] == 0} { system "mkdir -p $sctrun_logdir" } set found 0 loop ndx 1 99 { set file [format "%s/run%02d" $sctrun_logdir $ndx] if {[file exists $file]} { continue } set found 1 break } if {$found == 0} { return "Test log directory full" } set sctrun_runndx $ndx if {[file exists $file] == 0} { system "mkdir -p $file" } sctrun_init_paths $file set sctrun_stopping 0 set sctrun_aborting 0 if {[sct_save_config $sctrun_config_file] == 0} { return "" } # start the tests foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set mode [lindex $entry $TS(mode)] if {$enabled != "Enabled"} { continue } set testname "$sctrun_testdir/$name" set statfile [sctrun_statfile $name] set logfile [sctrun_logfile $name] # create blank status and log files set fd [open $statfile w] puts $fd "running=Starting" puts $fd "iteration=0" puts $fd "errors=0" puts $fd "elapsed=0" close $fd set fd [open $logfile w] close $fd system "$testname $sctrun_rundir &" } return "" } # # poll the results of the current test run, updates mainscreen_db # return whether anything is running or not. # proc \ sctrun_poll {} \ { global sctrun_logdir sctrun_rundir mainscreen_db global sctrun_config_file TS CS sct_config_db global sctrun_testdir sctrun_stopping sctrun_aborting # first check are we stopping? set stopping $sctrun_stopping set aborting $sctrun_aborting set anyrunning 0 set length [llength $mainscreen_db] loop ndx 0 $length { set entry [lindex $mainscreen_db $ndx] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled != "Enabled"} { continue } # read the status file set statfile [sctrun_statfile $name] set fd [open $statfile r] set running "Starting" set iteration 0 set errors 0 set pid 0 set elapsed 0 while {[gets $fd line] != -1} { set list [mysplit $line "=" 2] set key [lindex $list 0] set val [lindex $list 1] case $key { running { # check for stopped if {$stopping && ($val != "Stopped")} { set val Stopping } if {$aborting && ($val != "Stopped")} { set val Stopped } set entry [lreplace $entry $TS(running) $TS(running) $val] if {$val != "Stopped"} { set anyrunning 1 } } iteration { set entry [lreplace $entry $TS(iteration) $TS(iteration) $val] } errors { set entry [lreplace $entry $TS(errors) $TS(errors) $val] } pid { set entry [lreplace $entry $TS(pid) $TS(pid) $val] } elapsed { set entry [lreplace $entry $TS(elapsed) $TS(elapsed) $val] } } } close $fd # now check logfile set logfile [sctrun_logfile $name] set fd [open $logfile r] seek $fd 0 end set len [tell $fd] if {$len > 500} { set len [expr $len - 500] } else { set len 0 } # read until get last line seek $fd $len start set lastline "" while {[gets $fd line] != -1} { set lastline $line } close $fd # look for Stopping normally if {[string first "Stopping test normally," $lastline] > 0} { set val 1 } else { set val 0 } set entry [lreplace $entry $TS(normalstop) $TS(normalstop) $val] set mainscreen_db [lreplace $mainscreen_db $ndx $ndx $entry] } return $anyrunning } # # stop the current test run # may be a no-op if all tests are already complete # proc \ sctrun_stop {} \ { global sctrun_stop_file TS CS sctrun_stopping # create the stop file. set fd [open $sctrun_stop_file w] close $fd set sctrun_stopping 1 } # # abort the current test run # does a stop then sends sighup to all running processes # proc \ sctrun_abort {} \ { global sctrun_stop_file TS CS sctrun_rundir mainscreen_db global sctrun_aborting # make sure we have all the pids sctrun_poll # issue stop sctrun_stop set sctrun_aborting 1 set length [llength $mainscreen_db] loop ndx 0 $length { set entry [lindex $mainscreen_db $ndx] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set running [lindex $entry $TS(running)] set pid [lindex $entry $TS(pid)] if {$enabled != "Enabled"} { continue } if {$running == "Stopped"} { continue } if {$pid} { catch {kill 1 $pid} ret } } } # setup our paths proc \ sctrun_init_paths { path } \ { global sctrun_rundir sctrun_config_file sctrun_stop_file set sctrun_rundir "$path" set sctrun_config_file "$sctrun_rundir/config" set sctrun_stop_file "$sctrun_rundir/stop" } # # given a test name, cough up the log file name in the current test run. # proc \ sctrun_logfile { name } \ { global sctrun_rundir set logfile "$sctrun_rundir/$name.log" } # # given a test name, cough up the status file name in the current test run # proc \ sctrun_statfile { name } \ { global sctrun_rundir set logfile "$sctrun_rundir/$name.status" } # # get the run directory # proc \ sctrun_logdir {} \ { global sctrun_rundir return $sctrun_rundir } # # get the current test run number # proc \ sctrun_current {} \ { global sctrun_runndx return $sctrun_runndx } # # get a list of the test runs and their attributes # proc \ sctrun_list {} \ { global sctrun_logdir sctrun_rundir sctrun_config_file sctrun_stop_file global sct_config_db mainscreen_db global sct_testrun_db TS TD CS # the master list of test runs set sct_testrun_db "" set rundirlist "" if {[file exists $sctrun_logdir]} { set rundirlist [readdir $sctrun_logdir] } foreach rundir $rundirlist { set dirpath $sctrun_logdir/$rundir if {[file isdirectory $dirpath] == 0} { continue } if {[csubstr $rundir 0 3] != "run"} { continue } sctrun_init_paths $dirpath # load the config file for this run sct_init_tests sct_read_config $sctrun_config_file sctrun_poll # make totals set run_duration [lindex $sct_config_db $CS(runtime)] set run_localgraphics [lindex $sct_config_db $CS(localgraphics)] set run_nofloppy [lindex $sct_config_db $CS(nofloppy)] set run_nocdrom [lindex $sct_config_db $CS(nocdrom)] set run_missing 0 set run_abnormal 0 set run_errors 0 set run_tests 0 foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set required [lindex $entry $TS(required)] set running [lindex $entry $TS(running)] set errors [lindex $entry $TS(errors)] set elapsed [lindex $entry $TS(elapsed)] set normalstop [lindex $entry $TS(normalstop)] if {$name == "cdrom" && $run_nocdrom} { set required "Optional" } if {$name == "floppy" && $run_nofloppy} { set required "Optional" } if {$enabled != "Enabled"} { if {$required == "Required"} { set run_missing [expr $run_missing + 1] } continue } set run_tests [expr $run_tests + 1] if {$normalstop == 0} { set run_abnormal [expr $run_abnormal + 1] } set run_errors [expr $run_errors + $errors] } # calculate eligible set run_eligible 1 if {$run_duration != "36 hr"} { set run_eligible 0 } if {$run_missing} { set run_eligible 0 } if {$run_abnormal} { set run_eligible 0 } if {$run_errors} { set run_eligible 0 } if {$run_localgraphics == 0} { set run_eligible 0 } set list [list $rundir $run_duration $run_missing \ $run_abnormal $run_errors $run_tests \ $run_localgraphics $run_eligible] lappend sct_testrun_db $list } } # # load up the data for a given test run (index into sct_testrun_db) # proc \ sctrun_load { index } \ { global sct_testrun_db mainscreen_db TS TD CS global sctrun_logdir sctrun_config_file set list [lindex $sct_testrun_db $index] set name [lindex $list $TD(name)] set dirpath $sctrun_logdir/$name sctrun_init_paths $dirpath sct_init_tests sct_read_config $sctrun_config_file sctrun_poll } #!/bin/osavtcl # globals set ME "[pwd]/sctrun" set IC(disabled) 0 set IC(enabled) 1 set IC(running) 2 set IC(stopped) 3 set IC(error) 4 set IC(noerror) 5 # global for if tests completed yet set RUNNING 0 set RUNCOMPLETE 0 # nop - no-op - no operation - dummy proc proc \ sct_nop { cbs } \ { set nop b } # # put up an information dialog box with the given callbacks # (ok Ok) # proc \ sct_query_okcancel { msg ok cancel } \ { global app set ret [VtInformationDialog $app.okcancel \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ -cancel -cancelLabel "Cancel" -cancelCallback $cancel \ ] VtShow $ret } # # put up an error dialog box with the given callbacks # (eok Error Ok) # proc \ sct_query_eok { msg ok } \ { global app set ret [VtErrorDialog $app.eok \ -message $msg \ -ok -okLabel Ok -okCallback $ok \ ] VtShow $ret } proc \ sct_cmd_line {} \ { } proc \ sct_set_sensitive {} \ { global RUNNING RUNCOMPLETE STOPPED ABORTED global sct_run_button sct_stop_button sct_bottom_status global sct_exit_button TS mainscreen_db sct_config_button global sct_handoff_button sct_summary_button VtSetValues $sct_stop_button -sensitive 1 if {$RUNCOMPLETE} { VtSetValues $sct_stop_button -sensitive 0 VtSetValues $sct_summary_button -sensitive 1 } else { if {$STOPPED} { VtSetValues $sct_stop_button -sensitive 0 } else { VtSetValues $sct_stop_button -sensitive 1 } VtSetValues $sct_summary_button -sensitive 0 } } # start the tests. # o - create a directory for the test run # o - create the test config file # o - call the test controller program # o - start our polling event proc \ sct_run_test {} \ { global RUNCOMPLETE global TS mainscreen_db sct_config_db TS CS # check that at least one test enabled set count 0 set network 0 foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled == "Enabled"} { if {$name == "network"} { set network 1 } set count [expr $count + 1] } } # if nothing enabled quit if {$count == 0} { sct_query_eok "No tests enabled" sct_really_exit return } set list $sct_config_db set cdpattern [lindex $list $CS(cdpattern)] # check that networking is configured (if networking test is enabled) if {$network} { set netmachine [lindex $list $CS(netmachine)] set ftpuser [lindex $list $CS(ftpuser)] set ftppass [lindex $list $CS(ftppass)] set configured 1 if {$netmachine == "unknown.sco.com"} { sct_query_eok "Networking is not configured" sct_nop return } } # now prompt for any media that need to be inserted set medialist "" foreach entry $mainscreen_db { set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] set media [lindex $entry $TS(media)] if {$enabled != "Enabled"} { continue } if {$media == ""} { continue } if {$name == "cdrom"} { # default message is with no pattern if {$cdpattern} { set media "CD or DVD with test pattern on it" } } set media "- $media" set medialist "$medialist$media\n" } if {$medialist != ""} { set tmp "Please verify the following media are inserted or connected:" set medialist "$tmp\n\n$medialist" sct_query_okcancel $medialist sct_really_run_test sct_really_exit return } sct_really_run_test cbs } proc \ sct_really_run_test { cbs } \ { global RUNCOMPLETE RUNNING STOPPED ABORTED sct_start_time # start the run set ret [sctrun_start] if {$ret != ""} { sct_query_eok $ret sct_nop return } # update onscreen data to match set RUNNING 1 set ABORTED 0 set STOPPED 0 set RUNCOMPLETE 0 set sct_start_time [getclock] sct_set_sensitive sct_status_bar_update sctrun_poll sct_display_mainlist # create first timeout event VtAddTimeOut -callback sct_run_poll_cb -interval 10000 } # # the run poll routine # proc \ sct_run_poll_cb { cbs } \ { global RUNNING RUNCOMPLETE STOPPED ABORTED TS CS global mainscreen_db sct_config_db global sct_start_time if {$RUNNING == 0} { return } set ret [sctrun_poll] sct_display_mainlist # create another timeout event if needed if {$ret != 0} { # see if we need to abort sct_check_abort VtAddTimeOut -callback sct_run_poll_cb -interval 10000 sct_status_bar_update return } # run is complete, create the summary file and display it set RUNCOMPLETE 1 sct_status_bar_update sct_set_sensitive # create the status file set runcurrent [sctrun_current] set logfile "[sctrun_logdir]/summary" if {[catch {open $logfile w} fd] != 0} { sct_query_eok "Unable to write file $logfile" sct_nop return } set list $sct_config_db set runtime [lindex $list $CS(runtime)] set certrun [lindex $list $CS(certrun)] puts $fd "Test run $runcurrent Complete, $runtime duration\n" if {$STOPPED} { set runsecs [sct_time_to_secs $runtime] set elapsedsecs [expr $STOPPED - $sct_start_time] set elapsed [sct_secs_to_time $elapsedsecs] puts $fd "Test STOPPED by user Intervention at $elapsed\n" } if {$ABORTED} { set runsecs [sct_time_to_secs $runtime] set elapsedsecs [expr $ABORTED - $sct_start_time] set elapsed [sct_secs_to_time $elapsedsecs] puts $fd "Test ABORTED by user Intervention at $elapsed\n" } if {$certrun} { puts $fd "Certification Test Run\n" } else { puts $fd "Non-Certification Test Run\n" } set line [format "%-15s %-20s %-7s %10s %7s" \ "Test Name" "Mode" "Result" "Iterations" "Errors" ] puts $fd $line # determine each pass or fail state. foreach item $mainscreen_db { set description [lindex $item $TS(description)] set enabled [lindex $item $TS(enabled)] set mode [lindex $item $TS(mode)] set display_mode [sct_mode_external $mode] set iteration [lindex $item $TS(iteration)] set errors [lindex $item $TS(errors)] if {$enabled == "Enabled"} { set passfail "PASS" if {$errors} { set passfail FAIL } if {$ABORTED} { set passfail ABORTED } if {$STOPPED} { set passfail STOPPED } set line [format "%-15s %-20s %-7s %10s %7s" \ "$description:" "$display_mode" "$passfail" \ "$iteration" "$errors" ] } else { set line [format "%-15s Disabled" "$description:"] } puts $fd $line } close $fd # display status file sct_view_summary_cb "" } # called when the tests are not stopped yet proc \ sct_check_abort {} \ { global RUNNING RUNCOMPLETE STOPPED ABORTED if {$RUNCOMPLETE} { return } if {$STOPPED == 0} { return } if {$ABORTED} { return } set curtime [getclock] if {$curtime >= [expr $STOPPED + 20]} { sct_menu_abort_test_cb "" } } proc \ sct_view_summary_cb { cbs } \ { global PID ME set logfile "[sctrun_logdir]/summary" # file is used to pass results to preserve stdout for child processes. set file "/tmp/sct.$PID" system "rm -f $file" if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return } puts $fd $logfile close $fd VtLock VtControl -suspend system "$ME -sct_stand_view $file" VtControl -resume VtUnLock } # # stop the tests # does one of two things, set the stop flag for the tests. # if no tests are running, exits the test run screen. # proc \ sct_menu_stop_test_cb { cbs } \ { global RUNNING RUNCOMPLETE STOPPED ABORTED global TS mainscreen_db if {$RUNNING == 0} { return } # tell the tests to stop set STOPPED [getclock] sctrun_stop set ret [sctrun_poll] sct_display_mainlist sct_set_sensitive } # # similar to stop except sends kill signal for faster stop # we try a stop first, and send an abort after about 20 seconds. # proc \ sct_menu_abort_test_cb { cbs } \ { global RUNNING RUNCOMPLETE STOPPED ABORTED if {"$RUNNING" != "1"} { return } set ABORTED [getclock] # tell the tests to abort immediately. sctrun_abort sct_status_bar_update sct_set_sensitive sct_display_mainlist } proc \ sct_menu_exit_cb { cbs } \ { global RUNNING RUNCOMPLETE if {$RUNCOMPLETE == 0} { set msg "Some tests are running, exiting will stop those tests." sct_query_okcancel $msg sct_really_exit sct_nop return } sct_really_exit "" } proc \ sct_really_exit { cbs } \ { sct_menu_stop_test_cb "" VtClose exit 0 } # do nothing here. proc \ sct_select_cb { cbs } \ { } # # Called from a seperate process to give us a truly modal dialog box. # display the given logfile # proc \ sct_stand_view { file } \ { global app sct_main_form sct_dialog_form global sct_stand_file set sct_stand_file $file set fd [open $file r] gets $fd logfile close $fd system "rm -f $file" # create the dialog box. set app [VtOpen sctchild] set sct_dialog_form [ \ VtFormDialog $app.edit \ -title "View Logfile $logfile" \ -ok -okLabel OK -okCallback sct_stand_quit \ ] set text_file [ \ VtText $sct_dialog_form.text \ -bottomSide FORM -rightSide FORM \ -columns 72 -rows 14 \ -filename $logfile \ -horizontalScrollBar 1 \ -verticalScrollBar 1 \ -readOnly \ ] VtShow $sct_dialog_form VtMainLoop } proc \ sct_stand_quit { cbs } \ { VtClose exit 0 } # the menu callback for view logfile proc \ sct_view_log_cb { cbs } \ { global sct_main_list set index [VtDrawnListGetSelectedItem $sct_main_list] if {$index == 0} { sct_query_eok "Select an item first" sct_nop return } keylset cbs itemPosition $index sct_activate_cb $cbs } # # allows one to view a logfile for a test. # proc \ sct_activate_cb { cbs } \ { global mainscreen_db TS PID ME set index [keylget cbs itemPosition] set index [expr $index - 1] set entry [lindex $mainscreen_db $index] set name [lindex $entry $TS(name)] set enabled [lindex $entry $TS(enabled)] if {$enabled != "Enabled"} { return } set logfile [sctrun_logfile $name] # file is used to pass results to preserve stdout for child processes. set file "/tmp/sct.$PID" system "rm -f $file" if {[catch {open $file w} fd] != 0} { sct_query_eok "Unable to write file $file" sct_nop return } puts $fd $logfile close $fd VtLock VtControl -suspend system "$ME -sct_stand_view $file" VtControl -resume VtUnLock } # # build main form, lock it, and return. proc \ sct_uistart {} \ { global app version sct_main_form menuBar global sct_top_status sct_bottom_status sct_main_list global RESPATH sct_run_button sct_stop_button sct_exit_button global sct_view_button sct_summary_button # set the help book name set app [VtOpen sct -helpBook SCTDOC] VtSetAppValues $app -versionString "SCT version $version" set ostype [sct_ostype] set osdisplay [sct_display_ostype $ostype] set sct_main_form [ \ VtFormDialog $app.main \ -title "System Certification Tests (SCT) - Version $version - $osdisplay" \ ] # menu bar set menuBar [VtMenuBar $sct_main_form.menubar \ -helpMenuItemList "ON_WINDOW ON_VERSION"] set optionsMenu [VtPulldown $menuBar.optionsMenu -label "Options" \ -mnemonic O] set sct_stop_button [VtPushButton $optionsMenu.stop \ -label "Stop All Tests Now" -mnemonic S \ -callback sct_menu_stop_test_cb -sensitive 0] VtSeparator $optionsMenu.sep2 set sct_exit_button [VtPushButton $optionsMenu.exit -label "Exit" \ -callback sct_menu_exit_cb -mnemonic E] set viewMenu [VtPullDown $menuBar.viewMenu -label "View" \ -mnemonic v] set sct_view_button [VtPushButton $viewMenu.viewlog \ -callback sct_view_log_cb -label "View Log File" -mnemonic l] set sct_summary_button [VtPushButton $viewMenu.summary \ -callback sct_view_summary_cb -label "View Summary File" -mnemonic s] # Top status line set sct_top_status [VtLabel $sct_main_form.toplab \ -leftSide FORM -rightSide FORM \ -labelLeft \ ] # main list widget set sct_main_list [VtDrawnList $sct_main_form.list -columns 75 -rows 13 \ -autoSelect TRUE -selection BROWSE \ -callback sct_select_cb \ -defaultCallback sct_activate_cb \ -leftSide FORM -rightSide FORM \ -horizontalScrollBar 1 \ -iconList [list \ $RESPATH/p00disabled.px \ $RESPATH/p01enabled.px \ $RESPATH/p02running.px \ $RESPATH/p03stopped.px \ $RESPATH/p04error.px \ $RESPATH/p05noerror.px \ ] \ -CHARM_iconList [list " " "+" "R" "." "!" " " ] \ ] # Bottom status line set sct_bottom_status [SaStatusBar $sct_main_form.status 1] VtSetValues $sct_main_list -bottomSide $sct_bottom_status VtShow $sct_main_form } # # convert a db entry to the stuff needed to add it to the main_list # proc \ sct_display_item { index } \ { global mainscreen_db TS IC set list [lindex $mainscreen_db $index] set class [lindex $list $TS(class)] set name [lindex $list $TS(name)] set description [lindex $list $TS(description)] set required [lindex $list $TS(required)] set enabled [lindex $list $TS(enabled)] set mode [lindex $list $TS(mode)] set display_mode [sct_mode_external $mode] set running [lindex $list $TS(running)] set iteration [lindex $list $TS(iteration)] set errors [lindex $list $TS(errors)] set formatlist "" set fieldlist "" lappend formatlist "ICON 1" lappend formatlist "ICON 1" if {"$enabled" == "Enabled"} { if {$running != "Stopped"} { lappend fieldlist $IC(running) } else { lappend fieldlist $IC(stopped) } if {$errors} { lappend fieldlist $IC(error) } else { lappend fieldlist $IC(noerror) } } else { lappend fieldlist $IC(disabled) lappend fieldlist $IC(disabled) } lappend formatlist "STRING 22" lappend fieldlist "$description" if {"$enabled" == "Enabled"} { lappend formatlist "STRING 9" lappend fieldlist "$running" lappend formatlist "STRING 22" lappend fieldlist "Iteration: $iteration" lappend formatlist "STRING 15" lappend fieldlist "Errors: $errors" } return [list $fieldlist $formatlist] } # update our two status bars proc \ sct_status_bar_update {} \ { global mainscreen_db sct_config_db global RUNNING RUNCOMPLETE sct_bottom_status CS sct_top_status global sct_start_time set list $sct_config_db set runtime [lindex $list $CS(runtime)] # bottom status bar contains test run state # top status bar is elapsed time if {$RUNNING} { # top status line set time [getclock] set runsecs [sct_time_to_secs $runtime] set elapsedsecs [expr $time - $sct_start_time] if {$elapsedsecs > $runsecs} { set elapsedsecs $runsecs } set remainsecs [expr $runsecs - $elapsedsecs] set elapsed [sct_secs_to_time $elapsedsecs] set remain [sct_secs_to_time $remainsecs] set topstatus "Elapsed: $elapsed Remaining: $remain" # bottom status line set cur [sctrun_current] set bottomstatus "Test Run $cur" if {$RUNCOMPLETE} { set bottomstatus "Test Run $cur Complete" set topstatus "Test Run $cur Complete" } } else { set bottomstatus "Starting..." set topstatus "Starting..." } # The top status bar shows the elapsed and expected times VtSetValues $sct_top_status -label $topstatus # bottom status bar shows some misc config info. set netmachine [lindex $list $CS(netmachine)] set status "$bottomstatus, runtime: $runtime, remote machine: $netmachine" SaStatusBarSet $sct_bottom_status $status } # now draw them proc \ sct_display_mainlist {} \ { global mainscreen_db sct_main_list set llist [VtDrawnListGetItem $sct_main_list -all] set mlen [llength $llist] set length [llength $mainscreen_db] # coerce onscreen list length if not match while {$length != $mlen} { if {$mlen < $length} { VtDrawnListAddItem $sct_main_list \ -position 0 \ -formatList [list "STRING 1"] \ -fieldList [list " "] set mlen [expr $mlen + 1] } if {$mlen > $length} { VtDrawnListDeleteItem $sct_main_list -position 0 set mlen [expr $mlen - 1] } } loop i 0 $length { set list [sct_display_item $i] set fieldlist [lindex $list 0] set formatlist [lindex $list 1] set position [expr $i + 1] VtDrawnListSetItem $sct_main_list \ -position $position \ -fieldList $fieldlist \ -formatList $formatlist } } proc \ main {} \ { # do command line options, if any the routine does not return. sct_cmd_line sct_init_tests if {[sct_read_config ""] == 0} { sct_query_eok "Please configure the tests first" sct_nop return } sct_uistart sct_run_test sct_display_mainlist sct_status_bar_update VtMainLoop } if {[lindex $argv 0] == "-sct_stand_edit"} { sct_stand_edit [lindex $argv 1] exit } if {[lindex $argv 0] == "-sct_stand_config"} { sct_stand_config [lindex $argv 1] exit } if {[lindex $argv 0] == "-sct_stand_view"} { sct_stand_view [lindex $argv 1] exit } if {[lindex $argv 0] == "-sct_stand_splash"} { sct_stand_splash exit } main 0707070000000000461006440000000000030000010000001025235521300003200000046460root/home/sct/tests/cdromELFd4I4 (44,,,,=,/usr/lib/libc.so.159.#'%-+3,(8!0 7&*45/1 2   " )$60 $8 t%4#*D18ԉD?ԋ=FLRTY4`p m2td0{Dt$tt$ dԊĊ\dp !$!(07Tx? G@NX4t^Tdĉ'kDċ8closestrcat_edatasleepatofatoiwaitmallocatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosereallocfprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1̿п Կ0ؿ'ܿ3  -$ # "$!(*,+06481<@DHL P/T X\8` dh.lp,tx|725Ŀ%ȿ%̿h%пh%Կh%ؿh%ܿh %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx% h%h%h%h%h% h%$h%(hp%,h`%0hP%4h@%8h0%<h %@h%Dh%Hh%Lh%Ph%Th%Xh%\h %`h(%dh0%hh8p%lh@`%phHP%thP@%xhX0%|h` %hhjjRE] |u =t PthWSu Pj}tzE @55ujY h؎jh؎ju jjn:PW YUq5hNj$YU+3{ t hh!Vh ,3A<u*G(5(YjY2VYG|3XjEP4 E%t$GPhhm Vhk G|, RtjYt [^_UWVSpjjjj=,t-3$<tj4 jYG|jh j YjnY_UWz= $E JHJH}u( JHJHJ H fJfHEEU{'jh=}h YjY== D|  DC=( | ( +5hhp h/ YjOY=( uh8h?h\h+h Y=u+=u"EPYY9}9jhEP5%9~jhLh? YjhE}},hhhF h YI3jYE35 hu ; tCh Y3=uY;=|'5 hj fz(5 hj z;t;5 W5h5 hh t=u55 hjQ PxPWhh WhԨh hY=tSWhh hY ƀh~YWhh hXYCS8 Yt/ǹu u q t G;=4uYjY+EEE]$]}Euu]E]E؃$uWh hhY[^_U(WVSu uUvuu u Uuu ujvUu uji Uu uj] Uu ujQ U uJYUEE ,jpY=t5hLP hXPhhPE}u/Phlhn jhk3EhY? ujhh u93(3WluCF;5|jhh| uWh5jhhQ uWh jhh& uWhjhĩh uWh$jhԩh uWYjhh uWh0`jhh| uWJYjhhS uWh 5h$ht hYPhh EhYjh0W u j h<W u  hHWTu hPW8u uhhE QuBY}t =u,PhXhl jhi3=jjY[^_UWVS!ou55hhh=uhth;=t5u5YU댋j8Y+Ej'YEEPEPfEEE=u#uuu5hxhR'u5uu5hh)j h uhhULE?uhP PYE hYUwj/YEhEPmhYhIY55hhOhYh YU끍vX}t EDEP5uhԪhh)YhYU렋J5hh hYh_YqjYU뱍v05h hU hYhYUːuvYhYUvjY+Eu55h$hh4h=E\&EhEptۃt߃tuh85 5hD5f 5hT5M 5h`54 uhh5 5YU`u5hth =t-xPhP|3U땍v(jY+E9E|3UЋMEE=u339E}3%=uhxYU뫐 EUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =u-3Wh|P G|E%CE%CCE%CCE%CCC[^_UWVS0v=uhu m}EPuQ3yFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=uzPLYhPu5u  hPu Uf'=uhYUԋ=hhhEEE}uhh uYj h:E}tEG? tj WE}tEWKY]ExzEEExAzjhE_UW_uEE }hhhj hVthht hȫhxt! G? tWYEE9}Ehثh?t& G? tWeYE}u E U BShhP 3SY}t}u9hhh@Shh uSY3[^_UWVSuhh) hY} tuYEju}E}}'uhlh hY3,3} t E@E>E+ǹЋu Vu/ ;thhu ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWhhhY}E5]E$ǙPǙPWh4hhoY[^_U WVSPvhuEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuup ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIUsage: %s test_directory errors ocurred, see above Child %d had errors, see above /dev/cd0/dev/cdrom/cdrom1CD size not right for test pattern CD, got %d blocks detected test pattern CD 649 Mb detected test pattern DVD 4.5 Gb Unable to open %s ERROR: Block %d not match, sum expected %d sum obtained: %d ERROR Block %d not match here is bad block %d: end of bad block %d %d blocks summed, %d seconds, %4.2f Mb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb  p D  p( <Ⱦ,оؾ @8pQ@ (F086cdromAbort received Media too small, please use a CD/DVD with at least 300 Mb of data, aborting CD/DVD sized larger than previous, check the media, using larger size CD/DVD sized smaller than previous, check the media, ignoring smaller size Summing CD/DVD Read error on CDROM 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize ʉډ *:JZjzʊڊ *:JZjzʋڋ *:JZD%.7t<dBp J Sp Y _ h nuz  %+:FKV0agmqvlL0 0  &$8+t0b94#>t$DDK؏:SZԉDapuԋ=|T4p 2Ԕd0Dt %$*dy17\$HT^ctthu$ | Td0rЛ"$QԊd2v$-Ċ\9d>Mp S![<eLo$t| PTx  !./@6؎x=OmZ>c$r||4t$x7T(,WPĉ'D%05ċ8cdrom.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.ccdrom.c.X328.X327.X326util.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosebuf1buf2strcat_edatasleepatofatoilog_stopwaitusagemallocsumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsize_cleanupkill_startpopenosdep_opendeviceopt_filenumtest_nameforktime_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_messagechildren_xttyname_ropenopt_fileblocks_initenvironlog_startlog_errorexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepclosereallocconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopenblockspermeglog_iteration_endlseekchildsizedeviceparentcheck_errormaxdo_cdromsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  DD ( p1tt 6dd <pp'D'Mpp,S,Y,b  -h-!o/t0,9y0 E<=ABB0707070000000000471006440000000000030000010000001025235521300003100000046224root/home/sct/tests/cdrwELF4$I4 (44,,,ļG,ļ/usr/lib/libc.so.156+$ %")*&/5-4#(12,.0    '!3\0̉ |8 %,,D3L=:,@ FMT a2h 0owt~,tL ̊ ܉dl\܊\ ܽ!|L$ļx|$+l 3l@:<D\tJ<,QWmܽv~<8closestrcat_edatasleepatofatoiatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenfflush_cleanuppopen__iobtimesync_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironunlinkexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenfwritelseek_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1-% () $( ,0 4*8</@D.H,L$P!TX\`d h3lptx |5 + 405%%h%h%h%h%h %h(% h0%h8p%h@`%hHP%hP@% hX0%$h` %(hh%,hp%0hx%4h%8h%<h%@h%Dh%Hh%Lh%Php%Th`%XhP%\h@%`h0%dh %hh%lh%ph%th%xh%|h%h%h %h(%h0%h8p%h@`%hHPjjRE] |ļu =ܽt P;t/h%. WSu P&juu ujUu uj Uu uj Uu uj UKPhȦhYjh8uhЦYj[Y U밋=LqEl JHJH}u(l JHJHJ H fJfHtPh }h $YYT3=uRjYu9t hTY htY_UW EhYhYxPhhl hhthhh{ ,}uhhahhMhhħht6 hhtD5hht5 u53YEhYhYhlhhhthhtjYE3~5LW5hM55Ljh;LtKGkd=P;t+Vhdu h4YhYG;=Pv53YE;=P}EA}u^jY+EEE]]܉}Euu]E]EЃ$uWhPht}ht@Y`hhl=t5 htY5hht[ u5YhYhYhlYE[^_U0WVSv=jhlEP9E}hyYhبdYhiYjhl,E}},hlhht\ htYEjYE35LW5h 5Lhu EhY5Lhh tWhht htvY=TtSWh,ht htOYLƀh8YWhDhtW htYE;Gkd=P;tVhhYG;=PuYjIY+EEE]]}Euu]E]EЃ$uWh\hthtuYE[^_U0WVSu uoUvuu u` Uuu ujUu uj Uu uj Uu uj U uYUEE hjY=t5hPv hP`hPE}u/Phh* jhk3EhY? ujhh u93(X3WuC `F;5ؽ|jh̩hX uWhtjhh- uWhlvjhh uWhKjhh uWh jhh uW Yhjh$h uWhjh8hX uWYjhLh/ uWhx5h`h0 hCYPhh EhYjhlW u lj hxW u  lhWu dhWu duhh QuY}t = u,Phh( jhi3=jY[^_UWVS!ou55hh=uhh'=t5u5ZYU댋jY+EjYEEPEPEEE=u#uuu5hh'u5uu5hĪhj hFuhܪh@ULE?uhP PYE hYUwjYEhEPhYhIY5`5hh hYh YU끍vX}t ElEx5uhhh)YhYU렋J5h0h_ hYh_Yqj*YU뱍v05hHh hYhYUːuvYhYUvjY+Eu55h`hhph=E&EEtۃt߃tuht5 5h5 5h5 5h5p uh5Z 5LYU`u5hh =t-xPhP|3U땍v(jY+E 9E|3UЋMEE=hu33h9E}3%=uhYU뫐 EUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =u-3WhlP G|E%lmCE%lCmCE%lCmCE%lCmCC[^_UWVS0v=uhu m}EPuQ3yFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=uzPLYhP u5u  hȫPu Uf'=uhYUԋ=hhԫnEEE}uhhN uSYj hvE}tEG? tj WOE}tEWgY]EzEEEAzjhȾE_UW_uEE }hhܫXj hthht hht! G? tW YEE9}Ehh[t& G? tWYE}u E U BShh 3SY}t}u9hh$_@ShhS uSVY3[^_UWVSuh,h hY} tuYEjuiE}}'uhh hY3,3} t E@E>E+ǹЋu Vu/ ;thhu ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWh8hhY}E5Ħ]E$ǙPǙPWhphlhoY[^_U WVSPvhuEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIpid:%d Unable to read config file /dev/cd0/dev/cdrom/cdrom1/usr/bin/cdrecordcdrecord missing, please make sure it is installed Format complete with errors Format complete Blanking CD /tmp/cdrw%dauto-dev=%s-dev=1,0,0cdrecord -blank=fast -force %s 2>&1rBurning CD cdrecord speed=8 %s - > %s 2>&1w%3d percent complete Finalization in Progress %d blocks written, %d seconds, %4.2f Mb/sec Burn failed, check media and device Device not correct size, bad media, aborting Summing CD Unable to open %s Read error on CDROM ERROR: Block %d not match here is bad block %d: end of bad block %d %d blocks summed, %d seconds, %4.2f Mb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb     P( <, @8 p(0Q8@@HPFX`6cdrom1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize ļ"2BRbr‰҉"2BRbrŠҊ"2BRbr$-6 ;A IȦ R X ^ļ gLmty~tX8  "(.4COT_ljpvzؽXēlP !\0(29̉ ?|8DIbRPZ,aDh wR|L=,  2@ 0t,\&.7y>GM$^jtz,tL ̊ `HT܉dlrTl "d`Q\2$h4v@܊\LQP` fܽ!nxx,L|lL$llļx|l  lp%l -L;t?,.Ml@Ttf0mq<\t<,7ԜWܽ -<8cdrw.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.ccdrw.c.X313lstatstatfstatmknodutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.stmpfdclosebuf1buf2strcatburn_pipe_edatasleepatofatoilog_stopsumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenconfig_ftppassfflushlog_childsct_memsizeopt_devicedo_cdrw_cleanup_startmakefilepopenosdep_opendeviceopt_filenumtest_name__iobtimesync_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_message_xttyname_ropenopt_fileblocks_initenvironlog_startlog_errorunlinkopt_tmpfileexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepcloseconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfcloseconfig_netmachinecheck_stopconfig_binpathmakeblock__fpstartfopenblockspermegfwritelog_iteration_endlseeksizedevicecheck_errormax_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  ` ( P1  6 <&DȦ&M,S,Yļ,bLL-h-o.t/Dy/` G:51AAW0707070000000000501006440000000000030000010000001025235521200003000000045670root/home/sct/tests/cpuELF4HH4 (44A-A-D-D1D-D/usr/lib/libc.so.157,"&$*1+'6 .5%)23-/ 0  !  (#4̋L0( 8 ܊%#*L1D8<=? EKRY f2m̊0t|t̉<܉lt | Ad<,\0 T!l$ D0L!\)|0\ 8@?\ItOU|'\lrT{l܋,8closestrcat_edatasleepatofatoiwaitatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1x|.&1 "! )*Ŀ4ȿ̿/пԿؿ ܿ - 6 ,+ # 5$05p%t%xh%|h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%Ŀh%ȿh%̿h%пh%Կhp%ؿh`%ܿhP%h@%h0%h %h%h%h%h%h%h%h%h % h(%h0%h8p%h@`%hHP% hP@%$hX0jjRE] |Du =T<t Pth@ WSu PjX}tzE @$5$5j ujYhjhju jj:=PYUq5hnjDYU]3EPEP0uh$h(C h(Y}t uh@h( h(hYEEHt =u EE̽E̽=t ̽=̽} ̽EEEE$E5E,E#EEHƒw$=̽u?uuuut h\h($Vh( 3P  < u9G5oYjYuuuu=VYG;=̽|3XjEP4   E%t$GPhxh(^ Vh( G;=̽|U tjcYt #[^_U WVSsjjjj=t03$< tj4 jYG;=̽|jh\5 j Yj[Y_UW뇐}jY33,h{YjY+ËFPu t<|VWhh(h(j YuE Ш]E Ԩ]}E}]E5ب]E]E$hh(h( Y u @ t3} jY33,hYjY+ËFn u t<|VWhh(=h( YuE ܨ]E ]}E}]E5ب]E]E$hĩh(h() Y u ^ t3}jY33,h;YjY+ËF u  t<|VWhh([h( YuE ]E ]}E}]E5ب]E]E$hܩh(h(G Y u | t3}j$Y33,hYj Y+ËF u 1 t<|VWhh(yh( YuE ]E ]}E}]E5ب]E]E$hh(h(e Y u t33[^_UWVSdv-}EEEEEMMMMMO_U(W@uu](ǙǙǙǙK[^_UWVS븋}xE]E]E]E]E]E%]E%]E%]E%]E%]O_UPWmqEG]@EEUEU}HEM]Eu]EM]Eu]EM]Eu]EM]Eu]O_UWu uUvuu u Uuu ujUu uj} Uu ujq Uu uje U u^YUEE |x@tjYp=|t5|h P. hPh(PE}u/Ph,hp jhpk3EhpYo? ujh@hp u93(н3WuCF;5P|jhPhpP uWh(Yjhdhp% uWh .jhthp uWhjhhp uWhjhhp uWYjhhp{ uWhjhhpP uWnYjhЪhp' uWh05hhp hpYPhphp EhpYpjhW u  j hW u   hWxu hW\u uhhpi QufY}t =u,Phhp jhpi3=jY[^_UWVS!opu55|h(hpz=luh4hpOl=lt5lu5lYU댋j|Y+pEjkYEEPEPEEE=hu#uuu5h8hh'u5huu5hHhhj hh.uh`hh(ULE?uhdPR PYE dhhYUwjsYEhpEPhpYhhIYx55hphphpYhh YU끍vXx}t EE5duhhp^hp)YhhYU렋J`5`hhp hpYhh_YqjY`U뱍v05`h̫hp hpYhhYUːuvYhhYUvjY+pE`u55|hh`Nhh`,\=\E&EExtۃt߃tuh5\ 5`h5\ 5dh5\q 5th 5\X uh(5\B 5\YU`\u5|h4h\D =Xt-xPh\P|X3U땍v(jKY+pE9E|3UЋMdEE=u339E}3%=TuTh$YU뫐 EhUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =Pu-3Wh< P G|PE% !CE% C!CE% C!CE% C!CC[^_UWVS0v=Luh@u mL}EPuQ3yGFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=<uz<PLY8hDPu5u 8 8hLPu 88Uf'=4u4h,Y/Uԋ=((ph(hXEEE}uhhp& uYj hp^E}tEpG? tj W7E}tEWoY]EzEEEAzjhLE_UW_uEE }h(h`j hpzthhhpt hhpt! G? tWYEE9}Ehhpct& G? tWYE}u E U BShhpt 3SY}t}u9h(h@Shhp+ uSY3[^_UWVSuhhp hpY} tuYEjuE}}'uh,hpS hpY3,3} t E@E>E+ǹЋu Vu/ ;thhpu ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWhhpphpY}E5]E$ǙPǙPWhhp$hpoY[^_U WVSPvhuEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' # LpA$tI$I AK?G]@$IIUsage: %s test_directory %d Physical CPU's detected %d logical CPU's detected errors occurred, see above Child %d had errors, see above time %d count %d %7.2f MIPS (add/sub) %7.2f MIPS (mul/div) %7.2f MFLOPS (add/sub) %7.2f MFLOPS (mul/div) %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb  0 @  l`̇ćl<t,| @8pQ@ľ̾ԾFܾ6cpuAbort received 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize DBRbr‰҉"2BRbrŠҊ"2BRbr‹ҋ #ć,̇5,:@ H Q0 W@ ]D f̽lXslx(}(,48<@ LPTX\ \``$d0h5h@tKlQpWp[p`potxx|Pн̕tX̋L0(  8܊b #% $+L2D9HxM<=T Zkqx 2H̊0t̉4d<܉y l$ */t4J; H| ObPTgAnsd{tr<"hQ,2v \0 T! ̽.4L8l$= EDN0S\Lc r\zD@ | $\ (4.@{(8m0p)\3t97KQWbi8oܞW~ܔ||'lTħl܋,8cpu.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.ccpu.cutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosedo_cpustrcat_edatasleepatofatoilog_stopwaitusageatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsize_cleanupkill_startpopenosdep_opendevicetest_nameforktimebenchm_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucount_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_messagechildren_xttyname_ropen_initenvironlog_startHARD_CHILDRENlog_errorexitmytable_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevicefbench_finisct_ostypepcloseconfig_enabledtest_dirfprintfbufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopenlog_iteration_endlseekchildsizedeviceparentbenchcheck_errormaxfbenchmsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  p ć( ̇`1,, 6 <(PD)"M00-S@@-YDD-b̽-hXX.oll/t((0/y(0 B;@A0707070000000000511006440000000000030000010000001025235521200003100000045734root/home/sct/tests/diskELFČ4lH4 (44!,!,$,$8<$,$/usr/lib/libc.so.15;0($)&- 5.*:"2!9',6713/ 4   # +%8ԊD04ĊD !8&ԋ+t#0ԉ7D>4=EKQX_` l2sċ0ztTĉdd4t  !$dD4$\ <!$$'\,T3d;tBHT P@Watgm'th<t$8closestrcat_edatawritesleepatofatoiwaitatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktimesync_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironunlinkexit_DYNAMIC_end_xstat_lxstatpclosecreatfprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1tx |2)5 !(/% ľȾ̾$о#Ծ"ؾ,ܾ-83 1  : 0 .$(,9045l%p%th%xh%|h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%ľh%Ⱦh%̾h%оhp%Ծh`%ؾhP%ܾh@%h0%h %h%h%h%h%h%h%h%h %h(% h0%h8p%h@`%hHP%hP@% hX0%$h` %(hh%,hp%0hxjjRE] |$u =<ĉt Pth WSu Pj(@}tzE @L5L5(NujpY h@jnh@j_u jjN:!P YUq5(hx.jYU43 =0t0t hhPVhP 3A8<8u*G5gYjYMVeYG|3XjEP48 8E%t$GPhhPD VhP G|b tjpYt 0[^_UWVSjjjj=t-3$<8tj48jYG|jhHA =Ht hHYj Yj/Y_UWs==t 55LhЧhH5LhhH $4uuhH%Y/_UWdvUhhH؅},hHhhP{ hP Y jYE3E3{5W5$h|5hS ;thX YE=F=u&jYEE+E~G3 t G;=ySnY(jAY+EEE]]}Euu]E]E؃$uWhhPjhP YE[^_U(WVSjhH؅},hHh8hP hP YEjYE335W5$h5hS 5hhw WhLhP| hPY=tSWhhhPU hPYƀhYWhhP hPYEuk Yt$F=u 3 t G;=;=u85hS t hhPhPYESFYjY+EEE]]}Euu]E]E؃$uWhhPGhPYE[^_U(WVSu uUvuu u Uuu ujUu uj Uu uj Uu uj U uYUEE jY|=t5hP hPhPPE}u/Ph h| jh|k3Eh|Y{? ujh h|M u93(3WuC,F;58|jh0h| uWhPjhDh| uWhHzjhTh| uWhOjhdh|{ uWh$jhth|P uWY4jhh|' uWhjhh| uWYjhh| uWh|5hĩh| h|7YPh|h| Eh| Y|jhЩWT u Hj hܩW3 u  HhWu 0hWu 0uhh| QuY}t =u,Phh| jh|i3=jY[^_UWVS!o|u55hh|V=xuhh|x=xt5xu5xYU댋jY+|EjwYEEPEPEEE=tu#uuu5hht'u5tuu5h(htyj htzuh@httULE?uhDP. PYE phtYUwjYEh|EPh|YhtIY5,5hPh|h|Yht YU끍vX}t EE5puhth|:h|)YhtYU렋Jl5lhh| h|Yht_YqjYlU뱍v05lhh| h|YhtYUːuvYhtYUvjY+|Elu55hĪhl*hԪhlh=hE&EEtۃt߃tuhت5h 5lh5h 5ph5h 5h5h uh5h 5h YU`hu5hhh =dt-xPhhP|d3U땍v(jWY+|E9E|3UЋMpEE=4u3349E}3%=`u`h YU뫐 EtUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =\u-3WhHPh G|\E%HICE%HCICE%HCICE%HCICC[^_UWVS0v=XuhLu mX}EPuQ3ySFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=HuzHPLYDh$P4u5u D Dh,Pu DDUf'=@u@h8Y;Uԋ=44|hh8"EEE}uhh|r uYj h|E}tE|G? tj WE}tEWY]EhzEEEhAzjhHE_UW_uEE }hh@ j h|thHh| t hhh|t! G? tWYEE9}Ehxh|t& G? tWYE}u E U BShh| 3S?Y}t}u9hh@Shh|w uSY3[^_UWVSuhh|y h|Y} tuYEju E}}'uh h|/ h|Y3,3} t E@E>E+ǹЋu Vu/ ;thh|u ؁uuG9Eu}}3uԉEDL[@`4=gm~` 2Ĕċ0tTĉdČyxh%d+L$<$H(R4Wt\ anԏv },T!$d rD"0Q4T2 4v%8.$\:?N T<!\,fLpw$|HH$\THd  @tHL T #P'.5@<@CPUm`Gixlth7W'h<pt"2$8disk.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cdisk.cutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosebuf1buf2strcat_edatawritesleepatofatoilog_stopwaitusagesumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsize_cleanupkill_startmakefilepopenosdep_opendeviceopt_filenumtest_nameforktimesync_xgetlogin_rdo_diskgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_messagechildren_xttyname_ropenopt_fileblocks_initenvironlog_startlog_errorunlinkexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepclosecreatconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopenblockspermeglog_iteration_endlseekchildsizedeviceparentcheck_errormaxsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  ll ,,( 441 6Č <``'Dxx'M,S  ,Y$$,b,h@@-%ohh.t44/(9y4/ B::@A0707070000000000521006440000000000030000010000001025235521300003200000046230root/home/sct/tests/dvdrwELF4(I4 (44,,,ļG,ļ/usr/lib/libc.so.156+$ %")*&/5-4#(12,.0    '!3L0̉ l8 %,,D3<=:@ FM|T a2h0owt~,tL  ܉dl\̊\ ܽ!|L$ļx|$+\ 3l@:<D\tJ<,QWmܽv܊~,8closestrcat_edatasleepatofatoiatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenfflush_cleanuppopen__iobtimesync_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironunlinkexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenfwritelseek_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1-% () $( ,0 4*8</@D.H,L$PTX\` d3hlpt x5| + !405%%h%h%h%h%h %h(% h0%h8p%h@`%hHP%hP@% hX0%$h` %(hh%,hp%0hx%4h%8h%<h%@h%Dh%Hh%Lh%Php%Th`%XhP%\h@%`h0%dh %hh%lh%ph%th%xh%|h%h%h %h(%h0%h8p%h@`%hHPjjRE] |ļu =ܽt P;t/h%. WSu P&juu ujUu uj Uu uj Uu uj UKPhhYjh4uhȦYj[Y U밋=LmEl JHJH}u(l JHJHJ H fJfHtPh}h$YYT3=uRjYu9t hLY hlY_UW EhYhYxPhhl hhthhh{ ,}uhhahhMhhht6 hhtD5hht5 u53YEhYhYhlhhhthhtjYE3~5LW5hI55Ljh;LtKGkd=P;t+Vhdu h4YhYG;=Pv53YE;=P}EA}u^jY+EEE]]܉}Euu]E]EЃ$uWhPht}ht@Y`hhl=t5 htY5hht[ u5YhYhYhlYE[^_U0WVSv9jhlEP9E}hyYhبdYhiYhl6YE}},hlhht` ht#YEjYE35LW5h 5Lhu EhY5Lhh tWhht htzY=TtSWh,ht htSYLƀhE+ǹЋu Vu/ ;thhu ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWh8hhY}E5]E$ǙPǙPWhphphoY[^_U WVSPvhuEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIpid:%d Unable to read config file /dev/cd0/dev/cdrom/cdrom1/usr/bin/cdrecordcdrecord missing, please make sure it is installed Format complete with errors Format complete Blanking DVD /tmp/dvdrw%dauto-dev=%s-dev=1,0,0cdrecord -blank=fast -force %s 2>&1rBurning DVD cdrecord speed=8 %s - > %s 2>&1w%3d percent complete Finalization in Progress %d blocks written, %d seconds, %4.2f Mb/sec Burn failed, check media and device Device not correct size, bad media, aborting Summing DVD Unable to open %s Read error on DVD ERROR: Block %d not match here is bad block %d: end of bad block %d %d blocks summed, %d seconds, %4.2f Mb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb     P D<, @8 p(0Q8@@HPFX`6cdrom1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize ļ"2BRbr‰҉"2BRbrŠҊ"2BRbr%.7 <B J S Y _ļ hLnuztX8  $*06EQVahlrx|ؽXܓhL #L0*4;̉ Al8F KbTL\,cDj yR~<= | 2 <0ܞt(X(1y8AG$Xdnt,tyL ~ `DT܉dhrTl"d\Q \2h.v:̊\FKPZ `ܽ!htr(L||lL$llļx|l lp\ 'L5t9(.Gl@Nt`,mkz<\t<,7ܣМWܽ܊ 0,8dvdrw.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cdvdrw.c.X313lstatstatfstatmknodutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.stmpfdclosebuf1buf2strcatburn_pipe_edatasleepatofatoilog_stopsumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenconfig_ftppassfflushlog_childsct_memsizeopt_device_cleanup_startmakefilepopenosdep_opendeviceopt_filenumtest_name__iobtimesync_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_message_xttyname_ropenopt_fileblocks_initenvironlog_startlog_errorunlinkopt_tmpfileexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepcloseconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfcloseconfig_netmachinecheck_stopconfig_binpathmakeblock__fpstartfopenblockspermegfwritelog_iteration_enddo_dvdrwlseeksizedevicecheck_errormax_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  ` ( P1  6 <&D&M,S,Yļ,bLL-h-o.t/Dy/` G:84AAW0707070000000000531006440000000000030000010000001025235521200003300000046030root/home/sct/tests/floppyELF4H4 (44+++Pl+/usr/lib/libc.so.15:/$(&, 4-)9"1!8'+5602. 3   # *%70D  !P8&+P#07D>=EЋKQX`_0 lЊ2s0z0pt0@0pt P d\ !Љ$ `D% ,04@;`A  I@PZ`t`f'm|@p8closestrcat_edatawritesleepatofatoiwaitatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktimesync_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosecreatfprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.10 1(4 !.ľȾ̾%о Ծؾܾ$#"+,72  0 9  $(/,0-48<8@35%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%ľhx%Ⱦh%̾h%оh%Ծh%ؾh%ܾh%h%hp%h`%hP%h@%h0%h %h%h%h%h% h%h%h%h %h(% h0%$h8p%(h@`%,hHP%0hP@%4hX0%8h` %<hh%@hpjjRE] |u 0=t PthWSu Pj81 }tE @T>5T>581NujY hj~hjou jj^jj R:P YUe581hH2jYU+3 t hdhX>VhX> C3AH1Q VhX> G|C_ tjmYt -[^_UWVSpjjjj=Ct-3$X hX> YjYEEE3v3)5|P541|ǍP2G |k| PhS] k| ;tEh4* Yf t v ;5L1|S/Y9jY+EEE]uEu]E]E؃$uVhܧhX>WhX> YE[^_U(WVShl YjhP5؅},hP5h hX> hX>V Y3jFYE3!5|W541h 5|hS` $Wh hX> hX>YF5|hh0 Wh@hX>E hX>Y=tSWh\hX> hX>}Y|ƀhnYWhthX> hX>HYFV( Yt/ǹ uj u t G;=L1S(YjY+EEE]}Eu]E]E$uWhhX>UhX>Y[^_U WVSu uUvuu u Uuu ujUu uj Uu uj Uu uj U uYUEE jY=t5hP hĨPhԨPPE}u/Phبh jhk3EhY? ujhhM u93(3WuC0<1F;5|jhh uWhXBjhh uWhP=zjh h uWh0Ojh0h{ uWhB$jh@hP uWYD1jhTh' uWhCjhhh uWY0jh|h uWh=|5hh h7YPhh Eh YjhWT u P>j hW3 u  P>hWu @1hWu @1uhh QuY}t =0u,Phĩh jhi3=jY[^_UWVS!ou55hԩhf=uhh=t5u5YU댋jxY+EjgYEEPEPEEE=u#uuu5hh'u5uu5hhj hzuh htULE?uhP> PYE hYUwjoYEhEPhYhIY5<15hhhYh YU끍vX}t EE 5uh@hJh)YhYU렋J5h`h hYh_YqjYU뱍v05hxh hYhYUːuvYhYUvjY+Eu55hh:hh|=|E&E$E,tۃt߃tuh5| 5h5| 5h5| 5h̪5| uhԪ5| 5| YU`|u5hh|0 =xt-xPh|P|x3U땍v(jGY+E09E|3UЋMEE=D1u33D19E}3%=tuth4YU뫐 EUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =pu-3WhP1Px G|pE%P1Q1CE%P1CQ1CE%P1CQ1CE%P1CQ1CC[^_UWVS0v=luh`u ml}EPuQ3ygFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=\uz\PLYXhP4u5u X XhPu XXUf'=TuThLYOUԋ=HHhԨh"EEE}uhhr uYj hE}tEG? tj WE}tEWY]E8zEEE8Azjh\E_UW_uEE }hԨh  j hthh t h4ht! G? tWYEE9}EhDht& G? tWYE}u E U BShh 3S?Y}t}u9hԨhT@Shhw uSY3[^_UWVSuh\h hY} tuYEju E}}'uhبh? hY3,3} t E@E>E+ǹЋu Vu/ ;thhu ؁uuG9Eu}}3u,YG}E5@]E$ǙPǙPWhhh\hY}E5D]E$ǙPǙPWhhhoY[^_U WVSPvhuEEU}}tFE  EUjuuu EUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIUsage: %s test_directory errors ocurred, see above Child %d had errors, see above /dev/fd0135ds18/dev/rfd0135ds18Unable to create %s %d blocks written, %d seconds, %4.2f Kb/sec Unable to open %s Read error on floppy, block %d ERROR: Block %d not match here is bad block %d: end of bad block %d %d blocks summed, %d seconds, %4.2f Kb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb   X  |x|<, @8pĽQ̽@ԽܽF6floppyAbort received Writing Floppy Write error on floppy, possible bad or missing floppy Summing Floppy 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize Ɖ։&6FVfvƊ֊&6FVfvƋ֋&6FVfvX&/8=C0 KH T Z ` i|o v|{DDHLTX\` lpt x||!0<ALW]cgl{|`D(Г((0D  "P8',|b5P#:$@БHODV0e j=qЋw0`0 Њ20`0pt00ܡ01#,@1y8lcA0G$X41d81nsptx }P <1ȦTdr"@1Q  2D1-tv9H1B\NSL1b h!pzLЉ$P1P5`DP9l P=0=  @`P>+T>4  <|JX>N.\@cxjXB|mЍ>B8`t47C`CTW'|<,@4p<CL8floppy.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cfloppy.c.X320util.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosebuf1buf2strcat_edatawritesleepatofatoilog_stopwaitusagesumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsizeopt_blockswritten_cleanupkill_startmakefilepopenosdep_opendeviceopt_filenumtest_nameforktimesync_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_messagechildren_xttyname_ropenopt_fileblocks_initenvironlog_startdo_floppylog_errorexitmytableopt_filepath_DYNAMIC_endopt_rawfilepathlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepclosecreatconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopenlog_iteration_endlseekchildsizedeviceparentcheck_errormaxsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  XX ( x1 6 <00'DHH'M+S+Y+b||,h  -mo||.tDD/yD/ C:T(AA0707070000000000541006440000000000030000010000001025235521200003500000047524root/home/sct/tests/graphicsELF4K4 (44'''L \='/usr/lib/libc.so.157,"&$*1+'6 .5%)23-/ 0  !  (#4̋l0̉ 8 %#*L1D8\=?,E,KRY f܊2m0tD|̊t܉<<t< dl\L\ !l$ |!) 0| 8@?\ItOU|'\$r{܋L8closestrcat_edatasleepatofatoiwaitatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1D048.<&@1D HLPTX\`d+hl pt"x!| )*4/ - 6 ,#505(%,%0h%4h%8h%<h%@h %Dh(%Hh0%Lh8p%Ph@`%ThHP%XhP@%\hX0%`h` %dhh%hhp%lhx%ph%th%xh%|h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0jjRE] |u D=<t Pth-WSu Pj}tzE @55VujY hjhju jj:) P YUq5hnjDYULj`YEE3  t hԣh?Vhl3A&<u*Gh5hf Yj Y\VYG|3XjEP4 E%t$GPhh VhG|la jNY+EE tja Yt<9E[^_U WVSjjjj=lt-3$<tj4j YG|jh1=t 5YjYjVY_UWr EhY3<uWhhJ hqYWhhhh'hDh h5Y5hhk u59Y؅t!EWhHh hY u u u Yt F'E[^_UWVSu uUvuu u Uuu ujUu uj Uu uj Uu uj U uYUE8E 40,jhY(=4t54hXPR hdP<htP8E}u/Phxh( jh(k3Eh(Y'? ujhh( u973(`3WuC<F;5|jhh( u:Whjhh(i u7Whrjhh(> u7WhHGjhФh( u7Whhjhh( u8WYjhh( u8Whpjhh( u9WY@jhh(k u9Wh`t58h0h( h(YPh(h( Eh(Y(jh<W u j hHW u  hTWu h\Wu uhh( QuY}t =<u,Phdh( jh(i3=jY[^_UWVS!o(u5854hth(=$uhh($=$t5$u5$YU댋j0Y+(EjYEEPEPEEE= u#uuu58hh 'u5 uu58hh j h buhh \ULE?uhPv PYE h YUwj'YEh(EPh(Yh IY0558hh(h(Yh  YU끍vX0}t EE5uhh(h()Yh YU렋J5hh(; h(Yh _Yqj6YU뱍v05hh( h(Yh YUːuvYh YUvjY+(Eu5854h0hrh@hp=E&EE0tۃt߃tuhD5 5hP5 5h`5 5,hl5 uht5v 5YU`u54hhh =t-xPhP|3U땍v(jY+(E<9E|3UЋMEE=u339E}3%= u hYU뫐 E Uv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =u-3WhP G|E%CE%CCE%CCE%CCC[^_UWVS0v=uhu m}EPuQ3yFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=uzPLYhP,u5u  hPu Uf'=uhYUԋ=(hthEEE}uhh(z uOYj h(E}tE(G? tj WkE}tEWY]EzEEEAzjhE_UW_uEE }hthj h(thh(t hԦh(t! G? tWYEE9}Ehh(wt& G? tWYE}u E U BShh( 3SY}t}u9hth@Shh( uSRY3[^_UWVSuhh( h(Y} tuYEjuE}}'uhxh(w h(Y3,3} t E@E>E+ǹЋu Vu/ ;thh(u ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWhh(h(Y}E5]E$ǙPǙPWh@h(Hh(oY[^_U WVSPvhuEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIUsage: %s test_directory errors ocurred, see above Child %d had errors, see above x11perf %s %s/x11perf %s -repeat 1 -time 2 2>&1rtest %s failed %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb     $`̇ć (4<HT`htĻԻ $0<HP\hpx̼ؼ ,<HT`pȽؽ ,<LXhxо ,8HP\htȿԿ $0@P`p ,<LXhx$<,,4<DL T@8\pdlQt@|F6graphicsAbort received -dot-rect1-rect10-rect100-rect500-srect1-srect10-srect100-srect500-osrect-osrect10-osrect100-osrect500-tilerect1-tilerect10-tilerect100-tilerect500-bigtilerect1-bigtilerect10-bigtilerect100-bigtilerect500-seg1-seg10-seg100-seg500-seg100c1-seg100c2-seg100c3-dseg10-dseg100-ddseg100-line1-line10-line100-line500-dline10-dline100-ddline100-wline10-wline100-wline500-wdline100-wddline100-circle1-circle10-circle100-circle500-dcircle100-ddcircle100-wcircle10-wcircle100-wcircle500-wdcircle100-wddcircle100-pcircle10-pcircle100-fcircle1-fcircle10-fcircle100-fcircle500-fcpcircle10-fcpcircle100-fspcircle10-fspcircle100-ellipse10-ellipse100-ellipse500-dellipse100-ddellipse100-wellipse10-wellipse100-wellipse500-wdellipse100-wddellipse100-pellipse10-pellipse100-fellipse10-fellipse100-fellipse500-fcpellipse10-fcpellipse100-fspellipse10-fspellipse100-triangle1-triangle10-triangle100-trap10-trap100-strap10-strap100-ostrap10-ostrap100-tiletrap10-tiletrap100-complex10-complex100-ftext-tr10text-tr24text-polytext-fitext-tr10itext-tr24itext-scroll10-scroll100-scroll500-copywinwin10-copywinwin100-copywinwin500-copypixwin10-copypixwin100-copypixwin500-copywinpix10-copywinpix100-copywinpix500-copypixpix10-copypixpix100-copypixpix500-copyplane10-copyplane100-copyplane500-putimage10-putimage100-putimage500-getimage10-getimage100-getimage500-noop-atom-prop-gc-create-ucreate-map-unmap-destroy-popup-move-umove-movetree-resize-uresize-circulate-ucirculateStart x11perf 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize BRbr‰҉"2BRbrŠҊ"2BRbr‹ҋ  (ć1̇:,?E M V \ b kqx$}   .: ? J`U$[(a(e(j(y,048`Ԑ|`D̋l0 ̉ 8 b##( $.L5D<<KxP\=W,]@n,t{ ܊240ԛD̊t܉H< P<y $#-2t7<D KUh<Tmtyd`rl"TQ\2$v L\ !(l2 L<l$AIV_dm|t`  |  .@$m0_h)3\=tCDJ7\bhhԠslzșW|'$܋pL8graphics.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cgraphics.cutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosestrcat_edatasleepatofatoilog_stopwaitusageatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsize_cleanupkill_startpopenosdep_opendevicetest_nameforktime_xgetlogin_rgetpidtest_pipeconfig_runtime_strsumr_etextreadsprintfsct_cpucount_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_donedo_graphicsconfig_errormaxlog_messagechildren_xttyname_ropen_initenvironlog_startlog_errorexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepcloseconfig_enabledtest_dirfprintfbufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopentnameslog_iteration_endlseekchildsizedeviceparentcheck_errormaxsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  p ć( ̇`1,, 6 <#D#M'S'Y'b(h*9o$$3t31y3 B>D1E0707070000000000551006440000000000030000010000001025235521300003300000044674root/home/sct/tests/memoryELF`4LF4 (44)))ع 0)ع/usr/lib/libc.so.159.#'%+3-(8!0 7&*45/1, 2   " )$60`0ȼ  8 P%P#*p18D?=FL`R0Y` m 2t@0{Lt0@Ћt ѩ dЉ\ !$ع!(Њ005< Dp@KUt[Pa'h~@8closestrcat_edatasleepatofatoiwaitmallocatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatrandpclosefprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1L  0' #$3( , 048<@DHLP,T"X!\*`+d6hl1ptx| / 8 .-$725%% h%h%h%h%h % h(%$h0%(h8p%,h@`%0hHP%4hP@%8hX0%<h` %@hh%Dhp%Hhx%Lh%Ph%Th%Xh%\h%`h%dh%hhp%lh`%phP%th@%xh0%|h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hhjjRE] |عu L=t PthЩ WSuS Pju uUvuu u U}tzE @55ujXY h jvh jgu jjV: PS YUq5hإ6jYU+3w t hh Vh t3A<u*Gp5p YjY2VVYG|3XjEP4 E%t$GPhhU Vhg G|t N tj Yt [^_UWVSpjjjj=tt-3$<tj4jYG|jhj~ Yj6Y_UW=ؼvAܼ }fEf fEm]mEԼ5Լ55h0hh YH JHfJfHPhThRh\h>hhh*hphܼttth% Y}fEf fEmrs%fum]mEм-мȼ$5мIYȼ=ȼu -м=ȼtӡм ̼ؼмP5мhxhhUYjYE3E EEEy؃=̼u1=̼ ȼAC=u? u . t0j}YEE+E<~3ۃ=tjYm3[^_UWVSFu uoUvuu u` Uuu ujUu uj Uu uj Uu uj U uYUE@E <84jLY0=<t5<hP hPhP|E}u/Phh0Z jh0k3Eh0;Y/? ujhԦh0) u9?3(`3WuCDF;5|jhh0 uBWhjhh0 u?Whjhh0 u?WhPjhh0W u?Whp`jh(h0, u@WJYjh<h0 u@Whx jhPh0 uAWYHjhdh0 uAWhd5@hxh0` h0cYPh0h0b Eh06Y0jhW0 u j hW u  hWu hWu uhh0 QuY}t =Du,Phh0X jh0i3=jVY[^_UWVS!o0u5@5<hh0=,uhȧh0,=,t5,u85,:YU댋jY+0EjYEEPEPEEE=(u#uuu5@ḩh(>'u5(uu5@hܧh(j h(uhh(PULE?uhP PYE $h(YUwj YEh0EPh0Yh(IY855@hh0;h0Yh( YU끍vX8}t EE5$uh(h0h0)Yh(YU렋J 5 hHh0 h0Yh(_YqjY U뱍v05 h`h0A h0Yh(YUːuvYh(YUvjtY+0E u5@5<hxh hh =E&EE8tۃt߃tuh5 5 h5 5$h5 54h5 uh5 5\YU`u5<hȨh =t-xPhP|3U땍v(jY+0ED9E|3UЋM$EE=u339E}3%=uhYU뫐 E(Uv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =u-3WhШP G|E%CE%CCE%CCE%CCC[^_UWVS0v= uhu m }EPuQ3yFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=uzPLYhبPpu5u  hP9u Uf'=uhYUԋ=0hhNEEE}uhh0 u#Yj h0E}tE0G? tj WE}tEWY]EȥzEEEȥAzjhE_UW_uEE }hh8j h0thh07t hh0t! G? tWJYEE9}Eh,h0t& G? tWYE}u E U BShh0 3SkY}t}u9hh<?@Shh0 uS&Y3[^_UWVSuhDh0 h0Y} tuYEjuE}}'uhh0 h0Y3,3} t E@E>E+ǹЋu Vu/ ;thh0u} ؁uuG9Eu}}3uXYG}E5Х]E$ǙPǙPWhPh0h0Y}E5ԥ]E$ǙPǙPWhh0h0oY[^_U WVSPvhuuEEU}}tFE  EUjuuugEUUE9Uu9Et} *E Ejuu< ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' A>AA$IIUsage: %s test_directory errors ocurred, see above Child %d had errors, see above RAM size: %.0f, %d mb OS type: OSR5UnixWare 7OSR6UnknownMemory allocated for test: %d, %d mb%s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb   ЩD  p<, ( 0@88p@HQP@X`hFpx6memoryAbort received 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize عƉ։&6FVfvƊ֊&6FVfvƋ֋&6FVD&/8p=`C Kإ T ZЩ `ع i`ov{ȼȼ̼мԼؼܼ܌ $* 0 6<BHNT Z i$u(z(`,000048<@`Ԓ| `D *107`0>ȼE  K8PPUb^P#c$ippwD~D=H`0  24@0ԝLt0 P# -P9B@G`yNЋT$eotty <Tѩ d`r"TQ2 v,5Љ\AF L!Tl^ Lh$muع~ЊdЩ 0  .p@ x"4$m?̍>HpWaktq7PpԢtțW'@x8memory.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cmemory.c.X510.X509.X508.X507.X506.X505.X504ttyname_rgetlogin_rutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosestrcat_edatasleepatofatoilog_stopwaitusagemallocatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsize_cleanupkill_startpopenosdep_opendevicetest_nameforktime_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucount_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_messagechildren_xttyname_ropen_initenvironlog_startlog_errorexitmytable_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finido_memoryrandsct_ostypepcloseconfig_enabledtest_dirfprintfbufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopenlog_iteration_endlseekchildsizedeviceparentcheck_errormaxsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  DD ( p1pp 6`` @<%8Dإ%M)SЩ)Yع)b``*h*o,tȼ,0-y,P K8 $>>0707070000000000561006440000000000030000010000001025235521300003200000041064root/home/sct/tests/mkimgELFd4>4 (44Q%Q%T%T3T%T/usr/lib/libc.so.154* $"()%3,2#'/0+- .    &!1tԊ0(d !8&$+24D9Ċ=@FdLS$ZH gD2nT0u}4tԈTt  Q4dĉ\D@ `!$T 4ԉ$ ,t@3=$tCTIx_`hpDx8closestrcat_edatawritesleepatofatoiatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenfflush_cleanuppopentimesync_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenlseek_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1,$  ! ķ'ȷ(̷1зԷط-ܷ + 3 * ) 2$.5|%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%ķh%ȷh%̷h%зh%Էh%طh%ܷh%hp%h`%hP%h@%h0%h %h%h%h%h%h% h%h%h %h(%h0% h8p%$h@`jjRE] |Tu =`Ԉt PKt?hP5>WSu P6j}tE @hdE p u 4hhE pu E pY5h`2Uq h|YhYjqYUې:hl5^t9hh5r ؅}5hġIjYjWYE3EZ3KhWjh(2 |0hh(S+ =tWhܡjYGF|E9E|SYjY+EE}uEE]u]E]E$5uhij/Y[^_U WVSu uUvuu u Uuu uj~Uu ujq Uu uje Uu ujY U uRYUEE |x4tjxYp=|t5|hP h$Ph4PE}u/Ph8hp jhpk3EhpYo? ujhLhp u93(ܵ3WTuCF;5\|jh\hpT uWh,Mjhphp) uWh "jhhp uWhjhhp uWhjhhp uWvYjhhp uWhxjhȢhpT uW"Yjhܢhp+ uWh$5hhp hpYPhphp EhpYpjhW u  j hW u   hW<u hW u uhhpM QuJY}t =u,Ph$hp jhpi3=jY[^_UWVS!opu55|h4hp^=luh@hpSl=lt5lu5lYU댋j@Y+pEj/YEEPEP~EEE=hu#uuu5hDhh'u5huu5hThhj hh"uhlhhULE?uhpP6 PYE dhhYUwj7YEhpEPhpYhhIYx55h|hphpYhh YU끍vXx}t EE5duhhpBhp)YhhYU렋J`5`hhp hpYhh_YqjFY`U뱍v05`hأhp hpYhhYUːuvYhhYUvjY+pE`u55|hh`2hh`0\=\E&E E(xtۃt߃tuh5\ 5`h5\~ 5dh 5\e 5th,5\L uh45\6 5\YU`\u5|h@h\( =Xt-xPh\P|X3U땍v(jY+pE9E|3UЋMdEE=u339E}3%=TuTh0YU뫐 EhUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =Pu-3WhH Pp G|PE% !CE% C!CE% C!CE% C!CC[^_UWVS0v=Luh@u mL}EPuQ3yGFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=<uz<PLY8hPPu5u 8 8hXPuu 88Uf'=4u4h,Y/Uԋ=((ph4hdEEE}uhhp uYj hpRE}tEpG? tj W+E}tEWcY]EPzEEEPAzjhXE_UW_uEE }h4hlj hpnththpt hhpt! G? tWvYEE9}EhhpWt& G? tW=YE}u E U BShhpX 3SY}t}u9h4h@Shhp uSY3[^_UWVSuhhp hpY} tuYEjuE}}'uh8hp7 hpY3,3} t E@E>E+ǹЋu Vu/ ;thhpu ؁uuG9Eu}}3uYG}E5X]E$ǙPǙPWhȤhpThpY}E5\]E$ǙPǙPWhhphpoY[^_U WVSPvhuEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIMaking image size %d mb Usage: mkimg imgfile mb mb can be cd (for 649 Mb) or dvd (4500 Mb) Unable to create %s write error on block %d %d secs, %d mb, %5.2f mb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb  @ P  xH|tx<, @8pQȶ@жضF6cddvd/dev/null1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize Tڈ *:JZjzʉډ *:JZjzʊڊ *:JZ%t.|7Ĉ<dBH J` S@ YP _T hܵnduxz((,48<@ LPTX\ \``(d4h9hDOlUp[p_pdpst|x|\ܵ|`D$tԊ0(d  8$b#t')04D7FMLQĊ=X^odu|$H D2ܗT0|4tȗԈdy4$!Tt& +8 ?RTWQ^4cdkrxĉ"Q<2v\D@ `!ȓL$  +T449BԉI X`qP w( $ (ț.t@,̖mT $tP70T6|ApWPxf`oX}D8mkimg.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cmkimg.cutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosestrcat_edatawritesleepatofatoilog_stopusageatexitprintfconfig_runtimemkimgmainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitox___Argvstrlenconfig_ftppassfflushlog_childsct_memsize_cleanup_startpopenosdep_opendevicetest_nametimesync_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucount_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_message_xttyname_ropen_initenvironlog_startlog_errorexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepcloseconfig_enabledtest_dirfprintfbufsct_osversionfcloseconfig_netmachineopt_sizecheck_stopconfig_binpathmakeblock__fpstartopt_filenamefopenlog_iteration_endlseeksizedevicecheck_errormax_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  @ tt( ||H1Ĉ6dd <HH!D``!M@@%SPP%YTT%bܵ%hdd&oxx't((( 1y((P Bx2880707070000000000571006440000000000030000010000001025235521200003400000065650root/home/sct/tests/networkELFt48h4 (44???dF?/usr/lib/libc.so.15ZEBNY:4!@1G%*CPD<M;X-8HO+WJV5?RSAFI0Q&L9  )".$6(#/7 =' 3 K>T,U2t4Ԓ0$ $8).d54#:AԐDHԑ=OԏdV\b0pt}$ 20d#t$d0(t t$D.49d @GDLdT0b4j$r4}0ď0\4 4!@!$(0D<Ď$4x$0DT&T3: B@ID,PZtt`nđ7vd|dTdĐ'Tl4ԎTĒ8close_xsocketstrcat_edatasleepatofatoi_xrecvwaitatexitprintfstrchr_xsendfputsfgets_xgetpeername_xgetsockoptstrcmpstrstr_lib_versionmemcmp_xsetsockoptstrcpy___Argvmemcpystrlenwaitpidfflush_cleanupkillsocketpairlistenpopen_xbindresvportforktime_xgetlogin_r_xrecvmsggetsockoptgetpid_etextreadsprintf_xsetpeername_fxstat_xmknodsetsockopt_xsetsocknamerecv_xttyname_ropen_initenviron_s_sockdebugshutdownsendinet_addrexit_xrecvfrom_DYNAMIC_end_xgetsockname_xstat_lxstat_xgetaddrinfo_xlisten_xsocketpairpclosefprintffclosesocket__fpstartfopen_xgetnameinfostrncpylseek_xbind_xsendmsggethostbynamesignal_xsendto_GLOBAL_OFFSET_TABLE__environ_nuname_xconnectlseek64_xacceptctime_r_xshutdown/usr/lib/libsocket.so.2/usr/lib/libc.so.1@6 H:TUWM >;&Q N$(',B0 481< @8DH/LYP7TXG\C`d"h0l,pAtJxP| +# 9O$K %2.-?@(IFXE!D 3*V L5%%h%h%h%h%h %h(%h0%h8p% h@`%hHP%hP@%hX0%h` % hh%$hp%(hx%,h%0h%4h%8h%<h%@h%Dh%Hhp%Lh`%PhP%Th@%Xh0%\h %`h%dh%hh%lh%ph%th%xh%|h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p% h@`%hHP%hP@%hX0%h` % hhjjRE] |u =4t Pth5+WSu Pj uYUuu ujUuu ujUuu ujUuu ujUuu ujU uuuuu ujuUېuu ujfU uuuuu ujMUېuu uj>U?=@}uuuu ujuuuu uU뼋-=@}u uj u uU9=@}uuu ujuuu uU9=@}uuu ujuuu uU?=@}uuuu ujuuuu uU뼋-=@}u uj u uU3=@}uu ujmuu uj Uȋ9=@}uuu ujNuuu uHUu uj= Uuu uj.Uuu ujUuuu uj Uv#u uuuuu uj U؋ 8}tzE @P5P5 ujYfhԙjhԙju jjz:PYUq5 hйZj@YU43=(t0t hhT$VhTj3A 0<0u*G5+YjY1VYG|3XjEP40 0E%t$GPhhTp VhTG|&tj4Yt [^_UWVSpjjjj=t-3$<0tj40jYG|jh@jYjY_UW=PY5Ph(hD Yj[YjWYu$uvuj3Yj/YujYjY_UWIEjjj =D=DuhPYE%fEEEEhXYẼ}uhhXYE}u'hXh4hT< hTCYEEE@EE@ Euuu EEẺEEMjEP5D t'hXhLhT hTY|jYu'hXhdhT hTYIhHhhT^ hTYujpY=KthlBYhhhT hTGYuj&Yu}uOhD hhT hTYujYu5D/Y3hhThTYuHjYu7u)jjj ==uh|=YEjEPjh5PthYjh5 t'hXhhT hTY}u!hD hԺhT (EhD hhTn EhTYu&jxY=thJYjYEEEE5u5h}?53oVP5 uWhhT hTY}hhThTY EE+}tN5hh uh hT+ hT2Y=tWuh<hT hT Yƀh YuhThT hT YEuYtH5h5T ;=t%uhlhTq hTx Y5EE=u3}ujYEE+E~E!E|tEȋE9E}uEȣ(jY+EEE]]Euu]E]E$u}tPuhhThT Y}u3(9Et) u hhTkhTr YE5Y5DYDEFE=Dt 5DYD=t 5YE[^_UhWVS=$u9hP5D tuh Y3*h$P8P9Y$}hd Y3p-t th0@ Y3LjPP ƅ ƅƄ5PYj P؅u}tPusjPP{ ƅCPPAPBYPP\uQtTh=P5DF tuhd. Y3=ƍ thTh$PY[^_UWVSE+ǹЋu Vu/ ;thhtu ؁uuG9Eu}}3uYG}E5ȹ]E$ǙPǙPWhhthtY}E5̹]E$ǙPǙPWhhthhtoY[^_U WVSPvhuEEU}}tFE  EUjuuucEUUE9Uu9Et} *E Ejuu8 ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIUsage: %s test_directory errors ocurred, see above Child %d had errors, see above sct.%s.%dUnable to resolve: %s Connect to %s failed Welcome message missing from %s USER %s PASS %s DELE %s TYPE I Unable to connect to: %s RETR %s STOR %s Unexpected EOF on recv Unexpected connection drop ERROR: Block %d not match here is bad block %d: end of bad block %d Send error on block %d %d blocks %s, %d seconds, %4.2f Mb/sec ERROR: wrong # blocks received PASV %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb   ؈8 + p<, @8p (Q0@8@HFPX6networkAbort received Unable to create socket Protocol error Unable to create data socket Unable to create data socket Protocol error receivedtransmittedConnection closed. Protocol error, response too short, connection closed Protocol error, bad response 1, connection closed Connection closed Protocol or socket error PASV protocol error. Wanted (x,x,x,x,x,x) send:recv:recv: <>1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize ʎڎ *:JZjzʏڏ *:JZjzʐڐ *:JZjzʑڑ *:JZjzʒڒ *:JZj 8؈'09>tD Lй U [ a jp8w|$$(*!dD(@:%x4/0F;@A@G|4O4F[c'j̔r'{dD$,08<@D PTX\``ddhl"l-x8p>tDtHtMt\xe|py0Цx\t4Ԓ0$ 8 bd 4#%h$+2ԐD9HԗMԑ=Tԏd[arx0t$ 2L$F0d#tl;(/89hEN$Sa\d0g(ntyu{t$ tD4d $TTDd0xr+44<"I(WlQk$s4~2 ,v00ď0\4 4!@!$(8L"0'D<1Ď$6LA4LDTD ajxoxD|N$0DHT THLP& .<T@8.N@Uԙx\Xns<m~GIJD,tt7đ7d dTd)W8Đ'?HTlQg4pȸ~ԎTĒ8network.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cnetwork.c.X615.X525getnameinfogetaddrinfosetpeernamesetsocknamebindresvport_socketpair_socket_shutdown_setsockopt_send_recv_listen_getsockoptsendmsgsendtorecvmsgrecvfromgetsocknamegetpeernamebindacceptconnectunameutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclose_xsocketbuf1buf2strcat_edatasleepatofatoilog_stop_xrecvwaitusageatexitprintfconfig_runtimemainstrchr_xsendfputsconfig_cdpatternfgets_xgetpeername_xgetsockoptstrcmpstrstr_lib_versionmemcmpparse_configitoaprotsend_xsetsockoptprotrecvstrcpyitox___Argvmemcpystrlenwaitpidftp_pasvconfig_ftppassfflushlog_childsct_memsize_cleanupkillcallrecvsocketpairlisten_startpopen_xbindresvportosdep_opendeviceopt_filenumtest_nameforktime_xgetlogin_r_xrecvmsggetsockoptgetpidconfig_runtime_strsumr_etextreadsprintf_xsetpeernamesct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodsetsockoptcheck_donexferfileconfig_errormaxlog_message_xsetsocknamechildrenrecv_xttyname_ropenopt_fileblocks_initenviron_s_sockdebuglog_startshutdownlog_errorsendinet_addrexitdo_network_xrecvfrommytableopt_filepath_DYNAMIC_endlog_infok_scallsend_xgetsockname_xstatconfig_ftpuser_lxstat_xgetaddrinfoconfig_usbdevice_xlisten_finisct_ostype_xsocketpairpcloseopt_logprotocolconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfclosesighupconfig_netmachinek_dscheck_stoprun_testconfig_binpathmakeblocksocket__fpstartfopenblockspermeg_xgetnameinfolog_iteration_endstrncpylseekchildsizedevice_xbindparent_xsendmsggethostbynamecheck_errormaxsignalpasv_sin_xsendto_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nuname_xconnectlseek64_xacceptconfig_cddevicectime_r_xshutdown.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/i386/uts/net/socket.vh /main/uw713up/3$Id: byteorder.h,v 1.1 1997/01/08 16:23:22 dme Exp dme $@(#)unixsrc:usr/src/i386/uts/net/inet/byteorder_f.h /main/1@(#)bitypes.h 1.2@(#)unixsrc:usr/src/common/uts/net/netconfig.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/sys/cdefs.h /main/1@(#)unixsrc:usr/src/common/uts/net/convsa.h /main/uw713up/1$Header: $@(#)bitypes.h 1.2@(#)unixsrc:usr/src/common/head/netdb.vh /main/uw713up/1@(#)bitypes.h 1.2@(#)unixsrc:usr/src/common/head/sys/cdefs.h /main/1@(#)unixsrc:usr/src/common/uts/net/inet/in.h /main/uw713up/4@(#)unixsrc:usr/src/i386/uts/net/inet/in_f.h /main/uw713up/1$Header$$Id: $@(#)bitypes.h 1.2@(#)unixsrc:usr/src/i386/uts/net/inet/in6_f.h /main/uw713up/1@(#)bitypes.h 1.2$Id: byteorder.h,v 1.1 1997/01/08 16:23:22 dme Exp dme $@(#)unixsrc:usr/src/common/uts/io/stream.h /main/uw7_uk/borealis_nj/5$Header: $@(#)unixsrc:usr/src/common/uts/proc/cred.h /main/1$Header: $@(#)unixsrc:usr/src/i386/uts/io/strmdep.h /main/1$Header: $@(#)bitypes.h 1.2@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af) D 88؈+  (  p16ttD&<9Dй9"M?S?Y?b?h88@oBDt$$DTAy$D[Sh\]4 0707070000000000601006440000000000030000010000001025235521300003300000040050root/home/sct/tests/ostypeELF4<4 (44###Գ,#Գ/usr/lib/libc.so.152(" &'#1*0!%-.)+,     $/ЊP0 8 Љ%,D3@=:@FЈMT a2h0owt~ ppt` ѣd \ !$Գ0 @` !@(2t8>T]Pem08closestrcat_edatasleepatofatoiatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenfflush_cleanuppopentime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenlseek_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1*"  %$&(/,048+<@DHL P)TX \`1d hl(pt'x| 0,5%%h%h%h%h%h % h(%h0%h8p%h@`%hHP% hP@%$hX0%(h` %,hh%0hp%4hx%8h%<h%@h%Dh%Hh%Lh%Ph%Thp%Xh`%\hP%`h@%dh0%hh %lh%ph%th%xh%|h%h%h%h %h(%h0jjRE] |Գu =t Pkt_hУU^iWSu PVju} NGh77u $h7u N=t=t~^_UWVv\ME4hY;hY.hY!hYEtăt̃tjYYU뜋"Euh Uj+YU8EPEPuh$!}tuh8 U6hLYhdYhYhYjYUŐu uUvuu u Uuu ujUu uj Uu uj Uu uj} U uvYUEE Xj\Y=t5hPF hP0hP,E}u/Phh jhk3EhY? ujh̠h u93(\3WuCF;5ܴ|jhܠh uWhjhh] uWhVjhh2 uWh+jhh uWhjh h uWYjh4h uWhjhHh uWYjh\h_ uWh X5hph hYPhh EhYjh|W u j hW u  hWu hWu uhh QuY}t =u,Phh jhi3=jVY[^_UWVS!ou55hh=uhh=t5u5YU댋j$Y+EjYEEPEPEEE=u#uuu5hġh'u5uu5hԡhj hfuhh`ULE?uhPj PYE hYUwjYEhEPhYhIY55hhhYh YU끍vX}t EpE|5uh hvh)YhYU렋J5h@h/ hYh_YqjYU뱍v05hXh hYhYUːuvYhYUvjY+Eu55hphfhhd=E&EEtۃt߃tuh5 5h5 5h5 5h5 uh5z 5YU`ȼu5hhȼ\ =ļt-xPhȼP|ļ3U땍v(jY+E9E|3UЋMEE=u339E}3%=uhYU뫐 EUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =u-3WhȢP G|E%CE%CCE%CCE%CCC[^_UWVS0v=uhu m}EPuQ3yFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=uzPLYhТP0u5u  hآPu Uf'=uhYUԋ=hhEEE}uhhN uYj hE}tEG? tj WoE}tEWY]EzEEEAzjh̶E_UW_uEE }hhj hthht hht! G? tWYEE9}Eh$ht& G? tWYE}u E U BShh 3S+Y}t}u9hh4@ShhS uSY3[^_UWVSuh<h hY} tuYEjuE}}'uhhk hY3,3} t E@E>E+ǹЋu Vu/ ;thhu= ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWhHhhY}E5]E$ǙPǙPWhh<hoY[^_U WVSPvhu5EEU}}tFE  EUjuuu'EUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $II%s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb u  У  8H@<,  @8$p,4Q<@DLTF\d6-c-vOS_OSR5 OS_UNIXWARE7 OS_OSR6 Unknown %s Physical CPUs: %d Logical CPUs: %d usage: ostype [-c] [v] -c displays the count of cpus -v displays the os version (like uname -v) ostypes are OS_UNIXWARE7, OS_OSR5, and OS_OSR6 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize Գƈֈ&6FVfvƉ։&6FVfvƊ֊&@/H8=C K T ZУ `Գ i\ov{ ļ ȼ*6;F@QW]afu~ܴ\Ѝ|\@$ЊP0  8ЉГb=%,D3B|G@=NTekЈry 20 ft 0ypl$|pt#0` 7JTOѣV[dc@rp x"4Qt2ȑv\ !LL $Գ$-04C@K \У b`mt` .@mt7 B'W6LUt,_mPu}08ostype.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.costype.cutil.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosestrcat_edatasleepatofatoilog_stopusageatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configitoastrcpyitoxostype___Argvstrlenconfig_ftppassfflushlog_childsct_memsize_cleanup_startpopenosdep_opendevicetest_nametime_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucount_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_message_xttyname_ropen_initenvironlog_startlog_errorexitmytable_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepcloseconfig_enabledtest_dirfprintfsct_osversionfcloseconfig_netmachinecheck_stopopt_cconfig_binpathmakeblockopt_v__fpstartfopenlog_iteration_endlseeksizedevicecpucountcheck_errormax_GLOBAL_OFFSET_TABLE__environosversionosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713upacomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)    @@( HH816 < D M#SУ#YԳ#b\\$h$o&t')y'0 B1Y770707070000000000611006440000000000030000010000001025235521300003500000045340root/home/sct/tests/usbflashELF4pG4 (441*1*4*40=4*4/usr/lib/libc.so.157,"&$*1+'6 .5%)23-/ 0  !  (#4\|04 8 %#*L1D8l=?<EKR̋YХ fL2m 0t|t̉L<܉,tl܊ 1<d|\  d!l$ 4d!)0 8,@?\ItOU|'\xrd{̊܋\8closestrcat_edatasleepatofatoiwaitatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenwaitpidfflush_cleanupkillpopenforktime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosefprintffclose__fpstartfopenlseeksignal_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1.&1  #ĽȽ̽нԽ"ؽ!ܽ )*4/ -  6 , +$(,5005|%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%Ľh%Ƚh%̽h%нh%Խh%ؽh%ܽh%hp%h`%hP%h@%h0%h %h%h%h%h%h% h%h%h %h(%h0% h8p%$h@`%(hHP%,hP@%0hX0jjRE] |4u =d<t Pth0WSu Pj8h}tE @T5T58ujY h|jh|ju jjjj :IP YUe58hbj8YU+33 t hhX5VhX 3AH} h  Y ~ h8 Y u=L Fcp}u3[^_U WVShPhHhX hXz YjhP}},hPhhhX hXC Y3jOYE35W54h 5hV) 5hh Wh|hXM hXY=tSWhhX& hXYƀhzYWhhX hXTYCS4 Yt/ǹu u m t G;=LV`Yj(Y+EEE]]}Euu]E]E$uWhȦhXQhXY[^_U WVSu uUvuu u Uuu ujUu uj Uu uj Uu uj U uYUEE jY=t5hP hPhP<E}u/Phh jhk3EhY? ujh(h) u93(3WuC<F;5`|jh8h uWhXjhLh uWhPVjh\h uWh+jhlhW uWhjh|h, uWYDjhh uWhjhh uWYjhh uWhX5ḩh h#YPhhb EhYjhاW0 u Pj hW u  PhWu @hWu @uhh Qu~Y}t =u,Phh jhi3=jY[^_UWVS!ou55hhb=uhh=t5u5YU댋jY+EjYEEPEPEEE=u#uuu5h h'u5uu5h0hj hFuhHh@ULE?uhLP: PYE |hYUwjYEhEPhYhIY5<5hXhhYh YU끍vX}t EE5|uh|hFh)YhYU렋Jx5xhh hYh_YqjYxU뱍v05xhh hYhYUːuvYhYUvjY+Exu55h̨hx6hܨhxtt=tE&E E(tۃt߃tuh5t 5xh5t 5|h5t 5h5tp uh5tZ 5tYU`tu5hht, =pt-xPhtP|p3U땍v(jcY+E9E|3UЋM|EE=Du33D9E}3%=lulh0YU뫐 EUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =hu-3Wh$PPt G|hE%PQCE%PCQCE%PCQCE%PCQCC[^_UWVS0v=duhXu md}EPuQ3y_FGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=TuzTPLYPh,Pu5u P Ph4Pu PPUf'=LuLhDYGUԋ=@@hh@EEE}uhh> uYj hvE}tEG? tj WOE}tEWY]EإzEEEإAzjhXE_UW_uEE }hhHj hthPht hpht! G? tWYEE9}Ehh{t& G? tWYE}u E U BShh 3S Y}t}u9hh@ShhC uSY3[^_UWVSuhh hY} tuYEjuE}}'uhh; hY3,3} t E@E>E+ǹЋu Vu/ ;thhum ؁uuG9Eu}}3uXYG}E5]E$ǙPǙPWhhXhY}E5]E$ǙPǙPWhܩh hoY[^_U WVSPvhuUEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIUsage: %s test_directory errors ocurred, see above Child %d had errors, see above autoSumming Flash Memory Device %s Unable to open %s ERROR: Block %d not match here is bad block %d: end of bad block %d %d blocks summed, %d seconds, %4.2f Mb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb   0  x`̇ć̻x<, @8pQȼ@мؼF6usbflashAbort received No valid USB devices found /dev/fd1/dev/fd0/dev/dsk/c2b0t0d0p0/dev/dsk/c3b0t0d0p0/dev/dsk/c4b0t0d0p0Floppy device found USB device too small, < 16 Mb, ignoring USB device too large, > 10 Gb, possible hard drive, ignoring 1 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize 4BRbr‰҉"2BRbrŠҊ"2BRbr‹ҋ  (ć1̇:,?EХ M V  \0 b4 kqhxx}44<@DLPTX dh lptt%x+x:|FKVagmqv`Ȓp\ |04  &8+ 0b9#>$DlLLSDZixnl=u<{h̋Х L20\` 0t̉LL |,0><G܉LySY$j4v8,tl܊ <hT1<dr,"@Q2*D:vFHO|\[`Lo  ud!}LLl$PP4d P0  PT! )7X;L.I,@P|xWXiPmt<>}؞\tԙ7W|'xdܤ&̊.܋6F\8usbflash.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cusbflash.c.X336.X320util.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosebuf1buf2strcat_edatasleepatofatoilog_stopwaitusagesumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpdo_usbflashstrstr_lib_versionmemcmpparse_configfinddeviceitoastrcpyitox___Argvstrlenwaitpidconfig_ftppassfflushlog_childsct_memsizeopt_blockswritten_cleanupkill_startpopenosdep_opendeviceopt_filenumtest_nameforktime_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_messagechildren_xttyname_ropenopt_fileblocks_initenvironlog_startlog_errorexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finisct_ostypepcloseconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfclosesighupconfig_netmachinecheck_stoprun_testconfig_binpathmakeblock__fpstartfopenblockspermeglog_iteration_endlseekchildsizedeviceparentcheck_errormaxsignal_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  p ć( ̇`1,, 6 <Х%D%*M  *S00*Y44*b*hhh+ oxx-t44.09y4.p D9N?@0707070000000000621006440000000000030000010000001025235521300003700000044574root/home/sct/tests/usbflashrwELF4 F4 (44!*!*$*$D(@$*$/usr/lib/libc.so.155+ $"()%4-3#'01,.* /    &!20hȊ !H8&+2HD9=@؊FLXSXZp g2nh0u}t(pt8 !؉hd(\ȉ T!($$ L8H8%x+ 3@:DxtJxPfToXwh8closestrcat_edatawritesleepatofatoiatexitprintfstrchrfputsfgetsstrcmpstrstr_lib_versionmemcmpstrcpy___Argvstrlenfflush_cleanuppopen__iobtime_xgetlogin_rgetpid_etextreadsprintf_fxstat_xmknod_xttyname_ropen_initenvironexit_DYNAMIC_end_xstat_lxstatpclosecreatfprintffclose__fpstartfopenlseek_GLOBAL_OFFSET_TABLE__environ_nunamelseek64ctime_r/usr/lib/libc.so.1pļȼ̼-м$Լؼ ܼ *! '(2 $.(,0 4,8< @4D HL+PT)X\`3d/5%%ļh%ȼh%̼h%мh%Լh %ؼh(%ܼh0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h% h%h%h%h%h% hp%$h`%(hP%,h@%0h0%4h %8h%<h%@h%Dh%Hh%Lh%Ph%Th %Xh(%\h0%`h8p%dh@`jjRE] |$u =Tt PKt?h 5>1WSu P6j@-Ph2jhXuhYjYU뻐}==pu/]thYjYOpt hФY hY_UWzhhpthEhEE}u EEE3EuSh@ jh@IuJu h Y5>} h$Y ~ hPY u=< Fcp}u3[^_U WVSWEh@hIhh@gE}}h@hjYjJYEE3i5W5hh5hu ;t7Gkd=<;tVh̥hYG;=<|uY;=<tWhij?YjY+EEE]]܉}Euu]E]EЃ$uWhE[^_U0WVSh@h4jh@UE}}h@hTjYEjYE35W5hh 5hu 5hh tZWhh1=t:WhƀhhWhE;Gkd=<;tVh̥hYG;=<uYjY+EEE]]}Euu]E]E؃$uWhUE[^_U(WVSGu uUvuu u Uuu ujUu uj Uu uj Uu uj U uYUEE DjY=t5hPB hP,hP(E}u/Phh jhk3EhY? ujhh% u93(к3WtuC0F;5P|jh(h uWhH=jh<h uWh@jhLh~ uWhjh\hS uWhjhlh( uWY8jhh uWhhjhh uWrYjhh uWh5hh hYPhh^ EhYjhȧW, u @j hԧW u  @hW\u 4hW@u 4uhhm QujY}t =u,Phh jhi3=j2Y[^_UWVS!ou55hh=uh h=t5u5YU댋jPY+Ej?YEEPEPEEE=u#uuu5hh'u5uu5h hj h2uh8h,ULE?uh<Pf PYE hYUwjGYEhEPhYhIY505hHhhYh YU끍vX}t E<EH5uhlhrh)YhYU렋J5hh+ hYh_YqjfYU뱍v05hh hYhYUːuvYhYUvjY+Eu55hhbh̨h`=ET&E`Ehtۃt߃tuhШ5 5hܨ5 5h5u 5h5\ uh5F 5YU`u5h hX =t-xPhP|3U땍v(jY+E9E|3UЋMEE=8u3389E}3%=uhpYU뫐 EUv}] ɚ;vǹʚ;3CV0iʚ;+0Cvǹ3CV0i+0Cvǹ3CV0iƀ+0C?Bvǹ@B3CV0i@B+0Cvǹ3CV0iƠ+0C'vǹ'3CV0i'+0Cvǹ3CV0i+0Ccvǹd3CV0kd+0C vǹ 3CV0k +0CCW0C[^_UWVSg] =u-3Wh@P G|E%@ACE%@CACE%@CACE%@CACC[^_UWVS0v=uhu m}EPuQ3yFGFGFGbGEFGFGFGFGFGFGFGoGEPSEFGFGFG G[;]|G[^_UWVS2=uzPLYhPu5u  h$Pu Uf'=uhxY{Uԋ=tthh0EEE}uhh* uYj hbE}tEG? tj W;E}tEWsY]ExzEEExAzjhE_UW_uEE }hh8j h~th@ht h`ht! G? tWYEE9}Ehphgt& G? tWYE}u E U BShhx 3SY}t}u9hh@Shh/ uSY3[^_UWVSuhh hY} tuYEjuE}}'uhhg hY3,3} t E@E>E+ǹЋu Vu/ ;thhui ؁uuG9Eu}}3uYG}E5]E$ǙPǙPWhhhY}E5]E$ǙPǙPWh̩h8hoY[^_U WVSPvhuaEEU}}tFE  EUjuuuEUUE9Uu9Et} *E Ejuu ;}t} _UWwJu ]f}(ft ffFffKf[^_UWVS뮍' $IIpid:%d Unable to read config file ERROR: No valid USB devices found Format complete with errors Format complete autoFloppy device found USB device too small, < 16 Mb, ignoring USB device too large, > 10 Gb, possible hard drive, ignoring Burning Flash Memory Device: %s Unable to create %s %3d percent complete ERROR: write error on block %d %d blocks written, %d seconds, %4.2f Mb/sec Summing Flash Memory Device %s Unable to open %s ERROR: Block %d not match here is bad block %d: %send of bad block %d %d blocks summed, %d seconds, %4.2f Mb/sec %s/configres/sct.configrUnable to open %s config:runtime:config:netmachine:config:ftpuser:config:ftppass:config:binpath:config:errormax:config:cddevice:config:cdpattern:config:usbdevice:test:%s:Enabled:Disabled:GentleHardBad data in %s %s/%s.loga%s:%d:%s: %s%s:%d:%s:child %d: %s ERROR: %sStarting %s test for duration: %s Stopping test %s, %d errors Iteration %d: StartingIteration %d: Complete%s/%s.statuswrunning=%s iteration=%d errors=%d pid=%d elapsed=%d %s/stop%02XSCO_SVUnixWarememsizehw cpuThere is one CPU on this systemPhysical CPU:Logical CPU:psrinfoSizing %s base 10 size is %u half blocks, %u k, %u Mb %6.2f Gb base 16 size is %u half blocks, %u k, %u Mb %6.2f Gb     Hdp|<,Ȼлػ @8pQ@ F(06usbflash/dev/fd1/dev/fd0/dev/dsk/c2b0t0d0p0/dev/dsk/c3b0t0d0p0/dev/dsk/c4b0t0d0p01 min5 min15 min30 min1 hr2 hr4 hr8 hr16 hr24 hr36 hr48 hr72 hr96 hr120 hrIndefiniteabnormallynormallyStartingStoppedRunningMaximum # of errors exceeded, abortingUnable to determine memsize $.>N^n~Ήމ.>N^n~Ίފ.>N^n~ "*3<AGp O X ^  d$ msXzhhptx  #)/>JOZ,ekquzPкhH, 0h$*Ȋ 0H85:bCPKRHDYhGm=t؊zXXp 2БԌh0t d)2y9jB(HX$Yheloputz8 0T!؉hd,r(̘"4 Q`28*v6\BȉG<V \T!d8nLx($}@@$L8@H  LL8x@D $2H6.D@KH]mhwxxtt7xWT|Xh 8usbflashrw.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.commentcrt1.scrti.svalues-Xa.cusbflashrw.c.X295.X274util.c.X699.X694.X693.X682.X681.X672.X671.X661.X628.X616.X615.X590.X589test_iterationtest_errorslbuftest_childlog_format.X544.X543buftbuftest_starttimetest_pidtest_statetest_dirtest_namet_timest_timedataunamelstatstatfstatmknodttyname_rgetlogin_rsh_data.ccrtn.sclosebuf1buf2strcat_edatawritesleepatofatoilog_stopsumfileatexitprintfconfig_runtimemainstrchrfputsconfig_cdpatternfgetsstrcmpstrstr_lib_versionmemcmpparse_configfinddeviceitoastrcpyitox___Argvstrlenconfig_ftppassfflushlog_childsct_memsizeopt_blockswritten_cleanup_startmakefilepopenosdep_opendeviceopt_filenumtest_name__iobtime_xgetlogin_rgetpidconfig_runtime_strsumr_etextreadsprintfsct_cpucountopt_dump_fxstatwrite_statusconfig_gentlelog_iteration_start_xmknodcheck_doneconfig_errormaxlog_message_xttyname_ropenopt_fileblocks_initenvironlog_startlog_errorexitmytableopt_filepath_DYNAMIC_endlog_info_xstatconfig_ftpuser_lxstatconfig_usbdevice_finido_usbflashrwsct_ostypepclosecreatconfig_enabledtest_dirfprintfopt_blocksizebufsct_osversionfcloseconfig_netmachinecheck_stopconfig_binpathmakeblock__fpstartfopenblockspermeglog_iteration_endlseeksizedevicecheck_errormax_GLOBAL_OFFSET_TABLE__environosdep_seekblk_nunamelseek64config_cddevicectime_r.interp.hash.dynsym.dynstr.rel.bss.rel.plt.plt.text.rodata.rodata1.init.fini.dynamic.data.data1.got.bss.symtab.strtab.shstrtab.comment@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/common/head/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/signal.h /main/1@(#)unixsrc:usr/src/i386/uts/proc/siginfo.h /main/uw713up/2@(#)unixsrc:usr/src/common/uts/proc/procset.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/common/uts/proc/wait.h /main/1$Header: $@(#)unixsrc:usr/src/i386/head/string.h /main/1acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)unixsrc:usr/src/common/head/time.h /main/1@(#)unixsrc:usr/src/i386/head/stdio.h /main/uw713up/1@(#)unixsrc:usr/src/i386/uts/util/types.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/fs/select.h /main/1@(#)unixsrc:usr/src/i386/head/string.h /main/1@(#)unixsrc:usr/src/i386/head/stdlib.h /main/1@(#)unixsrc:usr/src/common/uts/fs/stat.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/svc/time.h /main/1$Header: $@(#)unixsrc:usr/src/common/uts/svc/utsname.h /main/1$Header: $@(#)unixsrc:usr/src/common/head/fcntl.h /main/1@(#)unixsrc:usr/src/common/uts/fs/fcntl.h /main/uw713up/1$Header: $@(#)unixsrc:usr/src/common/head/unistd.h /main/uw713up/1@(#)unixsrc:usr/src/common/uts/proc/unistd.h /main/1$Header: $acomp: (CCS) 4.2 05/11/04 (uw714.bl3af)as: (CCS) 4.2 05/11/04 (uw714.bl3af)@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up@(#)UnixWare 7.1.4 uw714/bl3af 2004-05-11:built on uw713up ld : (CCS) 4.2 05/11/04 (uw714.bl3af)  P ( H16 <pp$D$zM*S  *Y$$*b*hXX+]o,thh-<yh- Dh8%>)?0707070000000000631006440000000000030000010000001025235521300003400002641560root/home/sct/tests/x11perfLO B! tu3@.texttR .data@@uu@.bssx{Ax{A3.commentxjjR:t:t hlt[huNETVARU RP5@X@ P@jÐUPjQEEP Ph@]ÐUEPh{A]ÐU EPEP{AU;}@BEHUEE{A+‹ {AEEE+E @]EEe]ÐUE?E@EsnEM@sE @]EM@rEM @}Ef fEm]mEEE]Eu]E]ÐE @]Eu@sEu @}Ef fEm]mEEE]EM롐UW}}E @}]E @u]UMRQ]Et'EUPERUMQPRWh@_]ËMEQMPEURQPWh@אUWVESE8E ;pt|E Eh@P9th @MQ9u C;|E EEEh@EP9u';}M C;߉F|E[^_]ËEC;cݐUWURWu'MQqP|{APh@hOAk=_]ÐUWVShOA(3|{ARh @hOA(= @@;tPh @hOA=V u@t0@@ QPh @hOA<V44G4uh @hOA<3 {A;t&{APh @hOA< G{A;uh @hOAk<jP< [^_]ÐU]ÐUE]ÐUW}jjjjhWhWWRQ裊P蝰$_]ÐUWV3S]utSG;u[^_]ÐU3ɋDW}VEEMԉMWRUOQMjPRQE PTRQnEPh@VPuaVRDƃ<^_]ÐU\W}Vu SEPWRQ] v3ۅtGU3f@P3f@P@‹UP@PW{AC;u[^_]UWVS} ]v3t{AR QPnF;u[^_]ÐUW}Vu W=E̋R$P($PHjSP@t @t+E̋Q$PP($PHjSP@u @E̋P$h @P~$PHjSPxc3@;tT3@PE̋Qh @$P+$PHjSP%@G uK44G4E̋U44E̅ɉULHPR]M܋EQMPHURQP[^_]ÐU`W} VuSG=t=u`jjh @VRQR؉]ЋGEEPh FPR{KEPh N QPfKSRs<[^_]ÐG=uEGu0L$QFPVRjjh @4L$QFPVRhhh @NQP2Z؃ ]̍EPhVRQJSP0sGu.T$RNQFPjjh @2T$RNQFPhhh @VRQYE؃ ]̍EPhF PR JSQr[^_]ÐUWV3S]utR2G;u[^_]ÐUPW3VuS]tjRctG;u[^_]ÐUPWE)}@jhHM@{AR>{AjE {AP{Ajj jQPRIE,_]ÐUW3VuS]t:E{APEPEPEPEPjjjjR {AQPw0G;u[^_]ÐUWVSE @EE@{AE PE{AE33P;tEEЁ}ڋEDEE 3ۋ;tc{AMFUfء{Af|{AfLfL}9=X(u33EMȋEM=X~uE C;uM EQP&E[^_]ÐUWEV3S]tV]X EpE {A{ARQPERQBh{A;u E@GU{A;u[^_]ÐU{AR]ÐUW}WROQjj j j j GPRW{AOQGPjj j jjWRQW{AGPR藚EP_]ÐUhWEV3S]]X}xEpEEPEjRQFjj{APERQ[EEPjPER^Fjj {AQPER[EEPEj QP-FjjER {AQPd[EEPEjRQEjj{APERQ2[ĐE@EEU;[^_]ÐU{AREQkW{APERZW]ÐU$(|AGDE;g |AQP辁 |ARQ E[^_]ÐUPW3VuS]tv |A|AB |A|A |A=X~ |A|A|A=X~ |A |A|AQP |AR QӁG;u[^_]U |AREQ?(|AP$|AR]ÐUpW}Vu SVRQPD|Au9FPhM@G3[^_]ÐF PhM@*3[^_]Ð@|AF tPQO@|AtD|AD|A8|A@>R@D<|A@|AtP@X>\<|A;~<|AD|A@EԍEPh@OQP;,EPh@W RQ&, 0|A%`0|AE ,|A;},|A,|APH|AFt,|A@P4|AE,|A^30|APMH|AA С0|A3;t=}E]ڍ43H|A08u G0|A;u݋]}  H|AM4|A80|A‹4|AD:4|AD8D|A4|ART8 0|A‹H|A44|AƉD:0|A+‹4|AD:4|AD8@|A4|ART80|A@‹H|A44|AƉD: 0|A‹4|AD:$4|AD8(D|A4|ART8,0MA,|AM;nE[^_]ÐUWUV3S;E}}XpUH|A 0|AQP8|ARjQPER辰<|A 8|A<|AȸX+‰ 8|A;~(8|A ,|AG}u1=,|AE,|A@u1=,|AUUBEU;U[^_]ÐUWUV3S;E}}XpEj 4|A@P8|APEjR QP2<|A8|A <|AиX+8|A;~(8|A,|AG}u1=,|AE ,|A@u1=,|AUE@EEU;R[^_]ÐUWUV3S;E}}XpUH|A 0|AQP8|ARjQPERp<|A 8|A<|AȸX+‰ 8|A;~+8|A ,|AGu1 =,|A}E,|A@u1=,|AUUBEU;Q[^_]ÐUUJQ Q,]ÐUWV,|ASH|A3;t QG;uRE @t 4|AQvD|APERJ@|AtPEPJ[^_]UWVpuйXf}AښйXf}AujjdhT|AVRNQP$:E^_]Ð3UWV3E SUx;։MMuuEuXpMEQAPWWQURQPPEQ+(EljED8=X~[UBU;} T:X~&EE@E;} M=X~EEU׉EU:=X~EEMEAM;[[^_]ÐUW}WRQ*jjdhT|AGPWRQ8 _]ÐU]ÐUWVSE Xx+%u@EEEu3}uPP|AEP3ۋUL|A;P|AUMf<ءP|AfTP|AUftP|A+fTy7޹FЋu+UNE+ЉU}ڍBE+HEL|AUMf<ءL|AfTL|AUftL|AfTU;~=ׁ}t UEЋEU;~}t UCM;[^_]ÐUW}U WRMQWE PURmǃ_]ÐUW}URM QWD$PhXhXWRQZ3jjhXhXjj}AGP}AROQP(EH_]ÐUW}URM QW;jjhXhXjjGPR]O}AE,_]ÐUW}URM QWGPR'E_]ÐU3ҋWVESE 5P|AL|AxE;]EXFUPFPWWFPPE QPREQ'FUPMPWWFPFPPERQP'EM@PEPEWW@PE@PERQPER'EU@PE@PEWW@PEPE QPREQ\'ĠEU@EEMU;[^_]ÐUPMUAPPRE PQ]ÐUUEJQ }AQM PQR]ÐU }AUEQJQM PQRQ]ÐU}ARREU PRMQ#]ÐU3ҋWVESE 5P|AL|AxE;]EX }AQrjjWWFPPPERL}APrjjWWFPFPE QPL}APrjjWWE@PE@PERQgL}AP\rjjWWE@PEPPER9L}AEĐEEMAM;&[^_]ÐU3ҋWVESE 5P|AL|AxE;]EuXpWWE }A@PE@PE@PEPQPERQ]WWE@PEPE@PE@P}APER QP%EP@WWRPRP}ARQPERWWE }A@PE@PE@PEPQPERQßĠE@UEEMUU;ЉM[^_]ÐUUJQ Qv#]ÐUU MRQP|APUL|ARI]ÐUU MRQ}APER#F]ÐUU MRQ}APp ]ÐU\WpVu菑йXf}AwйXf}AuˋURM QVjhXhXFPR -E}AE3ɉMMPh  }AQP$hXhXjj}AWRQX<EEEPj WPjjdhT|AW}ARQ20WPUDE|^_]ÐU3ҋ WVESE 5P|AL|AxE;'uE]XpjE}A@PE@PEWW@PEPQPERQs"jE }A@PEPEWW@PE@PPERQP8"jE@PEPEWW@PE@P}AR QPER!jE}A@PE@PEWW@PEPQPERQ!İE@UEEMUU;ЉM[^_]ÐU(WVSE@}AE XÙEE @P賺EZ}AE }3ҋ};ʉ}}U5]+Ís33ɉ}؍XUܡ}AUf}AUfT}AUfT}AfT}AUfL}AfT Et+Z|ZE-EZEU؋E@։U;׉E} E=(uiEUX։UU+‹U;|CUEBUU‹U;};|#UEBEUU‹U;};|EEEEEE؃ E@EE U;[^_]ÐUjU MRQ>E ]ÐUjU MRQE ]ÐUW}U jRWjO QP[BjWRQMBE$_]ÐUW}U jRWjO QPBjWRQ BE$_]ÐUWVS}URM QW)E XjjjC VG PRjjjVOQPE<[^_]ÐUPW}URM QWjjjjG PR誝jjjjOQP薝EEjEPjWRQ薜jEPjG PR肜Ed_]ÐU`W}VURM QWE pEF EEEPj GPRMEPj O QP;jEPjWRQjEPjG PRET^_]ÐUPW}URM QWjjjjG PR芜jjjjOQPvEEjEPjWRQvjEPjG PRbEd_]ÐU`W}VURM QWE pEF EEEPj GPR-EPj O QPjEPjWRQߚjEPjG PR˚ET^_]ÐU,WVSE@}AE @EEE @P袵U }AEH IEu}EZ3ɋE u3ۋuM;ӉMM7׋E؉u؋uFM+ʉ]܍X}AUf}AUfTUE%3t}AUfL}AfT}AUfT}AfL}AUfT}AUfT Et4U€UZ| ZUE-EZEEƉE؋E@U؉E;}=(uEUE։E؉U;|EEȋE;~ +ȸ+EE E@E܋E U܋;[^_]ÐUjU MRQE ]ÐUjU MRQE ]ÐUW}U jRWjO QP+=jWRQ=E$_]ÐUW}U jRWjO QP<jWRQ<E$_]ÐUWVS}URM QW)E XjjjC VG PRǘjjjVOQP贘E<[^_]ÐUPW}URM QWjjjjG PRzjjjjOQPfEEjEPjWRQfjEPjG PRREd_]ÐU`W}VURM QWE pEF EEEPj GPREPj O QP jEPjWRQϖjEPjG PR軖ET^_]ÐUPW}URM QWjjjjG PRZjjjjOQPFEEjEPjWRQFjEPjG PR2Ed_]ÐU`W}VURM QWE pEF EEEPj GPREPj O QPjEPjWRQ试jEPjG PR蛕ET^_]ÐUWEV3S]tV]X EpE }A}ARQPERQ"}A;u E@GU}A;u[^_]ÐUWEV3S]tV]X EpE }A}ARQPERQ+}A;u E@GU}A;u[^_]ÐU}AR!]ÐU3ɋHN@WVSEM@}AE xMR M@Q]}EM M@]EM@}Ef fEm]m N@ N@EEE @5M@]P}A3ɋE uuM҉Mu3ۉ]EME]ȋŰMRQ M؋UEM@}Ef fEm]mEfEPR M؃CEM@}Ef fEm]mEfGtE5N@EM@ΉEEM=XE] E=(u$EEU։E‰U=X~EEUE BU;E UPRE[^_]ÐUWVES] EE]p E3ҋ=}A;t:uE3XjjjW }AQPER+E F;uԋu }A;u E@}AE@EEU;u[^_]ÐU}ARy]ÐU3ɋ@0N@WVSEM@}AE xMR ,N@Q]ȉ}EM $N@]E}ċEf fEm]mGlGlG`@G`E FEFE@F fEfFfEfFfE(fFfE,fFfE fFfE$fFG|tWW|^_]ÐUWVE}@t URWGlOp ;v WPwlwdfF?Gl GlG`@G`E FEFE@F fEfFfEfFfE(fFfE,fFfE fFfE$fFE0FG|tWW|^_]ÐUXWVuSjURMQE PVjjWV$؅u 3[^_]ÐEEEEEEEEEEMMԉM3ɉEЍEMMċUMRQjjjjPSWVyySVǃ0[^_]ÐUWVSujpuF|tVV|3[^_]3ɍGOO VWh@_^GUtMQRW FlVp;v V茇^l^dfC7FlFlF`@F`E CVV,GCGC t SWVS tCt CPWVS uGF|tVV|[^_]ÐUWE V|S]pPtt E @Gt E @Gt E @ Gt E @$G t E @(G@t E @,Gƀt E @0Gt E @4Gt E @8Gt E @@Gt E @DGt E @HG t E @LG@t E @PGt E @TGt E @XGt E @\Gt E @`Gt E @dGt E @hG t E @lG@t E @;w!SURQ*C%ƒ SURMQ| UE+ЉUtBUu:]U;t8uЋMUCȃ;uUMuEUЉUE!uF|tVV|[^_]ÐU$W}VuSFt VWE }dEXx E`EFEE荰E@l ;v MQ*vEUEfBBU@l ER`BU EPUPEEEu;UEfR@t+‹U;vUEfR@t+EEEMf@%=Ef@%HE܋EUf@EEPEPEPU܋M ET PE@l;w jEP QE@l "jEPEPz EMfHfHeE‹;w%EUPR Q蕒E%‰UMRQEP[z EUM+Uȅ҉M&}G|tWW|[^_]ÐU$W}VuSFt VWE}dEXx E`EFEE荰E@l ;v MQsEUEfBGU@l ER`BU EPUPEE@EuCUEfR@t+‹U;v'UEfR@t+3E@EEMf@%=Ef@%HE܋EUf@EEPEPEPǐU܋M ET PE@l;w#jEP Q蕐E@l %jEPEP]x EMfHfHeE‹;w%EUPR Q=E%‰UMRQEPx EUM+Ѝ@Uȅ҉M}G|tWW|[^_]ÐUWEV}S]@t URWAGlOp;v WqwlwdfFEGlGlG`@G`E FE@FEF E F 3fF=ty3fFfFHEEEPFPFP EDFWpGl;wjEPWlRGl Gl6jEPWv %3һfV+ڋffF fFfF4OlWp1;wVURQ臎FWl%‰Gl VURWUv G|tWW|[^_]ÐUWVS}uGt WV^dFuIE K;u?GS;u5FlVp;w&Fl+= }fCfC~lGFlJFlNp;v Vo^l^dfCFFlFlF`@F`E CGC{ fEffEfGfEfGfE fGF|tVV|[^_]U$W}VuSFt VWE }dEXx E`EFEE荰E@l ;v MQoEUEfBFU@l ER`BU EPUPEEEu;UEfR@t+‹U;vUEfR@t+EEEMf@%=Ef@%HE܋EUf@EEPEPEPU܋M ET PE@l;w jEP Q΋E@l "jEPEPs EMfHfHeE‹;w%EUPR QyE%‰UMRQEP?s EUM+Uȅ҉M&}G|tWW|[^_]ÐUW}VSGlWp ;v WmwlwdfF-Gl GlG`@G`EE tPGfF؁ fF3WW,FECfFfFWlWp;w SM QGlPrCWl%‰Gl SM QWArE UPRWG| tWW|[^_]UWVSu] tG(t GPSVW( ?uFlVp;v Vl~l~dfG.CGFlFlF`@F`F|tVV| QLCDt PC(t PS[^_]ÐU\W}VuSt6E-E3ɉ}fM}MELEEEEFlVp;v V&kE ^l^dfC/CFlFlF`@F`jjEPV~su_t(E;uEEPVvg[^_3]ÐU3fERPVv3[^_]Ðt%E;u E EPVgjP8ztE GE%GE%G 3fEG3EG3EGE%G 3EGEGHEGLG,M̉MЉHMԉHG8M܉MHMH3fEG(G$G$~b3fEuP~yG(3fEG(u$WބURSVu3 [^_]SW(RVm GDEtg@uPyGDu3G(t PzWqE@PVAu3 [^_]ÐE@PGDPVl tC$t CPWVS$ u[^_]ÐUWVujU RV F| tVV|^_]ÐUWVS}t-3ۋW;tWW O Q诃wW裃u[^_]ÐUWVSu] tG t GPSVW ?uFlVp;v Vg~l~dfGG,=u4i@W;u&G(_Gp|M f Ny[^_]ËG =uJG,= u@i@W;u2G(_Gp`M CNCy[^_]Ð_K:7N|SVWWHȋE QSVWWLNyKy[^_]ÐUW}G@GD|G =uAG,=u7GHܠGLGHLGLLGPGTܪ_]ÐG$W, =u GO;tËG =uG,= uGH\GL뭐G =uG,=uGH<GL\GHGLsUPW}VuEEESEFt VW_E =~hWaEE GlEGpEԍGdEG`E܍FE؋E =~ u EtEGlU ;v W]FUEMfC0WlE܋W`BUE؋CfCfCC+K|uAAFKVQyuGlU ;w%hEPERcWlEhMQW}K EjjPW,NEċU‰EGlU ;v WoEUEfCLWlE܋W`BFfCfCƈCE CE؋CEfCEfC EEEԍ1;w$VEURQbEN VURWJ M΋E +ƉME G|tWW|[^_]ÐUWVEt-?Ot Q_NyER_^_]ÐU$3MfGPEPEV(RUQPRClM;uSlE‰ClUMRQSz EP,[^_]UWVS}]GlWp;v WkwlwdfFHGlGlG`@G`E FE@FfE fFfE$fFfE(fF fE,fFC$FC FC,=t C =tMEQPSVW\[^_]ÐU4M0RUQEPRSVW[^_]ÐUW}VuE(St@E,uC[^_]ËU4M0RU(QM$E,PE RUQMPERU QVPRW0[^_]ÐGtE=vE-EF,=t F =t.VE‹W4JM(#‰EG8HU#V$EE4U0U(H#UE,‹U;1E,=vE}؅uM4E0QM$PE SU(RUQMPERU QVPRWM4E0QM$PE,+ËU(PRUPE PEڋU SMQVPRW`[^_]ÐEM}4E4+M$؋E4PE U0RUjSQMPERU QVPRWEM4E0QM PE(+jPU$MRUPEPE SVQPW`[^_]ÐUhW}VE(EE,EES} EEEE} EEEUE‹;~+UUUE‹W;~+UUE\E[^_]ÐEEEEEEE@0EE@4EE@ ;~5+E+ÉE}EUM+ȉUMgEÉE[A= t=ZuWA1uA W8A=t WjEPWR ;R[^_]ÐU@W}VuESWhGl+‰E%Mn@1E􋇔Uک]R=GhuEG}]܉E3]Uu+;~ޅۉ]EGE]ċU+U]E+;~ޅۉ]E؋U E‰\G+D]M+;~ޅ~E؉\n@DGWEPEAPM |UM+ȉUMMUA= t =Zt=_u"E=~}+EPA=t URkE}Gdn@GhGl[^_]ÐUWVu~$N(V ;wF$N@F$^_]Ðt1hlo@jjܧAP`"PhOAFN(F$^_]ÐUPWVE S}" u[^G\_]Ð;r.w\[^_]ËU w\_\fR ;sՋO`;vċE %PܧAO`QVho@jjP!PhOAfE닐UW}Vu SG`Eu9WH3F =Ut=\tlF  tO$;tISjEPWV[^_]ËG$=t"jjEPWVu [^_3]Ðu[^_]ÐSjEPWVZ[^_]UMU A$=u)B$=uuAZu AZt3]Ð]ÐUWVUu tH=Ls@ttH;t8GuBD@(8ttH;tGu3^_]Ð^_]ÐUWV=Ls@uttH;tGu3^_]Ð^_]ÐUWVUu BD@0t!BD@(8tH;tGu3^_]Ð^_]ÐU WUEV3S;<3ۍ4M Mu;V$s(CG;sF$;tE;u.Mt&uPESMQPURtE3thE=u^EHSh|@P&=t 3[^_]ÐC$C [^_]ÐU8W} EVuSEFDX,EuG$=EPWSE] vEE]E]vEEx|@rYp|@h|@]E]vEE]E]vEE]vEE]F4UMRU QEPRVV4G$=EPWSE] vEE]E]vEEx|@r^p|@h|@]E]vEE]E]vEE]vEE]3t*EjEPW|@ s#3ɉO4[^_3]Ð[^_]p|@v G?G|@s 3ɉO OGp|@vG ?GG|@s 3ɉOOGp|@vG?GG$(E@EEU;EF[^_]ÐjEPWG$3 [^_]ÐU W}Vu MSu 3[^_]ÐADP,Ot.ZHEPVSjEPVF$O(u[^_]ÐU W}VS] 9GDp,EPUC$=CEEUPh=h(=j HQPGPREP EfESC UEEPh=h(=j HQPGPREP EfESCUEEPh=h(=j HQPGPREPF t?EfEEjPSLC$ E(HM[^_]Ð[^_3]ÐU0W}VS] =GDp,EPUC$=ffE܍EPhh=h=j HQPGPREP E؋UԉEUfCfE܍EPhh=h=j HQPGPREP4 E؋UԉEUfCfE܍EPhh=h=j HQPGPREP tEE؋UԉEEUjPSC$ E(HM[^_]Ð[^_3]ÐUW}G,{@|@|@|@ |@(|@0|@_8|@@|@WUH|@_p|@x|@G E]wp|@h|@]s 3t33O,O0_]ÐG ?GG$G G(pt@G0_]ÐUWVEMu =t;=t = uE8PJ^_]Ð3f8PJ␋PJ3ŐUWEVuS] PEPEPEPEPjjhtjtURSVG0tLEtEEMEQCEPEPEPEPEPEjjWjPSVjG0uEtEu 3[^_]ËUEEUEUUE U[^_]ÐUWSE]M xt3 (CAfCfAfCfAfC܈QfAOu[_]ÐUWVSEMu @}XItT]|@33҃ (ffF#3fG3ffF#3fG3fFfG#fG܋FGIu[^_]ÐU3ҋWVSEu @H+3fiKf3fF3ifF3fF3ifF[^_]ÐUEU @HfM|@f#ffM|@f#BfBfM|@f#BfB]ÐUEU @HfM|@f#BfBfM|@f#BfBfM|@f#BfB]ÐUWVu ƅP薶tVURW7 ^_]ÐU0W3VuES}}}}}҉}ut:t FFt<:uSE;tU+PRMF<:uEFEFFutQuM4~A=t34~A}LAt-NFt%u 4~A=t34~A}LAuӋU;ct<.UM+PQE9P؄FFutQuM4~A=t34~A}LAt-NFt%u 4~A=t34~A}LAuӋU;t0+VR EMQEhP Rt&PW;thP}@W)u At udhPEE~B@~E@P EtPEPGE؉EEEPEPEPjSWփE=jjPn t W'3EȋE艍tPURDP2U tUERStfh}@dE܅| PTEt Pst WfEt PVEt PF[^_]Ðl}@Ptd}@PE hX}@PVEUEt WEt PEt PԽE$U PERUMQMPESRQPURGE܃$[^_]ÐUW}VSu!ƅhPyu-4~A=t34~A}LAt WIuBW|FG=uvfGfjGPPj fDžE pf%PiHfjj3fP< }#[^_]ÐA[^_]ÐEjEPjjV赼jWV: }6AVCRsuE~j/EPUhuCuCuC<t=jaUt!EWSPFE E[^_]ÐUURQ3]Ð3U83WVS] 3EfSFfKx@  ~.ڋE‰G%F}@tFEWڅ~+OفFEG}@t FڍEWVEPEPR~jj+؋EHQ۸[^_]ÐUPW$}@VuS} t P舺,}@t Pv,}@3$}@(}@ }@}3}3~,tP赮؅t>WEPS襼 3ۅ~FtP腮Eut S[^_]ÐVURMQZ E$}@ۉ= }@t!@}@$}@D}@ }@H}@@}@0}@D}@8}@H}@E[5(}@^_,}@]ÐU $}@XW3V;St',}@;t }@ME(}@5,}@UERh}@P^ D}@@}@QPH}@ERPPY%PEM%QPE %P\,t33fGwEGf_E33ۉM3ME=jh}@EP su3ۋ֊CD|EEUPEPR'7 =t5E=r+Ef=u"MQG3fEPHfE5L}@VL}@DfECTЋ֋CTЋ֋CTЋ֋CT3ҋCfUTкCf#UTЍEP踙CUTЋCUTЋCUTЋËUCT}3ҋCT|SEPEPEP_uЃEt PUE ҉tD~PYU‹tMUQRR= E EE(ۉt:~PU$ȉtSVQ E( E$t WY[^_]ÐUW} EVuES?~;Wh~@dPEUMRQ}@PdPh~@V$EtKC4tUCRMQPWVS4Kt;}Et@;~3t]uEuGEt@U+BPdJ8Qh~@P蓒EUPdRh~@Ph~@V0(EuWh~@P\ [^_]ÐU W} VuS8~AE}@uKpاARh~@PP&uh@&}@ t4VWh,@P赑EPEPh4@PPU$EEuEEP:@EMEQPUR EM;v EUD[^_]ÐUW=AMu tы_A]Ð 鐐UW=AMutы_A]ÐU W}GlWp;v WE OlOdfAAGlGlG`@G`jjEPW]uG|tWW|3_]ÐUEEUEUEU3fUE E$U3ҋE(UG|tWW|_]ÐU W}GlWp;v W-GlGdf@+GlGlG`@G`jjEPW苟E t)GPt"AGTGPA3GTGPGX_]ÐU@WVEE SuuPr}u[^_3]ÐWֱ3[^_]Ð3ۋEU Et^|;|] CEM];EuE؍E̋E؋UUB E‹RH RыM;:E %E܋E܅tEUȋR ;EPUċEPHыM;pXE %EEEԋEEЋEtEċUȋRH;aE tEċUȋRH;CE tEċUȋRH ;%E tEċUȋRH;E @tEċUȋRH;E tEċUȋR H;E tEċUȋR$H;EM@;~@ E}MEtPMQE}ԋEEċUB@MԉGEGE(UMԉG Eă(@GEċ@ GEċ@GEċ@GEċ@GEċ@GEċ EċM;eE EEPH RыM;EU@PEEMU;|EtEUE[^_]ËEPˮE3[^_]ÐU W}VE S|mU ;}`EEx @~>E;u3ۋOw;~UF;t+ C;| E@EEU@;|3[^_]ÐE0VPU PUP VPV PVPVPVP VP$[^_]ÐUU MRQt]ÐUU MRQX]ÐUU MRQܑ]ÐUU MRQ踏]ÐUhh@@~Ahp@ <~A]ÐUE@x]ÐUEU Px]UWMV3S;ω}qFE%T@t\u1Et%jW+PQܞEU 3JM NEU@EFFE%T@ujW+VQ莞U JM E [^_]ÐU WV3MS;ΉuyuGE%T@uVEt:E ЉU UjV+PQEU3uJMEO<*uEUUBUGGE%T@{E +UjVWQ薝UJME[^_]U]ÐUEE ]ÐUt@]ÐUWj 葟t GPGuGT@_]ÐUWVSE@%EE@ EE|uEP8Ut[E p XO#эE:Et!WH;uȋt WA;tME}uMIM}E@ P1[^_]ÐUWVSE@%EE EE|oEP8UtUE M G#ЍL 9EtGS;ut GS;tEۉuMIM}EPx[^_]ÐUWVSE8w};GV%;v&_4u}ÍV%;wFGMOMOMO MuPMG uEG [^_]ÐWF%W ЍWPjG PjWEP[^_]Ð uPڜ؅tF %OKWSS ЉSPC jPESW[^_]ÐU4WVSE EE@tEPPE@%EE@ EEEEEX xE@EM#эEEt0ыH;t'}܋]3ۋȋ ;tQ;uMu]}܋uUNR;}̋}]Ћ]CuFt 6CV%;t7ӋE2HPHB ʉH2EtV荦7ӋRz7ttSN;N]]Љ}}̉uEtcUH;uY}ԋE]؋]p}M ً E;@%@% Ѕɉt UA;tʼnM]؋}ԋEHMEIMɉEEP R賥MQ誥U E R@B%;v E P [^_]ÐU(WVSE EE@tEPPE@tEHHE@%EE EEE8uGEV#Ѝt tS;tЋtK;u GK;GE%Et Ct"Eܩu$CtUuu KEGE؋%;uE؁%;t3t2>EPHHB ʉH&Et EPVW URVWU6 }ttGK;tLEW;uBM>?U%RB …t EW;tąZUMJU҉M5EPU E R@B%;v U Rw[^_]ÐUPWVSu u E[^_]ËEt8tq6Gu5ۉEt CuMQVW6 >}tCuttEPVW? >EPR@PMQ[^_]ÐUjU MRQ. ]ÐUWVS]EuG[^_]ËE@u EUP ERPRE@kE fE@>utGu>utE@Gj辕GWEW@t_ W$G Gjr؅_ >WWEEHȋW#t >tG;t>tW;uAtGtCGu0>G;Gu>tnG;ugE u Gu8RGt+>t?G;u8AW;uE uE A MEP,G O#э4UtJ;t3ɋ;tB;uUEtE uE@tuEEH;E ҋUR;EU@E@~A;ЋU;uEU%? ;3EMQ讞EJ ʃEEE@"jt?EOOGE@t(_ O9EP袠 [^_]ËWWj聒؅t݉_ E>PU<~A;uEPPE HM uOOG%GEPPEuB ʉE@@~AU;u U t&@~AU;u U PuEEEXE uEPP"EPPEHHEUH?H ʉHM@~A;uEPPEPPUP EQ@PE@t E EP薞 EB ʉP@;xFL@t:EtPL@RL@u)MQ腛tPL@L@t(+PL@jW-H P@ P@~)L@t ËL@º UER@B%;EP[[^_]ÐUEu UMEQM PEURQP]ÐU(Eu IUM PlPQEUPR踎YPPlPEQ5 ]ÐUEu UEEP@UEEP@~APERM QP]ÐUx#W} VESW s EtPEtH vu E E܅P迍EuU;t R"[^_]ËEPR@OU;иEȋEE̊WG3ŠT@tUME t Ct+EUPWRM QSH[^_]Ð[^_][^_3]ÐUHMWU EEhE9tGu u E=u?t)Gu'MPjQRW_]Ð_3]ÐPEjPRWd_]ÐUWV3Su ];tY uh@EP諯th@UR蒯MQPBrYPKVu[^_]ÐUPWVS]@~Au;t$E} Pj!轇EP!HAHMEQPU R3 ~@~A 6;uEPh@tNRqPh@MQŮt.< t< u$E} Pj\5EP\HAHNG_ u0tMQh@>EPh@&t\uURh@ [ } u3=|=}3MPh@Q 'E}P3P~EPHAHNIE}Pj O[^_3]ÐEP HAH␐UEVEt6h@U R虪tVhȒjEPPMQV|^]UWS}G|%WM;u[_3]Ð[_]ÐGO;tGM@GW [_3]ÐUWS}G|%WM;u[_3]Ð[_]ÐGOH;}GM@GWG@GW [_3]ÐU WVSE @t E3EؔE 0E֋H#ы\ tS;t tK;ut-t)Cut Cut C;t3ۅoC%;uRCuHtBJ;u;Bt1Bt'EPEPE PREMQPE PSUCC;C%;EURPE PSUcCtvt'EMQPE PS(Ct>t8C;u1Ct'EURPE PSE0E֋H#ы\ tK;t tC;ut-t)Cut Cut S;t3ۅoC%;uRCuH tBQ;u;At1At'EURPE PQ EPEPE PSUCS;C%;EMQPE PSUCtvt'EPEPE PSLCt>t8S;u1Ct'EMQPE PSE@E5<~A֋H#ы\ tC;t tS;ut-t)Cut Cut K;t3ۅqC%;uVCuLtFP;u?@t5@t)EMQPE PPEURPE PSUCK;C%;EPEPE PSUCtvt'EURPE PS\Ct>t8K;u1Ct'EPEPE PSE@EEE ME M@u EؔE 0E֋H#ы\ tS;t tK;ut-t)Cut Cut C;t3ۅtCtt S;t3ۅC%;ukEMQPE PSUELCE@Ct3t'EPEPE PS.{E0E֋H#ы\ tS;t tK;ut-t)Cut Cut C;t3ۅtCtt S;t3ۅt~C%;u'EMQPE PSUtOCt3t'EPEPE PS*wEoE5<~A֋H#ы\ tS;t tK;ut-t)Cut Cut C;t3ۅtCtt S;t3ۅC%;u.EMQPE PSUCt3EPEPE PS[QCES@;uxCtAMEQPU RSt([^_]ËUMRQE PS[^_]ËCt#E;ut@S;u Cu[^_3]ÐU EWM EEEE-EE8tPt$GuEPEPQWSt`TtXGtNEPEPQWt8,t Gu?t EUPRQW-t 3_]ÐEUD_]ÐUW} V3ESE~4P@;*סL@ρ%#tE~5P@M;)ѡL@%#tu3OEP0Uto׋F N#щMtC;t tS;uUF M#ыtS;tыtK;uE׍H0MNF #щMtK;t tC;utC5t S;$UF M#ыtS;tыtK;ut"CtEK;EP0Uu}EP0Ut4׋F N#ыtC;t tS;utVgE׍H0MNF #ыtK;t tC;utCt tS;tEP0U`tMCtE@~AS EES SEPES?[^_]ÐE3ɉEH[^_3]UPWVME S]8EI@ #щM4tV;t 6tN;uu:EM8E#ы@ 4tV;t 6tN;uu 3[^_]ËFt@~AV C V VCPVC?[^_]ÐUPWVu S}Ft3V;uME6֋@ I#щMtK;t tC;utCtt S;t3ۅuW7E֋M#ы@ tC;t tS;utCtt K;t3ۅu 3[^_]ÐCtE@~AS E@ES SE@PES@?[^_]ÐU WVSE @t E3EE 0E֋H#ы\ tS;t tK;ut-t)Cut Cut C;t3ۅoC%;uRCuHtBJ;u;Bt1Bt'EPEPE PR EMQPE PSUCC;C%;EURPE PSU|Ctvt'EMQPE PSACt>t8C;u1Ct'EURPE PSE0E֋H#ы\ tK;t tC;ut-t)Cut Cut S;t3ۅoC%;uRCuH tBQ;u;At1At'EURPE PQ$EPEPE PSUCS;C%;EMQPE PSUCtvt'EPEPE PS?eCt>t8S;u1Ct'EMQPE PSE@E5<~A֋H#ы\ tC;t tS;ut-t)Cut Cut K;t3ۅqC%;uVCuLtFP;u?@t5@t)EMQPE PP 2EURPE PSU CK;C%;EPEPE PSUCtvt'EURPE PSOuCt>t8K;u1Ct'EPEPE PS-E@EEU MU MBBu EE 0E֋H#ы\ tC;t tS;ut-t)Cut Cut K;t3ۅtCtt C;t3ۅC%;uxEURPE PSU}Eh@E@GEECt3t'EMQPE PSbE0E֋H#ы\ tC;t tS;ut-t)Cut Cut K;t3ۅtCtt C;t3ۅt~C%;u'EURPE PSUtOCt3t'EMQPE PS^EcE5<~A֋H#ы\ tC;t tS;ut-t)Cut Cut K;t3ۅtCtt C;t3ۅC%;u.EURPE PSUCt3vEMQPE PS:O^EE@EWH;@tGUMRUQE PRt+[^_]ÐUERPE PQ[^_]ËE@t#M;u tWY;u Au[^_3]ÐUWMVu UEEEEF9tPt(GuEPRVW>tV^_]ÅtGGt=EPRVWu(t Gu?tEPRVWuE3ɉEH^_3]ÐU,WhPU RFMPQ6EUPEPPhPRMQdSU(_]ÐUWVSEpx |'tuV]ۋuuN}ًEP R]MQ][^_]ÐUWESHx |:t,MˋAt QWQۋu܋MI}ƋUR-][_]ÐUUJQBP ]ÐUWS]t>;υt#A?tQQBu݋SRCPS\[_]UW}tIGt P\G t P\Gt Pt\Gt Pd\W[\_]ÐUWVSEu] xtFCS:uOu[^_]Ð[^_3]ÐU WVS~t$jWmuh@W肋Eu<[^_3]ÐEt Puu!URRE[^_]ÐE}URt͋E%=tL3f=t@U;3ҋE fV%;PMQFP Eft0fFft'3ҋEfV%;uoPURN Q tZu u.3ۅ~?FEUE$f ;u3fFPE VR Q tC;|;VUPWVSH~Ah@j#t[^_]3[^_]Ðh@F#tW3X L~A;~$t RZSNtL~AWPÉGȀ@PR[^_]ÐUPU ERjjP=t 3]Ð3ҋEU3ɊMf]ÐUVEURPt"fEfu3L3fEPMu^3]V*Y3^]ËM3fEQPjVm3҃fU;uЋE 0EfUf^]ÐU$WVSE܋URP EPEPEP> UERPEP" tCMEQPEP u3Et PjXEPVXE>MEQPEP u4Et PXEt PXEt]PWRj qL؅uLEt PWEt PWEt PWEt PW3[^_]Ðu܋ù[^_]ÐUWVSEPU R7lPEPK3M;E+ljM;}E+ljE3E;~FÅt E0$U>MW% 3‹UD5F;|ă}+ÅtD5GUƊD5F|jMlP9PEPE;>[^_]Ð3UMы]23ҊȊы23ҊȊы2%%ÐUPWEV3SEUϊ0%T2M %3Pw3҃O ЋE FT0UBU|E3PG3Ҋ ЋE 0[^_]ÐU3W}VSX@A;ΊTKAs@T/A|E0AE@~e}E3@LALAFAFF|gA0A0AFAFF|KAG;|}@AKATρ@AT/|ۃ0UBUL3ɻ0Ё@A;ˈ~A|[^_]ÐUWMVS@GD~A|E@E t U+u3~AG ~A|34vAG~A>/A3ƒ0O~A|33P~A4K~AL~AM~APN~AO~A‹G@%~A%~A%~A~Ag3@G~A~A3ƒ ~A|ݿ~A~AG|M AM3~A~A~AG ~A|߿MX@G~AT9?|[^@_]ÐUPWVES] E@EH3+FCS|MAM|[^_]ÐUPWVES]33+FC |E MAPMU ׈|[^_]ÐU@EUPR=EPT ]ÐU@EUPR EPEP3M EQPF]ÐUWVS] uj:Vrt7+Whs@V u"CPCPD>Sh؄@P=t 3[^_]ÐC$C S [^_]ÐUUB$=u2`@X@]]rP@H@]]v3]Ð]ÐUPW}Vu SF$=t-j(VEP SjjjEPURk uFh@3ۋM;W%tfx@5p@]EM]E@sH5@]G5@EUEEU]G5@mNG3[^_]ÐG5@E]MMM]G @m]FMMM]jEPWRG$ (CE;![^_]U`W}Vu SF$=t)j(VEPQjjjEPURdj tauFh@uP3ۋM;CWt6G@s4G @@]E@ p@]93[^_]ÐG PWR ]E]E p@Ȅ@]Ѓ6]E@sE @@]MEQP]E]Gv]E@sE @@]UMRQs]E]EeE @]Ee Є@]jPWIPG$ (CE;[^_]UWVS] uj:Vnt7+Whs@V} u"CPCPD>Sht@P=t 3[^_]ÐC$C S [^_]ÐUUB$=u2,@$@]]r@@]]v3]Ð]ÐUHW}Vu StytuF$=t)j(VEPOjjjEPURg tEuF4@u43ۋM;W5t<@s5D@(3[^_]ÐT@5L@]EM],@uFEUF VEĉU*5@ \@]Gu]GuF]jEPW4NG$ (CE;<[^_]ÐUPW}Vu St}tyF$=t)j(VEPMjjjEPURf tIuF4@u83ۋM;W tGl@sG D@]33[^_]ÐGPWRO L@]Ed@]E5@E \@]&M]GfM]jPWMG$ (CM;W[^_]ÐUWVS] uj:Vtkt7+Whls@Vz u"CPCPD>Sh@P=t 3[^_]ÐC$C S [^_]ÐUUB$=u4@@]B]r@@]B]v 3]Ð]ÐUWVS] uj:Vjt7+Whss@Vy u"CPCPD>ShL@P=t 3[^_]ÐC$C S [^_]ÐUUB$=u4 @@]B]r@@]B]v 3]Ð]ÐUpW}VS3U;WyGWE܉UG @] $@e@]E @E @$=t/j(EM QPJjjjEPEPQc tfEE E @@uOE @ @E ] $@e@]E @tE ,@E u]@3[^_]Ð ,@u]G 4@u]@ee]E @ÅtEMu]EUEĉUE܅ۋU؉ẺUtEMu]EUEԉUjEPWtIG$ (FU;P[^_]ÐUPW}VS] 3U;WG <@]G D@E]E @ult\C$=t)j(SEPHjjjEPMQa t,]C@uG WEU]C]73[^_]Ð 4@u]G ,@u]G WEUjEPWKHG$ (FE; [^_]ÐUWVS] uj:Vft7+Whzs@Vu u"CPCPD>Sh؆@P=t 3[^_]ÐC$C S [^_]ÐU0UB$=@@]]@@]]wh@@]B]rN@@]B]w4@@]B]r@@]B]v3]Ð]ÐUxW}Vu SYQ3ۋU;W3G @] @E@]E@u3ɉMMMMMMeF$=t-j(VEP6FjjjEPMQ^ uF@ @u]G @u]E Ȇ@]E І@e@]E@u_E Ȇ@]E І@e@]E@uE>EhE @u]E 3[^_]ÐE @u]E @u]@ee]E@uEܵ>EhEGWEUMu]EMu]jEPWDG$ (CE;[^_]ÐU W}VS]3;soW)tnGG]E@uE>Ehu]Gu]G WEEUjPW:DG$ (F;r[^_][^_3]ÐUWVS] uj:Vbt7+Whs@Vq u"CPCPD>Sḣ@P=t 3[^_]ÐC$C S[^_]ÐUUt#B$=u@"]E@u3]Ð$@bu]UMRQ]E 4@E 5,@]ÐUMA$=u?@L@]A]r%D@<@]A]w A]s3]A@s@<@YAD@vD@L@YA@s EUAQ@sT@@rT@r\@T@s]UxW}Vu StptlF$=t)j(VEPAjjjEPURZ tEȍEȃ@=@\$]E?EEE L@]EM\$]E]tREe]$@]vEE]E]r#EGEEUEUUU|''E]v EU EUEȉE܉U؃@\$9]EM}_]ÐUWVSċ@hAu'j, tFU@Rt PQ"u 3[^_]É>M D[^_]ÐUWV=ċ@utVH QPYtGu3^_]Ð^_]ÐUWV=ċ@S] ut*VQXu@%;tGu3[^_]Ð[^_]ÐUW}VSG ] W$H~)x@p~;tNI3[^_]Ð[^_]ÐUWVS؋@lAu'j|tFU@Rt PQ!u 3[^_]É>M D[^_]ÐUWVSPUR,Eċ@u*T@~VltmO؋@u,ȋ@~Qt8O5؋@t}W؅u Vu[^_][^_3]ÐUEUH RQ ]ÐUWUMx QM QRW _]ÐUEUH RQ]ÐUE]@ÐUEUH RQ]ÐUU*ȅtA QPUu3]Ð܋@]ÐUWh@h܍@UR u_3]Ð_]Ðh@OQUu W uW 3_]ÐUSM UÀt33=|=~3=|=[]ÐU W} EVuEStEEE ÀtH3=|=~3=|= E3=|=EEMR$PE:E/3=|=~3==E=E=E=3=|끊GGE%G=|3ҍFӍU"3ҍpU~/3ҊEF<~U!Vw  3ҊU+ЋFUMUM<3=|=E=t -Eu$GEHUEFJUE~ EEt+u0U [^_+‹]ÐU W}EVE EEStEEE  u EuEEMR$PEEE u1E=upE=|fGGֈWUU*u E=t 5Eu.MGIWMEUJE҉U~ EqEt+}8U E[^+_Ћ]ÐUWEVuS@} EEtU;}ڋE=KG"GU3"ъEU-!E%=~ U@UEt3EȊE<_v3E~FEFFNKwHE=u"Kt7K3GFWʀVuKtK"GFNuEt+u0U [^_+‹]ÐUPWVEEES} @Et0uB}U;}NM3G3ҊGG ƃNu߉MjuSM;}NtS]"ȋƁɀGN u]N"GKu]E;}NuЋEtUE+™‹UM [^_+]ÐUPMt9QMU RQL ]PEPFQEtABtA]ÐtA@ű3]ÐUW@VuS= t= t= u3t7} VF;t;t;׸3tދ}ބt& t! t tKCt t t u+މ]u 3[^_]ÐEU PVRZQ E@tJuu QcP؋E;#SRV uuEW]OuuE U2[^_]ÐUSM t t uYA t t tр t% t ttZB t t tu;u3[]ËE +щ[]ÐUW}E tURPh@PEPPOt1PWh@Pdh @PNuzh$@t6PWh4@hPSh<@PrNu1PhH@h@@PhX@P=N_]ÐUWVS]h\@jj WhPI tnEPP-tFt[^_3]ÐCtA3ɍMO OLVhP nEPPPW ؅-E=$@EPPS# P$EEPPEUEEEEuE@E@EPPS w-0E`= UE= uEt UP9E= uEG("E=EG<EEEEPPS ؅tu3U;t tu EE jjP 5tFEPPS ؅uuEPƄMQPEUPR=(EPPS3  jjP؋E =u _8E=EXEPPS E=uG@G@EpE= uEGD[EGHLEE@<#1E=uxEtqEPPS, Et =Eu3PPRPMQE= EPPS Et=uwEP؅PC@tPC@P t`PRECECEuCVhP t V@[^_]ÐWV@3[^_]ÐU W}VSGLt/_Pp~t RN GPP}G,t PmG0tE_4p~/}3H;t QER:Nً}O4Q!G t:_$p~$}3P;t RN}O$Q[^_]ÐUPWV}Su Etxã|A=t3|A}LAtP؃E|A=t3|A}LAtEPEU:u_GFt Eu[^_+‹]ÐUPWVuS}E Eã|A=t3|A}LAtPD؃E|A=t3|A}LAtEPEU:u!^FOM AۉM tEtyu 3[^_]ÐU [^_+]ÐU @PW};sNr&tP_]Ð3_]Ðht@@@@@+_@]ÐU@PV t5E=s++t++ȉ @+@UR"^]ÐU@WVE@SEt h@)jHXURP DžDY@E3ɉ4EU M0UM<8@G DžTP0P9j(0PP9 MPPE QPXP oEܝBE܍0ܵݝ@P1j(0PW  ^_]ÐEؑ@ݝ݅8ܝw,EБ@ݝ݅8ܝr E @]FdEe]E@sE]݅8e]E@sE]E]s$EUE;fEV@E;fEV<E;~fEVH;~‹؋EVL;OEnUEfEUfPMU+fPMfxEfEfP"UfP$UfX&[^_]ÐUWUEVu S33;~(FtNGQm'U@ЉU4CU;|؅t/t 4VE[^_3]Ð33Mu ;~`Ft7EVUFPR&E׋MG Q&ȋEDE FtPF4CU;|UEPx @,UPP[^_]VEt EPE4Et P7UR+3[^_]ÐU`WVE3E SX4Ex ~3ҋ uBt F;|UE3Uu;~yE@u^3ۋU;~Uuu||<| t4EЉUT̋Q%DU@ЉU CU;|uMF4EM;|EtEP؅u [^_3]ÐS3[^_]ÐEPntыE3UE;։~%TRW$;W$ FM|;|[^_]ÐU3ɋTWVSEM܋UE REu"[^_3]ÐURE[^_]Ðh( jPMPQ=E EEEPUEH8MW#=EXT*KD<-?WP#E3U;EԍX E=~D<*uEԋUPDEƄ-EԋERP#EM PjPQEEtaEP#@tER#@PiEQP"UREE܃ 4E4FUE; EM;$E=EPEPE hWPEEWP!"3ۍj-Watj-FVOCuW#" tu-th@ u~-uwh@WEPEPE hWPgEEtEU܋MRUQMEPRQPE PE܋EUMRQPB(EU;tEPUpE܅trMQMPEPU RQtOEUPPR t4EUM PQEUPRPMEQP3M;~ ;t W4FE;|EPt RVEPt RME QP3[^_]ÐUWSM A0Y4x~ O Q4RZ[_]ÐUWh@h@UR- u_3]Ð_]Ðh@MQVtjh@GP{  u!WrtG(uW uWA3_]ÐU @t3Q;tIuu%j ȅu3]Ð@A @AE]ÐUE@]ÐUUȋA4B A8BB uAB ]ÐU]ÐUU M]ÐUPWVuS]E} t;~E %ENt&G3ҹ"3 UC%;uNuڊEt EPtEP PEt ׋M +щU [^_+‹]ÐU WEVuS]} @8EEt;~E UN#хUt%C"ȋEK#‹U;uNuۋEt EPtEP PEtU +™‹UU [+^:_]ÐUWVS]Eu} t;~E@@t!Nt6N3GCWʀSuNtN"GCKuEt ׋M +щU [^_+‹]ÐUPWVES]@u} HEt;~Nt"Ћ GNuEt ׋M +щU [^_+‹]ÐUWhĒ@h@UR] u_3]Ð_]ÐWuW3_]ÐUPWVES] }pυ~GCS8u tN3[^_]Ð[^_+]ÐU(W} VuESEXGEFEC3ɋU C$DEW ERKQP> E~|=ws$@EUЋCUE3[^_]ÐEMȋM=u ESP ESPECEE@E3UUVEEPUEo@UEG +‹M;VEteF ;DE3ۋU@;ӋH~5}؋}u܋u"3G CMF;|uu܉}}؋EUFF +‰F EMGG U+‰G EGEFEF[^_]ËE@ E,U0W}VuS] _S@3ۉG F FVWUR uE3[^_]ÐOFم~ӋEVPE[^_]UDW}VuSE GEG EFEtF F VWUR> u[^_]ÐF_EFEVWMQ =uGFEGEFEEU;u)EMEڋȋEMVWP =tˋEUPEtU[^_]ÐUWVSExE 0GW(#X~H;tK3[^_]Ð[^_]ÐU(WE EEV}SEEt E EU MRQlE@MEEyU;}QUEEE(E܋EU܋0 #M;uEXE+ÉEKWtF}؋EEE,ENjMO шEKu؋}؋UMIUɉM~ ElEt+}8EUPU E[^_+‹]ÐUWEEVuS]@} EEtEEE@ E@ E=t1=t =E=u1EU@ ;u1E@ HQ1EEU@;ttE@ PREEM;~ [^_]ËEU@ @PREEM+ȋEM=u EUP EUPËMy؋MPʋEE;}]EPUuEpEt!EM@ PRQUEЉUPUt4uEuXEGFW"3Ҋ ʅNHMuމuuEPUuuEt+u0U [^_+‹]ÐU W} VuS]EEEt E EF@EÙ}U;}E@8ЉEF@E@U[^_]EU릐UWVSj09u [^_3]ÐW3[^_]Ðhtj0jWXhjVK3ɋEGGE G EGEGEGw,P@NNEN NNNMx@t3tOh\@EPRt7X t#@tMCAxt@uMEƄxE@~E@P F xPF P?W W輋hd@V R  u/hh@GHQj谾 tNP G,:hp@G,@ PC thx@G,P R+ u G,G,tWu'WJu G,@t [^_]ÐF t PFt P{VrWl3[^_]ÐUWVSu~tW~u~,GtPROQG t P3ۋH@;~D@ ;tyCH@;|F,@t>VRQPRO|QGxPWhROtQGlP(Gt PW[^_]ÐD@냐UWVESu~^ GlGtP`lQh@PmlP`P Gtu 3t&`P`h@h@P`@ fJfHJH`P`P h@`P F,P R`P LQh@P褸LP`P] ,j`PS{  PS5Eu jh@SZ{EEPEPEPEPEPEjjh@BjPURS]<- E@t E@P5Eu?MQb3[^_]ÐjjjjjjjjMQ 3$[^_]ÐEUPRMQ7 EUEPURV,Bpjh@S|zEEPEPEPEPEPMQjh@BjQURS ]P^jkEu1jjjjjjjjEP UR3([^_]ÐEtEPUBu4RjjjjjjjjEP UR 3,[^_]3M;sMUGTTE;rUEfURF,@p=(jhē@SMyEEPEPEPEPEPMQjh@BjQURS[R|RjjjjjMQMEUPRQ3,[^_]Ð3t;}y83R,|QjjjjjjEUPRMQ73,[^_]Ð3tx;}h4E33ɉ0P׋|GA DG|DG|Dt;|40Etf|Q"jh@SsEEPEPEPEPEPEjjh@BjPURS2VEEU PF@,@p=(|@=t$UU"@%=u MMEPVRFH Qk jCDPS@RF@,@p=(|m PVF@,E@p=(@E@(EEEF@,@ EE HQP0RP4RF@,@p=(|ePV|@ tjEPVy @FH Q[^_]Ðjjjt hPV뵐UPWV}S] 3P;uK4;u-@[^_3]ÐSW[^_]Ðt0@=tSWtdSW[^_]ÐG@,@tE P3fV>P$ C C h@R7ulGffF@GV@f@fFBE PVBP$ C C dh(@Q跼uTGFDE VDP $ C C h4@POu|WERPEPNQF@ P贘AGFHE VHP$$ C C lh@@R迻uTGFPE VPP,$@ C @C hL@QWuTGFLE VLP($  C C hX@PuTGFTE VTP0$ʀ  C C 3hl@R臺TGFXGHdt QEPEPVXR؜ 3҉E;ЉU}2u3}Ћ]3ۋEP޻@C;|uuԋ]؋}ЋEUDuP&Eu 3[^_]Ð3ɋEUM~;}ċu3]̋؋E QSwht@SlF;|uuȋ]̋}ċUE‹UDPd$  C C hx@RuTGF\E V\P4$ @C C @_h@Q賸uTGF`E V`P8$ ʀC C h@PKu,GFdG@Fh@h@R u(GFlG@Fp@yh@QϷu(GFtG@Fx@=h̖@P蓷u)GF|G@@W[^_]ÐUfC뮐hP@QWu$@$GVDh\@Pu$@$GVHphh@Ru$@$@`GVP8ht@Q诫u$@$ (GVLh@Pwu$@$GVTh@R?u$@$ GVXh@Qu$@$GV\Xh@PϪu$@$HGV` h@R藪u8Fhjp؅FdFhCGhȘ@QKu8Fxjnp؅FtFxCGhܘ@Pu0Fpj"p؅tqFlFpCGDh@R軩u-t>jo؅t.F|CGO[^_]ÐE[^_3]ÐUWVS} uh@Q-uR@$jGo؅rffffCffCfZh@PǨuT@$ jn؅ fC3fffCffCGh@R_u(@$ Gh(@Q#u(@$@|GPh4@Pu(@$@Gh@@R諧u(@$GhL@Qou(@$Gh`@P3u(@$@G`hh@Ru(@$PG$ht@Q軦u(@$Gh|@Pu@jl؅CGh@R+u8jKl؅tzCGFh@Qߥu0tBjl؅t2CGG`[^_]ÐE[^_3]ÐUM勁ǀ QR,]3ÐUM勁ǀ QR,]3ÐUPWVSU u] tt3[^_]ÐB4uqE HQiE;~WEM PRQx tt`XjSEMPQRMQ;Nt*t$t*"ttt t[^_]ÐUPWVSU u] tt3[^_]ÐB4uyE HQEE;~MPE PRQw ttaYjSEMPQRMQNt*t$t*"ttt t[^_]ÐUW}VuEESEF EE tEE EE$tVEPEVP F FEEEEUPPRWVU =M+ȋEEEMPEUPRPVU=uE$tGENyU$4Et UEЉUE t MˉEM+ȋFMFE~ E>+}}VEPVEPE[^_]ÐUPWVuS]M} }t;~NtGCGCNuEtt ׋E+ЉU[^_+‹]UW uu _]ÐUMRU QMEPRQW _]ÐUWUMEz QMQMPht)QM QGPR _]ÐUWtu _]ÐUMRU QMEPRQW _]ÐUWUMEz QMQMPh4*QM QGPRC _]ÐUW tu _]ÐUMRU QMEPRQW _]ÐU,WE EEEEEV}S@ EEt E EEtjh@LFEhhę@:FE؋EURPEPEP EE3=t =uE܋MPWQۈEPEWP蚉E ~E܅t@u E܉EE܉E؋E|5U+U~ EyEt UM+щEU +‰EUERPMEQPE[^_]Ð3u%EtZ33EӁ;uE3=t:=t33= }= t= u3=| =uFOuEtEEԉEPEPE؅t[EMUXEEEPR+PEQURP ؅ƋM+;EUЉUU+ЉUEt ]+ˋˉuU$WE EEEV}S@ EEtjhЙ@CEhhܙ@CEEURPEPEP E3=t =uEMPWQ萆EPEWPNE ~Et@u EEEEE|U+U EMEQPEPEPE[^_]3u%EtZ33EӁ;uE3=t:=t33= }= t= u3=| =oFOuEtEE܉EPURB؅tCEMUXEEPP+PEQRP  MEȉMEt ]+ˋˉuU WVSExEEG E@EEWPEWP E$~EEU$PPRM QWUSE ƋU$E E+օU$'GEEG@=}(EUPEQEPPEPSRA&EUPEQEPPEPSRIBEUHQEPR0g G@=}%EUPEQEPPEPSR?~UG@=}MQPEPlURPMQXqUЉUU +։UDEWEPWEPE[^_]ÐUP WVSEExG Eԋ@EEWPEWP j jPdkE3UE;lEEMPPE QPWUCU ЋM+ȋEU MGEEG@=}%EUPEЋMPEPPRSQj=#EUPEЋMPEPPRSQ=G@=}+UPEPEPEPEPPR`g)MPEPEPEPQPEPMlE؅t?EEEE܉E;} f;~f;~ f;~ ffEU;EEE܋M;E܉EދE+ƉEEWEPWEPEt>ffP+fPfPEt$fUfPM苕fPUfP[^_]ÐU` WVSEEux]G E@E܋EWPEPEP j jPhE U3E;ЉEȉEEE؋UPPERM QPU܃U M+ȍU EE؉MEEEE@@=}(EUPEMPEPPERQP9&EMPERUEPPEQPRv:MȋE+ljME؋EЅtUЋEЉUEԋM;}E UUEԋU+ЋEĉUtE@HE̋E@L?EM̋@H;~E̋EUȋ@L;~EȋE@@=EE@ EEU@ ;rdE@;wZEPDu ,EFEUH +ыHDRщUfBfu$B ‹UR ‹UR uEEEEx EUP;P;w~@ M;rtE@;wjEPDu ,EVMEQ@ +I+AM+ȋEPD<}fGfuG W W uEEEԅPUE@@=}|E}%EEU@ ;rTE@;wJEPDux,;E}P HD+<fGfuG W W u}EE}%EEU@;E@;EU@J %;r{EJ@%;wiJDuz,]ME}QI+@ +AMI+ȋEPD<fGfuG W W u}MM}fFGfFG+fFWGfFfCE@HfCfGfCEPLHHыEfSt)EOOG;~ fG;~f‹;}fW;~ffGfE EԅHME؅EUERPMEQPEЅtE UЉ3[^_]ÐE$t>ffP+fPfPE(t$fUfPM̋fPUfP[^_]U0W3VuV;tRRGdh<@RGddDŽdPE P 3V;tR{RGhD@gRGDŽPEP蹰UERPPdPNQj ^_]ÐUEUPh\@hL@R=hl@MQ裋tiht@EP莋tTh|@URyt?h@MQdt*h@EPOth@UR:u E@,]ÐU,WVu Sh@Vz3ɍxMEMM= t= u 3t( VF;t;Ӹ3tgjh@V迌 u(EuEuE[^_]Ð!u%EuEuEEF~EtJFF= t= u 3t( VF;t;Ӹ3tE@tpE@}ظ@@PRVԋ u%EM ȋEMu EU UW MAE ҉MEu}؋E@@F= t= u3t( WG;t;Ӹ3tE=0|=9~,E=A|=Z~E=a|=z~ E=_u3tK}ԿA90VF;|;~#;|Z~a|z~_3tʋ}WUEE@,xu7jj>hj BNGuIWY[^_]3f@@t3f@@POQPZG3WfM@‰MHMHfE@,x[^_]ÐUW}V3SEPhԚ@hȚ@W=uh@URBu G,@EPh@h@Wq=uffP+fPfPEt$fUfPM苕fPUfP[^_]ÐUWV=@ut@^_]}V"V JN\u}VV BV u.I}V뎐V BVvVW\`UE@]ÐUWVSuV t uV  t t=:t5="t8b= 9=[^_]ÐEAV" tGtB\Vx=4^=0t~-= t=W {=2tH=1t?=3t0=X{=6t =5t p=7uhV_E0|.7)GVMAM} 0|7~WSE@EX=xtEЉU׈VZ3ۃ]0|9~A|F~ a|ifd0|9 GA|F GGVUBU}0|9~A|F~a|f~EW}V"E=!=#u}Vo ttVZ tu u 3~=>t=<u,cW=~u D0|9~"A|Z~a|z~_t -A׍HMV0|9~A|Z~a|z~ _t-u>]׈VC|0|9~A|Z~܃a|z~҃_t̓-tȉ]EW| oU @WV3S] @;tQSAetGu[^_]ÐwUWVSuVtu%[^_]ÐUR63[^_]ÐETEEЍ\Eԃu6hAhp@du EEVE3EEuEVtutEuVEVhA؅U ЋEUtӋM#ˉM ]]ttEtEV;wV'chAC1؅LEԋUEЉUE ẺPUBEԉU܋U EԋE܉U= VpVhAd@thAd@P)EhAPPdVF u hAf0eV!tYtULMhA-08Vt j(EjEPP`c ؃u DŽCE؅uP/(EM؍QPEP6E E܅-TEE̍\EЋE EtHEԋMXPL3Q;uQ F;u Q;t ;uMPLEu~j|'Eu2UR2ttV=tu[^_3]ËUЋE3ɋPŰP Uԋ@PU HUHE ME EA MM̉EԋE܃ UЃ M̉UЋU;EPt R;2EUPPt R"2EUPE[^_]ÐUWVS]3U RS|;~M QS}[^_]U` WVSEEux]G E@E܋EWPEPEP j jPY4E U3E;ЉEȉEEE؋UPPERM QPU܃U ЍEE؋MU +υMEEEE@@=}+EUPEMPEPPERQP=)EMPERUEPPEQPRMȋE+ljME؋EЅtUЋEЉUEԋM;}E UUEԋU+ЋEĉUtE@HE̋E@L?EM̋@H;~E̋EUȋ@L;~EȋE@@=EE@ EEU@ ;rdE@;wZEPDu ,EFEUH +ыHDRщUfBfu$B ‹UR ‹UR uEEEEx EUP;P;w~@ M;rtE@;wjEPDu ,EVMEQ@ +I+AM+ȋEPD<}fGfuG W W uEEEԅPUE@@=}|E}%EEU@ ;rTE@;wJEPDux,;E}P HD+<fGfuG W W u}EE}%EEU@;E@;EU@J %;r{EJ@%;wiJDuz,]ME}QI+@ +AMI+ȋEPD<fGfuG W W u}MM}fFGfFG+fFWGfFfCE@HfCfGfCEPLHHыEfSt)EOOG;~ fG;~f‹;}fW;~ffGfE EԅHME؅}EUERPMEQPEЅtE UЉ3[^_]ÐE$t>ffP+fPfPE(t$fUfPM̋fPUfP[^_]UWSUM B0z4X~W;tK 3[_]Ð[_]ÐU W} VuS]UMRQEtu[^_]Ð3[^_]ÐE;~ڃ|EEE@EKtK"3GU FNuME+U0E U [^_+]ÐU W} VuS]UMRQEtu[^_]Ð3[^_]ÐE;~ك|EEEPKt3ʋGG"3 ЈVG"3 ЋKVuϋME ++U2UU [^_+]ÐUE%]ÐUE%]x@%ÐUE%]@%ÐU WVES]uEUM RPVQEPۋtEtEuc[^_]Ð F@;|lEt8PM RQ XE@P3XEURPEt E U83E[^_]Åu}3@;~x@ ;uvx@E{UW}EVuSEUMRPWQE PEtEtEEt>E}3@;~5x@ ;uvx@EE[^_]Ð F@;|ЋEtߋMQPtϋE@Ph@VEPRVExj@EPEMQWh@@@PPE=uE%=eEUPRh@ )jEPEMQPh@E@PR$&EUW}EVuSEUM RPWh@QEtEtDEt=E}3@;~4x@;uvx@EE[^_]Ð F@;|ыEtURPtЋEHQh@WUE@PUExj@EPEURWh@@HQ $TE=u"3@=}3ҋE@RjEPEMQPh@E@PR#EUPW3EVS]t7sPtUFRPSU uF6uE=t=ujS  S MIM}3[^_]ÐE VWV_^tu{TCPuCTA5AKX[^_]UW}GlWp ;v WOlOdfAGl GlG`@G`E AEAG|tWW|_]ÐUEP<]ÐU,W}VSGlWp;v WwlwdfF1GlGlG`@G`EfFE tPCSfF؁ fF3ۍCfFfFSE PWw jjEPW)Ef%tE%PEEE܃4ƅuPUEtuBEt P"Et Pq"VWGG|tWW|3[^_]ÐVURW E3ۊEft;}ԋ}MQL1CE%;r܋} EUEG|tWW|E[^_]ÐUWVut9@u~tQ!GuHPx!Vr!^_]Ð3UlW}VMS] GlWpMM;v WwlwdfF2GlGlG`@ۉG`EfFtS QfF%EfFEEMfFfFQSW5 3G|EuZjjEPW ^|9E}}t؋Px t Ri ưK}݋}Et PN Et P> EWEUL(t Q 3E%PW^|9E}}t؋ Qt PưK}݋}Et PEt EP3f9ut3fEPWU3E؁SW9jjEPW{ tEuG|tWW|[^_3]ÐPEU܍U;ZE܋MɍDEuPEP$EE@uPURMEt^|9E}}t؋P~t RoưK}݋}E2URMEP9EUE0EtG|tWW|E[^_]ÐEEEEHEuPVE;E@uP4E E]3ɉ KDKE%CE%C 3fEΉC3EՉC3E։CE%C 3E׉CE؉CHEډCLC,MMHMHC8MMHMĉH3fE҉C$~?3fEuPyC(3fEPS(RW7 C(3ۊ]CuCtP)Uxu EEE3ҊU3EPERWFMPM UPWVS]ut/HP.;~RG;|V E tG3~5]XDp( t Qt RPPGE;|ԋU R[^_]ÐUHWVuSU RV$tyhEPEPW0t_jEMQP`Wj EPURME QPV{EU$[^_]ÐF|tVV|3[^_]ÐFlVp ;v V~l~dfGUFl FlF`@F`E GMQJfG؁fGfGESPVjjEPV ^UEfPfUfPUfPEfUfPUfPfUfPUME F|tVV|[^_]UWVSMu y(A$;t ;t;u3[^_]ÐEW[^_]U W}GlWp;v WqE OlOdfAAGlGlG`@G`jjEPWuEG|tWW|E_]ÐUPW3VS]XÉE6uSt7sPtUFRPSU tʋE VWV_^t)u{TAE5ASXJ[^_]ÐCPuCTАU WVSuE] ;| =3;;3ҋ+׍E==~-~Du3O~L;t} E-EE ;~u 3tREPEPE% QVEuE[^_]Ð3[^_]ÐEU;tE[^_]ËE[^_]ÐUEuURu3]ÐM3QE PEP ]ÐU W}VSu Wt_3;~SEE􍇜EEE; V3PW U ;tEC;~EF;|3[^_]Ð3[^_]ÐUW}G uW Ru3_]ÐM QG4PW R _]ÐUW}VSLJEEEEEU;}~E~^E؋UEP%PW# =EuLJ#E=u LJUBU;|EEU;|e3ɋE@EEM;}썟3;EVU%UPRx =~Eu#EEȋU E=u#EEȋU F;|MEAM;\}싷tVW 6u[^_]ÐUWVuVb u 3^_]Ðt P0 F@Tt V^_]ÐUW}G=u#G tR G ǀGu=$D@Ar Z"ar z<r r r rwu ^_]Ár 0r r u ^_]Ár r r r  NBrvtrvdrvtrvdr rw^_]Ðrw^_]Ðu ^_]Áu ^_]Árw ^_]Ð2& ^_]ÐUW}VS]u/Wu"[^_3]ÐE[^_]ÐE щE %;|;U E+U4U~%Lu]3۹J;~D;tU]E=~t -E=r3=w,t"E=~FtUEVuHt u6E=tFuEPEPRWTEHt =tOE=t FEuEPEPQWEUEu[^_]ËE=t FEuEEUPEPRWUuM;tE;{U;uoUWVS} UMEt!]F;u F ;%6ut u3tdujuXr vR tJtBt:t2t*rvtt 3[^_]Ðu u % %؋EtT3=@|=| u82u2.3=3| =78u /u[^_]Ð~;~WFPQ,ǃ [^_]ÐUW}EPEPW0RO4QG P u 3_]ÐEtUUM RUQG0PRO Q_]ÐUWVEt#7WR OQ W  u^_]ÐUPWV}SuWEEj%؅tFEuP CuE#EuPCu=E~6t)Ct PE Ct P5 S, [^_]ÐGU@t3EPRKQ EUCEPRKQj E C ECSW [^_]ÐUWVSMUE] +֋B<;s ;t;r3[^_]ÐU+M[2^_Ћ]%ÐUWVE3SE @P;}EuxE XU QEPE4N|93UR;t"]ًMN|3QÊ2;u]|};~4FEU;U %;C;|ҋ@P Eu 3[^_]ÐE3}E;}`EE3ۋ;~'FEU;MCTM  ;|ߋEU؋EMȋEM;|VEUM TE@ E[^_]Ð[^_]ÐVM ƈ [^_]UW}V3SEE;~(OEU 03;uF;|[^_]ÐUAWVS] uujdAt:=AAFPVWG_^FT~Pu~TFX[^_]ÐUW}GlWp;v WOlOdfAGlGlG`@G`E AAEA G|tWW|_]ÐUVM EuQP;tAPA @AQVgF|tVV|^]ÐUAVue Whp@iu|@h@tAVnvhAP#bAth@xAA^A]ÐU,WEV3SP0UtBruUE33ۋǹƉE%Efu@%E3ҍT@U%;up33ҊU@U;u_X@MPQ1uH3ҊV@W@ Ӎ|F;Mt#u|3fu@RAuRAjWME+HPQEEԍEPEPEhxAPARK$EtoE=ve33H;s&MIE0|#9Ӎ|1[^_]Ða|zӍ| A| Z[^_3]ÐUW}EVS] E@t URWdGlOp;v WZwlwdfFKGlGlG`@G`E FE@FEfF EfFUXЉUBfFfF‹WlOp;v WE]E~f_lwp;v W‰‹U@hRPh MEMEEtAEWlOp;v WAEwlމ_lFPEPFP Ut(+ڋWlWp;v Wwlމ_lGlOh+t WG|tWW|[^_]ÐUWVSE] @3ɅEMthMEP H ;P;PDt~ыH +ыHDRщUfBfB ‹UR ‹UREEx p P;r{H;wtP ;rmP;wfHDu ,EUMEQ@ ++I+ȋEAPD<}fGfuG W W uEUE3MR;UE} RHUERLxu}EEt*EuP ;r}P;wvHDt1P +э<9EuHuSP ;rLP;wEHDup,9EP +PD<fFfuF V V uuEPUu NKNKCEFME;~EfCCEFUE;~EfCCE;}EfVCSE;~EfCfFfCfCUMABEUM;EufC3ffCfCfC[^_]ÐUW}VSG3ɅEMtoG W M;G;GD‹W +‹WD@‰Ef@fEU@ ‹UR ‹UREw _ O;rqG;wjW ;rcO;w\GDu G,EMG O++AW+WD4vufFfuF V V uEEtfG]EufC3ffCfCfC[^_]ÐUW}Vu SG3ɅEMtpG W M;G;GD‹W +‹WD@‰Ef@fEU@ ‹UR ‹URE_ G %OE;rvG;woG U;reG;w^GDu G,EOG O+ȋW+ڋWDAًM+ٍ[ډ]fCfuC S S uEEtfGP HD+v\E]P;roP;whH ;raP;wZPDuX,NMEQ@ ++I+ȋEAPDvfCfuC S S u]t CUЉUEMAEEM;E[^_]ÐU3ɋ(W}Vu SEMMMPEUPEPEPEPjjh@BjRVWx0E=E= E== s0= MMs9VW@(@E3ҋE EU;uiEuPEtI}]~~M3ҋ;ʉCFCFC F CFCFCFCFt"N #Et P3[^_]ÐC F E;tV$C$F$((OMQEU܉UE[^_]ÐUWVSEPx u-@=u#u+E E[^_]Ð3[^_]ÐEE߅ۋ0~uBFKUEt EPEtGuPeEuMQ3[^_]ÐEMP RRQ5_u >3~֊u EGTVFKE UUE[^_]ÐUEtt RNEPB]ÐUW} VuSt~tH£A=t3A}LAt(FFt A=t3A}LAu؊t,V!@t V!@P؅u [^_3]ÐS3[^_]ÐVSA!j,So؅t P5!4FA=t3A}LAt"FNA=t3A}LAu@ۉtdKCtHA=t3A}LAt(CCt A=t3A}LAu؊t@t @PPPV [^_]U WVS^EEt2U R@tM Q@PIu [^_3]ÐV3[^_]ÐE PVjEPVT؅tϋUERUMQPSVRWPuSVVEtW(u@[^_]ÐUMEQE QA ]ÐUE@]ÐUE@]@UE@,]ÐUE]ÐUW} VSWUR3O ;~JG EGEEt(G@tSEPf SjEF;|‹OQTGPKWRW<[^_]ÐUWVSu ]t@h@QSuGPS؃GCGCu+[^:_]ÐUWV}u t/h@QuVGPWu^_]ÐUWS]} Kt7h @QuWSRv @Ku[_]ÐUPWVE S}E[^_]ÐE @uPXE0tԃ_tDh@SuWRVqGF_u[^_]ÐUM EEPQM EPURQ%E]ÐUW} EPW} EPURWMEQPPEt P_]ÐUW} VuEPWH} EPURWMQVPEt Pt FG~^_]ÐUWVu~VtWt;tyuV:^_]ÐF鐐UWE@u3_]Í} EPW} EPURWMEQPPEt P_]ÐUWE@u3_]Í} EPW+} EPURWzMEQPP Et Pk_]ÐUUBt RP]ÐUUBt RP]ÐUE@]ÐUUBtRP]Ð3]ÐUUBtRP]Ð3]ÐUWU} BtMEQMQMPQWRP_]_]ÐUWU} BtMEQMQMPQWRP _]_]ÐUVutRu^]ÐUjjЅt>E 3ɉBEBEBEBEJ JE@@`&]ÐUj ЅtCBE BEB EBEBEBEE@@`&]ÐUWVSE] 7t4V;u%EN;uEV;uV7u[^_]ÐU WESxuq3= |=/3t 3G= |=/~3t3=0}=~3uGM+E ;} [_]SURPƄPU[_]Ð3U WMy=3=0|=?3t 3G=0|=?~3t3= |=/3t 3G= |=/~3t3=@}=~3u G+M ;} _]ËE_]ÐUPWVES} @M@0FEt0E~P~LG"3ڊ= |=~~3= t= t= u/NEHAE~Et+MNjU +[^_]Ð[^_]ÐUWEEEV} S@@Et0CECECEEPH;tFC PPP +UPRMˉME EE=^u ȈEE= 3E=uEE~g~cG"33ҊÊU;| 3ҊU;~3= t= t= uH3ɋENMPU3Ҋ шEHE~Et UM+щNjM +[^_]Ð[^_]UVuV$F t jQVV$ ^]ÐUWVuVhFdt&jQVVh jjWF@,@p=(|xPV&(^_]ÐUVuVpFlt!jQVVp ^]ÐU@WVS] ujjEPjjEPjjEP$Fx~t EPEPEPEPEPjjjjS$RF@,H QF@ Pe0u[hX@RutEt)j¥ Ef@fEf@5@$j腥fG@ffGBfFC0hh@ QuG|FC0KEt P[^_]ÐE[^_3]Ð3UW}VMSM] 3 ;h @Pu1G@,@p=(EWh(@Ru G@,@p=(Oh4@ QuG@,@p &h@@PkuG@,@p=(|́@hL@R;uG@,@p=(phX@ Q uG@,@p=(}hhd@PuG@,@p=(lbhx@Ru G@,@p=(|6.h@ QwuG@,@p=(HC+G@,PTRG@,HTQVWEEG@,@p=(uj8.EEV(HNHNHN H JHEVPVPVP VP$VP(V P,V$P0V0P4V] h@RbEtHj腞EffEf@fFEf@fFEf@ [@$tj)`ffffFffFffFC0h@ QEt5j辝fF3fEf@fFEf@띐@$jufF3fffFfQh@Pu@EtUCR1@$ HC h@Ru,EtUCRCh@ Qgu@EtUCR$@$Cxh@Pu@EtUCR I@$`C$h@Ru@EtUCR(@$ Ch@ Qku(@$@Ch@P/u@EtUCR,e@$|C@h@Ru@EtUCR0@$(Ch@ Qu@j觚FC0h@P3u<jSFC0Fh(@Ru0tRjtBFC0K/Et P [^_]ÐE[^_3]UPW} Uu*B O;uyBW;uoG=ue_]Ð!uAO;uIG= u?BW ;u5!u.G= u$G=ct=tu BW;t_3]ÐUxW}G@,@(EG@,@ EEG EE EEPEhhjPGP RƊE=EPGH Q艞WB,@LPO QJ QWB,@PPO QJ QWB,@XPO QJ QWB,@TPO QJ QWB,@\PO QJ QDE=uEPG@ PEPjGP RW3_]Ð_]Ð3UpW}VMSMGX,CuC3t WRG@,@t4u(jW9tG@,@t W8EPE jPW@ut 3t EPW@PMmP t5WhuPRGH QWhu@PGP R WhujjOQG@ PhWhujjWRGH QN 0E=t>G@,@p=(|oW!EU%EU\PjPDRH@QG@,@p=(|m PWKWWGu3t*Et WE t$WME%MEGu3t*Et W E@t%WUMUMG@,@p=(|Eu[ELEPG PGP R&E @PO QG@ PG@,@pj=(jÅtEEPto PW|EtG@,PLRWu3ɉMMEtG@,HPQWu3ɉMME tG@,@XPWu3ɉMMEtG@,PTRWu3ɉMME@tG@,H\QWwEPW RGH Qș [^_]ÐUW} EVuS]h<@Qu*^GC>hH@PLP~tC@,@p=(EPGPS*jUROQjkSC@,@(E؋EEC@,@ E܍EPxhFPS0C EGC 0EC EPPGC VSu)EEC U싃E苃jjjC@,@p=(|gPSU苃EPCP RE3ɃHcC EGC @$u0C C$ @ ShvMQC@ PShvj!j!S RCH Q苳(hX@PK|GEC@,@p=(IMPQC@ Pv" hEEH tu@=uUUEC@,t5% = tu@=u MMjEPURjlSC@,@(E؋EEC@,@ E܍EPxhFPS$u 3[^_]ÐMEQPCP R蘕 Ht@PSRCH Qt UPP@%=PRKQC@ PUPRCH Q hEUP@%=u E%EUMRQC@ P躔 SPGC$ EPPEhd@Ru$CWP ht@Qu$CWPh@PGu,GC G@C$h@Ru(jMQVGP(PSu\hh@Ru(jMQVGPhPSu ,VWRQSzuEGxE[^_]ÐUE P3fV>P$ C C h@RulGffF@GV@f@fFBE PVBP$ C C dh@QuTGFDE VDP $ C C h@Pu|WERPEPNQF@ P|AGFHE VHP$$ C C lh@RuTGFPE VPP,$@ C @C h@QuTGFLE VLP($  C C h@PuTGFTE VTP0$ʀ  C C 3h(@ROTGFXGHdt QܓEPEPVXR蠤 3҉E;ЉU}2u3}Ћ]3ۋEP@C;|uuԋ]؋}ЋEUDuPEu 3[^_]Ð3ɋEUM~;}ċu3]̋؋E QS?h0@S4F;|uuȋ]̋}ċUE‹UDPd$  C C h4@RuTGF\E V\P4$ @C C @_h@@Q{uTGF`E V`P8$ ʀC C hH@Pu,GFdG@Fh@h`@Rӿu(GFlG@Fp@yht@Q藿u(GFtG@Fx@=h@P[u)GF|G@@t [^_]UnGlGdf@uGlGlG`@G`jjPWvPPWqt(3ҊЋE;}EPPM Q褋 G|tWW|3_]ÐU$W3VuSFlVp;v V}m^l^dfCeFlFlF`@F`E CECjjEPVuti]t4uP|Et,PWVp 3ҋEU݉F|tVV|[^_]ËMQVyF|tVV|[^_3]U WVEuS8uPEMPQV t}FlVp,;v Vel^l^dfC Fl,FlF`@F`E CECECC MMHMHMH MHMHMHMHF|tVV|[^_]ÐUSM U]%-= $T@ABAB ABABfA fBfA$fBfA(fBfA,fBfA0fBA8BA4BaABAB ABABfA fBfA$fBfA(fBfA,fBfA@fBA0BBA8t2 BA=tW= ABAB A BA$BA(BA,BABD0D C|mABfAfB fAfBfA fBfA"fBfA$fBfA&fBfA(fBfA*fBfA,fBfA.fBABABAB[]RQS0t []UE UEEEEEUPhBIRM ]ÐU8WVS]EPV|UEPU ;|yVEPS訲 M ;~3AE +Pu$At[^_]Ð3[^_]ÐttWtD0U ;~[^A_]h@SQWSJ3[^_]ÐUE UEEEEEUPhBIRL ]ÐU0WVUSEE ‰EB%PEE@%PEEEAp EEhhAVURMQz؅}5[^A_3]ÐE`A[LAAuhAt@U+UEUR PnutMI~+}Ћ]SVMOt} EeAE`A`A\A`AEEAHM PAEU;MEQWVPUR\uVEVEV M؃uIE=HA%P8UW@U+UA3[^_]ÐEtE= GEu E=t&@tSURh@OA Et XA;uE܋U;uGEXAE=u TA TAEu=LAW'|ׁ+;=AESH8MWVbUBU M| E;mEtEEE@thdjU \ARQB[^_LA]Ð[^A_3]ÐEUPWVRMQi |[^=LA_LA]á@dSh(@?QU@WVSAuu==t3}LAtr$=t3}LAu.uKGu؊GO<.tA=st[^_3]ÐjWP [^_]ÐPAAATAXA`AAdA\A`A[LA5LA^_]UWE Vu=E=@u=%PF%PF%PF%PhP@PZXhPj jPn,}E@t hl@=A=suUM RQV* ^_]Ð3^_]jWP tEGE G `AAdA`A AG^_]ÐU@u$h@h@@E@]Ð@RC␐U@t"@u@R藧@]ÐU@WVu/h@h@P@u @QhhAڤ EE#th@PkZth@EPSZtx\AAAAUR\AXATA= J= ?3t+GG= t=  3^_]3th@A=LA5PAWYtGt\tV= t= u 3tG(HAs>h@WLYtGtu^_LA]UWVSuj(t>VREt._ tVPEtSuu[^_]ÐUWVS]uj-t)W;uM QSGP4 t uA[^_]ÐU @W3VSEt$E@#‹ @;tG;|3E;t$E ы @# @;tF;|[+^_]ÐU@W3S]I =3[_]Ð@tSh@9S_G?ãA=t3A}LAaEÀEt ãA=t3A}LAunu.Et'ãA=t3A}LA%_.EU;E=GPUUu89Eӊ_0EGE(AEӊ_+ЋE GEt/EUãA=t3A}LA1E&}U+GU WVSUR2jxh<@9t }[^_]ÐEE}EEPhBIV<AVA[^_]ÐU$W}VS~jhL@s|FEEA}EPhBIV*<ءAEVhƇAۋEAt 3[^_]Ð[^_A]UPE EE EE EEEE]ÐUPE EEE3fE]ÐUWUMRU QMEPRQ~ E.u_]ÐUUMRU QMEPRQ]ÐUPEU EERPE=u ]ÐEM+]ÐU.WES8HtiA.YtW.t .tu&A|Z~?a|z~50|9~+3[_]ÃA|Z~a|z~0|9~-uՋ׋u[_]ÐUU *u*B<.uBPS]ø]ÐBtR3]ÐU3ɋS]u[]ÐS[]ÐCSt. ~.})u.tt3 \uCSu҃.t[3]ÐUEPt ~|3]BJu]ÐUU MRQ]ÐU3fEU RPI]ÐUUR]ÐUUR%]U@u @@u @@u @f@fu +f@jh@]ÐUhOAUR]ÐUU MRhQ ]ÐU@u <=tUM RQEPh@]ÐU@u!;u d@A]ÐU(M$RUQME PERUQM PERQPh@,(]ÐU@u!;u d@A]ÐUM RQEPh@r/]ÐU@u!<;u d@A]ÐUMRU QMEPRQh@M]ÐUE\@]ÐUE`@]ÐUURh@U]ÐU@u=u ]ËUMRUQE PRh@W]ÐUh@)]ÐU@u!,;u d@A]ÐUMRU QMEPRQh@N]ÐU@u!;u d@A]ÐUMRUQM EPERQPh@JQ]ÐUhhAURh@1R]ÐUWVS} h@WEXtV Ph@Wu}Wj _t[^_]ÐG WBW[^_]ÐU W}VuS`#tt' @Qv]Euh@EPf[^_]j E 0VW|$_^E3ۃ4Yu0t,`tUMRQR PEh@PEuQE%P[ P3fEPYPt @Ph@UR谚 @EQPjjU PReA=uVMQgE@=}@P7\EEuZh @UR$[^_]Ð AQ6PEh,@PEUPRMQj CU PESPR+A=u,~XtT`tGE}0Pj r3AR$6Ph@@MQeEP HAHEPf[^_]ÐUPW}VuEUPRM QU }6AP5PhT@W^_]ÐWj lq^_]Ðj 0VuW|$_^LEj 0 VuW|$_^-EE%hEE%E3fE‰EE%E3fEƉE`tt3uEt(UMRQYPE\@Phl@W`tt 3t}Wj;rpG;OAO`tt 3h@W蟗j 0VuW|$_^ 3WG;t ;t ;t u 3tڋhAhA|EPhPxx 9E`E=;t=#u 3jhAP7} < t< E= t= u3t( WG;t;Ӹ3tt= u3>hWUR|EMƀ_hAQ-tEj hAPQ| < t< E= t= u 3t( WG;t;Ӹ3tt= u3VEPW jhAP{ < t< E= t= u3t( WG;t;Ӹ3tt= u3hWURS{EMƀ_j QktE}3ۍpD~tUE\;sI ;t u3t  t3ۉ~WGt E\;rt= t= 3t6 3WG;t;t;u3t⋵Ej hAPy < t< E== t= u3t( WG;t;Ӹ3t< PW]MًfCKj5[fCE@Ejh$APx J< t< 8E䍽= d= t= u3t( WG;t;Ӹ3tt= t=;u 3PhAhuu;tnuiA=t3A}LAuIWGtAPhAhu,;t%u A=t3A}LAtPV5UEpShA*hGt\;tW€uR£A=t3A}LAu2WGt*;t%€u £A=t3A}LAtPVtEU䋍t,UEpL$UMtEE= @jh0APv u&< t< uh8APMQ EPhP?q E=~ EUP EUdd ʉdEP7sE@`u@hPQu(j.Ppft@PE`P uE3ۋE`pFE`t.GuEP;xs,EPE|j.WeKxU;~rE@t@h@AXEpDtPhhA<VuhpA%h|A\ thAPMQ" EPP[^_3]ÐUPWVuS} FtURWhA E A= t= u 3t( WG;t;Ӹ3tjhAW t GPP=#d%d Љdd%d dFUd%PhA7jhAWss u(GP?P= j hAW7s u,G PP= FFjhAWr u t t/u-M M  j %WW ЉW+[^_]Ð[^_]U@ WVEES>E= 0j jUR>EEEf@@f@@%P%UD  ȋ‰ Ux (UFE̋E u [^_]ËE @WjjP#> E E܅MԋEA@MԉE؅Q=FuBF}35;|Ef@fEEf@fEE܋@ EЋE=EE܋@,-=wx$AEfM@(fMfEfEE@(fEE@(E܋@(fEE܋P,RhAhOAlhOAh[^_]ÐE=uVE܋@,t8=tEE܋H,QhAhOA?lhOA[^_]ÐE܋@(hfEE̋UPDPERWHQU+ЉUw3ҊEfUWUwEWE؅u*E=uE܋@=@[^_]ÐUUUЍGpF}UUEЈVE܋@(u'E=u Ef=uFE܋U܋@$ER(DEE܋@H=$$AMEQPhP`EPPEEPU؉U2ӍGpFVMEQPhP3EPEPhPU̍DRPMQWP؅E+ÉE{F|E܋@=BUUSE%,A=t3,A}LAu Eu4E@E%,A=t3,A}LAuՋEt̋E(u E@EE3]ȋEPEPEUȍGFXCUUSEȈ|EV E%,A=t3,A}LAu Eu4E@E%,A=t3,A}LAuՋEt̋E) UERP؅ MEQP؅ E-E f֋ƈGEURPw MMr f֋ƈGEPEPE؅4 UU/ fM֋ƈGEQPhP  E̋UPDPRWP M+ȉM EPEP f֋ƁGWUUr 3MEQPhPo @ E̋UPDPRWP8 M+ȉM F| EEPEPhP  EPP腿 UR=M؉M ӍGpFEVPEPhP| M P6 UJU3 3%G3F5|MEQPhP tlP؅  ˁ U;v]ȋMEQPhP uEș‹U@+ЉEȉUh PPWb4M + 3EPEPhP ؅  UC+ЉU SGPW3 F|MEQPhPo ؅ EPEPhPC ؅ v n UC+ЉUg SGPW^3MEQPhP ؅}3ہ UC+ЉU SGPW3 hPUR MPQ؅U+ӉUSPW2 qUERPhP`EPPh`@{Eȃ ;/MM*֋ƈGEPEP uNEMGQP ؅NuEUGRPhPEPP=؋EăuAMMhUЍGpFUUVEЈj EPP؋E t E-EӍGpFEVURPhPEPP_؋EăMMӍGpFEVPEPhPc4EPP؋EăUUӍGMpFEVQP ؅E-Ef֋ƈGEURPhPxM̍DQPEPWPpQU+ЉUKMEQPhPJEPEP{UUfM֋ƈGEQP؅EHEEUGRP؅UMEQPhP`E̋UPDPRWPX9M+ȉM3j 3S$P. EPEPhPEPPh`@ Eȃ v)m2$}tʋ ; ËM+ˉMS$PW, EPEPUUfM֋ƈGEQP؅}E-Evf֋ƈGEURPI؅8MIM5EPEPhGP1hPP2- U+ЉUVPW+ MEQPhPEPPjs sE-EljEPWh+ 6UERPhP؅E;M+-Yf֋ƁE܋@ E܅yPRU%JJ ȉJP-U%JJ ȉJPU%JJ ȉJPU%JJ ȉJNjU+ƒ[^_]Ð,UC+ЉU|)SGPW * [^_][^_]ÐU,AWVSuE};wQ3ۋu3}LAuuE;u&U @ED;s GE;vU[;^_]Ð3UW}VuSEMM;ЉMMMO3ۋAM;u+Eu$,Au3,A}LA"t.\EE3ɋ@MMEuaEEE@ShA]G-AU҃؋E@]E=u :gEuEuC,Au'*C= w $AE3,A}LAu#EU D;sG@E;M;uEt 3[^_]Ð[^_]ËU[^_+‹]ÐU W}EVu S;sjh AR t-VWR[^_]Ã)E#E; 3ۋ,Au 3,A}LAuuE;u/;w t@;w uE,Au3,A}LA%0@,Au[^_]3,A}LAtES‰ESU-WЉUE;E[^_]3U ,AW}Vu UUS;3ۋu3}LAuuE;u';w t@;w uEtW_u3}LAu)u Et4[^_]ES@E‰E;<.uWVPHƄ= ]uUVGSGD=| E A[^_]SVhAPU MRUQMEPERQP=[^_]ÐUWVSE@u)hAUthAPF[^_3]Ð^tH0A=t30A}LAu(SCt £0A=t30A}LAt؋EHMPVQGEUDWdDE[^_]ÐjWEWhPAtH£0A=t30A}LAu(NFt 0A=t30A}LAt؊U RPj=uPFF0A=t30A}LAt"FF0A=t30A}LAuފWhPA W=C3[^_]ÐUWE VuS3MHMHMH MV ;~Ru3ɋ~ uы]\;u.33fCfU;uCt ES;u [^_]ÐA;|[^_3]ÐU WVES]x @%P蹤HMhPEWSP譤| ;v[^_]Ð[^_]WuWuM ;u!E;uMQP衙=tEPUj[^_3]ÐU WVuSF~ %PܣEF U ;EU ;w|%=uE%=E@%PM;uEQɉUhPE WPVl| U G;v[^_]Ð3[^_]ÐWt؃WtMQURPSPtËEHM{[^_]ÐU`W}VuSG u.[^A_]A[^_]Ð |Gu `t%hAhOADhOAURM QW貫Gu E=~3EEr3҉Eftg3ۋG ;]~=uG ]PDPC;|׉]]utWfLJffu]EG ~Du3_ DPPfDŽwDŽF;|ʉuufG fG@t3G_ KۉMHMHMH ME܋EfGfE~Qu3F;P JHJHJ H fwfw|uËMDMHMHMH E܉fEf_EGG EԍGEEEԋE܋EDE̋E܋tm3ɉMȉMčEMPEVQPE PEPE=D$AE%W>E@E=*EȅtGt.ẼL$VPE@Ph,AhOAAEt8GUEERU PEVMQPRW ؅uEEMPEPEQM PEVPURQW$؅`tzE]Gu` tthTAhOAGAGu` hdAhOAAEhOA;~^]UEBU;FEEЋU;WKEEAsEPMQWvEt Gt Gu Wti3ۍ]ȉE؍EUPEVPRE̋M QPE=w$A%UBUȃ*|W[^_]ÐtE[^_]ÐArEA[^_]É]]uC~U8W}VE ESDEEWE|]tPEEPEPR> |MEQP[ uW%|| W_jjj A;~W3A]EAARhhAhOAWV [^_]ÐEAEAL$HL$HL$H RhtAhOAL$W W3$[^_]ÐAjMQP0 | EPE%P辝jEPPMЋHMԋMQE PPM؋HMjEPR,U;t|EA AQhAhOAW) W3[^_]ÐGu ` t.hAhOA=EUhOA;PURW֣ufM3fPVR  ؅~,f)]fEft3fEPVQj  ؅ԅSEAAPhAhOAWVWElu EW3[^_]ÐMQ?kEEU;~+GthAhOA"<EEEfE%= }9WtPhAhOA; E_W@3[^_]fEuftG%PVP[  ؅~+f)]fEft%PVR0  ؅Յ5EA AQhAhOAWW3[^_]ÐEt_EUE+fEftAfEf=v3fEPPQ  ~ f)EfEfuŋE U%;qE[^_]ÐUdW}Vu E SDEjjj A;~WA]}~EAARhAhOAW[^_]ÐEAL$HL$HL$H RhAhOAL$W4W>3$[^_]ÐjMQP |Gth AhOA96jME QPVU;t+ AQh AhOAW,W3[^_]ÐM E~ EEEEP0M܋HMjEPEPMԋHM؋MԃEL$M؉L$M܉L$ML$PM̋HMЃ$EAEUPEPjRMQV苑؅*APh<AhOAW@W3[^_]ÐE( }:GtShHAhOA48 E_W3[^_]ÐE U%;tCGu` h\AhOA7EhOA;GuEPW!GUEPERU PRGu ` t+hAhOAA7EhOA;PMQWEP0M܋HMjjEP^ƋD щM܉L$ML$M̉L$MЉL$~}M܃EL$ML$M̉L$MЉL$PMԋHM؃]Gu` 8hlAhOAN6EhOA; jjEPMԋHM؃ jEPEjjPFPEu0Gth(AhOA5E([^_3]ÐE A=Ph4AhOAWpW 3[^_]ÐE%=t=t=u 3tRGt+hAhOAA5EhOA;PMQWW`u [^_3]ÐG uFEt:GthAhOA4E$W7[^_]Ë[^_]ÐUWE=A@tEUR-P3fEPܑYPjEPEPEPfIMPE QhAPD4=A_]ÐUW=AE@tURPE MQhAP3=A_]ÐUWM }ff9u&33fGfQ;uAW;и_]Ð_3]ÐU3ҋW}M f;u&33fGfQ;uAW;и_]Ð_3]ÐUU MfffBfABA]ÐUW}Vt-uEL$OL$PMHM 3EtEUPRj VMQMEU PRQaEtjEPj t'MEL$ML$P- HO^_]UE UE EEEEEEUPhBIRd ]ÐUE UE EEEEEEEEUPhBIR" ]ÐU$WVSjhAe}2hAhOA1hAUǃ [^_]Ð[^_]ÐEEEE EEEEPhBIWW|WV)VД }h,AÃ[^_]Ð[^_]ÐUW3Vu S]CCCECECE3EE3%U3҈EU?ˆMEE<@r E<@r E<@r E<@r GU;H׋MEGxA 3ɋ׊MGxA 3ɋ׊MGxA 3ɋ׊MGxA  E23ɈEEt CAS;ΈT r3EE3%U3UEʈME<@r E<@r E<@r GM;wc׋MEGxA 3ɋ׊MGxA u G AG3ɋEMꊉxA ׋EG A E;r[^_]ÐE8[^_]UPW3VES}0Xy54Au34A}LAH=LVhxAK=$AE t!EU;xAE E t;EM@;vE U΁xA  ΁xALE@EE t;EU@;"E U΁xA  ΁xALMAM9E tEU;΋E xA  UB3UCs=3C=$At*54Au34A}LAt Csuփ=uM3Ct+54Au 34A}LAt#CsuՋE tUtt [^_]ËE[^_]ÐXUD$ EEjhPEEE EEMMHE ]L$QÐU WVSujDIIuX[^A _]Ð3ɉO4O8txF4p8NL$ML$F^_]Ðtjh(AjhhAA렐U W} VEW$RO QPĸ ~3GtO L$ML$VW }A=tG,AG0W,tG(;u 3tWML$^_]ÐU W} VEW$RO QP$ ~3GtO L$ML$VW,u G,A=tG,AG0W,~G(;u3tWML$^_]ÐXUD$ EEEE EEMMHE]L$QÐXUD$ EEUM ‰EEE=ʚ;|EU@ʚ;EUEMMHE]L$QÐXUD$ EEUM +‰EE;|!+MMEMMHE]L$QÐE U+‹Mʚ;IEM̐UPW}U+u} M+}_]Ð_]Ð_3]ÐXUD$EEjP},jjEPU HJE ]L$QÐMEL$ML$P:ŐXUD$PW}E JHE_]L$QÐXUD$ EEEE MEEMHE]L$QXUD$ EEEE EEMMHE]L$QÐUW}VU RUMEQMPE RQPWhxAjWk(EuEuEPMHMjd@u#^_A ]Ð^_]ÐjhVE EFFMMHFMM HV$R4|E$t0G=~"hAjWWh$$QR6^_3]ÐUW}Vu tX uQR;uJhAjWMjjEPDV H3J^_]A^_]ÐVR$Q|5;uыFP$Re4}^_]ÐjV@G=~"h AjWWh$$Q\5^_3]ÐUW}Vu S3ۋVR$Q4;tA[^_]ÐFMHMEEFFMMHFM M$HML$ML$ML$ML$=t"t6=u1FP$R3؃NQ$P3؃3ۋG=~"h AjWWh$$R=4[^_]ÐUW}Vj=u-^_A ]jV\?^_]ÐjhVE EFF JHFMUMHMRL$ML$ML$ML$L$HEL$PL$HVh$L$ ML$,7EF^_3]ÐUPU RjRr>M L$ML$]ÐUW}Vu EvEFF JHFMMHML$ML$ML$ML$L$HEL$PL$HVh$L$ M L$ML$ ^_]ÐUPWVu }vF JH^_3]ÐUPhh`$h$- ]ÐUPjh$E$R1E$Q-]U E L$HL$EL$HL$]ÐUEU P]ÐUjUR<]ÐU W}WROQG PWRU OQPh< AjR$_]ÐUW}Vu FL$HL$L$HEL$PpMHMFL$HL$ ML$ML$$|iFL$HL$ FL$HL$MVRL$jjEPMV HJjVY;,^_]ÍFML$ML$L$HEL$PV HJ^_]ÐUU MRQ ]ÐUU MRQ ]ÐUU MRQ]ÐUU MRQd]ÐUWjjx7} A=u)h<[8u"A _]Ð_]Ðh<hW3Ƀ G4OOO OOOjjP_jjG\PRjjPBjjP2LJLJ3ɍOhXjP3ɍEP HJWD$33ɉ,84E(08_3]ÐUUE BEB]ÐUWEV1yE2yS~8EP t.p ED$ML$O~uՅ}jh Ajhh AAO~>Et1ED$ML$BO~uՋO~8EHt.pED$ML$O~uՅ}jh Ajhh AAURE(EO~]EtVE@ EE0O~t^ jV7O~ujMQ7EEO~EuE,O~t^ jVT7O~uh<EP673[^_]ÐUW}VE0E0S=tA[^_]Ð(P HJj 4Hj hVE 03 [^_]ËE= 3;θЋH4uH\uѸ3u44PV=uA= uVh AjW F;~E[^_A]Ðu,tEu!Et[^AZ_]Ðu&ujh Ajhdh AAtCEu<L$HL$ ML$ML$EtEEt>j 2j hVBE ^03 [^_]Ð3;uE܍GE؋E؋u FuEIE؋W3ۋE؋EԋE؋UԋREԋ@UE EE#tEUHEtEUpEtEԋH #tUE#UE܋JtEM#E܋JtEM#E܋Jj 1-j hVEFE ^03 [^_]ËE܋}Ph AjWLJGj 1j hVOGFG =ujh$ Ajhh AAGtW GGGtWGGGGE 0[^_3]ÐtZj 0j hVjF @8LJ,ujj$R&؅CMHML$HL$ ML$ML$IE~j Q/u[^A _]Ðj hV,F, @ ,u LJ0E 0[^_3]ÐEQhH Aj W>Et*u&=u[^A_]ÐEuuE/Et AEM A3ME EE܃G EЍG4EGHE̍G\EGpEȍEEظEċUEЋ JHJHJ H JHE̋U JHJHJ H JHEȋU JHJHJ H JHE؅tgEU;tjhl Ajh!h` AAL$HL$ (ML$ML$PMHME܅t@PE܅tPEȋEREQP@Phx AjWjURUЋMȋEQPR@PAE؅t7ML$ML$L$HL$]E=EMUW}Vu S7=$ AvPRQRPRh AjWtAFxQPFtPFPQJQML$8M L$ML$+3[^_]Ð^vCPRK QCPhH AjWVSRKQML$,떋vFPRNQh| AjWF0AF,PVRNQML$(SvFPRh AjWuFL$HL$ FL$HL$NQML$,vFPRNQh AjWFMPVRL$$KUW} VS]=D$ AhWR+h AjS j W+[^_]ÐGED$ML$ːwNQ$P;uFu'Fu ut$ML$낐uFL$HL$FL$HL$ L$HEL$P$L$HL$VRQML$ML$! jGP*UPjEPML$g Ѕu@ML$ML$Ѕ|jEPML$' Ѕt]ÐUU勂]UPW}UGt$E O;|RMQGP薽WR_]ÐUW}Vt-uEL$OL$PMHM 3EtEUPRj̴ VMQMEU PRQ1EtjEPj蚴 t'MEL$ML$P HO^_]UW=8Au#hj=8APq _]ÐU WVS] uEAu[^_3]ALJ( Aj+t[EL$AEEPEPURYPMQPR$ty==Ajt4O;u"G ;uSURGQ躓 /u;[^_]ÐEUPR#MQ4Aǃ [^_]Ð[^A_3]Ð[^A_3]ÐUWVS]/EAu8[^_3]ÐV8  z[^_]ÐLJ8 AjE tV3 G|33ۺUȉUL;uE;u }u0E*M;t E;t E̋M;~ MMȋMĉM̉UG|E=t E=t E̋M;~ MMȋMĉM̋E=tE=}E3E=ÍuЅtE;|E̋U;} ;uR:FLt:Fu*Eȅu#E==uE=DPh`AVy G|E=tE̋U=u:FUFM+;v![^A_3]Ð3[^_]ÐEPE PE [^_]ÐMЋ+Ѹ.+PEV P tVaUEUM =t=uRQ/]RQ!]ÐAe]ÐUWEV3ESE@}EpVhdA#؅tNdAE u ˅ttcw[Eu5MAMF".u7t3E=t)E@3EE@EplE=} 3[^_]ÐjEPU R衶 [^_]ÐU(WVSjjE؉EPE EEE:uP@E:E3EE0PUVoAMQ؅uVAMQ؃t M+ zE{:;EEEuEOEEQE7EU;$E׋EHׁ3HME@Ep#EUUEt6EM;׋EHQUׁEt8uU+E;t};|MދE++G;~EEEM;uJjEPE P藴 [^_]Ã.u'EU;wMEQP [^_3]ÐUU MRQ蘖]ÐUU MRQ|]ÐUU MRQ]ÐUU MRQܓ]ÐUdAWVtAU pAt-^_A]A ^_]ÐEu LEu lA£hAPpdA@P_ dA\AyqPdAjP蓳\A@PjR~`A3^_]ÐUjjUR ]ÐUWVSUR.dAu0jj=u[^_3]A3[^_]ÐEttAM;s;r9tA\AtA\ADURJ[^_]ádA `Au]pAPEu[^A _3]ËU5pA2 pAC|?E`A3ҡ`AE5pA`Aȡ\AD\AD EE3ۍ48H~UI2C;|UdAEdAUdAE\A\AUD\AD8 [^_]ÐUjjU MRQ ]ÐUWVS\Au V,dAujhAjhXhAAub[^A_]ÐEPtA ujhAjhhAAtA [^_]ÐtA;t;sdAEdAU ujh0Ajhh AAD8 [^_]UWUM RQEPE WURMQPhHAhOAǃ$_]ÐUU MRUQEPRhdAhOAvMEQMPU RQy(]ÐUdAWVS]tA;rv \AFutRtAR;NQWuAAPh|ASFtV RPhASSj GtA;v[^_]ÐUUʁt +Ћ]ÐU\W}Vu SW=t[^_3]Ð3[^_]Ðj\jEP薮Vh'hjW-lEGVj jjPHEGVjjjPEGVjjjPoEG Vj;jjP\EG Vj;jjPIĄEV3ۋE}3@EEH@E;~AC;|vE=~MElЁ}tuEdluEluǀQEF-Fui3;~LlЁ}tulduluǀQC;|[^_]ÐUxAWV3S]3U ;~93=t3}LAu E3FE <;||NjE;} EU;~ E[^_]ÐUW}Vu S3ۋEGEU ;tM;.F3U;E%PTGt FU;\FEF3EPqubFM;\F3FEFйdVAF3E¹ VAF3EFVAFE;s4EFK@3G_U ;u M;s .FE;rA_[^_]ÐU F[^_+‹]ÐU WEVu 3EƉEEFS@EXJShVAt{-VAMAEMPhVA-VAUB؋EUPhVAztw-VA؁h3\u .u{ދE+Ku;EU;s1Eu>t M;sF+u  [^_]A_[^_]ÐtE.tڋFE M;sɈFE@EXދU+KuE;st E;sF+u [^_3]ÐUW}Vu S3ۋEGEuD3FU^;rA_[^_]ÐtIGGE%|A=t3|A}LAt3EP褂FF EFKu3G_uM F[^_+]ÐU W}VUEE:uEES;E ;3F^DM;3U ;UCЈUSVGWA RM ;E} ƋU+@E?M3Ҋ ڍ4;rTE ;sMU+U;}>3F^uE}+uuE[^_]Ð%?=p[^A__]ÐUW}EEVE EEU MSE3E;t5QUEt-‰EtыuUEEE33ۊGC6|u׋}3ۊteEt^MEQPURW^Et8M-;s,EU+=@}EtUHM3ɉMEUD;CMPWQJ E|ۍDENEU;w_EU +[^_]ËEM@;sEEЉUց} tE@PU [^_+‹]ÐEt E[^A__]ÐUWhUPERM QPtURMQP =u _]Ð_]ÐUhPUR =u ]ÐMEQM PURQPP]ÐUWVS]} u;st;s;su[^_]Ð[^_]ÐUAWVSMu 9;s.3G_t$;s3G_t%t=uG;w 93[^_]_[^_]ÐUE="t#=$t=.t=;t=@t=\u ]Ð3]ÐUU ~]Ð3]ÐUUA| ZB ]Ð]ÐUW}VMS;}E83t3NjU +=@3ۋEwEtn3UBUB;uWt1}3PQGE3PCFU;u(Kuډ}}EuFu@NjM +[^_]Ð}3|3tuNjU +=@|EtJ3>MEM;[^A_]Á?3 ڋU 43F^p%=t[^A__]Ð3U3ҋMQ] Ð3U3ҋMQ] 3ҊQ 3ҊQ ÐUEM ЋA]ÐUWS}] CHALjQ[_]Ð3UfEU8 A# A]ÐUPWS] }E}~ASW.|7|EtG;w%33ҊW UJU;vA_[_]ËM[_+]ÐUW}U VS:uEj0j^V EFGM>;33ҊW fFG;33ҊW 3fF G;wr33ҊW fD |3fD^ fu D13UfD^ PSRWȅ} [^_]É|C|M;t[^A__]ÐjVT3[^_]ÐUPWVu} S|;}6V$;t WVE=uF(EE|3MfD~ ;|$[^A_]Ð[^_]ËF(U;} WVF(U;~%+V(RWFPV,R|F,F,EF(hEPV,RNQPT+E|V,E‹NF,;^,E33ɊK 3f^,E3҉^,K fF,F,u E3f F,V;wu^,E33ɊK 3ɊK 3ɊK 3ɉ^,E3҉^,K f NF,F,EV,f %;v[^A__]ÐV,EV,f %‰F,F(3fD~ V(;~ GPV [^_3]ÐUU MQ$uA(A,]ÐA(DA,]ÐUWVu }UMRUQEP3Rf PQP3fP3fPtPG+PR0^_]ÐAU W}(V3S]E0U EE$…Et?URW]=u+E4PE0PjhA/[^_]ËM,EQPEtqu!E4PE0PjhA|E4UPE0PWR|E,t!tE,.t<@t5Eu+ED<.t E4PE0PjhAxIGE4PE0PVjW*E4U0PRS ؅E4PE0PSMQp8PEP8YPhAEPt E4PE0PEWPE$E4PE0PVjS"E= = 8=tG=_\=E$=oU4M0RQE Pj E4U,PE0PE RPM EQPE4PE0PjhAE4U,PE0PE RPM EQP`E4PE0PjhAEU +=RE E E4PE0PjhAyJWhAEPOs E4PE0PEWPHE4PE0PjjWE4PE0Pj hA U R; U RM M P?>PEhAPLkE4PE0PEWPEE PuU U P=PEhAPkE4PE0PEWPM Q U U PhAEPjE4PE0PEWPE4U,PE0PE RPM EQPbhPEU +PRw~)E4PE0PjhAMAA?3ۅ~^E4PE0PVǼYPVE4PE0+P0}0PP0;| E4PE0PjhA{{ = U$PE PRE4 PE0PPYPPT%% =W=h E$=*M E+PQU R M 3ۉM A3YM AM PSWhlAEPh E4PE0PEWP hPEU +PR螌E4PE0Pjh|Ah 9AE$=VM Q]U U Ph$AEPhE4PE0PEWP E4U,PE0PE RPM EQPb E4PE0Pjh(A AE~jE4PE0PSBYPS [ME4PE0P+у0}0PEPN M0M;|~E4PE0PjhA VhAEPfȃ E4PE0PEQP =E$=M4E0QPU RjE4M0PE0PQKYPD m=%m=!=E4U PE0PE,PE PRMQ 3ۋu+u <Ӂ}tʋU :#t7S-)PEhAPeE4PE0PEWP C;|xE$=U RM M QU U RU U PVWhDAXP.e E4PE0PXWP$ U R+M M QU 3U BU PVWhAdPdE4PE0PdWP M E+v,E4APE0PW%YPWm >>WPEU +PRQL~'E4PE0PjhA AA3ۅ~^E4PE0PV裶YPVE4PE0+P0}0PP0;|{E4PE0PjhAWW=#E$=oM QvE E PcM M PWh0AXPcE4PE0PXWP E4U PE0PEPRyM ȍE4M PE0Pjh8AE4U PE0PEPR,mM ȍE4M PE0Pjh<Ao@E4U PE0PEPR tVM ȍE4M PE0Pjh@A&E4U PE0PE,PE PRMQ~4A+=Y=E4M,PE0PE QPE UPRlE4PE0PjhA|MM QU U P-4PEhAP:aE4PE0PEWP3U RcM M P3PEh AP`E4PE0PEWPE PU U RE E PM M PVWhAEP` E4PE0PEWPRRE4U PE0PE,PE PRMQ$E4PE0PjhA4E E P<.u+vD><\u rD><\uO>tD><.tՋG.>^_3]ÐUhPURR |hPM Q6 }]Ð]ÐPPEHtڋ3]3U<WVES]E EU3ҋ3U3ҋ3ҹ3ҋ3ҹ3ҋ؅t!EPE PjWSx3BUtEPE PjDVS|yEtEPE PjHW5|[EEtEUPE PjMR|7EEuu;u7u3Eu,EPE PEjSP}[^_]ÐEE=~H}7t>ƀu-5Au 3A}LAt VUwGu‹E M[^_+]UWEEV33S}@ۉEÀAu3A ]AAu3A}LAtCЍ<FAu3A}LAt SL؃Dt Ht!Mt%St)Wuo<<<<<t8j RW؅th PPu ~U;} 3[^_]ÐtEM +PjQtVPEE +Ptƃ[^_]ÐUPWV}Su u~GGu3%=t33ҊN3ӊ#;u[^_]ÐUWVSM }t[^_]Ð3ۃ~33ҊWƒ؃~ 3؋%[^_%]ÐUMt"A<u#U LQB%]Ð3]Ð3A=tU RQF%]Ð3U3ҋMQ]% %Ð3U3ҋMQ] 3ҊQ 3ҊQ ÐUfM EыH]ÐUU M‹AAˆA]ÐUPWVu }St^j\W_wuOj/WPwu@j:WAwu1t-j\V.wuj/Vwuj:Vwt 3[^_]V^WVD[^_]ÐUVuSURjVq E tsEtlP؋E PD U;rMEMQ%PEPU RhpAV Lj/Vav uj\VRvuj:VCvt [^]Ð[^3]UE~PURMQhA/1]U,W}EVE St3t/WD؋U R9t@wt=@wEu[^_]Ð[^_]ÍEPWuE@h=t֋UJffEEfjjPjhEHPW7u2hA6Pj]fUEfPJW[^_]fUEfPJE E؍Eԉ}ԃ AL$ AL$MQhPhjVF EthAE@`Px3Pjl]VFPUREu [^_3]ÐW"[^_]ÐU,VE ESt6Et/P襜؋M Q蚜t@wt=@wEu[^]Ð[^]ÐEUPE PR uE@h=tϋUJffEEfjjPjhEHP5u+h,A]4PjQ\fUE fPJ[^]fUEfPJEEԋE E؍Eԋ AL$ AL$MQhPhjVF EthPAE@`P1Pj[VFPUR`Eu[^3][^]ÐUjU MRQ ]ÐUXWVS]Et Pu[^_]3[^_]ÐAAA] JHJHJ H hAhA諘MQhA蝘hAhA莘hAxuA3F AF3؅uߊFNEG;wjhAGm=AtXjjP% uARA,jEP AQmfEfAAP]U MRQh1EEAEE3 fAft EJE|E;ø3jEPUR =u׍EPEPu'E=EuwE= umfAftUtP E+EPEPEPEVPEP:tGt̅|;}:fAFftuEEMPEQPEPc u E[^_]ËE=u W E 8[^_3]ÐUPEUPR]ÐUPEU PRMQ# ]ÐUPU ERPMQ ]ÐUjUR]ÐU(W3VS]S脗[^_]ÐEj jEP9jEPEPV\RuEf=u33fEfVd;twF\EP轑؍E܋V`PRBPF`P@PMQS跑S`E tA5AtFPS S6u[^_]ËV`EPRBPF`P@PF\PA;u AE܅t hACVVf[^_]ÐUVAt^]Ð3^]ÐhPOuPt͍P@PfZtPQ袕^]ÐUjUt3]Ð]ÐUAHWEVSEEԿP;AfA AMȹfEfMf=A AtEPEPu"fAjEPj =t3AA E؅A3fAPnfEƍEPEċ AjhL$ AL$ P{8tbE APEhPhjL$ AL$VFVFPURE(uE=u[^_]Ð[^_3]ÐUVABA;t#AtjP>u^]UW=AVutlGPVt ?uSEEPEPW\RX u)Ef=u 33fEfWd;uE 8^_]V^_3]ÐU APWV}fOjofGjjGPeA=u[jjjc u-E ^_3]VE 3^_]ÐjWVg |V^_]ÐUW}VSAffu#[^_3]ÐfE 3[^_]Ð A3fOfPfGjjGPejjjbtjWAV'V}/A=ft= uf;slt [^_]fE [^_3]ÐfAU AWSE视EEEE EEhhPUjhL$ AL$ R2 uE[_3]Ð[_]ÐE AhAhPhL$j AL$WGWGPMQ(ufAfuE [_3]ÐEEu[_3]áAP;[_]ÐUWVSAu tlAucjhAYc=jjP jjPRj UR Q:cPEEuE=~hh AEPEL$ AL$QhP0 uE[^_3]Ð[^_]Ë AURhL$ AL$ MQhjWGEWGPEP.(EAEuQEtu E=| =uAR9E A[^_]ÐAE= u#uE [^_3]ÐAP9fAE[^_]ÐfAUft]Ð3]ÐU ERPtME QPUERPs]ÐU$EWjlcRu>hAj2NE3_]ÐW]E3_]ÐUGLJfGHfBfGJjjGPP[` Ef@G\fGXE =u Gh Ghh@hG\ APE =L$ AL$u PGHhP\. G`2jjW\RjjEP_fEjEPO\Q"EPEPG\P0u/fEދUfGdRGPbAlj=A_]ÐO\QuWe\E3_]ÐU A WVEuh@hEPFHjhL$ AL$ Pe- tZ Ajh4jh4L$j AL$WG u,F`P@PV\R~`UFhV\^_]WGPMQ^_]ÐUEt=t=t=t 3]Ð]ÐU W}VS] t)t%W/S't@w t=@v![^_]W>AR5EPWuӋE@h=u pMEQMPURQ AL$ AL$EPSWփ$=t[^_]ÐU WEEE EEVuS]$3}}}}ML$MPEhXPhjEL$P`RB t[^_]ÐE=t PuHEP]Nt,EPFNuPYuYUE MURQP[U UDUE(MURQP[U UDEP`EPhXRBP ǃ [^_]UU(M$RUQE PRUME L$ML$MQPRK$u5M(E$QMPEU RU QML$MPRL$ MQ$]ÐU0WEEEE EEVuS]$3}܉}}}ML$MPEh PhjEL$P`RB t [^_]ËE=t PuHEPLt,EPrLuPWuYUE M܋URQPZU UDUE(MURQPYU UDEP`EPh RBP ǃ [^_]ÐUW}VS] t0t,Et%W(S t@w t=@v"[^_]ÐW6AR1EPWuҋE@h=u 0M$E QMPURUQ AL$ AL$MEPRQSWփ,=z[^_]ÐU(WEEE EEEEEEVu$S],3}}}}ML$M PEhXPhhjEL$P`RB t[^_]ÐE=t PuHEPAJt,EP*JuPUuYUE(MURQPWU UDUE0MURQPWU UDEP`EPhXRBP ǃ [^_]ÐUU0M,RU$QE(PRUMEL$M L$MQM PERQPC,u5U0M,RU$QME(PE RUL$M L$MQPRj$]ÐU0WEEEE EEEEEEVu$S],3}܉}}}ML$M PEh PhjEL$P`RB t [^_]ËE=t PuHEP]Ht,EPFHuPSuYUE(M܋URQPUU UDUE0MURQPUU UDEP`EPh RBP ǃ [^_]U|A xAWVSuE] RQP@ >EE$RRE$UE(MPE$PE SVL$MRUL$MQWPR EWR4Eu |AxAQPR oE[^_]ÐUU MRQ6]ÐUU MRQs]ÐUU MRQP6]ÐUU MRQ,4]ÐUWE3VA=t3A}LAt#URn=Et]E M+MQt>F U PRFQS tEPhAjA ^_]ÐѐUUMRjQEM L$Ppt)E]ÐE]ÐEt!PEjPM UL$Ru3]ÐU W}M fGHOLj+fGJj G\fGXG\PGH AURhL$ AL$ P$$ G`u6hAPhtAjs@E3_]ø_]Ð Ajh4jh4L$ AjL$O`QA EtG`P@PG\PE= thLAW`RPE_3]ÐUWUM RQEP tW8 PU RhAj?_]ÐUE UM RQEP uEURQ-u3]ËE UPERMQEL$P]ÐU WAVuSAtQ AtH tBQUR|u1E QP|u A3[^_]Ð[^_]jlj\tEM PEPERPPEQPu E[^_]ÐUPh At RMEPt RME P3[^_]ÐU APW};u8 A AQMAAPsMAG`P@PW\R]WMM3 _]ÐUEU PRMQf t7E PhAjs=3 ]ÐM QhAjX=3 ]Ð Ajh4jh4L$j AL$EP`RB u]ÐU W}VS] t0t,W|S|t@wt=@wEu"[^_]ÐWARN'EPWuҋE@h=u MQ AL$ AL$EPSWփ=t[^_]ÐUWEEE EE3}ML$MPEh Phj EL$P`RB t _]ÐE=t PL u!EP^{@P?UuuEURQzEP`EPh RBP ǃ _]ÐU0WEEEE EE3}}܉}؃ML$MPEh PhjEL$P`RB t_]Ð_]ÐE=uMEQPxu:U MRQxuhAEPxu u!UR.z@P>UuuEMQPyEP`EPh RBP ǃ _]UMU uA]ÐUW}Gt PIGt PIG t PtIGt PdIj jWp[^_]ÐWVkE PShm3 [^_]ËuEPuEPhDAW荫=|U ERPkuWj3[^_]ÐUWV}u VW.t/FPW=tFPW^_]Ð^_3]UU MRQt%E PEP]Ð3]ÐUU MRQ-t%E PEPW]Ð3]ÐUWV}u VWz-t/F PW tFPW^_]Ð^_3]UjU MRQ/ ]ÐUU MRQt%E jPEPq/ ]Ë3]ÐUU jhABPRUR0]ÐUhU MRQ'1 ]ÐUWV}u VW.t?FPW=t.FPWH,tF PW^_]^_3]UUu( A]ÐUE=w+$AA]ÐA򐺨AꐺA3ݐUEtAR APEt;APEMQPYPU MRQhAhOAlF ]ÐAÐUE UEEEEEUPhBIR ]ÐU0Auh2.0A0A]ÐUWS}u 3[_]ÐEUPRBPM QhLAWW]iEPBPWiWEiE(=$4AE,ARhTAWRW iMEQPhdAW-WhURChAWWht ShA MQhAW Wh?EUPRhAWWshMEQPhAWWShE[_]ÐUU MRQPh AhOAj]ÐUW3M|A;tr!A_]A_]ÐUURPh"AhOA4j]ÐUWu 3_]ÐURh"AW AQ]PWreA= t+=u~h "AWQeAP*PW?e\h"AW-e A~%4A A;} ,AQWe! APh"AWfY8R _]ÐUURPh "AhOA$i]ÐUW3M A;t@r3_]ÐA_]ÐULW3VS]j *u*hx#Aj&A A Ajd*u,h#AjT&A A AeEf@fu6jURM QEP f43fPPUfB}|jjj!6jjEPS8fEjEP QZ$|jURP }&A A AP,G GUG3ɉO O JHJHJ H jEPgEEUM33EċE EЋEEԍG0jjPGLP+EPGLP" u5Gt P|t We4t VX43[^_]ÍGLPGPPGHGP@t GLPGPPhhWGLUMRQP-F<#A~^7[^_]ÐUDWVESu~G0_LEGuM GM$HEuE uE$u E EE3ɉ O$IQDEGHPG0PSGPP t2E PSGPPt SRBPtMQSUu5G$uG$jS1G$[^_]ÐG$[^_]ÐEPS1tߋEu [^_3]ÐE uE$uG$[^_]Ðu3_W$;OEM;uBuG$PEP!G$EPP@Pu\G$G(iE4u܋ AM̋ AMЋ AMS 0twEPSmXURSUuG$uG$EЅt9EPS\$EPUtQAP [^G$_]ÐUWExE W$ JHJH_]ÐUEUHLRPU ]ÐU]ÐUWExE H=$T#AUG JHGVWE JHAWE JHJHJ H !EG G_]Ð_3]ÐUWExGt RUGP@t GLPGPPW+0MQ"0_]ÐU(W}VuSAu [^_3]ÐF$[^_]ÐjjEP2D у MFM؋MM܋MMMMMMPjjEPP=t;wWE PR2 t@uHF(lF$3 {F$F([^_]ÐF$F([^_]ÐUWS}] ~WSER&! =t+E[_]ÐEA@$P([_]ÐUPW3VS]j #u:h<$AhOA`h\$AjA A AE E E$E$E U$DdP"u9h|$AhOA`h$AjRA A AGE$D`GXEf@fu6jURM QEPf3fPFUfBF$A~GU JHJHJ H GGMMHE O$GTE$G\EO(jPj_EEUM33EE E̋EEЋE jPWXG8RP#EPG8P tIG8PGA=et=ct !jjCP"CtfC3 }!APGǃ8AA= t=ZuhS'q[^_]ù;tjh0%Ajhh %AAGt _GǃE_[^_3]ÐUW}EVESAujhT%Ajh$hD%AAEpEUPPR! ;~V蹴]|qEpEPEPV` |38=et=ct jjEPC tu ;~%[^A_]Ð[^_]jjSM E|jSW EufEt#Ë ;E PjSM |Ë#Et(VSW| t[^Aq_]Ðj$ejEu[^A _]Ðj$hMQ EUUPXp GtUPE@WPGEtUPEU@P UEtËD4 tËD\ tË ;~EtURO\QG4PVSh%AjW@3 [^_]ÐUW}Vu Su5h &Aj W@A [^_]Ð[^_]ËV RNQh<&AjW@jjFPhK =Eu A= uFt VPFGFtVPFt V P FV F tVPjVRW" ؅u?FN⋌uE=t%PjFPJ Et2Ӌ^u3}3ɋB;u J R;t;uMu}EuQFND4#NсT Ut#ڋEEuQFND\#NсTHUt#ڋEEuTFN#NсTpUt#ڋEN;u)LJ_tS;~[uW;uFGQMG\PW4RQFPh\&AjW >j$V*h3([^_]ÐUWVu ES]tW;uO u u[^_]UWVESEE Ejh&AU}[^_]ÐEPjW؋5AWÃ5A[^_]ÐUWVESEE Ejh&A}[^_]ÐEPjW`؋5AW蠫Ã5A[^_]UE UEEEEEEEEEUPhBIR ]ÐUE UEEEUPhBIR ]ÐUfEEWjo譠UfB 4'AhhEUPjhL$ 8'AL$ R$EE <'AEEEEEEPL$hEPhj @'AL$WG tAhAWGPfEfu AWGPMQ$Ef@3fE_]ÐUWV}u VW>t7FPW-t&FPWtF PW ^_]Ð^_3]UVAujj}~^]ÐUWV}u VWthFPFPW^_]Ð^_3]UWV}u VWt+F PWtF t=t(^_]Ð3^_]ËVRWV^_]ÐFPWtӍFPW^_]ÐUWV}u VW6t#t%=uFPW^_]Ð3^_]ÍFPWtFPW^_]ÐUWV}u VWft;FPWt*F=u jhd(AF PFPWO^_]Ð^_3]ÐUWVu} GGuUWVtGGPVAt6GPVt%G PVtGPV^_]Ð^_3]ÐUUM =wR$|(A]Ð ]Ð ]Ð ]Ð ]Ð]ÐAQ]ÐUEU t=t BB]]Ð]ÐUWV}u Gt=uOVW RLGu)^_]Ð= u GFG F^_]ÐVOQ GF=t=uGF^_]ËGFGF^_]ÐUE UE EEEEEEEEEEUPhBIR` ]ÐUEU PRMQD ]ÐUU EERPU]ÐU]ÐUU MRQ0]ÐUU MRQp]ÐUW}U u RWGP_]RWG_]Ðt=u _]Ð_3]ÐUW}U uRWG_]RWGP_]Ët=u _]Ð_3]ÐUPMt#=t8=]Ð3]ÐE EEPQAP]ÐEPQAtˋE Uf]ÐUPMt#=t<=]Ð3]ÐE f%EEPQAP]ÍEPQAtNjE Uf]ÐUPE UEEPRu3]ÐE U]ÐUPE UEEPRu3]ÐE U]ÐUPMt=tD=tj3E t E EEPQAP]Ð3]ÐEPQAtEu E E ]ÐUU MRQ0]ÐUWVS}U ]t +Ƌ uCWRSCP tgtTVhASCP [^_]Vh(ASCP [^_]Ð uWRSCP tu =u[^_]Ð[^_3]ÐUWVSE u]8SV(t$U;vutK=t(=tQ[^_3]h(Aj|3[^_]ÅtBuS~E 8tSWV [^_]ÐtW E [^_]ÐUU hRBPUR']UWV}SuU RW*t%E Ft3;t/V ;uEu 3[^_]ÐjURWU [^_]jMQWV [^_]ÐUWE Vu8t =utGW9EEPVt"EU;wBUte=t=tl^_3]ø^_]ÐEtuMQE 8uh(Aj3^_]ÐEEPWV ^_]ÐW> E ^_]ÐUjU MRQ ]ÐUUEE BT)AB BEB]ÐU]ÐUW}G-G} 3_]ÐG RaU G G _]ÐUW}G-G} 3_]ÐE RՓW G G _]ÐUWV}uG+ƉG} 3^_]ÐVM W RQ> G  w ^_]ÐUWV}uG+ƉG} 3^_]ÐVU RO Q G  w ^_]ÐUMA Q+]ÐUWVSu} V^N ;~ 3[^_]Ð+߉~ ^[^_]ÐUWV3uU N;| +ʋ~ ׉NV ^_]ÐUPWVS]u jD\u3h)Aj+[^_]Ðh)AjW [^_]VwMQxE++UFVWR$MQ׍j#(*Au$jD~;tj2~;uEt PEt Pv[^_]ÐUV*AEUt*AE ң*Atu*AuMjlh4+Af,Ah.A' *At$jjj =tIjjP#) =t3*Au*jnh,ARut =uQ赌^]Ð*A^]ÐU*AR*A*A]ÐU *AWUtʋ_ *A]U4AEtA(sP\AX@+A=%}E@+AU@+AȢA4AtAtP]AXE]ÐU4AtA(sP\AX@+AE=Z|]AA;ujhA4AtA(sP\AX@+AZ]AAhA4AtAtP]AXM|EȢAM}]ÐU WVS] {4AtW4(sP\AXK %=tjSWҧ t  W0@tLGKu;rW蟫tCUC uyW}tleu(GKu;vQWKtaZEuEEjPG,P, =t S 9GuS藥C @PGW+‹UHG@CG4AtW4tP]AX[^_]ÐÐUWVSj#%EPjjKE=uEjEPj* EuO4At`A(sP\AX\A\A=u,4At`AtP]AXj$P${UhAPWV3ɋuS>:u3}LAuz:u3}LAt F>:u3}LAu+t-uAF>:u3}LAu[^_3]Ð[^_]ÐF0+>:u3}LAt,۸0+ǍF>:u3}LAuԅu[^_]ÐUWEtE u323ҋE EuU ;t_3]WjQ@ _]ÐWȅu_]ÐU,UMRUQE PR]ÐUWVEH+AS] j/URh+AEuH+AEE=ujjqEu&E+Ah+A覹EuE+A}>;u,jMQm E[^_]Ë[^_]ÐxVSfFf@t'h+AS4jEPS(P jStEuEU;u [^_3]Ð}}EHMsȋUF Bu_EHN<.F<_>t.ЈFAt :t_u틝tj_EPiHA.p.FAt:upj.URHAMȋUF BuEPUtsȋUF Bub%F\%FEFNEG=%t=L=Nt=cc=l=t믐EFEG=%t=:ՐUU MRQ]Ð!B ÐUP4AtlA(sP\AXhУAURY4AtlAtP]AXУA]ÐUP4AtlA(sP\AXhУAhtAURP4AtlAtP]AXУA]ÐUP4AtlA(sP\AXERhtA4AtlAtP]AXtA]ÐUP4AtlA(sP\AXhtAUR4AtlAtP]AXtA]ÐUW}GlPROQGPM W RGWAPGLWAPh+AjQ蛻E (_]U\U ERPMQiPE ]ÐUPEU +‰EE]ÐUWE} RW,AG$Nj O(_]ÐUtWVE8EPEujWEP E˄tWEP+3L~V-;}ρ+U WROE p TP$j2FDPE (PE ^_]Å};~말UW}VSG U ERP8E=l} G E-lGjjEP$ EGEGE=;}s=}XGE@G EGM+ȉM<EwvE+‰[^_]ÐGE-E뛋UE;UЁ}tu9EduE칐uM}GEBjWAU;+FhWA;~Uw3U3ҋMQ 3ҊQ 3ҊQ] ÐUPW}VSu ,AA/u=APW<uPAf@Af@wA@=vA/PWKAH QA@PARy Wx/u8F PAAt8WAP ApWF3PAAu 3[^_]ÐjWh@,Ah*,AAPAVPAxhD,AWzWjj,EPS=EP4E=rEPE}=rEPE[=2PAUPA@tDPABA@AAMRPE=EUDP?AB A@ AAMR ʉAUEWPjAPRQu;;A@ A@}SGNu}EWPjAPRlQM;A3ۋMUp3;J;uWEPjAP R(QM;Au@ ɡAIH }ًK3ˆWU;}hKWvGS؃Nuʋ}MWQjAPPU;u(WE=unAf@A}AH Q A@tA@PWARA3[^_]ËE=A@ @AR J :A@ @tAf@Af@Af@Af@A[^_]ÐU2SU] CBtIu[]ÐUM U~#+;~']Ð]Ð} +;| ]ÐUWVS4AtA(sP\AXER_uE@?fGfVG W ЋEP3APE PfGf}3ɋEMH?G W ЋEP3APE?PEt$=ETRM QE w3ۋ։u+;t(M G;}uދU+;uۋG W2DU %EG;|GL;EU 3ۋG0G Dt]]FO;} G;}ҋE=~E|G UEt EE} EEEUG ЋEP3APE PcEEUG ЋEP3APE?P'E;uE4AtAtP]AXE[^_]ÐG UЉEPE P EE 3MMGU ;EH,A3 MH E@?uUW}VS]JuREPGPMIMm;zAMqWEPGPEHEt=4iE.u0EPGPdAE6=+E@‰EKEU;t%}]3ۋMAB;|;uUM]}EmtEn]U;+;UpMt5EPWE}=m:mEPGPsP<.FUJU9 0EPGP9. E==EPGPE=U@PWAUE@hWAEECM;tUE@JF|3;uEU]K]t$U~M+Kt;UM]u4v444MI؉M+;|#>>3;|+É;} ENjЉE+;|ȋEщE+‰>>;| MA+ÉME[^_]Ð}#ٙtG؉[^_]ÐUW#EHtt +t_]UAW3VM=u3}LAu 3^_]Ð3 qG=u3}LAt034-0G3=u3}LAuЋE 0^_]ÐUPWVu }EPW:toU:uMEPGP tAM I ȉ<:uEPGPtMʉ3~ 3^_]Ð^_]UAWV3S]u =u3}LAuHtB -t; +t4<,t.F2;sGC3=u3}LAt;u 3[^_]Ð[^_]ÐUPWVS}h,A誟:u FG [^_]3ɉOO?[^_]ÐG PV3ۊ-uF<+uFGPV/tG؉Gt:G?PVtrG-Gm;tK<,tE3ۊ-u F +uFGPVt!tG؉G7[^_]ÐG,A O G?[^_]࡜,A u)ÐUWVu jj诩|jjURW =t|;|b ^_]Ð^_]ËM;t<8Vj/8VjEP^_]øUjh@Ajr苨 ]UW}VEESw4AtV4(sP\AXG ujWV膇 u#Fu W M V0IM EVfU E;|cRj OEQP跐Et EU+‰E E M)Gȋ^GM+yFG ;}E/E~3Pj GUPRMEuEMȋU +ЉMU F0@FV+‰EG Dt@G t4E+Sj NEQPEuUM +ˉUM EPVRN,Q/ ؅4u G  W EM;u EEFGHE ;PEj NQPeEt EU+‰E NUE GE +Љ4AtV4tP]AXE[^_]ÐUWVS3ۋutF u[^_]Ð~4AtW4(sP\AXG0t]W@W0u]F u$~8jPG,Pj }!GV;v WF uߋO,Qg}F t GPq3ɈN O04AtW4tP]AX[^_]ÐUWU=at=rt=wu9 3 JbuJ+u _]ÐG_]ÐUPWVSuU ~Rz؅|hSMQ E} 3[^_]ÐEG F,%BAG tjjEP [^_]ÐUVu 3^]ÐVU RMQV EuF04AtV4tP]AXE^]ÐU WVSu~4At_4(sP\AXEuUU RtE|9%BAN :uEPjW,R 3G0tXG0tW衛O0uF tGV;v WhW,R&eF t OQ G03ɋUOONN WE PR uG04At_4tP]AX[^_]ÐUWOAV4AtA(sP\AX3W0;uwFGGG _ujLu%4AtAtP]AX3^_]ÐVBAW_^OAG=OAG04AtAtP]AX4AtW4(sP\AX^_]CA u>s G@9EvG@EuuG PwsEu*E)GHEGEGLEE t E)G@E9Gt&EExt Nj EEx EEx<tpDžPCADžDžDžWAEExt*DžHCADžDžtDžJCADžDžtDžDždtDžMCADžDžDžWA6tjDžPCADžDžDžWA EE@EE@6QhdhdVW/_^N# uEExq#EExtL(t EEx EEx"!EExtNjEExtt Nj9t EExEExtNj7t EExEExtTt>t&EExt Nj EEx EEx6N#ut Dž6+Ƌ@tuN0Gt Dž;s;+Njƍ+;vN0OutCu ;s !N@NDžitpt Džx DžxDžtts @t t3E EPPP􉕈pPMYEE@ݝpP2EYu$p/Gt2t DžRCA DžUCADžt^u$t DžLCA DžOCA"t DžXCA Dž[CADž,t DžMCA DžPCADžuGtGXGxG0t-8t,u +G OAuj9v>+6+;v G0ut @uO|l}l؉lx΋lV 3IR0u^x+Ɖl4+;} t.l@ Dž GFx;rNjlB+‹|}F-F+tPpG tpt Džx Džxt'Džtt;v @tDžDžt t3E EPPP􉕈pPIYEE@ݝpP6AYp|u+9s9s@t-8t,u + Gtmt DžUCADžBt6u DžCA Dž[CADžRt-8t,u +G OA9s t @uOD+6+;v G0u|Hl}l؉lx΋lV 3IR0u^x+Ɖl=uN0Džl4+9l} t.l@ Dž GFx;rNjlB+‹|F-F+tEeGtpt Džx Džxt&Džtt;v tDžDžt t3E EPPP􉕈pPEYEE@ݝpP6=Yu|Vƅ0|؉|?t9|r=tG0u@u ||)9s );sGFu;vNOu|tF0|utN0ut9|r( 6 |);v"+GFuDžGFu|@r|G0|}G OAG9|Z)|6+Nj9|st+|0G|} OAu@uO,9sG0u G |Dž@u.@tDžDž OA DžLBs-Dž6 OAG0uDž OAu2|@t OAGO|)GG|u OA9wR6+;w$ +)G0uGtmt DžUCADžBt6u DžCA Dž[CADžRt-8t,u +ttpt Džx Džxt9Džtt;vu DžtDžDžt t3E EPPP􉕈pPu>YEE@ݝpP6Yum@u9sD7=0tNu|~59|vF9|rDž|}F+| OAtHOA~6}-OAPYt =z$hCA+99)t tr ;v)}&PWhCA t /Nj֋ϋCAQY򗉅+uDžtt)},P: t R:Nj֋QY򗉅tr ;v)}&PWh(CA t /Nj֋ϋ(CAQY򗉅+u)},PK t c:Nj֋QY򗉅 tr ;v)}&PWh(CA t /Nj֋ϋ(CAQY򗉅+u))},P3 t K:Nj֋QY򗉅tr ;v)}&PWh(CA t /Nj֋ϋ(CAQY򗉅+utn ;v)}"PWhCA6 tQ/Nj֋ϋCAQY򗉅+uDžCC[^_UWVS?UW} VSw4AtV4(sP\AXW "=tjWVK wFu W*J E N0P8EuE^W+ڋM;MEUPROQAE )GFW+‰E}FG U;}G @LMQj G+PT 0VNE=v EEEFW;FN+W DEuXU;wQSMQGP|)_FW +‰E}FGM;}EU+ӉEUV#Nt EmG DuEEM;]]EE=vEEUPRN,Q׈ ؅E G U+ӉUu4AtV4tP]AXE[^_]ÐUWVSu ]~4AtW4(sP\AXV "=tjVW/I t; O0} Gu VGVSC؃FF4AtW4tP]AX[^_]ÐUPWVSu ]~F @tGGV;rWLtFUF WmLt~wF uAGV;vWELtGW+‹UHG@FG[^_]ÐEEEjPO,Q =t F F U W}VEESw4AtV4(sP\AXG ujWVG ubFu W.F E V0EuEME E;rE U;rE?VZ`4E u E3Ҹu ЋE ‰E‹U+ЉUM;rTQMWRQE )GFW+‰E}FG U;SEOQP覕UM+ˉUM F0'G Dt JG uFV+‹UE;}}vWEPV,R# ؅PME+ȋ}Mu G  W 3ҋEu EE3u tEEU+ЋFUG&UM+ˉUMs}E<4AtV4tP]AXE[^_]ÐSENQP肔UM+ˉUM EPVRN,QL ؅3E;rPENQP<EM+ًVƒ G_u~EE=4AtG4EE(sP\AXF ujVWD t'u VXCYO0 uu V" ؃=4AtG4EEtP]AX[^_U WVSYE@EE ` Ex,}XEUR9Ps9EP@EE@U+BE=vEEUE3E H "uAYE=u E H EU ]EPuFU吐u} GG uN3zG uNGZG t뿉AuA}LAA}LAuG넁O G tuOu3GO R tt G t EhGOuGguGEWu EDu uGft u uGF}WV؋ FF؋=Bt=Xt=by=xtSOu3GO KCЉEu G G9Er/^CEtKCɉEt 8}WV؋ FF؋-+=; $TEA>}WV FF؉AuA}LAA}LAt0iAuA}LAA}LAu_6AuA}LAA}LAt7W;_rG uN{G tY]EEGEEeMEEEGEGEEeMG GEE]GOEG[^_UWVSKs ]} G uK3L Ou3? }WS8 CC=ntNtOu3 }WS CC=ft FtoOu G }WS CC=itItG uKG`EXAOu3m }WSf CCƋU;tE@;tEEuGG XAOu3 }WS CC=at AtnOu3 }WS CC=nt Nt/OuGGWAv } WSo CC=(tG uKOu39GEWAGEEEUEuME(5AuA}LAu:A ]Au, A}LAuA ]Au _tNOu3G5AuA}LAA}LAuE+G=| EEֈ }WSP CC=)(EE)EEEEO G t}Ou3GO [ OA;u E\G t;5AuA}LAA}LAuG }WS[ CC=65x=2(>=0!=-F=+6=1&=4=3 =5=Ie-=8=7=9=i+=N[=nKCEEHEEEC9EuH |CEE.G t#WS CEEHEEEE9EE+EEG9EsGEGEuuu aE@Eu6{YEuG t u蝆Y3puuuֈ G t urYO EEEEEEEu }WSEEֈCCEEֈ]txtXu EuE OA;u EVetEu E ?5AuA}LAA}LAt G uKEGH OA;u EptPu E 5AuA}LAA}LAtG uKEG5AuA}LAA}LAt E/ OA;u E5AuA}LAA}LAt E5AuA}LAA}LAt En-t+t u@t E n5AuA}LAA}LAt E 7E= w$DFAG uKG t u膃Y3\GOEtG t u[Y31G uC9EtE9Eu=EEG[^_UWVS u F ~FF؉~EEE=^uN EEE}~.=v"6E@PEP E~EE }uF t v{Y3o;rYFPvYuvvW蚄 F؁FF t v(YN ~EEEE=]0+FFFEEEE^uEEEhE5Pu耄 ]t-uEU8EEdu3l-uCEE]t(E@;}CEU;|EEEUP-EU8EE]uEE[^_UWVS]E xEE @ tu3xEE @DS?-uCE ;xt;;t79_}-;_(E =u2G%W;u ǃ9u ;vuE[^_UPWVSS`}] DžDž|DžhDžlMDž`A=uA}LAA}LAt[}`PW GG;tluOchh}`PW' GG5AuA}LAA}LAuluOb=t= {= p= e= Z= O= D=%3ClDžd6l lt lllt ll몁l-0 k -0CA=uA}LAA}LAu=$tKdu Džd.|t+Dž|MjjjPu e;v%jVjPu =;uFH}`PW GG=%tluOhl tlt2@PPhHil thltBlt@h@fhf@h@hltOdu Džd}`PW GG=ul t Dž\@\\t\\ֈhdu2}`PW GG=u륃\tlt}`PW GG=u5AuA}LAA}LAuhl t Dž\@\\t\\ֈhduv}`PW GG=uF5AuA}LAA}LAtluOa\t\w du Džd`u*Dž`OAG@ OA OAH $OAH}`PW!XGGX=~`=wXu !h WXP,  l t Dž\@\\t\\Xhduz}`PWLXGGX=~`=wXu-!h WXP,  X\t `u*Dž`OAG@ OA OAH $OAH}`PWXGGX=~`=wQXA=uA}LAA}LAuXu zh:h WXP+  X5XA=uA}LAA}LAu hl t Dž\@\\t\\Xhdu}`PW(XGGX=~`=wXu!h WXP)  XHXA=uA}LAA}LAtluO\t\E tDžp`PS3؅u l]`u*Dž`OAG@ OA OAH $OAH}`PWXGGX=~b`=vRh WXP( `PXuVXW* ?Xu`PXGuluOl t Dž\@\\t\\Xhdu}`PWXGGX=~^`=vNh WXPX' `PXOuVXW) >7Xu1`PXuluO\t\}`PW GG=u5uluOl t Dž\@\\t\\ֈhduP}`PW GG=u 5uluO뇃\t\lt tqYslt t}qY[lt t_qYe@u elDžp`PWul tlt]@Pl%LxtPLt ҃Pvl@ltt؉tllt@tflt@t@lt@t@ftf@tltt؉tl thlt@t@lt@t@ftf@t@u lDžp @u ll@Džpg@u ll@Džp,@u ell@Džp @tlu ll@DžplDžp@tlu ltDžp`PWu\l luNjt=ٝ\ltم\ٝ\@\lt\jtp=۽TltۭT۽T@\PXPTHjt<ݝXlt݅XݝX@݅Xlt t@lYC-%=U$tFAC't/lt3t[^_UWVSUWVSE] E8},}Ci}B}K?"Ѿ ?"S ?"S ?"S ?"ЋE 8[^_]3[^_]ÐE8}OuEHt͋E%uEHtE 3#EHtE0Nދ=w$GA[^_]"S "S "S " E 88[^_]ÐGA u33UW}jGt%XAPRlGG _]Ð XAِUW}UM WWQW}ȋ;tGG@()A-GGGtN@A@NG _]Ën@a@nᐐUPWVSEu xP;~lޡxLA+=txLAU-J;uHu]<wRu0FuDUB I;vu0I;wN<wߋE3ۋXNu&t_K0Y;uKEP P Ȑu E :xًE@tK3LAK3LAOu[^_]ÐU3ҋ|NA<v ~NAUE BU;[^_]Ð+[^_]Ð3ہ~NA=w $,LAKI π|O3NA 3NAt5XEÉEE U;l%=w$@LAMIMɋ>u؋E[^_]ÐUWUVu3S;u EEEEE@uME QPV| [^_]ÐEE})|wgGM ;viEM+щE [^_]Ð}|0)} | U ;MIMɋi[^_]ÐEt|Ev @GU ;,3ɋEHA=$PLAˀ|oE@E@%tUHE ;vIE]+Ӊ[^_+]ÐEM+щ[^_]Ð%=w$`LAMIMɋuUW}VEESG4AEtP4(sP\AXO "=tjWEP EE@u WEE P0EEMEȉMG @UEPj G+P MQ RG DuE;r]vSEURH,QC 2 UG E+ЉU3ҋEu ؋E3u tCM+ˉMOEU+։EUuEt5EME E;rE U;r EXE u1E4AtEP4tP]AXE[^_]Ð3Ҹu ؋E ËUE+ӉUEpOE+;r]UMRQGPRE )GE@W+‰E}E@G M;}EN5E@W;EXP+ڊG Du\M;wUVEPWR`R E)7w@O+E}E@G U;}UM+ΉUMEPBU WVSu~4AtW4(sP\AXF ujVW t 8 W0} Gu V/V@؃ FF3ۊ4AtW4tP]AX[^_]ÐUPWVSu~G0t]W;H|I3ۋFFGN+E}GF U;}[^_]u^F \_W+ڊF Dt8F tSOQG,PQ ؅~G@FCG%[^_]ÊF F GF[^_]ÐU|WVSu~u VG OA OAH $OAHF tFGFGu+oW,ERt F @F EPO,QGoEP B؅u E^ F F nUU_ډ_GFFN "=u GW+‰[^_]ÐUW}OAu OA$OAu E@GG $G G G 3_]ÐG u|m _]UWVSE] 8u[^_]Ð3[^_]ÐsF <F <}/}|WEeEV}E>}E&|EEEu@E } SUCC%%=u9? UJUuuE8FCuu}Hu3F"Et\EuH3F#Et94/*% E -=w$SA_UW,E ME9E~EE+}~%E UuNuEEE}d}GA=uA}LAA}LAù?$uE@PNYu3huHhltlվL΃}tA=uA}LAA}LAtZ}uW?NY~ ;u;u~uGA=uA}LAA}LAu6*3}t3}u ?^uGtG?]u}t q f@t}u C}t@tu "}t7lu )huLu Hu luLu3}t}t@tu }tu LuLuTlu )huLu Hu G- =Zc$TA}u"E9EE U\E9E~EE*E9Eu"SEPEE;E| E ME*u3j%Wp_}u(jEPEE;E| E M0O}t%} ]ǃMVEPfKu[^_UWVSU W}VS] _0t4t.SmGhNAjhNAGPmGV P|mGUGNAG G+™PEPj[^_]ÐOAwE p=4AtF4ll(sP\AX"G =tjWV ti~u WYN0 G t9G EtEE@EEtEȍEE̋F,E}čEpuWz ؃=4AtF4lltP]AX[^_UWVSUPWVuSCA} t.VWUR}. [^_]Ð]]NE[^_]E~Gt܋OUQPR. ؋O;t~U[^_]ÐEu[^_]UVuS]E  utt[^]øNA[^]Ðtu j3tPPk\EEjjYEU RVPJoȅu?E=NAtE PVhNA(o utu NAˋEU[^]ÐVs =AuA3A}LAt(F>=AuA3A}LAuE-u E+uF>u,0t FxtXu~t!!F>=Au A 3A}LAt0a| zWA| Z7|_E V[^_3]Ð=Au A 3A}LAt0a| zWA|/Z*7;}#E}F>=AuAE 0[^_3]Ð3A}LAt0a| zWA|_ZZ7;}SEEeNjMEEvN"M E;txF>=Au+A+E 0Et E[^_]ËE[^_]Ð3A}LAt0a| zWA| Z7;|E 0[^_]Ð2R^ÐUSUM] tCt BCuYu[‹]U AW}:u3}LAt~MA_]Ð?]Ðjjt$ 9rÃ]ÐUWVSu ]~4AtW4(sP\AXF ujVW9 t W0GN;uGu VuF]NF%;u F ?uF2G0t FFSWN؃t F 4AtW4tP]AX[^_]UPWVS] YAu| <YAu5YAjK E[^_]ÐYAE[^_]Å|3fG;wދE|׋wtfuftVW-uZUf@%;ftGfFfFf;BrfFF 3fV QEPSW؅E[^_]ÐF U\ftFDEF4U+3~&Vt؅u+YAE[^_]ÐYAE[^_]jMQG P] U;uVSO Q+ ;tYAE[^_]Ð[^_]ÐUW}VE SYAM|63U fG;w)|%wtfuf@%;v[^_3]3[^_]Ð@ WI4jVG P ;uQjEPW R+ =u8uM+tjEPW R] M;uVEPW R* ;t[^_3]ÐE[^_]ÐUWVSE ftoE 33fpE fXPEE ۉx VMAM;|E fuE fE f@%@4V8U BBEZ PjSH Q7 ;u|VE @PEP R) ;uaE f@%PU B B t$f3fpVu.YA[^_]YA[^_]ÐU EZHjS@ P ;uVWEP R( ;uE p XfH~3҉>C+B;|E PR}%E @3E ft%3E fxE p 3~@;|E U fff[^_3]ÐYA[^_]ÐU]ÐU4WVS]u 3[^_]Ðjm13ut;v+F +߉]3N@tj|hj"VEjsVEES1j>VEUj0EURjUEؐEEP|EPEPj EP_jEPtEPEPjEEEjP3EES`0EPEUjF0EEjP4ujEPj@ |jEPj  }Et }W/EU[^_‹]Ð((UÐ(*zUÐU0AW}:u3}LAt~MA_]Ð U3ÐREEEEEEEEEEȋEEEuu EP ` EEEUTUWVS]u$E uEE E 0>=4Au4A34A}LAt(F>=4Au4A34A}LAuE-u E+uF>u,0t FxtXu~t!!F>=4Au 4A 34A}LAt0a| zWA| Z7|_E V[^_3]Ð=4Au 4A 34A}LAt0a| zWA|/Z*7;}#E}F>=4Au4AE 0[^_3]Ð34A}LAt0a| zWA|7Z27;}+EEeNjMEEvIE 0Et,E=w [^_]ÐE=u[^_]ÐE=v2EE @"M E;taF>=4Au4AE[^_]Ð34A}LAt0a| zWA| Z7;|E 0Ea[^_]ÐUWVS]u t:tGt:ut [^_]ÐCu[^_3]U0PGYUpPR>Yu u Efuu A<Au AjEPj  E UPRA^]UUM RQEPp` ]ÐUAu AEA]3ÐUE]3ÐUW} r=_]ÐOE _3]ÐUW} r=_]ÐOE!_3]ÐUPW} S r"Q=[_]ø[_]ÐOȋE#;t[_3]ÐUKA$UtM QRj3 ]ÐEPR€=EtE܋M PQ|LE]ÐUKA$UtM QRj3 ]ÐEPR&=EtE܋M PQ$LE]ÐFM3Ðu~=4AtG4pp(sP\AX"F =tjVW tfu VgYO0 F t9F EtEE@EEtEȍEE̋G,EučEuu VW ؃=4AtG4pptP]AX[^_UWVSq} ubEEEEM E =v EE EEEEȋE EEEuuEPW EEEUP뇐s tE+‰E%=w$XA[^_]Åt6XE ;t3w-E G%? G%? G %? G%? G?ˀɈ_u}}!MEtGMԐ}\}(E=-E 념E=-E H}X }(E=rT-E E=r,-E E=E M0E[^_+]ÐUWV3S@u u=UMRVQ [^_]Ðu,Et U;t[^_]ÐEu!EOA-tEU+ӉEUEu MQxEUPRVMQ؃uEt EtE[^_]ÐUPWVu S@}u#URVW [^_]ÐE[^_]ÐE+M˅ۉMtЋtU+ӉUMEQPVWA؃u뽐UPWS]M 3[_]Ð|NA<v ~NA[_]Ð3ۺ~NA3ۊNAG33ۊNAG3ҋ=wQ$XA%=wS$XA G G G uC 3=r [_]Ð2X[_]ÐUUtEPPVC u$V4YA[^_]ÐUPRMQPPPw tt YAVP[^_]ÐCEL/׋|$3OъD$uGÐ3ÐUWVSu~FtVRFFtNQFFE33fF;i}~uEff*fftIEf@fEE@ tE@ QgE@ `EX ft E3fpEft E3fp~'}3tR G;|}EH t@ PE@ Ef@ftEuEPt HQE@PtPRE@EM@E3fUM;uFtFPNFVR9FV)[^_]ÐU$WVSE3f@]%PvUBJ;fB%<@WMWVEH Q ;*E3ҋpf@%;sCE3ɉE>3fG3fGEEfVVVVAf%;rʋEfPf3fPfEx3f@%;BEE3ۋf@%EfXtTP] Ew ~,}܋}W6UBU;|݋}܃E@EEUf%;rC<WEWPE@ P ;EE3ҋpf@%;s]EEX3fxt0Eft EFEP`F F tV3MAfM;rEf@fCUR&EMQPEP R M;t)YA[^_]Ð YA[^_]ÐEE3ҋ}pf@%;E}uEE3EfxEp ~2MU+tE@E;|ډUMEUBEEUf%;rEPE@@EP R虈;E@ EfHfx3f@%;s{EE3fp3_ ~@;|AEf%;rGO Q5[^_]ËE P!@PGGU ROQ jEPG P=jjW Rp Ef=BuXjEPO Q =EP ؍EPPL fCEfGfE fGf_[jWG P =u4f_%=s0@PPW R\ ӁB;tCSsGGuPOQf?Cu G!f?OUEPW@[^_3]ÐU WVSEf@%E@PEEEE3ۍp jWRh =PfWBURPQ< U;$RjGG>POQÐEEU;xE}@ljE;wCE +Ǚ+@48E NQPt7~~ FEU;vYA[^_]Ð[^_]ËEPjQ@ P =tHjURJ QC =uEfPBURPE@ P U;tYA[^_]ÐMQ+UBBuYA[^_]ÐPE@PE3[^_]ÐUURdX[AX[At X[AuE X[A]ÐU WVS3X[A};։uuuu[^_]Ð[^_]áX[AtEM;u/Et(PURWp2%GEFEEPd-EPWEt1P/MQWEEt(PURWEu]E t@EtE t_GFE PdU RWJEuEt@EtEt.GFEPGURWE%GFpI=:a:=L*=l=c\ =t%GCMX[AX[A=N[=A=%ewfX[AGFX[AtX[AE=uEu E[^_3]Ð| [^_]áX[A,=%M=:UWVS} NAt CuGth\AWu#ENANA[^_3]ø[^_]þA#C;tWCPu1uWfP؅tWCPAEASNA[^_3]ÐU WVSjURj u![^_]ÐW~3[^_]ÐhPW E<EEf8|EEjEMPQWGu$Ef8|]CNAF|,3NAF| ~NA NA NAEffu_W <EPj!~NA3ɺ NA NANA NA NANAW}URj hPh|LAhPh}[A ^At ^AQJ ^A33һ]A|LAt]A ]A|LAt|LA |LA|LAt]A ]A|LA@tAF= t)]A È]A'W|[^_]Ð|LA$|LAFZhOAGL3[^_]ÐUWVSjURj u [^_]ÐEu䍅pPW5E=vPuE=EPVW U;MQjEOAEE;t=bAt&FFFE;|TEC;~FOA[OAOAOAbA]t$EKEEEr(T䈓 OAKsK|T䈓 OAK} OAF OAE=OAt-P3tE;t VWzE[^_]ÐUWV} uulhNA詭tuS\[AR荭tu7hNAttuhPAtuNAW NAQqtZu!W^_]ÐW^_]Ðth|[AWV =tWVt ^_]^_3]ÐUWVS]]A5AtV;u N;s.6uWC PVhA&'u 3[^_]É^F [^_]ÐU(W}VS:uYW7pVn؅;t VWS] C\j:StXN}uRhNAثtu9hNA迫3؅tuhPAL؅tuNA}u \[AQwEtu]END}̾3ۋDPNARvu\h|[ALQV =NE3PNAR2tNAMQugEPNARt"MQItt ,SG Pu  Ƈ SUR =|EE|PQAAt;j|PjjURjw/E|Q`E=uVEPoEtuURP|P U;t|Q_I|P_EGEGƇ GU@;GDOEU4AtAtP]AXE[^_]Ð3ÐU|WVu S;uFP菽uZ[^_3]Ð=TOCuƋW;ufw_E PAtPAPECW;|F =HF =}vF =k|TN ًG vF0EUG G ;sG F O"@tAF0^/"FF0FF W  ‰F0(F0G G F0FtN3tt WV[^_]U WVSExEP }jH bPV@- ~G}@G ۨ|cAmG }EP ڍRm۪|cAx0*EPH q@- ~!G}@G ۨ|cAmG }EP t@ @mۨ|cA}UEP8UP4UP0EPH у-wl@- ~ G}@G ۨ|cAmG }E+pvm۪|cAɋP +֍R۪|cAx0(E@PS"u*E@<oE@=d$ cAGHEEP X MˉH "EM@ ȋE@ ;EH E@ =?EH }B@ =¿Ep ށ?~NE3ξE ExLA=t(xLAU-R;ET t<~ET Eut@t OL uDEHT u8^W;}d3L ;u$CW;|P@4W NP0D MU;s"N|D uN|G uG EP BP E@ =?mEP @ =ÿEp ށ?n΋E_ P4W + ڋUZ0Ef@8"@teE@8~@@4@0"E@E3ɉH0H4fH8zEP ?fP8W P4WP0[E@0@4f@8@GG G G Ef@8W P4@0W~WP0EHt P9ʀP9tt Wt[^_]Ð('tUPWVS]4Au tħA(sP\AXu>UR虰t\MQjV EFu9@cA@cA*{;t?;uEPVtCs4AtħAtP]AX[^_]UWVS]4AtħA(sP\AX@cAE=@cAt?E>t W;uW7 >uEE=@cAu4AtħAtP]AX[^_]ÐU3ɋ,WVSu3ۉM>NN NFFEH@̧Au̧A3̧A}LAt(G3ۊ̧Au̧A3̧A}LAu؃-uF+uG3ۊ̧Au̧A3̧A}LA3 OA;u|G3ۊ̧Au̧A3̧A}LAF 0uN 3ۋV JG0ţAu ̧A 3̧A}LAJit I XAuGbG3=nt =NG3=ft =F>XAXAt!G3ۊ;tB;u ъu>F[^_]ËF=s#M+t eFUFT$GF[^_]ÐntNuZWAu G G3=at=Au1G3=nt=Nu>G<( 3ɉMMH 0G3ۊxt X@}G3ۊ̧Au ̧A 3̧A}LA%3 OA;u-G3ۊ̧Au ̧A 3̧A}LA%u E20u@N 3ۋV ĢAu̧A3̧A}LA%0tEG0;G3ۊ0ţAu ̧A 3̧A}LA%3 OA;uIG3ۊ0u3ۋF -F G0ţAu̧A3̧A}LA%]>pt P8G3ۊ-t+uG3ۊ̧Au ̧A 3̧A}LAG3̧A=u ̧A 3̧A}LAt,G3̧A=u ̧A 3̧A}LAuԉ>3ɉMME@E=vEEMPL PBPPH;ujPxEJFEEȩAu ̧A 3̧A}LAtUC ЉUA̧Au ̧A 3̧A}LAtUC ЉU MC ȉM3ۋF@UFF +‰F ĢAu̧A3̧A}LA%3 OA;u=Eu6EG3ۊ̧Au̧A3̧A}LA%M+t F +eF EUH@pT >t PEG3ۊ-u E+uG3ۊ̧Au̧A3̧A}LACG3ۉȨAu ̧A 3̧A}LAtC U;w ҍCG3ۊ̧Au ̧A 3̧A}LAuȉUE>uE= 0F F (E= XF U+Ё DډV EP uQ3CtF +ÉF EP P~.uܾx G +O ˉG'J;u܋EHsxP+ڃKuF[^_]Ð0u G3ۊ0ţAu ̧A 3̧A}LAuG3 OA;uh3ۋF HF G0ţAu̧A3̧A}LAt3EC3ɉMMENFEF ME>et EG3ۊ-t+t u@tG3ۊ̧Au̧A3̧A}LAtgG3̧A=u ̧A 3̧A}LAG3̧A=u ̧A 3̧A}LAucFF[^_]Ð̧Au ̧A 3̧A}LAu`3 OA;EEG3ۊ0uEȨAu ̧A 3̧A}LAt{EEMME+щ]؉}ԋ}]G SML SBSSK;ujS1 ؅^EbEUH@T V EM+ʃeN >t E#EG3ۊ-EEEMJE]]؉}}ԋVEBME+щUBU vHEMPL PBPPH;ujPNE FECЉEE CȉMG3ۊ0UMBEȉUMސ+t u@tG3ۊ̧Au ̧A 3̧A}LACG3ۉȨAu ̧A 3̧A}LAtC U;w ҍCG3ۊ̧Au ̧A 3̧A}LAuȉUE>u?E= wF ~ M+V ;v F[^_]ÐV E‰F >E= wF }F +U;vF[^_]ÐF U+‰F F[^_]ÐG3ۊ̧Au̧A3̧A}LA%u@̧Au ̧A 3̧A ]Au_t)F[^_]ÐUBUv)F=zEFUEFT$ȩAu̧A3̧A}LAtMC ȉM'̧Au ̧A 3̧A}LAtUC ЉUUC ЉUU(WVSu~jF F =/F=!F- ~!G}@G ۨ|cAmG }F ؍@|cAE8X X(m*(}LcAEHcAEDcAmEmF=zF =F- ~ G}@G ۨ|cAmG }F t0F @|cAE8X X(m*ɉ(}LcAEHcAEDcAmEmFN =-F- ~!G}@G ۨ|cAmG }F+؍[mۨ|cA}F +ó@|cAE8X X(m*ɉ(}LcAEHcAEDcAmEmm^0FVR u!F<F=$\cAGHV EF F N U;V F =F =}BF =^ ہ~KE3˻E ExLA=t(xLAV-;ET t:ET EutG t \EL uQEHT uEC]EW;}Y3ҋEL ;u(@EO;|?F4G KF0EEUD D ;sK|G u G F F =RF =F =|f^ ہG ˋF4¹ W+ ‰F0"@taF4GF0"F3ɉN0N4O F   ‰F4W ʉN0NF0F4}UREP JP E EE-EEE EXURKEM;}+]ٿ ȋU+;|UM]UEM+ʺ M EQPpE30u!UGJ;tjt t;rO;sG;rM+ωM~=WEPPE0;rFU MRQ!.MMt 3U+;Ή2uUE EEtt P诠E tt P虠[^_]ÐE@뾐UWVSE@ }؉= dA?DžDžLDžDžLeA%dA4AtЧA(sP\AXu.F@PNQFPW> t`;u@S‹O;}@SPt-SRW> t S;߃ѽP4AtЧAtP]AXvE@ =|) KKK SMQEP }'ڋH ;}@@[^_]ËEP [^_]ÐE@@K=w ExPlEPRSW E@tE@PExW u#3FtVWE)p E@W;}w3ҋMT FA;| S蒝[^_]ËE@tEPRpE@뿐U8WVSE@EHv:@Pmu9Et P!E@3[^_]ÐEEuE@FE@ F E@= EE E )P@;s E@EԅtWEԋU؋ fAEBU؋D }؉E܍| E܉E̋GM̃F ;uڋE܉E= tF uNF EЍxu OtUЋ+¹)FFE؋EЍUЋMuEt PEH tpPZ^ u!3@tSVۋEX E;tuA@CA%s %6d trep @ %7.4f msec (%6.1f/sec): %s %6d reps @ %7.4f msec (%6.1f/sec): %s -display-d-%s: unable to open display '%s' where options include: -display host:dpy the X server to contact -sync do the tests in synchronous mode -repeat do tests times (default = 5) -time do tests for seconds each (default = 5) -all do all tests -range [,] like all, but do to -labels generate test labels for use by fillblanks.sh -fg the foreground color to use -bg the background color to use -xor use GXxor mode to draw -both use both GXcopy and GXxor mode to draw -reps fix the rep count (default = auto scale) -subs a list of the number of sub-windows to useusage: %s [-options ...] %s %-28s %s %s syncTimeInternal test for finding how long HardwareSync takesCan't allocate colormap entry for color %s Can't parse color name %s %s %sCalibratingTesting -all-labels-range--sync-pack-draw-repeat-time-fg-bg-xor-both-reps-subs%s %s (XOR) %s %s (%d kids) x11perf - X11 performance program, version 1.2 %s server on %s from %s Sync time adjustment is %6.4f msecs. (XOR) %s%s (%d kids)f3f3 ?aemmm[m[m[ m[ m[ m[ m[mKyk;m??s;|s;ÿ?x;ǿ~;a;x`gÏ{8f{v㏻9;;8s ;8xw<;x``p">9a``p9~8q`p88~`x88`<`x88`t>`D88`>`D 8?8`<`$ 98a`{`!8?a``88@a``88a``Ip88a``%B?8a``1aS 8a@+|a>6`8<0"8"8$p$p<$cDsD3Dx?Dp>D8́D#8B?9<|#d<dpx| dp38f l0x>8v h88v h8x8v h8v h8v h8> h 88> h88> h88>h88>h 88>h 88>h88>h88>h88>h88Xl088dpd8d>8d>0d~0df0fp`bppbpp8b`08a88a8x?0??8888|888`p p p pp08888800pp 8p8p88080 <0 ~p< p`x880qx02Kdx5@5@))*5@5@005@5@00 5@5@00$d5@5@005@5@006@ 6@00 <6@H6@00$dd6@p6@006@6@006@6@00 6@6@00$d7@7@00@7@L7@00d7@p7@00 7@7@00$d7@7@007@7@008@8@$8@00 D8@H8@X8@00$dx8@|8@8@008@8@8@$()8@8@$() 8@8@$()d9@9@$()09@<9@$()d\9@h9@$()d9@9@$()d9@9@'() 9@9@'()d9@:@(()d(:@0:@($$@:@H:@($$ X:@d:@($$dt:@:@($$:@:@!($$ :@:@!($$d:@:@#($$d;@;@!($$d ;@,;@!($$dd@;@L;@!($$2`;@l;@h"($$dd;@;@#($$dd;@;@JdSdT;@;@JdSdT ;@;@JdSdTd<@<@JdSdT2(<@4<@KdSdTddL<@\<@MdSdTdd|<@<@KdSdT <@<@KdSdTdd<@<@KdSdT<@<@tLdSdTdd=@(=@MdSdTddL=@X=@JdSdT p=@|=@JdSdTd=@=@JSdT=@=@JSdT =@=@JSdTdd>@>@JSdT(>@8>@KSdT \>@l>@KSdTld>@>@TKSdT >@>@TKSdTld>@?@PdSdT ?@$?@PdSdT,d8?@D?@PdSdTdX?@h?@$QdSdTd?@?@DRdSdTd?@?@PdSdT ?@?@PdSdTd@@@@PdSdT(@@8@@QdSdTdX@@h@@RdSdTd@@@@$PdSdT @@@@$PdSdThd@@@@PSdT A@A@PSdTd4A@DA@PSdT `A@pA@DPSdT A@A@DPSdT$dA@A@PSdT A@B@PSdT$d(B@4B@|T\V WPB@\B@|T\V W xB@B@|T\V WddB@B@YZ\[ B@B@YZ\[ddB@B@YZ\[ C@$C@YZ\[ddDC@PC@YZ\[ xC@C@YZ\[ddC@C@YZ\[ C@C@YZ\[ddD@D@$WXY 4D@@D@$WXYddhD@pD@6:<<PD@D@D@6:<<PD@D@E@6:<<(E@dE@pE@6:<<PE@E@E@E@6;<<PF@ F@F@6;<<P> G@G@T==>>d(G@4G@T==>>LG@\G@t@B>$F G@G@t@B>$FdG@G@t@B>$FG@G@@CFTF H@,H@@CFTFdPH@`H@@CFTFH@H@@4C>TF H@H@@4C>TFdH@H@@4C>TF I@0I@@dCTF TI@dI@@dCTFdI@I@@dCTFI@I@FGFTF I@I@FGFTFdJ@(J@FGFTFHJ@TJ@tADFF lJ@|J@tADFFdJ@J@tADFFJ@J@$ACF J@J@$ACFdK@K@$ACF0K@8K@PK@XK@HdK@lK@xxK@|K@8XK@K@ ,-@--K@K@ ,-@--K@K@-+--K@L@ .-+-L@(L@ .`..-DL@LL@0// 0lL@tL@<01|2L@L@<01|2L@L@466L@L@<02|2L@L@<02|2M@ M@33l4 M@,M@33l4-dotDot-rect11x1 rectangle-rect1010x10 rectangle-rect100100x100 rectangle-rect500500x500 rectangle-srect11x1 stippled rectangle-srect1010x10 stippled rectangle-srect100100x100 stippled rectangle-srect500500x500 stippled rectangle-osrect1x1 opaque stippled rectangle-osrect1010x10 opaque stippled rectangle-osrect100100x100 opaque stippled rectangle-osrect500500x500 opaque stippled rectangle-tilerect11x1 4x4 tiled rectangle-tilerect1010x10 4x4 tiled rectangle-tilerect100100x100 4x4 tiled rectangle-tilerect500500x500 4x4 tiled rectangle-bigtilerect11x1 161x145 tiled rectanglebig-bigtilerect1010x10 161x145 tiled rectanglebig-bigtilerect100100x100 161x145 tiled rectanglebig-bigtilerect500500x500 161x145 tiled rectanglebig-seg11-pixel line segment-seg1010-pixel line segment-seg100100-pixel line segment-seg500500-pixel line segment-seg100c1100-pixel line segment (1 kid)-seg100c2100-pixel line segment (2 kids)-seg100c3100-pixel line segment (3 kids)-dseg1010-pixel dashed segment-dseg100100-pixel dashed segment-ddseg100100-pixel double-dashed segment-line11-pixel line-line1010-pixel line-line100100-pixel line-line500500-pixel line-dline1010-pixel dashed line-dline100100-pixel dashed line-ddline100100-pixel double-dashed line-wline1010x1 wide line-wline100100x10 wide line-wline500500x50 wide line-wdline100100x10 wide dashed line-wddline100100x10 wide double-dashed line-circle11-pixel circle-circle1010-pixel circle-circle100100-pixel circle-circle500500-pixel circle-dcircle100100-pixel dashed circle-ddcircle100100-pixel double-dashed circle-wcircle1010-pixel wide circle-wcircle100100-pixel wide circle-wcircle500500-pixel wide circle-wdcircle100100-pixel wide dashed circle-wddcircle100100-pixel wide double-dashed circle-pcircle1010-pixel partial circle-pcircle100100-pixel partial circle-fcircle11-pixel solid circle-fcircle1010-pixel solid circle-fcircle100100-pixel solid circle-fcircle500500-pixel solid circle-fcpcircle1010-pixel fill chord partial circle-fcpcircle100100-pixel fill chord partial circle-fspcircle1010-pixel fill slice partial circle-fspcircle100100-pixel fill slice partial circle-ellipse1010-pixel ellipse-ellipse100100-pixel ellipse-ellipse500500-pixel ellipse-dellipse100100-pixel dashed ellipse-ddellipse100100-pixel double-dashed ellipse-wellipse1010-pixel wide ellipse-wellipse100100-pixel wide ellipse-wellipse500500-pixel wide ellipse-wdellipse100100-pixel wide dashed ellipse-wddellipse100100-pixel wide double-dashed ellipse-pellipse1010-pixel partial ellipse-pellipse100100-pixel partial ellipse-fellipse1010-pixel filled ellipse-fellipse100100-pixel filled ellipse-fellipse500500-pixel filled ellipse-fcpellipse1010-pixel fill chord partial ellipse-fcpellipse100100-pixel fill chord ellipse-fspellipse1010-pixel fill slice partial ellipse-fspellipse100100-pixel fill slice ellipse-triangle1Fill 1-pixel/side triangle-triangle10Fill 10-pixel/side triangle-triangle100Fill 100-pixel/side triangle-trap10Fill 10x10 trapezoid-trap100Fill 100x100 trapezoid-strap10Fill 10x10 stippled trapezoid-strap100Fill 100x100 stippled trapezoid-ostrap10Fill 10x10 opaque stippled trapezoid-ostrap100Fill 100x100 opaque stippled trapezoid-tiletrap10Fill 10x10 tiled trapezoid-tiletrap100Fill 100x100 tiled trapezoid-complex10Fill 10-pixel/side complex polygon-complex100Fill 100-pixel/side complex polygons-ftextChar in 80-char line (8x13)8x13-tr10textChar in 80-char line (TR 10)-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1-tr24textChar in 30-char line (TR 24)-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1-polytextChar in 20/40/20 line (8x13, TR 10)8x13-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1-fitextChar in 80-char image line (8x13)8x13-tr10itextChar in 80-char image line (TR 10)-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1-tr24itextChar in 30-char image line (TR 24)-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1-scroll10Scroll 10x10 pixels-scroll100Scroll 100x100 pixels-scroll500Scroll 500x500 pixels-copywinwin10Copy 10x10 from window to window-copywinwin100Copy 100x100 from window to window-copywinwin500Copy 500x500 from window to window-copypixwin10Copy 10x10 from pixmap to window-copypixwin100Copy 100x100 from pixmap to window-copypixwin500Copy 500x500 from pixmap to window-copywinpix10Copy 10x10 from window to pixmap-copywinpix100Copy 100x100 from window to pixmap-copywinpix500Copy 500x500 from window to pixmap-copypixpix10Copy 10x10 from pixmap to pixmap-copypixpix100Copy 100x100 from pixmap to pixmap-copypixpix500Copy 500x500 from pixmap to pixmap-copyplane10Copy 10x10 1-bit deep plane-copyplane100Copy 100x100 1-bit deep plane-copyplane500Copy 500x500 1-bit deep plane-putimage10PutImage 10x10 square-putimage100PutImage 100x100 square-putimage500PutImage 500x500 square-getimage10GetImage 10x10 square-getimage100GetImage 100x100 square-getimage500GetImage 500x500 square-noopX protocol NoOperation-atomGetAtomName-propGetProperty-gcChange graphics context-createCreate and map subwindows-ucreateCreate unmapped window-mapMap window via parent-unmapUnmap window via parent-destroyDestroy window via parent-popupHide/expose window via popup-moveMove window-umoveMoved unmapped window-movetreeMove window via parent-resizeResize window-uresizeResize unmapped window-circulateCirculate window-ucirculateCirculate Unmapped window_PK_TEMP?\%p%%%%&8&`&Could not load font '%s', benchmark omitted Could not load font '%s', benchmark omitted ?@CT! @@$@?@CT! @@$@sqrt@???5h!@DNn?cossintan: DOMAIN error 4h!?܀bĿ?/)"8 }?4h!@܀b?/)"8 ~?˖@ɔ?xgށ?4h!@܀b?/)"8 ?©JS@$a.?=ZÅ?˖@ɔ?xgނ?;M@dCX?F|?4h!@܀b?/)"8 ?{ڕe1@@]?jh7/E?©JS@$a.?1pZÅ?vO:@.ǐ?NK+c?˖@ɔ?gރ?%\@iײX0?F:tfQ?;M@dCX?F}?6R~@? @I?4h!@܀b?b)"8 ?XNCLؠ@NǡE?ipH܀?{ڕe1@@]?i7/E?f@8b?uHTye?©JS@$a.?1pZÅ?rezg@r0"?,5kӅ?vO:@.ǐ?NK+c?K$e@4DԖn?RF,P?˖@ɔ?gބ?b@ گ?3'?%\@iײX0?F:tfQ?c0x`@P%c?Ji3?;M@dCX?F~?F"^6@zlNS?n*?6R~@?P @I?#|][@Tߩ&{?#0?4h!@܀b?A)"8 ?Ft2wYX@oŹ?+?:)ɂ?XNCLؠ@NǡE?sqH܁?iT!W@8?maWYĄ?{ڕe1@@]?Pi7/E? vTz@uT?S|X?x~?f@8b?:HTye?uR @= 4?s\4Ӄ?©JS@$a.?1pZÅ?ig(΀@u^!?;yxyE?rezg@r0"?,5kӅ?{br@'ukj?Ys?vO:@.ǐ?NK+c?}%_@"ִP?o ?K$e@4DԖn?RF,P?@)r^?X(EN?˖@ɔ?gޅ?4!d#@ QO?'?b@ گ?=L3'?z298@jorh?bʁ?%\@iײX0?nMtfQ?C!@GI?wwJ|׃?c0x`@P%c?i3?Tɬ@Qz_4?[=?;M@dCX?F?Le@ >į@?6 ?F"^6@zlNS?n*?vZ@ʚf?⬗х?6R~@?P @I?ׇb@+?Gd,?#|][@Tߩ&{?#0?+7@]RI?!>hD^?4h!@܀b?A)"8 ?`(J p7M}f6OXXmtKdtz?iJ,} !ѮK g:udN}`!'J~%fbGֳMmُӋI]^|}AϺBWG̀3 &Xxj†WWaf( #\UA2Ꜳ8X#pJ:wq֠)4kOAUO n I͇'ǟrdHa ]L-qpFgSP+@Kax\%4U5鵏M(ƧJ*Y>ŹpEΎu6)!ɮՈGwgUQ6zH/ ;q5Mu$֎!8Vx20|  R+_G|4j76ij뗐 Zt& ⨖^u+;rYcrIrMX# Dp& r1q|l$P+JR95D%3/O=0{<1>dlpBѼK*ȑK۞)$CUR̲xwbP!:%̥9bZfח &n)LncoygNcL =]CLZ*$;ݹi5 }Ż#Tm|ZϗP@TJa pL6S Sp}BBYJA'v]1anZeZJǕ13Z+bv"/%< *pzxe eσ!gLwdNy7 h$6D:iEXqbn<PR݉}Ȣɋ ٠]FΔkǨpkpeg  cA[LHE1R$rqM$yڪ{Ƙw ڌk*kwEþ6-YL{oJѿZ~w* ri6yc,MsթPH/S*σtp^H݅"T:.@l|Kcfpp}!1 &+o7w۶-h$AJ _^Vy?m⶿~[o*? A[A akScVY5R̷qsIX2n2/[?9)V7htۑ\XR.8MTG-TL< ۡKjMp-iz,5¹}ch#P iS34HK2m/tvphEK @#YePvʡZ^"g*S >fS#qiC,N%O3H m\!X}SY/kZ04#,T,ǾCN0Pͨ>x2S7|6o&5pxDڑݗto}UQ;Kz!|J[du#x0l$BZ,_^[焚sqn@Tml-.byC e C]@{U{Dn. %p eMj-63-DbU85Hn 皗~RN[8!j:5{4?mKMKN62N FZ- S&7JB%XZ%_r=}m o 3 ;zffoDԠq Gww+Fhuf־'pyHM$7N٦ NLlTRC,|Zi "l~R7sQ'8ٺP.Hn aB`yP'uUz>ǃJq"p1CtᶖQN!KeD ЯO" *19p: Jdl/BiwxI&eFZ jJ;-3'HB2Ci<mJHԛ_SjiFumewΧh(\{njN M?}4`@VO8x|lk<*?ҩ:.M>nm%e0ϟG%+SmycOH팅bNPN3ι~mΣoHK5tkG7% -tl[Rɗ,NMK*̕!:> f$FsP8XtٺV.^u F#l}~mge \e/lRz絒<&q]kN Wa>cJ]RӍDANFrißud㕨fBLu#,`s,E֮%sE3xPh%(:ɘzaغWu##-JBaWlXu,K C.Je[Gqw`Eh« BҝJ*Q gU^SN_ p͑uak(NxjEӣh6pA   wKV*HlTڶMzr%NonwÓgkso4ܻB$]#auΟ7 JHhW'eF"g? 1"}`5RD &b4Qɐ[(MES8O0y>~]m9`:i[[“K?Jb\w].+]6g.Gj8yK6~߂9A"eh|t:r!7ڨ|-8 ]dzMAX)z!kX` ^ |öRDB4Cމ xG}NGpϱaJP9$׾"~OP+8Th&RZ0}_vrF!^tSi2fTwSS@͏W{rY oS@vՃxmC8ʼnr\ u U*AvRHTr':t) fMsB*]Vr[WP|w'} ,ivC(/J-if}LٟCOq%j]B:={3׃e%ϦN2[!?7BIvEZ&}ER]s!WѰI2>%=-whl~DISPLAY?????pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_padDISPLAYxds.cat@BaseXXlib: client uses different protocol version (%d) than server (%d)! Xlib: connection to "%s" refused by server Xlib: BIG-REQUESTSBIG-REQUESTS@ `P0pH(hX8xD$dT4t L,l\<|B"bR2r J*jZ:zF&fV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_? 0@P`p!1AQaq"2BRbr#3CScs$4DTdt%5EUeu&6FVfv'7GWgw(8HXhx )9IYiy *:JZjz +;K[k{ ,N^n~/?O_oxxxxx(8xxx(8xxxx8x(8(xxx|||||04p4HH4d4Ttt<Xlib: resource ID allocation space exhausted! Xlib: sequence lost (0x%lx > 0x%lx) in reply type 0x%x! Xlib: unexpected async reply (sequence 0x%lx)! unknown errorno such errorX connection to %s broken (explicit kill or server shutdown). XIO: fatal IO error %d (%s) on X server "%s" after %lu requests (%lu known processed) with %d events remaining. XlibMessageXErrorX Error%s: %s MajorCodeRequest Major code %d%dXRequest (%s) MinorCodeRequest Minor code %d %s.%dXRequest (%s) %s.%dValue ValueValue 0x%xAtomIDAtomID 0x%xResourceIDResourceID 0x%x ErrorSerialError Serial #%d CurrentSerialCurrent Serial #%d S%s%dR/dev/X/dev/spx/dev/spxWhitePointrgb:%s %sXCMS_COLORDB_START0.1%sXCMS_COLORDB_END%s %sXCMS_COLORDB_START0.1%sXCMS_COLORDB_ENDXCMSDB/usr/lib/X11/Xcms.txtr@܅@h@0@@@@,s@Lt@4t@Ps@pt@`s@ciexyzcieuvyciexyycielabcieluvtekhvcrgbirgbls@ss@zs@s@s@s@s@s@H8FHCF8FHCs@B$t@,t@s@@ t@t@Lt@4t@dt@28 F̱N?/CX?ZDc?|rl?9 u?##k=]}?((8en݃?--Zc!?22Kɐ?77;Y!?<<R%?AA #ݟ?FF!'*?KKq:ɦ?PP`cDЪ?UUNoD?ZZ_ Pj?__̯?dd8h?iisк?nn6?ssbo?xxHm?}}rc?28*7?Û5x_??7k?:? >?5?-@j?m(?%?ȵb?K?ht?Crc?]y?..?ari?uŌ?ꫫ5?qh.}?g;p?+?ӅX?ʾ+?ߊ5|??'eRCK?| ^`?wm?##*Ŏơ~w?((E+B?--=!7 ?22%?77@?<<BB?AAJY?FFVEɨ2?KKS iT?PP#0?UUAm?ZZ}Xo ӳ?__ ?dd8?ii|yѽ?nn +?ssP?xx |$?}}U?T5A}?^L3?\m?-B4-?7/N|?ٕzO??N#-?2#?͑_c?1qP?CVzN?nJy?^?/u;?Ip?G7 ?ϼv1?Y^?@-?0|? o?d6:?(]z??RDU??W?6ɏU?C8 a?H2wj? |E^s?##DŽK{?((G)?--)r?22B_zsѐ?77y:W?<<?AAe?FFr6?KK-y<-??PP[D7?UU]R߰?ZZi+I?__r蜟?ddMg'?ii&n?nniQ?ssd=?xxCf?}} <.?I??9% &B?,cC7?Q?DUy?} ^?{?P6 r?j1>?T^ P? ?)?u=u?f|?!Q?/L ?]kSU?_zs?]u??dr?Cr2q?>?l˸)? ^n?gaO;??|t@4v@2Dy@3OW @ $Y9ו$_Z{t?-C.Ϣ?{&OB?;YQɿh0T?~Oc?"?p??e7 ?S#D?ڕ?(;zL?&?{@{@{@@>MbP??MbPo@A@AXDCCC_LINEAR_RGB_CORRECTIONXDCCC_LINEAR_RGB_MATRICES%lf/%lf/%lfp}@}@0}@8}@unix%s%s%d.%d:::XDM-AUTHORIZATION-1MIT-MAGIC-COOKIE-1%dXDM-AUTHORIZATION-1}@~@~@ ~@,~@8~@@~@L~@T~@`~@l~@x~@~@~@~@~@~@~@no errorBadRequestBadValueBadWindowBadPixmapBadAtomBadCursorBadFontBadMatchBadDrawableBadAccessBadAllocBadColorBadGCBadIDChoiceBadNameBadLengthBadImplementation%dXProtoError%s.%dXProtoError%d/usr/lib/X11/%s/XErrorDB/usr/lib/X11/XErrorDB%s.%sErrorType.ErrorNumber 8dHd8dhd8dString?Cinclude*.: =%s: \n\ \n\\\%03owrXAUTHORITYHOME/.Xauthority:2*" <4,$ >6.&@80( 91)! ;3+# =5-% ?7/'(08@ '/7?&.6>%- 5=$, 4<#+ 3;"* 2:!) 1991)! :2*" ;3+# <4,$?7/'>6.&=5-%      )4%/7(3-!0,1'8"5.*2$                                                                                                                                     ؾ8s@ @(@h㈵>Y@h㈵?]@0@2#?"@k@U@@?b ?VI?b 0@%lf/%lf/%lfs@@@h㈵>Y@h㈵?ޗm@Q:@]@0@*@02#?%lf/%lf/%lfls@0@@h㈵>?h㈵%lf/%lf/%lfss@ ̅@ԅ@h㈵>?h㈵(@0@@"@@@.@%lf/%lf/%lfDdzs@X@`@h㈵>?h㈵@(@@"@0@@%lf/%lf/%lf8s@@@~:p?jM?-DT! @f@h㈵>Y@h㈵v@v?Cl@ޗm@Q:@]@0@V@p@V02#?MbPMbP?%lf/%lf/%lf@؇@؇@undefined?? @@<?@?wEw+3A\(&<@64$ \wEw+3AJЖz@>@>6j@?VmU?Ar^+ @s4UDA8W,@wf8aq@?-DT! @-DT! -DT!@-DT!-DT!?-DT!-DT!?-DT!:n\Ţ(D:n\Ţ(D5?PAAư>?@@^@ @`@@` @,@`0@<@`@@L@`P@\@``@l@`p@|@`@@`@@`@@^@Č@^Ȍ@،@^@@^@@^@ @^(@8@^@@P@^X@d@^h@t@^x@@^@@^@@^@@^ȍ@ԍ@^D,#8XhISO8859-1(BISO8859-1-AISO8859-2-BISO8859-3-CISO8859-4-DISO8859-7-FISO8859-6-GISO8859-8-HISO8859-5-LISO8859-9-MISO8859-15-MJISX0201.1976-0(JJISX0201.1976-0)IGB2312.1980-0$(AGB2312.1980-0$)AJISX0208.1983-0$(BJISX0208.1983-0$)BKSC5601.1987-0$(CKSC5601.1987-0$)CCNS11643-0(DCNS11643-0)DCNS11643-1$)GCNS11643-2$)HCNS11643-14$)ICNS11643-15$)JCNS11643-16$)K/4 T  0pSJISP@X@`@l@t@ |@@@ @ @ @@ ̏@@@@ @@$@,@4@<@L@h@@@@@@Đ@ܐ@@@@xx;;;;$;8|;CHARSETCODESETENCODINGFALSEFONTGLGRINITIAL_STATE_GLINITIAL_STATE_GRLENGTHMB_ENCODINGMB_CUR_MAXSTATE_DEPEND_ENCODINGTRUEWC_ENCODING_MASKWC_ENCODINGWC_SHIFT_BITSNAME CMB_CUR_MAX 1STATE_DEPEND_ENCODING FALSEWC_ENCODING_MASK 0x00008080WC_SHIFT_BITS 8CODESET0GLINITIAL_STATE_GLLENGTH 1WC_ENCODING 0x00000000ENCODINGISO8859-1 GLFontISO8859-1 GL%s/%s%s/%srXLIBI18N_PATH%s/%sr%s/%s/usr/lib/X11rlocale.aliasCodesetCodesetPOSIXCascii@Y@?MbPMbP??D@^@v@vT@XMODIFIERS/usr/lib/X11/%s/Xmodifiersr%s %s imXЦ,,-**/4 T    T!""4 T  %4&t'(*%$@$d$d$CISO8859/4 T  %4&t'(*EUC82hD\J@im=Composelocalnone%s_%s%s%s_XIMP__XIMP_@.%d_XIMP_VERSION_XIMP_STYLE_XIMP_TYPE_XIMP_SPROC_STARTED_KEYS_XIMP_SPROC_STOPPED_KEYS_XIMP_KEYS_XIMP_SERVERNAME_XIMP_SERVERVERSION_XIMP_VENDORNAME_XIMP_EXTENSIONS_XIMP_PROTOCOL_XIMP_CTEXT_XIMP_FOCUS_XIMP_PREEDIT_XIMP_STATUS_XIMP_PREEDITFONT_XIMP_STATUSFONT_XIMP_PREEDITMAXSIZEqueryInputStyleXIMP.4.0DisconnectedHxw(zH{{{ȍhComposeCodesetqueryInputStyleinputStyleclientWindowfocusWindowresourceNameresourceClassgeometryCallbackpreeditAttributesstatusAttributesareaareaNeededspotLocationcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSet,lineSpacecursorpreeditStartCallbackpreeditDoneCallbackpreeditDrawCallbackpreeditCaretCallbackareaareaNeededcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSet,lineSpacecursorstatusStartCallbackstatusDoneCallbackstatusDrawCallbackinputStyleclientWindowfocusWindowresourceNameresourceClassgeometryCallbackfilterEventspreeditAttributesstatusAttributesareaareaNeededspotLocationcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSetlineSpacecursorpreeditStartCallbackpreeditDrawCallbackpreeditDoneCallbackpreeditCaretCallbackareaareaNeededcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSetlineSpacecursorstatusStartCallbackstatusDrawCallbackstatusDoneCallbackISO8859-1ISO8859-1ISO8859-1ISO8859-1@@@@@@ximpXimplocalProcessingLocalProcessingTruetrueYesyesONonCtrlLockCapsShiftAltMetaNoneinputserverInputserveroffdelaybindingDelaybindingONonreconnectReconnectONonrestartRestartONonstartkeysymStartkeysymprocessStartKeysProcessStartKeyspreeditDefaultStylePreeditDefaultStyleXIMPreeditAreaXIMPreeditCallbacksXIMPreeditPositionXIMPreeditNothingXIMPreeditNonestatusDefaultStyleStatusDefaultStyleXIMStatusAreaXIMStatusCallbacksXIMStatusNothingXIMStatusNonecallbackEncodingCallbackEncodingwcharforceSelectKeyReleaseForceSelectKeyReleaseyesXIMP_TYPEXIMP_FE_TYPE1XIMP_FE_TYPE2XIMP_FE_TYPE3XIMP_BE_TYPE1XIMP_BE_TYPE2XIMP_SYNC_BE_TYPE1XIMP_SYNC_BE_TYPE2immodeImmodeXIMP_FE_TYPE1XIMP_FE_TYPE2XIMP_FE_TYPE3XIMP_BE_TYPE1XIMP_BE_TYPE2XIMP_SYNC_BE_TYPE1XIMP_SYNC_BE_TYPE2preedit.backgroundPreedit.Backgroundpreedit.foregroundPreedit.Foregroundpreedit.linespacingPreedit.Linespacingstatus.backgroundStatus.Backgroundstatus.foregroundStatus.Foregroundstatus.linespacingStatus.LinespacingISO8859-1ISO8859-1ISO8859-1ISO8859-1D@L@T@\@d@h@CtrlLockCapsShiftAltMetaNone𢣡ΰƴijŸö˷@ @$@(@,@0@4@8@ <@ @@ -A-B-C-D)I-G-L-F-H-N0xVoidSymbolBackSpacet TabZB Linefeed X ClearV Return 'Pause=Scroll_Lock0Sys_ReqEscapeDeletew Multi_key !Kanji]\"Muhenkan#Henkan_Mode#HenkanY$RomajiX%HiraganaXi&Katakanai'Hiragana_Katakana0'(Zenkaku+')Hankaku*Zenkaku_Hankaku0+Tourokuu,Massyo]-Kana_Lock]t.Kana_Shift`/Eisu_Shift0Eisu_toggle;PHome4QLeftRUp HSRight8TDown UPrior,NUPage_UphVNextVPage_DownTWEnd $XBegin`Select aPrint,bExecutecInserteUndo[fRedoMgMenuhFindiCanceljHelp qkBreakV~Mode_switch~script_switch]Num_LockPKP_SpaceKP_TabP,KP_Enter iKP_F1 jKP_F2 kKP_F3 lKP_F4'KP_Home'KP_Left KP_UpPKP_Right'KP_DownPKP_PriorAKP_Page_Up(KP_NextKP_Page_DownKP_EndOKP_BeginDKP_InsertKP_DeleteP:KP_EqualKP_MultiplyKP_AddKP_SeparatorKP_Subtract?zKP_DecimalQKP_DivideKP_0KP_1KP_2KP_3KP_4KP_5KP_6KP_7KP_8KP_9F1F2F3F4F5F6F7F8F9F10F11L1F12L2F13L3F14L4F15L5F16L6F17L7F18L8F19L9F20L10F21R1F22R2F23R3F24R4F25R5F26R6F27R7F28R8F29R9F30R10F31R11F32R12F33R13F34R14F35R15.ZShift_L.`Shift_RControl_LControl_RCaps_LockuShift_LockMeta_L$Meta_R JAlt_L PAlt_R0ZSuper_L0`Super_R.Hyper_L. Hyper_R _ space!exclamp"quotedbl8#numbersign$dollar5%percent͜&ersandM'apostropheh'quoterightִ(parenleftH)parenrighth*asterisk+plus ,comma --minus.period b/slash000111222333444555666777888999 :colonڄ;semicolonMgreaterp ?question6@atAAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ3T[bracketleft\backslashg]bracketright5#^asciicircum_underscore `graveD`quoteleftaaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz${braceleft|bar(}bracerightE~asciitildenobreakspaceexclamdowncentpsterlingj?currencyyenМbrokenbar6 sectionʹdiaeresiscopyrightjordfeminineiguillemotleft7notsignhyphen~registeredmacrondegreeplusminustwosuperiorthreesuperior IacuteOmuparagraph+periodcentered1cedillanonesuperior5masculineguillemotright onequarter5onehalfthreequarters8questiondownAgraveiAacuteRAcircumflexAtildeLAdiaeresis AringAESQCcedillauEgraveEacuteREcircumflexTEdiaeresisIgraveiIacuteRIcircumflex\IdiaeresisETHdEth%NtildeOgrave)OacuteROcircumflexEOtildehOdiaeresisnmultiply\OobliqueuUgraveUacuteRUcircumflextUdiaeresisiYacute THORN Thornssharpagraveiaacute Racircumflexatildeadiaeresis aring'aecQccedillauegraveeacute0Recircumflexediaeresisigraveiiacute@Ricircumflexidiaeresiseth%ntildeograve)oacuteXRocircumflexEotildeodiaeresishdivisionBoslashuugraveuacutepRucircumflexudiaeresisiyacute thornydiaeresis*Aogonek breve/'LstrokeLcaronSacuteScaron[QScedillaTcaronZacuteZcaronJZabovedot2aogonekogonek7'lstrokelcaronsacute LcaronscaronkQscedillatcaronzacuteGdoubleacutezcaronJzabovedotRacuteAbreveLacuteCacuteCcaron+EogonekEcaronDcaron-'Dstroke Nacute NcaronOdoubleacuteRcaron UringUdoubleacute[Tcedillaracuteabrevelacutecacuteccaron3eogonekecarondcaron5'dstroke nacute ncaronodoubleacuteudoubleacutercaron uringktcedilladJabovedot.'HstrokeRHcircumflexJIabovedotuGbreveRJcircumflex6'hstroketopleftradicalHhorizconnectortopintegralDbotintegralHvertconnectorRtopleftsqbracketRbotleftsqbracketRtoprightsqbracketRbotrightsqbrackettopleftparensbotleftparens\toprightparens<botrightparensleftmiddlecurlybracerightmiddlecurlybrace topleftsummationbotleftsummationHtopvertsummationconnectorHbotvertsummationconnectortoprightsummationbotrightsummationrightmiddlesummationtlessthanequalnnotequalgreaterthanequaljintegralthereforevariationiinfinity nablaDapproximateZsimilarequali<ifonlyif5!impliesBidentical4radicalXincludediniincludes intersection unionTlogicaland֘logicalorcpartialderivativejfunction=leftarrow7uparrowrightarrowӽdownarrow K blank soliddiamondNd checkerboardD ht2 ff8 cr> lfH nl` vt lowrightcorner; uprightcorner upleftcorner lowleftcorner> crossinglinesy horizlinescan1{ horizlinescan3} horizlinescan5 horizlinescan7 horizlinescan9 leftt rightt( bott topt7 vertbar4? emspace4_ enspacea em3spacea em4space digitspace punctspace_ thinspace_ hairspaceb emdashr endashoK signifblankh! ellipsisd doubbaselinedotm onethird twothirdsl0 onefifth twofifthswS threefifths fourfifthsmH onesixth fivesixths careof3 figdashR leftanglebracketL decimalpointR rightanglebracket( markerؘ oneeighth threeeighthsE fiveeighths# seveneighthsK trademark signaturemarkI trademarkincircle leftopentriangle_ rightopentriangleI emopencircle emopenrectangleTK leftsinglequotemarkTK rightsinglequotemarkK leftdoublequotemarkK rightdoublequotemark prescription5 minutes5 seconds latincrossh hexagram^ filledrectbullet  filledlefttribullet filledrighttribullet emfilledcircle{> emfilledrectZ enopencircbullet enopensquarebulletq^ openrectbullet opentribulletup opentribulletdownm openstarҞ enfilledcircbullet enfilledsqbullet filledtribulletup filledtribulletdownP leftpointer rightpointer club2 diamond heart maltesecross dagger doubledaggerɋ checkmark# ballotcross musicalsharpw6 musicalflatj malesymboljj femalesymbol] telephone telephonerecorder* phonographcopyright > caret|K singlelowquotemarkK doublelowquotemark\ cursorҾ leftcaret> rightcaret> downcaret7~ upcaret7 overbari downtack upshoeԱ downstileo underbar jot quad uptackI circle8 upstilei downshoe rightshoei leftshoei lefttack righttackE hebrew_doublelowlinerl hebrew_alephN hebrew_bet9 hebrew_bethr hebrew_gimel hebrew_gimmelrV hebrew_dalet hebrew_daleth hebrew_he hebrew_waw9 hebrew_zains hebrew_zayin9 hebrew_chetf hebrew_het hebrew_tet9 hebrew_teth hebrew_yod1 hebrew_finalkaph94 hebrew_kaphr hebrew_lamed[ hebrew_finalmems hebrew_mem hebrew_finalnun hebrew_nun hebrew_samech hebrew_samekh9< hebrew_ayin hebrew_finalpe hebrew_pe1a hebrew_finalzade1e hebrew_finalzadi9 hebrew_zade9 hebrew_zadi9 hebrew_qoph hebrew_kuf9 hebrew_resh9 hebrew_shin hebrew_taw hebrew_tafV~Hebrew_switchO euroZ< S_charonj< s_charon] Z_charonm z_charon OEC oev Y_diaresis#a/? ){4) ! $"{  &b28>DJPV\bhntz3 y   " ( . 4 : @ F L R X ^ d j p v | 2$+o)" ~# B 2,=# 4 /-#,n&Ox'\0 G!;5'=,@. ;BIPW^els '!0?N]l{3'#&-](+,34,m a$'n1=Q$J&1*9 D,*Z"7(v < *56 J(mE *# *,"', _-6A )+& ,+4-#D%-B}2*J!\4~ ?3*G W$E2! c$1(/a+ $ !JzD'I* !745 .h) %{b%lL1| ,72/(BX !s \1X2S28)0.'T z ;/ #C,.&.,1)$+2F0;. ` KnB5 %h '*Z)*;&_2 a 3l23t=q$\_7l.  3m"-' (9 } +t- ?\Qu1 n"D$2P! 3 4,(0R0  r+0 %"/-#/0- )(77LFUZ!ds"!4,&32T yB$+"M c S g 0t%4!/Ru,R 0,0x7 ] :* y!*u4$1-%_U#7%,E1$hBv(g1bm0h#+I S4'5'p"j-#/G 5+)8{  HE, V rT%%0")% Bz*O+F >43";)0 .x0. )221K&1d_,V)uwPj,, l+,1R !h*&'*^3 W* W 1w $$g D0:!0DZh42x4&C.*!;& !2~[ \&'(m36%(3%1 ! *pe'R-%5O&[&2&=+Eu#0a .-$]*,l 56()Ri#+.u-4U' ) 4' 3! t+1+- Gj!tp.4)% e z( %U 1C.1U =0yf04L/82% '+03 %/& j<C-B"\|)4&S.+l&'y&T-&0*-2Q,'. qe *1x.I%(T-,4', "Rdm*.[M)+ Z-+x/N3*_4*g-1%w 3q918NXKEYSYMDB/usr/lib/X11/XKeysymDBosfBackTab :1004FF07 osfBeginData :1004FF5A osfDeselectAll :1004FF72 osfEndData :1004FF59 osfEscape :1004FF1B osfExtend :1004FF74 osfNextField :1004FF5E osfNextMenu :1004FF5C osfPageLeft :1004FF40 osfPageRight :1004FF43 osfPrevField :1004FF5D osfPrevMenu :1004FF5B osfReselect :1004FF73 osfRestore :1004FF78 osfSelectAll :1004FF71 KeysymXNVaNestedListXNVaNestedListXNVaNestedListXNVaNestedList@tA@TC@D@E@dE@EXNExtXimp_BackfrontXNExtXimp_ConversionXNExtXimp_StatuswindowXNExtXimp_ErrorXNExtXimp_RestartCallbackXNExtXimp_DestroyCallback_XIMP_EXT_XIMP_BACK_FRONT_XIMP_EXT_XIMP_CONVERSION_XIMP_EXT_XIMP_STATUSWINDOW_XIMP_EXT_XIMP_LOOKUPCHOICES_XIMP_EXT_XIMP_LOOKUPSTARTCALLBACK_XIMP_EXT_XIMP_CHOICE_START_REP_XIMP_EXT_XIMP_CHOICE_PROCESS_REPKL|MHlXVKLHM8OinputStyleclientWindowfocusWindowresourceNameresourceClassgeometryCallbackfilterEventspreeditAttributesstatusAttributesareaareaNeededspotLocationcolorMapstdColorMapbackgroundforegroundbackgroundPixmaplineSpacecursorareaareaNeededspotLocationcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSetlineSpacecursorpreeditStartCallbackpreeditDrawCallbackpreeditDoneCallbackpreeditCaretCallbackareaareaNeededcolorMapstdColorMapbackgroundforegroundbackgroundPixmaplineSpacecursorareaareaNeededcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSetlineSpacecursorstatusStartCallbackstatusDrawCallbackstatusDoneCallbackinputStyleclientWindowfocusWindowresourceNameresourceClassgeometryCallbackpreeditAttributesstatusAttributesareaareaNeededspotLocationcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSet,lineSpacecursorpreeditStartCallbackpreeditDoneCallbackpreeditDrawCallbackpreeditCaretCallbackareaareaNeededcolorMapstdColorMapbackgroundforegroundbackgroundPixmapfontSet,lineSpacecursorstatusStartCallbackstatusDoneCallbackstatusDrawCallbackԈԈHH`x  `tt`Tx̋4T .L(d8unexpected answer type %d, size %d size (%d) too big res_search failed %u.%u.%u.%u.in-addr.arpares_query failed /etc/hostsr/etc/hostsr# DNS lookup of %s File lookup of %s NIS lookup of %s Reverse DNS lookup Reverse File lookup Reverse NIS lookup Lԛ/dev/socksys/dev/socksys@@@@@@@@@@@@@@@@QUERYIQUERYCQUERYMCQUERYUNOTIFYUPDATE678910111213ZONEINITZONEREF@@@ @@@ @(@0@<@H@P@`@h@t@x@@@@@@@@@@ @(@0@D@H@X@\@h@l@x@|@@@@@@@@@@@@ @@@ ,@0@ <@D@ L@P@ p@t@ @@@@@@@@@@@@@@$@,@<@@@H@P@`@l@@@@@@@@@@@@@@@(@,@ P@X@!x@|@"@@@@@@@@@@ @(@D@L@p@x@#@@$@@%@@&@@'@@(@@) @$@4@8@@@H@T@\@l@x@@@@@@@@@@@@@ $@,@ @@H@ T@X@\@d@t@|@@@ d'@Bʚ;0A;; res options: %s;; memory allocation failure ;; %s SECTION: ;; %s, type = %s, class = %s .;; memory allocation failure ;; ns_sprintrr: %s ;; ns_parserr: %s ;; ns_initparse: %s ;; ->>HEADER<<- opcode: %s, status: %s, id: %d ; flags: qr aa tc rd ra ?? ad cd; %s: %d, %s: %d, %s: %d, %s: %d.INCHAOSHSHESIODANYNONEQUERYANSWERAUTHORITYADDITIONALZONEPREREQUISITEUPDATEADDITIONALRSARSA KEY with MD5 hashDHDiffie HellmanDSADigital Signature AlgorithmEXPIREONLYNo algorithmPRIVATEAlgorithm obtained from OIDPKIXPKIX (X.509v3) CertificateSPKISPKI certificatePGPPGP certificateURLURL PrivateOIDOID PrivateAaddressNSname serverMDmail destination (deprecated)MFmail forwarder (deprecated)CNAMEcanonical nameSOAstart of authorityMBmailboxMGmail group memberMRmail renameNULLnullWKSwell-known service (deprecated)PTRdomain name pointerHINFOhost informationMINFOmailbox informationMXmail exchangerTXTtextRPresponsible personAFSDBDCE or AFS serverX25X25 addressISDNISDN addressRTrouterNSAPnsap addressNSAP_PTRdomain name pointerSIGsignatureKEYkeyPXmapping informationGPOSgeographical position (withdrawn)AAAAIPv6 addressLOClocationNXTnext valid name (unimplemented)EIDendpoint identifier (unimplemented)NIMLOCNIMROD locator (unimplemented)SRVserver selectionATMAATM address (unimplemented)TKEYtkeyTSIGtransaction signatureIXFRincremental zone transferAXFRzone transferZXFRcompressed zone transferMAILBmailbox-related data (deprecated)MAILAmail agent (deprecated)NAPTRURN Naming AuthorityKXKey ExchangeCERTCertificateA6IPv6 AddressDNAMEdnameSINKKitchen Sink (experimental)OPTEDNS OptionsANY"any"NOERRORno errorFORMERRformat errorSERVFAILserver failedNXDOMAINno such domain nameNOTIMPnot implementedREFUSEDrefusedYXDOMAINdomain name existsYXRRSETrrset existsNXRRSETrrset doesn't existNOTAUTHnot authoritativeNOTZONENot in zoneBADSIGbad signatureBADKEYbad keyBADTIMEbad time%d%dinitdebugaaonly(unimpl)usevcprimry(unimpl)igntcrecursdefnamstyopndnsrchinsecure1insecure2?0x%lx?%u%lu.%.2lu?; error: unknown LOC RR version-%d %.2d %.2d.%.3d %c %d %.2d %.2d.%.3d %c %s%d.%.2dm %sm %sm %sm%04d%02d%02d%02d%02d%02d/&HOSTRESORDERLOCALDOMAIN/etc/resolv.confrdomain hostresordersearchnameserversortlistoptionsconf;; res_init()... default dnsrch list: ;; %s ;; ..END.. RES_OPTIONSenv;; res_setoptions("%s", "%s")... ndots:;; ndots=%d timeout:attempts:debug;; res_setoptions("%s", "%s").. ;; debug inet6rotateno-check-nameslocalbindnis;; res_init()... default query order ;; %d %d %d ;; res_nmkquery(%s, %s, %s, %s) $Id: res_mkupdate.c,v 1.25 2000/11/22 01:20:46 marka Exp $,|| `HL(L(L0123456789PPPPPPPPPPres_mkupdate: incorrect opcode: %d res_mkupdate: incorrect opcode: %d 0x%d%d%d;; res_query(%s, %d, %d) ;; res_query: mkquery failed ;; res_query: send error ;; rcode = %d, ancount=%d ;; res_nquerydomain(%s, %s, %d, %d) %s.%sHOSTALIASESr;; res_send() ;; Querying server (# %d) address = %s ;; got answer: socket(vc)connect/vcwrite failedread failed;; response truncated ;; undersized: %d read(vc);; old answer (unexpected): socket(dg)connect(dg);; new DG socket send;; timeout selectrecvfrom;; undersized: %d ;; old answer: ;; not our server: ;; wrong query name: server rejected query: ;; truncated answer res_send: %s ([%s].%u): %s res_send: %s: %s /dev/socksyslibsocket: socket: /dev/socksyslibsocket: dup2 failure$Id: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=hPP$Id: ev_streams.c,v 8.21 1999/10/07 20:44:04 vixie Exp $ev_streams.cctx->strDone == NULL$Id: ev_timers.c,v 1.30 2001/02/12 23:13:48 marka Exp $evSetTimer(ctx %#x, func %#x, uap %#x, due %d.%09ld, inter %d.%09ld) timers after evSetTimer: deferring delete of timer (executing) timers after evClearTimer: timers after evResetTimer: func %p, uap %p, due %d.%09ld, inter %d.%09ld $Id: eventlib.c,v 1.45 2000/02/04 07:25:39 vixie Exp $T334`4443 5D5X5|5H6\6D5eventlib.crevs >= 0eventlib.crevs >= 0eventlib.cLINKED(((ctx->accepts).head), link)evGetNext: fdCount %d eventlib.ctp == &tpselect(%d, 0x%lx, 0x%lx, 0x%lx, %d.%09ld) select() returns %d (err: %s) noneEBADF: %d eventlib.cnextTimer || ctx->fdCountfdCount < 0 (%d) Dispatch.Accept: fd %d -> %d, func %#x, uap %#x Dispatch.File: fd %d, mask 0x%x, func %#x, uap %#x Dispatch.Stream: fd %d, func %#x, uap %#x Dispatch.Timer: func %#x, uap %#x Dispatch.Wait: tag %#x, func %#x, uap %#x Dispatch.Timer: timer rm'd?  A/etc/hostshosts.byaddrhosts.bynamerhosts.byaddrr# A/etc/protocolsprotocols.bynumber%dprotocols.bynamerprotocols.bynumberr# A A/etc/servicesservices.byname%d%s/%srrr# ,/ $Id: heap.c,v 8.7 1999/10/13 16:39:34 vixie Exp $ A A A A AResolver Error 0 (no error)Unknown hostHost name lookup failureUnknown server errorNo address associated with name: Resolver internal errorUnknown resolver error[inet_ntoa error]%u.%u.%u.%u%x01234567890123456789abcdef0123456789ABCDEF$Id: memcluster.c,v 8.20 2001/02/13 23:14:54 marka Exp $memcluster.cfreelists != NULLmemcluster.cstats[max_size].gets != 0memcluster.cstats[size].gets != 0%s:%d: memget(%lu) -> %p %s:%d: memput(%p, %lu) %s%5d: %11lu gets, %11lu rem>= (%lu bl, %lu ff)$Id: ns_date.c,v 1.2 1999/10/13 16:39:35 vixie Exp $$Id: ns_name.c,v 8.15 2000/03/30 22:53:46 vixie Exp $0123456789$Id: ns_netint.c,v 8.4 1999/10/13 16:39:35 vixie Exp $$Id: ns_parse.c,v 8.15 2000/12/23 08:14:55 vixie Exp $x   @ $Id: ns_print.c,v 8.22 2001/03/26 07:04:31 marka Exp $. @ . %s %s ( %lu; serial ; refresh ; retry ; expiry ); minimum %u %u %u %u %u %u %u %u ( %d )0x%04x %u %u ( ) ; key_tag= %u%s %d %d %lu %s %s %u ( ) %s%d %d %d record too long to print ( ) %s %s %u %u %u %dunknown RR typeRR format error\#( ; %s %02x ); " "\\"ns_print.clen <= *buflen $Id: ns_samedomain.c,v 8.9 1999/10/15 21:06:51 vixie Exp $$Id: ns_ttl.c,v 8.8 1999/10/13 16:39:36 vixie Exp $%d%c$Header: /proj/cvs/isc/bind8/src/lib/dst/support.c,v 1.9.2.1 2001/06/06 21:45:17 marka Exp $K%s+%03d+%05d.%s%s,%x %d @(#)yp_all.c,v 5.4 1995/03/28 13:59:52 steved Exp System V NFS sourceyp_all - TCP channel create failureyp_all - RPC clnt_call (TCP) failureyp_all - TCP channel create failureyp_all_master - RPC clnt_call (TCP) failure@(#)yp_bind.c,v 5.8 1995/03/28 14:06:29 steved Exp System V NFS source  /etc/yp/binding/.0123456789load_dom_binding: malloc failure.@(#)yp_enum.c,v 5.1 1992/08/13 11:27:03 wmv Exp System V NFS sourceAYP_@(#)yp_gt_mstr.c,v 5.2 1992/12/15 22:51:27 wmv Exp System V NFS source (Can't translate master name %s to an address.bind_to_server: server is not using a privileged portypxfr: bind_to_server clnt_call errorbind_to_server clntudp_create error %sCan't get master of %s. Reason: %s. Can't bind master to send ypclear message to ypserv for map %s.Can't send ypclear message to ypserv on the master machine for map %s.@(#)yp_master.c,v 5.1 1992/08/13 12:37:03 wmv Exp System V NFS source@(#)yp_match.c,v 5.2 1993/09/20 15:55:17 steved Exp System V NFS source@(#)yperr_str.c,v 4.4 1991/09/20 15:30:04 wmv Exp System V NFS sourceNIS operation succeededargs to NIS function are badRPC failure on NIS operationcan't bind to a server which serves domainno such map in server's domainno such key in mapinternal NIS server or client errorlocal resource allocation failureno more records in map databasecan't communicate with portmappercan't communicate with ypbindcan't communicate with ypservlocal domain name not setNIS map data base is badNIS client/server version mismatchunknown NIS client error code@(#)ypmaint_xdr.c,v 4.2 1991/10/02 10:34:51 wmv Exp System V NFS source@(#)ypprot_err.c,v 5.1 1992/05/19 15:46:24 wmv Exp System V NFS source@(#)ypv1_xdr.c,v 4.4 1991/09/20 15:32:55 wmv Exp System V NFS sourcehhXh@(#)ypxdr.c,v 5.1 1992/08/13 12:40:18 wmv Exp System V NFS source/etc/yp/YP_MAP_X_LATErcouldn't open x_late file %s %s$Id: assertions.c,v 8.3 1999/01/08 19:25:14 vixie Exp $(REQUIREENSUREINSISTINVARIANT%s:%d: %s(%s)%s%s failed. : @(#)clnt_perr.c,v 5.2 1993/05/28 16:30:25 steved Exp System V NFS sourceLLLttLLLLLLLLLL A A0 AL A` Ax A A A A A !A !A D!A `!At!A!A!A!A$"A8"AT"Ap"A"A"A"A"A%s: ; errno = %s; low version = %lu, high version = %lu; why = %s(unknown authentication error - %d); low version = %lu, high version = %lu; s1 = %lu, s2 = %lu%s RPC: SuccessRPC: Can't encode argumentsRPC: Can't decode resultRPC: Unable to sendRPC: Unable to receiveRPC: Timed outRPC: Incompatible versions of RPCRPC: Authentication errorRPC: Program unavailableRPC: Program/version mismatchRPC: Procedure unavailableRPC: Server can't decode argumentsRPC: Remote system errorRPC: Unknown hostRPC: Unknown protocolRPC: Port mapper failureRPC: Program not registeredRPC: Failed (unspecified error)RPC: (unknown error code)%s %s: - - Error %d%s Authentication OKInvalid client credentialServer rejected credentialInvalid client verifierServer rejected verifierClient credential too weakInvalid server verifierFailed (unspecified error)@(#)clnt_tcp.c,v 5.3 1992/10/28 14:02:32 wmv Exp System V NFS sourcep@0clnttcp_create: out of memoryclnttcp_create: out of memory@(#)clnt_udp.c,v 5.2 1992/10/28 14:17:53 wmv Exp System V NFS sourceh8(x  clntudp_create: out of memory clntudp_create: out of memoryclntudp_create: out of memory clntudp_create: out of memory$Id: ev_connects.c,v 8.27.2.2 2001/06/26 04:45:20 marka Exp $ev_connects.cLINKED(acc, link)ev_connects.c!LINKED(new, link)ev_connects.c(evmask & EV_READ) != 0$Id: ev_files.c,v 1.19.4.1 2001/06/26 04:38:28 marka Exp $evSelectFD(ctx %#x, fd %d, mask 0x%x, func %#x, uap %#x) evSelectFD(fd %d, mask 0x%x): new masks: 0x%lx 0x%lx 0x%lx evDeselectFD(NULL) ignored evDeselectFD(fd %d, mask 0x%x) evDeselectFD(fd %d, mask 0x%x): new masks: 0x%lx 0x%lx 0x%lx @(#)getdom.c,v 4.4 1991/01/02 17:58:16 maf Exp System V NFS source/dev/nfsd@(#)pmap_gtprt.c,v 4.5 1991/09/20 10:12:50 wmv Exp System V NFS source<@(#)pmap_prot.c,v 4.4 1991/01/02 17:55:58 maf Exp System V NFS source@(#)rpc_comdat.c,v 4.4 1991/01/02 17:59:05 maf Exp System V NFS source@(#)rpc_dtabsz.c,v 4.5 1991/11/13 13:08:44 wmv Exp System V NFS source@(#)rpc_prot.c,v 4.5 1991/09/20 10:20:09 wmv Exp System V NFS sourcelht@(#)xdr.c,v 4.5 1991/09/20 14:07:06 wmv Exp System V NFS sourcexdr_bytes: out of memoryxdr_string: out of memory@(#)xdr_mem.c,v 4.4 1991/01/02 17:57:42 maf Exp System V NFS source(x8x@(#)xdr_rec.c,v 5.1 1993/09/20 15:15:43 steved Exp System V NFS source T  D  D  T xdrrec_create: out of memoryxdrrec_create: out of memory@(#)xdr_refnce.c,v 4.5 1991/09/20 14:20:59 wmv Exp System V NFS sourcexdr_reference: out of memory@(#)au_none.c,v 4.4 1991/01/02 17:54:57 maf Exp System V NFS source(*Asyslog<%d>%.15s %s[%d]%s /dev/console /dev/syslog/usr/lib/nls/msg/%L/%A/%N:/usr/lib/nls/msg/%l_%t/%A/%N:/usr/lib/nls/msg/%l/%A/%N:/etc/nls/msg/%L/%A/%N:/etc/nls/msg/%l_%t/%A/%N:/etc/nls/msg/%l/%A/%NNLSPATHCLANGC/%s %s %2d %.2d:%.2d:%.2d %d GMTlocaltime/usr/lib/locale/TZ/rGMTM4.5.0,M10.5.0t,AL,A,A,AM4.1.0,M10.5.053,2985,327TZGMTUnknown error4A4A4A4A4A4A5A5A05AD5AT5Ah5A5A5A5A5A5A5A5A6A6A$6A46AH6A\6Ap6A6A6A6A6A6A6A7A7A(7AH7Ad7Ax7A7A7A7A7A7A 8A(8A88A\8Ax8A8A8A8A8A8A8A9A$9A49AL9Ad9Ax9A9A9A9A9A9A9A:A(:A@:AP:A`:A|:A:A:A:A:A:A:A;A;A@;A\;A|;A;A;A;AA(>AH>AX>Ap>A>A>A>A>A?A?A@?Ad?A|?A?A?A?A?A?A?A@A@A0@AD@AX@Al@A@A@A@A@A@A@A@A AA(AAPMMPQNMNPMMP.PM^POMxPPPPPPPPPPMMMMMMMao]UMeipMMMMPMMMMMMZVMMMM]MMMMMMMMa]4UVeipOVPMOMR])]MMfUOc[MM/^MO??????,,,,,,D(@Չqeeee"eeeee~~~~~~~~~~eeeeeeeˡƠˡˡˡe<eereeeeee<eewee.eeeee.^rePe#eeP^eeePreX5 G79 81q&5 .Z$+H'jt$!]6!J 5w%^_KLza N }dP@fff&f&QG!+.A j<D h"2l8S589C7{-_k2+/4R&U# ~>B8D K) -m5Zh.W?YU {?1^Fz !%'ph]( ZJ(90H/9Y!,3q405#f# :\< D+>1>J\ _/)T=eEyM?8!Z,<bbbwb5,6)6b9OCS}6+tC0 8  /m. B"Xv0#0j=pBEMV'j&50b@ Q/d )'|+.~:EOk').:S2)I d 4* !@SQT./4lWgi 9[,$2$#بA$.3nS ?/p<j`m 4F0123456789ABCDEF0123456789abcdefC@80T`WTLDܻhp  ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ : libc@unixdssyserr@unixdsMessage not found!! LC_ALLLANGC,OA?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Unknown errorJanFebMarAprMayJunJulAugSepOctNovDecSunMonTueWedThuFriSat;Zx0N<[y1O/bin/shsh-cXXXXXX/usr/tmp//dev/tty0123456789ABCDEF0123456789abcdefNANnanINFINITYinfinityiInNiItTyYnaninfinity lXApXAGMT  ^PB4pThC6)udpApYAYA/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%l_%t/%N:/usr/lib/nls/msg/%l/%N:/etc/nls/msg/%L/%N:/etc/nls/msg/%l_%t/%N:/etc/nls/msg/%l/%N/usr/lib/nls/msg/%L/%A/%N:/usr/lib/nls/msg/%l_%t/%A/%N:/usr/lib/nls/msg/%l/%A/%N:/etc/nls/msg/%L/%A/%N:/etc/nls/msg/%l_%t/%A/%N:/etc/nls/msg/%l/%A/%N:/usr/lib/nls/msg/%L/%A/%N.m:/usr/lib/nls/msg/%l_%t/%A/%N.m:/usr/lib/nls/msg/%l/%A/%N.m:/etc/nls/msg/%L/%A/%N.m:/etc/nls/msg/%l_%t/%A/%N.m:/etc/nls/msg/%l/%A/%N.mLC_MESSAGESLANGNLSPATHNLSPATH\A\A\A\A\A\A\A\A  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~NOT_CATNAME0NOT_CATNAME1LC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MESSAGESLC_MONETARYPOSIXX0X0x0/etc/default/langLANG=english_us.ascii^A^A^A^A^A^A^ACPOSIXC_C.CLC_ALLLANGLANG=LC_ALLLC_CTYPELC_COLLATELC_NUMERICLC_MESSAGESLC_MONETARYLC_TIME/CPOSIXC_C.CNLSPATH/usr/lib/nls/msg/%L/%A/%N:/usr/lib/nls/msg/%l_%t/%A/%N:/usr/lib/nls/msg/%l/%A/%N:/etc/nls/msg/%L/%A/%N:/etc/nls/msg/%l_%t/%A/%N:/etc/nls/msg/%l/%A/%N:/usr/lib/nls/msg/%L/%A/%N.m:/usr/lib/nls/msg/%l_%t/%A/%N.m:/usr/lib/nls/msg/%l/%A/%N.m:/etc/nls/msg/%L/%A/%N.m:/etc/nls/msg/%l_%t/%A/%N.m:/etc/nls/msg/%l/%A/%N.mNLSPATH/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%l_%t/%N:/usr/lib/nls/msg/%l/%N:/etc/nls/msg/%L/%N:/etc/nls/msg/%l_%t/%N:/etc/nls/msg/%l/%N/usr/lib/nls/msg/%L/%A/%N:/usr/lib/nls/msg/%l_%t/%A/%N:/usr/lib/nls/msg/%l/%A/%N:/etc/nls/msg/%L/%A/%N:/etc/nls/msg/%l_%t/%A/%N:/etc/nls/msg/%l/%A/%N:/usr/lib/nls/msg/%L/%A/%N.m:/usr/lib/nls/msg/%l_%t/%A/%N.m:/usr/lib/nls/msg/%l/%A/%N.m:/etc/nls/msg/%L/%A/%N.m:/etc/nls/msg/%l_%t/%A/%N.m:/etc/nls/msg/%l/%A/%N.m/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%l_%t/%N:/usr/lib/nls/msg/%l/%N:/etc/nls/msg/%L/%N:/etc/nls/msg/%l_%t/%N:/etc/nls/msg/%l/%N/usr/lib/locale//usr/lib/lang/CPOSIXC/C/CPOSIXC~@MJMMpLMNN~@rR`N(R`RPRRR@cACGgbfgeTgdgrg?@@@@ @P@$@@ @(k@ @@C#@&@*焑*@ -@1_0@4@.7@@v:k :@#NJ>@bxA@z&D@n2xH@W ?hK@N@@aQYR@ȥoU@: 'X@}q5  =-1eQJsHPeA d'@Bʚ;&@Phr#9EQcr $1GVby 0Mhw.CTaw0AWgu Fa~?f|0Of ' 7 N r  8 M ` m ~   - @ S f y    / G Z m  . Unknown errorOperation not permittedNo such file or directoryNo such processInterrupted system callI/O errorNo such device or addressArg list too longExec format errorBad file numberNo child processesResource temporarily unavailableNot enough spacePermission deniedBad addressBlock device requiredDevice busyFile existsCross-device linkNo such deviceNot a directoryIs a directoryInvalid argumentFile table overflowToo many open filesInappropriate I/O control operationText file busyFile too largeNo space left on deviceIllegal seekRead-only file systemToo many linksBroken pipeArgument out of domainResult too large or too smallNo message of desired typeIdentifier removedChannel number out of rangeLevel 2 not synchronizedLevel 3 haltedLevel 3 resetLink number out of rangeProtocol driver not attachedNo CSI structure availableLevel 2 haltedDeadlock situation detected/avoidedNo record locks availableUnknown error: 47Unknown error: 48Unknown error: 49Bad exchange descriptorBad request descriptorMessage tables fullAnode table overflowBad request codeInvalid slotFile locking deadlockBad font file formatUnknown error: 58Unknown error: 59Not a stream deviceNo data availableTimer expiredOut of stream resourcesMachine is not on the networkPackage not installedObject is remoteLink has been severedAdvertise errorSrmount errorCommunication error on sendProtocol errorUnknown error: 72Unknown error: 73Multihop attemptedInode is remote Cross mount point Not a data messageFilename too longValue too large for defined data typeName not unique on networkFile descriptor in bad stateRemote address changedCan not access a needed shared libraryAccessing a corrupted shared library.lib section in a.out corruptedAttempting to link in more shared libraries than system limitCan not exec a shared library directlyIllegal byte sequenceFunction not implementedOperation would blockOperation now in progressOperation already in progressSocket operation on non-socketDestination address requiredMessage too longProtocol wrong type for socketProtocol not supportedSocket type not supportedOperation not supported on socketProtocol family not supportedAddress family not supported by protocol familyAddress already in useCannot assign requested addressNetwork is downNetwork is unreachableNetwork dropped connection on resetSoftware caused connection abortConnection reset by peerUnknown error: 109Socket is already connectedSocket is not connectedCannot send after socket shutdownToo many references: cannot spliceConnection timed outConnection refusedHost is downNo route to hostProtocol not availableUnknown error: 119Unknown error: 120Unknown error: 121Unknown error: 122Unknown error: 123Unknown error: 124Unknown error: 125Unknown error: 126Unknown error: 127Unknown error: 128Unknown error: 129Unknown error: 130Unknown error: 131Unknown error: 132Unknown error: 133Unknown error: 134Structure needs cleaningUnknown error: 136Not a name fileNot availableIs a name fileRemote I/O errorReserved for future useUnknown error: 142Unknown error: 143Unknown error: 144Directory not emptyUnknown error: 146Unknown error: 147Unknown error: 148Unknown error: 149Too many symbolic links in pathStale NFS file handleRestartable system callNo sleeping in stream head of pipe/FIFO@(#) crt1.s.source 104.2 02/02/22 @(#) crti.s.source 104.3 02/02/22 @(#)libc-i386:csu/crti.s 1.2@(#) values-Xa.c 20.1 94/12/04 @(#)libc-port:gen/values-Xa.c 1.3@(#) synonyms.h 104.1 02/02/28 xpg4plus @(#) math.h 104.2 02/02/27 xpg4plus @(#) flavours.h 104.4 02/03/08 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 108.1 02/06/18 xpg4plus @(#) ctype.h 20.2 95/02/10 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) string.h 112.2 02/11/13 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) select.h 65.2 97/08/05 @(#) itimer.h 77.1 99/06/22 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stddef.h 20.1 94/12/04 acomp: Release 5.2.0A 18Feb03optim: Release 5.2.0A 18Feb03@(#)connect.c,v 6.2 1994/07/18 11:47:53 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)gethostnm.c,v 6.2 1993/08/22 13:02:48 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 @(#) utsname.h 25.4 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)getsocknm.c,v 6.1 1994/07/18 11:47:39 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)hostent.c,v 6.17 1995/08/25 19:34:56 dhd Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) string.h 77.1 99/06/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)htonl.c,v 6.2 1993/08/22 12:57:39 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)htons.c,v 6.3 1994/07/02 15:36:09 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)ipdomain.c,v 6.4 1994/07/18 11:47:18 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 @(#) time.h 60.1 97/01/07 @(#) select.h 65.2 97/08/05 @(#) itimer.h 77.1 99/06/22 @(#) cdefs.h 59.1 96/11/20 @(#) utsname.h 25.4 94/09/22 @(#) param.h 58.1 96/10/12 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)ntohl.c,v 6.2 1993/08/22 12:57:47 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)ntohs.c,v 6.4 1994/07/09 14:53:41 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) math.h 20.4 95/09/27 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 xpg4plus @(#) ctype.h 20.2 95/02/10 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) cdefs.h 59.1 96/11/20 @(#) uio.h 26.1 95/11/30 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) signal.h 20.8 95/12/11 @(#) signal.h 86.1 99/12/28 @(#) siginfo.h 26.2 95/11/30 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)send.c,v 6.2 1994/07/18 11:47:32 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)setsockop.c,v 6.2 1994/07/18 11:47:25 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)socket.c,v 6.4 1994/07/18 11:47:43 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) stdio.h 20.2 95/12/11 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) uio.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 @(#) uio.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) stat.h 26.2 95/11/30 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) signal.h 20.8 95/12/11 @(#) signal.h 86.1 99/12/28 @(#) siginfo.h 26.2 95/11/30 xpg4plus @(#) stdarg.h 20.1 94/12/04 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) uio.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) string.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)gethostent.c,v 6.1 1994/06/10 18:36:25 stevea Exp - STREAMware TCP/IP sourcexpg4plus @(#) stdio.h 20.2 95/12/11 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) param.h 58.1 96/10/12 xpg4plus @(#) ctype.h 20.2 95/02/10 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)getpeernm.c,v 6.1 1994/07/18 11:47:48 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)getprotoent.c,v 6.3 1994/07/02 15:39:11 stevea Exp - STREAMware TCP/IP sourcexpg4plus @(#) stdio.h 20.2 95/12/11 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)getservent.c,v 6.4 1995/03/28 13:39:40 steved Exp - STREAMware TCP/IP sourcexpg4plus @(#) stdio.h 20.2 95/12/11 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 xpg4plus @(#) stddef.h 20.1 94/12/04 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 @(#) param.h 58.1 96/10/12 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) uio.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 xpg4plus @(#) grp.h 20.3 95/09/14 xpg4plus @(#) pwd.h 20.2 95/09/06 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) param.h 58.1 96/10/12 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) uio.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 @(#) param.h 58.1 96/10/12 @(#) stat.h 26.2 95/11/30 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) param.h 58.1 96/10/12 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) ctype.h 20.2 95/02/10 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) param.h 58.1 96/10/12 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) param.h 58.1 96/10/12 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) ctype.h 20.2 95/02/10 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) param.h 58.1 96/10/12 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)recvfrom.c,v 6.2 1994/07/18 11:47:31 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 xpg4plus @(#) memory.h 20.1 94/12/04 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 @(#) stat.h 26.2 95/11/30 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) param.h 58.1 96/10/12 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 xpg4plus @(#) malloc.h 20.1 94/12/04 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) ctype.h 20.2 95/02/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) malloc.h 20.1 94/12/04 xpg4plus @(#) string.h 77.1 99/06/22 @(#) time.h 60.1 97/01/07 @(#) select.h 65.2 97/08/05 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) itimer.h 77.1 99/06/22 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 @(#) dir.h 23.1 91/03/03 @(#) s5dir.h 25.2 94/09/22 @(#) file.h 25.4 94/09/22 @(#) stat.h 26.2 95/11/30 @(#) param.h 58.1 96/10/12 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 xpg4plus @(#) stdio.h 20.2 95/12/11 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) cdefs.h 59.1 96/11/20 @(#) param.h 58.1 96/10/12 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)bind.c,v 6.2 1994/07/18 11:47:52 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) param.h 58.1 96/10/12 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 @(#) ioctl.h 25.1 94/09/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) param.h 58.1 96/10/12 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) cdefs.h 59.1 96/11/20 @(#) ioctl.h 25.1 94/09/22 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) uio.h 26.1 95/11/30 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) sched.h 68.1 98/01/28 xpg4plus @(#) limits.h 20.3 95/08/01 @(#) select.h 65.2 97/08/05 @(#) time.h 60.1 97/01/07 @(#) itimer.h 77.1 99/06/22 @(#) ioctl.h 25.1 94/09/22 xpg4plus @(#) errno.h 20.1 94/12/04 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 xpg4plus @(#) unistd.h 20.5 95/09/27 @(#) unistd.h 26.1 95/11/30 @(#) uio.h 26.1 95/11/30 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) param.h 58.1 96/10/12 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 xpg4plus @(#) stdlib.h 20.3 95/09/13 xpg4plus @(#) string.h 77.1 99/06/22 @(#) resource.h 66.1 97/08/14 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) fcntl.h 90.1 00/05/12 @(#) errno.h 26.1 95/11/30 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)getsockop.c,v 6.2 1994/07/18 11:47:26 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)listen.c,v 6.1 1994/07/18 11:47:28 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) tiuser.h 25.1 94/09/22 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)sendto.c,v 6.2 1994/07/18 11:47:34 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)syslog1.c,v 6.6 1995/02/23 16:00:38 prem Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 xpg4plus @(#) stdarg.h 20.1 94/12/04 @(#) syslog.h 58.2 96/10/01 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) memory.h 20.1 94/12/04 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) memory.h 20.1 94/12/04 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 xpg4plus @(#) time.h 20.4 95/09/13 @(#) timeb.h 26.1 95/11/30 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) memory.h 20.1 94/12/04 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) syslog.h 58.2 96/10/01 xpg4plus @(#) stdarg.h 20.1 94/12/04 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)accept.c,v 6.3 1994/07/18 11:47:50 stevea Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02xpg4plus @(#) memory.h 20.1 94/12/04 xpg4plus @(#) malloc.h 20.1 94/12/04 @(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#)syslog.c,v 6.14 1995/09/29 19:12:07 phy Exp - STREAMware TCP/IP source@(#) types.h 26.3 95/11/30 @(#) fdmac.h 109.1 02/09/17 @(#) cdefs.h 59.1 96/11/20 @(#) cidefs.h 23.4 91/05/21 @(#) cilock.h 95.3 00/08/10 @(#) uio.h 26.1 95/11/30 xpg4plus @(#) signal.h 20.8 95/12/11 @(#) signal.h 86.1 99/12/28 @(#) siginfo.h 26.2 95/11/30 xpg4plus @(#) varargs.h 20.1 94/12/04 xpg4plus @(#) stdarg.h 20.1 94/12/04 @(#) syslog.h 58.2 96/10/01 @(#) param.h 58.1 96/10/12 xpg4plus @(#) stdio.h 20.2 95/12/11 xpg4plus @(#) string.h 77.1 99/06/22 xpg4plus @(#) strings.h 20.4 95/09/13 xpg4plus @(#) fcntl.h 20.1 94/12/04 @(#) fcntl.h 90.1 00/05/12 @(#) errno.h 26.1 95/11/30 acomp: Release 5.2.0A 07Aug02optim: Release 5.2.0A 25Jul02@(#) crtn.s.source 104.2 02/02/22 @(#)libc-i386:csu/crtn.s 1.5"l(dfh   y(*DR2Y{ %awwyS W .file gcrt1.s.text.data@.bssx{A.comment$.filegcrti.s.textl.data@.bss|{A.comment$@.init.finiu.file"gvalues-Xa.c.textl.data@ .bss|{A.commentd.filepgx11perf.cl ,& ('h*$,',3 .?b0P|hD2usage 4NullProc 6]$ 8j 4:w, (<\/> @\ <BDoTest'D$F  H  (J $L|  hN  pPmain\ $ R.textll.data@T.bss|{A0.commentP@ @labels@xorMode@,@repeat@seconds@syncTime@6@A@L@ws@start{AV|{Asaveargc{Asaveargv{AsyncTestX@c{Astatus{Atgc{Adoit{A__c{A.filegbitmaps.co< t.text<.data @ .bss{A.comment8| @ @ @.filegdo_tests.c.text.data@d5l.bss{A.comment.filegdo_simple.cDoNoOp ,H ,x$` X.text .dataHM@ .bss{A.commentproot{A{A.filegdo_rects.c0$0 t .text0.dataTM@.bss{A.comment pgc{Arects{A.filegdo_valgc.cInitGC$d8 EndGCX 0.text.dataTM@.bss{A.commentwin{A.filegdo_lines.c $!$`!!$|1h"$E#$|[#$DoLines($ xEndLines$ .text8*.dataTM@.bss{A.commentDpgc{Apoints{A.filegdo_segs.cu$$'$|($|( t) .text$X#.datalM@ .bss{A.commentpgc{Asegments{A.filegdo_dots.cInitDots)$dDoDots) tEndDots* .text) .dataM@.bss{A.comment|points{Apgc{A.file9gdo_windows.c * \*$\ + 8  ,$0P, - <@- 8&- 0InitMap-$00- 8= .$8I`. 8X.  e0/$"DoPopUps/ @$p 0 &.text *h.dataM@.bss{A,.commentz{A{A{A{A{A{A{A{Aisolates|Aparents|Apopup{A.file`gdo_movewin.c<0$d=1 ?|2 $A 2 pC3$E+3 dG9l4 IH4$KU6 M`6 4O.text<0k.dataM@.bss|A$.commentdelta1|Arows|Ax_offset|Ay_offset|Achildren(|Al$|Axmax|Aymax |Acover |A.file~gdo_text.cInitText6$$dDoText: fv: h; j< lEndText< n.text6tv.dataM@`.bss,|A .commentP fontD|Abfont@|Aypos8|Aheight<|A0|A,|AcharBufH|Aitems4|A.filegdo_copyarea.cT=$lDoScroll= > 4> ? dt@$0@$$A$DtA$,CopyAreaA ,B $"C (/4C (<dC $IC TD H_F j$F 0uTF (F $F$G `.textT= z.dataM@.bssL|A.comment pointsT|AsegsaP|AsegsbL|Apix}Aimage}A.filegdo_arcs.c$I J$J$K$<TK$<K$` K$|tL$4M$|LM$h4N yP$$P$DP$<P$<P$`$Q$|Q$DR$|R$DoArcsdS t4S tEndArcsdT .text$IX b.dataM@.bss}A.comment pgc}Aarcs}A.filegAP|T$^\V j W .text|T.dataM@0.bss}A.comment$ pgc}Apoints}A.filegdo_complex.cw$W$ X  Y  .text$W.dataN@0.bss}A.comment pgc}Apoints~A.file)gdo_traps.cY$Z \[ .textY.dataLN@.bss~A.comment\ pgc~Apoints~A.file5gsqrt.csqrtt['p-.textt[.dataLN@.bss ~A.comment ~Ah.fileKgsin.cX\'d49multadd\ 4;reduce]!4=cosH_'X4?sin`'P4Atana'@4C.textX\.data\N@\.bss ~A.comment ~A.fileWgmerr.c8c'O.text8c.dataN@.bss ~A.comment ~A$.filecgmatherr.cmatherrd$ [.textd .dataN@.bss ~A.comment ~AD.filemgtrig_data.c.text d.dataN@P.bss ~A.comment ~AD.fileygXChGC.c d$Tq.text dT.datah@.bss ~A.comment ~A(.filegXChProp.c`d$}.text`d.datah@.bss ~A.comment ~A(.filegXChWAttrs.c w$H.textw.datah@.bss ~A.comment ~A(.file\gXDrPoint.cI \y$T.text\y.datah@.bss ~A.comment ~A(.filehgXDrPoints.cT 8z$``.text8z`.datah@.bss ~A.comment ~A(.filetgXDrSegs.c` }$Ll.text}L .datah@.bss ~A.comment ~A(.filegXFillArcs.cn $\x.text\ .datah@.bss ~A.comment ~A(.filegXFillPoly.cx @$.text@.datah@.bss ~A.comment ~A(.filegXFillRect.c ȃ$.textȃ.datah@.bss ~A.comment ~A(.filegXFillRects.c $L.textL .datah@.bss ~A.comment ~A(.filegXFont.c h $ h h0.text.datah@.bss ~A.comment ~A(.filegXFreeEData.c $D.textD.datah@.bss ~A.comment ~A(.filegXFreeGC.cXFreeGC$.text.datah@.bss ~A.comment ~A(.filegXFreePix.c $\.text\.datah@.bss ~A.comment ~A(.filegXFSSaver.c $ $ 4$\.text.datah@.bss ~A.comment ~A(.filegXGCMisc.c' $83 Ѝ$8@ $8N P$8d $8.text8.datah@.bss ~A.comment ~A(.file gXGetAtomNm.cv Ȏb.textȎ.datah@.bss ~A.comment ~A(.filegXGetHColor.c ď$.textď.datah@.bss ~A.comment ~A(.file&gXGetImage.cOnest.< h Dh`.textt0.datah@.bss ~A.comment ~A(.file2gXGetProp.c $*.text .datah@.bss ~A.comment ~A(.file>gXGetSSaver.c $6.text.datah@.bss ~A.comment ~A(.fileLgXGetWAttrs.c 8$B X$D.text8 .datah@.bss ~A.comment ~A(.filegXImUtil.c <$8P |$lR $lT' \$V_putbits$X< hZI |$<\X /^c \/`p </b} ܠ/pd L/f $h $j \$l $\n L$p hr $t ܪ$Tv <$x.text<T.datah@.bss ~A.comment ~AL_lomaskh@_himaskh@ h@ i@.filegXImText.c% $.text.datai@.bss ~A.comment ~A(.filegXIntAtom.c6  HF /P.text.datai@.bss ~A.comment ~A(.filegXMacros.cR 4$d D/ p d$ t/  h  h  Բ/  /  / XQLength$$ 4$  T$  t$  $  $  Գ$ * $7 bE $V $$h 4$w Db T$  t/  $ $ $ Ĵ$ Դ/ /hh -4h>D/RT/fd/zt/$hh$ĵ$Ե$$$%$4$F$$X4$hD$zT%d$L$ Զ/ $ h$D$XNoOpd$T.text4.data i@.bss ~A.comment ~A(.file(gXMapSubs.c$\ .text\.data i@.bss ~A.comment ~A(.file4gXMapWindow.c$\,.text\.data i@.bss ~A.comment ~A(.file@gXMoveWin.cp$p8.textpp.data i@.bss ~A.comment ~A(.fileUgXOpenDis.ch $D $d$F$0$H( $$J.text4v.data i@.bss ~A.comment~A? i@__pad$i@lock ~A.fileagXParseCol.cN$`Y.text`.data j@.bss~A.comment~AL.filemgXPolyTxt.cZt$e.textt.data j@.bss~A.comment~A(.filegXPutImage.cd$ qNoSwap$\stx$u$w$,y($,{X$X}$SwapBits$X$$l8$l  x 0 & 2$.text0f.data j@.bss~A.comment~AL< j@J k@X l@eLn@o|n@.filegXQuBest.c}($.text(.datan@.bss~A.comment~A(.filegXSetDashes.c$.text.datan@.bss~A.comment~A(.filegXSetLStyle.c$.text.datan@.bss~A.comment~A(.filegXSetSSaver.cH$p.textHp.datan@.bss~A.comment~A(.filegXSynchro.c$d,d.texth.datan@.bss~A.comment~A(.filegXText.c $.text  .datan@.bss~A.comment~A(.filegXUnmapWin.c$\.text\.datan@.bss~A.comment~A(.filegXWarpPtr.c`$.text`.datan@.bss~A.comment~A(.filegXWindow.c/$|.text\.datan@.bss~A.comment~A(.file gXlibAsync.c6L$J$4\,b.textL.datan@.bss~A.comment~A@.filejgXlibInt.cl4 T$~ |T&_XFlush4$T($T*$T,_XRead$T.$(T0_XSend$T2/pT4$/T6_XReply$,T8bxT:t HT<_XEnq$T>d$ T@t$ TB$TD"Tb<TF/$TH@d$\TJT $4TLc$ TN_XError$TPv$@TR4bhTThTVXFreeT$TX_XFreeQt 0TZ$HT\hT^_XANYSET$,T`.text4|1.datan@*.bss~A.comment~An@n@.filexgXstrpipe.c$hn $,p.text.dataPr@,.bss~A .comment$~AP.filegglobals.c.textL.data|r@.bss$~A.comment$~A(.filegXcmsCmap.cLhhX#<hl; |N, Lc|huLh0.textL0#.datar@.bss$~A.comment$~A(.filegXcmsColNm.cstat|$0fstat$0lstat$0$0h0$0FirstCmpl$0 <0field2$0$0$\0 $0"$0#$0!$ `0;$$0.text|.datar@.bss$~A.comment4~ASr@dr@nEntries,~Apairs$~A__c0~Astrings(~A.filegXcmsCvCols.co'$P{'hhT($@($L($dT*$*$t,$<.$2/D.text'd U.data,s@.bss4~A.comment4~A(.filegXcmsGlobls.c.text2.data,s@.bss4~A.comment4~A(.file+gXcmsLRGB.c+2$pB8 pY9$plX;$p=$ p(=$@ph=$pp=$ p>$p@ hp@$4p  B$|p #HC$p48F$hpEF$\pSH$`pahI$p.text2H.datas@ .bss4~A.comment4~AhMASKs@{ t@t@$t@,t@dt@|t@v@Dy@{@'{@<{@P{@.file9gXcmsProp.cd@J/l/tJ$1.text@JL.data|@.bss4~A.comment4~A(.fileNgXcmsXRGB.cK P=K |?\L lAL DCM DE.textK.data|@$.bss4~A.comment4~A(MASK|@.fileqgXConnDis.c`MbDRM$HTR$VT$X$ T$Z7T @\I0V (^.text`M .data}@.bss4~A.comment8~AX__c4~AZ}@d }@r$}@}(}@,}@0}@8}@@}@D}@H}@.filegXErrDes.cXY$4$uZ$$w.textXYD.data}@.bss8~A.comment<~A}@.filegXErrHndlr.c[d4.[d4.text[t.dataL@.bss<~A.comment<~A(.filegXGetGeom.cA\$.text\.dataL@.bss<~A.comment<~A(.filegXSync.cXSync\$.text\.dataL@.bss<~A.comment<~A(.filegXVisUtil.cNt]hl]`$.textt]D.dataL@.bss<~A.comment<~AL.file/gXrm.cstata$fstata$lstata$nb$x8b (hbhxb b Hc mbnoop8d mbcharHd"lcnamehdb xdh<d xe (f pg  8j l ,m PutEntrym 0>t 8Nu d]u Psu p H p 0h$b؀ ȁhH$$L $Ȅ$ $x$9H tOȒ$Y Plؔ$Xy8$l$H  $ ؠ$$$0$h X$($d d hxb2 P .texta0QK.dataL@d.bss<~A .commentH~AEL@TP@xrmtypesT@e@~AXrmQANY<~ApT@__cD~A.file;gAuDispose.c{ \t3.text\.data@.bssH~A.commentH~Ad.fileIgAuGetBest.cD$D?hA.textD.data@.bssH~A.commentH~A.fileUgAuFileName.c btM.text  .data@$.bssH~A.commentP~Ad.fileegAuRead.cе$HtY $t[h`t].textе@.data؀@.bssP~A.commentP~Ad.fileugWrap.c $i $<$k` $m.text.data؀@.bssP~A.commentP~A.filegWraphelp.csetkey$yencrypt${Լ$T}4$L+$$;$D.text:.data؀@H.bssP~A.commenthA<IP؀@FP@PC1_CX@PC1_Dt@shifts@PC2_C@PC2_D@eЁ@CLAD0AKS0AEAS@P@L~AtempL~ApreSP~Af~A.filegCIELab.cJ$]x$Xrؾ$`8$.text8.data @.bsshA.commenthA@ @(@.filegCIELuv.c$t$X$8$.text<&.data@.bsshA.commenthA@@"@.filegCIEXYZ.c60$I$\.text0 .data@L.bsshA.commenthA@_@.filegCIEuvY.cs $$\$$(.text 0.data̅@.bsshA.commenthA@̅@ԅ@.filegCIExyY.c$pt$p D$p% d$p.text8.dataX@.bsshA.commenthAh8 X@L `@.file gTekHVC.c` $t s $xt  $t $(t 8$t $t .textm.data@.bsshA.commenthAd @ @.file! gUNDEFINED.c $  .text .data؇@,.bsshA.commenthA(!؇@.file1 gXcmsCCC.c!h% !!h' 0!H `) .text.data@.bsshA.commenthAL.fileK gXcmsInt.c(*$ .textD 3.data@.bssA.commentA(K(@W(@d(@o(Ē@.file gXimpEUC.c(+$ (,hx .text+ .data @8 .bssA.commentAL( @(@__cA.file gXimpIM.c(X-bhp (-hTp ((./ p (8.$p (/$p (/hlp )82$p )(3$p .)A$p A)B$p Q)C$p `)hDb`p .textX-p.dataD@.bssA.commentAhr)L@~)P@.fileN gXimpLkup.c)D$ )hE$ )F$ )F$ )HG$ )H$ )H$ *Ilh !*Kb /*Le =*HM$ R*8O$ g*(Q$t x*Q  *8R$ *R$d *8S$, *hS$ *(U$ *V h *HY$ +hZ$x +[$| " ,+hh $ ?+h$& M+8i ( d+Hi p* +j , +k . +hl |0 +l 2 +m 4 +hn$6 +Hs$8 ,t$: ,u$< 8,u$> S,v$ @ j,8v$ B .textD1\.data@4.bssA.commentA,@,@,@,@.file gXimpLocal.c,Xv$tpR ,v $pT ,wbpV -w$TpX -Hx$xpZ ,-x$Tp\ ?-(zhp^ T-H{ 4p` j-{ Ppb -{ 8pd -|blpf -|bph -H$Hpj -$pl -bpn .ȍbtpp .H$4pr 5.$pt O.hb4pv c.e4px w.$pz .$ p| .textXv$q.data0@ .bssA.commentAh.<@.file gXimpMCT.cstrtostr$d .t$` .Ԝ$@ .$8 .T$@ .$8 /ԝ$@ /$h "/$ .text*.data@0.bssA.commentA(.file gXimpMDrS.c2/$ G/  .text.data@.bssA.commentA(.file gXimpMEsc.cb/X$x .textXx .data@.bssA.commentA(.file gXimpMExt.cv/Ц$\ .textЦ\ .data@.bssA.commentA(.file gXimpMPer.c/,$ .text,.data@.bssA.commentA(.file gXimpRm.c/,$ /  /  /\  /l P 0 P 0 $ *0$  B0 X X0\   .text,<.data@.bssA.commentAL.file gXimpWCT.cp0h$h z0$| 0X$T 0$T 0$@ 0X$8 0$@ 0$8 0$@ 0X$| 0$ .texth 3.data؞@0.bssA.commentA(.file gXimpWDrS.c 1$ 1  .text.data@.bssA.commentA(.file+ gXimpWEsc.c91$# .text .data@.bssA.commentA(.file7 gXimpWExt.cM1,$h/ .text,h .data@.bssA.commentA(.fileO gXimpParser.cnextch$p; ^1T p= h1d$ p? modmaskt%HpA r1$pC |1$@pE .text@ {.data@p.bssAd.commentxAhlastch@tokenbufA.file[ gXimpWPer.c1$ S .text .datax@.bssxA.commentxA(.filek gXimpXConv.c1h<_ 1 $a 1$c .text.datax@.bssxA.commentxA(.file gXimpint.cget_code,o 1,q 1,s 1$u 2$lw 2L$py .text 0.datax@.bssxA.commentxA(cyrillicx@greek@codesetx@02@=2@look@.file gXChkIfEv.cG2$ .text.dataD@.bssxA.commentxA(.file gXDelProp.cU2$` .text`.dataD@.bssxA.commentxA(.file gXFlush.cXFlush$ .text.dataD@.bssxA.commentxA(.file gXFontNames.ce2b p2$L .text,.dataD@.bssxA.commentxA(.file gXFontInfo.c2,b 2L$ .text,4.dataD@.bssxA.commentxA(.file gXGetColor.c2$| .text| .dataD@.bssxA.commentxAL.file gXGetFProp.c2`$D .text`D.dataD@.bssxA.commentxA(.file gXGetSOwner.c2/| .text|.dataD@.bssxA.commentxA(.file gXIfEvent.cXIfEvent $ .text .dataD@.bssxA.commentxA(.file! gXKeyBind.c2/( 2/D 2D, 3/H 34  !3$d ,3d$| D3$ O3  \34$8 j3t$ {3$d 3t < 3$ 3, 3t$ .textU.dataD@.bssxA.commentxAL.file7 gXModMap.c3dh% 3D$' 3hh) 4T$,+ 4h0- .4 hP/ .textd.dataT@.bssxA.commentxA(.fileC gXPutBEvent.cF4 $l; .text l.dataT@.bssxA.commentxA(.fileO gXSelInput.cT4p $hG .textp h.dataT@.bssxA.commentxA(.file[ gXSetFont.cXSetFont $@S .text @.dataT@.bssxA.commentxA(.filem gXStrKeysym.ca4 h_ p4 /a .text x*.dataT@D.bssxA.commentA(4@4AkeysymdbAQkeysymxA.filey gXText16.c4 $q .text  .data@.bssA.commentA(.file gXTextExt.c4|$} 4|$ .text|.data@.bssA.commentA(.file gXTextExt16.c4$D 4$| .text.data@.bssA.commentA(.file gGetRGBCMap.c4`$ .text` .data@.bssA.commentA(.file gTextToStr.c4$, 50 , .text\.data@.bssA.commentA(.file gXFSWrap.c5\b p ,5|hp ;5l $ p K5 bp f5 bp w5 $p 5 hp 5  p .text\/.data@.bssA.commentAh__cA.file gXICWrap.c5d!$pd 5! Hd 5$" Xd 5" d 64#b8d 6t#bPd "6#h`d ,6$$ Hd 76t$b`d D6$b`d Q64% d ]6T% d XIMOfICt%hd k6%b$d v6%e$d 6%$<d 6$&$<d .textd!.data@@.bssA.commentAt.filegXRegstFlt.c6`& 4 6& X 6' \ 6`' T.text`&T.data,@.bssA.commentA(.filegXimpCT.c6'$ 7($7t)$,74*$d.text'.data,@.bssA.commentA(.file:gXimpCallbk.c87+ $S7+ p r78, 8"7x, $70 T&7x3 T(74 t* 8X5 @,)85 @.F85 0c8h8 @2.text+d.data,@@.bssA.commentA.filebgXimpConv.c8:$>8X;$$@8;$(B8<$@D_Xmblen=$F_Xmbtowc>$H_Xwctomb>$dJ8?$tL8?$pN_Xwcscpy@e0P88@ePR_Xwcslen@$4T_Xwcscmp@$@V8A$\X8hAb Z.text:.datal@.bssA.commentA(.filegXimpExten.c8tA$ f9B$h!9TC$j59D$,lK9E$LnZ9dE$pt9E$r9dF$`t9F$\v9$G x94G `z9H  |9H$ ~ :H$0:H$ 4:I L:I $`:J (:4J (.texttA2.datap@ .bssA.commentA(icoptblp@.filegXimpIC.c:\Jh:K :L :|M :N 4;\O ;|O 4.;O B;Q PW; R j;S \~;LT .text\J p.data@$ .bssA.commentA(;@.filegXimpICG.c;8Ub;XVb<;Y$;b$.text8U0,.data4@.bssA.commentA(.filegXimpICS.c;hj$ <k$4<Hlbl,<pbA<xw$PX<~$ .texthjl.data<@.bssA.commentA(.filegXGetPntMap.cr<ԅ$<o.textԅ .dataT@.bssA.commentA(.filegXSendEvent.c<|$.text|.dataT@.bssA.commentA(.filegXEvToWire.c<P$.textP.dataT@!.bssA.commentA(.filegconnect.cconnectL$8.textL8.data@.bssA.comment .fileggethostnm.c<$.text .data@.bssA.comment @.file(ggetsocknm.c<l$8 .textl8.data@.bssA.comment.fileRghostent.c<h,<h.<h<0<D$D2=$44=ԕh6=hl8%=hX:qcompd$<2=h >@=h$@.text .data@P.bssAh.commenthostf@stayopen@hostbufAhostLAN=A[=`A__cAg=Aq=AhostaddrA.file^ghtonl.chtonl(/$V.text($.data,@.bssA.comment.filejghtons.chtonsL-b.textL.data,@.bssA.comment.fileyginet_addr.c|=h/,n=$p.texth$.data,@.bssA.comment__cA.filegipdomain.c=X$x}=؞b.textX .data<@ .bssA.commentd.filegntohl.cntohld/$.textd$.data\@.bssA.commentX.filegntohs.cntohs-.text.data\@.bssA.comment8.filegres_comp.c=$<dn_comp$$=$8res_hnokT$=$D=4$pres_dnok$4= = _getlong$.=D-.text .data\@.bssA.commentP__cA.filegres_data.c=\$hres_init\$h>̢  > >  8">L$h0>L$h<>$PK> $XW> $X a>l s>| >$>$&>$Hres_send$H,> > 2>$X>$X8>|$\>|$\>?ܥb$.text\=.data\@.bssA.commenthx__cA.file3gres_debug.c? l?p x&? |1?plp_cdnamel ;? lxp_fqnamelT sym_ston$X sym_ntos`bh sym_ntopЯbh__p_type@bE?`b0p_classbp_optionb__p_timeбb<p_rcodebO?0bd]?,k?.!loc_aton$#loc_ntoab%u?`$X'?b\).text .data@.bssA.comment?x@__cA.fileMgres_init.c?$7?<$< 9?| ;net_mask.`=?\.0?? A? $C.text.dataA.bssA.comment x?A__cA.fileYgres_mkquery.c?$Q.text".dataA$.bssA.comment0#.fileg@@t$t] @$_,@$a7@D$cE@$eP@htg_@T (ip@ k@T Dm@ o@4 <q@t$s@$(u@4$(w@dhyA4hl{AbL}'Abd.textt|.dataAt5.bssA8.comment%rcsidA__c,AdigitsA7A(ACA$A.filegres_query.cMAX$XA($dA$uA(b.textXW.dataA.bss0A.comment't__c0A.filegres_send.cA$A$A$(A$send_vc\$send_dg|$Aerror|  lPerror  Dsock_eq<$@A|$DA $pselect$.text.dataA .bss4A.commentD*AA.filegsend.csend$<.text<.dataA.bss4A.commentT-.filegsetsockop.cA$D.textD.dataA.bss4A.comment0..filegsocket.csocket8$.text8 .dataAL.bss4A.comment/D.filegbase64.cb64_ntop$ b64_pton$P.textp6.dataDA.bss4A.commentX04rcsidDABase64xAPad64A__c4A.filegev_streams.cAh(HA$__evRead$A$  B$B$copyvec$consumex t done  writable readable8 .texth*.dataAd.bss8A.comment2rcsidA.filePgev_timers.c$B(41B0(X=B(`!IB$@#UB0(h%aB(0'sB(@)B(<+BP$-Bp$/B` $1B!$ 3B"$45B"$7B#$,9C#h ;C# 0=$C$$L?/C`$ A9C$ CDC$ <EPC$ ,G.text >.data@A0.bss8A.comment85rcsid@A.filewgeventlib.cstat &$Tfstat,&$VlstatL&$X]Cl&$ZgC&$`\rC' ^C ($`C)$< bC,3$d__evDrop4 lfCl6$hhC6$jC6 <lpselect,7$n.text &.datap A.bss8A.comment7rcsidp A.fileggethostent.cC7h8{C(8hx}C9hC; \D<$dDx< TD<h'D=ht3Dx>hany8AbH.text7 p.data Ad.bss8A.commentt;HOSTDB Ahostdata8A__ccpyP+ $@add+%HB_tz_file+$D.text0&.data ,A,.bssA .commentA.file\g_tz_time.cT.b,PT1bR_tz_timex2$T.text.\<.dataL,AH.bssA.commentAX.filehg_time2year.cU$4 `.text$4.data,A.bssA.commentA<.filevg_divrem.c_ldivrem@5%x8l_idivrem@5%xnn.text@5x.data,A.bssA.commentA.fileg_nlday.c_nlday6%4z.text64.data,A.bssA.commentA8.fileg_tz_info.c_tz_int6b _tz_hms7b name<8b _tz_info8 \ .text6L.data,A.bssA.commentA__cA.fileg_dup.s.text8: .data,A.bssA.commentA$U8:.filegdup2.c_dup2X:$dup2X:$t.textX:.data,A.bssA.commentA.filegerrlst.c.text:.data,A.bssA.commentAU,A.filegexit.s.text: .dataBA.bssA.commentA@.filegfeatures.c2U: .text:.dataBA.bssA.commentA.filegfgets.cfgets;bHl.text;H.dataBA.bssA.commentAl.filegfclose.cfcloseL=$.textL= .dataBA.bssA.commentA(.filegfopen.cflmodeT>$p,endopen>h,_fopenD?h`,fopenD?h`zHUD?h`_freopen?hD,freopen?hDSU?hD.textT>.dataBA.bssA.commentAfltabBA.fileg_findiop.c_findiop@h.text@.dataBAL.bssA.commentA.fileg_fcntl.s.textA$.dataCA.bssA.commentA$`UA.file$g_fork.s.textA$.dataCA.bssA.commentA$jUA.file2gfprintf.cfprintfB$ (tUB$ *.textB  .dataCA.bssA.commentAH.fileTg_idoprnt.cdostrb(C$46doputbD$O48revgrpF$4:dogroupI$4<dowcsJ$4>_idoprnt(M$)4@.text(C3&.dataCAL{.bssA.commentAblanksCAzero_s(CAuc2preHCAlc2preJCAuc_b0xLCAlc_b0xOCAuc_m0xRCAlc_m0xUCAuc_p0xXCAlc_p0x[CAnullstr^CA__cA.file`gfputs.cfputsv$dlX.textvd.dataTEA.bssA.commentAl.filetgfputc.cfputcTy$dputcTy$fUTy$hUTy$j_iflsbufz$l.textTy .dataTEA.bssA.commentAD.filegfread.cfreadz.Hx.textz.dataTEA.bssA.commentA.filegfscanf.cfscanf}$U}$.text} .dataTEA.bssA.commentA@.fileg_idoscan.cdogetbt~$doread $scanint@$scanflt$ makesetlcheckset$_idoscanX$v.textt~\%.dataTEAx.bssA.comment A__cA.fileg_imb2wc.c_imb2wcУ$.textУ.dataGA.bss A.comment A.fileg_close.s.text .dataGA.bss A.comment A$U.fileg_cvt.cinfstr @tnanstr thexstrlt_cvtlt_cvtl\l$ t.text1.dataGAH.bss A.comment AdtwoGApow10lowGApow10medIAUhKA.fileg_wssize.cU.<_wssize.,.textl.data,LAD.bss A.comment AP.filegfp_data.c.text.datapLA .bss A.comment A.filegfwrite.cfwrite.D.text.data|LA.bss A.comment A.fileg_ctype.c.text.data|LA .bss A.commentA$__c A.fileg_filbuf.c__filbuf$ _filbuf$ fgetc$ getc$U$€U$Ȁ_ifilbuf$.text .dataNA.bssA.commentA .file+g_findbuf.c_findbufxh(!_fixbasexhT(#.textxT.dataNA.bssA.commentA.file7g_fswitch.c_fswitch$/.text.dataNA.bssA.commentA.fileCg_inwc.c_inwc$;.text .dataNA.bssA.commentA.fileMg_loc_data.c.text .dataNA.bssA.commentA.fileYg_unwc.c_unwc  Q.text .dataOA.bssA.commentA$.filekgflush.c_cleanup ]_xflsbuf$_UT afflush$tc.text.dataOA.bssA.commentA.fileugdata.c.textx.dataOA.bssA.commentA.fileggd_readv.c_readvx$@yreadvx$΀{.textx.dataDSA.bssA.commentA.fileg_geteuid.s.text4.dataDSA.bssA.commentAH.fileg_getmsg.s.textD.dataDSA.bssA.commentAD.fileggtimeofday.cU`$hU`$hԀ V`$hڀ.text`h.dataDSA.bssA.commentAT.fileglibchk.cV (,,V <,.textl.dataDSA|.bssA.commentA.fileglockf.c_lockf4$(Dlockf4$(.text4( .dataSA.bssA.commentA.filegmemccpy.s.text\\.dataSA.bssA.commentA(.filegmemchr.s.text$.dataSA.bssA.commentA(.filegmemcmp.s.text4.dataSA.bssA.commentA(.filegparglist.cadv t8VV ?8.text2.dataSAk.bssA.commentA__cA.filegperror.cperror .text .data|UA.bssA.commentA.file gprintf.cprintf\$ `V\$ .text\  .data|UA.bssA.commentAH.fileggd_writev.c_writevh$@writevh$.texth.data|UA.bssA.commentA.file$ggtxt.c__gtxtb.text .data|UA.bssA.commentA<.file.gi386_data.s.text.data|UA.bssA.commentAL.file8g_putmsg.s.text.dataUA.bssA.commentAD.fileFgqsort.cqsort <<qst0 >.textX.dataUA.bssA.commentA.fileUgrand.csrandH DJrandX$$DL.textH4.dataUA.bssA.commentArandxUA.file`g_readv.s.text|$.dataVA.bssA.commentA$jV|.filelggetenv.cgetenvbld.textl.dataVA.bssA.commentA.filexgrew.crewind  p.text .dataVA.bssA.commentA.fileg_select.s.text .dataVA.bssA.commentA(tV.filegsetbuf.csetbuf .text.dataVA.bssA.commentA,.filegisatty.c_isatty$isatty$.text.dataVA.bssA.commentA.fileg_ioctl.s.textP.dataVA.bssA.commentAD.filegpushpop.c_pushbufl$x_popbuf <_hidecnt,$L.textl .dataVA.bssA.commentA4.filegsetcat.c_setcatxb8setcatxb.textx .dataVA.bssA.commentA.filegsh_data.c.text.dataVA.bssA.commentA\.filegsetjmp.s.text<.data VA.bssA.commentAD.filegsscanf.csscanf8$r~V8$r.text8t.data VA.bssA.commentAL.file gstrcasecmp.cV$|V$|stricmp$| strcmpi$|_stricmp$|_strcmpi$|V,$lV,$l"strnicmp,$l(strncmpi,$l.V,$l4V,$l:.text .data VA.bssA.commentAcharmap VA.filegstrdup.c_strdupb4strdupb4@.text4.data WA.bssA.commentA.file$gstrerror.cstrerrorbH.textH.data WA.bssA.commentA.file4gsnprintf.cV$(snprintf$F*V$L,.text.dataWA.bssA.commentA,.file@gstrtod.cstrtod'88.text8.dataWA.bssA.commentA.fileNgstrtof.c_strtof&@Dstrtof&@RF.text@.dataWA.bssA.commentA.file\gstrtold.c_strtold!8Rstrtold!8XT.text8.dataWA.bssA.commentA.fileigstrtoul.cstrtoulH/@P`.textH@$.dataWA.bssA.comment A__cA.filesg_sysi86.s.text.dataWA.bss A.comment AD.file}gtime_data.c.text.dataWA.bss A.comment A\.filegstdiostrs.c.text.dataWA.bss A.comment A.filegstrlist.c_strlistb8strlistb8^.text8.dataTXA.bss A.comment A.filegtoupper.ctoupper$D.textD.dataTXA.bss A.comment$A__c A.fileg_ulimit.s.text.dataTXA.bss$A.comment$AD.fileg_uname.s.text,(.dataTXA.bss$A.comment$AD.filegungetc.cungetcT$.textT.dataTXA.bss$A.comment$A.filegv3_catgets.cVTb@.textT.dataTXA.bss$A.comment(A__c$A.filegv3__mdisget.c_mdisget b.text .dataTXA.bss(A.comment,A__c(A.filegv3__mld_set.c_mld_set $p.text p.dataTXA.bss,A.comment0A__c,A.filegsleep.cawake <_sleep.<sleep.d.text.dataTXA.bss0A.comment0A.filegsigprocmsk.s.textL.dataTXA.bss0A.comment0AL.file g_sigsuspend.s.text`.dataTXA.bss0A.comment0AL.filegsigreturn.s.textt .dataTXA.bss0A.comment0A(.file$gtolower.ctolower$D.textD.dataTXA.bss0A.comment4A__c0A.file.g_unlink.s.text.dataTXA.bss4A.comment4AD.file<gsprintf.csprintf$\2V$\j4.text\.dataTXA.bss4A.comment4A,.fileIgstrtol.cstrtol8%@.text8%.dataTXA.bss4A.comment8A__c4A.fileUgstrpbrk.cstrpbrkbLM.textL.dataTXA.bss8A.comment8A.filecgtzset.c_tzset \Ytzset p[.text.dataTXA.bss8Ah.commentA|.filemgtime.s.text.dataXXA.bssA.commentA@.filewgtime_gdata.c.text.dataXXA.bssA.commentA.filegV W${W$v}.text.datatXA.bssA.commentA.filegsigaction.c(W$3W$|.text.datatXA.bssA.commentA.filegsigsetops.c=W$,dIW$,TW$daW$mW$<dxW$<WT$<dWT$<W$PdW$P.text .datatXA.bssA.commentAtsigsinitAsigsA.filegv3_lstat32.cW$Xlstat32$XW$X.textX.datatXA.bssA.commentAX.filegv3_stat32.c__stat32<$XdW<$Xstat32<$X.text<X.datatXA.bssA.commentAt.fileg_stat.s.text.datatXA.bssA.commentA@.filegvfprintf.cvfprintf$.text .datatXA.bssA.commentAH.filegvsnprintf.cW${W${W${.text|.datatXA.bssA.commentA,.fileg_wait.s.text($.datatXA.bssA.commentA@.filegwcsrtombs.cWL. X.x X.d X . 'X .ā1X. .textL6.datatXAD.bssA.commentA.file/gwctomb.c_hWAJ_WAZ_,A_dup::_r_dupC:_ulimit_fcntlA_closed_,Aq_4A{_@A_sysi86_memccpy\_read_lseek@_open_OA_CA_r_fcntlA_CA_forkA_r_forkB_numeric OA_OAmemchr_WA_WA_OA_XA_ XA_WA_GA_r_close `XA`xLA$`pLA_ctype|LA/`NA<`NAF`NAR`NA^`NAj`NA_str_cNAt`NA_localeNA`(OA_iobOA`~_geteuid4_getmsgD`LFftimet`DSAmemccpy\_bcmp``|UA_putmsg`VA_r_readv`VA_select``_ioctlPenvironVA_setjmp_longjmpat{A aHfAanAsysi86"a.aWA:aWAFaWARaWA^aWAjaWAvaWAa XAa0XA_uname,_i_errnoYAaYA_sigset$A_sigholdAadAaLa`ata`_unlinka`XAaXXA_altzone\XA_tznamedXA_timetimezoneXXAaltzone\XAdaylight`XAtznamedXAa,S_lxstatuat_xstat(__stat16 bstat_statstat16_wait(bXA_r_writebYA,b__xstat(_sbrk_bcopy _bzerolbzerol6bYA_r_openAbYA_r_read_nd YA_endpA_brkbrksbrk_gbrk:i_errnoYALbYArindex8_rindex8__cuclc}[A_cuclc}[AWb ^AcbbAlocbufPApb\A~b\Ab\Ab\Aindex0_index0_fxstattbtb^Asigset$AbUAbUAsigpausedAsigrelsesAsigholdA_fpstartAkillA_mmapt_lc_TOCPA_eaccess|tb|cAeaccess|tfstattbt_fstattfstat16t_ftimet__fxstattlstattbt_lstattlstat16tmmapt__lxstatu_etextuetextu_edatax{Aedatax{AendpAbPrintTimeInitTimesElapsedTimeRoundTo3DigitsReportTimesGet_Display_NameOpen_DisplayNullInitProcHardwareSyncDoHardwareSyncCreatePerfWindowCreateClipWindowsDestroyClipWindowsCalibrateTestCreatePerfGCsDestroyPerfGCsAllocateColorDisplayStatusProcessTestdrawToFakeServertileToQuerybothModesforegroundbackgroundfixedRepsprogram_nameclipWindowsSetFillStylebitmap8x8bitmap4x4mensetmanus_bitsDoGetAtomInitGetPropertyDoGetPropertyXA_PK_TEMPInitRectanglesDoRectanglesEndRectanglesDoChangeGCInitLinesInitWideLinesInitDashedLinesInitWideDashedLinesInitDoubleDashedLinesInitWideDoubleDashedLinesInitSegmentsInitDashedSegmentsInitDoubleDashedSegmentsDoSegmentsEndSegmentsComputeSizesCreateParentsMapParentsInitCreateCreateChildGroupCreateChildrenDestroyChildrenEndCreateUnmapParentsInitDestroyDestroyParentsRenewParentsInitPopupsEndPopupschildwindowschildrowschildcolumnsparentwidthparentheightparentcolumnsparentrowsparentwindowsInitMoveWindowsDoMoveWindowsEndMoveWindowsDoResizeWindowsInitCircWindowsDoCircWindowsEndCircWindowsInitMoveTreeDoMoveTreeEndMoveTreepositionsDoPolyTextDoImageTextClearTextWincharsPerLinetotalLinesInitScrollMidScrollEndScrollInitCopyLocationsInitCopyWinInitCopyPixInitGetImageInitPutImageDoCopyWinWinDoCopyPixWinDoCopyWinPixDoCopyPixPixDoGetImageDoPutImageMidCopyPixEndCopyWinEndCopyPixEndGetImageInitCopyPlaneDoCopyPlaneGenerateCirclesInitCirclesInitPartCirclesInitChordPartCirclesInitSlicePartCirclesInitWideCirclesInitDashedCirclesInitWideDashedCirclesInitDoubleDashedCirclesInitWideDoubleDashedCirclesGenerateEllipsesInitEllipsesInitPartEllipsesInitChordPartEllipsesInitSlicePartEllipsesInitWideEllipsesInitDashedEllipsesInitWideDashedEllipsesInitDoubleDashedEllipsesInitWideDoubleDashedEllipsesDoFilledArcsdo_triangles.cInitTrianglesDoTrianglesEndTrianglesInitComplexPolyDoComplexPolyEndComplexPolyInitTrapezoidsDoTrapezoidsEndTrapezoidstrig_error_domain_errXChangeGCXChangePropertyXChangeWindowAttributesXResizeWindowXCirculateSubwindowsXClearWindowXCopyAreaXCopyPlaneXCreateBitmapFromDataXCreateGC_XGenerateGCList_XUpdateGCCache_XFlushGCCacheXGContextFromGCinitial_GCXCreatePixmapFromBitmapDataXCreatePixmapXCreateSimpleWindowXDestroySubwindowsXDestroyWindowXDisplayNameXDrawArcsXDrawLinesXDrawPointXDrawPointsXDrawSegmentsXFillArcsXFillPolygonXFillRectangleXFillRectanglesXLoadQueryFontXFreeFont_XQueryFontXQueryFont_XFreeExtDataXFreePixmapXActivateScreenSaverXResetScreenSaverXForceScreenSaverXSetArcModeXSetFillRuleXSetFillStyleXSetGraphicsExposuresXSetSubwindowModeXGetAtomNameXAllocColorXGetImageXGetSubImageXGetWindowPropertyXGetScreenSaver_XWAttrsHandlerXGetWindowAttributes_XGetScanlinePad_XGetBitsPerPixel_xynormalizeimagebits_znormalizeimagebitsXCreateImage_XDestroyImage_XGetPixel_XGetPixel32_XGetPixel16_XGetPixel8_XGetPixel1_XPutPixel_XPutPixel32_XPutPixel16_XPutPixel8_XPutPixel1_XSubImage_XSetImage_XAddPixel_XInitImageFuncPtrslow_bits_tablebyteorderpixelXDrawImageString_XFreeAtomTableXInternAtomXConnectionNumberXRootWindowXDefaultScreenXDefaultRootWindowXDefaultVisualXDefaultGCXBlackPixelXWhitePixelXAllPlanesXDisplayWidthXDisplayHeightXDisplayWidthMMXDisplayHeightMMXDisplayPlanesXDisplayCellsXScreenCountXServerVendorXProtocolVersionXProtocolRevisionXVendorReleaseXDisplayStringXDefaultDepthXDefaultColormapXBitmapUnitXBitmapBitOrderXBitmapPadXImageByteOrderXNextRequestXLastKnownRequestProcessedXScreenOfDisplayXDefaultScreenOfDisplayXDisplayOfScreenXRootWindowOfScreenXBlackPixelOfScreenXWhitePixelOfScreenXDefaultColormapOfScreenXDefaultDepthOfScreenXDefaultGCOfScreenXDefaultVisualOfScreenXWidthOfScreenXHeightOfScreenXWidthMMOfScreenXHeightMMOfScreenXPlanesOfScreenXCellsOfScreenXMinCmapsOfScreenXMaxCmapsOfScreenXDoesSaveUndersXDoesBackingStoreXEventMaskOfScreenXScreenNumberOfScreenXDestroyImageXGetPixelXPutPixelXSubImageXAddPixelXMapSubwindowsXMapWindowXMoveWindowXOpenDisplay_XBigReqHandlerOutOfMemory_XFreeDisplayStructure_dummy_requestXParseColorXDrawText_XReverse_BytesSwapTwoBytesSwapThreeBytesSwapFourBytesSwapWordsSwapNibblesShiftNibblesLeftSwapBitsAndTwoBytesSwapBitsAndFourBytesSwapBitsAndWordsSendXYImageSendZImagePutImageRequestPutSubImageXPutImage_reverse_byte_reverse_nibsSwapFunctionHalfOrderHalfOrderWordXQueryBestSizeXSetDashesXSetLineAttributesXSetScreenSaver_XSyncFunctionXSynchronizeXSetAfterFunctionXDrawStringXUnmapWindowXWarpPointerXCreateWindow_XProcessWindowAttributes_XAsyncErrorHandler_XDeqAsyncHandler_XGetAsyncReply_XWaitForWritable_XWaitForReadable_XEventsQueued_XReadEvents_XReadPad_XAllocID_XSetLastRequestRead_XAsyncReply_XEatData_XUnknownWireEvent_XUnknownNativeEvent_XWireToEvent_SysErrorMsg_XDefaultIOError_XPrintDefaultError_XDefaultError_XDefaultWireError_XIOError_XAllocScratch_XVIDtoVisual_XGetHostname_XScreenOfWindowpadlength_dummy_request_XBytesReadable_XMakeStreamPipeConnectionCmapRecForColormap_XcmsAddCmapRec_XcmsCopyCmapRecAndFree_XcmsDeleteCmapRec_XcmsFreeClientCmapsXcmsCCCOfColormapXcmsSetCCCOfColormapstatlstat_XcmsColorSpaceOfString_XcmsParseColorStringSetNoVisit_XcmsLookupColorNameRemoveSpacesstringSectionSizeReadColornameDBLoadColornameDB_XcmsCopyISOLatin1Lowered_XcmsResolveColorStringXcmsColorDbStatewhitePtStrEqualCIEXYZColorSpaceOfIDValidDIColorSpaceIDValidDDColorSpaceIDConvertMixedColors_XcmsEqualWhitePts_XcmsDIConvertColors_XcmsDDConvertColorsXcmsConvertColors_XcmsRegFormatOfPrefixLINEAR_RGB_InitSCCDataLINEAR_RGB_FreeSCCData_XcmsGetTableType0_XcmsGetTableType1_XcmsValueCmp_XcmsIntensityCmp_XcmsValueInterpolation_XcmsIntensityInterpolation_XcmsTableSearch_XcmsMatVecXcmsLRGB_RGB_ParseStringXcmsLRGB_RGBi_ParseStringXcmsCIEXYZToRGBiXcmsRGBiToCIEXYZXcmsRGBiToRGBXcmsRGBToRGBi_XcmsLRGB_InitScrnDefaultFl_RGB_to_CIEXYZFl_CIEXYZ_to_RGBFl_RGBi_to_CIEXYZFl_CIEXYZ_to_RGBiDDColorSpacesDefault_RGB_RedTuplesDefault_RGB_GreenTuplesDefault_RGB_BlueTuplesDefault_RGB_RedTblDefault_RGB_GreenTblDefault_RGB_BlueTblDefault_RGB_SCCData_XcmsGetElement_XcmsGetProperty_XcmsRGB_to_XColor_XColor_to_XcmsRGB_XcmsResolveColor_XcmsUnresolveColor_XUnresolveColorcopystring_XConnectDisplayMakeTCPConnection_XDisconnectDisplay_XSendClientPrefixXSetAuthorizationGetAuthorizationpadlengthxauth_namelenxauth_namexauth_datalenxauth_datadefault_xauth_namesdefault_xauth_lengthsxauth_namesxauth_lengthsxauth_names_lengthXGetErrorTextXGetErrorDatabaseText_XErrorListXSetErrorHandlerXSetIOErrorHandlerXGetGeometryXGetVisualInfoXMatchVisualInfostatlstatXrmInitializeXrmGetDatabaseXrmSetDatabaseXrmStringToQuarkListXrmStringToBindingQuarkListNewDatabaseMoveValuesMoveTablesGrowTableMergeValuesMergeTablesXrmCombineDatabaseXrmMergeDatabasesXrmQPutResourceXrmPutResourceXrmQPutStringResourceGetDatabaseXrmPutStringResourceXrmPutLineResourceXrmGetStringDatabaseReadInFileGetIncludeFileXrmGetFileDatabaseXrmCombineFileDatabaseEnumLTableEnumAllNTableEnumNTableXrmEnumerateDatabasePrintBindingQuarkListDumpEntryXrmPutFileDatabaseAppendLEntryAppendLooseLEntrySearchNEntryXrmQGetSearchListXrmQGetSearchResourceGetVEntryGetLooseVEntryGetNEntryXrmQGetResourceXrmGetResourceDestroyLTableDestroyNTableXrmLocaleOfDatabaseXrmDestroyDatabaseresourceQuarksmaxResourceQuarkXrmQStringmb_methodsXauDisposeAuthbinaryEqualXauGetBestAuthByAddrXauFileNameread_shortread_counted_stringXauReadAuthXdmcpWrapOddParity_XdmcpWrapperToOddParitybytes_to_bitsbits_to_bytes_XdmcpAuthSetup_XdmcpAuthDoItCIELab_ParseStringXcmsCIELab_ValidSpecXcmsCIELabToCIEXYZXcmsCIEXYZToCIELabFl_CIELab_to_CIEXYZFl_CIEXYZ_to_CIELabCIELuv_ParseStringXcmsCIELuv_ValidSpecXcmsCIELuvToCIEuvYXcmsCIEuvYToCIELuvFl_CIELuv_to_CIEXYZFl_CIEXYZ_to_CIELuvCIEXYZ_ParseString_XcmsCIEXYZ_ValidSpecFl_CIEXYZ_to_CIEXYZCIEuvY_ParseString_XcmsCIEuvY_ValidSpecXcmsCIEuvYToCIEXYZXcmsCIEXYZToCIEuvYFl_CIEuvY_to_CIEXYZFl_CIEXYZ_to_CIEuvYCIExyY_ParseStringXcmsCIExyY_ValidSpecXcmsCIExyYToCIEXYZXcmsCIEXYZToCIExyYFl_CIExyY_to_CIEXYZFl_CIEXYZ_to_CIExyYTekHVC_ParseStringThetaOffsetXcmsTekHVC_ValidSpecXcmsTekHVCToCIEuvYXcmsCIEuvYToTekHVC_XcmsTekHVC_CheckModifyFl_TekHVC_to_CIEXYZFl_CIEXYZ_to_TekHVCReturnZeroFl_ReturnZeroXcmsCreateCCCXcmsDefaultCCCXcmsFreeCCC_XcmsCopyPointerArray_XcmsFreePointerArray_XcmsPushPointerArray_XcmsInitDefaultCCCs_XcmsFreeDefaultCCCs_XcmsInitScrnInfo_XcmsFreeIntensityMaps_XcmsGetIntensityMap_XcmsCubeRoot_XcmsSquareRoot_XcmsCosine_XcmsModulo_XcmsModuloF_XcmsPolynomial_XcmsSine_XcmsArcTangentcos_pcoeffscos_qcoeffssin_pcoeffssin_qcoeffs_XlcRegisterCharSet_XlcGetCharSetFromEncoding_XlcGetCharSetFromName_XlcGetCodeSetFromCharSet_XlcInsertLoader_XlcDefaultLoader_XrmInitParseInfodefault_charsetcharset_listdefault_loaderloader_listrm_methods_XlcSJISLoadersjis_mbcharsjis_mbstocssjis_wcstocssjis_cstombssjis_cstowcslcd_methodsget_token_XlcOpenLocaleFileget_locale_nameset_locale_name_XlcCreateLC_XlcDestroyLCadd_charset_listadd_codeset_XlcAddParseListadd_fontset_XlcLoadCodeSetfree_charset_Ximp_CompareISOLatin1_Ximp_NCompareISOLatin1keyword_tbldefault_datadef_line_notoken_valuepermallocXpermallocExpandQuarkTable_XrmInternalStringToQuarkXrmStringToQuarkXrmPermStringToQuarkXrmUniqueQuarkXrmQuarkToStringnextQuarkquarkMaskquarkTablestringTableneverFreeTableneverFreeTableSizequarkRehashXcmsTekHVCClipCXcmsTekHVCQueryMaxC_XcmsTekHVCQueryMaxVCRGBXcmsTekHVCQueryMaxVCXcmsAddColorSpace_XcmsConvertColorsWithWhitePtXSetLocaleModifiersXSupportsLocale_XlcValidModSyntax_XlcDefaultMapModifiers_XlcAddLoader_XlcCurrentLC_XlcMapOSLocaleNameinitFontSetgetCharsetNamegetFontNamecheckCharSetmatchingCharSetsetInternalPartDatasetFontSetExtentssetCorePartDatasetMissingList_XDefaultCreateFontSet_Ximp_free_fontsetfontset_methods_XlcCLoader_XlcCreateState_XlcDestroyState_XlcCnvStart_XlcCnvEnddef_mbchardef_mbstocsdef_wcstocsdef_cstombsdef_cstowcs_XlcGenericLoader_Xlc_mbchar_Xlc_mbstocswc_parse_codeset_Xlc_wcstocs_Xlc_cstombs_Xlc_cstowcslcd_methodsc_lc_methodsstate_listdefault_lc_methods_XimpBCSetAtr_XlcEUCLoaderlcd_methodslc_methods_Ximp_Strstr_Ximp_LookupXIC_Ximp_Protocol_id_Ximp_vl2vnum_Ximp_IMList_Ximp_OpenIM_Ximp_CloseIM_Ximp_ConnectServer_Ximp_LocalConnect_Ximp_SetupFree_Ximp_GetStyle_Ximp_GetIMValuesProtocol_IDXimp_im_methods_XimpIfEvent_XimpCheckIfEvent_Ximp_CMPredicateAll_Ximp_CMPredicate32_Ximp_CMPredicate8combine_multiple_cm_Ximp_CombineMultipleCM_Ximp_Reset_Ximp_MbReset_Ximp_WcReset_Ximp_MbLookupString_Ximp_WcLookupString_Ximp_FocusInput_Ximp_GetFocusWindowSelectMaskisRegisterdKeyisOnEventisOffEvent_Ximp_Q_align_Ximp_ForwardEvent_Ximp_RegKeyPressed_Ximp_KeypressFilter_Ximp_KeyreleaseFilter_Ximp_ConnectIC_Ximp_MakeKeypress_Ximp_ProcKey_Ximp_ProcCreateReturn_Ximp_ServerProcessStarted_Ximp_ConvertOn_Ximp_ServerProcessStopped_Ximp_ConvertOff_Ximp_ProcReadProperty_Ximp_ProcError_Ximp_ProtoReceive_Ximp_CallbackDestroy_Ximp_ServerDestroy_Ximp_XimFilter_Keypress_Ximp_XimFilter_Keyrelease_Ximp_XimFilter_Client_Ximp_XimFilter_Destroy_xim_lookup_sign_xim_message_len_xim_message_buff_xim_message_icCreateDefTree_Ximp_Local_OpenIM_hook_Ximp_Local_GetIMValuesFreeDefTreeElements_Ximp_Local_CloseIM_Ximp_Local_Filter_Ximp_Local_CreateIC_Ximp_Local_DestroyIC_Ximp_Local_SetFocus_Ximp_Local_UnSetFocus_Ximp_SetICValues_Ximp_SetICValueData_Ximp_PreSetAttributes_Ximp_StatusSetAttributes_Ximp_Local_SetICValues_Ximp_Local_GetICValues_Ximp_PreGetAttributes_Ximp_StatusGetAttributes_Ximp_Local_MbReset_Ximp_Local_WcReset_Ximp_Local_MbLookupString_Ximp_Local_WcLookupStringXimp_ic_methods_Xlc_strcpyXimp_mbstostring_Ximp_mbstostringXimp_mbstoct_Ximp_mbstoctXimp_cttombs_Ximp_cttombs_Ximp_ct_mbslen_Ximp_mb_draw_string_Ximp_mb_draw_image_string_Ximp_mb_escapement_Ximp_mb_extents_Ximp_mb_extents_per_char_Ximp_GetResource_Ximp_Local_Processing_Ximp_parse_Ximp_InputServerMode_Ximp_CallBackWchar_Ximp_ForceSelectKeyRelease_Ximp_Environ_Ximp_InputTypeResource_Ximp_OpenIM_Resource_Ximp_SetValue_Resourcestrtowstrwstrtostr_Xlc_mbstowcs_Xlc_wcstombsXimp_wcstostring_Ximp_wcstostringXimp_wcstoct_Ximp_wcstoctXimp_cttowcs_Ximp_cttowcs_Ximp_ct_wcslen_Ximp_wc_draw_string_Ximp_wc_draw_image_string_Ximp_wc_escapement_Ximp_wc_extentsputbackchnexttokenparselineXimp_ParseStringFile_Ximp_wc_extents_per_charGetFontSetFromCodeSet_Ximp_cstoxchar_Ximp_cstoxchar2bget_cyrilget_greekXLookupCompundText_Ximp_LookupMBText_Ximp_LookupWCTextcodeset_sizelocal_bufXCheckIfEventXDeletePropertyXListFontsXFreeFontNamesXListFontsWithInfoXFreeFontInfoXAllocNamedColorXGetFontPropertyXGetSelectionOwnerKeyCodetoKeySymXKeycodeToKeysymXKeysymToKeycodeXLookupKeysymResetModMapInitModMapXRefreshKeyboardMappingInitializeXConvertCaseXTranslateKeyXTranslateKeySymXLookupString_XFreeKeyBindingsXRebindKeysymFindKeyCodeComputeMaskFromKeytransXGetModifierMappingXSetModifierMappingXNewModifiermapXFreeModifiermapXInsertModifiermapEntryXDeleteModifiermapEntryXPutBackEventXSelectInput_XInitKeysymDBXStringToKeysymhashStringinitializedXDrawString16XTextExtentsXTextWidthXTextExtents16XTextWidth16XGetRGBColormapsXTextPropertyToStringListXFreeStringList_XParseBaseFontNameListXCreateFontSetXFontsOfFontSetXBaseFontNameListOfFontSetXLocaleOfFontSetXContextDependentDrawingXExtentsOfFontSetXFreeFontSet_XIMNestedListToNestedList_XIMCountNestedList_XIMCountVaList_XIMVaToNestedListXVaCreateNestedListXGetIMValuesXCreateICXDestroyICXGetICValuesXSetICValuesXSetICFocusXUnsetICFocusXmbResetICXwcResetICXmbLookupStringXwcLookupString_XFreeIMFilters_XRegisterFilterByMask_XRegisterFilterByType_XUnregisterFilter_XlcCheckESCSequence_XlcCheckCSISequence_Xlc_cstostring_Xlc_cstoct_Ximp_CallGeometryCallback_Ximp_CallPreeditStartCallback_Ximp_CallPreeditDoneCallback_Ximp_CallPreeditDrawCallback_Ximp_CallPreeditDrawCallback2_Ximp_CallPreeditDrawCallback3_Ximp_CallPreeditCaretCallback_Ximp_CallStatusStartCallback_Ximp_CallStatusDoneCallback_Ximp_CallStatusDrawCallback_Ximp_CallStatusDrawCallback2_Xlc_str_charlen_Ximp_mbs_charlenstrtowstrwstrtostr_Xmbstowcs_Xwcstombs_Xwcsncpy_XwcsncmpXDefaultStringximp_ext_backfrontximp_ext_conversionPredicateximp_ext_conversionximp_ext_statuswindowximp_ext_errorximp_ext_restart_callbackximp_ext_destroy_callback_Ximp_ext_icopnested_list_Ximp_OpenIMResourceExtension_Ximp_SetupExtension_Ximp_SetupFreeExtension_Ximp_GetIMExtension_Ximp_SetICExtension_Ximp_GetICExtension_Ximp_A_CreateExtension_Ximp_ProcExtension_Ximp_CallRestartCallbackExtension_Ximp_CallDestroyCallbackExtension_Ximp_CreateIC_Ximp_DestroyIC_Ximp_SetFocus_Ximp_UnSetFocus_Ximp_SetFocusWindowFilter_Ximp_AttributesSetL_Ximp_SetFocusWindowProp_Ximp_SetPreeditAtr_Ximp_SetPreeditFont_Ximp_SetStatusAtr_Ximp_SetStatusFont_Ximp_IM_SendMessageXimp_ic_methods_Ximp_GetRequestIM_Ximp_GetICValues_Ximp_PreGetAttributes_Ximp_StatusGetAttributes_Ximp_PNPredicate_XimpPNIfEvent_Ximp_SetICValues_Ximp_SetICValueData_Ximp_PreSetAttributes_Ximp_StatusSetAttributesXGetPointerMappingXGetKeyboardMappingXSendEvent_XEventToWiregethostnamegetsocknamegetanswer_res_gethostbyname_res_gethostbyaddr_sethtent_endhtent_gethtent_gethtbyname_gethtbyaddrgethostbynamegethostbyaddrhost_aliasesh_addr_ptrshost_addrhost_addrsinet_addrinet_aton_setipdomain_getipdomaindn_expand__dn_skipnameres_ownokres_mailok__putlong__putshort_getshort__res_init__p_query__fp_query__fp_nquery__res_mkqueryres_mkquery__res_mkupdate__res_queryres_queryres_send_setqhookres_send_setrhook__res_isourserverres_isourserver__res_send__res_closeres_close__res_searchres_search__res_querydomainres_querydomain__hostalias__fp_resstatdo_sectionres_pqueryp_cdnnamep_fqnnamep_sectionprecsize_ntoaprecsize_atonlatlon2uldn_count_labelsp_secstodatepoweroftenres_ninit__res_vinitres_setoptionsres_randomidres_nclose_res_setdbordersort_maskres_nmkqueryres_mkupdate.c__res_nmkupdategetword_strgetstr_strgethexnum_strgetnum_str__res_mkupdrec__res_freeupdrecres_buildservicelistres_destroyservicelistres_buildprotolistres_destroyprotolistfindserviceres_servicenumberres_protocolnumbercgetservbyportcgetprotobynumberres_protocolnameres_servicenameservicelistprotolistres_nqueryres_nsearchres_nquerydomainres_hostaliasres_ourserver_pres_nameinqueryres_queriesmatchres_nsendp_sock_eqp_sock_cphighestFDsetsockopt__evConsIovec__evWrite__evTimeRW__evUntimeRW__evCancelRW__evConsTime__evAddTime__evSubTime__evCmpTime__evNowTime__evLastEventTime__evTimeSpec__evTimeVal__evSetTimer__evClearTimer__evResetTimer__evSetIdleTimer__evClearIdleTimer__evResetIdleTimer__evTouchIdleTimer__evCreateTimers__evDestroyTimersdue_soonerset_indexfree_timerprint_timeridle_timeoutstatlstat__evCreate__evSetDebug__evDestroy__evGetNext__evDispatch__evMainLoop__evHighestFD__evPrintf_hostdata_nis_gethostbyaddr_nis_gethostbynamesethostent_sethostentendhostentgethostent_gethostentinterpretgetpeername_protodatagetprotobynumbergetprotobynamesetprotoentendprotoentgetprotoentinterpretprotodata_servdatagetservbyport_getserventgetservbynamesetserventendserventgetserventinterpret__heap_new__heap_freeheap_resizesink_down__heap_insert__heap_delete__heap_increased__heap_decreased__heap_element__heap_for_eachhstrerrorinet_ntoainet_ntopinet_ntop4inet_ntop6inet_ptoninet_pton4inet_pton6statlstat__meminit__memget_record__memput_record__memget_debug__memput_debug__memstatsfreelistsmem_targetmem_target_halfmem_target_fudgebasic_blocksns_datetosecsns_name_ntopns_name_ptonns_name_ntolns_name_unpackns_name_packns_name_uncompressns_name_compressns_name_rollbackns_name_skipprintablens_msg_getflagns_skiprrns_initparsens_parserrsetsectionns_sprintrrns_sprintrrfprune_originns_samedomain.cns_samedomainns_subdomainns_makecanonns_samenamens_format_ttlns_parse_ttlinet_nsap_addrinet_nsap_ntoastatlstatdst_s_conv_bignum_u8_to_b64dst_s_verify_strdst_s_conv_bignum_b64_to_u8dst_s_calculate_bitsdst_s_id_calcdst_s_dns_key_iddst_s_get_int16dst_s_get_int32dst_s_put_int16dst_s_put_int32dst_s_filename_lengthdst_s_build_filenamedst_s_dumpyp_all_masterSysVr3NFSIDtcp_timout_yp_dobind_yp_dobind_softyp_bind_masteryp_softbindyp_unbind_yp_unbind_default_domainyp_get_default_domain_ypbind_pingcheck_bindingcheck_pmap_upcheck_binder_uptalk2_pmaptalk2_binderget_binder_portload_dom_bindingtalk2_serveryp_ismapthereSysVr3NFSIDbind_intertrybind_timeoutypserv_intertrybfinvalidbinder_portbound_domainsdefault_domainv2dofirstv1dofirstv1prot_dofirstv1prot_donextSysVr3NFSIDypsymbol_prefixypsymbol_prefix_lengthstatlstatget_master_addrbind_to_serverping_serverfind_map_masterbind_to_master_yp_dobind_master_yp_unbind_masteryp_clear_masterSysVr3NFSIDudp_intertryudp_timeoutclr_timeoutlast_dnamelast_domainyp_masterv2domasterv1domasterSysVr3NFSIDdetachnodev2domatchv1domatchSysVr3NFSIDyperr_stringSysVr3NFSIDxdr_ypresp_masterxdr_ypresp_orderxdr_ypmaplist_wrap_stringxdr_ypmaplistxdr_ypresp_maplistxdr_yppushresp_xfrxdr_ypreq_xfrxdr_ypallxdr_ypbind_setdomSysVr3NFSIDypprot_errSysVr3NFSID_xdr_yprequest_xdr_ypresponse_xdr_ypbind_oldsetdomSysVr3NFSIDxdr_datumxdr_ypdomain_wrap_stringxdr_ypmap_wrap_stringyp_x_latexdr_ypreq_keyxdr_ypreq_nokeyxdr_ypresp_valxdr_ypresp_key_valxdr_yp_inaddrxdr_yp_bindingxdr_ypbind_respxdr_ypowner_wrap_stringxdr_ypmap_parmsSysVr3NFSIDset_assertion_failure_callbackassertion_type_to_textdefault_assertion_failedclnt_sperrorclnt_perrorclnt_sperrnoclnt_perrnoclnt_spcreateerrorclnt_pcreateerrorauth_errmsgSysVr3NFSIDrpc_errlistauth_errlistclnttcp_createclnttcp_callclnttcp_geterrclnttcp_freeresclnttcp_abortclnttcp_controlclnttcp_destroySysVr3NFSIDclntudp_bufcreateclntudp_createclntudp_callclntudp_geterrclntudp_freeresclntudp_abortclntudp_controlclntudp_destroySysVr3NFSID__evListen__evConnect__evCancelConn__evUnhold__evTryAcceptconnector__evSelectFD__evDeselectFDgetdomainnamesetdomainnameSysVr3NFSIDgetsockoptpmap_getportSysVr3NFSIDtottimeoutSysVr3NFSIDSysVr3NFSID_rpc_dtablesizeSysVr3NFSIDxdr_opaque_authxdr_accepted_replyxdr_rejected_replyxdr_replymsgxdr_callhdr_seterr_replySysVr3NFSIDreply_dscrmstd_syslogxdr_u_intxdr_u_longxdr_shortxdr_u_shortxdr_u_charxdr_opaquexdr_bytesxdr_netobjxdr_unionxdr_stringxdr_wrapstringSysVr3NFSIDxdrmem_createxdrmem_destroyxdrmem_getlongxdrmem_putlongxdrmem_getbytesxdrmem_putbytesxdrmem_getposxdrmem_setposxdrmem_inlineSysVr3NFSIDxdrmem_opsxdrrec_createxdrrec_getlongxdrrec_putlongxdrrec_getbytesxdrrec_putbytesxdrrec_getposxdrrec_setposxdrrec_inlinexdrrec_destroyxdrrec_skiprecordxdrrec_eofxdrrec_endofrecordxdrrec_readbytesflush_outfill_input_bufget_input_bytesset_input_fragmentskip_input_bytesfix_buf_sizeSysVr3NFSIDxdrrec_opsxdr_referencexdr_pointerSysVr3NFSIDauthnone_createauthnone_marshalauthnone_verfauthnone_validateauthnone_refreshauthnone_destroySysVr3NFSIDauthnone_privatevar_syslogsetlogmaskconnectedLogFacilitySyslogAddr_exithandlenumexitfnsprocessingidlocaltime_asctime_rasctime_r_gmtime_r_localtime_rlocaltime_rposixdatecompatdate_time2yearjmp_wedge_generic_unknown_err_init_features_vector_realfopen_realfreopenjmp_wedgejmp_wedgenl_fprintfputc_unlocked_putc_unlockednl_fscanfjmp_wedgepow10high__old_wssizegetc_unlocked_getc_unlocked_flushlbf_gettimeofdaygettimeofday_abi_gettimeofday__libset_aouterr___requires_updated_system_library_set____parglistnl_printfjmp_wedgejmp_wedgenl_sscanf_strcasecmpstrcasecmp_strncasecmpstrncasecmp_strnicmp_strncmpi_snprintf_rtsnprintf_old_catgetsnl_sprintfv3_statlstat32.c__statlstat32st_statlstat32_sigactionsigaction_sigfillsetsigfillset_sigemptysetsigemptyset_sigaddsetsigaddset_sigdelsetsigdelset_sigismembersigismember__lstat32st_lstat32st_stat32_vsnprintfvsnprintf_rtvsnprintf__old_xwcstombs__old_iwcstombs_xwcstombs_wcsrtombswcsrtombs_iwcstombs__old_wctombjmp_wedgejmp_wedgefreesmall_real_malloc_morecore_real_freecleanfree_mallinfo__malloc_lockjmp_wedgejmp_wedge_splitlocale_old_catopenDefaultCatalogsArchiveDefaultCatalogs_ini_lpath_mk_lpathsetnumericsetlocale_str_lc_name_stdunlock_stdtrylock_stdtryunlockblock_unblock_stdinitlock__thr_errno__thr_multithread__osr5_thr_errno__fstat32st_fstat32_lc_ctypev3_setlocale.c_parse_localemakelocaleextractDef_FindSCO_LocaleInfo_getnativelocaleclocalestrdef_statedef_starting_offset_lc_labels_cvt16to32_openmkmsgsfile_gettimeofday.s__read_toc_openlocale_libc_threxit_mf_10to2__setmbst__fpstart_lib_version_on_everest_runtime_envtrig_1_2pitrig_pi_2_XErrorFunction_XIOErrorFunctionsys_errlist_qfreeFlag_qfreePtr_XHeadOfDisplayList_XcmsDIColorSpaces_XcmsRegColorSpaces_XcmsDIColorSpacesInitXcmsCIEXYZColorSpaceXcmsCIEuvYColorSpaceXcmsCIExyYColorSpaceXcmsCIELabColorSpaceXcmsCIELuvColorSpaceXcmsTekHVCColorSpaceXcmsUNDEFINEDColorSpace_XcmsDDColorSpacesInitXcmsRGBColorSpaceXcmsRGBiColorSpace_XcmsDDColorSpaces_XcmsSCCFuncSetsInitXcmsLinearRGBFunctionSet_XcmsSCCFuncSets_XcmsCIEXYZ_prefix_XcmsCIEuvY_prefix_XcmsCIExyY_prefix_XcmsCIELab_prefix_XcmsCIELuv_prefix_XcmsTekHVC_prefix_XcmsRGBi_prefix_XcmsRGB_prefixsjis_lc_methodsXimp_Xim_ListXimp_Xim_countXimp_local_im_methods_XkeyTable_res_opcodes__p_class_syms__p_default_section_syms__p_update_section_syms__p_key_syms__p_cert_syms__p_type_syms__p_rcode_symssigprocmask__assertion_failedh_errlist_ns_flagdata_ypsleeptime_ypserv_timeout_yprequest_arms_ypresponse_armsYp_Server_Xdringypbind_resp_armsrpc_createerr_null_authsvc_fdset__multithreaded_libc_block_libc_unblock_libc_self_sigrelse_mmp_opened__cat_lock_str_abmon_str_abday_tm_day_mon_tm_cum_day_mon_libc_dup_sys_errlist_sys_nerr_features_vector_bufendtab_libc_fcntl_libc_fork__dfltrule_str_lc_hex_str_uc_hex_grouping_str__inity_str_lc_inf_str_lc_nan_libc_close_str_uc_inf__flt_rounds__huge_val_str_nlcolsp_str_libc_str_syserr_str_no_msg_str_lc_all_str_lang_str_catname_rt_control_usl_readv_sys_gettimeofday__libset_errf_usl_writev_siguhandler_libc_readv_libc_select_abi_select_r_select_sys_num_err_sys_index_sys_errs_abi_sysi86_str_shpath_str_shname_str_sh_arg_str_xxxxxx_str_tmpdir_str_devtty_str_uc_nan_wcs_lc_nan_wcs_lc_inf_mfile_base_sigpause_sigprocmask_sigsuspend_sigreturnsigsuspend_daylight_timezone__sigaction__lstat16st_stat16_libc_write_libc_writev_r_writev_libc_open_libc_read_empty_msg__Ctype_ext_i18n_config_libc_stdlock_libc_stdunlock_libc_stdtrylock_libc_stdtryunlock__fstat16__cn_strings_sigignoresigignore_mf_pow10st_fstat16st_lstat160707070000000000641006440000000000030000010000001017775160300002200000000077install/copyrightCopyright (C) The SCO Group, Inc., 2005. All Rights Reserved. 0707070000000000651006440000000000030000010000001023124206300002400000001436install/postinstall # install the documentation on our three different OS's. H=/home/sct/doc # OSR5 or OSR6 if [ `uname` = "SCO_SV" ] then S=SCTDOC.desktop.osr5 I=OSdoc D=/usr/share/doc/OpenServer/en/SCTDOC if [ `uname -v | awk '{ print substr($1, 1, 1) }'` = "5" ] then # osr5 I=OSdoc else # osr6 and beyond I=Reference fi fi # UnixWare if [ `uname` = "UnixWare" ] then S=SCTDOC.desktop.uw7 I=HelpTopics D=/usr/share/doc/unixware/en/SCTDOC fi # copy in desktop meta data cp $H/$S /usr/share/meta/doc/$I/SCTDOC.desktop if [ ! -d $D ] then mkdir -p $D fi cp $H/CONTENTS.html $D cp $H/CTOC-scthelp.html $D cp $H/SCTDOC.book $D cp $H/SCTDOC.node $D cp $H/SCTDOC.hk $D cp $H/scthelp.html $D mkdir $D/graphics cp $H/graphics/* $D/graphics /usr/bin/doctool --add $I/SCTDOC.desktop > /dev/null 2>&1 0707070000000000661006440000000000030000010000001023126341400002200000001205install/preremove # remove our traces. H=/home/sct/doc # OSR5 or OSR6 if [ `uname` = "SCO_SV" ] then S=SCTDOC.desktop.osr5 I=OSdoc D=/usr/share/doc/OpenServer/en/SCTDOC if [ `uname -v | awk '{ print substr($1, 1, 1) }'` = "5" ] then # osr5 I=OSdoc else # osr6 and beyond I=Reference fi fi # UnixWare if [ `uname` = "UnixWare" ] then S=SCTDOC.desktop.uw7 I=HelpTopics D=/usr/share/doc/unixware/en/SCTDOC fi /usr/bin/doctool --remove $I/SCTDOC.desktop > /dev/null 2>&1 rm -fr /usr/share/meta/doc/$I/SCTDOC.desktop rm -fr $D rm -fr /home/sct/* #rm -fr /home/sct/logs /home/sct/handoffs #rm -f /home/sct/res/sct.config /home/sct/res/chwp.data 0707070000000000671006440000000000030000010000000000000000000001300000000000TRAILER!!!en # osr5 I=OSdoc else # osr6 and beyond I=Reference fi fi # UnixWare if [ `uname` = "UnixWare" ] then S=SCTDOC.desktop.uw7 I=HelpTopics D=/usr/share/doc/unixware/en/SCTDOC fi /usr/bin/doctool --remove $I/SCTDOC.desktop > /dev/nu