Tue Sep 01 20:09:50 JST 2009
Opera 10 が出たらしいが、サイトが重すぎる。
Wed Sep 02 22:30:06 JST 2009
何か良い感じの ping ツールは無いかな、と思って ports 下を漁ってみた。
% make search key=ping | egrep '^Port:' | wc 249 498 5835
ん馬鹿にするな。mapping とか wenheping とか要らないし。
% find . -type d | egrep -v '(work|files)' | grep ping | wc 26 26 444
このくらいなら見られるかな、と思って見てみた。
net/apinger C で書かれた ping 死活監視 net/arping arp で ping しちゃえ作戦 net/dhcping DHCP サーバが生きているかどうかをチェック net/echoping TCP ECHO で 疎通と性能確認 net/fping たくさんのマシンに ping net/hping TCP/IP packet asembler/analyzer net/http_ping http で ping net/mping たくさんのマシンに ping net/ssmping SSM で ping (SSM って何?) net/tcping TCP で任意のポートに ping net/wmping DockApp 版 ping net/wping Web base の ping
色んな種類の ping があるもんだな。 そうこうしているうちに、元々何をやりたかったのかを忘れてしまった。。。
Thu Sep 03 21:08:43 JST 2009
前々から map しようと思っていた奴を、ついに map した。
map ^X^N r1jr2jr3jr4jr5jr6jr7jr8jr9jr0 map ^O j.
両方とも、縦に何かを編集する時のもの。前者は縦に番号を打って行くもので、 後者は「押しっぱなし」でズズズーっと楽をするためのものだ。 さて、いつまで憶えていられるかな。
Sat Sep 05 17:03:50 JST 2009
Teraterm 4.63 をようやく投入して改版履歴を見ながら .ini ファイルの調整を しようと思ったのだが、改版履歴の間違いが気になる。
- Send break を無効にできるようにした
「DisableMenuSendBreak」と書いてあるが、 実際には「DisableAcceleratorSendBreak」だと思われる。 - Duplicate session のアクセラレータキーを無効にできるようにした
で、もう ini ファイルが多すぎてメンテがたいへん。
Sat Sep 05 17:28:51 JST 2009
リモートデスクトップで接続先ごとにランチャに登録したくなったので ちょいと調べてみた。 mstsc を起動すると現れる画面で「オプション」を選択して、 「名前を付けて保存」すると .rdp ファイルができる。 これを mstsc の引き数として渡すようにランチャに登録する。 以上だ。
Tue Sep 08 12:39:19 JST 2009
会社にて。廃棄(リース返却)予定の A400 の SCSI ディスクの初期化処理を試行。
機材はこんな感じ。 どうなってもいい機械として FLORA 370 TS4 を調達して、 32bit PCI に無理矢理 Adaptec 29160 を付けて、 SCA-2 変換アダプタ(RAD07 ライトアップ製)をカマして、 SCA-2 を 68pin ケーブルで接続。
起動時の BIOS からフックできる SCSI Utility (Ctrl-A 打鍵で入る奴) も 問題なく認識くれた。ちなみに SCSI ID は 0 だった。 FreeBSD からも、特に何もしなくても da0 として見ることができた。
Tue Sep 08 15:59:25 JST 2009
FreeBSD 8.0-RELEASE の足音が聞こえてきた。今 BETA4 だ。
Wed Sep 09 15:39:49 JST 2009
自宅マシン、調子悪し。
60G の IC35L060AVV207 って奴を付けているのだが、 こいつは実は調子の悪いマシンから剥してきて付けた事故物で、 大量に書いたりすると OS ごとストールする。
自宅マシンには ThinkPad のバックアップ(rsync) も取っているのだが、 夕べついに Disk Full でバックアップが取れなくなった。 これは HDS722512VLAT80 に取っているのだが、 そもそも ThinkPad のディスク (HTS542525K9SA00) より少ないので、 いずれ Full にはなるだろうな、と思っていた。
というわけで、ディスクを調達してきた。 Deskstar 7K1000.B の HDT721010SLA360 って奴で、7980 yen …って、安いなぁ。 秋葉原価格に比べると高いけど、ポイントで返ってくるので実質 7000 yes くらいか。
で、計画はこんな感じ。
ad1: 58644MB IC35L060AVV207 ata0-slave UDMA100 ←継続 ad0: 117800MB HDS722512VLAT80 ata0-master UDMA100 ←継続 ad4: 58644MB IC35L060AVV207 ata2-master UDMA100 ←撤去 ad8: 305245MB HDT725032VLA360 ata4-master SATA150 ←継続 953868MB HDT721010SLA360 SATA150 ←新規
ATA 増設のインタフェイスは、もう要らないかもしれないな。 そうするとデバイスの番号がズレちゃうかな。
それにしても 未だに SATA150 ってところが泣ける。 だが今は本体まるまる組み直すほどの、時間的・金銭的な余裕がない。 帰宅後に構成変更の予定。
Wed Sep 09 20:05:22 JST 2009
会社で一部のメンバが Skype を使っているので、入れてみようかと思ったが まだ ThinkPad は linux_base-fc-4_13 だったので残念。
っていうか FreeBSD 7.0-STABLE i386 で問題ないんだよね… いろいろ変わっているので、上げるの大変そうだ。
Thu Sep 10 01:03:14 JST 2009
自宅にて。
予定通りディスク換装を実施。しかし驚いたことに、boot しなくなった。 BIOS 画面をよくよく見ると、/ の入っているディスクが見えなくなっている。 なんやねん… と思いながらよくよく接続状況を確認すると、 ATA-0 の Master / Slave のジャンパ設定とケーブル接続が逆になっていた。
旧ディスクからデータを抜き出してリプレイス。 これで PATA 2発 SATA 2発 の構成になった。
ad10: 953869MB <Hitachi HDT721010SLA360 ST6OA3AA> at ata5-master SATA150
現在、内容構成を変更中。いやはや、時間がかかる。$HOME が 11G もあってびっくり。
Thu Sep 10 23:40:53 JST 2009
cvsweb で yyyy.mm.dd みたいな文字列があると勝手に man への URL に変換されて見える件について、allow_source_extra を 0 にしたら止まった。
Sat Sep 12 14:10:50 JST 2009
会社環境。Windows - Windows でキーボード/マウスをシェアできるソフトを探したら、 昔々に Windows - X Window で使っていた w2xw が未だに使えることがわかった。 懐かしいな、と思いながら使っている。
スクリーンセーバが動いていると(そしてパスワード保護をかけていると)面倒なので、 一時的にスクリーンセーバを殺すソフトを探してみた。 SmallSS というのがいい感じだ。
Sun Sep 20 22:15:22 JST 2009
会社にて。
TeraStation を FreeBSD から NFS で mount しているんだが、こいつがゴミ。 はっきり言っておこう。 TeraStation を NFS で FreeBSD から…使えないと思った方がいい。 全く役に立たないと言ったらいいすぎだが、全く役に立たない。
TeraStation を FreeBSD から 使用したい場合には、smbfs を使え。 これが結論だ。smbfs なら、けっこう使える。ただし、それでも失うものはある。 mode と owner/group (ひっくるめて、permission) は保持できない。 必要に応じて tar などで wrap してやらなければならないだろう。
Mon Sep 21 10:07:43 JST 2009
ThinkPad にて。sysutils/munin-main から入れる。
You need a group "munin". Would you like me to create it [y]? You need a user "munin". Would you like me to create it [y]?
例によって適当な uid を振られてしまうパターンだ。 ちょっと嫌なので、あらかじめユーザを作成してみる。
# vi /etc/group munin:*:4949: # adduser Username: munin Full name: Munin user Uid (Leave empty for default): 4949 Login group [munin]: Login group is munin. Invite munin into other groups? []: Login class [default]: Shell (sh csh tcsh zsh bash rbash fdsh ksh93 nologin) [sh]: Home directory [/home/munin]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : munin Password : ***** Full Name : Munin user Uid : 4949 Class : Groups : munin Home : /home/munin Home Mode : Shell : /bin/sh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (munin) to the user database. Add another user? (yes/no): no Goodbye! # make install
これでOK。続いて sysutils/munin-node を入れる。こちらは質問は一つだけ。
Would you like me to set up log rotation [y]?
ログがどこにどうできるかもわからないので、とりあえず y で。
/usr/local/etc/rc.d/ に「munin-node.sh」ができてるので、 /etc/rc.conf に、例の奴を入れる。
munin_node_enable="YES"
いきなり起動してもいいのかな。起動してみる。
# /usr/local/etc/rc.d/munin-node.sh start Starting munin_node. #
で?
プロセスとしては /usr/local/sbin/munin-node (perl) ってのが頑張るらしい。 出力はどこだろう。設定ファイルを探してみる。
/usr/local/etc/munin/munin.conf に書かれている 「htmldir」ディレクトリに、 わさわさと html ファイルができるようだ。
# grep htmldir /usr/local/etc/munin/munin.conf htmldir /usr/local/www/munin # cd /usr/local/www/munin # ls -l total 16 -rw-r--r-- 1 munin munin 2555 Sep 21 10:15 definitions.html drwxr-xr-x 2 munin munin 4096 Sep 21 10:20 xxxx/ -rw-r--r-- 1 munin munin 1455 Sep 21 10:25 index.html -rw-r--r-- 1 munin munin 473 Sep 21 10:15 logo.png -rw-r--r-- 1 munin munin 3538 Sep 21 10:15 style.css #
上記例で xxxx の部分がホスト名になるはず。 よって、このディレクトリをブラウザで見ればよい。 ローカルファイルシステムで見てもいいし、 apache 経由だったら Alias 切るなり Symbolic Link 張ってもいいし。好きにできる。
しかし、ものすごい勢いでグラフができている。 多すぎるので、ちょっと減らしたい。 ググってみると、/usr/local/etc/munin/plugins/ 以下の シンボリックリンクの有無で調整できることがわかった。 ハード構成によって異なるのだろうが、デフォルトで作られるものをリストしてみる。
cpu@ df@ df_inode@ if_em0@ if_errcoll_em0@ if_errcoll_fwe0@ if_errcoll_fwip0@ if_fwe0@ if_fwip0@ load@ memory@ netstat@ open_files@ processes@ sendmail_mailqueue@ sendmail_mailstats@ sendmail_mailtraffic@ swap@ vmstat@
fwe とか使ってない。試しに消してみることにする。
# rm if_errcoll_fwe0 if_errcoll_fwip0 # rm if_fwe0 if_fwip0
即反映ではないらしい。munin-node.sh で下げ上げしてみたが、反映されない。 しばらく放置したら、いつのまにか消えていた。 更新間隔はどのくらいなんだろうか。 …しばらく観察したところ、5 分間隔のようだった。
ログを確認する。
# tail /var/log/munin-node.log mailstats: /var/log/sendmail.st: Permission denied mailstats: /var/log/sendmail.st: Permission denied # ls -l /var/log/sendmail.st -rw-r----- 1 root wheel 728 Sep 21 03:17 /var/log/sendmail.st
644 にしておけばよかろう。
Mon Sep 21 11:33:45 JST 2009
楽ちんで気に入ったので、あちこちのマシンに投入。 しかし、あちこちで httpd が動いているわけでもないので、一ヶ所に集中させたい。 で、これがまた簡単にできる。
グラフ描画を行うもの : munin-main → どのマシンからデータを集めるかを定義。 データ収集を行うもの : munin-node → どのマシンにデータを提供するかを定義。
と考える。munin-node 側は、munin-node.conf に書く。
allow ^192\.168\.39\.100$
munin-main 側は、munin-main.conf に書く。
[superserver] address 192.168.39.100 use_node_name yes
こんな具合だ。非常に簡単だ。あとは 5 分くらい放置しておけばよい。 こんなに簡単でいいのか。っていうくらい簡単だ。
最近、Google の精度を落ちている気がするので、参考リンクを張っておく。
昔はゴリゴリ手でスクリプトを書いていたものだが…、 楽になったとは言え、嬉しいような哀しいような。複雑な気分だ。
Thu Sep 24 20:38:20 JST 2009
会社にて。
旧サーバは Maildir 形式だが、新サーバは mbox 形式にする予定。 ついては、今いない(長期休暇中)のメンバの Maildir をなんとか mbox にしたい。 いろいろ調べたところ、dovecot wiki のスクリプト を見つけた。
テストしてみたところ、一押し(?) らしい maildrop の reformail よりも procmail の formail の方が良い挙動をしてくれた。 また、若干の誤謬が含まれているようなので、ちょこっとだけ直した。
#!/usr/bin/env perl # dw-maildirtombox.pl # dw = Dovecot Wiki :-) # 注意! 出力ファイルにはシングルクォート (') 文字を含んでいてはいけません! # 実行するプログラムの指定 $cmd="formail"; system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 or $cmd="reformail -f1"; system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 or die "cannot find reformail or formail on your \$PATH!\nAborting"; $dir=$ARGV[0]; $outputfile=$ARGV[1]; if (($outputfile eq '') || ($dir eq '')) { die "Usage: ./dw-maildirtombox.pl basedir outputfile\nAborting"; } if (!stat("Maildir/$dir/cur") || !stat("Maildir/$dir/new")) { die "Maildir/$dir is not a maildir.\nAborting"; } @files = (<Maildir/$dir/cur/*>,<Maildir/$dir/new/*>); foreach $file (@files) { next unless -f $file; # skip non-regular files next unless -s $file; # skip empty files next unless -r $file; # skip unreadable files $file =~ s/'/'"'"'/; # escape ' (single quote) $run = "cat '$file' | $cmd >>'$outputfile'"; system($run) == 0 or warn "cannot run \"$run\"."; }
使い方は、以下の通り。
書式 % ./dw-maildirtombox.pl basedir outputfile 実例 % cd /home/someone % ./dw-maildirtombox.pl . /tmp/someone
このスクリプトでは、Maildir/cur/ と Maildir/new/ が処理される。
Thu Sep 24 20:48:29 JST 2009
テストメイル送信の件。 ヘッダとボディを含むテキストファイルがある時、以下のようにメイルを送れる。
sendmail の場合 % /usr/sbin/sendmail -t -om -oi < mailfile qmail の場合 % /var/qmail/bin/qmail-inject < mailfile
これが意外と思い出せない蝿脳なので、書いてみる次第。。。
Thu Sep 24 20:52:34 JST 2009
もう一丁。今どきの sendmail は、時折 "Act as Client" な指定が必要。
# mailq → /var/spool/mqueue が処理対象 # mailq -Ac → /var/spool/clientmqueue が処理対象
なので、キューのフラッシュ操作も同様になる。
# sendmail -q → /var/spool/mqueue が処理対象 # sendmail -q -Ac → /var/spool/clientmqueue が処理対象
Ac っていうのは、つまり Anonymous Coward である。もちろん嘘。
Thu Sep 24 23:27:44 JST 2009
MHonArc の出力 html をカスタマイズしたくて リソースファイルに書けるものどものリファレンスを探したが、 本家以外は無さそう。 ちなみに本家のドキュメントは英語だけど読みやすい。 デフォルト値もちゃんと載っている。
作戦としては、適当に id なり class なりを振ってあげて、 スタイルシートで個別に調整できるようにしたい…。 っていうか、なんでデフォルトで入れてくれてないのかなぁ。
あと、本文が全部 pre に入るのも、何だかなぁ。
Firefox で見ると、微妙に FFFD が入るのが謎だ。 出来上がったファイルをダンプしても、妙なキャラクタは居ないようなのだが…
Fri Sep 25 06:58:43 JST 2009
MHonArc で処理した HTML が Firefox で変な件。確かに妙なキャラクタは居ないが、 よくよく見ると ISO-2022-JP としてのエンコーディングが変だった。
1b 24 42 〜〜 1b 28 42 0a 1b 28 42 〜〜 0a 1b 28 42 〜〜 0a 1b 28 42 〜〜 0a
なんだこりゃ。
Fri Sep 25 09:26:05 JST 2009
キーワードを散らしておこう。 MHonArc, ISO-2022-JP, Firefox, FFFD, iso2022jp.pl, jp2022_to_html, patch
MHonArc で ISO-2022-JP として処理した結果の HTML を Firefox で参照すると、 本文部分の各行に FFFD が次々に現れる件。
これは、本文の処理をする時に、次々に行が連結されていくにも関わらず、 途中で目印として各行のアタマに追加している SHIFT_OUT を外してないのが原因。 よって、ad-hoc に外してあげるようにする。
# diff -urN iso2022jp.pl.save iso2022jp.pl --- iso2022jp.pl.save 2009-08-10 02:59:13.000000000 +0900 +++ iso2022jp.pl 2009-09-25 09:24:32.000000000 +0900 @@ -115,6 +115,7 @@ # remove a `trick' $ret =~ s/^\033\(B//; + $ret =~ s/\012\033\(B/\012/g; # add back eol $ret .= "\n" unless (++$i >= $cnt);
これで、手もとではいい感じになった。 みんな困ってないのかな? ちなみに IE とか Opera とかだと、特に問題ない。
Fri Sep 25 09:45:55 JST 2009
あっ。準本家見たら治ってるでやんの…。 http://www.mhonarc.jp/2.6.x/knownproblems.html
Fri Sep 25 13:08:37 JST 2009
引き続き MHonArc のメモ。ググるといろいろサンプルは出てくるのだが、 どうしたものかリファレンスとか一次情報とかが少ない/精度が低い。 というわけで、暫定リソースを貼ってみる。
<!-- =================================================================== * MHonArc resource file for mailing list archives * tested on MHonArc v2.6.16, Perl 5.008009 freebsd * invoke as % mhonarc -fileperms 0644 \ -rcfile archive.mrc \ -definevars="MLNAME=$mlname" \ -outdir /usr/local/apache/htdocs/mlarchives/$mlname/ \ -add /var/spool/ml/$mlname/spool/ * policy - mask addresses - make files as ISO-2022-JP * note - use CAPITAL LETTER for MHonArc resource elements. - If you want to write Japanese in this file, please use ISO-2022-JP. - but please do not use Multibyte Characters in this file. - Resource Reference is here: http://www.mhonarc.org/MHonArc/doc/resources.html#index http://www.mhonarc.org/MHonArc/doc/app-rcidx.html --> <!-- =================================================================== -- Global options... --> <!-- Perform actions to deter email address harvesters. --> <SPAMMODE> <!-- Do not convert email addresses in message headers to hyperlinks. --> <NOMAILTO> <!-- Set modification time on message files to message dates. --> <MODTIME> <!-- Reverse the listing order in the main index. --> <!-- 'reverse' means, newer message comes first. --> <REVERSE> <!-- Create multi-page indexes. --> <MULTIPG> <!-- Size of each index page. --> <!-- I would like to say "row per page". --> <IDXSIZE> 50 </IDXSIZE> <!-- List of header fields to exclude. --> <EXCS override> apparently errors-to followup forward lines message-id mime- nntp- originator path precedence received replied return-path status via </EXCS> <!-- =================================================================== -- sorry far east small island people... --> <!-- Hour offsets for timezones. --> <!-- of course we use JST --> <TIMEZONES> JST:9 </TIMEZONES> <!-- Charater set filter functions. --> <CHARSETCONVERTERS> plain; iso_2022_jp::str2html; iso2022jp.pl iso-2022-jp; iso_2022_jp::str2html; iso2022jp.pl </CHARSETCONVERTERS> <!-- Store "decode-only" characters sets in raw form. --> <DECODEHEADS> <!-- Perl function to use for text clipping operations. --> <TEXTCLIPFUNC> iso_2022_jp::clip; iso2022jp.pl </TEXTCLIPFUNC> <!-- Default character set for text data. --> <DEFCHARSET> iso-2022-jp </DEFCHARSET> <!-- meaningless? --> <!-- avoid $ handling for iso-2022-jp --> <VARREGEX> \$([^\033\$]*)\$(?![^\033]*\033\() </VARREGEX> <!-- =================================================================== -- Directives for Date index... --> <!-- Filename for main (first) index page. --> <!-- it means 'Date' index filename --> <IDXFNAME> index.html </IDXFNAME> <!-- Title for main index. --> <TITLE> $MLNAME$ date index </TITLE> <!-- Beginning markup for main index pages. --> <IDXPGBEGIN> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <META http-equiv="Content-Type" content="text/html;CHARSET=ISO-2022-JP"> <TITLE>$IDXTITLE$</TITLE> </HEAD> <BODY> <H1>$IDXTITLE$</H1> </IDXPGBEGIN> <!-- Link markup for previous page of main index. --> <PREVPGLINK chop> [ <A HREF="$PG(PREV)$">Prev</A> | </PREVPGLINK> <!-- Inactive link markup for previous page of main index. --> <PREVPGLINKIA chop> [ Prev | </PREVPGLINKIA> <!-- Link markup for next page of main index. --> <NEXTPGLINK chop> <A HREF="$PG(NEXT)$">Next</A> ] </NEXTPGLINK> <!-- Inactive link markup for next page of main index. --> <NEXTPGLINKIA chop> Next ] </NEXTPGLINKIA> <!-- Markup for an entry in the main index message list. --> <LITEMPLATE> <li>$YYYYMMDD$ <strong>$SUBJECT$</strong>, <em>$FROMNAME$</em></li> </LITEMPLATE> <!-- =================================================================== -- Directives for Thread index... --> <!-- Title of thread index. --> <TTITLE> $MLNAME$ thread index </TTITLE> <!-- Beginning markup for the thread index pages. --> <TIDXPGBEGIN> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <META http-equiv="Content-Type" content="text/html;CHARSET=ISO-2022-JP"> <TITLE>$TIDXTITLE$</TITLE> </HEAD> <BODY> <H1>$TIDXTITLE$</H1> </TIDXPGBEGIN> <!-- Link markup for previous page in thread index. --> <TPREVPGLINK chop> [ <A HREF="$PG(TPREV)$">Prev</A> | </TPREVPGLINK> <!-- Inactive link markup for previous page in thread index. --> <TPREVPGLINKIA chop> [ Prev | </TPREVPGLINKIA> <!-- Link markup for next page in thread index. --> <TNEXTPGLINK chop> <A HREF="$PG(TNEXT)$">Next</A> ] </TNEXTPGLINK> <!-- Inactive link markup for next page in thread index. --> <TNEXTPGLINKIA chop> Next ] </TNEXTPGLINKIA> <!-- Markup for a thread index message listing. --> <TLITXT> <li><strong>$SUBJECT$</strong>, <em>$FROMNAME$</em> </TLITXT> <!-- Markup for a follow-up link. --> <FOLUPLITXT> <li><strong>$SUBJECT$</strong>, <em>From:</em> $FROM$</li> </FOLUPLITXT> <!-- Markup representing a reference entry in explicit reference links. --> <REFSLITXT> <li><strong>$SUBJECT$</strong>, <em>From:</em> $FROM$</li> </REFSLITXT> <!-- =================================================================== -- Directives for each Message page... --> <!-- Starting markup for each message page. --> <MSGPGBEGIN> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <META http-equiv="Content-Type" content="text/html;CHARSET=ISO-2022-JP"> <LINK REV="made" HREF="mailto:$FROMADDR$"> <TITLE>$SUBJECTNA$</TITLE> </HEAD> <BODY> </MSGPGBEGIN> <!-- Main subject line markup above message header. --> <SUBJECTHEADER> <H2>$SUBJECTNA$</H2> <HR> </SUBJECTHEADER> <!-- Markup for top navigational links of a message page. --> <TOPLINKS> $BUTTON(PREV)$$BUTTON(NEXT)$$BUTTON(TPREV)$$BUTTON(TNEXT)$[<A HREF="$IDXFNAME$#$MSGNUM$">Date Index</A>][<A HREF="$TIDXFNAME$#$MSGNUM$">Thread Index</A>] <HR> </TOPLINKS> <!-- Order to display message header fields. --> <FIELDORDER> from subject to date </FIELDORDER> <BOTLINKS> <ul> $LINK(PREV)$$LINK(NEXT)$ $LINK(TPREV)$$LINK(TNEXT)$ <li>Index(es): [<a href="$IDXFNAME$#$MSGNUM$"><strong>Main</strong></a>] [<a href="$TIDXFNAME$#$MSGNUM$"><strong>Thread</strong></a>] </li> </ul> </BOTLINKS> <!-- end of resource file -->
HOME | index | prev | next