[28148] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 9512 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Sat Jul 22 11:05:53 2006

Date: Sat, 22 Jul 2006 08:05:04 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)

Perl-Users Digest           Sat, 22 Jul 2006     Volume: 10 Number: 9512

Today's topics:
    Re: "bad interpreter" error <mritty@gmail.com>
    Re: "bad interpreter" error linziheng@gmail.com
    Re: "bad interpreter" error <tadmc@augustmail.com>
    Re: Can anybody help me get a job or work usenet@DavidFilmer.com
    Re: CGI.pm and lost carriage returns <flavell@physics.gla.ac.uk>
    Re: numeric sort on string like a123-3 <rvtol+news@isolution.nl>
    Re: numeric sort on string like a123-3 <tadmc@augustmail.com>
    Re: perl + regex bug? <rvtol+news@isolution.nl>
    Re: Problem with Date::Manip <mritty@gmail.com>
        Problem with function "crypt" <madan.narra@gmail.com>
    Re: Problem with function "crypt" mgarrish@gmail.com
    Re: Problem with function "crypt" <rvtol+news@isolution.nl>
        search and replace in a binary file <rafalk@comcast.net>
    Re: search and replace in a binary file <tadmc@augustmail.com>
    Re: subroutine <tadmc@augustmail.com>
    Re: Trouble with parsing text file and grabbing values  <nobull67@gmail.com>
    Re: Trouble with parsing text file and grabbing values  <rvtol+news@isolution.nl>
        Win32-Printer problem <jwp@ont.com>
        Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: 22 Jul 2006 05:33:07 -0700
From: "Paul Lalli" <mritty@gmail.com>
Subject: Re: "bad interpreter" error
Message-Id: <1153571587.107581.113510@m79g2000cwm.googlegroups.com>

linziheng@gmail.com wrote:
> I use vim to create a perl file, change its permission to executable,
> and then type "./myfile.pl" to run it, but i got the following error
>
> : bad interpreter: No such file or directoryl
>
> The first line of the file is pointing correctly to my perl.

 .... so you think, anyway.

> And when i
> run "perl myfile.pl", it runs happily. I dont know what's going wrong.
> Is it something wrong with my vim?

I've never used vim, so I can't answer that.  However, I see this error
all the time when people write their files in Windows and then transfer
it to unix.  You get an additional non-printing character on the end of
each line, and therefore your shebang is actually pointing to
"/usr/bin/perl\r", which doesn't exist.

Try running dos2unix on your file, and see what happens after that.

Paul Lalli



------------------------------

Date: 22 Jul 2006 05:54:42 -0700
From: linziheng@gmail.com
Subject: Re: "bad interpreter" error
Message-Id: <1153572882.834465.75290@m73g2000cwd.googlegroups.com>

Hi,

Your guessing is totally correct. I set the fileformats in vim to
support dos format. When i turn it off, the error is gone.

Thanks a lot for your suggestion!


Paul Lalli wrote:
> linziheng@gmail.com wrote:
> > I use vim to create a perl file, change its permission to executable,
> > and then type "./myfile.pl" to run it, but i got the following error
> >
> > : bad interpreter: No such file or directoryl
> >
> > The first line of the file is pointing correctly to my perl.
>
> .... so you think, anyway.
>
> > And when i
> > run "perl myfile.pl", it runs happily. I dont know what's going wrong.
> > Is it something wrong with my vim?
>
> I've never used vim, so I can't answer that.  However, I see this error
> all the time when people write their files in Windows and then transfer
> it to unix.  You get an additional non-printing character on the end of
> each line, and therefore your shebang is actually pointing to
> "/usr/bin/perl\r", which doesn't exist.
>
> Try running dos2unix on your file, and see what happens after that.
> 
> Paul Lalli



------------------------------

Date: Sat, 22 Jul 2006 08:13:39 -0500
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: "bad interpreter" error
Message-Id: <slrnec4943.84g.tadmc@magna.augustmail.com>

linziheng@gmail.com <linziheng@gmail.com> wrote:


> and then type "./myfile.pl" to run it, but i got the following error
> 
>: bad interpreter: No such file or directoryl
> 
> The first line of the file is pointing correctly to my perl. 


No it isn't.


-- 
    Tad McClellan                          SGML consulting
    tadmc@augustmail.com                   Perl programming
    Fort Worth, Texas


------------------------------

Date: 22 Jul 2006 03:14:09 -0700
From: usenet@DavidFilmer.com
Subject: Re: Can anybody help me get a job or work
Message-Id: <1153563249.129014.52530@75g2000cwc.googlegroups.com>

robic0 blithered:
> No matter what u think of my code, I've written over 14 million
> lines of it over the years. Far more than you will ever approach.

I sure hope so!  I would be ashamed to have written such mindless
verbosity. It reminds me of some crap code I've seen floating around.
Such as something called TkGenerator (but I don't recall what dimwit
wrote it).

-- 
David Filmer (http://DavidFilmer.com)



------------------------------

Date: Sat, 22 Jul 2006 12:34:04 +0100
From: "Alan J. Flavell" <flavell@physics.gla.ac.uk>
Subject: Re: CGI.pm and lost carriage returns
Message-Id: <Pine.LNX.4.64.0607221206220.2443@ppepc20.ph.gla.ac.uk>

On Fri, 21 Jul 2006, A. Sinan Unur wrote:

> David Squire <David.Squire@no.spam.from.here.au> wrote in
> news:e9qamj$heb$1@gemini.csx.cam.ac.uk: 
> 
> > Fair enough. Point taken. There would have to be other sanity 
> > checks too.
> 
> Sanity checks? Checking arbitrary text entered in a textbox is 
> 'difficult' in a very real sense. 
> 
> What is needed is not checking, but encoding.

Yes, but what is primarily needed here is a sound analysis of what's 
intended to be achieved!

If the user is intended to be supplying *plain text* then indeed the 
correct thing to do is to encode the whole thing.  It would be the 
same principle (albeit a differerent encoding) if you were intending 
to use the user input for looking-up a database entry, for example
(consider SQLencode).

So, in the present context, if the user supplies any HTML tags, then 
the result should be that the HTML tags can be seen in the final 
result, without causing any side effects.

Ergo, if the user input is supplied as plain text, and the server-side 
process is going to insert it into some HTML, then at the very least 
it has to HTML-encode the characters "<" and "&" (for example as &lt; 
and &amp;), in addition to dealing with the newlines issue.  That's 
what you had in mind by "encoding", isn't it?

If, on the other hand, it's intended that the user should be allowed 
to insert a safe subset of HTML markup, then the server-side process 
needs to thorougly analyze the input and allow *only* those permitted 
markups through.  It's amazing how many ways have been found to bypass 
naive checks because the analysis wasn't thorough enough.  As the 
relevant FAQ warns us, regexps are an inappropriate tool for analyzing 
HTML markup - bearing in mind that the programmer has no control over 
what the user may be entering - linebreaks inside HTML tags - 
deliberately defective comment markups - etc. etc.

The above-quoted reference to "sanity checks" is a dangerous swerve. 
The only secure way to proceed is to allow *only* what you've decided 
to allow, and reject all else.  The converse idea, that you can detect 
all malicious cases, and allow anyything that hasn't been explicitly 
rejected, has proven over and over again to be a dangerous 
miaconception, and is rightly condemned in any security analysis.

I'll try to make this my last word on the topic, as I realise that 
much of it is O.T for this group, but I was disappointed by the number 
of responses which leaped immediately into the nuts and bolts of 
implementing a "solution" - without apparently having analyzed what 
the real problem might be. I would have to insist on this point that I 
made before:

[
Have we even understood what it is that the O.P is intending to 
achieve?  Whatever it is, I'm highly sceptical of the server-side 
processing merely sprinkling the input with <br> tags instead of 
newlines, and nothing more: it does not seem to be a solution to any 
variant of this problem that I can think of.
]

regards


------------------------------

Date: Sat, 22 Jul 2006 12:43:01 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: numeric sort on string like a123-3
Message-Id: <e9t6j9.vg.1@news.isolution.nl>

filippo schreef:

> I forgot to mention that I have also strings
> bungalow 1
> bungalow2
> a12-1
> a12
>
> etc

You are fined with 3 weeks of serious contemplation. Enjoy, and don't
hesitate to come back after that.

-- 
Affijn, Ruud

"Gewoon is een tijger."




------------------------------

Date: Sat, 22 Jul 2006 07:57:32 -0500
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: numeric sort on string like a123-3
Message-Id: <slrnec485s.84g.tadmc@magna.augustmail.com>

filippo <filippo2991@virgilio.it> wrote:
> 
> Tad McClellan ha scritto:
> 
>> my @sorted = map { $_->[0] }
>> sort { $a->[1] cmp $b->[1] or
>>        $a->[2] <=> $b->[2] or
>>        $a->[3] <=> $b->[3]
>>      }
>> map { [$_, /^([a-z])(\d+)-?(\d*)/ ] } @strings;
> 
> thanks Tad,
> 
> my problem is a lot of warnings like these
> 
> Use of uninitialized value in string comparison (cmp) at C:\work\cs.pl
> line 5291.
> Argument "" isn't numeric in numeric comparison (<=>) at C:\work\cs.pl
> line 5291.
> 
> I forgot to mention that I have also strings
> bungalow 1
> bungalow2


Your specification keeps changing, so the solution will keep changing.

This is very frustrating to folks who spend time on an answer that
cannot be used, because the initial specification was not well
thought out.

You've already used up all of your coupons, I do not care to spend
anymore time on chasing a problem that will not sit still.

Good luck with it.


-- 
    Tad McClellan                          SGML consulting
    tadmc@augustmail.com                   Perl programming
    Fort Worth, Texas


------------------------------

Date: Sat, 22 Jul 2006 12:44:22 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: perl + regex bug?
Message-Id: <e9t6ja.vg.1@news.isolution.nl>

nitroamos@gmail.com schreef:

> this is just a small part of my program, so i hope i've shown enough
> to isolate the bug.

You haven't. You could try again.

-- 
Affijn, Ruud

"Gewoon is een tijger."




------------------------------

Date: 22 Jul 2006 05:39:41 -0700
From: "Paul Lalli" <mritty@gmail.com>
Subject: Re: Problem with Date::Manip
Message-Id: <1153571981.934219.205630@s13g2000cwa.googlegroups.com>

Ted wrote:

> I can confirm that changing my code to explicitly set the mode to
> business mode gets all my code using DateCalc working as expected.  So
> it seems I hit a bug of some sort in DateCalc that results in
> "business" not triggering business mode.  Perhaps now a note to the
> fellow who developed it is warranted?

I'm still about 70% convinced there's something not being done
correctly in the relevant configuration files, but I have no idea what
needs to be done.  Therefore, I'd say sure, email the author.  Let us
know if/how he replies.

Paul Lalli



------------------------------

Date: 22 Jul 2006 04:11:32 -0700
From: "madan" <madan.narra@gmail.com>
Subject: Problem with function "crypt"
Message-Id: <1153566692.473829.11450@75g2000cwc.googlegroups.com>

hi all,
i have a problem when using the function "crypt" in my code...

i want to encrypt a password when a user enters his password in the
textfield..

i wrote a simple code which will be called by itself and accept the
password..encrypt it and displays the ecrypted one and again asks for
another password..

Problem is that it is showing the same result for what ever text i
enter..i am using perl 5.6..

this code is working when tried in console(without CGI)...but when used
CGI i get the error...

the code is as below...
***********************************************************************************
#! c:\perl\bin\perl
use strict;
use CGI;
use CGI::Carp 'fatalsToBrowser';

my($cgi,$element,%passlist,$encrypted_password,$password);
$cgi=CGI->new;

print $cgi->header;
print $cgi->start_html;

foreach $element ($cgi->param)
{
	$passlist{$element} = $cgi->param($element);
}

print "<form action=\"/cgi-bin/sample/encrypt.pl\">";

if($passlist{'gave'})
{
	($encrypted_password) = &encrypt_text($password);
	print "<br>the password you entered has been encrypted to
:$encrypted_password";
}

print "<br>Enter your password";
print "<br><input type=text name=\"pword\">";
print "<br><input type=submit value=\"Submit\">";
print "<input type=hidden name=\"gave\" value=\"true\">";

sub encrypt_text
{
	my($text)=(@_);
	my ($test,$encrypted_text);
	$test = length($text).$text;
	$text = length($text).$text;
	$encrypted_text = crypt($text,$test);
        return $encrypted_text;
}
****************************************************************************
thanks in advance
with regards
madan



------------------------------

Date: 22 Jul 2006 04:43:13 -0700
From: mgarrish@gmail.com
Subject: Re: Problem with function "crypt"
Message-Id: <1153568593.830487.238100@i42g2000cwa.googlegroups.com>


madan wrote:

> hi all,
> i have a problem when using the function "crypt" in my code...
>

>
> Problem is that it is showing the same result for what ever text i
> enter..i am using perl 5.6..
>


> use strict;

use warnings;
use CGI::Carp qw/fatalsToBrowser/;

The above lines would have tipped you off to the uninitialized value
warnings.

> use CGI;
> use CGI::Carp 'fatalsToBrowser';
>
> my($cgi,$element,%passlist,$encrypted_password,$password);

You declare $password here, but then you never assign anything to it in
the following lines of code.

> $cgi=CGI->new;
>
> print $cgi->header;
> print $cgi->start_html;
>
> foreach $element ($cgi->param)
> {
> 	$passlist{$element} = $cgi->param($element);
> }
>
> print "<form action=\"/cgi-bin/sample/encrypt.pl\">";
>
> if($passlist{'gave'})
> {
> 	($encrypted_password) = &encrypt_text($password);

And now you call encrypt_text every time with an undefined value, so
it's not surprising that you always get the same encrypted value back
(and the sub call doesn't need the special feature that appending an
'&' in front of it results in, so you shouldn't use one).

Matt



------------------------------

Date: Sat, 22 Jul 2006 14:12:39 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: Problem with function "crypt"
Message-Id: <e9tbq2.cs.1@news.isolution.nl>

mgarrish@gmail.com schreef:
> madan:

>> use strict;
>
> use warnings;
> use CGI::Carp qw/fatalsToBrowser/;

Maybe news:J2s31s.M4E@news.boeing.com applies here too:

<quote>
Often overlooked,  the warningsToBrowser call must be invoked too or
the buffer won't be flushed, eg,

     use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
     print header();
     warningsToBrowser(1);
</quote>

-- 
Affijn, Ruud

"Gewoon is een tijger."




------------------------------

Date: Sat, 22 Jul 2006 08:56:25 -0400
From: Rafal Konopka <rafalk@comcast.net>
Subject: search and replace in a binary file
Message-Id: <2v64c2l7d56iug2e8aja1s9ekdbbfe0m66@4ax.com>

I need to search and replace some strings in a binary file. When I try
something like this the code below, it works fine.  The thing is that
I'll need to use replacements that have more or fewer characters (like
150 replaced with 20, etc.  I know it requires some hairy bitwise
shifts but I have no idea how to do it.

TIA,

Rafal

&edit_up('myfile');

sub edit_up {

	my ($infile) = @_;

	undef $/;
	open(F,$infile) || die "$infile: $!";
	binmode(F);
	my $OUT = "test\\";
	if (!-d $OUT) {mkdir($OUT,07770);}

	open(OF,">$OUT" . $infile);
	binmode(OF);

	while (read(F, $buf, 1024)) {
		$buf =~ s/\[150\]/[100]/g;
		print OF $buf;
	}
	close(F);
	close(OF);
}


------------------------------

Date: Sat, 22 Jul 2006 09:56:44 -0500
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: search and replace in a binary file
Message-Id: <slrnec4f5c.87s.tadmc@magna.augustmail.com>

Rafal Konopka <rafalk@comcast.net> wrote:
> I need to search and replace some strings in a binary file. When I try
> something like this the code below, it works fine.  The thing is that
> I'll need to use replacements that have more or fewer characters (like
> 150 replaced with 20, etc.  I know it requires some hairy bitwise
> shifts but I have no idea how to do it.


If you read from one file, write to another file, and then rename
the 2nd file, then it requires no trickery at all.

Perl can do this for you, see "-i" in perlrun.pod and $^I in perlvar.pod,
though you might have to figure out how to binmode() the ARGV and ARGVOUT
filehandles.


> &edit_up('myfile');


   edit_up('myfile');


You should not use ampersands on subroutine calls unless you know what
using ampersands on subroutine calls does, and what it does is what
you want to do. See perlsub.pod.


> sub edit_up {
> 
> 	my ($infile) = @_;
> 
> 	undef $/;


   local $/;

would be better...

 ... but $/ is not used for input via read() anyway, so there is no
need to set it to anything in particular.


> 	open(F,$infile) || die "$infile: $!";


You check the return value from open(). Good. Very Good.


> 	binmode(F);
> 	my $OUT = "test\\";


It is good style to use single quotes on strings unless you want one
of the two extra things that double quotes give you (variable
interpolation and/or backslash escapes).

   my $OUT = 'test\\';

If the pathname is not destined for a Windows "shell", as in this case,
then using forward slashes in paths is a Good Idea too:

   my $OUT = 'test/';


> 	if (!-d $OUT) {mkdir($OUT,07770);}
                                  ^^^^^
                                  ^^^^^ those are some mighty
                                  ^^^^^ funny-looking permissions...


That will fail if $OUT is a file or pipe or link or ...

You probably want to test for existence rather than for directory-ness:

   if ( !-e $OUT ) { mkdir($OUT,0777) }

or written more clearly:

   mkdir $OUT, 0777 unless -e $OUT;


> 	open(OF,">$OUT" . $infile);


Now you are no longer checking the return value from open(). Not So Good.

It is now apparent that you _are_ reading from one file and writing to another,
so different lengths should not be a problem.

Did you try it with different lengths and experience a problem?


> 	binmode(OF);
> 
> 	while (read(F, $buf, 1024)) {


You probably need to handle the case where your to-be-replaced value
is broken across buffer boundaries...


> 		$buf =~ s/\[150\]/[100]/g;
                           ^^^^^^

That search string looks suspiciously non-binary to me.


> 		print OF $buf;
> 	}
> 	close(F);
> 	close(OF);
> }


-- 
    Tad McClellan                          SGML consulting
    tadmc@augustmail.com                   Perl programming
    Fort Worth, Texas


------------------------------

Date: Sat, 22 Jul 2006 08:11:37 -0500
From: Tad McClellan <tadmc@augustmail.com>
Subject: Re: subroutine
Message-Id: <slrnec4909.84g.tadmc@magna.augustmail.com>

usenet@DavidFilmer.com <usenet@DavidFilmer.com> wrote:
> Tad McClellan wrote:
>> [a reply to weberw@adelphia.net]
> 
> Gee, Tad, how is it that the OP is in Sinan's killfile but not yours?


Different people have different tolerance levels.

But this poster has now exceeded my tolerance level too, so the
killfiles are once again in sync.  :-(


> I heard you need an Oracle server to host your killfile  :^)


I usually save the post that earned each poster their invisibility.

    ls News/killed | wc -l

    744

The filesystem-as-DB should suffice for several more years worth.


-- 
    Tad McClellan                          SGML consulting
    tadmc@augustmail.com                   Perl programming
    Fort Worth, Texas


------------------------------

Date: 22 Jul 2006 03:14:14 -0700
From: "Brian McCauley" <nobull67@gmail.com>
Subject: Re: Trouble with parsing text file and grabbing values needed
Message-Id: <1153563254.860005.53000@75g2000cwc.googlegroups.com>


Mumia W. wrote:
> On 07/21/2006 12:18 PM, donaldjones@gmail.com wrote:
> > I have a large text file with many records I'd like to parse and
> > extract data.  I'm trying to conceptually figure out how to pull out
> > what I need and put in a CSV file.  Here is a snipped of what 2 records
> > look like, the beginning of each records always has a "TEST1:" and an
> > "NN:" within the first line:
> >
> > -------------------snip----------------------
> >
> > TEST1:        DTP:07/17/06 SSZ4   NN:007-74 REC:01 UN:PZZ PG: 001+
> >  CCTL FUN:007-74 CFL:L0E  MT:09/11/05-R FSS:L0E MN:L00
> >           PT:2005 2004
> > [...]
>
> I would follow xhoster's advise and set $/ (the record
> separator sequence) to "TEST1:". You can also find a regular
> expression that matches your "##:" sequences. Use the match
> operator with the /g option to get all of them.

I would consider "\nTEST1:" although this would mean the first record
had TEST1: at each end rather than having a first ecord containing only
"TEST1:"

>
> Those "##:" sequences look like they are 2-3 alphabetic
> characters followed by a colon followed by several
> non-whitespace characters.
>
> Read "perldoc perlrequick" and "perldoc perlre" to find out
> how to make the right regular expression for your needs.

I think we can be a little more help:

my %tagged_data = /(\w+):\s*(\S+)/g

Note: this assumes that the data values are not to contain whitespace
and are never null.

 "DTP:07/17/06 SSZ4" is SSZ4 part of the DTP data item?

If data can contain whitespace or can be empty then the pattern needs
to be more complex as you need a lookahead to see if we've reached the
end of the data item.

my %tagged_data = /(\w+):\s*(.*?)\s*(?=\n|\w+:)/g; # Untested



------------------------------

Date: Sat, 22 Jul 2006 13:01:14 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: Trouble with parsing text file and grabbing values needed
Message-Id: <e9t7or.vg.1@news.isolution.nl>

xhoster@gmail.com schreef:

> skip over 3 lines, then skip over the initial white space on the 4th
> line, then take everything upto the first PZY: (not taking the
> whitespace before PZY:)
>
> $record =~ /^.*\n.*\n.*\n\s*(.*?)\s+PZY:/ or die;
> my $name=$1;

That would also match

---------------------
A
B
C

D


PZY:
---------------------

but maybe that's OK.

One should use [[:blank:]] (or [ \t]), and not \s, if one only wants to
match SP and TAB.

A nice shortcut for [[:blank:]] would be \h, for horizontal whitespace,
though CR should probably not be included.
See http://dev.perl.org/perl6/doc/design/apo/A05.html about \h and \v.

-- 
Affijn, Ruud

"Gewoon is een tijger."




------------------------------

Date: Sat, 22 Jul 2006 12:50:52 GMT
From: "Jerry Preston" <jwp@ont.com>
Subject: Win32-Printer problem
Message-Id: <Mapwg.52392$VE1.802@newssvr14.news.prodigy.com>

My program had been running fine on a XP Home system until I re-installed
the printer drivers and software for an HP 1315.  I removed ALL of the
latest Perl system and re-installed it and again my programs will not print
to the printer.

Any ideas?

Thanks,

Jerry





------------------------------

Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>


Administrivia:

#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc.  For subscription or unsubscription requests, send
#the single line:
#
#	subscribe perl-users
#or:
#	unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.  

NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice. 

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.

#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V10 Issue 9512
***************************************


home help back first fref pref prev next nref lref last post