Change 30209 by [EMAIL PROTECTED] on 2007/02/10 23:55:04

        Integrate:
        [ 29593]
        Subject: [PATCH] Making adding binary files possible
        From: "Jos Boumans" <[EMAIL PROTECTED]>
        Date: Fri, 15 Dec 2006 20:51:45 +0100 (CET)
        Message-ID: <[EMAIL PROTECTED]>
        
        with a few tweaks
        
        [ 29594]
        Fix paths of pack.pl in patching.pod
        
        [ 29604]
        Subject: Re: [PATCH] Making adding binary files possible
        From: demerphq <[EMAIL PROTECTED]>
        Date: Wed, 20 Dec 2006 16:00:33 +0100
        Message-ID: <[EMAIL PROTECTED]>
        
        plus matching updates to Makefile.SH and patching.pod
        
        [ 29659]
        Check miniperl exists before using it to run uupacktool.pl
        during distclean
        
        [ 30010]
        Subject: [PATCH] Small bugfixes to uupacktool.pl
        From: "Jos Boumans" <[EMAIL PROTECTED]>
        Date: Fri, 26 Jan 2007 14:50:29 +0100 (CET)
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/maint-5.8/perl/MANIFEST#318 integrate
... //depot/maint-5.8/perl/Makefile.SH#67 integrate
... //depot/maint-5.8/perl/Porting/patching.pod#4 integrate
... //depot/maint-5.8/perl/uupacktool.pl#1 branch
... //depot/maint-5.8/perl/win32/Makefile#62 integrate
... //depot/maint-5.8/perl/win32/makefile.mk#70 integrate
... //depot/maint-5.8/perl/win32/makeico.pl#2 delete
... //depot/maint-5.8/perl/win32/perlexe.ico.packd#1 branch

Differences ...

==== //depot/maint-5.8/perl/MANIFEST#318 (text) ====
Index: perl/MANIFEST
--- perl/MANIFEST#317~30208~    2007-02-10 15:36:59.000000000 -0800
+++ perl/MANIFEST       2007-02-10 15:55:04.000000000 -0800
@@ -2312,6 +2312,7 @@
 os2/perlrexx.cmd               Test perl interpreter embedded in REXX
 overload.h                     generated overload enum and name table
 overload.pl                    generate overload.h
+uupacktool.pl                  Pack/unpack files to the .packed format
 pad.c                          Scratchpad functions
 pad.h                          Scratchpad headers
 patchlevel.h                   The current patch level of perl
@@ -3122,7 +3123,7 @@
 win32/include/sys/socket.h     Win32 port
 win32/Makefile                 Win32 makefile for NMAKE (Visual C++ build)
 win32/makefile.mk              Win32 makefile for DMAKE (BC++, VC++ builds)
-win32/makeico.pl               script to create perlexe.ico image file
+win32/perlexe.ico.packd                uupacktool.pl packed perlexe.ico image 
file, 'packd' ext is deliberate!
 win32/mdelete.bat              multifile delete
 win32/perlexe.rc               associated perl binary with icon
 win32/perlglob.c               Win32 port

==== //depot/maint-5.8/perl/Makefile.SH#67 (text) ====
Index: perl/Makefile.SH
--- perl/Makefile.SH#66~30208~  2007-02-10 15:36:59.000000000 -0800
+++ perl/Makefile.SH    2007-02-10 15:55:04.000000000 -0800
@@ -1063,18 +1063,19 @@
 
 .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
        realclean _realcleaner clobber _clobber \
-       distclean veryclean _verycleaner
+       distclean veryclean _verycleaner \
+       cleanup_unpacked_files unpack_files
 
-clean:         _tidy _mopup
+clean:         cleanup_unpacked_files _tidy _mopup 
 
-realclean:     _realcleaner _mopup
+realclean:     cleanup_unpacked_files _realcleaner _mopup
        @echo "Note that '$(MAKE) realclean' does not delete config.sh or 
Policy.sh"
 
 _clobber:
        [EMAIL PROTECTED] -f Cross/run-* Cross/to-* Cross/from-*
        rm -f config.sh cppstdin Policy.sh extras.lst
 
-clobber:       _realcleaner _mopup _clobber
+clobber:       cleanup_unpacked_files _realcleaner _mopup _clobber
 
 distclean:     clobber
 
@@ -1198,7 +1199,7 @@
 
 TESTFILE=TEST
 
-_test_prep:
+_test_prep: unpack_files
        cd t && (rm -f $(PERL)$(EXE_EXT); $(LNS) ../$(PERL)$(EXE_EXT) 
$(PERL)$(EXE_EXT))
 
 # Architecture-neutral stuff:
@@ -1214,6 +1215,12 @@
 _test_notty:
        cd t && $(PERL_DEBUG) PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) $(PERL) 
$(TESTFILE) $(TEST_ARGS)
 
+unpack_files:
+       $(LDLIBPTH) ./miniperl$(EXE_EXT) -Ilib uupacktool.pl -u -m
+
+cleanup_unpacked_files:
+       $(LDLIBPTH) ./miniperl$(EXE_EXT) -Ilib uupacktool.pl -c
+
 # The second branch is for testing without a tty or controlling terminal,
 # see t/op/stat.t
 _test:

==== //depot/maint-5.8/perl/Porting/patching.pod#4 (text) ====
Index: perl/Porting/patching.pod
--- perl/Porting/patching.pod#3~24292~  2005-04-22 07:15:59.000000000 -0700
+++ perl/Porting/patching.pod   2007-02-10 15:55:04.000000000 -0800
@@ -2,17 +2,10 @@
 
 patching.pod - Appropriate format for patches to the perl source tree
 
-=head2 Where to get this document
-
-The latest version of this document is available from
-     http://perrin.dimensional.com/perl/perlpatch.html
-
 =head2 How to contribute to this document
 
-You may mail corrections, additions, and suggestions to me
-at [EMAIL PROTECTED] but the preferred method would be
-to follow the instructions set forth in this document and 
-submit a patch 8-).
+You may mail corrections, additions, and suggestions by following the
+instructions set forth in this document and submitting a patch :).
 
 =head1 Description
 
@@ -85,16 +78,16 @@
 
     # generate a patch for a newly added file
     % diff -u /dev/null new/file
-    
+
     # generate a patch to remove a file (patch > v2.4 will remove it cleanly)
     % diff -u old/goner /dev/null
-    
+
     # get additions, deletions along with everything else, recursively
     % diff -ruN olddir newdir
-    
+
     # ignore whitespace
     % diff -bu a/file b/file
-    
+
     # show function name in every hunk (safer, more informative)
     % diff -u -p old/file new/file
     % diff -u -F '^[_a-zA-Z0-9]+ *(' old/file new/file
@@ -151,6 +144,25 @@
               -diff "diff -u" \
               [EMAIL PROTECTED] [EMAIL PROTECTED]
 
+=item Binary Files
+
+Since the patch(1) utility cannot deal with binary files, it's important
+that you either avoid the use of binary files in your patch, generate the
+files dynamically, or that you encode any binary files using the
+F<uupacktool.pl> utility.
+
+Assuming you needed to include a gzip-encoded file for a module's test
+suite, you might do this as follows using the F<uupacktool.pl> utility:
+
+    $ perl uupacktool.pl -v -p -D lib/Some/Module/t/src/t.gz
+    Writing lib/Some/Module/t/src/t.gz into lib/Some/Module/t/src/t.gz.packed
+
+This will replace the C<t.gz> file with an encoded counterpart. During
+C<make test>, before any tests are run, perl's Makefile will restore all
+the C<.packed> files mentioned in the MANIFEST to their original name.
+This means that the test suite does not need to be aware of this packing
+scheme and will not need to be altered.
+
 =item Try it yourself
 
 Just to make sure your patch "works", be sure to apply it to the Perl
@@ -379,7 +391,7 @@
 If you follow these guidelines it will make everybody's life a little
 easier.  You'll have the satisfaction of having contributed to perl,
 others will have an easy time using your work, and it should be easier
-for the maintainers to coordinate the occasionally large numbers of 
+for the maintainers to coordinate the occasionally large numbers of
 patches received.
 
 Also, just because you're not a brilliant coder doesn't mean that you
@@ -397,13 +409,6 @@
 them into the source.  Obviously you'd want the patches to be as easy
 to apply as possible.  Keep that in mind.  8-)
 
-=head1 Last Modified
-
-Last modified 22 August 2002
-H.Merijn Brand <[EMAIL PROTECTED]>
-Prev modified 21 January 1999 
-Daniel Grisinger <[EMAIL PROTECTED]>
-
 =head1 Author and Copyright Information
 
 Copyright (c) 1998-2002 Daniel Grisinger

==== //depot/maint-5.8/perl/uupacktool.pl#1 (text) ====
Index: perl/uupacktool.pl
--- /dev/null   2007-01-16 11:55:45.526841103 -0800
+++ perl/uupacktool.pl  2007-02-10 15:55:04.000000000 -0800
@@ -0,0 +1,188 @@
+#!perl
+
+use strict;
+use warnings;
+use Getopt::Long;
+use File::Basename;
+
+Getopt::Long::Configure('no_ignore_case');
+
+our $LastUpdate = -M $0;
+
+sub handle_file {
+    my $opts    = shift;
+    my $file    = shift or die "Need file\n". usage();
+    my $outfile = shift || '';
+    my $mode    = (stat($file))[2] & 07777;
+
+    open my $fh, "<", $file
+        or die "Could not open input file $file: $!";
+    binmode $fh;
+    my $str = do { local $/; <$fh> };
+
+    ### unpack?
+    my $outstr;
+    if( $opts->{u} ) {
+        if( !$outfile ) {
+            $outfile = $file;
+            $outfile =~ s/\.packed//;
+        }
+        my ($head, $body) = split /__UU__\n/, $str;
+        die "Can't unpack malformed data in '$file'\n"
+            if !$head;
+        $outstr = unpack 'u', $body;
+
+    } else {
+        $outfile ||= $file . '.packed';
+
+        my $me = basename($0);
+
+        $outstr = <<"EOFBLURB" . pack 'u', $str;
+#########################################################################
+This is a binary file that was packed with the 'uupacktool.pl' which
+is included in the Perl distribution.
+
+To unpack this file use the following command:
+
+     $me -u $outfile $file
+
+To recreate it use the following command:
+
+     $me -p $file $outfile
+
+Created at @{[scalar localtime]}
+#########################################################################
+__UU__
+EOFBLURB
+    }
+
+    ### output the file
+    if( $opts->{'s'} ) {
+        print STDOUT $outstr;
+    } else {
+        print "Writing $file into $outfile\n" if $opts->{'v'};
+        open my $outfh, ">", $outfile
+            or die "Could not open $outfile for writing: $!";
+        binmode $outfh;
+        ### $outstr might be empty, if the file was empty
+        print $outfh $outstr if $outstr;
+        close $outfh;
+
+        chmod $mode, $outfile;
+    }
+
+    ### delete source file?
+    if( $opts->{'D'} and $file ne $outfile ) {
+        1 while unlink $file;
+    }
+}
+
+sub bulk_process {
+    my $opts = shift;
+    my $Manifest = $opts->{'m'};
+
+    open my $fh, "<", $Manifest or die "Could not open '$Manifest':$!";
+
+    print "Reading $Manifest\n"
+            if $opts->{'v'};
+
+    my $count = 0;
+    my $lines = 0;
+    while( my $line = <$fh> ) {
+        chomp $line;
+        my ($file) = split /\s+/, $line;
+
+        $lines++;
+
+        next unless $file =~ /\.packed/;
+
+        $count++;
+
+        my $out = $file;
+        $out =~ s/\.packed//;
+
+        ### unpack
+        if( !$opts->{'c'} ) {
+            ( $out, $file ) = ( $file, $out ) if $opts->{'p'};
+            if (-e $out) {
+                my $changed = -M _;
+                if ($changed < $LastUpdate and $changed < -M $file) {
+                    print "Skipping '$file' as '$out' is up-to-date.\n"
+                        if $opts->{'v'};
+                    next;
+                }
+            }
+            handle_file($opts, $file, $out);
+            print "Converted '$file' to '$out'\n"
+                if $opts->{'v'};
+
+        ### clean up
+        } else {
+
+            ### file exists?
+            unless( -e $out ) {
+                print "File '$file' was not unpacked into '$out'. Can not 
remove.\n";
+
+            ### remove it
+            } else {
+                print "Removing '$out'\n";
+                1 while unlink $out;
+            }
+        }
+    }
+    print "Found $count files to process out of $lines in '$Manifest'\n"
+            if $opts->{'v'};
+}
+
+sub usage {
+    return qq[
+Usage: $^X $0 [-d dir] [-v] [-c] [-D] -p|-u [orig [packed|-s] | -m [manifest]]
+
+    Handle binary files in source tree. Can be used to pack or
+    unpack files individiually or as specified by a manifest file.
+
+Options:
+    -u  Unpack files (defaults to -u unless -p is specified)
+    -p  Pack files
+    -c  Clean up all unpacked files. Implies -m
+
+    -D  Delete source file after encoding/decoding
+
+    -s  Output to STDOUT rather than OUTPUT_FILE
+    -m  Use manifest file, if none is explicitly provided defaults to 
'MANIFEST'
+
+    -d  Change directory to dir before processing
+
+    -v  Run verbosely
+    -h  Display this help message
+];
+}
+
+my $opts = {};
+GetOptions($opts,'u','p','c', 'D', 'm:s','s','d=s','v','h');
+
+die "Can't pack and unpack at the same time!\n", usage()
+    if $opts->{'u'} && $opts->{'p'};
+die usage() if $opts->{'h'};
+
+if ( $opts->{'d'} ) {
+    chdir $opts->{'d'}
+        or die "Failed to chdir to '$opts->{'d'}':$!";
+}
+$opts->{'u'} = 1 if !$opts->{'p'};
+binmode STDOUT if $opts->{'s'};
+if ( exists $opts->{'m'} or exists $opts->{'c'} ) {
+    $opts->{'m'} ||= "MANIFEST";
+    bulk_process($opts);
+    exit(0);
+} else {
+    if (@ARGV) {
+        handle_file($opts, @ARGV);
+    } else {
+        die "No file to process specified!\n", usage();
+    }
+    exit(0);
+}
+
+
+die usage();

==== //depot/maint-5.8/perl/win32/Makefile#62 (text) ====
Index: perl/win32/Makefile
--- perl/win32/Makefile#61~30208~       2007-02-10 15:36:59.000000000 -0800
+++ perl/win32/Makefile 2007-02-10 15:55:04.000000000 -0800
@@ -1020,8 +1020,8 @@
 <<
        $(XCOPY) $(PERLIMPLIB) $(COREDIR)
 
-$(PERLEXE_ICO): $(MINIPERL) makeico.pl
-       $(MINIPERL) makeico.pl > $@
+$(PERLEXE_ICO): $(MINIPERL) ..\uupacktool.pl $(PERLEXE_ICO).packd
+       $(MINIPERL) -I..\lib ..\uupacktool.pl -u $(PERLEXE_ICO).packd 
$(PERLEXE_ICO)
 
 $(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO)
 
@@ -1280,7 +1280,7 @@
        cd ..\t && \
        $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t op/*.t 
pragma/*.t
 
-test-prep : all utils
+test-prep : all utils unpack_files
        $(XCOPY) $(PERLEXE) ..\t\$(NULL)
        $(XCOPY) $(PERLDLL) ..\t\$(NULL)
        $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
@@ -1290,6 +1290,12 @@
        $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES)
        cd ..\win32
 
+unpack_files:
+       $(MINIPERL) -I..\lib ..\uupacktool.pl -u -d .. -m
+
+cleanup_unpacked_files:
+       -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\uupacktool.pl -c -d .. -m
+
 test-notty : test-prep
        set PERL_SKIP_TTY_TEST=1
        cd ..\t
@@ -1330,9 +1336,11 @@
        [EMAIL PROTECTED](DEL) *.pdb
        [EMAIL PROTECTED](DEL) Extensions_static
 
-clean : Extensions_clean _clean
+_preclean : cleanup_unpacked_files
+
+clean : _preclean Extensions_clean _clean
 
-realclean : Extensions_realclean MakePPPort_clean _clean
+realclean : _preclean Extensions_realclean MakePPPort_clean _clean
 
 # Handy way to run perlbug -ok without having to install and run the
 # installed perlbug. We don't re-run the tests here - we trust the user.

==== //depot/maint-5.8/perl/win32/makefile.mk#70 (text) ====
Index: perl/win32/makefile.mk
--- perl/win32/makefile.mk#69~30208~    2007-02-10 15:36:59.000000000 -0800
+++ perl/win32/makefile.mk      2007-02-10 15:55:04.000000000 -0800
@@ -1163,8 +1163,8 @@
        $(XCOPY) $(PERLIMPLIB) $(COREDIR)
 
 
-$(PERLEXE_ICO): $(MINIPERL) makeico.pl
-       $(MINIPERL) makeico.pl > $@
+$(PERLEXE_ICO): $(MINIPERL) ..\uupacktool.pl $(PERLEXE_ICO).packd
+       $(MINIPERL) -I..\lib ..\uupacktool.pl -u $(PERLEXE_ICO).packd 
$(PERLEXE_ICO)
 
 $(PERLEXE_RES): perlexe.rc $(PERLEXE_ICO)
 
@@ -1431,7 +1431,13 @@
        cd ..\t && \
        $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t op/*.t 
pragma/*.t
 
-test-prep : all utils
+unpack_files:
+       $(MINIPERL) -I..\lib ..\uupacktool.pl -u -d .. -m
+
+cleanup_unpacked_files:
+       -if exist $(MINIPERL) $(MINIPERL) -I..\lib ..\uupacktool.pl -c -d .. -m
+       
+test-prep : all utils unpack_files
        $(XCOPY) $(PERLEXE) ..\t\$(NULL)
        $(XCOPY) $(PERLDLL) ..\t\$(NULL)
 .IF "$(CCTYPE)" == "BORLAND"
@@ -1484,9 +1490,13 @@
        [EMAIL PROTECTED] *.tds
        [EMAIL PROTECTED] Extensions_static
 
-clean : Extensions_clean _clean
 
-realclean : Extensions_realclean MakePPPort_clean _clean
+
+_preclean : cleanup_unpacked_files
+       
+clean : _preclean Extensions_clean _clean
+
+realclean : _preclean Extensions_realclean MakePPPort_clean _clean
 
 # Handy way to run perlbug -ok without having to install and run the
 # installed perlbug. We don't re-run the tests here - we trust the user.

==== //depot/maint-5.8/perl/win32/perlexe.ico.packd#1 (text) ====
Index: perl/win32/perlexe.ico.packd
--- /dev/null   2007-01-16 11:55:45.526841103 -0800
+++ perl/win32/perlexe.ico.packd        2007-02-10 15:55:04.000000000 -0800
@@ -0,0 +1,79 @@
+#########################################################################
+This is a binary file that was packed with the 'uupacktool.pl' which
+is included in the Perl distribution.
+
+To unpack this file use the following command:
+
+     uupacktool.pl -u perlexe.ico.packd perlexe.ico 
+
+To recreate it use the following command:
+
+     uupacktool.pl -p perlexe.ico perlexe.ico.packd 
+
+Created at Wed Dec 20 15:48:40 2006
+#########################################################################
+__UU__
+M```!``,[EMAIL PROTECTED]@`:`4``%X!```0$````0`@
+M`&@$``#&[EMAIL PROTECTED]@`````0`$``````#`````````````````````
+M`````/___P![`````'L``'M[`````'L`>P![``![>P"]O;T`>WM[`/\`````
+M_P``__\`````_P#_`/\``/__``````#________________W_X________^/
+M_________W__________C_________^/_________X]___________A_____
+M__________C____X_____X__________^/__?___C_C_C__________X____
[EMAIL PROTECTED];('3]6W,@_5MN(/T3=7/P
+M`7!RX`-L9>`#('[EMAIL PROTECTED]@=E=\,/[EMAIL PROTECTED];O__;B`H````$````"``
[EMAIL PROTECTED]/[EMAIL PROTECTED]
+M`/W]_0!Y>7D``````'IZ>@#\_/P`04%!`'5U=0"$A(0`'AX>`,O+RP"WM[<`
+M`P,#`(B(B``"`@([EMAIL PROTECTED]&!`/;[EMAIL PROTECTED]@("``MK:V`([EMAIL 
PROTECTED]&AH:`.?GYP`.
[EMAIL PROTECTED]@X`&MK:P`8&[EMAIL PROTECTED],'!P0`5%18`%Q<7``L+"P`!`0$`'Q\?``H*
+M"@!P<'``FYN;`.GIZ`!X>'@`$1$1`",C(P!$1$0`XN+B`*:[EMAIL PROTECTED]:FIJ
+M`+2TM`"OKZ\`S\_/``@("`!L;&P`CX^/`+&QL0"_O[\`\?'Q`%A86`":FIH`
+M____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#_
+M__\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/__
+M_P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____
+M`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`
+M____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#_
+M__\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/__
+M_P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____
+M`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`
+M____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#_
+M__\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/__
+M_P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____
+M`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`
+M____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#_
+M__\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/__
+M_P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`____
+M`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#___\`
+M____`/___P#___\`____`/___P#___\`____`/___P#___\`____`/___P#_
+M__\`____`/___P#___\`____``8&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]
[EMAIL PROTECTED]@8&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&!AP&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]@8&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&
[EMAIL PROTECTED]&'`8&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&!AP&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&#!0)[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&
+M#`P&[EMAIL PROTECTED]&!A0&!2<&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&&P8&[EMAIL PROTECTED]&[EMAIL PROTECTED]<[EMAIL PROTECTED]&
[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED],[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&"P8&[EMAIL 
PROTECTED]&"08&!08&"P8&#`8&
[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]@8&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&[EMAIL 
PROTECTED]&[EMAIL PROTECTED]&[EMAIL PROTECTED]&
[EMAIL PROTECTED]&!@;__YY<^[=T(/V;>&7]FR!T_5MS(/U;;B#]$W5S\`%P<N`#;&[EMAIL 
PROTECTED]
+MY`=N(.8'97?##V<@_Y]E(/__;[EMAIL PROTECTED]@[EMAIL PROTECTED]
+M!```````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````/[EMAIL PROTECTED]
+M````90`````````````````````````````````````````P````_P````$`
+M```!"`@(]VQL;),``````````0```/\`````````````````````````````
+M`````````````P```/\````!````2P```/^OKZ]0``````````$```#_````
+M`0````````````````````````````````````$```#_`````0```/\`````
+M:FIJE0````$````!````_P````$`````````````````````````````````
+M```!````_P````$```#_````665E99H````!`````0```/\`````````````
+M````````````````````````````%P```/\```"'$1$1[B,C(]Q$1$2[````
+M`7IZ>H4```#_````'0````````````````````$````^%146ZA<7%^@"[EMAIL PROTECTED]
+M"PL+]`$!`?X```#_`@("_1\?'^`*"@KU<'!PCYN;FV0`````````````````
+M```!````_P```/\```#_````_P```/\```#_````_P```/[EMAIL PROTECTED]
+M&.<```!-`````````````````````0```/[EMAIL PROTECTED]@XQP```/\```#_````
+M_P```/\```#_````_P```/]K:VN4``````````````````````````````#_
+M("[EMAIL PROTECTED]/\```#_````_P```/\:&AKE````&```````
+M``````````````````!(````_P,#`_P```"*`````8B(B'<"[EMAIL PROTECTED]
+M`/[EMAIL PROTECTED]&[EMAIL PROTECTED]@```/\```#_=75U
[EMAIL PROTECTED](2$>P```/\```#_'AX>X0```#0`````````````````````
+M``````````$````I````50````$```````````````)Y>7F&````_P```(4`
+M```#````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````#__YY<^[=T(/V;>&7]FR!T_5MS(/U;;B#]$W5S\`%P<N`#;&7@
+;`R!WY`=N(.8'97?##V<@_Y]E(/__;V[__VX@
End of Patch.

Reply via email to