#!/usr/bin/perl

#
# Proxy ֌WS폜 by gH
# \̂

###########################################################################################
#
#  Force 264 BBS o[WR.PA@łBiB ͐ANZXr̋to[Wj
#
# tFCU[΍ς݁Bi΃tFCU[̓IAIt\I@ݒu̓ItɂȂĂ܂j
# GabriDuke΍i`FbNR[hj͏펞IłB
# `FbNR[hłftHg̃tFCU[ɂ͗LłII
# `FbNR[hjꂽꍇɂ͑΃tFCU[Iɂ邱Ƃŉ摜`FbNR[h
# ؂ւ܂B𓊍e҂͗ɏʂȂƓełȂ悤ɂȂ܂B
# iIAIt؂ւ͊Ǘ҃[h[hݒʂɃWvł܂j
#
#  ̃XNvgɂ
#
# ̈Y΍XNvgɂ͉L̕XɂQA邢͂͂Ă܂B
# TTSAAXAdimdimAЂ݂ADPAH꒷AmmA/../AYuumiAiC`
# wzXgrTu[`Yui(http://www.cup.com/yui/)ɉB
# Ǘ҃pX[hݒTu[`̓XL[(http://www.rescue.ne.jp/)ɉB
#
#  Script written by Carl@[ http://carl.blackout.org/ ]@Last Modified on: 20/August/99
# zC`LȂ̂ŃoOƂ܂낵łB@[߂(^^)/~  by Carl
#
# <pK>
#  1.̃XNvgɉAzzĂSRIbP`B
#  2.[zzꍇ͔zz@Force 264(http://carl.blackout.org/)𖾋LĉB
#  3.̃XNvgLŔzẑ̓_IB
#  4.̃XNvgLŐݒu肷ꍇi^j͘AB
#
###########################################################################################
#
#  public_htmliz[y[WfBNgj
#     |
#     |-- cgi-biniCӂ̃fBNgjij̓p[~bViT[o[ݒɏ]Ɓj
#            |
#            |-- che.cgi (705)
#            |-- jcode.pl (604)@@{ϊCu
#            |-- himicode.cgi(705) ΃tFCU[pbitmap摜R[hCGIiv@ݒj
#            |-- logcut.cgi (705)@ߋOopCGI
#            |-- che.dat (606)@  ĩt@Cj\pOۑ
#            |-- kako.dat (606)@ ĩt@CjߋOpobNAbvpOʕۑ
#            |-- log.txt (606)@@ĩt@CjANZXOp
#            |-- counter.dat (606)ĩt@CjJE^[p
#            |-- pass.txt (606)@ ĩt@CjpX[hp
#            |-- a-men.dat (606)@ĩt@Cj΃tFCU[ؑւ  rzXgo^p
#            |-- himiko.txt (606) ĩt@Cj΃tFCU[psς݃`FbNR[hۑ
#            |-- phaser.txt (606) ĩt@Cj΃tFCU[pgpς݃`FbNR[hۑ
#
#   Ehimicode.cgii_摜R[hCGIj̓GfB^[ŊJďݒ肷邱
#   Eche.datAkako.datAlog.txtAcounter.datApass.txtAa-men.datAhimiko.txtAphaser.txtA
#   @͒g̃t@C
#   Ejcode.pl͒gS炸ɂ̂܂܃AXL[]
#   EPQ̃t@C̓AXL[[hŎ舵(])邱
#
###########################################################################################

#----------------#
#    ݒ    #
#----------------#

$server     = 'http://erdbeeren.virtualave.net/';
$scriptroot = $server . 'cgi-bin/';
$dataroot   = '/home/zheinz/site-data/';

##################################################
# ̃XNvgtqkŐݒ
$reload = $scriptroot . 'che.cgi';

#
# ǗpXNvg URL Őݒ
#
$admurl = $scriptroot . 'adm.cgi';

#
# L폜pXNvg URL Őݒ
#
$removeurl = $scriptroot . 'remove.cgi';

#
# LepXNvg URL Őݒ
#
$posturl = $scriptroot . 'post.cgi';

##################################################
# ʂ́uIvNtqkŐݒ

$modoru = $server;

################################### \֌W̐ݒ #####################################
# eL̑сiCj̐F
$linecolor = '<tr bgcolor="#ff8119">';

# eL̑薼̕FƃTCY
$subcolor = '<font size="+1" color="#ffffff">';

# eҖ̕F
$ncolor = '<FONT color="#ff5e19">';

# ܂>Ŏn܂ps̐F
$recolor = '<FONT color="#efaa42">';

# -----------------------------------------------------------------
# L^t@C̐ݒ 
# -----------------------------------------------------------------

# pX[h̋L^t@C̐ݒ
$pass = $dataroot . 'Ap8Rtml-encrypt-key.txt';

# f̓e܂L^t@C̐ݒƍőL^iy[W\pj
$file = $dataroot . 'Ap8Rtml-logdata-main.txt';

# tFCU[΍p̉摜eR[hp CGI t@C̎wiby Ђ݂j
$himicode = $scriptroot . 'himicode.cgi';

# Py[Wɕ\ftHgi[hۂ̕\͉ρj
$kensuu = 30; 

# őL^
$max = '300'; 

# ANZXOL^邩ǂiL^Ȃ: 0 L^ : 1j
$alog = 1;

# ANZXOgꍇ̋L^t@C̐ݒ
$access_log = $dataroot . "Ap8Rtml-bbs-acc.txt";

# ANZXOőL^iݒ萔ȏ͌Â̂珇ɍ폜j
$rescue = '1000';

# JE^[\邩ǂ
# \Ȃ: 0 \: 1 (тɂJE^[by Yuumij
$clog = 1;

# JE^[gꍇ̋L^t@C̐ݒ
$counter = $dataroot . 'Ap8Rtml-cnt.txt';

# -----------------------------------------------------------------
# A GET A^bN΍
# -----------------------------------------------------------------
$counter2 = $dataroot . 'Ap8Rtml-cnt2.txt';
$tstmp    = $dataroot . 'Ap8Rtml-tstmp.txt';
#
# Ђ݂[ǂgꍇɂ͎ۂ̒l 2 {ɂ邱
#
$access_limit = 200;
@script_list = (
                '/home/zheinz/public_html/cgi-bin',
                );

# -----------------------------------------------------------------
# ǗҐݒ 
# -----------------------------------------------------------------
#--------------------------------
# GabriDukẽ_Aec[΍`FbNR[hpiby H꒷j
$num1 = 87113; # i1`99999܂ł̔Cӂ̂T̐ŕKύX邱Ɓj
$num2 = 79; # i10`99܂ł̔Cӂ̂Q̐ŕKύX邱Ɓj

# `FbNR[hɃL[ňÍi`FbNR[h@̐\hjiby J[j
$key = "GKmPLnUv"; # iCӂ̕ÍL[ɂ@KύX邱Ɓj

#
# ŏ phaser ΍{ by gH
#
$pict = 1;

# -----------------------------------------------------------------
# ̑ݒ 
# -----------------------------------------------------------------
# ̎擾ꍇ̏C
# COԂɁ{XԂꍇ@= localtime(time + 9*60*60);
($sec,$min,$hour,$mday,$mon,$year,$wday,$d,$d) = localtime(time + 17*60*60);

#
#--- KȂ̊ɍ킹ďւ鍀ځ@܂ ---
#
$youbi = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")[$wday];
$date_now = sprintf( " %02d/%02d $youbi %02d:%02d:%02d", $mon + 1, $mday, $hour, $min, $sec );
$date_num = sprintf("%02d%02d%02d%02d%02d",$mon +1,$mday,$hour,$min,$sec); # <-ύX֎~
@key = split(//, $key);
$addr = $ENV{'REMOTE_ADDR'};
$host = $ENV{'REMOTE_HOST'};
if (($host eq $addr) || ($host eq '')) { 
  $host = gethostbyaddr(pack('C4',split(/\./,$addr)),2) || $addr;
}

&filter;

# O炸AProxy`FbNȂꍇ͕׌ŷ߉Lϐ擾Ȃ
# Ȁꍇłeɂ͕KvȂ߃tbO𗧂Ăregist[`Ŏ擾
# ̕S폜Bwb_[͈ꉞۑ by gH
#

if ( $alog == 1 ) {
  $via    = $ENV{'HTTP_VIA'};
  $xfor   = $ENV{'HTTP_X_FORWARDED_FOR'};
  $for    = $ENV{'HTTP_FORWARDED'};
  $agent  = $ENV{'HTTP_USER_AGENT'};
  $trueip = &getip;
}

#
# ȉtH[̎擾Ȃтɉ
#

#
# ̃XNvg̓[h̓s GET łtH[擾B
#
if( $ENV{'REQUEST_METHOD'} eq 'POST' ){
  read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
  $buffer = $ENV{'QUERY_STRING'};
}

@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
  ($name, $value) = split(/=/, $pair);
  $value =~ tr/+/ /;
  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

  $FORM{$name} = $value;

  if ($FORM{'page'} eq '') {
    $page = 0;
  }
  else {
    $page = $FORM{'page'};
  }
}

if ($FORM{'def'} ne '') {
  if( $FORM{'def'} != 10 && $FORM{'def'} != 30 && $FORM{'def'} != 50 && $FORM{'def'} != 100 ){
    &error('x');
   }else{
       $changedef = $FORM{'def'};
   }
}else{
  $changedef = $kensuu;
}


open(DB,"$pass") || &error('0');
@lines = <DB>;
close(DB);
$password = shift(@lines);
chop($password) if ($password =~ /\n$/);
($header, $password) = split(/:/, $password);
if ($password =~ /^\$1\$/) {
  $salt = 3;
} else {
  $salt = 0;
}

if ($header ne 'crypt_password' || $password eq '') {
  $start = 1;
  &jump_passwd;
}

#--- C --------------------------------#
&html;
exit;
#--- 牺̓Tu[` --------------------------------#

#--- etH[ʕ\ --------------------------------#
sub html {
  # ANZXOꍇ̏
  &acount if ( $alog );

  # JE^[l̏
  &count if ( $clog );

  $chcode = ($date_num + $num1) * $num2;
  # eR[hCӂ̃L[ňÍ
  $i = 0;
  $chcode =~ s/./sprintf("%02x",ord($&)^ord($key[$i++ % @key]))/ge;
  if ($pict) { 
    $rport = $ENV{'REMOTE_PORT'};
    $himicode .= "?$ENV{'REMOTE_PORT'}";
  }
  ################################
  # JE^[l͉L̓tH[ $number ł̂ōDȈʒuɈړĉ
  ################################

  print <<"_HTML_";
Content-type: text/html

<html>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=x-sjis">
<title>BBS</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="blue">
<!--VirtualAvenueBanner-->
<p>
<table border=0 width=100% cellpadding=2 cellspacing=3>
<tr><td bgcolor=#e54500><font color=#ffffff size=+3>
BBS
</font></td></tr></table>
<p>
[Counter $number]
<p>
͂߂Čfɏސllbg[NɕsȐl
<a href="./aboutbbs.html"></a>ĉB
<center>
<HR size="5" width="97%"><P>
<TABLE>
<TR><TD>
<INPUT type="hidden" uhihi="hogehoge" name="facheck1"
 value="$addr">
<FORM method="POST" action="$posturl">
<INPUT type="hidden" uhihi="hogehoge" name="facheck1"
 value="$chcode">
<INPUT type="hidden" uhihi="hogehoge" name="dammycode"
 value="$addr">
O <INPUT type="text" name="name" size="26" value="$rname">
email <INPUT type="text" name="email" size="26" value="" maxlength="30"><P>
   <INPUT type="text" name="subject" size=70><P>
bZ[WF
<SELECT NAME="how">
<OPTION value="0" SELECTED>\\Ɏs
<OPTION value="1">}\\[hsȂ</SELECT>
<font size="-1">
@<INPUT type="password" name="spwd" size="8">폜pX
</FONT>
<BR>
 <TEXTAREA name="value" rows="7" cols="80" wrap="off"></TEXTAREA><P>
 <CENTER>
 <INPUT type="submit" value="  e^[h  ">@<INPUT type="reset" value="߂">
@@[h\\
<SELECT NAME="def">
_HTML_
  print "<OPTION value=10 ";
  if( $changedef == 10 ) { print "SELECTED"; } print ">10";
  print "<OPTION value=$kensuu ";
  if( $changedef == $kensuu ) { print "SELECTED"; } print ">$kensuu";
  print "<OPTION value=50 ";
  if( $changedef == 50 ) { print "SELECTED"; }
  print ">50";
  print "<OPTION value=100 ";
  if( $changedef == 100 ) { print "SELECTED"; }
  print ">100";
  print "</SELECT><P>\n";

  if ($pict) {
    # ΃tFCU[Ȉꍇ̕\
    
    print "<TABLE BORDER=0 bgcolor=\"#dd9f21\"><TR><TD>\n";
    print "<FONT SIZE=-1 color=white>";
    print " PHASER ΍II";
    print "<INPUT type=\"text\" size=6 name=\"facheck2\"><BR>\n";
    print "摜l̓͗ɏʂēeĉB<BR>\n";
    print "îX͏t@U̓iVj</FONT></TD>\n";
    print "<TD><IMG SRC=\"$himicode\" ALIGN=TOP></TD></TR></TABLE><BR>\n";
    print "<INPUT type=\"hidden\" name=\"facheck3\" value=\"$rport\">\n";
  }
  print "</FORM></CENTER><P>\n";

  print "폜pX[h͓e҂hc̐\\pĂ܂̂łȂׂ͂ĉB<BR>\n";
  print "񓯂Oƍ폜pX[hœe邱ƂŌŒhc𐶐\\܂ixh~j<BR>\n";

  print <<"_HTML_";  
</TD></TR></TABLE><HR size="5" width="97%">
</CENTER>
_HTML_
  print "\n\n";
  
  &error('0') if ( !open(DB,"$file") );
  @lines = <DB>;
  close(DB);

  $numbers  = @lines;
  $numbers--;
  $tnumbers = $numbers + 1;
  $page_end = $page + $changedef - 1;
  if ($page_end > $numbers) {
    $page_end = $numbers;
  }
  print "<form method=\"POST\" action=\"$removeurl\">\n";

  foreach ($page .. $page_end) { # L^f[^eϐɑ
    ($number, $spwd, $date, $name, $email, $value, $subject, $link, $host, $addr, $via, $for, $trueip, $agent, $how, $checkcode) = split(/\,/,$lines[$_]);
    $value =~ s/\0/\,/g;

    $value =~ s/(https?|ftp|news):\/\/([\w|\!\#\$\%\&\'\(\)\=\-\^\`\\\|\@\~\[\{\]\}\;\+\:\*\,\.\?\/]+)/<a href=\"$1:\/\/$2\">$1:\/\/$2<\/a>/g;

    @t_value = split(/\015/,$value);
    $value = "";
    for (@t_value) {
      if ($_ =~ /^&gt;|^|^>/) {
        $value .= "$recolor$_</font>\r";
      } else {
        $value .= "$_\r";
      }
    }
    print "<TABLE border=\"0\" width=\"100%\">$linecolor<TD><INPUT type=\"checkbox\" name=\"target\" value=\"$number\">";
    print "$subcolor<B>$subject</B></FONT>";
    print "</TD></TR></TABLE>\n";

    if ($email ne '') {
      print "@<FONT size=\"-1\">\Name\F</FONT>$ncolor<B>$name</B></FONT><FONT size=\"-1\">@<A href=\"mailto:$email\">MAIL</A></FONT>\n";
    } else {
      print "@<FONT size=\"-1\">\Name\F</FONT>$ncolor<B>$name</B></FONT>\n";
    }
    
    print "<FONT size=\"-1\">@\Date\F$date\n";

    if ( $spwd ) { # Fhc̕\
      $spwd =~ s/^.*(.{11})$/ID:$1/;
      print "[$spwd]";
    }
    print "</FONT><BR>\n";
    print "<BLOCKQUOTE>\n";
    if ($how == 1) {
      print "<PRE>$value</PRE><P>\n";
    } else {
      print "$value<P>\n";
    }
    print "<BR></BLOCKQUOTE>\n";
  }
  print <<"_HTML_";
<HR size="5">eL폜ꍇ͋LɃ`FbNăpX[h͌{^ĉ
<P><TABLE border="1" cellpadding="2" cellspacing="2"><TR>
_HTML_
  $page_next = $page_end + 1;
  $i = $page + 1;
  $j = $page_end + 1;
  print "\n<TD>폜pX[h <INPUT type=\"password\" name=\"spwd\" size=\"8\"> ";
  print "<INPUT type=\"submit\" value=\"폜\"></TD></FORM>\n";

  if ($page_end ne $numbers) {
    print <<"_HTML_";
<TD>$tnumbers̐V $i \- $j</TD>
<FORM method="POST" action="$reload">
<INPUT type="hidden" name="page" value="$page_next">
<input type="hidden" name="def" value="$changedef">
<TD><INPUT type="submit" value="NEXT"></TD></FORM>
_HTML_
  } else {
    print "<TD>$tnumbers̐V $i \-&gt; Ō</TD>\n";
  }
  print <<"_HTML_";
<TD>őL^ $max</TD>
<TH><FONT size="+1"><A href="$reload">XV</A></FONT></TH>
<TH><FONT size="+1"><A href="$modoru" target="_top">I</A></FONT></TH>
</TR></TABLE><BR>
<FORM method="POST" action="$admurl?ad">
<p><font size="-1">
Ǘ҃[hF
<SELECT NAME="admin">
<OPTION value="change">pX[hύX
<OPTION value="cut" SELECTED>Lꗗ
<OPTION value="kick">[h</SELECT>
@Ǘ҃pX[h <input type="password" name="pwd" size="10">
 <INPUT type="submit" value="ύX/ꗗ/ݒ"></FORM>

<hr size="7">
<h5 align="right">
<table>
<tr><td>Powered by</td>
<td><a href="http://carl.blackout.org/" target="_top">-Force 264-</a> v3.1A</td>
</tr>
<tr><td>Arranged by</td>
<td>gH</td>
</tr>
</table>
</h5>
</BODY>
</HTML>
_HTML_
  exit;
}

#--- ^G[ --------------------------------#
sub error {
  $error = $_[0];
  if ($error eq "0") {
    $error_msg = 'L^t@C̓o͂ɃG[܂B<BR><BR>';
    $error_msg .= 'ݒut@Ć̖Ap[~bVĊmFĉB';
  }
  elsif ($error eq "x") {
    $error_msg = '`FbNR[h̓͊ԈႢHA܂͕spłB';
  }
  print <<"_HTML_";
Content-type: text/html

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=x-sjis">
<TITLE>BBS Error</TITLE>
</HEAD>
<body bgcolor="#ffffff" text="#000000" link="blue">
<!--VirtualAvenueBanner-->
<p>
<table border=0 width=100% cellpadding=2 cellspacing=3>
<tr><td bgcolor=#e54500><font color=#ffffff size=+3>
BBS Error
</font></td></tr></table>
<p>
<H3>$error_msg</H3>
uEU[߂]{^đỎʂɈړĉB<P>
_HTML_
  if($FORM{'value'} ne ''){
    $FORM{'value'} =~ s/<br>//g; 
    print "[L͓eẽobNAbv]<FORM><TEXTAREA NAME=\"repost\" ROWS=20 COLS=80>\n";
    print "$FORM{'value'}\n";
    print "</TEXTAREA></FORM>\n";
  }
  print <<"_HTML_";
</BODY>
</HTML>
_HTML_
  exit;
}

#--- ʃG[ --------------------------------#
sub errorz {
  print <<"_HTML_";
Content-type: text/html

<HTML>
<HEAD><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=x-sjis">
<TITLE>BBS POST Error</TITLE>
</HEAD>
<body bgcolor="#ffffff" text="#000000" link="blue">
<!--VirtualAvenueBanner-->
<p>
<table border=0 width=100% cellpadding=2 cellspacing=3>
<tr><td bgcolor=#e54500><font color=#ffffff size=+3>
BBS POST Error
</font></td></tr></table>
<p>
<H1>$_[0]</H1>
<H3>$_[1]</H3>
uEU[߂]{^đỎʂɈړĉB<P>
_HTML_
  if($FORM{'value'} ne ''){
    $FORM{'value'} =~ s/<br>//g; 
    print "[L͓eẽobNAbv]<FORM><TEXTAREA NAME=\"repost\" ROWS=20 COLS=80>\n";
    print "$FORM{'value'}\n";
    print "</TEXTAREA></FORM>\n";
  }
  print <<"_HTML_";
</BODY>
</HTML>
_HTML_
  exit;
}

#--- ANZXOpf[^擾 --------------------------------#
sub acount {
  $date = $date_now;
  $href = $ENV{'HTTP_REFERER'};
  if ($href =~ /$reload/) {
    $href = "";
  } elsif ($href =~ /file:/) {
    $href = "";
  }
  if ( !open(LOG, "$access_log") ) { &error('0'); }
    @lines = <LOG>;
  close(LOG);

  $axs = @lines;
  $rescue2 = ($rescue - 2);
  if ($axs >= $rescue) {
    if ( !open(LOG,">$access_log") ) { &error('0'); }
    print LOG "[$date] $href - $host - $addr - $via - $trueip - $agent\n";
    foreach $axs (0 .. $rescue2) {
      print LOG $lines[$axs];
    }
  } else {
    if ( !open(LOG,">$access_log") ) { &error('0'); }
    print LOG "[$date] $href - $host - $addr - $via - $trueip - $agent\n";
    foreach $log (@lines) {
      print LOG $log;
    }
  }
  close(LOG);
}

#--- RhoAhX擾 --------------------------------#
sub getip {
  $sp_host   = $ENV{'HTTP_SP_HOST'};
  $client_ip = $ENV{'HTTP_CLIENT_IP'};
  $http_from = $ENV{'HTTP_FROM'};

  $trueip = $sp_host   if ($sp_host ne "");
  $trueip = $via       if ($via =~ s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/);
  if( $client_ip=~ s/^(\d+)\.(\d+)\.(\d+)\.(\d+)(\D*).*/$1.$2.$3.$4/ ){
    $trueip = $client_ip;
  }elsif( $client_ip=~ s/^([\dA-F]{2})([\dA-F]{2})([\dA-F]{2})([\dA-F]{2})/$1$2$3$4/i){
    $client_ip = join('.', hex($1), hex($2), hex($3), hex($4)); 
    $trueip = $client_ip;
  }
  $trueip = $for       if ($for =~ s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/);
  $trueip = $xfor      if ($xfor =~ s/^(\d+)\.(\d+)\.(\d+)\.(\d+)(\D*).*/$1.$2.$3.$4/);
  $trueip = $http_from if ($http_from ne "");
  return $trueip;
}

#--- JE^[ --------------------------------#
sub count {
  if( -e $counter ){ @cfstat = stat $counter; }
  $number = ++$cfstat[7];
  $onebyte = '1';
  open(DB,">>$counter")||  &error('0');
  print DB $onebyte;
  close(DB);
  return $number;
}

#
# pX[hݒʂɃWv
#
sub jump_passwd {
  print "Content-type: text/html\n";
  print "Location: $admurl\n\n";
  exit;
}

# A GET A^bN΍
# 30 ȓɂx̃ANZX𒴂
# XNvgNłȂ悤ɂBby gH
sub filter {
  open(DB, "$tstmp" ) || &error('0');
  @last_tstmp = <DB>;
  close(DB);

  $tmp_stmp = time;
  $onebyte = '1';  

  if( ( $tmp_stmp - $last_tstmp[0] ) > ( 30*60 ) ){

    # 30 o߁BJE^Zbg

    open(DB,">$counter2")|| &error('0');
    print DB $onebyte;
    close(DB);

    # L^

    open(DB,">$tstmp")|| &error('0');
    print DB $tmp_stmp;
    close(DB);
  }
  else{
    if( -e $counter2 ){ @cfstat2 = stat $counter2; }
    $number2 = ++$cfstat2[7];

    # ANZXߑ̏ꍇ
    # chmod ăXNvgNłȂ悤ɂ
    #
    if( $number2 > $access_limit ){
      chmod 0000, @script_list;
      &error('0');
    }
    open(DB,">>$counter2")|| &error('0');
    print DB $onebyte;
    close(DB);
  }
}
__END__
