[29205] in Perl-Users-Digest
Perl-Users Digest, Issue: 449 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon May 21 14:10:04 2007
Date: Mon, 21 May 2007 11:09:12 -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 Mon, 21 May 2007 Volume: 11 Number: 449
Today's topics:
^% Britney Spears Tits Explod Leisure.201@gmail.com
Re: Catching SIGALRM in a thread <knipknap@gmail.com>
Re: Catching SIGALRM in a thread xhoster@gmail.com
Re: Catching SIGALRM in a thread <cdalten@gmail.com>
executing an sql statement in perl <MMWJones@googlemail.com>
Re: executing an sql statement in perl <mritty@gmail.com>
Re: executing an sql statement in perl <jue@monster-berlin.de>
Re: executing an sql statement in perl <paduille.4061.mumia.w+nospam@earthlink.net>
Re: executing an sql statement in perl xhoster@gmail.com
Re: ExtUtils::MakeMaker - how to distribute CGI script <brian.d.foy@gmail.com>
Passing variables into another script <csoon@xilinx.com>
Re: Passing variables into another script <scobloke2@infotop.co.uk>
Re: Passing variables into another script <sisyphus1@nomail.afraid.org>
Re: Passing variables into another script <m@rtij.nl.invlalid>
Re: Passing variables into another script <rvtol+news@isolution.nl>
Re: Problem with perl group capture. <cooldudevamsee@gmail.com>
Unicode in regexp <lassi.paavolainen@pp.inet.fi>
Re: Unicode in regexp gypark2@gmail.com
Re: Unicode in regexp <paduille.4061.mumia.w+nospam@earthlink.net>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: 21 May 2007 01:13:22 -0700
From: Leisure.201@gmail.com
Subject: ^% Britney Spears Tits Explod
Message-Id: <1179735202.407386.63690@r3g2000prh.googlegroups.com>
http://nudepicks.blogspot.com/ - TITTIES PUSSY! DOWNLOAD!
------------------------------
Date: 21 May 2007 02:03:13 -0700
From: Samuel <knipknap@gmail.com>
Subject: Re: Catching SIGALRM in a thread
Message-Id: <1179738193.217575.96790@u36g2000prd.googlegroups.com>
On May 20, 1:08 pm, Samuel <knipk...@gmail.com> wrote:
> Can anyone explain why the SIGALRM is caught in the main thread but
> not in the new thread?
I see now that thread uses in-process threads, not the operating
system's threads, so that explains this behavior to some extent (in
theory, Perl could still have it's own built in signal handler that
disambiguates the alarms, but apparently that is not the case).
> How do you catch SIGALRM in the second case?
So how to you do timeouts in threads? I am using a third party module
(Net::Telnet) in a thread that uses SIGALRM for the timeout.
Net::Telnet does provide a way to disable the timeout entirely, but I
don't know how to replace it. Any ideas?
-Samuel
------------------------------
Date: 21 May 2007 15:16:48 GMT
From: xhoster@gmail.com
Subject: Re: Catching SIGALRM in a thread
Message-Id: <20070521111649.555$iR@newsreader.com>
Samuel <knipknap@gmail.com> wrote:
> On May 20, 1:08 pm, Samuel <knipk...@gmail.com> wrote:
> > Can anyone explain why the SIGALRM is caught in the main thread but
> > not in the new thread?
>
> I see now that thread uses in-process threads, not the operating
> system's threads, so that explains this behavior to some extent (in
> theory, Perl could still have it's own built in signal handler that
> disambiguates the alarms, but apparently that is not the case).
>
> > How do you catch SIGALRM in the second case?
>
> So how to you do timeouts in threads?
I don't. I use forking instead of threads, almost always. And when
I can't, I strongly consider using a different language.
> I am using a third party module
> (Net::Telnet) in a thread that uses SIGALRM for the timeout.
> Net::Telnet does provide a way to disable the timeout entirely, but I
> don't know how to replace it. Any ideas?
My Net::Telnet documentation doesn't mention thread safety. I'd take that
as a caution against using Net::Telnet with threads.
Xho
--
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service $9.95/Month 30GB
------------------------------
Date: 21 May 2007 09:25:34 -0700
From: grocery_stocker <cdalten@gmail.com>
Subject: Re: Catching SIGALRM in a thread
Message-Id: <1179764734.550548.130190@u36g2000prd.googlegroups.com>
On May 21, 8:16 am, xhos...@gmail.com wrote:
> Samuel <knipk...@gmail.com> wrote:
> > On May 20, 1:08 pm, Samuel <knipk...@gmail.com> wrote:
> > > Can anyone explain why the SIGALRM is caught in the main thread but
> > > not in the new thread?
>
> > I see now that thread uses in-process threads, not the operating
> > system's threads, so that explains this behavior to some extent (in
> > theory, Perl could still have it's own built in signal handler that
> > disambiguates the alarms, but apparently that is not the case).
>
> > > How do you catch SIGALRM in the second case?
>
> > So how to you do timeouts in threads?
>
> I don't. I use forking instead of threads, almost always. And when
> I can't, I strongly consider using a different language.
>
Mixing threads and signals is like trying to drive in high heels. It
can make for a bad combination if you don't know what you are doing.
With that, I thought about giving some more insight into what was
going on. But the moment I started to think, I had these really
horrible flashbacks to my Mechanical Engineering days. The horrible
flashbacks ceased when I heard the following next door
Girl "F-ck you. I'm tired of this sh-t"
Guy "B-tch, you never told me sh-t"
Then I realized the days of playing "corporate monkey" where long
since behind me. I've found a certain peace and happiness working as
a $11.00/hr Clerk/back-up Janitor in a warehouse despite the fact that
I'm starting to get gray hair.
Chad
------------------------------
Date: 21 May 2007 03:11:40 -0700
From: "MMWJones@googlemail.com" <MMWJones@googlemail.com>
Subject: executing an sql statement in perl
Message-Id: <1179742300.297403.312960@r3g2000prh.googlegroups.com>
If this is the wong board to post this question can someone guide me
to the correct board...
I have an sql statement that is in single quotes
or $dbh->do ('update test set (mudid, date_of_last_entrym
number_of_entries) = (select mudid, max(thetime) as
date_of_last_entry, count(*) as number_of_entries from log@test l,
user@test u
where l.user = u.user
and mudid = '$a'
and thetime > sysdate - 90
group by mudid)')
where $a is defined as the id.
however i don't think it likes the 2 sets of single quotes. I have to
use single quotes as otherwise the @ symbols aren't read correctly.
The below sql statement works fine directly in my sql program (TOAD)
and this is why i think it is a perl problem:
select id, max(thetime) as date_of_last_entry, count(*) as
number_of_entries from log@test l, user@test u
where l.user = u.user
and id = 'MATT'
and thetime > sysdate - 90
group by id
any ideas?
Thanks,
------------------------------
Date: 21 May 2007 03:57:32 -0700
From: Paul Lalli <mritty@gmail.com>
Subject: Re: executing an sql statement in perl
Message-Id: <1179745052.452275.164600@n15g2000prd.googlegroups.com>
On May 21, 6:11 am, "MMWJo...@googlemail.com"
<MMWJo...@googlemail.com> wrote:
> If this is the wong board to post this question can someone guide me
> to the correct board...
>
> I have an sql statement that is in single quotes
>
> or $dbh->do ('update test set (mudid, date_of_last_entrym
> number_of_entries) = (select mudid, max(thetime) as
> date_of_last_entry, count(*) as number_of_entries from log@test l,
> user@test u
> where l.user = u.user
> and mudid = '$a'
> and thetime > sysdate - 90
> group by mudid)')
>
> where $a is defined as the id.
>
> however i don't think it likes the 2 sets of single quotes. I have to
> use single quotes as otherwise the @ symbols aren't read correctly.
>
> The below sql statement works fine directly in my sql program (TOAD)
> and this is why i think it is a perl problem:
>
> select id, max(thetime) as date_of_last_entry, count(*) as
> number_of_entries from log@test l, user@test u
> where l.user = u.user
> and id = 'MATT'
> and thetime > sysdate - 90
> group by id
>
> any ideas?
Because you need interpolation to occur in this string, you NEED to
use double quotes to surround the string. To prevent Perl from
thinking the @ characters start an array, simply put a backslash in
front of them.
$dbh->do ("update test set (mudid, date_of_last_entrym
number_of_entries) = (select mudid, max(thetime) as
date_of_last_entry, count(*) as number_of_entries from log\@test l,
user\@test u
where l.user = u.user
and mudid = '$a'
and thetime > sysdate - 90
group by mudid)");
Alternatively, do not put the variable within the SQL directly. Use
placeholders instead.
$dbh->do ('update test set (mudid, date_of_last_entrym
number_of_entries) = (select mudid, max(thetime) as
date_of_last_entry, count(*) as number_of_entries from log@test l,
user@test u
where l.user = u.user
and mudid = ?
and thetime > sysdate - 90
group by mudid)', {}, $a);
See also:
perldoc DBI
perldoc perlsyn
perldoc perldata
Hope this helps,
Paul Lalli
------------------------------
Date: 21 May 2007 03:58:12 -0700
From: "Thomas J." <jue@monster-berlin.de>
Subject: Re: executing an sql statement in perl
Message-Id: <1179745092.603064.165750@n15g2000prd.googlegroups.com>
On 21 Mai, 12:11, "MMWJo...@googlemail.com" <MMWJo...@googlemail.com>
wrote:
> If this is the wong board to post this question can someone guide me
> to the correct board...
>
> I have an sql statement that is in single quotes
>
> or $dbh->do ('update test set (mudid, date_of_last_entrym
> number_of_entries) = (select mudid, max(thetime) as
> date_of_last_entry, count(*) as number_of_entries from log@test l,
> user@test u
> where l.user = u.user
> and mudid = '$a'
> and thetime > sysdate - 90
> group by mudid)')
>
> where $a is defined as the id.
>
If you would "print" your sql-statement you will probably see the
mistake.
Try sting-concat via "." ...
eg. 'bla'.$a.'bla'
hth, Thomas
------------------------------
Date: Mon, 21 May 2007 14:44:06 GMT
From: "Mumia W." <paduille.4061.mumia.w+nospam@earthlink.net>
Subject: Re: executing an sql statement in perl
Message-Id: <Wei4i.13245$j63.4563@newsread2.news.pas.earthlink.net>
On 05/21/2007 05:11 AM, MMWJones@googlemail.com wrote:
> If this is the wong board to post this question can someone guide me
> to the correct board...
>
> I have an sql statement that is in single quotes
>
>
> or $dbh->do ('update test set (mudid, date_of_last_entrym
> number_of_entries) = (select mudid, max(thetime) as
> date_of_last_entry, count(*) as number_of_entries from log@test l,
> user@test u
> where l.user = u.user
> and mudid = '$a'
> and thetime > sysdate - 90
> group by mudid)')
>
> where $a is defined as the id.
>
> however i don't think it likes the 2 sets of single quotes. I have to
> use single quotes as otherwise the @ symbols aren't read correctly.
> [...]
Use double-quotes and put backslashes before the @ symbols to prevent
them (and the characters that follow) from being interpreted as array names.
------------------------------
Date: 21 May 2007 15:20:49 GMT
From: xhoster@gmail.com
Subject: Re: executing an sql statement in perl
Message-Id: <20070521112051.306$nO@newsreader.com>
"MMWJones@googlemail.com" <MMWJones@googlemail.com> wrote:
> If this is the wong board to post this question can someone guide me
> to the correct board...
>
> I have an sql statement that is in single quotes
Use place holders. That is, use a ? in the SQL string, and then pass in
the value of $a separately.
$dbh->do('whatever where mudid=?', undef, $a);
Xho
--
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service $9.95/Month 30GB
------------------------------
Date: Mon, 21 May 2007 12:27:00 -0500
From: brian d foy <brian.d.foy@gmail.com>
Subject: Re: ExtUtils::MakeMaker - how to distribute CGI script?
Message-Id: <210520071227003231%brian.d.foy@gmail.com>
In article <1179677304.637267.57150@e65g2000hsc.googlegroups.com>,
<"bwooster47@gmail.com"> wrote:
> Is there any documentation on how to distribute CGI scripts using the
> ExtUtils::MakeMaker mechanisms?
>
> It has EXE_FILES which are copied to the INSTALLSCRIPT location, is
> there something similar for CGI scripts? CGI scripts need modification/
> config before install, so maybe a automatic install is not possible,
> in which case - is there a preferred guideline on how to include
> example CGI scripts in a Perl module distribution?
An automatic install is certainly possible.
The PL_FILES key has a list of scripts to run and turn into files. It's
up to you what those scripts do, so you can do just about anything.
However, have you considered taking everything that you'd need to
configure and moving it outside the script?
--
Posted via a free Usenet account from http://www.teranews.com
------------------------------
Date: Mon, 21 May 2007 17:17:39 +0800
From: "Ken Soon" <csoon@xilinx.com>
Subject: Passing variables into another script
Message-Id: <f2roa4$okr3@cnn.xilinx.com>
I have got a main script to run 2 scripts inside. I will be passing the same
directories into both of the script
Main.pl
print "Please enter the directory path: ";
$directory =<>;
chomp($directory);
print "Please enter the directory for the summary file to be stored : ";
$dump =<>;
chomp($dump);
print "Please enter the directory of the files: ";
$ftc = "C:\\PERL";
chomp($ftc);
system "side1.pl '$directory' $dump $ftc";
system "side2.pl $directory $dump $ftc";
Side1.pl
($directory, $dump, $ftc) = @ARGV;
print "$directory\n";
print "$dump\n";
print "$ftc\n";
Let's say $directory is C:\documents and settings\csoon\file
However, what was printed is
C:\documents
and
settings\csoon\file
and the $dump and $ftc were not printed.
So yah understand that @ARGV separate by the space.
Is there anyway to circumvent this problem?
Also is there any other related kind of problem that I should be aware of
when dealing passing variables into another script?
------------------------------
Date: Mon, 21 May 2007 11:04:58 +0100
From: Ian Wilson <scobloke2@infotop.co.uk>
Subject: Re: Passing variables into another script
Message-Id: <46516ecd$0$10730$db0fefd9@news.zen.co.uk>
Ken Soon wrote:
> I have got a main script to run 2 scripts inside. I will be passing the same
> directories into both of the script
>
> system "side1.pl '$directory' $dump $ftc";
> system "side2.pl $directory $dump $ftc";
>
> Side1.pl
> ($directory, $dump, $ftc) = @ARGV;
>
> print "$directory\n";
> print "$dump\n";
> print "$ftc\n";
Try
print "directory = '$directory'\n";
print "dump = '$dump'\n";
print "ftc = '$ftc'\n";
>
> Let's say $directory is C:\documents and settings\csoon\file
> However, what was printed is
> C:\documents
> and
> settings\csoon\file
> and the $dump and $ftc were not printed.
Yes they were printed, they just didn't contain what you wanted them to.
> So yah understand that @ARGV separate by the space.
> Is there anyway to circumvent this problem?
Quoting the variables. Depends on your shell I expect.
> cat t1.pl
#!/usr/bin/perl
use strict; use warnings;
system "./t2.pl aaa 'bbb ccc' ddd";
> cat t2.pl
#!/usr/bin/perl
use strict; use warnings;
my($x, $y, $z) = @ARGV;
print "x='$x'\ny='$y'\nz='$z'\n";
>./t1.pl
x='aaa'
y='bbb ccc'
z='ddd'
> Also is there any other related kind of problem that I should be aware of
> when dealing passing variables into another script?
I wouldn't pass user-supplied data to system() without first sanitising
it. Suppose the user entered a $ftc value of '/foo; rm /*'.
I'd check the result of the system call to see if it succeeded or failed.
I'd make side1.pl and side2.pl into modules and avoid the whole messy
business of using system to invoke a shell to invoke a perl interpreter
to run another perl program.
------------------------------
Date: Mon, 21 May 2007 20:19:20 +1000
From: "Sisyphus" <sisyphus1@nomail.afraid.org>
Subject: Re: Passing variables into another script
Message-Id: <46517208$0$21505$afc38c87@news.optusnet.com.au>
"Ken Soon" <csoon@xilinx.com> wrote in message
news:f2roa4$okr3@cnn.xilinx.com...
.
.
> Let's say $directory is C:\documents and settings\csoon\file
> However, what was printed is
> C:\documents
> and
> settings\csoon\file
> and the $dump and $ftc were not printed.
Strictly speaking, $dump and $ftc *were* printed.
$directory is 'C:\documents'.
$dump is 'and'.
$ftc is 'settings\csoon\file'.
> So yah understand that @ARGV separate by the space.
> Is there anyway to circumvent this problem?
> Also is there any other related kind of problem that I should be aware of
> when dealing passing variables into another script?
>
C:\_32\pscrpt>type try.pl
print "\$ARGV[0]: $ARGV[0]\n";
print "\$ARGV[1]: $ARGV[1]\n";
print "\$ARGV[2]: $ARGV[2]\n";
C:\_32\pscrpt>perl try.pl this and that
$ARGV[0]: this
$ARGV[1]: and
$ARGV[2]: that
C:\_32\pscrpt>perl try.pl 'this and that'
$ARGV[0]: 'this
$ARGV[1]: and
$ARGV[2]: that'
C:\_32\pscrpt>perl try.pl "this and that"
$ARGV[0]: this and that
$ARGV[1]:
$ARGV[2]:
So you need to get "Documents and Settings" wrapped in *double* quotes.
Perhaps that can be achieved with (untested):
system "side1.pl \"$directory\" $dump $ftc";
Cheers,
Rob
------------------------------
Date: Mon, 21 May 2007 19:51:26 +0200
From: Martijn Lievaart <m@rtij.nl.invlalid>
Subject: Re: Passing variables into another script
Message-Id: <pan.2007.05.21.17.51.43@rtij.nl.invlalid>
On Mon, 21 May 2007 17:17:39 +0800, Ken Soon wrote:
> Let's say $directory is C:\documents and settings\csoon\file However,
> what was printed is
> C:\documents
> and
> settings\csoon\file
> and the $dump and $ftc were not printed. So yah understand that @ARGV
> separate by the space. Is there anyway to circumvent this problem? Also
> is there any other related kind of problem that I should be aware of
> when dealing passing variables into another script?
Try:
system "side1.pl", "$directory", "$dump", "$ftc";
system "side2.pl", "$directory", "$dump", "$ftc";
and read perldoc -f system.
HTH,
M4
------------------------------
Date: Mon, 21 May 2007 19:46:50 +0200
From: "Dr.Ruud" <rvtol+news@isolution.nl>
Subject: Re: Passing variables into another script
Message-Id: <f2st6f.1a0.1@news.isolution.nl>
Ken Soon schreef:
> Is there anyway to circumvent this problem?
Use %ENV.
--
Affijn, Ruud
"Gewoon is een tijger."
------------------------------
Date: 21 May 2007 04:56:11 -0700
From: Googy <cooldudevamsee@gmail.com>
Subject: Re: Problem with perl group capture.
Message-Id: <1179748571.835371.294310@a26g2000pre.googlegroups.com>
On May 17, 7:06 pm, Michele Dondi <bik.m...@tiscalinet.it> wrote:
> On 17 May 2007 06:21:57 -0700,Googy<cooldudevam...@gmail.com> wrote:
>
> >The problem I am facing is after executing first regex I am getting a
> >string into $1. After execting second regular expression $1 contains
> >result from first regex execution.
>
> Does the second regex also contain grouping. If not, then what you're
> seeing is expected. Otherwise, it's still expected, if the second
> regex did not match.
>
> >Kindly provide a solution if you have faced this kind of problem.
>
> *Which* problem? Are you perhaps forgetting to check whether the
> matches succeeded at all?
>
> Michele
> --
> {$_=pack'B8'x25,unpack'A8'x32,$a^=sub{pop^pop}->(map substr
> (($a||=join'',map--$|x$_,(unpack'w',unpack'u','G^<R<Y]*YB='
> .'KYU;*EVH[.FHF2W+#"\Z*5TI/ER<Z`S(G.DZZ9OX0Z')=~/./g)x2,$_,
> 256),7,249);s/[^\w,]/ /g;$ \=/^J/?$/:"\r";print,redo}#JAPH,
Hi Thanks, found the problem, The regex has group capture but not
matching at all.
Thanks for your reply.
------------------------------
Date: 21 May 2007 04:09:09 -0700
From: patari <lassi.paavolainen@pp.inet.fi>
Subject: Unicode in regexp
Message-Id: <1179745749.204514.91010@z28g2000prd.googlegroups.com>
Hi,
I have some text which has unicode character \u+2013 for example:
PERFORMANCE - A COMPARATIVE STUDY
How can I find this character and change it to two - characters for
LaTeX?
Somehow next code doesn't work, assuming that $str contains string
mentioned earlier:
$str =~ s/\x{2013}/--/g;
If I save that text in a UTF-8 file and open that file like this
open(FILE,"<:utf8","text.txt");
then above regular expression works. How could I get regexp to work
for text that is not read from a file which is specified to be in
UTF-8 encoding?
------------------------------
Date: 21 May 2007 05:37:37 -0700
From: gypark2@gmail.com
Subject: Re: Unicode in regexp
Message-Id: <1179751057.550086.289580@b40g2000prd.googlegroups.com>
On 5=BF=F921=C0=CF, =BF=C0=C8=C48=BD=C309=BA=D0, patari <lassi.paavolai...@=
pp.inet.fi> wrote:
> Hi,
>
> I have some text which has unicode character \u+2013 for example:
> PERFORMANCE - A COMPARATIVE STUDY
>
> How can I find this character and change it to two - characters for
> LaTeX?
>
> Somehow next code doesn't work, assuming that $str contains string
> mentioned earlier:
>
> $str =3D~ s/\x{2013}/--/g;
>
> If I save that text in a UTF-8 file and open that file like this
> open(FILE,"<:utf8","text.txt");
> then above regular expression works. How could I get regexp to work
> for text that is not read from a file which is specified to be in
> UTF-8 encoding?
Hello,
Save your script in UTF-8 encoding and just use the unicode
characters, rather than \x{****} form, in the regexp:
$str =3D~ s/-/--/g; # First "-" is \x{2013}, not dash.
Or,
decode it first, perform substitution, and encode it back:
use Encode;
$octets =3D decode("UTF-8", $str);
$octets =3D~ s/\x{2013}/--/g;
$str =3D~ encode("UTF-8", $octets);
------------------------------
Date: Mon, 21 May 2007 15:57:04 GMT
From: "Mumia W." <paduille.4061.mumia.w+nospam@earthlink.net>
Subject: Re: Unicode in regexp
Message-Id: <kjj4i.8771$296.1582@newsread4.news.pas.earthlink.net>
On 05/21/2007 06:09 AM, patari wrote:
> [...]
> Somehow next code doesn't work, assuming that $str contains string
> mentioned earlier:
>
> $str =~ s/\x{2013}/--/g;
>
> If I save that text in a UTF-8 file and open that file like this
> open(FILE,"<:utf8","text.txt");
> then above regular expression works. How could I get regexp to work
> for text that is not read from a file which is specified to be in
> UTF-8 encoding?
>
Where does the text come from?
How do you know that u+2013 is in that text?
------------------------------
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 V11 Issue 449
**************************************