1؎м||18/tuuqހur 6uƀ8rtL|t-QSUAr Uut[fjftSjjB[YrUu 㾹 uInvalid partition tableError loading operating systemMissing operating system==C=$%=( Uvu4,294,967,296 oCg (4.0G)v) ́Aۂɂg̃n[h fBXN̏񂪕\܂B +---------------- n[hfBXNc[wwipe-outx ----------------+ | Cj[ | | ݑI𒆂̃fBXN /dev/ad0 łB | | fBXN̗eʂ 4,294,967,296 oCg (4.0G) łB | | ȉ̃j[珈IĂB | | | | +------------------------------------------------------------------+ | | | z 0㏑āÃfBXÑf[^ | | | | h @̊Tv\ | | | | n ㏑āÃfBXÑf[^Oɏ | | | | m Ȍ㏑@I | | | | v f[^ꂽmF (^ꕔ`FbN) | | | | V f[^ꂽmF (ʏ^S`FbN) | | | | w OfBXNɏ | | | | L L^tbs[ɏo | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ŁAn[hfBXN̖OeʂAf[^n[h fBXN̂̂ł邩ǂmFĂB̃n[hfBX Ñf[^ꍇ́Au0㏑āÃfBXÑf[ ^vnCCgĂԂŃG^[L[Ă (ȉȂuIvƏ̂܂)B ̃j[Łu0㏑āÃfBXÑf[^v IƁÂ悤ɊmFbZ[W\܂B fBXN ad0 Sf[^ 4,294,967,296 oCgA 0ŏ㏑ď܂B 낵ł? [ Yes ] No f[^ꍇ́AŁuYesvIĂBuYesv IƁAɂ‚Aȉ̊mFbZ[W\܂B {ad0 (4.0G) ̃f[^Ăł? [ Yes ] No f[^ꍇ́AēxuYesvIĂBuNov Iƍŏ̃j[ɖ߂܂BuYesvIƃf[^ ̏n܂܂B f[^̏́Â悤ɐi󋵂\܂B fBXN ad1 ̃f[^Ă܂B 25% (1024/4096) I ^ 21b o c 悻128b 0%|############______________________________________|100% ʂ̍ʼnsɂ́Â悤ɏݑx\܂B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) f[^̏ɗv鎞Ԃ́Ag̃n[hfBXN̗eʂp\ RɂĈقȂ܂Bn[hfBXN̗eʂAp\R x΁Aɗv鎞Ԃ͒ZȂ܂B f[^̏IƁA fBXÑf[^I܂ (230b) [OK] ƂbZ[W\܂BŁAG^[L[ƁA ̃j[ɖ߂܂B @ɂ‚ Cj[u@̊Tv\vIƁA Pȑ@̐\܂B ȊȎɂ‚ Cj[ŏ㉺J[\L[ƁAʂ̍ڂnCCg 邱Ƃł܂BCj[ɂ8‚̑I\ ܂񂪁A㉺J[\L[ƃXN[ɂAe푀상 j[\܂Bun[hfBXNc[wwipe-outxv ́Af[^ȊOɂAĂ邩ǂ̊mFAL^ ݁An[hfBXÑRs[AVF̋NAċNAVbg _EȂǂ̑상j[pӂĂ܂BȉɃCj[ Ił鑀̈ꗗ܂B E0㏑āÃfBXÑf[^ E@̊Tv\ E㏑āÃfBXÑf[^Oɏ EȌ㏑@I Ef[^ꂽmFi^ꕔ`FbNj Ef[^ꂽmFiʏ^S`FbNj EOfBXNɏ EL^tbs[ɏo Eʂ̃fBXNI EfBXÑf[^\ Ef[^\ZN^̎w Euwwipe-outxɂ‚āv EÑVXebZ[WmF EfBXNRs[i^obNAbvj EfBXNRs[iᑬ^f[^Tx[Wj E1㏑āÃfBXÑf[^ E_p^[㏑āÃfBXÑf[^ Ep^[̕␔㏑āÃfBXÑf[^ E_f[^㏑āÃfBXÑf[^ EL^\ EfBXN̎Ȑff (SMART) \ EVFishjN EVFicshjN ECD-ROMmount ECD-ROMumount EMBR *̂* EVbg_E EċN Ή@ɂ‚ E{c[́AFreeBSD/i386삷Rs[^ŗpł܂B E{c[Ńf[^łXg[WfoCX͎̂ƂłB EFreeBSD̃J[l (CXg[pCD̃J[l) ň ̂̂Aȉ̏𖞂 EATAfBXNRg[hCo (ada(4)) ň EʓIS-ATA/P-ATAC^[tFCX̃n[hfBXN EASSDhCu ESCSI_CNgANZXfoCXhCo (da(4)) ň EʓISCSIC^[tFCX̃n[hfBXN EFreeBSDňRAIDRg[ (asr(4)) Ȃǂɐڑ ꂽn[hfBXN EUSBJ[hA_v^ɐڑe탁J[hA USBtbVȂǂUSBeʃXg[W ada(4), da(4), asr(4) Ȃǂ̏ڍׂɂ‚ẮAFreeBSD̃}jA y[WȂǂB ̋L^̕ۑɂ‚ un[hfBXNc[wwipe-outxvł́A̋L^ۑ 邱Ƃł܂Bۑ”\ȃfBA̓tbs[fBXNUSB ȂǂłB̋L^ۑ郁fBA (tbs[USB ) ́A炩FATtH[}bgsAuWIPE-OUTvƂ ÕtH_[gfBNgɍ쐬ĂĂB Ƃ E{c[́AOSƂFreeBSD𗘗pĂ܂B E{c[̓t[EFAłB쌠́A҂ł ܁ ۗLĂ܂B E{c[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B Ql EВc@l dqZpYƋ (http://www.jeita.or.jp/japanese/index.htm) up\R̔pEnɂn[hfBXÑf[^ Ɋւ闯ӎv(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) {c[̓@ {c[юoíA҂̃EFuTCgŌJĂ܂BA hX http://hp.vector.co.jp/authors/VA004814/ łBKvɉ ă_E[hĂB n[hfBXNc[uwipe-outvv1.6 Copyright (C) 2016 by Dai ISHIJIMA WIPE-OUT-16T_991 (2016-12-06) . 渚II渚I .. 渚II渚IArcNRC 渚II渚I EAstartup.shSTARTUP SH 渚II渚I Amainmenu.shMAINMENUSH 渚II渚I %Aseldisk.shSELDISK SH 渚II渚IAeraseU.shERASE SH 渚II渚IvAfine-erase.shFINE-E~1SH 渚II渚Ih#Asel-fine.shSEL-FINESH 渚II渚ImAverify.shVERIFY SH 渚II渚IAdump.shDUMP SH 渚II渚IAwritelog.shWRITELOGSH 渚II渚I Acopy.shCOPY SH 渚II渚IAembr.nshEMBR SH 渚II渚I# Acrlf.rshCRLF SH 渚II渚IAfloppAylog.shFLOPPY~1SH 渚II渚I/Adummyread.shDUMMYR~1SH 渚II渚I Akon2start.shKON2ST~1SH 渚II渚I!c Akon2alt.shKON2ALT SH 渚II渚I"Avtsta,rt.shVTSTART SH 渚II渚I#. Asanitize.shSANITIZESH 渚II渚I$ Aalt-menu.shALT-MENUSH 渚II渚I& Ascsaver.shSCSAVER SH 渚II渚I'<Ainfo.txtINFO TXT 渚II渚I(_Areadmse.txtREADME TXT 渚II渚I)# Ahelp.txtHELP TXT 渚II渚I,@ AtermcapTERMCAP 渚II渚I-Adiskseize.cDISKSIZEC 渚II渚I/+Astuff.cSTUFF C 渚II渚I1 Atinyd#ate.cTINYDATEC 渚II渚I2!AtinydUump.cTINYDUMPC 渚II渚I3Acheck.cCHECK C 渚II渚I44 Amakembr.cMAKEMBR C 渚II渚I5[Awpoutp-mbr.sWPOUT-~1S 渚II渚I6A Ashell-on.cSHELL-ONC 渚II渚I7V#! /bin/sh # # rc -- X^[gAbvXNvg # # 0.0: Jun. 15, 2004 by Dai ISHIJIMA # 0.1: Aug. 1, 2006 (CDĂkonœ{ꉻ for wpout07) # 0.2: Feb. 10, 2007 (OL^ for wpout08) # 0.3: Feb. 17, 2007 (VAR\[Ή) # 0.4: Sep. 12, 2007 (for wpout09J) # 0.5: Sep. 17, 2007 (shutdown̉ʕA) # 0.6: Oct. 2, 2007 (expr(1)POSIXΉ) # 0.7: Jan. 3, 2008 (N菇C) # 0.8: Feb. 10, 2008 (NɃbZ[W) # 0.9: Feb. 11, 2008 (CD̊mF@C) # 1.0: Jul. 24, 2009 (VAR\[Ή, wpout10) # 1.1: May 5, 2013 (wpout13, 8.3R, "mount -rw /dev/md0a /") # 1.2: May 3, 2014 (wpout14, 8.3R, sio->uart) # 1.3: Jul. 26, 2016 (wpout16, 10.3R, vt -> sc) # # t@CVXe݉”\ /sbin/mount -rw /dev/md0a / # VFA[hCũpXݒ /sbin/ldconfig -elf /lib /usr.lib PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin:/sbin:/usr/local/bin:/wipeout:. export PATH # 2016-12-04 export HOME=/root #export DEBUG=y cd /tmp # # ŏ̃O # LOGFIL=/tmp/wpoutlog.txt export LOGFIL echo -n 'booting wipe-out, at epoch ' > $LOGFIL tinydate >> $LOGFIL echo -n 'version: ' >> $LOGFIL cat /version.txt >> $LOGFIL # NƂbZ[W\ cat $LOGFIL # # expr(1) POSIXΉɂ錅ӂΏ (4.x݊[h) # export EXPR_COMPAT= # # CD-ROMȂǂ̏ # echo -n 'checking boot device..' # CD-ROM݂邩? (PXEu[gA[JCDu[g?) CDROM=NONE echo 'checking CD-ROM device' >> $LOGFIL # ܂AATAPI CD-ROM}EgĂ݂ echo -n 'mounting CD-ROM (acd0) ..' mount_cd9660 /dev/acd0 /cdrom 1>/dev/null 2>&1 echo '.' CDROM=/dev/acd0 if [ ! -f /cdrom/version.txt ]; then # SCSI CD-ROM}EgĂ݂ echo -n 'mounting CD-ROM (cd0) ..' mount_cd9660 /dev/cd0 /cdrom 1>/dev/null 2>&1 echo '.' CDROM=/dev/cd0 if [ ! -f /cdrom/version.txt ]; then # CD-ROM}EgłȂ CDROM=NONE fi fi case x"$CDROM" in x/dev/*) echo "CD-ROM device: $CDROM" >> $LOGFIL echo "re-initializing shared library path" >> $LOGFIL echo -n "re-initializing shared library path.." if [ -r /cdrom/lib/libc.so ]; then ldconfig -elf /lib /usr.lib /usr/lib fi echo '.' ;; *) echo "no CD-ROM device, may be PXE boot mode" >> $LOGFIL echo "no CD-ROM device, may be PXE boot mode" ;; esac if [ -x /bin/hostname ]; then hostname wipeout fi if [ -x /usr.sbin/powerd ]; then echo -n 'Starting powerd... ' powerd > $LOGFIL 2>&1 case x"$?" in x0) echo done. ;; *) echo failed. ;; esac fi # xCD-ROMA}Eg case x"$CDROM" in x/dev/*) echo "unmounting CD-ROM ($CDROM)" >> $LOGFIL echo -n "umounting CD-ROM ($CDROM).." umount /cdrom echo '.' ;; esac export CDROM # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout echo -n "wipe-out initialized successfully on " >> $LOGFIL date >> $LOGFIL # rm -f /var/run/nologin # need terminal settings? (9.3R) export TERM=vt100 # VAR\[̃`FbN #comconsole=`dmesg | /usr.bin/sed -n '/^sio0:.*, console/p'` comconsole=`dmesg | /usr.bin/sed -n '/^uart.*console/p'` case x"$comconsole" in xuart*console*) export TTY=comconsole export CONSOLE=comconsole sh /wipeout/startup.sh ;; *) export TTY=ttyv0 export CONSOLE=vidconsole # R\[{ꉻāAX^[gAbvXNvgN #sh /wipeout/vtstart.sh sh /wipeout/kon2start.sh ;; esac # Vbg_E邩? if [ -f /var/run/nologin ]; then nologin=`sed -n 1p /var/run/nologin` case x"$nologin" in xh*) shutdown -p now ;; xr*) shutdown -r now ;; esac fi # ΘbVFN /bin/sh -i if [ -x /sbin/shutdown ]; then /sbin/shutdown -h now fi exit 0 # EOF #! /bin/sh # # startup.sh -- X^[gAbvXNvg ({ꉻR\[p) # # 0.0: Jun. 15, 2004 by Dai ISHIJIMA # 0.1: Jun. 19, 2005 (for PXEBOOT) # 0.2: Aug. 1, 2006 (v07ACDrcցA_p^[Ƃ̕␔) # 0.3: Aug. 6, 2006 (L[{[h`FbN) # 0.4: Sep. 18, 2006 (/var mkdir Ȃ) # 0.5: Feb. 10, 2007 (OL^ for wpout08) # 0.6: Sep. 12, 2007 (for wpout09J) # 0.7: Sep. 17, 2007 (shutdown̉ʕA) # 0.8: Jan. 3, 2008 (NWbN̉) # 0.8: Jul. 24, 2009 (dmesg.boot̏d`FbN, wpout10) # 0.9: Dec. 7, 2013 (fBXÑfoCX) # 1.0: Aug. 4, 2015 (ad -> ada, FreeBSD 9.3R) # 1.1: Jul. 26, 2016 (10.3R, vt -> sc/kon2) # PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin: PATH="${PATH}"':'"/sbin:/usr/local/bin:/wipeout:." export PATH ##PATH=/usr/bin:/bin:/usr/sbin:/sbin:/:. ##export PATH LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" export DMESG echo -n 'ÑVXebZ[WۑĂ܂...' dmesg > $DMESG echo '' # umd0vsɌsԍ𒲂ׂBΏd lin1=`sed -n '/^md0/=' $DMESG | sed -n '1p'` lin2=`sed -n '/^md0/=' $DMESG | sed -n '$p'` if [ $lin1 -ne $lin2 ]; then echo 'VXebZ[WdĂ܂B' echo 'xd؂ĂċN邱Ƃ𐄏܂B' echo '𑱍sꍇ́uexitv͂ĂB' /bin/sh -i fi echo '# ---------------------------- #' >> $LOGFIL echo -n "script startup.sh started on " >> $LOGFIL date >> $LOGFIL ####export TERMCAP=/etc/termcap export TERM=kons25jx export PATTERNFIL=/tmp/pattern.dat # 2013-12-07 names of disk device node # !ata(4) -> ad (P-ATA: ad0, S-ATA: ad4, etc.) # ada(4) -> ada (SATA/PATA, FreeBSD 9.3R) # SCSI (da(4)) -> da (SCSI, CAM) # ataraid(4) -> ar # aac(4) -> aacd # amr(4) -> amrd(?) or da(?) (SCSI CAM) # arcmsr(4) -> da (SCSI CAM) # asr(4) -> da(?) (SCSI CAM) # graid3(4) -> da (SCSI CAM) # hptiop(4) -> da(?) # hptmv(4) -> da(?) # hptrr(4) -> da(?) # ida(4) -> idad(?), da(?) # iir(4) -> da(?) # ips(4) -> ipsd(?), da(?) # mfi(4) -> mfid # mlx(4) -> mlxd(?), da(?) # mly(4) -> da(?) # twa(4) -> da(?) # twe(4) -> da(?) export DEVICES='da|ada|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed' # x32MoCg BLKLEN=$(( 32 * 1024 * 1024 )) export BLKLEN # o̓ubN1MoCg OBS=$(( 1024 * 1024 )) export OBS # ̓ubN (stuff̏o͒) 1koCg IBS=1024 export IBS # mF10MoCg VBLKLEN=$(( 10 * 1024 * 1024 )) export VBLKLEN # mF̓̓ubN1MoCg VBS=$(( 1024 * 1024 )) export VBS # Rs[512oCg CBS=512 export CBS echo '' # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL if ! /bin/sh mainmenu.sh ; then exit 1 fi # Ƃ肠ΘbVF𓮂Ă :-) /bin/sh -i exit 0 # EOF #! /bin/sh # # mainmenu.sh -- CD-ROMŃCj[ # # 0.0: Jun. 20, 2004 by Dai ISHIJIMA (for wpout03) # 0.1: Jul. 11 2004 (for wpout04) # 0.2: Jun. 23 2005 (for wpout05) # 0.3: Jul. 8 2005 (for wpout06) # 0.4: Aug. 5, 2006 (for wpout07) # 0.5: Dec. 21, 2006 (erase MBR) # 0.6: Feb. 10, 2007 (OL^ for wpout08) # 0.7: Feb. 15, 2007 (G^[L[΍) # 0.8: Feb. 18, 2007 (j[̏ԂύX) # 0.9: Sep. 12, 2007 (wpout09, FreeBSD 6.2R) # 1.0: Sep. 17, 2007 (shutdown̉ʕA) # 1.1: Oct. 6, 2007 (expr(1) POSIXΉ) # 1.2: Feb. 10, 2008 (wvbZ[W̕\A샍O̕\) # 1.3: Apr. 19, 2009 (fBXNRs[, wpout10) # 1.4: Sep. 30, 2009 (IBM ServeRAID, ips(4), /dev/ipsd%d) # 1.5: Dec. 22, 2012 (smartctl) # 1.6: Feb. 1, 2014 (擪ɖ߂) # 1.7: Aug. 4, 2015 (FreeBSD 9.3R, camcontrol sanitize) # 1.8: Nov. 8, 2015 (XN[Z[o[) # 1.9: Dec. 4, 2016 (ttyname) # # dmesg="${DMESG:-/var/run/dmesg.boot}" devices="${DEVICES:-da|ada|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed}" # export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" export ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" export DISPUPD="${DISPUPD:-2}" export STATEFIL="${STATEFIL:-/tmp/status.txt}" # export DIALOG="--ascii-lines --no-collapse" cbs="${CBS:-512}" obs="${OBS:-1048576}" resultfil=/tmp/result nsec=/tmp/sector stuffs='10' ##sed -n -E "/^(${devices})[0-9][0-9]*:.* $resultfil sed -n -E "/^(${devices})[0-9][0-9]*:.*B [<(]/p" $dmesg | sed 's/^\([a-z][a-z]*[0-9][0-9]*\).*/\1/' > $resultfil disk=`sed -n '1p' $resultfil` ttyname=`tty | sed 's+/dev/++'` export TITLE="n[hfBXNc[wwipe-outx v1.6 ($ttyname)" dumpskip=0 echo '# ---------------------------- #' >> $LOGFIL echo -n "script mainmenu.sh started on " >> $LOGFIL date >> $LOGFIL echo '# ---------------------------- #' >> $ERRORLOG echo -n "script mainmenu.sh started on " >> $ERRORLOG date >> $ERRORLOG while true ; do dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg=" Cj[\n" msg="${msg}ݑI𒆂̃fBXN /dev/${disk} ${dname} łB\n" msg="${msg}fBXN̗eʂ $bytes oCg ($cap) łB\n" msg="${msg}ȉ̃j[珈IĂB\n" echo -n 'displaying main menu' > $STATEFIL sh dummyread.sh dialog 2>$resultfil \ --title "$TITLE" \ --menu "$msg" \ 20 74 8 \ z '0㏑āÃfBXÑf[^' \ h '@̊Tv\' \ n '㏑āÃfBXÑf[^Oɏ' \ m 'Ȍ㏑@I' \ v 'f[^ꂽmF (^ꕔ`FbN)' \ V 'f[^ꂽmF (ʏ^S`FbN)' \ w 'OfBXNɏ' \ L 'L^tbs[ɏo' \ s 'ʂ̃fBXNI' \ d 'fBXÑf[^\' \ S 'f[^\ZN^̎w' \ a 'uwwipe-outxɂ‚āv' \ C '\XN[Z[o[ɐ؂ւ' \ D 'ÑVXebZ[WmF' \ Y 'fBXNRs[i^obNAbvj' \ y 'fBXNRs[iᑬ^f[^Tx[Wj' \ f '1㏑āÃfBXÑf[^' \ p '_p^[㏑āÃfBXÑf[^' \ q 'p^[̕␔㏑āÃfBXÑf[^' \ r '_f[^㏑āÃfBXÑf[^' \ P 'L^\' \ T 'fBXN̎Ȑff (SMART) \' \ Z 'Tj^CY@\ (SCSI Sanitize command) Ńf[^' \ K 'fBXN蓮Őݒ肷' \ b 'VF (sh) N' \ t 'VF (csh) N' \ M 'CD-ROMmount' \ U 'CD-ROMumount' \ B 'MBR *̂* ' \ x 'Vbg_E' \ R 'ċN' \ N 'j[̐擪ɖ߂' \ # end of menu case x"$?" in x1) break ;; esac result=`cat $resultfil` case x"${result}" in x[zfrpq]) echo -n 'starting erase' > $STATEFIL sh erase.sh -$result $disk ;; xh) echo -n 'displaying instruction' > $STATEFIL dialog --title '@̊Tv' \ --textbox help.txt 22 76 ;; xs) echo -n 'selecting disk' > $STATEFIL . seldisk.sh ;; xn) echo -n 'starting erase' > $STATEFIL sh fine-erase.sh $stuffs $disk ;; xm) echo -n 'selecting erase method' > $STATEFIL . sel-fine.sh ;; xv) echo -n 'starting verify' > $STATEFIL sh verify.sh 90 $disk ;; xV) echo -n 'starting verify' > $STATEFIL sh verify.sh 0 $disk ;; xw) echo -n 'writing log' > $STATEFIL sh writelog.sh $disk ;; xL) echo -n 'saving log' > $STATEFIL sh floppylog.sh ;; xd) echo -n 'dump sector' > $STATEFIL sh dump.sh $dumpskip $disk dumpskip=`expr $dumpskip + 1` ;; xS) echo -n 'selecting sector' > $STATEFIL msg="ZN^w肵Ă ($dumpskip)" dialog 2>$nsec \ --title "$TITLE" \ --inputbox "$msg" 8 64 case x"$?" in x0) echo '' >> $nsec echo "$dumpskip" >> $nsec dumpskip=`sed -n '/^[0-9]/p' $nsec | sed -n 1p` ;; esac ;; xa) echo -n 'displaying about' > $STATEFIL dialog --title 'wwipe-outxɂ‚' \ --textbox info.txt 22 76 ;; xC) echo -n 'displaying saver' > $STATEFIL msg='Alt+F8ƃXN[Z[o[ɐ؂ւ܂' dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xD) echo -n 'displaying system message' > $STATEFIL dialog --title 'ÑVXebZ[W' \ --textbox /var/run/dmesg.boot 22 76 ;; xy) echo -n 'starting copy' > $STATEFIL srcdisk=$disk . seldisk.sh dstdisk=$disk sh copy.sh $srcdisk $dstdisk $cbs disk=$srcdisk ;; xY) echo -n 'starting copy' > $STATEFIL srcdisk=$disk . seldisk.sh dstdisk=$disk sh copy.sh $srcdisk $dstdisk $obs disk=$srcdisk ;; xP) echo -n 'displaying history' > $STATEFIL echo "::: $LOGFIL :::" > /tmp/loglog.txt cat $LOGFIL >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt for f in /tmp/erase-log.* ; do if [ -f "$f" ]; then echo "::: $f :::" >> /tmp/loglog.txt cat $f >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt fi done for f in /tmp/verify-log.* ; do if [ -f "$f" ]; then echo "::: $f :::" >> /tmp/loglog.txt cat $f >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt fi done echo '::: shell variables :::' >> /tmp/loglog.txt set >> /tmp/loglog.txt echo '' >> /tmp/loglog.txt dialog --title '샍O' \ --textbox /tmp/loglog.txt 22 76 ;; xT) echo -n 'displaying smart infomation' > $STATEFIL /usr/local/sbin/smartctl -s on /dev/$disk \ > /tmp/smart.txt 2>&1 /usr/local/sbin/smartctl -a /dev/$disk \ >> /tmp/smart.txt 2>&1 case x"$?" in x0) echo "SMART͐I܂" \ > /tmp/smartmsg.txt ;; *) echo "SMART͓삵܂ł" \ > /tmp/smartmsg.txt ;; esac echo '' >> $LOGFIL echo '::: SMART (smartctl output) :::' >> $LOGFIL cat /tmp/smart.txt >> $LOGFIL cat /tmp/smart.txt >> /tmp/smartmsg.txt dialog --title 'SMARTO' \ --textbox /tmp/smartmsg.txt 22 76 ;; xZ) echo -n 'starting sanitize' > $STATEFIL sh sanitize.sh $disk ;; xK) echo -n 'selecting disk (manual)' > $STATEFIL msg="fBXNw肵Ă ($disk)" dialog 2>/tmp/diskname \ --title "$TITLE" \ --inputbox "$msg" 8 64 case x"$?" in x0) echo '' >> /tmp/diskname echo "$disk" >> /tmp/diskname cat /tmp/diskname | sed -n '/^[a-z][a-z]*[0-9][0-9]*/p' | sed -n 1p > /tmp/diskname.new disk=`cat /tmp/diskname.new` ;; esac ;; xb) echo -n 'starting shell' > $STATEFIL /bin/sh -i ;; xt) echo -n 'starting shell' > $STATEFIL if [ -x /bin/csh ]; then /bin/csh -i else msg='csh̓CD-ROM}EgĂ' dialog --title "$TITLE" \ --msgbox "$msg" 5 64 fi ;; xM) echo -n 'mounting CD-ROM' > $STATEFIL if [ -x /cdrom/usr.bin/dialog ]; then msg='CD-ROM͂łɃ}EgĂ܂' elif mount_cd9660 $CDROM /cdrom > /dev/null 2>&1; then msg='CD-ROM}Eg܂' else msg='CD-ROM}Egł܂ł' fi dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xU) echo -n 'unmounting CD-ROM' > $STATEFIL msg='' if [ ! -x /cdrom/usr.bin/dialog ]; then msg='CD-ROM͂łɃA}EgĂ܂' fi if umount /cdrom > /dev/null 2>&1; then msg='CD-ROMA}Eg܂' elif [ -z "$msg" ]; then msg='CD-ROMA}Egł܂ł' fi dialog --title "$TITLE" \ --msgbox "$msg" 5 64 ;; xB) echo -n 'erasing MBR' > $STATEFIL sh embr.sh $disk ;; xx) echo -n 'starting shutdown' > $STATEFIL echo "halt" > /var/run/nologin exit 1 ;; xR) echo -n 'starting reboot' > $STATEFIL echo "reboot" > /var/run/nologin exit 1 ;; #xN) # NOP # ;; esac done dialog --title "$TITLE" \ --infobox 'I܂' 3 48 echo 'u/bin/sh /wipeout/mainmenu.shvŃj[ʂĂяo܂B' echo '' exit 0 # EOF #! /bin/sh # # seldisk.sh - fBXN̑I # # _CAO{bNX\ăfBXNIA邢͓͂B # foCXt@CԂB # # 0.0: May 30, 2004 by Dai ISHIJIMA # 0.1: Jun. 29, 2006 (support some more disk types) # 0.2: Sep. 12, 2007 (wpout09) # dmesg="${DMESG:-/var/run/dmesg.boot}" devices="${DEVICES:-da|ad|ar|aacd|amrd|ipsd}" resultfil=/tmp/result title="${TITLE:-n[hfBXNc[wwipe-outx}" #sed -n -E "/^(${devices})[0-9]:.* $resultfil sed -n -E "/^(${devices})[0-9]:.*B [(<]/p" $dmesg | sed 's/^\([a-z][a-z]*[0-9]\).*/\1/' > $resultfil disks=`cat $resultfil` n=0 taglist='' for d in $disks ; do dname=`sed -n -E "/^${d}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$d` cap=`disksize -p /dev/$d` taglist="$taglist $d '$dname (${bytes}oCg, $cap)'" done #######taglist="$taglist XX 'LȊO͂'" eval dialog \ --title "'$title'" \ --menu "'fBXNIĂ'" \ 12 72 5 \ $taglist \ 2>$resultfil case "$?" in 0) newdisk=`cat $resultfil` if [ x"$disk" != x"$newdisk" ]; then msg="fBXN ${disk} " msg="${msg} ${newdisk} ɕύX܂B" dialog --title "$title" \ --infobox "$msg" 5 72 sleep 2 fi disk="$newdisk" ;; 1) dialog --title "$title" \ --infobox 'fBXN̑ILZ܂' 3 64 sleep 2 ;; esac # EOF #! /bin/sh # # erase.sh -- f[^㏑ăfBXÑf[^ # # g: /bin/sh erase.sh - fBXN # : [zfr] # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh erase.sh -z ad0 # # 0.0: Jun. 20, 2004 by Dai ISHIJIMA (for wpout03) # 0.1: Jul. 11, 2004 # 0.2: Jun. 28, 2006 (_p^[ƕ␔ for wpout07) # 0.3: Aug. 1, 2006 (^CX^v) # 0.4: Aug. 12, 2006 (^CX^vɗe) # 0.5: Feb. 10, 2007 (OL^ for wpout08) # 0.6: Feb. 15, 2007 (G^[L[΍AG[Ɠ]x̃O) # 0.7: Sep. 12, 2007 (wpout09) # 0.8: Oct. 6, 2007 (vZ32rbgt͈̔͂ōs) # 0.9: Dec. 23, 2007 (o[Ot\̌vZC) # 1.0: Jan. 2, 2008 (OC) # 1.1: Mar. 22, 2014 (ʂ̂‚炷 (XV炷)) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" STATEFIL="${STATEFIL:-/tmp/status.txt}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting erase' > $STATEFIL if [ ! -s $PATTERNFIL ]; then stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL fi # stuff="${1:--z}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # x32MoCg blklen="${BLKLEN:-33554432}" # o̓ubNTCY1MoCg obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) # ̓ubNTCY1koCg ibs="${IBS:-1024}" icnt=$(( $blklen / $ibs )) # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂA݂ł܂" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "}Eg̃fBXN $disk 邱Ƃ͂ł܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="fBXN ${disk} ${dname} \n" msg="${msg}Sf[^ ${bytes}oCgA\n" case x"$stuff" in x-[0z]) msg="${msg}0ŏ㏑ď܂B\n" method='write 0' ;; x-[1f]) msg="${msg}1ŏ㏑ď܂B\n" method='write 1' ;; x-[Rr]) msg="${msg}_f[^ŏ㏑ď܂B\n" method='write random' ;; x-[Pp]) stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL msg="${msg}_p^[ŏ㏑ď܂B\n" method='write pattern' ;; x-[Qq]) msg="${msg}Op^[̕␔ŏ㏑ď܂B\n" method='write inverted pattern' ;; *) msg="${msg}܂B\n" method='overwrite' ;; esac msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${disk} ($cap) ̃f[^Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac # ̃p[^ (MoCgPʂŐ) mbytes=`disksize -m /dev/$disk` max=$(( $mbytes / $ounit )) startsec=`tinydate '+%s'` rems='' # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "erase started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes with $method" >> $LOGFIL nerrs=0 skip=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi lastdisp=0 dispintv=0 while [ $skip -le $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # echo -n "erasing $disk, $p % done" > $STATEFIL text="fBXN ${disk} ̃f[^Ă܂B\n" text="${text} ${p}% ($skip/$max) I ^ " text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 7 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`stuff $stuff < $PATTERNFIL | dd ibs=$ibs obs=$obs seek=$skip count=$icnt of=/dev/$disk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # L^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v skip=$(( $skip + $ocnt )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "erase finished on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $cap) with $method" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi # I endstamp=`date '+%H:%M'` # Oۑ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erased with '$method'" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk echo -n "$disk erased ($elapsed [s])" > $STATEFIL sh dummyread.sh dialog --title "$title" \ --msgbox "fBXÑf[^I܂ (${elas})" 5 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # fine-erase.sh -- 񏑂݂ŔOɃfBXÑf[^ # # g: /bin/sh fine-erase.sh fBXN # : [0z1fRr]+ # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh fine-erase.sh 0101010 ad0 # # 0.0: Jun. 27, 2004 by Dai ISHIJIMA # 0.1: Jul. 11, 2004 # 0.2: Jun. 28, 2006 # 0.3: Aug. 1, 2006 (^CX^v for wpout07) # 0.4: Feb. 10, 2007 (OL^ for wpout08) # 0.5: Feb. 15, 2007 (G^[L[΍) # 0.6: Sep. 12, 2007 (wpout09) # 0.7: Oct. 6, 2007 (vZ32rbgt͈̔͂ōs) # 0.8: Dec. 23, 2007 (o[Ot\̌vZC) # 0.9: Jan. 2, 2008 (OC) # 1.0: Mar. 22, 2014 (ʂ̂‚炷 (XV炷)) # 1.1: Aug. 4, 2015 (expr *, FreeBSd 9.3R) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" STATEFIL="${STATEFIL:-/tmp/status.txt}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting erase' > $STATEFIL if [ ! -s $PATTERNFIL ]; then stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL fi stuffs="${1:-fz}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # x32MoCg blklen="${BLKLEN:-33554432}" # o̓ubNTCY1MoCg obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) # ̓ubNTCY1koCg ibs="${IBS:-1024}" icnt=$(( $blklen / $ibs )) # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂA݂ł܂" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "}Eg̃fBXN $disk 邱Ƃ͂ł܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="fBXN ${disk} ${dname} \n" msg="${msg}Sf[^ ${bytes}oCgA\n" nstuff=0 for stuff in `echo $stuffs | sed 's/\(.\)/\1 /g'` ; do case x"$stuff" in x[0z]) msg="${msg}0A" ;; x[1f]) msg="${msg}1A" ;; x[Rr]) msg="${msg}RA" ;; x[Pp]) msg="${msg}PA" ;; x[Qq]) msg="${msg}QA" ;; esac nstuff=$(( $nstuff + 1 )) done msg="${msg}̏\n${nstuff}㏑ď܂\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 10 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${disk} ($cap) ̃f[^Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac # ̃p[^ (MoCgPʂŐ) mbytes=`disksize -m /dev/$disk` max=$(( $mbytes / $ounit )) stage=0 xstage=1 startsec=`tinydate '+%s'` totalrems='' # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "erase ($nstuff times) started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes with $stuffs" >> $LOGFIL nerrs=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi for stuff in `echo $stuffs | sed 's/\(.\)/\1 /g'` ; do skip=0 stagestart=`tinydate '+%s'` case "$stuff" in [0z]) method="'0'㏑" ;; [1f]) method="'1'㏑" ;; [Rr]) method="_f[^㏑" ;; [Pp]) stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" \ >> $LOGFIL method="_p^[㏑" ;; [Qq]) method="Op^[̕␔㏑" ;; esac rems='' status='' status2='' errormsg='' # echo -n "stage: $stage, with writing $stuff " >> $LOGFIL echo -n "started on " >> $LOGFIL date >> $LOGFIL # lastdisp=0 dispintv=0 while [ $skip -le $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $stagestart )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # S̃o[Ot pp=$(( ( $p + 100 * $stage ) / $nstuff )) mm=$(( ( $m + 1000 * $stage ) / $nstuff )) q=$(( $pp / 2 )) i=0 totalbar='' while [ $i -lt $q ]; do totalbar="$totalbar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do totalbar="$totalbar"'_' i=$(( $i + 1 )) done ee=$(( $cursec - $startsec )) if [ $mm -gt 0 ]; then rr=$(( ( 1000 - $mm ) * $ee / $mm + 1 )) if [ $rr -gt 120 ]; then totalrems=$(( ( $rr + 59 ) / 60 )) totalrems="c 悻${totalrems}" else totalrems="c 悻${rr}b" fi fi if [ $ee -gt 120 ]; then totalelas=$(( ( $ee + 30 ) / 60 )) totalelas="${totalelas}" else totalelas="${ee}b" fi # echo -n "erasing $disk, $pp % done" > $STATEFIL text="fBXN ${disk} ̃f[^Ă܂B\n\n" text="${text}S ${nstuff} H ${xstage} Ԃ " text="${text} Ŝ ${pp}% I\n" text="${text}${totalelas} o ${totalrems} \n\n" text="${text} 0%|${totalbar}|100%\n\n" text="${text}̍Hł${method}Af[^Ă܂B\n" text="${text}${p}% ($skip/$max) I ^ " text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%\n\n" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 15 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`stuff -$stuff < $PATTERNFIL | dd ibs=$ibs obs=$obs seek=$skip count=$icnt of=/dev/$disk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # L^ case x"$skip" in x0) echo "stage: $stage, skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v skip=$(( $skip + $ocnt )) done stage=$(( $stage + 1 )) xstage=$(( $xstage + 1 )) echo "stage: $stage, skip: $skip, $status2" >> $LOGFIL done sleep 2 # echo "number of errmessages: $nerrs" >> $LOGFIL echo -n "erase finished on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $cap) with overwriting $nstuff times" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi # I endstamp=`date '+%H:%M'` # Oۑ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erase $nstuff times ($stuffs)" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk echo -n "$disk erased ($elapsed [s])" > $STATEFIL sh dummyread.sh dialog --title "$title" \ --msgbox "fBXÑf[^I܂ (${elas})" 5 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # sel-fine.sh - O@̑I # # 0.0: Jun. 26, 2004 by Dai ISHIJIMA # 0.1: Jul. 9, 2005 # 0.2: Jun. 28, 2006 (_p^[ƕ␔ for wpout07) # 0.3: Feb. 18, 2007 (15lj for wpout08) # resultfil=/tmp/result stuffs="${stuffs:-10}" title="${TITLE:-n[hfBXNc[wwipe-outx}" dialog 2>$resultfil \ --title "$title" \ --menu '@IĂ' \ 12 74 5 \ 10 '10̏2㏑' \ 01 '01̏2㏑' \ R0 '_0̏2㏑' \ RR0 '__0̏3㏑' \ R10 '_10̏3㏑' \ PQ0 '_p^[␔0̏3㏑' \ RR10 '_~210̏4㏑' \ 1010 '1010̏4㏑' \ PQ10 'p^[␔10̏4㏑' \ PQR0 'p^[␔_10̏4㏑' \ 01010 '(01)~20̏5㏑' \ RRR10 '_~310̏5㏑' \ PQPQ0 '(p^[␔)~20̏5㏑' \ 101010 '101010̏6㏑' \ RRRR10 '_~410̏6㏑' \ PQPQ10 '(p^[␔)~210̏6㏑' \ 0101010 '(01)~30̏7㏑' \ R101010 '_101010̏7㏑' \ R10R10R10 '(_10)~3̏9㏑' \ PQRPQRPQR0 '(p^[␔_)~30̏10' \ PQRPQRPQR10 '(p[^␔_)~310̏11' \ R10R10R10R10 '(_10)~4̏12㏑' \ PQRPQRPQRPQR0 '(p^[␔_)~40̏13' \ PQRPQRPQRPQR10 '(p^[␔_)~410̏14' \ PQR10PQR10PQR10 '(p^[␔_10)~3̏15' \ case x"$?" in x0) newstuff=`cat $resultfil` if [ x"$stuffs" != x"$newstuff" ]; then msg="@ ${stuffs} " msg="${msg} ${newstuff} ɕύX܂B" dialog --title "$title" \ --infobox "$msg" 3 72 sleep 2 fi stuffs="$newstuff" ;; x1) dialog --title "$title" \ --infobox '@̑ILZ܂' 3 64 sleep 2 ;; esac # EOF #! /bin/sh # # verify.sh -- f[^Ă邩mF # # g: /bin/sh verify.sh step fBXN # step: XLbv钷 # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh verify.sh 0 ad0 (fBXNS) # /bin/sh verify.sh 90 ad0 (Ŝ1/10) # /bin/sh verify.sh 990 ad0 (Ŝ1/100) # # 0.0: Jul. 8, 2005 by Dai ISHIJIMA (for wpout06) # 0.2: Aug. 1, 2006 (^CX^v for wpout07) # 0.3: Feb. 10, 2007 (OL^ for wpout08) # 0.4: Feb. 15, 2007 (G^[L[΍) # 0.5: Sep. 12, 2007 (wpout09) # 0.6: Oct. 6, 2007 (vZ32rbgt͈̔͂ōs) # 0.7: Dec. 23, 2007 (o[Ot\̌vZC) # 0.8: Jan. 2, 2008 (OC) # 0.9: Apr. 19, 2009 (mFbZ[W, wpout10) # 1.0: Mar. 21, 2014 (c莞ԌvZC) # 1.1: Mar. 22, 2014 (ʂ̂‚炷 (XV炷)) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" STATEFIL="${STATEFIL:-/tmp/status.txt}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting verify' > $STATEFIL step="${1:-1}" disk="${2:-ad0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # 10MoCgPʂŊmF vblklen="${VBLKLEN:-10485760}" # x1MoCg vbs="${VBS:-1048576}" vunit=$(( $vbs / 1048576 )) # x10ubN vcnt=$(( $vblklen / $vbs )) # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" if [ ! -r /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂAǂ߂܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` dbytes=`disksize -p /dev/$disk` bytes=`disksize -B /dev/$disk` # mF̃p[^ mbytes=`disksize -m /dev/$disk` # ubNTCYPʂł̃fBXNTCY max=$(( $mbytes / $vunit )) msg="fBXN ${disk} ${dname} \n" msg="${msg}f[^ ${bytes}oCg\n" msg="${msg}Ă邱ƂmF܂B\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'mFLZ܂' 3 64 sleep 2 exit 1 ;; esac # zero=0 one=0 maybe=0 unerased=0 checked=0 startsec=`tinydate '+%s'` rems='' # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "verify started on " >> $LOGFIL date >> $LOGFIL echo " $disk ($dname) $bytes bytes" >> $LOGFIL nerrs=0 skip=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi lastdisp=0 dispintv=0 while [ $skip -lt $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # echo -n "verify $disk, $p % done" > $STATEFIL text="fBXN ${disk} ̃f[^`FbNĂ܂B\n" text="${text}${max}ubN̂${skip}ubN^${p}% I\n" text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 8 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`(dd if=/dev/$disk ibs=$vbs skip=$skip count=$vcnt | check -s) 2>&1` case $? in 0) zero=$(( $zero + $vcnt )) ;; 1) one=$(( $one + $vcnt )) ;; 2) maybe=$(( $maybe + $vcnt )) ;; *) unerased=$(( $unerased + $vcnt )) ;; esac status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # ʼnsɏoXe[^X̂Ƃ case x"$status2" in x) status2="skipping unerased block $unerased at $skip" ;; esac # L^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v checked=$(( $checked + $vcnt )) skip=$(( $skip + $vcnt + $step )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "verify finished on" >> $LOGFIL date >> $LOGFIL echo " $disk ($dname, $dbytes), max = $max, checked = $checked" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi # I endstamp=`date '+%H:%M'` unerased=$(( $unerased + $maybe )) zp=$(( $zero * 100 / $checked )) op=$(( $one * 100 / $checked )) np=$(( $unerased * 100 / $checked )) msg="fBXN ($disk, $dbytes oCg) ̃`FbNI܂ (${elas})\n" msg="${msg}S $max ubN $checked ubN܂\n" msg="${msg} '0' ŏĂubN: $zero ($zp %)\n" msg="${msg} '1' ŏĂubN: $one ($op %)\n" msg="${msg} ȊO () ̃ubN: $unerased ($np %)\n" # Oۑ echo "Verified $checked blocks" > /tmp/verify-log.$disk echo -n " erased with 0:${zp}%, 1:${op}%, " >> /tmp/verify-log.$disk echo "unerased:${np}%" >> /tmp/verify-log.$disk echo " $startstamp -> $endstamp" >> /tmp/verify-log.$disk echo -n "$disk verified ($elapsed [s])" > $STATEFIL sh dummyread.sh # Ȃ~܂? #echo -n "final confirmation message displayed on " >> $LOGFIL #date >> $LOGFIL dialog --title "$title" \ --msgbox "$msg" 10 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # dump.sh -- fBXÑf[^\ # # 0.0: Jul. 8, 2005 by Dai ISHIJIMA (wpout06) # 0.1: Sep. 12, 2007 (wpout09) # # g: /bin/sh dump.sh skip fBXN # skip: XLbv钷 # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh dump.sh 0 ad0 # # skip="${1:-0}" disk="${2:-ad0}" title=" $disk ZN^ $skip ̓e" (dd if=/dev/$disk skip=$skip count=1 | tinydump > /tmp/dump.txt) 2>/dev/null dialog --title "$title" \ --textbox /tmp/dump.txt 22 76 #! /bin/sh # # writelog.sh -- OfBXNɏ # # g: /bin/sh writelog.sh fBXN # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh writelog.sh ad0 # # 0.0: Aug. 1, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Aug. 7, 2006 OɊmF # 0.2: Feb. 10, 2007 (OL^ for wpout08) # 0.3: Feb. 15, 2007 (G^[L[΍) # 0.4: Sep. 12, 2007 (wpout09) # disk="${1:-ad0}" mbr="${MBR:-wpout-mbr.boot}" title="${TITLE:-n[hfBXNc[wwipe-outx}" # łɏς݂? if [ ! -s /tmp/erase-log.$disk ]; then dialog --title "$title" \ --yesno '삪sĂ܂\n{ɏ݂܂?' \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Ȍ݂LZ܂' 3 64 sleep 2 exit 1 ;; esac fi # {ɏĂ̂? dd if=/dev/$disk count=1 of=/tmp/org-mbr.$disk 1>/dev/null 2>&1 if ! check < /tmp/org-mbr.$disk 1>/dev/null 2>&1 ; then dialog --title "$title" \ --yesno 'MBR0ŏĂ܂\n{ɏ݂܂?' \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Ȍ݂LZ܂' 3 64 sleep 2 exit 1 ;; esac fi # O݂Ȃ炻炵쐬 if [ ! -s /tmp/erase-log.$disk ]; then echo 'The contents of this storage device' > /tmp/erase-log.$disk echo 'may have been erased' >> /tmp/erase-log.$disk echo 'with hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk fi if [ ! -s /tmp/verify-log.$disk ]; then echo 'But NOT verified.' > /tmp/verify-log.$disk fi # ŏImF sh dummyread.sh dialog --title "$title" \ --yesno "OfBXN ($disk) ɏ݂܂?" \ 6 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'Ȍ݂LZ܂' 3 64 sleep 2 exit 1 ;; esac echo -n 'Logged: ' > /tmp/stamp-log.$disk date '+%Y-%m-%d %H:%M:%S' >> /tmp/stamp-log.$disk echo 'ABSOLUTELY NO WARRANTY.' >> /tmp/stamp-log.$disk # ݑ cat $mbr /tmp/erase-log.$disk /tmp/verify-log.$disk /tmp/stamp-log.$disk | makembr > /tmp/boot.$disk # echo -n "MBR log was written on " >> $LOGFIL date >> $LOGFIL echo "==" >> $LOGFIL cat /tmp/erase-log.$disk /tmp/verify-log.$disk /tmp/stamp-log.$disk >> $LOGFIL echo "==" >> $LOGFIL case x$DEBUG in x[Yy]*) echo 'debug mode, no write' mesg="OfBXN ($disk) ɏ݂܂ (in debug mode)" ;; *) if dd if=/tmp/boot.$disk of=/dev/$disk > /dev/null 2>&1; then mesg="OfBXN ($disk) ɏ݂܂" else mesg="OfBXN ($disk) ɏ߂܂ł" fi ;; esac sh dummyread.sh dialog --title "$title" --msgbox "$mesg" 5 72 exit 0 # EOF #! /bin/sh # # copy.sh -- G[𖳎ăf[^Rs[ # # g: /bin/sh copy.sh Rs[fBXN Rs[fBXN # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh copy.sh ad0 ad1 # # 0.0: Aug. 5, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Feb. 10, 2007 (OL^ for wpout08) # 0.2: Feb. 15, 2007 (G^[L[΍) # 0.3: Sep. 12, 2007 (wpout09) # 0.4: Oct. 6, 2007 (expr(1) POSIXΉ) # 0.4: Dec. 13, 2007 (o[OtAc菊vԂ̃I[o[t[C) # 0.5: Jan. 2, 2008 (OC) # 0.6: Apr. 19, 2009 (ubNTCY•, wpout10) # 0.7: Oct. 11, 2013 (Rs[̃fBXN\, wpout13) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" STATEFIL="${STATEFIL:-/tmp/status.txt}" PATTERNFIL="${PATTERNFIL:-/tmp/pattern.dat}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL echo -n 'starting copy' > $STATEFIL # vZ 32bit signed int ̌EɈȂ悤ɂ export EXPR_COMPAT # ubNTCY512oCg cbs="${CBS:-512}" srcdisk="${1:-ad0}" dstdisk="${2:-ad1}" cbs="${3:-$cbs}" dmesg="${DMESG:-/var/run/dmesg.boot}" if [ ! -r /dev/$srcdisk ]; then echo "$0: disk '$srcdisk' does not exist or is not readable" echo "Usage: $0 srcdisk dstdist" exit 1 fi if [ ! -w /dev/$dstdisk ]; then echo "$0: disk '$dstdisk' does not exist or is not writable" echo "Usage: $0 srcdisk dstdist" exit 1 fi # x32MoCg blklen="${BLKLEN:-33554432}" # Rs[̃p[^ # MoCgPʂŐ mbytes=`disksize -m /dev/$srcdisk` # 524288MoCgȉȂubNTCY512oCg # ubÑJEg30rbgŎ܂悤ɂ xbs=$(( ( $mbytes + 524288 - 1 ) / 524288 )) minbs=512 xbs=$(( $xbs >> 1 )) # ubN̓fBXNTCYɉ 512, 1k, 2k, 4k,.. while [ $xbs -gt 0 ]; do minbs=$(( $minbs << 1 )) xbs=$(( $xbs >> 1 )) done # wubNZ (vZӂ鋰̂) Ƃ͒ if [ $cbs -lt $minbs ]; then cbs=$minbs fi ccnt=$(( $blklen / $cbs )) # obs="${OBS:-1048576}" ocnt=$(( $blklen / $obs )) ounit=$(( $obs / 1048576 )) title="${TITLE:-n[hfBXNc[wwipe-outx}" sname=`sed -n -E "/^${srcdisk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` sbytes=`disksize -B /dev/$srcdisk` dname=`sed -n -E "/^${dstdisk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` dbytes=`disksize -B /dev/$dstdisk` msg="fBXN ${srcdisk} ${sname} \n" msg="${msg}Sf[^ ${sbytes}oCgA${cbs}oCgPʂ\n" msg="${msg}fBXN ${dstdisk} ${dname}\n" msg="${msg}(${dbytes}oCg) ɃRs[܂B" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXÑRs[LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${srcdisk}̃f[^${dstdisk}ɃRs[Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXÑRs[LZ܂' 3 64 sleep 2 exit 1 ;; esac dd if=/dev/$dstdisk ibs=512 count=1 | check -s 2>&1 case $? in 0) dstempty="may be empty or erased." ;; *) dstempty="may NOT be empty or erased." msg="Rs[̃fBXN${dstdisk} ${dname}\n" msg="${msg}ɂ̓f[^cÔ\܂\n" msg="${msg}{${srcdisk}̃f[^" msg="${msg}${dstdisk}ɃRs[Ăł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 7 72 case x"$?" in x1) dialog --title "$title" \ --infobox \ 'fBXÑRs[LZ܂' 3 64 sleep 2 exit 1 ;; esac ;; esac ccnt=$(( $blklen / $cbs )) max=$(( $mbytes * (1048576 / $cbs) )) startsec=`tinydate '+%s'` rems='' # echo "v ---------------------------- v" >> $LOGFIL echo -n "copy started on " >> $LOGFIL date >> $LOGFIL echo " copy $srcdisk ($sname)" >> $LOGFIL echo " -> $dstdisk ($dname)" >> $LOGFIL echo " destination disk $dstdisk ($dname) $dstempty" >> $LOGFIL echo " copying $sbytes bytes ($mbytes Mbytes)" >> $LOGFIL echo " cbs=$cbs, ccnt=$ccnt, max=$max, obs=$obs, ocnt=$ocnt" >> $LOGFIL nerrs=0 skip=0 oseek=0 xcent=100 xmill=1000 mcent=$max mmill=$max if [ $max -gt 1048576 ]; then xcent=1 xmill=1 mcent=$(( ( $max + 99 ) / 100 )) mmill=$(( ( $max + 999 ) / 1000 )) fi # echo " xcent=$xcent, xmill=$xmill, mcent=$mcent, mmill=$mmill" >> $LOGFIL lastdisp=0 dispintv=0 while [ $skip -le $max ]; do # v cursec=`tinydate '+%s'` # o[Ot p=$(( ( $xcent * $skip ) / $mcent )) m=$(( ( $xmill * $skip ) / $mmill )) q=$(( $p / 2 )) i=0 bar='' while [ $i -lt $q ]; do bar="$bar"'#' i=$(( $i + 1 )) done while [ $i -lt 50 ]; do bar="$bar"'_' i=$(( $i + 1 )) done # c莞 elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 10 ]; then if [ $m -gt 0 ]; then remain=$(( ( 1000 - $m ) * $elapsed / $m + 1 )) if [ $remain -gt 120 ]; then rems=$(( ( $remain + 59 ) / 60 )) rems="c 悻${rems}" else rems="c 悻${remain}b" fi fi fi if [ $elapsed -gt 120 ]; then elas=$(( ( $elapsed + 30 ) / 60 )) elas="${elas}" else elas="${elapsed}b" fi # echo -n "copying $srcdisk to $dstdisk, $p % done" > $STATEFIL text="fBXN ${srcdisk} ${sname} \n" text="${text}f[^ ${dstdisk} ${dname} \n" text="${text}${cbs}oCgPʂŃRs[Ă܂B\n" text="${text} ${p}% ($skip/$max) I ^ " text="${text}${elas} o ${rems} \n\n" text="${text} 0%|${bar}|100%" text="${text}\n${errormsg}" dispintv=$(( $cursec - $lastdisp )) if [ $dispintv -ge $dispupd ]; then dialog --title "$title" --infobox "$text" 9 72 lastdisp=$cursec else echo -e '\r\c' fi case "x$progchar" in xO) progchar='.' ;; xo) progchar='O' ;; *) progchar='o' ;; esac echo -n "$progchar $status2 " case x$DEBUG in x[Yy]*) status2='now in debug mode...' errormsg='' sleep 1 ;; *) status=`dd if=/dev/$srcdisk ibs=$cbs skip=$skip conv=noerror,sync obs=$obs seek=$oseek count=$ccnt of=/dev/$dstdisk 2>&1` status2=`echo "$status" | sed -n '/transfer/p'` errormsg=`echo "$status" | sed -n -E '/records (in|out)$/!p' | sed -n '/transferred in/!p'` ;; esac # L^ case x"$skip" in x0) echo "skip: $skip, $status2" >> $LOGFIL ;; esac case x"${nerrs}"x"${errormsg}" in x[0-8]x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; x9x?*) echo "errmesg[${nerrs}]: $errormsg" >> $LOGFIL echo "Too many errors encounterd..." >> $LOGFIL nerrs=$(( $nerrs + 1 )) ;; esac # [v skip=$(( $skip + $ccnt )) oseek=$(( $oseek + $ocnt )) done sleep 2 # echo "skip: $skip, $status2" >> $LOGFIL echo "number of error messages: $nerrs" >> $LOGFIL echo -n "copy finished on " >> $LOGFIL date >> $LOGFIL echo -n "$srcdisk ($sname, $sbytes)" >> $LOGFIL echo " -> $dstdisk ($dname, $dbytes)" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL cursec=`tinydate '+%s'` elapsed=$(( $cursec - $startsec )) if [ $elapsed -gt 120 ]; then min=$(( $elapsed / 60 )) sec=$(( $elapsed - $min * 60 )) elas="${min}${sec}b" else elas="${elapsed}b" fi echo -n "$disk copied ($elapsed [s])" > $STATEFIL sh dummyread.sh dialog --title "$title" \ --msgbox "fBXÑRs[I܂ (${elas})" 5 72 # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # embr.sh -- MBR̂ݏ # # g: /bin/sh embr.sh fBXN # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh embr.sh ad0 # # 0.0: Dec. 21, 2006 by Dai ISHIJIMA (for wpout07) # 0.1: Feb. 10, 2007 (OL^ for wpout08) # 0.2: Feb. 15, 2007 (G^[L[΍) # 0.3: Sep. 12, 2007 (wpout09) # 0.4: Jan. 2, 2008 (OC) # LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" dmesg="${DMESG:-/var/run/dmesg.boot}" disk="${1:-ad0}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL #if [ ! -w /dev/$disk ]; then # echo "$0: disk '$disk' does not exist or is not writable" # echo "Usage: $0 disk" # echo "Example: $0 ad0" # exit 1 #fi title="${TITLE:-n[hfBXNc[wwipe-outx}" dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` msg="fBXN ${disk} ${dname} \n" msg="${msg}MBR (}X^Eu[gER[h; 擪ZN^)\n" msg="${msg}** ܂B\n" msg="${msg}\n" msg="${msg}MBRƁAfBXNׂ̂Ẵf[^\n" msg="${msg}ȂȂ̂悤Ɍ܂BA\n" msg="${msg}c[Ōɖ߂Ƃ”\Ȃ̂\n" msg="${msg}Rk̊댯܂BӂB\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 15 52 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="fBXN ${disk} MBR𒆎~܂?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x0) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac echo "v ---------------------------- v" >> $LOGFIL echo -n "erase MBR ($disk) started on " >> $LOGFIL date >> $LOGFIL case x$DEBUG in x[Yy]*) echo -n "now in debug mode..." echo 'debug mode' >> $LOGFIL ;; *) dd bs=512 count=1 if=/dev/zero of=/dev/$disk ;; esac sleep 3 # echo -n "erase MBR ONLY $disk ($dname) on " >> $LOGFIL date >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL sh dummyread.sh dialog --title "$title" \ --msgbox "MBȐI܂" 5 64 exit 0 # EOF #! /bin/sh # # crlf.sh -- sR[h LF (\n) CRLF (\r\n) # # 0.0: Feb. 5, 2007 by Dai ISHIJIMA # 0.1: Feb. 18, 2007 by Dai ISHIJIMA # cr=`echo -e '\r'` if sed 's/$/'"$cr"'/' ; then exit 0 else echo "crlf.sh: write failed" exit 1 fi # EOF#! /bin/sh # # floppylog.sh -- tbs[ɃOL^ # # g: /bin/sh floppylog.sh [fBXN] # fBXN: foCXt@CŎwA擪́u/dev/v͏Ȃ # : /bin/sh floppylog.sh fd0 # # 0.0: Feb. 10, 2007 by Dai ISHIJIMA (for wpout08) # 0.1: Feb. 15, 2007 (fBXNI) # 0.2: Feb. 15, 2007 (dmesg -a Ō) # 0.3: Feb. 18, 2007 (LZsbugfix) # 0.4: Feb. 20, 2007 (VFϐ) # 0.5: Feb. 21, 2007 (Ɠeʼnsɕ\) # 0.6: Feb. 23, 2007 (: Ɠeʼnsɕ\) # 0.7: Sep. 12, 2007 (wpout09) # 0.8: Oct. 6, 2007 (expr ̑ $(( )) ) # 0.9: Mar. 22, 2014 (G[O) # dmesg="${DMESG:-/var/run/dmesg.boot}" ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" disk="${1:-fd0}" resultfil=/tmp/result searchfor="fd0 da0 da0s1 da1 da1s1 da2 da2s1 da3 da3s1" header=/tmp/header.txt title="${TITLE:-n[hfBXNc[wwipe-outx}" dialog --title "$TITLE" \ --infobox "O̕ۑĂ܂" 3 64 ndevs=0 devs='' for dev in $searchfor ; do echo -e "\r \r\c" echo -n "checking $dev" if mount_msdosfs -s -o rdonly /dev/$dev /floppy > /dev/null 2>&1; then if [ -d /floppy/wipe-out ]; then devs="$devs $dev" ndevs=$(( $ndevs + 1 )) fi umount /floppy fi done case x"$ndevs" in x0) echo "no device to write log" >> $LOGFIL msg="O̕ۑ悪݂‚܂ł" dialog --title $title --msgbox "$msg" 5 64 exit 1 ;; esac taglist='' for dev in $devs ; do d=`echo $dev | sed 's/^\([a-z][a-z]*[0-9]\).*/\1/'` dname=`sed -n -E "/^${d}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` taglist="$taglist $dev '$dname'" done sh dummyread.sh eval dialog \ --title "'$title'" \ --menu "'O̕ۑIĂ'" \ 10 72 3 \ $taglist \ 2>$resultfil case "$?" in 0) disk=`cat $resultfil` msg="O ${disk} ɕۑ܂" dialog --title "$title" --infobox "$msg" 3 64 ;; 1) dialog --title "$title" \ --infobox 'O̕ۑLZ܂' 3 64 sleep 2 # 2007-02-18 exit 1 ;; esac echo -e "\r \r\c" echo -n "mounting floppy" if ! mount_msdosfs -s /dev/$disk /floppy > /dev/null 2>&1; then msg="ۑ ${disk} ݃}Egł܂ł" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo "" > $header echo -n "####################################" >> $header echo "####################################" >> $header echo -n "following messages were logged on " >> $header date >> $header echo -n "====================================" >> $header echo "====================================" >> $header # dmesg.boot echo -e "\r \r\c" echo -n "writing dmesg.boot header" if ! crlf.sh < $header >> /floppy/wipe-out/dmsgboot.txt ; then umount /floppy msg="dmesg.bootwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing dmesg.boot body" if ! crlf.sh < $dmesg >> /floppy/wipe-out/dmsgboot.txt ; then umount /floppy msg="dmesg.boot݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # wpoutlog.txt echo -e "\r \r\c" echo -n "writing wpoutlog header" if ! crlf.sh < $header >> /floppy/wipe-out/wpoutlog.txt ; then umount /floppy msg="wipe-outOwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing wpoutlog body" if ! crlf.sh < $LOGFIL >> /floppy/wipe-out/wpoutlog.txt ; then umount /floppy msg="wipe-outȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # mbrlog.txt echo -e "\r \r\c" echo -n "writing mbrlog header" if ! crlf.sh < $header >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBROwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # wperrlog.txt echo -e "\r \r\c" echo -n "writing errorlog" if ! crlf.sh < $ERRORLOG >> /floppy/wipe-out/wperrlog.txt ; then umount /floppy msg="G[Ȍ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi eraselog='No erase log found' echo -e "\r \r\c" echo -n "writing mbrlog body" for i in /tmp/erase-log.* ; do if [ -f "$i" ]; then if ! crlf.sh < $i >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRO ($i) ݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi eraselog='' fi done case x"$eraselog" in xNo*) if ! echo "$eraselog" | crlf.sh >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi esac verifylog='No verify log found' echo -e "\r \r\c" echo -n "writing verifylog body" for i in /tmp/verify-log.* ; do if [ -f "$i" ]; then if ! crlf.sh < $i >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRO ($i) ݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi verifylog='' fi done case x"$verifylog" in xNo*) if ! echo "$verifylog" | crlf.sh >> /floppy/wipe-out/mbrlog.txt ; then umount /floppy msg="MBRȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi esac # VFϐ echo -e "\r \r\c" echo -n "writing environ header" if ! crlf.sh < $header >> /floppy/wipe-out/environ.txt ; then umount /floppy msg="VFϐOwb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing environ body" if ! set | crlf.sh >> /floppy/wipe-out/environ.txt ; then umount /floppy msg="VFϐȌ݂Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi # dmesg-a echo -e "\r \r\c" echo -n "writing dmesg -a header" if ! crlf.sh < $header >> /floppy/wipe-out/dmesg-a.txt ; then umount /floppy msg="dmesg -a wb_݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "writing dmesg -a body" if ! dmesg -a | crlf.sh >> /floppy/wipe-out/dmesg-a.txt ; then umount /floppy msg="dmesg -a ݂̏Ɏs܂" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi echo -e "\r \r\c" echo -n "umounting floppy" if ! umount /floppy > /dev/null 2>&1; then msg="݌ɃfBXN ${disk} A}Egł܂ł" dialog --title "$title" --msgbox "$msg" 5 64 exit 1 fi dialog --title "$title" \ --msgbox "Ȍ݂I܂" 5 64 exit 0 # EOF #! /bin/sh # # dummyread.sh -- L[{[h͂Ă镶ǂŎ̂Ă # # 0.0: Feb. 12, 2007 by Dai ISHIJIMA (for wpout08) # while read -t 0 keyin > /dev/null 1>&2 ; do case x"$DEBUG" in xY*) echo "|$keyin|" ;; esac done exit 0 # EOF #! /bin/sh # # kon2start.sh -- JEg_E‚Aǂ̃[hɈڍs邩I # # 0.0: May 5, 2009 by Dai ISHIJIMA (as countdown.sh) # 0.1: Apr. 11, 2011 for wpout11 # 0.2: Oct. 11, 2013 (use /dev/ttyv0, wpout13) # 0.3: May 11, 2014 (comconsole -> serial console) # 0.4: Aug 3, 2015 (FreeBSD 9.3R, kon -s for single user mode) # export TTY="${TTY:-ttyv0}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" ####export TERMCAP=/etc/termcap export TERM=vt100 # for kon echo '' echo 'Starting yet another console session on VTY1 (Alt+F2)' /wipeout/shell-on /dev/ttyv1 echo -n 'You can start yet another wipe-out session with ' > /dev/ttyv1 echo '"sh /wipeout/kon2alt.sh"' > /dev/ttyv1 echo -n "Starting console session on VTY1" >> $LOGFIL date >> $LOGFIL export STATEFIL=/tmp/status.txt echo -n 'selecting console' > $STATEFIL echo 'Starting screen saver on VTY7 (Alt+F8)' /wipeout/shell-on /dev/ttyv7 /bin/sh /wipeout/scsaver.sh echo -n "Starting screen saver on VTY7" >> $LOGFIL date >> $LOGFIL echo '' prompt="waiting for device..." count=5 while [ $count -gt 0 ]; do echo -e "\r$prompt[$count] \c" read -t 1 keyin 1>/dev/null 2>&1 count=$(( $count - 1 )) done echo -e "\r$prompt[0]" echo '' echo '' echo '' echo "# select console mode" echo " 0: Start wipe-out on KON2 (Kanji on console) [default]" echo " 1: Start wipe-out on KON2 fixed for some Laptops" if [ -c /dev/cuau0 ]; then echo " c: Start wipe-out on serial console (regacy serial, uart0)" fi if [ -c /dev/cuaU0 ]; then echo " u: Start wipe-out on serial console (USB adaptor, ucom0)" fi echo " S: Start interactive shell, stay in Native console (non Japanese)" prompt="# Just press ENTER to select default mode" count=9 while [ $count -gt 0 ]; do echo -e "\r$prompt[$count] \c" if read -t 1 keyin 1>/dev/null 2>&1 ; then count=0 fi count=$(( $count - 1 )) done case x"$count" in x0) echo -e "\r$prompt[0] 0" keyin=0 ;; esac echo -n "kon2start with keyin = $keyin, " >> $LOGFIL date >> $LOGFIL export KON2MODE=NONE case x"$keyin" in xS) /bin/sh -i ;; xc) export TTY=comconsole.cuau0 dmesg > /dev/cuau0 /wipeout/shell-on /dev/cuau0 /bin/sh /wipeout/startup.sh ;; xu) export TTY=comconsole.cuaU0 dmesg > /dev/cuaU0 /wipeout/shell-on /dev/cuaU0 /bin/sh /wipeout/startup.sh ;; x0) export KON2MODE=default /usr/local/bin/kon -s -e /wipeout/startup.sh \ < /dev/ttyv0 ;; *) export KON2MODE=FIXed /usr/local/bin/kon2fixed FIX -s -e /wipeout/startup.sh \ < /dev/ttyv0 ;; esac exit 0 # EOF #! /bin/sh # # kon2alt.sh -- start kon2 on another VTY session # 0.0: Aug. 7, 2015 (v1.5) # 0.1: Nov. 23, 2016 (v1.6) # PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin:/sbin:/usr/local/bin:/wipeout:. export PATH export TERM=vt100 export TTY=`/usr.bin/tty` export TTY="${TTY:-ttyv0}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" n=`echo "$TTY" | sed 's/^.*\([0-9]\)/\1/'` n=$(( $n + 1 )) m=$(( $n + 1 )) ntty=`echo $TTY | sed 's/[0-9]$/'"$n"'/'` case x"$n" in x[0-6]) echo '' echo "Starting new console session on VTY$n (Alt+F$m)" /wipeout/shell-on $ntty echo -n 'You can start yet another wipe-out session with '> $ntty echo '"sh /wipeout/kon2alt.sh"' > $ntty echo -n "Starting console session on VTY$n" >> $LOGFIL date >> $LOGFIL ;; esac sleep 2 export KON2MODE=FIXed /usr/local/bin/kon2fixed FIX -s -e /wipeout/alt-menu.sh < $TTY # EOF #! /bin/sh # # vtsstart.sh -- JEg_E‚Aǂ̃[hɈڍs邩I # # 0.0: May 5, 2009 by Dai ISHIJIMA (as countdown.sh) # 0.1: Apr. 11, 2011 for wpout11 # 0.2: Oct. 11, 2013 (use /dev/ttyv0, wpout13) # 0.3: May 11, 2014 (comconsole -> serial console) # 0.4: Aug 3, 2015 (FreeBSD 9.3R, kon -s for single user mode) # 0.5: Jul. 26, 2016 (10.3R, vt), as vtstart.sh # export TTY="${TTY:-ttyv0}" export LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" ####export TERMCAP=/etc/termcap export TERM=vt100 # for kon echo '' echo 'Starting another console session on VTY3 (Alt+F4)' /wipeout/shell-on /dev/ttyv3 echo 'You can start another wipe-out session with "sh kon2alt.sh"' \ > /dev/ttyv3 echo -n "Starting console session on VTY3" >> $LOGFIL date >> $LOGFIL export STATEFIL=/tmp/status.txt echo -n 'selecting console' > $STATEFIL echo 'Starting screen saver on VTY7 (Alt+F8)' /wipeout/shell-on /dev/ttyv7 /bin/sh /wipeout/scsaver.sh echo -n "Starting screen saver on VTY7" >> $LOGFIL date >> $LOGFIL echo '' echo '' echo '' echo "# select console mode" echo " 0: Start wipe-out on VT console [default]" if [ -c /dev/cuau0 ]; then echo " c: Start wipe-out on serial console (regacy serial, uart0)" fi if [ -c /dev/cuaU0 ]; then echo " u: Start wipe-out on serial console (USB adaptor, ucom0)" fi echo " 2: Start interactive shell, stay in Native console (non Japanese)" prompt="# Just press ENTER to select default mode" count=9 while [ $count -gt 0 ]; do echo -e "\r$prompt[$count] \c" if read -t 1 keyin 1>/dev/null 2>&1 ; then count=0 fi count=$(( $count - 1 )) done case x"$count" in x0) echo -e "\r$prompt[0] 0" keyin=0 ;; esac echo -n "vtstart with keyin = $keyin, " >> $LOGFIL date >> $LOGFIL case x"$keyin" in x2) /bin/sh -i ;; xc) export TTY=comconsole.cuau0 dmesg > /dev/cuau0 /wipeout/shell-on /dev/cuau0 /bin/sh /wipeout/startup.sh ;; xu) export TTY=comconsole.cuaU0 dmesg > /dev/cuaU0 /wipeout/shell-on /dev/cuaU0 /bin/sh /wipeout/startup.sh ;; *) /usr.sbin/vidcontrol -f /usr/local/share/fonts/vt/paw16vt.fnt export LC_CTYPE=ja_JP.UTF-8 /bin/sh /wipeout/startup.sh ;; esac echo -n "vstart.sh finished, " >> $LOGFIL date >> $LOGFIL exit 0 # EOF #! /bin/sh # # sanitize.sh -- camcontrol sanitize Ńf[^ # # g: /bin/sh sanitize.sh fBXN # : /bin/sh sanitize da0 # # 0.0: Aug. 4, 2015 by Dai ISHIJIMA (for wpout15, FreeBSD 9.3R) # ERRORLOG="${ERRORLOG:-/tmp/wperrlog.txt}" exec 2>> $ERRORLOG echo "# start $0, $@" 1>&2 echo '# ---------------------------- #' 1>&2 # PƂł悤 LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" dispupd="${DISPUPD:-2}" echo '# ---------------------------- #' >> $LOGFIL echo -n "script $0 started on " >> $LOGFIL date >> $LOGFIL # disk="${1:-da0}" dmesg="${DMESG:-/var/run/dmesg.boot}" # resultfil=/tmp/result # title="${TITLE:-n[hfBXNc[wwipe-outx}" # if [ ! -w /dev/$disk ]; then dialog --title "$title" \ --msgbox "fBXN $disk ݂ȂA݂ł܂" \ 5 64 exit 1 fi # mount -p | sed -n -E "/^.dev.$disk/p" > $resultfil if [ -s $resultfil ]; then dialog --title "$title" \ --msgbox "}Eg̃fBXN $disk 邱Ƃ͂ł܂" \ 5 64 exit 1 fi dname=`sed -n -E "/^${disk}:.*<.*>/p" $dmesg | sed 's/.*\(<.*>\).*/\1/'` bytes=`disksize -B /dev/$disk` cap=`disksize -p /dev/$disk` msg="fBXN ${disk} ${dname} \n" msg="${msg}Sf[^ ${bytes}oCgA\n" msg="${msg}Tj^CY@\ (Sanitize Device Feature) ŏ܂B\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="ATAfoCXUSBڑ̃foCXł\n" msg="${msg}Tj^CY (SCSI Sanitize) 삵Ȃ\n" msg="${msg}IĂf[^̏sĂȂƂ܂B\n" msg="${msg}\n 낵ł?" sh dummyread.sh dialog --title "$title" --yesno "$msg" 9 64 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac msg="{${disk} ($cap) ̃f[^Tj^CYĂł?" sh dummyread.sh dialog --title "$title" \ --hline "$dname" \ --yesno "$msg" \ 5 72 case x"$?" in x1) dialog --title "$title" \ --infobox 'fBXN̏LZ܂' 3 64 sleep 2 exit 1 ;; esac dialog --title "$title" \ --infobox 'fBXNTj^CYĂ܂' 3 64 sleep 2 # Jn startstamp=`date '+%Y-%m-%d %H:%M'` # echo "v ---------------------------- v" >> $LOGFIL echo -n "sanitize started on " >> $LOGFIL date >> $LOGFIL echo "sanitize $disk ($dname) $bytes bytes" >> $LOGFIL echo "Issue the SCSI SANITIZE command:" > /tmp/sanitize.txt echo " camcontrol sanitize $disk -v -a block" >> /tmp/sanitize.txt /sbin/camcontrol sanitize $disk -v -a block -y >> /tmp/sanitize.txt 2>&1 case x"$?" in x0) status="finished" echo "Tj^CY͐I܂" > /tmp/sanitizemsg.txt ;; *) status="failed" echo "Tj^CY͓삵܂ł" > /tmp/sanitizemsg.txt ;; esac echo '' >> $LOGFIL echo '::: Sanitize (camcontrol output) :::' >> $LOGFIL cat /tmp/sanitize.txt >> $LOGFIL cat /tmp/sanitize.txt >> /tmp/sanitizemsg.txt sh dummyread.sh dialog --title 'SanitizeO' --textbox /tmp/sanitizemsg.txt 22 76 # echo -n "sanitize $status on " >> $LOGFIL date >> $LOGFIL echo "sanitize $disk ($dname, $cap)" >> $LOGFIL echo "^ ---------------------------- ^" >> $LOGFIL # I endstamp=`date '+%H:%M'` case x"$status" in xfinished) # Oۑ echo 'The contents of this storage device' > /tmp/erase-log.$disk echo "$disk ($cap) '$dname'" >> /tmp/erase-log.$disk echo -n 'were erased with ' >> /tmp/erase-log.$disk echo 'hard disk wiping tool "wipe-out."' >> /tmp/erase-log.$disk echo "Erased with 'SANITIZE'" >> /tmp/erase-log.$disk echo " $startstamp -> $endstamp" >> /tmp/erase-log.$disk echo "but NOT verified" > /tmp/verify-log.$disk ;; esac # echo '# ---------------------------- #' 1>&2 exit 0 # EOF #! /bin/sh # # alt-menu.sh -- ʃX^[gAbvXNvg ({ꉻR\[p) # # 0.0: Aug. 7, 2015 (for v15, FreeBSD 9.3R), from startup.sh, v1.0 # PATH=/usr.bin:/usr/bin:/bin:/usr.sbin:/usr/sbin: PATH="${PATH}"':'"/sbin:/usr/local/bin:/wipeout:." export PATH ##PATH=/usr/bin:/bin:/usr/sbin:/sbin:/:. ##export PATH LOGFIL="${LOGFIL:-/tmp/wpoutlog.txt}" DMESG="${DMESG:-/var/run/dmesg.boot}" export DMESG ####echo -n 'ÑVXebZ[WۑĂ܂...' ####dmesg > $DMESG echo '' # umd0vsɌsԍ𒲂ׂBΏd lin1=`sed -n '/^md0/=' $DMESG | sed -n '1p'` lin2=`sed -n '/^md0/=' $DMESG | sed -n '$p'` if [ $lin1 -ne $lin2 ]; then echo 'VXebZ[WdĂ܂B' echo 'xd؂ĂċN邱Ƃ𐄏܂B' echo '𑱍sꍇ́uexitv͂ĂB' /bin/sh -i fi echo '# ---------------------------- #' >> $LOGFIL echo -n "script startmenu2.sh started on " >> $LOGFIL date >> $LOGFIL ####export TERMCAP=/etc/termcap export TERM=kons25jx export PATTERNFIL=/tmp/pattern.dat # 2013-12-07 names of disk device node # !ata(4) -> ad (P-ATA: ad0, S-ATA: ad4, etc.) # ada(4) -> ada (SATA/PATA, FreeBSD 9.3R) # SCSI (da(4)) -> da (SCSI, CAM) # ataraid(4) -> ar # aac(4) -> aacd # amr(4) -> amrd(?) or da(?) (SCSI CAM) # arcmsr(4) -> da (SCSI CAM) # asr(4) -> da(?) (SCSI CAM) # graid3(4) -> da (SCSI CAM) # hptiop(4) -> da(?) # hptmv(4) -> da(?) # hptrr(4) -> da(?) # ida(4) -> idad(?), da(?) # iir(4) -> da(?) # ips(4) -> ipsd(?), da(?) # mfi(4) -> mfid # mlx(4) -> mlxd(?), da(?) # mly(4) -> da(?) # twa(4) -> da(?) # twe(4) -> da(?) export DEVICES='da|ada|ar|aacd|amrd|idad|ipsd|mfid|mlxd|twed' # x32MoCg BLKLEN=$(( 32 * 1024 * 1024 )) export BLKLEN # o̓ubN1MoCg OBS=$(( 1024 * 1024 )) export OBS # ̓ubN (stuff̏o͒) 1koCg IBS=1024 export IBS # mF10MoCg VBLKLEN=$(( 10 * 1024 * 1024 )) export VBLKLEN # mF̓̓ubN1MoCg VBS=$(( 1024 * 1024 )) export VBS # Rs[512oCg CBS=512 export CBS echo '' # debugging case x"$DEBUG" in x[Yy]*) for i in 1 2 3 ; do echo -n '.' sleep 1 done echo '' ;; esac cd /wipeout ####stuff -g > $PATTERNFIL echo "random pattern file $PATTERNFIL generated" >> $LOGFIL if ! /bin/sh mainmenu.sh ; then exit 1 fi # Ƃ肠ΘbVF𓮂Ă :-) /bin/sh -i exit 0 # EOF #! /bin/sh # # scsaver.sh -- XN[Z[o[ # # 0.0: Nov. 8, 2015 by Dai ISHIJIMA (for wpout15) # STATEFIL="${STATEFIL:-/tmp/status.txt}" xpos=0 ypos=0 xmov=13 ymov=19 xmax=40 ymax=23 while true ; do npid=`sh -c 'echo "$$"'` xpos=$(( ( $xpos + $xmov + $npid ) % xmax )) ypos=$(( ( $ypos + $ymov + $npid ) % ymax )) # clear screen echo -e '\e[H\e[J\c' # move cursor echo -e '\e['"$ypos"';'"$xpos"'H\c' echo -n 'Alt+F1 to main screen' ypos=$(( $ypos + 1 )) echo -e '\e['"$ypos"';'"$xpos"'H\c' cat $STATEFIL sleep 3 done n[hfBXNc[uwipe-outvo[W 1.6 Copyright (C) 2016 by ܁ Ẽc[́AIy[eBOVXeɁuFreeBSDv𗘗pĂ܂B Ẽc[́A{R\[ukon2v𗘗pĂ܂B Ẽc[́A{tHgɁuςtHgv𗘗pĂ܂B Ej[\ɂ́AuFreeBSDv́udialog(1)vR}h𗘗pĂ܂B ȊOɂuFreeBSDvɕte\tgEFA𗘗pĂ܂B Ẽc[́AFreeBSD/i386삷Rs[^ŗpł܂B Ẽc[Ńf[^łn[hfBXNiXg[WfoCXj ̂ƂłB EFreeBSD 10.3R̃CXg[pJ[lň̂̂A ȉ̏𖞂 EJ[lɃfoCXhCogݍ܂ĂC^[tFCX ɐڑꂽn[hfBXNiXg[WfoCXj EATAfBXNRg[hCo ada(4) ň EʓIATA/IDEC^[tFCX̃n[hfBXN ESCSI_CNgANZXfoCXhCo da(4) ň EʓISCSIC^[tFCX̃n[hfBXN ESCSIRg[ɐڑꂽMOiCfBXNj ZN^TCY512oCĝ EFreeBSDňRAIDRg[iasr(4) Ȃǁj ڑꂽn[hfBXN EUSBJ[hA_v^ɐڑ etbVJ[hAUSBtbVȂǂ USBeʃXg[W Ê悤ȃXg[WfoCXɂ͑ΉĂ܂ EFreeBSD 10.3R̃CXg[pJ[lňȂ̂ u[gɐFłȂXg[WfoCX EFreeBSDňȂC^[tFCXɐڑꂽfBXN Eada(4) da(4) foCXhCoňȂ Ẽc[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B n[hfBXNc[uwipe-outv version 1.6 ` ȒPŃn[hfBXÑf[^ ` Copyright (C) 2016 by Dai ISHIJIMA ͂߂ p\Ȑn⏈ɁAn[hfBXÑf[^ꂸ cĂ邱ƂŁAlƏȂǂRk邱Ƃ ƂȂĂ܂B ́un[hfBXNc[wwipe-outxvgƁAȒPɁA ˆSɁAn[hfBXNɋL^Ăf[^邱Ƃ ł܂B̃c[́An[hfBXNɃf[^㏑邱Ƃ āAL^Ăf[^܂B CD̒g CD̓u[^uCDłBp\RCDDVDhCuN 悤ɐݒ肵ACDNƁAuwipe-outv܂B fBXÑf[^ CDu[gƁÂ悤ȃj[ʂ\܂B n[hfBXN̖Oe (̗ł́u/dev/ad0 vu4,294,967,296 oCg (4.0G)v) ́Aۂɂg̃n[h fBXN̏񂪕\܂B +---------------- n[hfBXNc[wwipe-outx ----------------+ | Cj[ | | ݑI𒆂̃fBXN /dev/ad0 łB | | fBXN̗eʂ 4,294,967,296 oCg (4.0G) łB | | ȉ̃j[珈IĂB | | | | +------------------------------------------------------------------+ | | | z 0㏑āÃfBXÑf[^ | | | | h @̊Tv\ | | | | n ㏑āÃfBXÑf[^Oɏ | | | | m Ȍ㏑@I | | | | v f[^ꂽmF (^ꕔ`FbN) | | | | V f[^ꂽmF (ʏ^S`FbN) | | | | w OfBXNɏ | | | | L L^tbs[ɏo | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ŁAn[hfBXN̖OeʂAf[^n[h fBXN̂̂ł邩ǂmFĂB̃n[hfBX Ñf[^ꍇ́Au0㏑āÃfBXÑf[ ^vnCCgĂԂŃG^[L[Ă (ȉȂuIvƏ̂܂)B ̃j[Łu0㏑āÃfBXÑf[^v IƁÂ悤ɊmFbZ[W\܂B fBXN ad0 Sf[^ 4,294,967,296 oCgA 0ŏ㏑ď܂B 낵ł? [ Yes ] No f[^ꍇ́AŁuYesvIĂBuYesv IƁAɂ‚Aȉ̊mFbZ[W\܂B {ad0 (4.0G) ̃f[^Ăł? [ Yes ] No f[^ꍇ́AēxuYesvIĂBuNov Iƍŏ̃j[ɖ߂܂BuYesvIƃf[^ ̏n܂܂B f[^̏́Â悤ɐi󋵂\܂B fBXN ad1 ̃f[^Ă܂B 25% (1024/4096) I ^ 21b o c 悻128b 0%|############______________________________________|100% ʂ̍ʼnsɂ́Â悤ɏݑx\܂B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) f[^̏ɗv鎞Ԃ́Ag̃n[hfBXN̗eʂp\ RɂĈقȂ܂Bn[hfBXN̗eʂAp\R x΁Aɗv鎞Ԃ͒ZȂ܂B f[^̏IƁA fBXÑf[^I܂ (230b) [OK] ƂbZ[W\܂BŁAG^[L[ƁA ̃j[ɖ߂܂B @ɂ‚ Cj[u@̊Tv\vIƁA Pȑ@̐\܂B ȊȎɂ‚ Cj[ŏ㉺J[\L[ƁAʂ̍ڂnCCg 邱Ƃł܂BCj[ɂ8‚̑I\ ܂񂪁A㉺J[\L[ƃXN[ɂAe푀상 j[\܂Bun[hfBXNc[wwipe-outxv ́Af[^ȊOɂAĂ邩ǂ̊mFAL^ ݁An[hfBXÑRs[AVF̋NAċNAVbg _EȂǂ̑상j[pӂĂ܂BȉɃCj[ Ił鑀̈ꗗ܂B E0㏑āÃfBXÑf[^ E@̊Tv\ E㏑āÃfBXÑf[^Oɏ EȌ㏑@I Ef[^ꂽmFi^ꕔ`FbNj Ef[^ꂽmFiʏ^S`FbNj EOfBXNɏ EL^tbs[ɏo Eʂ̃fBXNI EfBXÑf[^\ Ef[^\ZN^̎w Euwwipe-outxɂ‚āv EÑVXebZ[WmF EfBXNRs[i^obNAbvj EfBXNRs[iᑬ^f[^Tx[Wj E1㏑āÃfBXÑf[^ E_p^[㏑āÃfBXÑf[^ Ep^[̕␔㏑āÃfBXÑf[^ E_f[^㏑āÃfBXÑf[^ EL^\ EfBXN̎Ȑff (SMART) \ EVFishjN EVFicshjN ECD-ROMmount ECD-ROMumount EMBR *̂* EVbg_E EċN Ή@ɂ‚ E{c[́AFreeBSD/i386삷Rs[^ŗpł܂B E{c[Ńf[^łXg[WfoCX͎̂ƂłB EFreeBSD̃J[l (CXg[pCD̃J[l) ň ̂̂Aȉ̏𖞂 EATAfBXNRg[hCo (ada(4)) ň EʓIS-ATA/P-ATAC^[tFCX̃n[hfBXN EASSDhCu ESCSI_CNgANZXfoCXhCo (da(4)) ň EʓISCSIC^[tFCX̃n[hfBXN EFreeBSDňRAIDRg[ (asr(4)) Ȃǂɐڑ ꂽn[hfBXN EUSBJ[hA_v^ɐڑe탁J[hA USBtbVȂǂUSBeʃXg[W ada(4), da(4), asr(4) Ȃǂ̏ڍׂɂ‚ẮAFreeBSD̃}jA y[WȂǂB ̋L^̕ۑɂ‚ un[hfBXNc[wwipe-outxvł́A̋L^ۑ 邱Ƃł܂Bۑ”\ȃfBA̓tbs[fBXNUSB ȂǂłB̋L^ۑ郁fBA (tbs[USB ) ́A炩FATtH[}bgsAuWIPE-OUTvƂ ÕtH_[gfBNgɍ쐬ĂĂB Ƃ E{c[́AOSƂFreeBSD𗘗pĂ܂B E{c[̓t[EFAłB쌠́A҂ł ܁ ۗLĂ܂B E{c[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B Ql EВc@l dqZpYƋ (http://www.jeita.or.jp/japanese/index.htm) up\R̔pEnɂn[hfBXÑf[^ Ɋւ闯ӎv(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) {c[̓@ {c[юoíA҂̃EFuTCgŌJĂ܂BA hX http://hp.vector.co.jp/authors/VA004814/ łBKvɉ ă_E[hĂB n[hfBXNc[uwipe-outvv1.6 Copyright (C) 2016 by Dai ISHIJIMA AȂ̃t@Cuwipe-outvN}V Cj[猩邱ƂłƂ΁A]vȐ͕sv ܂B yCj[ł̑z Cj[ʂ̑̊{́A E㉺J[\L[ɂsڂI EG^[L[ɂIڂs łBIĂ鍀ڂ̓nCCg\Ă܂Buwipe- outvŃAu0㏑ācvnCCg\Ă ͂łB Cj[炱̉ʂ\ɂ́AJ[\L[ 񂾂AG^[L[܂Bʂɕ\Ȃ ́A㉺J[\L[xƁAXN[óà ܂B Ƃ΁ACj[ɂ́uċNvƂڂ ܂A͈ԉɉBĂ܂B\ɂ́Ax J[\L[Ă݂ĂB XN[ďɏĂڂ\ɂ́AJ[ \L[ĂB yfBXNɋL^ꂽɂ́z u0㏑ācv̂悤ȁAucvCj[ IAG^[L[ĂB uvsƁAmFʂ\܂B̂ƂA fBXŇ^ԂeʂȂǂ\̂ŁAfBXN 邩ǂmFĂB\ĂemF G^[L[ĂB ŏ̊mFʂŃG^[L[Aēx‚mF ʂłĂ܂B{ɏĂ悢ꍇɂ̂݃G^[L[ ĂB ڂ̊mFʂŃG^[L[Ən܂܂B AfBXN̏ɂ͐琔Ԓx̎Ԃ܂B ͂܂Ă΂炭ƁAc菊vԂ̗\l\ ܂B IAɂԂ\܂B G^[L[ƁACj[ɖ߂܂B ȂAuŏI邱Ƃ͂蓾Ȃ͂łB̏ ́A{\tguwipe-outṽoO܂Buf[^ ꂽmFvIŖ{ɏmFĂB yL^ۑɂ́z {\tguwipe-outv̋Ɗꂽꍇ́A Cj[uL^tbs[ɏovIł Bj[ɏĂƂAL^tbs[ L^ł܂B L^ۑ邱Ƃł̂́Atbs[ł͂ ܂BUSBȂǂ̃fBApł܂BȂA L^ۑtbs[iUSBjɂ́A炩 u\WIPE-OUT\vƂtH_쐬ĂĂB yCj[ɖ߂ɂ́z ̉ʂ‚ăCj[ɖ߂ɂ́AG^[L[ ĂB n[hfBXNc[uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA # termcap for wipeout # original copyright notice follows... # ------------------------------------------------------------ # # Copyright (c) 1980, 1985, 1989, 1993 # The Regents of the University of California. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the University of # California, Berkeley and its contributors. # 4. Neither the name of the University nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#)termcap.src 8.2 (Berkeley) 11/17/93 # $FreeBSD: releng/9.3/share/termcap/termcap.src 267911 2014-06-26 11:02:51Z gavin $ # Termcap source file # John Kunze, Berkeley # Craig Leres, Berkeley # # Please submit changes via https://bugs.freebsd.org/submit/ # # ------------------------------------------------------------ # # # ------------------------------------------------------------ # # for syscons # common entry without semigraphics cons25w|ansiw|ansi80x25-raw:\ :am:bs:NP:ms:pt:AX:eo:bw:ut:km:\ :co#80:li#25:pa#64:Co#8:it#8:\ :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\ :dc=\E[P:dl=\E[M:do=\E[B:bt=\E[Z:ho=\E[H:ic=\E[@:cb=\E[1K:\ :nd=\E[C:rs=\Ec:so=\E[7m:se=\E[27m:up=\E[A:cr=^M:ta=^I:\ :AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m:sc=\E7:rc=\E8:\ :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:\ :k9=\E[U:k;=\E[V:F1=\E[W:F2=\E[X:K2=\E[E:nw=\E[E:ec=\E[%dX:\ :kb=^H:kh=\E[H:ku=\E[A:kd=\E[B:kl=\E[D:kr=\E[C:le=^H:sf=\E[S:sr=\E[T:\ :kN=\E[G:kP=\E[I:@7=\E[F:kI=\E[L:kD=\177:kB=\E[Z:\ :IC=\E[%d@:DC=\E[%dP:SF=\E[%dS:SR=\E[%dT:AL=\E[%dL:DL=\E[%dM:\ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:cv=\E[%i%dd:ch=\E[%i%d`:\ :mb=\E[5m:md=\E[1m:mr=\E[7m:me=\E[m:bl=^G:\ :ve=\E[=S:vi=\E[=1S:vs=\E[=2S: # CP437 FreeBSD console with ACS support cons25|ansis|ansi80x25:\ :ac=l\332m\300k\277j\331u\264t\303v\301w\302q\304x\263n\305`^Da\260f\370g\361~\371.^Y-^Xh\261i^U0\333y\363z\362:\ :tc=cons25w: # ------------------------------------------------------------ # xterm|X11 terminal emulator:\ :tc=xterm-new: # ------------------------------------------------------------ # xterm-new|modern xterm:\ :@7=\EOF:@8=\EOM:F1=\E[23~:F2=\E[24~:K2=\EOE:Km=\E[M:\ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\ :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kI=\E[2~:\ :kN=\E[6~:kP=\E[5~:kd=\EOB:kh=\EOH:kl=\EOD:kr=\EOC:ku=\EOA:\ :tc=xterm-basic: # # This chunk is used for building the VT220/Sun/PC keyboard variants. xterm-basic|modern xterm common:\ :am:bs:km:mi:ms:ut:xn:AX:\ :Co#8:co#80:kn#12:li#24:pa#64:\ :AB=\E[4%dm:AF=\E[3%dm:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:\ :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\ :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:\ :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E[!p\E[?3;4l\E[4l\E>:\ :kD=\E[3~:kb=^H:ke=\E[?1l\E>:ks=\E[?1h\E=:kB=\E[Z:le=^H:md=\E[1m:\ :me=\E[m:ml=\El:mr=\E[7m:mu=\Em:nd=\E[C:op=\E[39;49m:\ :rc=\E8:rs=\E[!p\E[?3;4l\E[4l\E>:sc=\E7:se=\E[27m:sf=^J:\ :so=\E[7m:sr=\EM:st=\EH:\ :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: # ------------------------------------------------------------ # vt100|dec-vt100|vt100-am|vt100am|dec vt100:\ :do=2\E[B:co#80:li#24:cl=50\E[H\E[J:sf=2*\ED:\ :le=^H:bs:am:cm=5\E[%i%d;%dH:nd=2\E[C:up=2\E[A:\ :ce=3\E[K:cd=50\E[J:so=2\E[7m:se=2\E[m:us=2\E[4m:ue=2\E[m:\ :md=2\E[1m:mr=2\E[7m:mb=2\E[5m:me=2\E[m:\ :is=\E>\E[?1;3;4;5l\E[?7;8h\E[1;24r\E[24;1H:\ :if=/usr/share/tabset/vt100:nw=2\EE:ho=\E[H:\ :as=2\E(0:ae=2\E(B:\ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||:\ :rs=\E>\E[?1;3;4;5l\E[?7;8h:ks=\E[?1h\E=:ke=\E[?1l\E>:\ :ku=\EOA:kd=\EOB:kr=\EOC:kl=\EOD:kb=\177:\ :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOt:\ :k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:@8=\EOM:\ :K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:pt:sr=2*\EM:xn:\ :sc=2\E7:rc=2\E8:cs=5\E[%i%d;%dr:UP=2\E[%dA:DO=2\E[%dB:RI=2\E[%dC:\ :LE=2\E[%dD:ct=2\E[3g:st=2\EH:ta=^I:ms:bl=^G:cr=^M:eo:it#8:\ :RA=\E[?7l:SA=\E[?7h:po=\E[5i:pf=\E[4i: tvi925|925|televideo model 925:\ :hs:xn:am:bs:co#80:li#24:cm=\E=%+ %+ :cl=\E*:cd=\Ey:ce=\Et:is=\El\E":\ :al=\EE:dl=\ER:ic=\EQ:dc=\EW:if=/usr/share/tabset/stdcrt:\ :ho=^^:nd=^L:bt=\EI:pt:so=\EG4:se=\EG0:sg#1:us=\EG8:ue=\EG0:ug#1:\ :up=^K:do=^V:kb=^H:ku=^K:kd=^V:kl=^H:kr=^L:kh=^^:ma=^V^J^L :\ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\ :k8=^AG\r:k9=^AH\r:k0=^AI\r:ko=ic,dc,al,dl,cl,ce,cd,bt:\ :ts=\Ef:fs=^M\Eg:ds=\Eh:sr=\Ej: # ------------------------------------------------------------ # vt100-color|vt100-co|vt100 emulator with ANSI colors:\ :pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m\E[m:tc=vt100: # ------------------------------------------------------------ # kons25jx|kon3jx|jkons3jx|kons24-jis1983-j:as@:ae@:ac@:tc=vt100-color # ------------------------------------------------------------ # /* * disksize -- fBXÑWIg擾 * * revision history * diskinfo: * 0.0: Sep. 6, 2002 by Dai ISHIJIMA (Ƃ肠o[W) * 0.1: Oct. 21, 2002 * 0.2: Apr. 28, 2004 * 0.3: May 1, 2004 * 0.4: May 30, 2004 * 0.5: Jun. 19, 2004 * 0.6: Aug. 5, 2006 (ƏC) * 0.7: Aug. 12, 2006 (L̉P) * disksize: * 0.9: Sep. 12, 2007 (exit(3)̐錾, p[^擾@ύX) * 1.0: Oct. 2, 2007 (MoCgPʂł̕\) * * Ql: * fdisk(8) ̃\[X (/usr/src/sbin/i386/fdisk/fdisk.c) * wpout09ȍ~ (/usr/src/sbin/fdisk/fdisk.c), diskinfo(8) */ #include #include #include #include #include #define SHOW_CYLS 1 #define SHOW_HEAD 2 #define SHOW_SECS 4 #define SHOW_BYTES 8 #define SHOW_BYTES_WITH_UNITS 16 #define SHOW_BLOCKS 32 #define SHOW_BYTES_WITH_COMMA 64 #define SHOW_MEGABYTES 128 #define shift --argc; ++argv #define DFLT_DISK "/dev/ad0" #define EOS '\0' #define NEWLINE '\n' #ifndef BUFSIZ #define BUFSIZ 512 #endif #define MEGABYTES (1024 * 1024) /* l𕶎ɕϊ */ char *num2str(long long d, char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* l𕶎ɕϊ */ char *num2commastr(long long d, char *s) { int p; int q; int n; int ch; p = 0; n = 0; do { if ((n > 0) && ((n % 3) == 0)) { s[p] = ','; ++p; } s[p] = '0' + (d % 10); ++p; ++n; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } int main(int argc, char *argv[]) { char *disk; char s[BUFSIZ]; int show; int fd; off_t mediasize, blocks; unsigned long secsiz, nsecs, nhead, ncyls; unsigned char units[] = { 'k', 'M', 'G', 'T', EOS }; int p; off_t m; int fraction; show = 0; shift; while ((argc > 0) && (argv[0][0] == '-')) { if (argv[0][1] == 'c') { show |= SHOW_CYLS; } else if (argv[0][1] == 'h') { show |= SHOW_HEAD; } else if (argv[0][1] == 's') { show |= SHOW_SECS; } else if (argv[0][1] == 'b') { show |= SHOW_BYTES; } else if (argv[0][1] == 'm') { /* MoCgPʂ */ show |= SHOW_MEGABYTES; } else if (argv[0][1] == 'B') { /* oCgR}؂ */ show |= SHOW_BYTES_WITH_COMMA; } else if (argv[0][1] == 'p') { /* KɒPʕtBk, M, G, etc. */ show |= SHOW_BYTES_WITH_UNITS; } else if (argv[0][1] == 'l') { show |= SHOW_BLOCKS; } else { myputs(STDERR_FILENO, "Usage: diskinfo [-chsbBpl] [device]\n"); exit(1); } shift; } if (show == 0) { show = SHOW_CYLS | SHOW_HEAD | SHOW_SECS; } if (argc > 0) { disk = *argv; } else { disk = DFLT_DISK; } if ((fd = open(disk, O_RDONLY)) < 0) { myputs(STDERR_FILENO, "diskinfo: unable to open disk "); myputs(STDERR_FILENO, disk); putch(STDERR_FILENO, NEWLINE); exit(1); } /* FreeBSD 5.1ȍ~炢Łuioctl(fd, DIOCGDINFO, &disklabel)v*/ /* gȂȂ? */ if (ioctl(fd, DIOCGSECTORSIZE, &secsiz) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get sectorsize\n"); exit(1); } if (ioctl(fd, DIOCGMEDIASIZE, &mediasize) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get mediasize\n"); exit(1); } if (ioctl(fd, DIOCGFWSECTORS, &nsecs) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get number of sectors\n"); exit(1); } if (ioctl(fd, DIOCGFWHEADS, &nhead) != 0) { myputs(STDERR_FILENO, "diskinfo: can't get number of heads\n"); exit(1); } blocks = mediasize / secsiz; ncyls = mediasize / (secsiz * nhead * nsecs); if (show & SHOW_BLOCKS) { num2str(blocks, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_BYTES) { num2str(mediasize, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_MEGABYTES) { num2str((mediasize + MEGABYTES - 1) / MEGABYTES, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_BYTES_WITH_COMMA) { num2commastr(mediasize, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_BYTES_WITH_UNITS) { m = mediasize / 1024; p = 0; fraction = 0; while ((m > 1000) && (units[p] != EOS)) { fraction = ((m * 10) / 1024) % 10; m /= 1024; ++p; } num2str(m, s); myputs(STDOUT_FILENO, s); if (m < 10) { putch(STDOUT_FILENO, '.'); num2str(fraction, s); myputs(STDOUT_FILENO, s); } putch(STDOUT_FILENO, units[p]); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_CYLS) { num2str(ncyls, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_HEAD) { num2str(nhead, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } if (show & SHOW_SECS) { num2str(nsecs, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -o disksize disksize.c" */ /* End: */ /* * stuff -- n[hfBXN̂߂̋lߕf[^쐬 * * revision history: * 0.0: Apr. 30, 2004 by Dai ISHIJIMA * 0.1: May 1, 2004 * 0.2: Jun. 28, 2006 (_p^[Ƃ̕␔) */ #include #include #include #include #include #define BSIZ 1024 #define STDIN 0 #define STDOUT 1 #define STDERR 2 #define NEWLINE '\n' #define ZERO 'z' #define FILL 'f' #define RAND 'r' #define GENERATE 'g' #define PATTERN 'p' #define INVERT 'q' #define shift --argc; ++argv #define swap(t,a,b) {t _swap_tmp; _swap_tmp=(a); a=b; b=_swap_tmp;} /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } /* Ńf[^܂ */ void stair(int len, unsigned char *buf) { int i, n; for (i = 0; i < len; i++) { n = random() & (len - 1); /* len 2^n Ɖ */ swap(unsigned char, buf[i], buf[n]); } } /* ݗpf[^̏ */ void init(int len, unsigned char *buf, int mode) { int i; if (mode == ZERO) { for (i = 0; i < len; i++) { buf[i] = 0; } } else if (mode == FILL) { for (i = 0; i < len; i++) { buf[i] = 0xff; } } else if ((mode == RAND) || (mode == GENERATE)) { srandom(time(NULL)); for (i = 0; i < len; i++) { buf[i] = i; } stair(len, buf); } else if (mode == PATTERN) { read(STDIN, buf, BSIZ); } else if (mode == INVERT) { read(STDIN, buf, BSIZ); for (i = 0; i < len; i++) { buf[i] = ~buf[i]; } } else { /* ɂ͗Ȃ͂ */ myputs(STDERR, "stuff: unknown mode: "); putch(STDERR, mode); putch(STDERR, NEWLINE); exit(1); } } /* R}hCwɊÂāA0, 1, _f[^o */ int main(int argc, char *argv[]) { int mode; unsigned char buf[BSIZ]; mode = ZERO; shift; while ((argc > 0) && (argv[0][0] == '-')) { if ((argv[0][1] == '0') || (argv[0][1] == 'z')) { /* 0 o */ mode = ZERO; } else if ((argv[0][1] == '1') || (argv[0][1] == 'f')) { /* 1 o */ mode = FILL; } else if ((argv[0][1] == 'R') || (argv[0][1] == 'r')) { /* _f[^o */ mode = RAND; } else if ((argv[0][1] == 'G') || (argv[0][1] == 'g')) { /* _p^[𐶐 */ mode = GENERATE; } else if ((argv[0][1] == 'P') || (argv[0][1] == 'p')) { /* p^[JԂo */ mode = PATTERN; } else if ((argv[0][1] == 'Q') || (argv[0][1] == 'q')) { /* p^[̕␔JԂo */ mode = INVERT; } else { myputs(STDERR, "Usage: stuff [-[01Rzfrgpq]]\n"); exit(1); } shift; } if (argc > 0) { myputs(STDERR, "Usage: stuff [-[01Rzfrgpq]]\n"); exit(1); } init(BSIZ, buf, mode); if (mode == GENERATE) { write(STDOUT, buf, BSIZ); } else { for (;;) { if (mode == RAND) { stair(BSIZ, buf); } write(STDOUT, buf, BSIZ); } } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o stuff stuff.c" */ /* End: */ /* * tinydate.c * */ #include #include #include #include #define USE_CTIME #define EOS '\0' #define NEWLINE '\n' #ifndef BUFSIZ #define BUFSIZ 512 #endif /* l𕶎ɕϊ */ char *num2str(long long d, char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } int main(int argc, char *argv[]) { char s[BUFSIZ]; time_t t; #ifdef USE_LOCALTIME struct tm *lt; #endif if ((argc > 1) && (argv[1][0] == '-')) { #ifdef USE_CTIME t = time(NULL); myputs(STDOUT_FILENO, ctime(&t)); #endif #ifdef USE_LOCALTIME t = time(NULL); lt = localtime(&t); num2str(lt->tm_year + 1900, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, '-'); num2str(lt->tm_mon + 1, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, '-'); num2str(lt->tm_mday, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ' '); num2str(lt->tm_hour, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ':'); num2str(lt->tm_min, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ':'); num2str(lt->tm_sec, s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, ':'); #endif } else { num2str(time(NULL), s); myputs(STDOUT_FILENO, s); putch(STDOUT_FILENO, NEWLINE); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o tinydate tinydate.c" */ /* End: */ /* * tinydump -- 512oCg16i_v * * revision history: * 0.0: Jul. 7, 2005 by Dai ISHIJIMA * 0.1: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) * 0.2: Apr. 18, 2009 (for wpout09, FreeBSD 7.1R, unsigned char) */ #include #include #include #include #include #define EOS '\0' #define BLKSIZ 512 #define NCOLS 16 /* l𕶎ɕϊ */ unsigned char *num2str(long long d, unsigned char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* l𕶎ɕϊ */ unsigned char *num2hex(long long d, int cols, unsigned char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 16); if (s[p] > '9') { s[p] += ('a' - '9' - 1); } ++p; d /= 16; } while (d > 0); while (p < cols) { s[p] = '0'; ++p; } s[p] = EOS; /* Ђ肩 */ for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, unsigned char *s) { while (*s) { putch(fd, *s); ++s; } } int main() { unsigned char s[BLKSIZ]; unsigned char t[BLKSIZ]; int i, j; read(STDIN_FILENO, s, BLKSIZ); for (i = 0; i < BLKSIZ; i += NCOLS) { num2hex(i, 3, t); myputs(STDOUT_FILENO, t); myputs(STDOUT_FILENO, " "); for (j = 0; j < NCOLS; j++) { if (j == NCOLS / 2) { putch(STDOUT_FILENO, ' '); } num2hex(s[i + j], 2, t); myputs(STDOUT_FILENO, t); putch(STDOUT_FILENO, ' '); } myputs(STDOUT_FILENO, " "); for (j = 0; j < NCOLS; j++) { if ((0x20 < s[i + j]) && (s[i + j] < 0x7f)) { putch(STDOUT_FILENO, s[i + j]); } else { putch(STDOUT_FILENO, '.'); } } putch(STDOUT_FILENO, '\n'); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o tinydump tinydump.c" */ /* End: */ /* * check -- f[^Ă邩ׂ * * revision history: * 0.0: Oct. 26, 2001 by Dai ISHIJIMA * 0.1: May 1, 2004 * 0.2: Jul. 7, 2005 * 0.3: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) */ #include #include #include #include #include #define YES 1 #define NO 0 #define EOS '\0' #ifndef BUFSIZ #define BUFSIZ 512 #endif #define ERROR 5 #define OK 0 #define ONE 1 #define NONZERO 2 #define shift --argc; ++argv /* l𕶎ɕϊ */ char *num2str(long long d, char *s) { int p; int q; int ch; p = 0; do { s[p] = '0' + (d % 10); ++p; d /= 10; } while (d > 0); s[p] = EOS; for (q = 0; q < p / 2; q++) { ch = s[q]; s[q] = s[p - q - 1]; s[p - q - 1] = ch; } return(s); } /* ꕶo */ void putch(int fd, unsigned char ch) { write(fd, &ch, 1); } /* o */ void myputs(int fd, char *s) { while (*s) { putch(fd, *s); ++s; } } int main(int argc, char *argv[]) { char s[BUFSIZ]; unsigned char buf[BUFSIZ]; unsigned char last; int n; int i, j; int verbose = YES; shift; while ((argc > 0) && (argv[0][0] == '-')) { if (argv[0][1] == 'v') { verbose = YES; } else if (argv[0][1] == 's') { verbose = NO; } else { myputs(STDERR_FILENO, "Usage: check [-v|-s]\n"); exit(1); } shift; } last = 0; i = 0; while ((n = read(STDIN_FILENO, buf, BUFSIZ)) > 0) { if ((i > 0) && (last != buf[0])) { if (verbose) { myputs(STDOUT_FILENO, "not erased at "); num2str(i, s); myputs(STDOUT_FILENO, s); myputs(STDOUT_FILENO, "\n"); } exit(ERROR); } ++i; for (j = 1; j < n; j++) { if (buf[j] != buf[j - 1]) { if (verbose) { myputs(STDOUT_FILENO, "not erased at "); num2str(i, s); myputs(STDOUT_FILENO, s); myputs(STDOUT_FILENO, "\n"); } exit(ERROR); } ++i; } last = buf[n - 1]; } if (verbose) { num2str(i, s); myputs(STDOUT_FILENO, s); } if (last == 0x00ff) { if (verbose) { myputs(STDOUT_FILENO, " bytes erased with 1\n"); } exit(ONE); } if (last != 0) { if (verbose) { myputs(STDOUT_FILENO, " bytes may be erased, but not zero\n"); } exit(NONZERO); } if (verbose) { myputs(STDOUT_FILENO, " bytes erased with 0\n"); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -static -o check check.c" */ /* End: */ /* * makembr -- O𖄂߂MBR𐶐 * * revision history: * 0.0: Aug. 1, 2006 by Dai ISHIJIMA (for wpout07) * 0.1: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) */ #include #include #include #include #define STDIN 0 #define STDOUT 1 #define STDERR 2 #ifndef EOF #define EOF -1 #endif #define NEWLINE '\n' #define CRET '\r' #define MBRSIZ 512 #define MESGLEN 398 #define TBLOFF 0x01be #define MESG (TBLOFF - MESGLEN) #define MAXLINE 50 /* ꕶ */ int getch(int fd) { unsigned char ch; if (read(fd, &ch, 1) <= 0) { return(EOF); } return(ch); } int main() { unsigned char mbrbuf[MBRSIZ]; int ch; int len; int pos; /* Ƃ肠512oCgǂ */ read(STDIN, mbrbuf, MBRSIZ); /* ̎炪ރO */ len = 0; pos = 0; while ((len < MESGLEN) && ((ch = getch(STDIN)) != EOF)) { if (ch == NEWLINE) { mbrbuf[MESG + len] = CRET; ++len; mbrbuf[MESG + len] = NEWLINE; ++len; pos = 0; } else if (pos < MAXLINE) { mbrbuf[MESG + len] = ch; ++len; ++pos; } else if (pos == MAXLINE) { mbrbuf[MESG + len] = '.'; ++len; ++pos; mbrbuf[MESG + len] = '.'; ++len; ++pos; mbrbuf[MESG + len] = '.'; ++len; ++pos; } } if (len < MESGLEN) { mbrbuf[MESG + len] = 0; } write(STDOUT, mbrbuf, MBRSIZ); exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -O -s -static -o makembr makembr.c" */ /* End: */ # # wpout-mbr -- n[hfBXNL^\ # ## 0.0: Jul. 24, 2006 by Dai ISHIJIMA (for wpout07) ## 0.1: Sep. 12, 2007 (for wpout09, FreeBSD 6.2R) # # 16rbgpR[h𐶐 .code16 .arch i8086 .set START, 0x0000 .set LOAD, 0x7c00 # vO[hꏊ .set TBLOFF, 0x01be # p[eBVe[u .set BOOTMAGIC, 0xAA55 # u[gZN^}WbNio[ .set MESGLEN, 398 # ێ郁bZ[W̒ .set PARTBL, START + TBLOFF .set MESG, START + TBLOFF - MESGLEN .set MESGADDR, LOAD + TBLOFF - MESGLEN .set VIDEOBIOS, 0x10 # rfIBIOS (INT 10H) .set PUTCHAR, 0x0e # (e^Cv) o .set VIDEOATTR, 7 # rfIBIOSɓnAgr[gp[^ .set KEYBIOS, 0x16 # L[{[hBIOS .set GETCHAR, 0x00 # ꕶ .set RETKEY, 0x0d # G^[L[ .globl start start: # Ƃ肠荞݂֎~ cli # X^bN 0000:7c00 ɐݒ xorw %ax, %ax movw %ax, %ss movw $LOAD, %sp # ZOgWX^ 0000 ɁBCS ͕ύXsv?? push %ax pop %ds push %ax pop %es # Ŋ荞݂ sti # ̃vO炳Ƀu[gXgbvǂ񂾂͂Ȃ̂ŁA # vOP[gƂ͂Ȃ main: # bZ[W\ movw $MESGADDR, %si disp: # ASCIZꕶBIOSR[ŕ\ lodsb # ꕶo testb %al, %al # NULLȂ\I jz keywait # ̕\IL[͑҂ push %si movw $VIDEOATTR, %bx movb $PUTCHAR, %ah int $VIDEOBIOS # rfIBIOSR[ĕ\ pop %si jmp disp keywait: # L[{[ĥ҂ movb $GETCHAR, %ah int $KEYBIOS cmpb $RETKEY, %al jnz keywait # Zbg FFFF:0000 ɃWv(?) ljmp $0xFFFF,$0x0000 # \郁bZ[W .org MESG mesg: # ̋Lu̓e͂킢ՂŏꂽȂ :-) .ascii "The contents of this storage device \r\n" .ascii "may have been erased \r\n" .ascii "with hard disk wiping tool " .ascii "``wipe-out''.\r\n" .ascii "ABSOLUTELY NO WARRANTY.\r\n" .byte 0 # ̃p[eBVe[uƃ}WbN .org PARTBL ptable: .fill 0x10, 0x04, 0x00 .word BOOTMAGIC # # AZu@ # as -o wpout-mbr.o wpout-mbr.s # ld -N -e start -Ttext 0 -o wpout-mbr.out wpout-mbr.o # objcopy -S -O binary wpout-mbr.out wpout-mbr.boot # rm wpout-mbr.o wpout-mbr.out # # ܂ /* * shell-on -- w肵ttyŃVFN * * 0.0: May 5, 2014 by Dai ISHIJIMA * * usage: * shell-on tty [command [args]...] * * see also: * /usr/src/usr.sbin/sysinstall/system.c */ #include #include #include #include #include #include /* login_tty(3), -lutil */ #include #include int main(int argc, char *argv[]) { int pid; char *tty; int fd; int i; char *prog; char *shell; char **args; prog = argv[0]; if (argc <= 1) { fprintf(stderr, "Usage: %s tty [command [arg]...]\n", prog); exit(1); } tty = argv[1]; if ((fd = open(tty, O_RDWR)) < 0) { fprintf(stderr, "%s: can't open %s\n", prog, tty); exit(1); } close(fd); args = (char **)calloc(argc, sizeof(char *)); if (argc <= 2) { /* IvVȂVF */ shell = "sh"; args[0] = "-sh"; args[1] = NULL; } else { shell = argv[2]; for (i = 0; i < argc - 2; i++) { args[i] = argv[2 + i]; } args[i] = NULL; } #ifdef EBUG fprintf(stderr, "%s: tty = %s, shell = %s\n", prog, tty, shell); i = 0; while (args[i] != NULL) { fprintf(stderr, "%s\n", args[i]); ++i; } #endif if ((pid = fork()) == 0) { /* q */ int cfd; int fd; struct termios t; ioctl(0, TIOCNOTTY, NULL); for (cfd = 0; cfd < getdtablesize(); cfd++) { close(cfd); } if ((fd = open(tty, O_RDWR)) < 0) { exit(1); } ioctl(0, TIOCSCTTY, &fd); dup2(0, 1); dup2(0, 2); if (login_tty(fd) < 0) { exit(1); } signal(SIGTTOU, SIG_IGN); if (tcgetattr(fd, &t) < 0) { fprintf(stderr, "unable to get terminal attributes\n"); } else { t.c_cc[VERASE] = '\010'; if (tcsetattr(fd, TCSANOW, &t) < 0) { fprintf(stderr, "unable to set terminal attributes\n"); } } execvp(shell, args); fprintf(stderr, "unable to execute sh\n"); exit(1); } exit(0); } /* Local Variables: */ /* compile-command:"cc -Wall -o shell-on shell-on.c -lutil" */ /* End: */ <fjQPS1Pjf1ɎَѼ|}r,`|uuƀrIᾢ}K1҉ .w ޿)Itduddu`PDL Zs*}}0r4u.t"rURAZrUu tBRZrˀ?tfFRff1fC0fZf=w@(f8r^P[s Ot0FsF ^(FwReadBoot error PUWEVamnesiac= !WEV BTX 1мfjf^3GG^╬s uU}EEEfh (֕Е @"ꌐ1ɱѱ8ٺ6 -)б3QPhj+5 QQQQRja %"1".Еf юَH" 1Ўػpܕtr4!PP 栈!桰!桰!XX!j4j0j,j(j$j jj j j j j j j4$D$`f|$Dut$Pt$PjWM^d$a<$t<$u D$ud$π j>j :j 6j 2j .j *j&j"jpjqjrjsjtju jvjwj`jt$D%]Fu,^+]B^u%1҉] j"uT$0taf] ]~Vq^^]6]]f "1؎ܕfffffa]ϼ]f`ffffffhf1؎֕Е @"k1ɱюَ%]t$D%͕8ك=]tM~V]3 ]y5]ʹ^t]%fFaσuD$ `X6 tŰ=VtfvtatJCPu fu6 ЖFt -t t  u^ u pPXPX$< i/ u`1ɴPf 8cuf1< tPЀfBPr0ƀrf PffajE#ƃED$<>PK=>uE 8u+ L$$4Bt xE 8t8t&C9rFFb3C 1Ƀt>t$4"1L$t1 ^_[]D$E$41USWV,ˉDž T$5@5D$ =9t|$t$lE9-5@5  [ @5 @`hE=Tu<@=s$C=Tu-53C3 C to*<@==_~9t$|$ @`1t$9=lE @ <@ 1D$ hE=@1҉@ЁTt (@!$@@ p@ u1҉D$1ҋ|$t$ <1ҋt$=hETuʸ>ʸ ?5lE>|ExEtEpE=hET>t?D$5>)9r؅ʼn$l$ \@#5DE w=hETuX >X@H 9tф: <@ =hETu(=>'? |?L$ D$$?=?|$ \$$ED$1L$ p@ uڻuÃ|E1Ћ xE1 t&׹D$ R xE=|EL$I#L$=hETu&D$ D$(\D$(D$ D$$D$ ȹD$ 6D$ |$$ p@1 uuЉ ÃL$ wM \@1 uu9T$tȄtDE#D$LE#X@<@)=l$wơpE1؋ tE3L$ t# D$uMpED$tE)9w|$t$0މt$5>)݉5>u,$,^_[]St IR@u[USWV 5G999Bـr tۉuOGπr t uw-D$$x4xPtnSu(X1҃ sk GXЃ rf1ҀDt1҃ :4Ru犊 51H눸+Hq4] H u4Iu55H uG @456E](u8:uE Ѓ 6451=55|{%45mL$)Ճ*1ۋ,4:muJ:Mt CuH5jЉ-L5z, JP5z,u р P5wbрy)uWʊ  Q5wED$tŃ%D59)׉y1 ^_[]USWVPt$D$$<%u6Fut5sue$H $(EtsEEEu`FU$H $9k )0 Mmw9cu$H $EYM9s\^_[]WVPHu31Au l+Ht)ȃ6r1^_USWV\9ÅT$(44D$(f= #l$<5H)>|$,؉9iT$,)|$0؉g9A=>C9D$$4))\$ < |$)Ef|$*LFD$D>D$$f|$T>tJ1ۉ= D$ =L$T9} G|#^-H)F>>D$ 9ZD$$@D$$ ~(>%)áHأ5D$XP9uiL$Hk(D(>4>PD$ P1H>ESE>}D$ 9E\F(|ʽ#l$@H5H 9 `5 D5 5c # HH555P5=L5Q5 ށ\5D$L$,$t$D$D$D$ D$4$4\^_[]Vƃ u ^WVP1Huw45t"HHH@t45t Wu1t4u+HHsH t^_S45t&H HH 45t[USWV׉À=9^L$-@5@T51ҹr] P5wBAl$ 1Ȁ:ujx<w Ex t Er܀uP5l$ ȍAt<tLyAT5T5B>WEV@WEVuu=X5uf@u H5X5Q5@9sa@tT@T5T+@T5L$D$40=Q5L$u=T5؉-#D$4D$4$4X^_[]SWVω։H u9595D$$4HH%HH5HHH =D5=HHHt#Hĉt$D$$41^_[ÐPfXffBB1ɵ)tPf1ɵ@ tXtf1$/boot/config/boot.config%s: %s/boot/loader/boot/kernel/kernel FreeBSD/x86 boot Default: %u:%s(%u,%c)%s boot: yesnoKeyboard: %s No %s Invalid %s format addafdslicelabelpartition%cerror %u lba %u %s: not a directory. %s 444DhaCcdgmnpqrsv   %/|\- (h FX⩉/mntiiirPkWOFXrh@@FXxT (h FX⩉rP FXrh@@xTU FX p(T 4FX Ur qAFXFXFXFXXJ0XJ09pAFXFXFXFXx$5FXFXFXFX9Si_FXFXFXFXHG:6Zk# FXFXFXFX`_:*nBl@ FXFXFXFXw:U=oFXFXFXFXX:mkqVf;=RAGOo޾!7FD ڹL~j&4RBq<,xAC< `v,6fdeSGϔTl) pg-198[ߩ%&_ Rh@J"S9h'˟*-q}@51BM;hae 7yrBY&Ǖ{e/ђpe ^B}.$X?XiLq#z\!jYT_K%AkKf|ZSdmPu¢چ-` M5BY$f,!VAe/{5;@>zl*!^.X2׽x9o` \0 9 {bAq3QUjok>sBTn)]z~H>DH8!tkHWqSPu  D-'_*YvnUm)쨧w>3*H% ĮG]Cg-=h,t~Z|u.7 >abm%1m+ 'nmOP9TNldaʜ]2xW Vj:^oj>hiWG?*.o Wf-CX̊K5߬o<ײOI:4߉?B(c@w(uA[KOZP'h> [v<fț=,!}=:*}C Q|7x4*dlIUK#`jee`/\ ٯ;~-f(a߼]/vu4,294,967,296 oCg (4.0G)v) ́Aۂɂg̃n[h fBXN̏񂪕\܂B +---------------- n[hfBXNc[wwipe-outx ----------------+ | Cj[ | | ݑI𒆂̃fBXN /dev/ad0 łB | | fBXN̗eʂ 4,294,967,296 oCg (4.0G) łB | | ȉ̃j[珈IĂB | | | | +------------------------------------------------------------------+ | | | z 0㏑āÃfBXÑf[^ | | | | h @̊Tv\ | | | | n ㏑āÃfBXÑf[^Oɏ | | | | m Ȍ㏑@I | | | | v f[^ꂽmF (^ꕔ`FbN) | | | | V f[^ꂽmF (ʏ^S`FbN) | | | | w OfBXNɏ | | | | L L^tbs[ɏo | | | +-----v(+)---------------------------------------------------------+ | | | +----------------------------------------------------------------------+ | [ OK ] Cancel | +----------------------------------------------------------------------+ ŁAn[hfBXN̖OeʂAf[^n[h fBXN̂̂ł邩ǂmFĂB̃n[hfBX Ñf[^ꍇ́Au0㏑āÃfBXÑf[ ^vnCCgĂԂŃG^[L[Ă (ȉȂuIvƏ̂܂)B ̃j[Łu0㏑āÃfBXÑf[^v IƁÂ悤ɊmFbZ[W\܂B fBXN ad0 Sf[^ 4,294,967,296 oCgA 0ŏ㏑ď܂B 낵ł? [ Yes ] No f[^ꍇ́AŁuYesvIĂBuYesv IƁAɂ‚Aȉ̊mFbZ[W\܂B {ad0 (4.0G) ̃f[^Ăł? [ Yes ] No f[^ꍇ́AēxuYesvIĂBuNov Iƍŏ̃j[ɖ߂܂BuYesvIƃf[^ ̏n܂܂B f[^̏́Â悤ɐi󋵂\܂B fBXN ad1 ̃f[^Ă܂B 25% (1024/4096) I ^ 21b o c 悻128b 0%|############______________________________________|100% ʂ̍ʼnsɂ́Â悤ɏݑx\܂B 33554432 bytes transferred in 1.307584 secs (25661396 bytes/sec) f[^̏ɗv鎞Ԃ́Ag̃n[hfBXN̗eʂp\ RɂĈقȂ܂Bn[hfBXN̗eʂAp\R x΁Aɗv鎞Ԃ͒ZȂ܂B f[^̏IƁA fBXÑf[^I܂ (230b) [OK] ƂbZ[W\܂BŁAG^[L[ƁA ̃j[ɖ߂܂B @ɂ‚ Cj[u@̊Tv\vIƁA Pȑ@̐\܂B ȊȎɂ‚ Cj[ŏ㉺J[\L[ƁAʂ̍ڂnCCg 邱Ƃł܂BCj[ɂ8‚̑I\ ܂񂪁A㉺J[\L[ƃXN[ɂAe푀상 j[\܂Bun[hfBXNc[wwipe-outxv ́Af[^ȊOɂAĂ邩ǂ̊mFAL^ ݁An[hfBXÑRs[AVF̋NAċNAVbg _EȂǂ̑상j[pӂĂ܂BȉɃCj[ Ił鑀̈ꗗ܂B E0㏑āÃfBXÑf[^ E@̊Tv\ E㏑āÃfBXÑf[^Oɏ EȌ㏑@I Ef[^ꂽmFi^ꕔ`FbNj Ef[^ꂽmFiʏ^S`FbNj EOfBXNɏ EL^tbs[ɏo Eʂ̃fBXNI EfBXÑf[^\ Ef[^\ZN^̎w Euwwipe-outxɂ‚āv EÑVXebZ[WmF EfBXNRs[i^obNAbvj EfBXNRs[iᑬ^f[^Tx[Wj E1㏑āÃfBXÑf[^ E_p^[㏑āÃfBXÑf[^ Ep^[̕␔㏑āÃfBXÑf[^ E_f[^㏑āÃfBXÑf[^ EL^\ EfBXN̎Ȑff (SMART) \ EVFishjN EVFicshjN ECD-ROMmount ECD-ROMumount EMBR *̂* EVbg_E EċN Ή@ɂ‚ E{c[́AFreeBSD/i386삷Rs[^ŗpł܂B E{c[Ńf[^łXg[WfoCX͎̂ƂłB EFreeBSD̃J[l (CXg[pCD̃J[l) ň ̂̂Aȉ̏𖞂 EATAfBXNRg[hCo (ada(4)) ň EʓIS-ATA/P-ATAC^[tFCX̃n[hfBXN EASSDhCu ESCSI_CNgANZXfoCXhCo (da(4)) ň EʓISCSIC^[tFCX̃n[hfBXN EFreeBSDňRAIDRg[ (asr(4)) Ȃǂɐڑ ꂽn[hfBXN EUSBJ[hA_v^ɐڑe탁J[hA USBtbVȂǂUSBeʃXg[W ada(4), da(4), asr(4) Ȃǂ̏ڍׂɂ‚ẮAFreeBSD̃}jA y[WȂǂB ̋L^̕ۑɂ‚ un[hfBXNc[wwipe-outxvł́A̋L^ۑ 邱Ƃł܂Bۑ”\ȃfBA̓tbs[fBXNUSB ȂǂłB̋L^ۑ郁fBA (tbs[USB ) ́A炩FATtH[}bgsAuWIPE-OUTvƂ ÕtH_[gfBNgɍ쐬ĂĂB Ƃ E{c[́AOSƂFreeBSD𗘗pĂ܂B E{c[̓t[EFAłB쌠́A҂ł ܁ ۗLĂ܂B E{c[𗘗pA邢͗pȂƂɂĐ Ȃ錋ʂɂ‚ĂA҂͐ӔCؕ܂B Ql EВc@l dqZpYƋ (http://www.jeita.or.jp/japanese/index.htm) up\R̔pEnɂn[hfBXÑf[^ Ɋւ闯ӎv(http://it.jeita.or.jp/perinfo/committee/ pc/JEITA_HDDdata100219F.pdf) {c[̓@ {c[юoíA҂̃EFuTCgŌJĂ܂BA hX http://hp.vector.co.jp/authors/VA004814/ łBKvɉ ă_E[hĂB n[hfBXNc[uwipe-outvv1.6 Copyright (C) 2016 by Dai ISHIJIMA AȂ̃t@Cuwipe-outvN}V Cj[猩邱ƂłƂ΁A]vȐ͕sv ܂B yCj[ł̑z Cj[ʂ̑̊{́A E㉺J[\L[ɂsڂI EG^[L[ɂIڂs łBIĂ鍀ڂ̓nCCg\Ă܂Buwipe- outvŃAu0㏑ācvnCCg\Ă ͂łB Cj[炱̉ʂ\ɂ́AJ[\L[ 񂾂AG^[L[܂Bʂɕ\Ȃ ́A㉺J[\L[xƁAXN[óà ܂B Ƃ΁ACj[ɂ́uċNvƂڂ ܂A͈ԉɉBĂ܂B\ɂ́Ax J[\L[Ă݂ĂB XN[ďɏĂڂ\ɂ́AJ[ \L[ĂB yfBXNɋL^ꂽɂ́z u0㏑ācv̂悤ȁAucvCj[ IAG^[L[ĂB uvsƁAmFʂ\܂B̂ƂA fBXŇ^ԂeʂȂǂ\̂ŁAfBXN 邩ǂmFĂB\ĂemF G^[L[ĂB ŏ̊mFʂŃG^[L[Aēx‚mF ʂłĂ܂B{ɏĂ悢ꍇɂ̂݃G^[L[ ĂB ڂ̊mFʂŃG^[L[Ən܂܂B AfBXN̏ɂ͐琔Ԓx̎Ԃ܂B ͂܂Ă΂炭ƁAc菊vԂ̗\l\ ܂B IAɂԂ\܂B G^[L[ƁACj[ɖ߂܂B ȂAuŏI邱Ƃ͂蓾Ȃ͂łB̏ ́A{\tguwipe-outṽoO܂Buf[^ ꂽmFvIŖ{ɏmFĂB yL^ۑɂ́z {\tguwipe-outv̋Ɗꂽꍇ́A Cj[uL^tbs[ɏovIł Bj[ɏĂƂAL^tbs[ L^ł܂B L^ۑ邱Ƃł̂́Atbs[ł͂ ܂BUSBȂǂ̃fBApł܂BȂA L^ۑtbs[iUSBjɂ́A炩 u\WIPE-OUT\vƂtH_쐬ĂĂB yCj[ɖ߂ɂ́z ̉ʂ‚ăCj[ɖ߂ɂ́AG^[L[ ĂB n[hfBXNc[uwipe-outvv1.3 Copyright (C) 2013 by Dai ISHIJIMA  . ...snapbooty COPYRIGHT= srcinfo.txt = readme.txthelp.txt = version.txt XsjisyrP FXrh@@xTWIPE-OUT-16T_991 (2016-12-06)  ...AFXFXFXFXprS6Z)nBU=mkVf;=RAGOo޾!7uf%f9u9t$ u$襹};T$(uT$$z4-Ff=|$@G$F(fpN(tF(N(fD$ыD$!N(f!T@;t$ t7FB~`tF`D$$UpT$VF(D$L$ $I|oOD$$@t t$<$-f9k<@|$@t&G$uL$ ABL$<$,[^_]ÐUWVS |$ t$$D$,D$ G,\$(\$ 8u4L$L$4A< v D$l$$#$(Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$Mgdždž 0\$G$f\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$cdždž 0\$F,@$bF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C|@HD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C|@HD$CH$A\$4$l$B\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C|@HD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C|@HD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$6C([ÍvS\${LtD$T$B$Y6CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$4C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃ D$E$/3CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$1C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@Bǃ D$G$1CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$3{Ou拓tD$D$$1S0tD$CMD$$Bs ~|u~C(u,$֨D$C D$,$/S BD$BD$$R 4C D$8D$$IC D$8D$$IC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$+#tEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$D$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$V|$T$$D$$']iU\$D$$D$$A4 \$T$$T$$]EiUD$D$$D$$D$(T$$']iU\$T$(T$$?\$D$(D$$x]EiUD$$T$$'"iU\$T$$T$$2A4 \$D$$D$$iUD$T$$T$$T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$xT$@z*D$D$$J|$v!T$ $']iUD$ $'iU\$D$ $ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$'?]iU\$D$$N\$D$$0]EiUD$D$$ T$$']iU\$D$$\$D$$]EiUD$D$$D$$'I]iU\$D$$X\$D$$=]EiUkiUD$D$ $ T$$'iU\$D$$\$D$$iUD$D$$D$$'QiU\$D$$a\$D$$=iUD$D$$T$$'iU\$D$$\$D$$iUD$D$$|$vxt$T$ 0$'OD$ 4iU\$D$$T㏃p\$D$$6iUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$(|$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ 臬F&F&t&{F&rF.F&Z4 LF4‹iUۋ4 DF4‹iU虬u F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'%F&O@QA A A ‰A A A ЉFDFHuf$'觟F&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'SF&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$N##\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ PEǃ pE$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ @q;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSC?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$ TEl@fCCk C\@C@D$E`C,fC$ ElCDC| D$D$$QC,D$ C\P@ D$T$D$$Qƅ\$D$$LtxEltqtofuD$D$!@,$ f$lRD$$Eltt릸{tv ft߃[^_]Ðt&l\$\t$`|$dl$hl$pt$t|$xD$|fD$ $T$]l{%u$R|C,D$DUxT$8fDž'$D$@Lf|$ vD$ D$$RD$8$D$|$t7D$K T$<BT$LT$D$$$`"T$@z\tЃ\D$D$8$T$@BdD$@D$T$8$ T$88@'l$8D$$(fc(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$m\$<$!4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$kGC&C'\$<$su1C&C'fǃ\$<$3D$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3\$F$"9\$@t$D|$HLÉUWVSD$8i(ŋT$0l8Ǹ L$4ilM }0u-}4u'r+ ],; D$4E4T$4BtE0BpL$0q+tS],D$0; t/T$09 u\$0C)T$48uËT$08,:.\$F$o3dždžF \$F$2\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$WD$D$$<T$hD$ pA$#$L$$ESD$HD$ D$D$ $+qD$Hl%i'sL)L$$<D$HD$ D$D$ $)+D$H%ik()L$$D$HD$ D$D$ $*D$H%ik()L$$jD$HD$ D$ D$ $W*t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"F'E<u!FF FHPTF EJ34fF0 FvW FF dW"F FrWF萶D$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$ft uK8ø 8$IT$$)‰D$$贳f f3i ,U tl,F?kCmtF0(<*F0F1D$T$F2D$T$F3D$T$F4T$V5F6fF7N8F9GlFDfF$ G`F,NtCdFChFSHwu CnF0ҍKPT$L$$Q"C`t FDCIfF$GlFDfF$ NtGlx%%FxCm&CLF,Cm0< uF0F1F4F05Gl@$uNt STf;SJu YCnCS<㐍t&tCD$@C=D$<CviU iUv iUiUtdv,ǃ$'%iU4ǃ$'iU#vvCiUCiUE&9 [^_]VSL$\$D$0v΀iU΀iUtYviUiUt&v iU iUtsᐃv530$'34iU63P$'3TiUv[^ÐSL$ f f; r fǁ  | T$  ,[ VSL$T$t$\$ &uff% fS % ЉC҃A ЃACtAf% fA[^Ít&'L$T$v uA1A2BA3BA4BA5BA6BA7BAvt#A8BA9B A:B A;B A뤍D$4 PP@ iUÐt& $t$|$|$t$_ V$Ѓu u~0uh$tXtOG\8wu1 8rttG\$ 8sË$t$|$ ÐWVS|$ t$$FT_+t&P t&u8uF& t$<$[^_Ív' D$f@2@&D$$ Í'VSD$ 0D$$tDC(fpK(tD$\$4$ݷ[^Í&UWVSl$0}+t+D$4@ tT$4B u E+f9wT$4B(t%XUD$$7T$4B(D$,$dD$48T$49B8uD$D$$ƃx 4xOf}<tgCf;Fu]f=wW(tJUC(fpUK(tC!D$\$,$蠶E<9wF @lF(u!,$eF D$D$,$YF P@T$D$$RAF 8D$T$$ F 8D$T$$ F T$4j t$,$T$D$49P8D$4@(EX iUt EX[^_]ÍWVS t$0>_+t1 9u  D 9t8uщ ~Atx 9AulA4tA4\Q, Y,B 9tLz u9z u/A4D$`D$ T$L$ $ R B 9u [^_Í&\$ t$|$l$\$ |$$GXhWfwtF4V3D$D$@$؂;FTuuFT$H2+vL$@1@, 3\$,t$0|$4l$8<Ít&D$,D$ D$(D$D$$D$D$ $bÍvUWVSLl$dD$`X fE(D$0D$l$T$`$mt D$0[ E0%=$Uf ‹t$`tbfw|$`li(D,@?fwt$`i D@|$`iDT@T$`2@,D$i ‰T$ D$D$$eUfw‹|$`u0fuE2<fws‹|$`tD$HHD$HHD$H`EvtD$HHD$H@ D$H`T$HE\$`f BD$H`Ƈ \$à\$!$?\$%$-DU0E0DBABAB A t$ t8<EM t8E<t$W ˆWFffGt{GCGntjD$D$ D$HD$l$D$$EvtD$H@D$8D$7D$ |$l$T$$Evt L$I\$ct$`|$,T$f\$ك E0%=u4D$DD$ D$\$D$$D$G@D$Gf}0uME2<wBT$$T$L$` $~zD$DD$ t$$F4D$\$|$<$:t&D$D$T$`${`tC`D$4$vXS3\$4$a9Ti(lD$[^_]É<\$,t$0|$4l$8|$@w,.Ft Ƈrgt&Ƈ|$,$}D$D@Nx`tD$D`D$,$(uT$DPB,$RWFƇL$DAL$,$},$"ƇD$Dx`t`D$,$tO QBAT$DPB&t&G4tx&t|$D$4$覍FFW0u ~ u0D$D$ GMD$T$4$輑QD$ D$'N8L$D$$gD$(FC!C(K(f!K(f!T@C(D$l$ ,${`tC`D$<$RbSf<fwi(l@,xOCf=w#8i @x"C8i@Txt,\$<$萇XSD$$PCL$$AKPD$fD$(l$l$,D$0L$(D@Hf<fwi(l@,@]@f=w 8i @@)@8i@T@\$,T$C |$SD$8$'iL$X\$ ǁpT$8iU Ɖ2$%!L$8\$XD$,iUD$8$'ܶT$XL$ ǂp\$8iU ƋD$80$蔶!ދT$82L$XiUD$LD$S8E+v%$TpSCP~ t \$<,D$<9X,u˅t8F2}+t.\$<C tˆL@F28M+wD$D$D$<$hD$4T$4DŽ }+D$D$L$< $[h\$4\$,$苨( t % D$<,T$<9B,D$L$ $4X\$DP9P(\$D$$X{% uC,@T$$ۮCB{Ot,$$Ǵ{OuC :@l{Of}<t&0tmFf;Cucf=w](tPUF(fpUN(tF!D$t$,$FuE<9qC(u,$$C D$D$,$C P@T$D$$RC 8D$T$$C 8D$T$$cC T$C 8D$T$$aC8D$T$$AD$D$8E ,$'0|$viUiUu f,ut$<$<$ح +t4F tD$L$<$8_+wD$ D FF,9F,u*F89F8u"q$UhSCP} t ^,t&9^,u΅t_E2+tUvF tÈT@E28W+v&Ftt$<$*D$4$[^_]UWVS |$ o(s+tW 9uFt& D 9t 8uv!эiUэiUtl$D$$ D$$ [^_]UWVS\$4D$0D$xT7Gt@5T$B5<tu<r<<t&:L$A5L$4$QLCO{`tC`D$4$CXS4$"gD$@6@5C\$4$mL4$GGL$B{`tC`D$4$bCXSD$x&u  u"D$D$<${\&D$o8,$薢ËE]+CS t8T$D$$FK(\$D$<$\{Ot4$$4{OuD$T$8W wL$ $ӱgD$ǀ{`tC`D$4$WBXSD$D$<$[G89G8ō&,$蘡Ë@ tg@l4$C D$D$4$) C 8D$T$$,C 8D$T$$C \$4$|f9o8sT$T$4$3eG(XiUtXGt\~+t!G t G u8N+wى\$4$豚|$4$uGDŽ [^_]Ð&,\$t$ |$$l$(|$4t$0F,D$(O(f؃D@UpEtiUG!G0%=u)D$<$)D$|$,$hO(tD$<$,$=<e$ƆD$|$T$$W7ƆD$|$D$$WƆt$D$!T$$XV0t-FMD$D$ D$T$D$$!]T$B D$D$,$ШƆ~0tHt$D$!D$$vXFMV0D$D$ D$T$T$$\JD$D$!D$$*XT$B D$D$,$> ~&tt$D$D$$Wt$D$T$$WN tQBAF'F&~Ot!&,$$輤~Ou~0tVF BF0h0V4t FMD<FBD$h tD$D$$)V0tFMD$D$$1F @l,$F D$D$,$F P@T$D$$RF 8D$T$$褺F 8D$T$$臺F t$,$aT$zt^z t8\$8v$hSCPx&uT$8B w׉T$8B wBT$,$\$t$ |$$l$(,Ð&UWVS,l$@ETD$$ D$(l$$`}6vE5u9u4$ƛD$ ET$ PrUf{<0 L$D$0^Ff9E$P 9T$(tF 9!‹ uf%f9u9t$ u$4;T$(uFf=T$$z4BF(fpN(tF(N(fD$ыD$!N(f!T@;t$ t"VPpT$VF(D$L$ $謙m)f9{<D$$@tL$ ABL$,$,[^_] UWVS,t$@T$HT$ D$LD$$>D$Df{0u+C2<w N(D$ T$$uYA5D$Kl&f{wCi(‰T$D$ D$$uD$ƀ{ufD$ D$$CCv CT@mt!HXtS@tC,D$T$ $tJ"4 @L$AB‹iUVSfFH4 DAB‹iUfFLfFNfFPVR4 LAB‹iUfFJ4 HAB‹iUf VLf VN%f FP{uC!f{0uC2<w $L$ T$#!C0%=4 @L$AB‹*-iU4 DAB‹T$iU4 HAB‹25iUCv KTAnC ASfAHT$fAL\$fANfQP4 L\$CB‹iUfAJ4 @CBk\$<$]yX iUtGX=9x8yy2C(fpK(t,[^_]Ð&S\$L$C09K uA<tV<(tRD$ D$Vi D$CD$$D$ D$PD$CD$$D$ D$HD$CD$T$D$ D$TT$H@D$CD$$茙D$ D$CD$ $gD$WD$ D$CD$$AD$ D$SD$CD$$D$ D$CD$$D$ D$RiD$CD$$ĘD$ D$N@D$CD$$蘘D$ D$PD$CD$ $pD$ D$WD$CD$< $HD$ D$UD$CD$d $ D$ D$VD$CD$ $D$ C&D$CD$ $їD$ D$FD$CD$p$託D$ D$@D$CD$ $胗D$D$ @D$PD$CD$ $җD$D$ D$CD$ $襗D$D$ D$PiD$CD$@ $qD$D$ D$LD$CD$d $@D$D$ D$JD$CD$ $D$D$ D$S D$CD$ $ޖD$D$ D$CD$ $豖D$D$ D$Ni$D$CD$ $}X[Ív,\$t$ |$$l$(l$0ED$],$'ƍPT$D$$=NjE0u0T$Z B$0G0G1G2O3T$4GTGXPGDG̋T$B3fGEG G,D$4G@G|@D$GH$|$T$$\$t$ |$$l$(,Í'UWVSt$0D$T$22<ЍR,L$6RD$dR D$ ,$؎ËD$hh+SC tD$8D$$|K(\$D$D$$PH{Ot4$$f{OuL$ 8QnD$|$4$[^_]Í&'UWVS|$@5@4@3ƀ Œ =u$$T$D$ρL$L$\$P$t$H$ D$T$D$vD$4D$xD$0D$hD$,D$nD$(D$zD$$D$pD$ D$qD$D$lD$D$sD$D$jD$D$rD$ D$tD$D$uD$B$$'D$u$A.D$tA/D$rD$zfA<D$xf D$vf D$jfA6A$f=t f= $C1C+C2@C0ƃ C,T$Б‰lD$ui(t u$p$蚑‹$D$rit u$$]‹$D$ti t u$$ ‹$D$zt u$ $$8$ʐË$T$謐‰lf|$jtFZPD$sBH$t$D2BD$s@ꀃf9L$jw$p$B‹$f|$nt0B$:B f9L$nwՋ$$‹$|$qt3$t$L2BD$qf9wҋ$$芏‹$$t$P2B9uۉ$A‰|$pt2$*B˜D$pf9wӋ$$‹$f|$lt0$t$T2Bf9L$lwՀ|$utO$4$脎Ӌ$  L$HPD$uf9wË$ $;$, 0 D$zf6 D$0 $< $T X D$uf^ D$X $虆d $躍| D$rf D$ $\ $} D$tf D$ $ $@ C&f C&D$ $ $‰ D$tittEtЉu$  D$tBD$tD$L$ $_o~&ύ I$, VF$,Fƀ`ƀHǀ @Z LPX\$ ddhFC&f9[$F0Ɔ2Ɔ3Ɔ4Ɔ5|$ui($lD'lD&lDLlDBlfDŽDŽlAAlBBD$uf9w$fǀ$Ƅ=u|$ti $D0D1D $QQQQQQQQlQ(Q(P(P,D$tf9X$ƀ|$rt}iҰ$fD2D&D(D4ы$AAAAlTD$rf9w$ƀ$ D$$ $$ 8 D$@$$4 \ D$@$щ$X  D$@$讉|  D$@$蒉  D$@$v $ |$qtZÉֿ)ŋD$L$˂TPX p$L$LPD$qf9w$ D$$ $ֈD$X$ $ T$P$,T$XPX p$L$PP5 u$ D$$ $.$ $  f|$ltWÉֿ)ŋD$T${TPX p$L$TP$f9|$lw|[^_]Ðt&UWVS l$ |$$_TG+D$l$$#fO2}+tIC t <C u E+f9wfv%EэiU#EэiUtD$,$C89C8 FMD<FBt$D$$ :~Ott&,$h$~OuF tV@lF(u,$F 8D$T$$轝F 8D$T$$蠝F k t$,$ EEXiUt EXG&fg2t"‹D8u4L$L$4A< v D$l$$:)"(Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$ldždž  \$G$k\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$hdždž  \$F,@$#hF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C|CD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C|CD$CH$A\$4$l$H\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C|CD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C|CD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$;C([ÍvS\${LtD$T$B$;CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$E9C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃD$E$o8CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$6C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@BǃD$G$A6CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$8{Ou拓tD$D$$1S0tD$CMD$$蒮s ~|u~C(u,$D$C D$,$S BD$BD$$R`9C D$8D$$NC D$8D$$NC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$k!tEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$OD$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$|$T$$D$$'E]iU\$D$$D$$TA4 \$T$$T$$0]EiUD$D$$D$$ D$(T$$']iU\$T$(T$$?\$D$(D$$]EiUD$$T$$'biU\$T$$T$$rA4 \$D$$D$$NiUD$T$$T$$-T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$T$@z*D$D$$|$v!T$ $'=]iUD$ $'iU\$D$ $,ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$']iU\$D$$\$D$$p]EiUD$D$$MT$$']iU\$D$$\$D$$]EiUD$D$$D$$']iU\$D$$\$D$$}]EiUkiUD$D$ $LT$$'iU\$D$$\$D$$iUD$D$$D$$'iU\$D$$\$D$$}iUD$D$$\T$$'iU\$D$$&\$D$$ iUD$D$$|$vxt$T$ 0$'D$ 4iU\$D$$㏃p\$D$$viUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$( |$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$`D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$=s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ DZF&F&t&{F&rF.)F&Z4 LF4‹iUۋ4 DF4‹iUٱu F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'eF&O@QA A A ‰A A A ЉFDFHuf$'F&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'蓤F&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$>(!\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ Eǃ 0E$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ 0v;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSgL$8D$$!g\$pt0D$$gT$8D$$f|$[tZl$p|$8vދL$pD$,$fT$8D$<$fD$[f9w‹L$p| t0D$d $af\$8| D$d $DfT$p t0D$ $#fL$8 D$ $f\$p t0D$ $eT$8 D$ $eL$pt0D$$e\$8D$$eT$plt0D$T$ieL$8lD$T$Le\$pt0D$$+eT$8D$$eL$p8t0D$ $d\$88D$ $dT$pt0D$$dL$8D$$d\$pt0D$$qdT$8D$$TdL$pt0D$$3d\$8D$$dT$p, t0D$ $cL$8, D$ $c\$pT t0D$< $cT$8T D$< $cL$p t0D$ $yc\$8 D$ $\cT$pt0D$p$;cL$8D$p$c\$p tX  D$T$ L$ $cL$8  D$T$  D$ $hc\$p4 tX8 < D$T$ L$ $3cL$88 < D$T$ 4 D$ $c\$pX tX\ ` D$T$ L$@ $bL$8\ ` D$T$ X D$@ $b\$p tX D$T$ L$ $gbL$8 D$T$ D$ $6b\$p| tX D$T$ L$d $bL$8 D$T$ | D$d $a\$p tX D$T$ L$ $aL$8 D$T$ D$ $ja\$p tX D$T$ L$ $5aL$8 D$T$ D$ $a\$p tX  D$T$ L$ $`L$8  D$T$ D$ $`\[^_]ÍS\$$$e $ e$$`$.D$$[É' T$D$B3D$$ Ív'S\$$8 $[Ð&S\$$8 $[Ð& D$$! Ív',\$t$ |$$l$(É׉͋pl@xD$E8/$7D$@0@1t <Ѓ Ѓ T$B2BFfBZ B,B@B|T$D$$iƃfǃtYClt\fuD$D$!@,$f$^T$$Clt uft"D$xuCl@:fCf T$T$D$$ t&؋\$t$ |$$l$(,Ðt&,\$t$ |$$l$(\$0|$4slkx ,$D$@0@1<T$B2BFfBZ B,B@B|T$,$ƃfǃtUCltXfuD$D$!@,$6f$R],$芙Clt uftD$xtT$T$,$|؋\$t$ |$$l$(, L\$C?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$QEl@fCCk C\@C@D$E`C,fC$ ElCDC|D$D$$OC,D$ C\P@ D$T$D$$Oƅ\$D$$|$t7D$K T$<BT$LT$D$$$ T$@z\tЃ\D$D$8$T$@BdD$@D$T$8$T$88@'l$8D$$Xic(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$]\$<$4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$iGC&C'\$<$cs1C&C'fǃ\$<$#D$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3:.\$F$6dždžB \$F$5\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$'D$D$$<T$hD$ pA$#$LL$$ESD$HD$ D$D$ $b)qD$Hl%i'sL)L$$<D$HD$ D$D$ $(D$H%ik()L$$D$HD$ D$D$ $(D$H%ik()L$$jD$HD$ D$ D$ $'(t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"FE<u!FF FHPTF EJ34fF0 FvW F谲F dW"F 蠲FrWFPD$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$路ft uK8ø 8$ T$$)‰D$$tf f3i ,U tl,F?kCmtF0(<*F0F1D$T$F2D$T$F3D$T$F4T$V5F6fF7N8F9GlFDfF$ G`F,NtCdFChFSHwu CnF0ҍKPT$L$$1 C`t FDCIfF$GlFDfF$ NtGlx%%FxCm&CLF,Cm0< uF0F1F4F05Gl@$uNt STf;SJu YCnCS<㐍t&tCED$@C=D$<CviU iUv iUiUtdv,ǃ$'iU4ǃ$'iU#vvCiUCiUE&9 [^_]VSL$\$D$0v΀iU΀iUtYviUiUt&v iU iUtsᐃv530$'34iU63P$'v3TiUv[^ÐSL$ f f; r fǁ  | T$  ,[ VSL$T$t$\$ &uff% fS % ЉC҃A ЃACtAf% fA[^Ít&'L$T$v uA1A2BA3BA4BA5BA6BA7BAvt#A8BA9B A:B A;B A뤍D$4 PP@ iUÐt& $t$|$|$t$_ V$Ѓu u~0uh$tXtOG\8wu1 8rttG\$ 8sË$t$|$ ÐWVS|$ t$$FT_+t&P t&u8uF& t$<$[^_Ív' D$f@2@&D$$ Í'VSD$ 0D$$tDC(fpK(tD$\$4$ݷ[^Í&UWVSl$0}+t+D$4@ tT$4B u E+f9wT$4B(t%XUD$$T$4B(D$,$dD$48T$49B8uD$D$$ƃx 4xOf}<tgCf;Fu]f=wW(tJUC(fpUK(tC!D$\$,$蠶E<9wF @lF(u!,$eF D$D$,$YF P@T$D$$R!F 8D$T$$ F 8D$T$$ F T$4j t$,$T$D$49P8D$4@(EX iUt EX[^_]ÍWVS t$0>_+t1 9u  D 9t8uщ ~Atx 9AulA4tA4\Q, Y,B 9tLz u9z u/A4D$D$ T$L$ $ R B 9u [^_Í&\$ t$|$l$\$ |$$GXhWfwtF4V3D$D$@$؂;FTuuFT$H2+vL$@1@, 3\$,t$0|$4l$8<Ít&D$,D$ D$(D$D$$D$D$ $bÍvUWVSLl$dD$`X fE(D$0D$l$T$`$mt D$0[ E0%=$qUf ‹t$`tbfw|$`li(D,@?fwt$`i D@|$`iDT@T$`2@,D$i ‰T$ D$D$$eUfw‹|$`u0fuE2<fws‹|$`tD$HHD$HHD$H`EvtD$HHD$H@ D$H`T$HE\$`f BD$H`Ƈ \$à\$!$?\$%$-DU0E0DBABAB A t$ t8<EM t8E<t$W ˆWFffGt{GCGntjD$D$ D$HD$l$D$$EvtD$H@D$8D$7D$ |$l$T$$Evt L$I\$ct$`|$,T$f\$ك E0%=u4D$DD$ D$\$D$$D$G@D$Gf}0uME2<wBT$$T$L$` $~zD$DD$ t$$F4D$\$|$<$:t&D$D$T$`${`tC`D$4$vXS3\$4$a9Ti(lD$[^_]É<\$,t$0|$4l$8|$@w,.Ft Ƈrgt&Ƈ|$,$}D$D@Nx`tD$D`D$,$(uT$DPB,$RWFƇL$DAL$,$},$"ƇD$Dx`t`D$,$tO QBAT$DPB&t&G4tx&t|$D$4$覍FFW0u ~ u0D$D$ GMD$T$4$輑QD$ D$'N8L$D$$gD$(F@!|[^_]Ð&UWVSL|$` fD$ iUf%f f;D$uQP iUʁPL$$hT$`$f Klt&X fD$L$f; !fL$ PiU%Ptj+tdu1tF"t&ƍHuHu"ƍ@,u&&G+f9wD$`$xT$`$C df%fD$iȰT L $T$8L$<Ћ) f{>C!C(K(f!K(f!T@C(D$l$ ,${`tC`D$<$RbSf<fwi(l@,xOCf=w#8i @x"C8i@Txt,\$<$萇XSD$$PCL$$AKPD$fD$(l$l$,D$0L$(D@Hf<fwi(l@,@]@f=w 8i @@)@8i@T@\$,T$C |$SD$8$'IL$X\$ ǁpT$8iU Ɖ2$!L$8\$XD$,iUD$8$'輶T$XL$ ǂp\$8iU ƋD$80$t!ދT$82L$XiUD$LD$S8E+v%$TpSCP~ t \$<,D$<9X,u˅t8F2}+t.\$<C tˆL@F28M+wD$D$D$<$hD$4T$4DŽ }+D$D$L$< $[h\$4\$,$苨( t % D$<,T$<9B,D$L$ $4X\$DP9P(\$D$$X{% uC,@T$$軮CB{Ot,$$觴{OuC :@l{Of}<t&0tmFf;Cucf=w](tPUF(fpUN(tF!D$t$,$FuE<9qC(u,$$C D$D$,$C P@T$D$$RʹC 8D$T$$`C 8D$T$$CC T$C 8D$T$$AC8D$T$$!D$D$8E ,$'|$viUiUu f,ut$<$<$ح +t4F tD$L$<$8_+wD$ D FF,9F,u*F89F8u"q$UhSCP} t ^,t&9^,u΅t_E2+tUvF tÈT@E28W+v&Ftt$<$*D$4$[^_]UWVS |$ o(s+tW 9uFt& D 9t 8uv!эiUэiUtl$D$$ D$$ [^_]UWVS\$4D$0D$xT7Gt@5T$B5<tu<r<<t&:L$A5L$4$QLCO{`tC`D$4$CXS4$"gD$@6@5C\$4$mL4$GGL$B{`tC`D$4$bCXSD$x&u  u"D$D$<${\&D$o8,$薢ËE]+CS t8T$D$$&K(\$D$<$\{Ot4$${OuD$T$8W wL$ $ӱgD$ǀ{`tC`D$4$WBXSD$D$<$[G89G8ō&,$蘡Ë@ tg@l4$C D$D$4$) C 8D$T$$ C 8D$T$$C \$4$|f9o8sT$T$4$3eG(XiUtXGt\~+t!G t G u8N+wى\$4$豚|$4$uGDŽ [^_]Ð&,\$t$ |$$l$(|$4t$0F,D$(O(f؃D@UpEtiUG!G0%=u)D$<$)D$|$,$hO(tD$<$,$=<e$ȸƆD$|$T$$W7ƆD$|$D$$WƆt$D$!T$$XV0t-FMD$D$ D$T$D$$!]T$B D$D$,$ШƆ~0tHt$D$!D$$vXFMV0D$D$ D$T$T$$\JD$D$!D$$*XT$B D$D$,$> ~&tt$D$D$$Wt$D$T$$WN tQBAF'F&~Ot!&,$$蜤~Ou~0tVF BF0h0V4t FMD<FBD$h tD$D$$)V0tFMD$D$$1F @l,$F D$D$,$F P@T$D$$RF 8D$T$$脺F 8D$T$$gF t$,$aT$zt^z t8\$8v$hSCPx&uT$8B w׉T$8B wBT$,$\$t$ |$$l$(,Ð&UWVS,l$@ETD$$ D$(l$$`}6vE5u9u4$ƛD$ ET$ PrUf{<0 L$D$0^Ff9E$P 9T$(tF 9!‹ uf%f9u9t$ u$4;T$(uFf=T$$z4BF(fpN(tF(N(fD$ыD$!N(f!T@;t$ t"VPpT$VF(D$L$ $謙m)f9{<D$$@tL$ ABL$,$,[^_] UWVS,t$@T$HT$ D$LD$$>D$Df{0u+C2<w N(D$ T$$uYA5D$Kl&f{wCi(‰T$D$ D$$uD$ƀ{ufD$ D$$CCv CT@mt!HXtS@tC,D$T$ $TJ 4 @L$AB‹iUVSfFH4 DAB‹iUfFLfFNfFPVR4 LAB‹iUfFJ4 HAB‹iUf VLf VN%f FP{uC!f{0uC2<w $L$ T$#!C0%=4 @L$AB‹*-iU4 DAB‹T$iU4 HAB‹25iUCv KTAnC ASfAHT$fAL\$fANfQP4 L\$CB‹iUfAJ4 @CBk\$<$]yX iUtGX=9x8yy2C(fpK(t,[^_]Ð&S\$L$C09K uA<tV<(tR8u4L$L$4A< v D$l$$) (Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$mldždž  \$G$k\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$hdždž  \$F,@$hF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C| CD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C| CD$CH$A\$4$l$G\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C| CD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C| CD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$;C([ÍvS\${LtD$T$B$y;CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$%9C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃD$E$O8CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$6C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@BǃD$G$!6CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$8{Ou拓tD$D$$1S0tD$CMD$$蒮s ~|u~C(u,$D$C D$,$S BD$BD$$R@9C D$8D$$NC D$8D$$NC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$KtEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$/D$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$v|$T$$D$$'%]iU\$D$$D$$4A4 \$T$$T$$]EiUD$D$$D$$D$(T$$']iU\$T$(T$$?\$D$(D$$]EiUD$$T$$'BiU\$T$$T$$RA4 \$D$$D$$.iUD$T$$T$$ T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$T$@z*D$D$$j|$v!T$ $']iUD$ $'iU\$D$ $ ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$'_]iU\$D$$n\$D$$P]EiUD$D$$-T$$']iU\$D$$\$D$$]EiUD$D$$D$$'i]iU\$D$$x\$D$$]]EiUkiUD$D$ $,T$$'iU\$D$$\$D$$iUD$D$$D$$'qiU\$D$$\$D$$]iUD$D$$<T$$'iU\$D$$\$D$$iUD$D$$|$vxt$T$ 0$'oD$ 4iU\$D$$t㏃p\$D$$ViUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$(|$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ 觱F&F&t&{F&rF. F&Z4 LF4‹iUۋ4 DF4‹iU蹱u F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'EF&O@QA A A ‰A A A ЉFDFHuf$'ǤF&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'sF&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$(\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ PEǃ pE$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ v;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSC?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$QEl@fCCk C\@C@D$E`C,fC$ ElCDC| D$D$$OC,D$ C\P@ D$T$D$$Oƅ\$D$$|$t7D$K T$<BT$LT$D$$$pT$@z\tЃ\D$D$8$T$@BdD$@D$T$8$T$88@'l$8D$$8ic(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$]\$<$4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$iGC&C'\$<$cs1C&C'fǃ\$<$#D$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3:.\$F$6dždžB \$F$5\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$GD$D$$<T$hD$ pA$#$L$$ESD$HD$ D$D$ $)qD$Hl%i'sL)L$$<D$HD$ D$D$ $)D$H%ik()L$$D$HD$ D$D$ $(D$H%ik()L$$jD$HD$ D$ D$ $G(t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"F'E<u!FF FHPTF EJ34fF0 FvW FF dW"F FrWF萲D$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$ft uK8ø 8$IT$$)‰D$$贯f f3i ,U tl,F?kCmtF0(<*F0F1D$T$F2D$T$F3D$T$F4T$V5F6fF7N8F9GlFDfF$ G`F,NtCdFChFSHwu CnF0ҍKPT$L$$QC`t FDCIfF$GlFDfF$ NtGlx%%FxCm&CLF,Cm0< uF0F1F4F05Gl@$uNt STf;SJu YCnCS<㐍t&tCED$@C=D$<CviU iUv iUiUtdv,ǃ$'%iU4ǃ$'iU#vvCiUCiUE&9 [^_]VSL$\$D$0v΀iU΀iUtYviUiUt&v iU iUtsᐃv530$'34iU63P$'3TiUv[^ÐSL$ f f; r fǁ  | T$  ,[ VSL$T$t$\$ &uff% fS % ЉC҃A ЃACtAf% fA[^Ít&'L$T$v uA1A2BA3BA4BA5BA6BA7BAvt#A8BA9B A:B A;B A뤍D$4 PP@ iUÐt& $t$|$|$t$_ V$Ѓu u~0uh$tXtOG\8wu1 8rttG\$ 8sË$t$|$ ÐWVS|$ t$$FT_+t&P t&u8uF& t$<$[^_Ív' D$f@2@&D$$ Í'VSD$ 0D$$tDC(fpK(tD$\$4$ݷ[^Í&UWVSl$0}+t+D$4@ tT$4B u E+f9wT$4B(t%XUD$$7T$4B(D$,$dD$48T$49B8uD$D$$ƃx 4xOf}<tgCf;Fu]f=wW(tJUC(fpUK(tC!D$\$,$蠶E<9wF @lF(u!,$eF D$D$,$YF P@T$D$$RAF 8D$T$$ F 8D$T$$ F T$4j t$,$T$D$49P8D$4@(EX iUt EX[^_]ÍWVS t$0>_+t1 9u  D 9t8uщ ~Atx 9AulA4tA4\Q, Y,B 9tLz u9z u/A4D$`D$ T$L$ $ R B 9u [^_Í&\$ t$|$l$\$ |$$GXhWfwtF4V3D$D$@$؂;FTuuFT$H2+vL$@1@, 3\$,t$0|$4l$8<Ít&D$,D$ D$(D$D$$D$D$ $bÍvUWVSLl$dD$`X fE(D$0D$l$T$`$mt D$0[ E0%=$Uf ‹t$`tbfw|$`li(D,@?fwt$`i D@|$`iDT@T$`2@,D$i ‰T$ D$D$$eUfw‹|$`u0fuE2<fws‹|$`tD$HHD$HHD$H`EvtD$HHD$H@ D$H`T$HE\$`f BD$H`Ƈ \$à\$!$?\$%$-DU0E0DBABAB A t$ t8<EM t8E<t$W ˆWFffGt{GCGntjD$D$ D$HD$l$D$$EvtD$H@D$8D$7D$ |$l$T$$Evt L$I\$ct$`|$,T$f\$ك E0%=u4D$DD$ D$\$D$$D$G@D$Gf}0uME2<wBT$$T$L$` $~zD$DD$ t$$F4D$\$|$<$:t&D$D$T$`${`tC`D$4$vXS3\$4$a9Ti(lD$[^_]É<\$,t$0|$4l$8|$@w,.Ft Ƈrgt&Ƈ|$,$}D$D@Nx`tD$D`D$,$(uT$DPB,$RWFƇL$DAL$,$},$"ƇD$Dx`t`D$,$tO QBAT$DPB&t&G4tx&t|$D$4$覍FFW0u ~ u0D$D$ GMD$T$4$輑QD$ D$'N8L$D$$gD$(FC!C(K(f!K(f!T@C(D$l$ ,${`tC`D$<$RbSf<fwi(l@,xOCf=w#8i @x"C8i@Txt,\$<$萇XSD$$PCL$$AKPD$fD$(l$l$,D$0L$(D@Hf<fwi(l@,@]@f=w 8i @@)@8i@T@\$,T$C |$SD$8$'iL$X\$ ǁpT$8iU Ɖ2$%!L$8\$XD$,iUD$8$'ܶT$XL$ ǂp\$8iU ƋD$80$蔶!ދT$82L$XiUD$LD$S8E+v%$TpSCP~ t \$<,D$<9X,u˅t8F2}+t.\$<C tˆL@F28M+wD$D$D$<$hD$4T$4DŽ }+D$D$L$< $[h\$4\$,$苨( t % D$<,T$<9B,D$L$ $4X\$DP9P(\$D$$X{% uC,@T$$ۮCB{Ot,$$Ǵ{OuC :@l{Of}<t&0tmFf;Cucf=w](tPUF(fpUN(tF!D$t$,$FuE<9qC(u,$$C D$D$,$C P@T$D$$RC 8D$T$$C 8D$T$$cC T$C 8D$T$$aC8D$T$$AD$D$8E ,$'0|$viUiUu f,ut$<$<$ح +t4F tD$L$<$8_+wD$ D FF,9F,u*F89F8u"q$UhSCP} t ^,t&9^,u΅t_E2+tUvF tÈT@E28W+v&Ftt$<$*D$4$[^_]UWVS |$ o(s+tW 9uFt& D 9t 8uv!эiUэiUtl$D$$ D$$ [^_]UWVS\$4D$0D$xT7Gt@5T$B5<tu<r<<t&:L$A5L$4$QLCO{`tC`D$4$CXS4$"gD$@6@5C\$4$mL4$GGL$B{`tC`D$4$bCXSD$x&u  u"D$D$<${\&D$o8,$薢ËE]+CS t8T$D$$FK(\$D$<$\{Ot4$$4{OuD$T$8W wL$ $ӱgD$ǀ{`tC`D$4$WBXSD$D$<$[G89G8ō&,$蘡Ë@ tg@l4$C D$D$4$) C 8D$T$$,C 8D$T$$C \$4$|f9o8sT$T$4$3eG(XiUtXGt\~+t!G t G u8N+wى\$4$豚|$4$uGDŽ [^_]Ð&,\$t$ |$$l$(|$4t$0F,D$(O(f؃D@UpEtiUG!G0%=u)D$<$)D$|$,$hO(tD$<$,$=<e$ƆD$|$T$$W7ƆD$|$D$$WƆt$D$!T$$XV0t-FMD$D$ D$T$D$$!]T$B D$D$,$ШƆ~0tHt$D$!D$$vXFMV0D$D$ D$T$T$$\JD$D$!D$$*XT$B D$D$,$> ~&tt$D$D$$Wt$D$T$$WN tQBAF'F&~Ot!&,$$輤~Ou~0tVF BF0h0V4t FMD<FBD$h tD$D$$)V0tFMD$D$$1F @l,$F D$D$,$F P@T$D$$RF 8D$T$$褺F 8D$T$$臺F t$,$aT$zt^z t8\$8v$hSCPx&uT$8B w׉T$8B wBT$,$\$t$ |$$l$(,Ð&UWVS,l$@ETD$$ D$(l$$`}6vE5u9u4$ƛD$ ET$ PrUf{<0 L$D$0^Ff9E$P 9T$(tF 9!‹ uf%f9u9t$ u$4;T$(uFf=T$$z4BF(fpN(tF(N(fD$ыD$!N(f!T@;t$ t"VPpT$VF(D$L$ $謙m)f9{<D$$@tL$ ABL$,$,[^_] UWVS,t$@T$HT$ D$LD$$>D$Df{0u+C2<w N(D$ T$$uYA5D$Kl&f{wCi(‰T$D$ D$$uD$ƀ{ufD$ D$$CCv CT@mt!HXtS@tC,D$T$ $tJ4 @L$AB‹iUVSfFH4 DAB‹iUfFLfFNfFPVR4 LAB‹iUfFJ4 HAB‹iUf VLf VN%f FP{uC!f{0uC2<w $L$ T$#!C0%=4 @L$AB‹*-iU4 DAB‹T$iU4 HAB‹25iUCv KTAnC ASfAHT$fAL\$fANfQP4 L\$CB‹iUfAJ4 @CBk\$<$]yX iUtGX=9x8yy2C(fpK(t,[^_]Ð&S\$L$C09K uA<tV<(tRD$ D$Vi D$CD$$D$ D$PD$CD$$D$ D$HD$CD$T$D$ D$TT$H@D$CD$$茙D$ D$CD$ $gD$WD$ D$CD$$AD$ D$SD$CD$$D$ D$CD$$D$ D$RiD$CD$$ĘD$ D$N@D$CD$$蘘D$ D$PD$CD$ $pD$ D$WD$CD$< $HD$ D$UD$CD$d $ D$ D$VD$CD$ $D$ C&D$CD$ $їD$ D$FD$CD$p$託D$ D$@D$CD$ $胗D$D$ @D$PD$CD$ $җD$D$ D$CD$ $襗D$D$ D$PiD$CD$@ $qD$D$ D$LD$CD$d $@D$D$ D$JD$CD$ $D$D$ D$S D$CD$ $ޖD$D$ D$CD$ $豖D$D$ D$Ni$D$CD$ $}X[Ív,\$t$ |$$l$(l$0ED$],$'ƍPT$D$$=NjE0u0T$Z B$0G0G1G2O3T$4GTGXPGDG̋T$B3fGEG G,D$4G@G|@D$GH$|$T$$\$t$ |$$l$(,Í'UWVSt$0D$T$22<ЍR,L$6RD$dR D$ ,$؎ËD$hh+SC tD$8D$$|K(\$D$D$$PH{Ot4$$f{OuL$ 8QnD$|$4$[^_]Í&'UWVS|$@5@4@3ƀ Œ =u$$T$D$ρL$L$\$P$t$H$ D$T$D$vD$4D$xD$0D$hD$,D$nD$(D$zD$$D$pD$ D$qD$D$lD$D$sD$D$jD$D$rD$ D$tD$D$uD$B$$'D$u$A.D$tA/D$rD$zfA<D$xf D$vf D$jfA6A$f=t f= $C1C+C2@C0ƃ C,T$Б‰lD$ui(t u$p$蚑‹$D$rit u$$]‹$D$ti t u$$ ‹$D$zt u$ $$8$ʐË$T$謐‰lf|$jtFZPD$sBH$t$D2BD$s@ꀃf9L$jw$p$B‹$f|$nt0B$:B f9L$nwՋ$$‹$|$qt3$t$L2BD$qf9wҋ$$芏‹$$t$P2B9uۉ$A‰|$pt2$*B˜D$pf9wӋ$$‹$f|$lt0$t$T2Bf9L$lwՀ|$utO$4$脎Ӌ$  L$HPD$uf9wË$ $;$, 0 D$zf6 D$0 $< $T X D$uf^ D$X $虆d $躍| D$rf D$ $\ $} D$tf D$ $ $@ C&f C&D$ $ $‰ D$tittEtЉu$  D$tBD$tD$L$ $_o~&ύ I$, VF$,Fƀ`ƀHǀ @Z LPX\$ ddhFC&f9[$F0Ɔ2Ɔ3Ɔ4Ɔ5|$ui($lD'lD&lDLlDBlfDŽDŽlAAlBBD$uf9w$fǀ$Ƅ=u|$ti $D0D1D $QQQQQQQQlQ(Q(P(P,D$tf9X$ƀ|$rt}iҰ$fD2D&D(D4ы$AAAAlTD$rf9w$ƀ$ D$$ $$ 8 D$@$$4 \ D$@$щ$X  D$@$讉|  D$@$蒉  D$@$v $ |$qtZÉֿ)ŋD$L$˂TPX p$L$LPD$qf9w$ D$$ $ֈD$X$ $ T$P$,T$XPX p$L$PP5 u$ D$$ $.$ $  f|$ltWÉֿ)ŋD$T${TPX p$L$TP$f9|$lw|[^_]Ðt&UWVS l$ |$$_TG+D$l$$#fO2}+tIC t <C u E+f9wfv%EэiU#EэiUtD$,$C89C8 FMD<FBt$D$$ :~Ott&,$h$~OuF tV@lF(u,$F 8D$T$$轝F 8D$T$$蠝F k t$,$ EEXiUt EXG&fg2t"‹D8u4L$L$4A< v D$l$$:)(Pu[^_]Í',\$t$ |$$l$(\$0D$4D$C,(,$$ƅ ,$!Džut$,$VHT$PL$\$G$ldždž  \$G$k\$ t$|$l$UWVSD$8D$T$0B,0l$4 7t$9D$L$Ѓ<Ct Cxt5{tmuCD$t$D$0$8Cv@ـ{t8uɉL$t&D$D$t$D$0$x8CwC\݃D$;\$BD$D$0$[^_]ÍUWVS,D$@D$ T$DRT$+L$DQf‹\$ tbfw\$ li(D,@?fw\$ i D@\$ iDT@T$ 2D$@,D$$li(4|$+fdžD$Dx0@2<t_<w <'<t8< mL$DL$4$X\$D\$4$CD$DD$4$@.T$DT$4$\$F,@$hdždž  \$F,@$#hF&L$I\$ 6ID$ d,$gƋT$ hh.V2~&~%󀾵WN$щЃu)t$t$ FMD$F0D$L$$ $_$ut\$\$ $>\$D$ $ƆL$  B88u{tw\$[D$ d,$fƋT$ hh.V2~&tF%<"t< uD$ 4$CDD$ 86wT$RL$ Ƅ1\$$\$ $}|$+D$Dx\t\D$T$ $L$DL$\$ $<|$+tkff vfdžD$ 4$4D$ 1D$@T$ ,D$$l&,[^_]Ð$t$\$ t$T$L$tDt@t<|$t5fw.t!B0B1B2fJr D$B|$t$Í&'|$% T$RB ÐVS\$L$0t$8D$ f="'wIf= 'syf=@!tsf=@!wf= !tff="!t`f=Pt&u`Tf=D!tNf=D!rPf-'fwFt&6f='t0f='t&wf=$'t f='t&u f=tf=tf=ru @D$D$D$,ffD$ D$$fD$(ffT$4fT$fD$[¸t&=uȃ Í D$9t $Zȃ Í D$9t$Z@ȃ ÉUWVSD$D$D$vT$L$ ,<D$ff=wwi {0tP{(&<$8ZHS,C,yQ y&uy%wA't A tP8K0w舃iT$yt<‹Dfwi DPiDTPt&Qffwi D@iDT@T$0:Bu%A0%=tD$AL$$-1AGft;t[^_]É'\$ t$|$l$l$ |$(u4$IÅuD$,ƀv4$…u\$4$T$,ƂfC0C1C2KL$$A3fCEC C,BC@S\@B@P C|CD$CH$B\$4$C\$ t$|$l$ \$ t$|$l$l$ |$(D$,D$u4$RÅ4$0…tzC0C1C2KL$$A3fCEC C,BC@S\@B@P L$H C|CD$CH$A\$4$l$H\$ t$|$l$Í\$ t$|$l$|$ l$(74${Åtr4$]…tdC0C1C2CL$$A3fCC C,BC@S\@B@P C|CD$CH$@\$4$裪\$ t$|$l$ \$t$|$|$ 74$Åtm4$…t_C0C1C2CL$$A3fCC C,BC@S\@B@C|CD$CH$,@\$4$\$t$|$Ã\$ t$|$l$t$ $[?$>ǀ02u 8F0sF0 u߉<2Dm,`uэR@Y 2LPX\ddh0Dm,\$ t$|$l$Í&\$t$|$t$ X $O>$=¸À0uf9sf&=uˀÈi(l$lfDlD&lD=lDlD@lD?lDAlƄlƄ4$l~5u lL(l\$t$|$Ít&'S\$T$]8$[Ív'\$t$|$t$ $<$;‰.u8s &πÈi$#fD$~5u fD0D&fD2fDŽD$8$\$t$|$Ðt&VSt$ D$$@$0Ƅ0ۉ\$ $*;i۰x4t D$4$*D$8$D[^Í&'S\$D$P3ƄD$ $:D$8$[S\${(tCXD$T$B$;C([ÍvS\${LtD$T$B$;CL[Ã\$ t$|$l$\$ l$$Ei(lD$$Utx|uDŽ&EƄljD$X $9lxBt D$$l$$lD&lD'\$ t$|$l$ \$ t$|$l$l$ t$$f~0F2<Ff=|<cik){9{tl<$399uA\$,$!;{(CXC`[dCXD$E$E9C(CPzSFBFBFf=lF0%=i(kO{9{tn<$e89uF\$,$;{t^ǃǃD$E$o8CL)CPzSFBFBt&\$ t$|$l$Í\$ t$|$l$|$ l$$U(f!D@ftI8t7!t$0 $6l$<$l$<$s\$ t$|$l$ \$t$|$|$ t$$f~0F2<Ff=w i°{(u8Vxti@BCXC`[dCXD$G$6C(SsCV2C)Ff=w lF0%=tgi({LuDVxti@BǃD$G$A6CLSsCV2CO\$t$|$É'UWVS,D$DPf/‹\$@tbfw\$@li(D,@?fw\$@i D@\$@iDT@T$@2Dm,D$ i ‰T$D$DP@B<t+<6DmT$@6qDmD$@,L$(Z \$&RT$'6tjDmD$@0d,$g4ËT$@hh+SL$9K0uCMT$D:Btt&D$@806wT$DB\tD$L$( $D$DD$T$($_|$'<w5t1D$D$ L$DAD$C0D$\$ $)t%<v!C'C&c(\$D$($]+D$'D$ D$&D$T$T$L$ $߃DmD$@d<$(3T$@hh9Q D$9A0uAMT$D:BtT$@86wQ$Ѓu(t#L$ \$DCD$A0D$D$ $T$DB\tD$L$@ $\$D\$D$@$-T$@1Dm,D$  O,[^_]ÉUWVS l$ |$$\$(C'C&\$D$<${0tSC BC0h0{Otv,$(u$8{Ou拓tD$D$$1S0tD$CMD$$蒮s ~|u~C(u,$D$C D$,$S BD$BD$$R`9C D$8D$$NC D$8D$$NC FlS4t CMD<CBo \$,$tO t9w8&4$0W t&[^Ðt&SD$ 0 $e*D$@u[Ít&' D$9t $*ȃ ÐD$ittET$É'T$L$ DJpfDJpRËT$&;2t¤ ufÍvVSt$ L$\$882u892uiƄ1¤ u[^Ð&UWVS|$ D$$D$l$T$(]\$tWt&9Gu(:\$uitET$(&t:L$u[^_]ÍUWVSl$4\$<|$0|$8tw#D$|$@T$@T$WD$t+D$9Gu8tD$t8T$ul$ittED$dD$D$$ktEt_ݍpET$&T$\`K(GP@CBABAB A T$8BwD$ittE)9GÃt8uÃ[^_]Ít&UWVSD$$D$\$(f$|$i8 D$9D:upLvQtuHi8 [Ѝ :\$YD$ A A$fX\$X‹\$,BCBA0 =ur[^_]Ð&UWVS l$$t$ ~tIitEtD$l$E$ 'u8Fw»؃ [^_]ÍvS\$D$D$$x EjttO>uD$,$c [^_]UWVS,D$DD$T$@T$ D$T$@B*T$T$D$$OD$@x*WD$T$ 0T$T$ 4PT$T$ TD$$D$(t&<t,<r<u4D$$ D$($"D$$D$(D$$D$( t$T$T$$|$T$$D$$'E]iU\$D$$D$$TA4 \$T$$T$$0]EiUD$D$$D$$ D$(T$$']iU\$T$(T$$?\$D$(D$$]EiUD$$T$$'biU\$T$$T$$rA4 \$D$$D$$NiUD$T$$T$$-T$(D$$'iU\$D$(D$$?\$T$(T$$iUD$D$(D$$T$@z*D$D$$|$v!T$ $'=]iUD$ $'iU\$D$ $,ذT$@z*uÀ &À\$D$ $|${]EiUD$D$ $D$$']iU\$D$$\$D$$p]EiUD$D$$MT$$']iU\$D$$\$D$$]EiUD$D$$D$$']iU\$D$$\$D$$}]EiUkiUD$D$ $LT$$'iU\$D$$\$D$$iUD$D$$D$$'iU\$D$$\$D$$}iUD$D$$\T$$'iU\$D$$&\$D$$ iUD$D$$|$vxt$T$ 0$'D$ 4iU\$D$$㏃p\$D$$viUvt$T$ P$'D$ TiU\$D$$㏃p\$D$$iUD$D$$,[^_]Ðt&\$ t$|$l$l$ }wJ |މ8uhCD$ CD$CD$CD$CD$CD$ CD$D$$( |$`G|$,$tt&D$<|$<6,$HÅND$8T$8 tK5D$8L$8 tK5D$8t$8 tK5D$8|$8 tK5 D$8T$8 tK5D$8L$8 tK5C0ߋD$8t$8 DP@CD$`C$T$`B}+t0t$`F tˆL@C28M+w܋D$`H0S P0D$`,C K$T$`B4D$`D$ |$T$ $_,$藪Å@'@&fǀ@$@%@D@HD$8t$8 DP@AA|$`{,<$fK8<$T< vfK8D$`@ P25,G5teP|t.@|DŽD$D$$3vt&ǀDŽ$ҍ@C\$<$92<ЍR,\$$ xxPRd,$};hh)Q y&t Y$ӉЃu)tGL$ AMD$A0D$D$$$]L$<$:L$<$ t&86DD$5t&;tmJ|tfzlu`,[^_]ÍWVSt$ >4$t_+t1V t!Ft$<$\u8u<$Wt?V<$/uƃ@0@1@2CfAAxA A,A@A|L$<$w<T$$=s,><$uƃ@0@1@2CfAA A,A@A|L$<$;Eډ2><$8K<$~K>uƃ@0@1@2H3CfBB B,B@B|KAT$<$;T><$Z~uƃ3@0@1@2CfAA A,A@A|L$<$:><$}uƃ@0@1@2 CfAA A,A@A|L$<$D:><$}uƃi@0@1@2@4CfAAxA A,A@A|L$<$9C&S$Ѓuu{4u4$襻{'uC,\$D$D$0$Fu~8~ `|vV(Z*B9}6CB*B+B&B2fB2T$T$0$Oe9t~8~ u4v/B&B2fB2T$L$0 $ <$wF\$t$ |$$l$(,Ív',\$t$ |$$l$(l$4u,EL$0E&<<w;< < w<S<<t&t&<<w<t9<wG<t]<gD$,${}QD$,$a}7D$,$v,$e ,$uE9t,$~,$,${,${E&~ ~8v<$H‹FF&54 LF4‹iUfF 4 DF4‹iUfV"f F f@Au F&f~"߃$F&4 DF4‹iUF4 LF4‹iUtF tF Ѓ FF+<F&G4 LV4ЋiUF,F&F&F2f%fF2D$4x\t\D$,$KT$4T$,$JG|$,$,F&F+F+:Fs F&F+F&$ DZF&F&t&{F&rF.)F&Z4 LF4‹iUۋ4 DF4‹iUٱu F& @ 9yF.< wF&F.F+|<D$ t>D$_8$۩D$F+L$9LBn\$t$ |$$l$(,Í\\$Lt$P|$Tl$Xl$`|$dWffwli(D,@:vfwi D@iDT@D$@Rd<$+hh9Q A%<"t< uAf;D$>r fD$>L$@86w|$@?T$@z&1B&T$,$u F%v"u F%N( AtfN8~%uJEf= 'tf='u:\tG\D$,$?|$,$>t$L$8L$,$l_@t[Vd(u􍖌uNdSCFdBABAB A BABAC ~%F&D$6f$'eF&O@QA A A ‰A A A ЉFDFHuf$'F&NufN8F&:F& 1 u2|$=t|$=u$D$6f$'蓤F&\tG\D$,$U=|$,$D$@8tAD$ #AD$ AD$ AUD$ A/AAD$ AC4C5AC3AD$ C3AC4C5AC6AC7AC9A C8AD$ rAC4C5AC3AC6AC7AC8AC9AD$ 4D$ C4t&ApAAAA@D$ D$ D$ [Ív'<\$,t$0|$4l$8l$Du@|$ t Fx}0%ugD$ D$ D$L$uD$D$T$D$D$$8D$ D$ D$\$D$D$D$L$uD$D$ &vT$D$D$$ U@D$ L$D$$>(\$,t$0|$4l$8<ÉVSL$ \$$Q,2C0u_ iUD$ =t =uB ǃ ǃ ǃ <ǃ ǃ ǃ $t&ǃ Eǃ E$[^Ív'<\$,t$0|$4l$8Ɖ׉L$hD$@<v؋ HT$(|$\$$T$("'6u iUD$(T$Ћ\$,t$0|$4l$8<Í'S(\$0 H T$$D$4D$D$$LT$$'uC-9iUT$8Ѓ([Ít&'UWVS,ÈT$̓|$@{ HD$D$$T$(T$(' u* iUD$!Љ8u (T$($ 0v;t$@s,[^_]ÍS(Ë T$$D$D$$T$$T'hu$$tvЃ([Ít&,\$$t$(\$0t$4D$#D$#D$t$$ur|$#tyBt_ H T$t$D$$UT$'u$"t &\$$t$(, UWVSfL$p8t0D$ $f\$88D$ $fT$pt0D$$eL$8D$$e\$pt0D$$eT$8D$$eL$pt0D$$ce\$8D$$FeT$p, t0D$ $%eL$8, D$ $e\$pT t0D$< $dT$8T D$< $dL$p t0D$ $d\$8 D$ $dT$pt0D$p$kdL$8D$p$Nd\$p tX  D$T$ L$ $dL$8  D$T$  D$ $d\$p4 tX8 < D$T$ L$ $cdL$88 < D$T$ 4 D$ $2d\$pX tX\ ` D$T$ L$@ $cL$8\ ` D$T$ X D$@ $c\$p tX D$T$ L$ $cL$8 D$T$ D$ $fc\$p| tX D$T$ L$d $1cL$8 D$T$ | D$d $c\$p tX D$T$ L$ $bL$8 D$T$ D$ $b\$p tX D$T$ L$ $ebL$8 D$T$ D$ $4b\$p tX  D$T$ L$ $aL$8  D$T$ D$ $a\[^_]ÍS\$$$Hf $:f$$a$^D$$[É' T$D$B3D$$ Ív'S\$$ 8 $ [Ð&S\$$8 $[Ð& D$$Q Ív',\$t$ |$$l$(É׉͋pl@xD$E8/$gD$@0@1t <Ѓ Ѓ T$B2BFfBZ B,B@B|T$D$$ƃfǃtYClt\fuD$D$!@,$f$_T$$,Clt uft"D$xuCl@:fCf T$T$D$$ t&؋\$t$ |$$l$(,Ðt&,\$t$ |$$l$(\$0|$4slkx ,$D$@0@1<T$B2BFfBZ B,B@B|T$,$#ƃfǃtUCltXfuD$D$!@,$ff$^,$躚Clt uftD$xtT$T$,$؋\$t$ |$$l$(, L\$C?Rt&(C0C1C2C3C4C5C6D$fC7D$C8C9$*SEl@fCCk C\@C@D$E`C,fC$ ElCDC|D$D$$PC,D$ C\P@ D$T$D$$Pƅ\$D$$ltxEltqtofuD$D$!@,$ f$VD$$Eltt릸{tv ft߃[^_]Ðt&l\$\t$`|$dl$hl$pt$t|$xD$|fD$ $T$]l{%u$QW|C,D$DUxT$8fDž'$D$@Lf|$ vD$ D$$VD$8$D$|$t7D$K T$<BT$LT$D$$$T$@z\tЃ\D$D$8$T$@BdD$@D$T$8$@T$88@'l$8D$$jc(\$\t$`|$dl$hlÐt&\$t$|$T$ \$$B,8sTC< tM< w<w<s=$<u&'<"t.<"r&<vaB @Fn FnFn {\t){,wC\D$<$C\D$<$\$<$A4$Vx\$t$|$Í\$t$|$t$ ^luD$($T$$fu ~|vtD$($T$$v;{&C4t x5C,@8{Ot\$D$$D$$D$(K$щЃu4C&C'\$ CMD$C0D$C,$t&t~S4t0B2tofB2C4f@2C4@&C4D$<$jGC&C'\$<$t1C&C'fǃ\$<$SD$($T$$t&\$t$|$S\$Cx$…{tr <u8{tuCCmCCtCT<uPCCtC+vCtu CpuC C[ÍvVSt$tf3LJLJp:\$F$=\$@t$D|$HLÉUWVSD$8i(ŋT$0l8Ǹ L$4ilM }0u-}4u'r+ ],; D$4E4T$4BtE0BpL$0q+tS],D$0; t/T$09 u\$0C)T$48uËT$08,:.\$F$7dždžA \$F$7\$t$Ív'UWVSLD$dPT$ @D$J L$T$`88,tFf=w5‹iuGvu8ø t&,tFf=w5‹iuGvu9t$< ;l$L$h< i T$`8$wD$D$$<T$hD$ pA$#$L$$ESD$HD$ D$D$ $*qD$Hl%i'sL)L$$<D$HD$ D$D$ $I*D$H%ik()L$$D$HD$ D$D$ $)D$H%ik()L$$jD$HD$ D$ D$ $w)t:D$Ht9%ik()L$$ <D$hT$ RT$+D$8D$<D$@D$DD$ƉL$.t&f  BRЍn@u DŽH֬6  BRЍDŽƬKP @ CBABAB A BABABABAD$ D$ 8iҰFDFGT@ F <u-FHPTF F Rock@etSt@or W"FWE<u!FF FHPTF EJ34fF0 FvW F F dW"F FrWFD$$F$  [^_]Í&'UWVS t$(0= uD$ 8D$$D$$'ft uK8ø 8$yT$$)‰D$$f f3i ,U tl,