Archive-Any-0.0945/000755 000765 000024 00000000000 12711755474 014022 5ustar00olafstaff000000 000000 Archive-Any-0.0945/anonymize-archives000755 000765 000024 00000007005 12711755474 017565 0ustar00olafstaff000000 000000 #!/usr/bin/env perl use strict; use warnings; use File::Temp qw( tempdir tempfile ); use Archive::Any; use File::LibMagic; use Path::Class; # This program will replace the content of any files contained in a tar, # tar.gz or zip archive by random noise, while preserving the permissions # and ownership (assuming all files in the archive have the same owner as # the first file). # # It will skip unrecognized files. It requires GNU tar for extracting # the archives and bsdtar for repacking them. # # Usage: anonymize-archives file ... my $magic = File::LibMagic->new; # process files given on the command line while ( my $file = shift ) { # open the archive my $archive = eval { local $SIG{__WARN__} = sub { }; # no warnings from Archive::Any Archive::Any->new($file); } or do { print STDERR "Skipping $file\n"; next; }; my $type = $archive->type; print STDERR "Processing $file ($type)\n"; # get the list of files my @files = $archive->files; # extract the archive in a temporary directory my $dir = tempdir( CLEANUP => 1 ); # re-create an archive with same files and dummy content my $tmp = "$file.tmp"; if ( $type eq 'tar' ) { # save differently if compressed my ($mime) = split ';', $magic->checktype_filename($file); my $gzip = $mime eq 'application/x-gzip' ? 'z' : ''; # record list of files for tar ( undef, my $list ) = tempfile( UNLINK => 1 ); file($list)->spew( [ map +( $archive->is_naughty ? substr( $_, 1 ) : $_ ) . "\n", @files ] ); # extract archive `tar x${gzip}f $file -C $dir --delay-directory-restore`; # replace all file content with random data my @mtime; for my $path (@files) { my $mode; my $member = file( $dir, $path ); unshift @mtime, [ ( ( stat $member )[9] ) x 2, "$member" ]; next if -d $member; if ( !-w $member ) { $mode = ( stat $member )[2] if !-w $member; chmod 0644, $member; } $member->spew( pack "C*", map rand 256, 1 .. -s $member ); chmod $mode, $member if $mode; } # restore date and time utime @$_ for @mtime; # pick up owner and group my $iter = Archive::Tar->iter($file); my $member = $iter->(); my @opts = ( '--uid' => $member->uid, '--uname' => $member->uname, '--gid' => $member->gid, '--gname' => $member->gname, ( '-s', ':^:/:', '--absolute-paths' )x!! $archive->is_naughty, ); # repack the file `bsdtar -c${gzip}f $tmp -C $dir -T $list --no-recursion @opts`; } elsif ( $type eq 'zip' ) { # read the list of files and their properties my $old = Archive::Zip->new; $old->read($file) and do { warn "Error reading $file\n"; next }; my @members = $old->members(); # create a new zip file with dummy content my $zip = Archive::Zip->new; for my $member (@members) { $member->contents( pack "C*", map rand 256, 1 .. $member->uncompressedSize ); $zip->addMember($member); } # save the new zip $zip->writeToFileNamed($tmp); } else { print STDERR "Skipping $file ($type)\n"; next; } # replace archive rename $tmp, $file; } Archive-Any-0.0945/Build.PL000644 000765 000024 00000002507 12711755474 015322 0ustar00olafstaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v5.043. use strict; use warnings; use Module::Build 0.28; my %module_build_args = ( "build_requires" => { "Module::Build" => "0.28" }, "configure_requires" => { "ExtUtils::MakeMaker" => 0, "Module::Build" => "0.28" }, "dist_abstract" => "Single interface to deal with file archives.", "dist_author" => [ "Clint Moore", "Michael G Schwern (author emeritus)", "Olaf Alders (current maintainer)" ], "dist_name" => "Archive-Any", "dist_version" => "0.0945", "license" => "perl", "module_name" => "Archive::Any", "recursive_test_files" => 1, "requires" => { "Archive::Tar" => 0, "Archive::Zip" => 0, "Cwd" => 0, "File::MMagic" => 0, "File::Spec::Functions" => 0, "MIME::Types" => 0, "Module::Find" => 0, "base" => 0, "strict" => 0, "warnings" => 0 }, "test_requires" => { "Test::More" => 0, "Test::Warn" => 0 } ); my %fallback_build_requires = ( "Module::Build" => "0.28", "Test::More" => 0, "Test::Warn" => 0 ); unless ( eval { Module::Build->VERSION(0.4004) } ) { delete $module_build_args{test_requires}; $module_build_args{build_requires} = \%fallback_build_requires; } my $build = Module::Build->new(%module_build_args); $build->create_build_script; Archive-Any-0.0945/Changes000644 000765 000024 00000005227 12711755474 015323 0ustar00olafstaff000000 000000 0.0945 2016-05-02 18:56:57 America/Toronto - Use 'base' rather than @ISA in Zip.pm 0.0944 2016-04-01 18:30:02 America/Toronto - Use warnings in more modules (Jenish G) 0.0943 2016-04-01 18:28:03 America/Toronto - Use 'base' rather than @ISA (@real-dam and Jenish G) 0.0942 2015-01-28 17:07:43 America/Toronto - Replaces contents of archives in test folder with random noise in order to avoid any licensing issues. (Philippe Bruhat (BooK)) 0.0941 2013-11-06 21:38:55 America/Toronto - Fixes version number in lib/Archive/Any.pm - Previous release had broken permissions. 0.0940 2013-10-18 01:35:34 America/Toronto - Adds x-bzip2 as per PERLER's patch in RT#67738. - Converts dist to Dist::Zilla 0.931 2008-04-23 - Resisted the urge to make large sweeping changes. Fixed a problem with the tests and called it good. 0.93 2008-04-23 - DESTROY ALL TABS! [schwern] - The example for Plugin->can_handle showed the wrong return value. [schwern] 0.92 2006-08-26 - Added pod tests and a README for kwalitee. Not exactly a critical update! 0.91 2006-08-14 - type() is there now. I'm not in the business of breaking other people's scripts. - Fixed several issues with the pod. - type() is going AWAY AWAY AWAY - use mime_type instead. It actually has useful information. - Added a test for the backwardsness. 0.09 2006-08-13 - Complete rework of the module. - Supports simple plugins for adding support for archive formats. 0.06 2003-10-29 - Updating to Archive::Zip 1.07 which fixes extractTree(). * Forgot to include *.tar in the "what is a tarball" logic! [Thanks Kevin Pease] - Minor doc improvements. 0.05 2003-10-20 * Archive::Any->new($file, $type) wasn't working (thanks to Simon Wistow for catching this). 0.04 2003-10-20 * Removing unzip binary hack around Archive::Zip->extractMember bug. - Working around new extractTree() bug which can cause directories to be unzipped with permissions set to 0000. - Fixing is_impolite() and is_naughty() so they return true or false instead of the scalar result of a grep. - Failing gracefully should Archive::Tar/Zip->new() fail. * Fixing list_archive() and extract_archive() misuse so we work with modern Archive::Tar. - Class::Virtually::Abstract now has a version # on CPAN. * is_naughty() would screw up if the first file in the archive wasn't a lone directory 0.03 2001-09-03 * It is now safe to chdir() after creating an Archive::Any object 0.01 2001-08-26 * First working version * Archive::Zip is broken. Using unzip binary to extract. Archive-Any-0.0945/CONTRIBUTORS000644 000765 000024 00000000510 12711755474 015676 0ustar00olafstaff000000 000000 # ARCHIVE-ANY CONTRIBUTORS # This is the (likely incomplete) list of people who have helped make this distribution what it is, either via code contributions, patches, bug reports, help with troubleshooting, etc. A huge 'thank you' to all of them. * jenishg * Olaf Alders * Philippe Bruhat (BooK) * unknown Archive-Any-0.0945/cpanfile000644 000765 000024 00000001163 12711755474 015527 0ustar00olafstaff000000 000000 requires "Archive::Tar" => "0"; requires "Archive::Zip" => "0"; requires "Cwd" => "0"; requires "File::MMagic" => "0"; requires "File::Spec::Functions" => "0"; requires "MIME::Types" => "0"; requires "Module::Find" => "0"; requires "base" => "0"; requires "strict" => "0"; requires "warnings" => "0"; on 'build' => sub { requires "Module::Build" => "0.28"; }; on 'test' => sub { requires "Test::More" => "0"; requires "Test::Warn" => "0"; }; on 'configure' => sub { requires "ExtUtils::MakeMaker" => "0"; requires "Module::Build" => "0.28"; }; on 'develop' => sub { requires "Test::CPAN::Changes" => "0.19"; }; Archive-Any-0.0945/dist.ini000644 000765 000024 00000002305 12711755474 015466 0ustar00olafstaff000000 000000 name = Archive-Any author = Clint Moore author = Michael G Schwern (author emeritus) author = Olaf Alders (current maintainer) license = Perl_5 version = 0.0945 main_module = lib/Archive/Any.pm [GatherDir] exclude_filename = cpanfile ;exclude_filename = README [Encoding] encoding = bytes filename = t/Acme-POE-Knee-1.10.zip filename = t/LoadHtml.5_0.tar.gz filename = t/im_not_really_a.zip filename = t/impolite.tar.gz filename = t/lib.tgz filename = t/lib.zip filename = t/naughty.hominawoof filename = t/naughty.tar filename = t/naughty.tar.gz filename = t/your-0.01.tar.gz [PruneCruft] [ManifestSkip] [License] [ExtraTests] [ExecDir] [ShareDir] [PkgVersion] [MakeMaker] [Manifest] [TestRelease] [ConfirmRelease] [UploadToCPAN] [MetaResources] [MetaJSON] [Bugtracker] web = http://github.com/oalders/%s/issues [GithubMeta] [AutoPrereqs] ;[Test::Perl::Critic] ;[PodCoverageTests] [Test::CPAN::Changes] [ReadmeFromPod] [InstallGuide] [ModuleBuild] [PodWeaver] [CopyReadmeFromBuild] [NextRelease] format = %-1v %{yyyy-MM-dd HH:mm:ss VVVV}d [MetaNoIndex] directory = t file = anonymize-archives [Git::Contributors] [ContributorsFile] [@Git] [CPANFile] [CopyFilesFromBuild] copy = cpanfile copy = README Archive-Any-0.0945/INSTALL000644 000765 000024 00000001673 12711755474 015062 0ustar00olafstaff000000 000000 This is the Perl distribution Archive-Any. Installing Archive-Any is straightforward. ## Installation with cpanm If you have cpanm, you only need one line: % cpanm Archive::Any If you are installing into a system-wide directory, you may need to pass the "-S" flag to cpanm, which uses sudo to install the module: % cpanm -S Archive::Any ## Installing with the CPAN shell Alternatively, if your CPAN shell is set up, you should just be able to do: % cpan Archive::Any ## Manual installation As a last resort, you can manually install it. Download the tarball, untar it, then build it: % perl Build.PL % ./Build && ./Build test Then install it: % ./Build install If you are installing into a system-wide directory, you may need to run: % sudo ./Build install ## Documentation Archive-Any documentation is available as POD. You can run perldoc from a shell to read the documentation: % perldoc Archive::Any Archive-Any-0.0945/lib/000755 000765 000024 00000000000 12711755474 014570 5ustar00olafstaff000000 000000 Archive-Any-0.0945/LICENSE000644 000765 000024 00000043652 12711755474 015041 0ustar00olafstaff000000 000000 This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2016 by Olaf Alders. This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2016 by Olaf Alders. This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Archive-Any-0.0945/Makefile.PL000644 000765 000024 00000003114 12711755474 015773 0ustar00olafstaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.043. use strict; use warnings; use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "Single interface to deal with file archives.", "AUTHOR" => "Clint Moore, Michael G Schwern (author emeritus), Olaf Alders (current maintainer)", "BUILD_REQUIRES" => { "Module::Build" => "0.28" }, "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Module::Build" => "0.28" }, "DISTNAME" => "Archive-Any", "LICENSE" => "perl", "NAME" => "Archive::Any", "PREREQ_PM" => { "Archive::Tar" => 0, "Archive::Zip" => 0, "Cwd" => 0, "File::MMagic" => 0, "File::Spec::Functions" => 0, "MIME::Types" => 0, "Module::Find" => 0, "base" => 0, "strict" => 0, "warnings" => 0 }, "TEST_REQUIRES" => { "Test::More" => 0, "Test::Warn" => 0 }, "VERSION" => "0.0945", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "Archive::Tar" => 0, "Archive::Zip" => 0, "Cwd" => 0, "File::MMagic" => 0, "File::Spec::Functions" => 0, "MIME::Types" => 0, "Module::Build" => "0.28", "Module::Find" => 0, "Test::More" => 0, "Test::Warn" => 0, "base" => 0, "strict" => 0, "warnings" => 0 ); unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); Archive-Any-0.0945/MANIFEST000644 000765 000024 00000001162 12711755474 015153 0ustar00olafstaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.043. Build.PL CONTRIBUTORS Changes INSTALL LICENSE MANIFEST META.json Makefile.PL README anonymize-archives cpanfile dist.ini lib/Archive/Any.pm lib/Archive/Any/Plugin.pm lib/Archive/Any/Plugin/Tar.pm lib/Archive/Any/Plugin/Zip.pm lib/Archive/Any/Tar.pm lib/Archive/Any/Zip.pm t/00compile.t t/Acme-POE-Knee-1.10.zip t/Any.t t/LoadHtml.5_0.tar.gz t/fail.t t/garbage.foo t/im_not_really_a.zip t/impolite.tar.gz t/lib.tgz t/lib.zip t/naughty.hominawoof t/naughty.tar t/naughty.tar.gz t/not_a_zip.zip t/release-cpan-changes.t t/type.t t/your-0.01.tar.gz Archive-Any-0.0945/META.json000644 000765 000024 00000004056 12711755474 015450 0ustar00olafstaff000000 000000 { "abstract" : "Single interface to deal with file archives.", "author" : [ "Clint Moore", "Michael G Schwern (author emeritus)", "Olaf Alders (current maintainer)" ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 5.043, CPAN::Meta::Converter version 2.150005", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Archive-Any", "no_index" : { "directory" : [ "t" ], "file" : [ "anonymize-archives" ] }, "prereqs" : { "build" : { "requires" : { "Module::Build" : "0.28" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0", "Module::Build" : "0.28" } }, "develop" : { "requires" : { "Test::CPAN::Changes" : "0.19" } }, "runtime" : { "requires" : { "Archive::Tar" : "0", "Archive::Zip" : "0", "Cwd" : "0", "File::MMagic" : "0", "File::Spec::Functions" : "0", "MIME::Types" : "0", "Module::Find" : "0", "base" : "0", "strict" : "0", "warnings" : "0" } }, "test" : { "requires" : { "Test::More" : "0", "Test::Warn" : "0" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "http://github.com/oalders/Archive-Any/issues" }, "homepage" : "https://github.com/oalders/archive-any", "repository" : { "type" : "git", "url" : "https://github.com/oalders/archive-any.git", "web" : "https://github.com/oalders/archive-any" } }, "version" : "0.0945", "x_contributors" : [ "jenishg ", "Olaf Alders ", "Philippe Bruhat (BooK) ", "unknown " ] } Archive-Any-0.0945/README000644 000765 000024 00000004141 12711755474 014702 0ustar00olafstaff000000 000000 SYNOPSIS use Archive::Any; my $archive = Archive::Any->new( $archive_file ); my @files = $archive->files; $archive->extract; my $type = $archive->type; $archive->is_impolite; $archive->is_naughty; DESCRIPTION This module is a single interface for manipulating different archive formats. Tarballs, zip files, etc. new my $archive = Archive::Any->new( $archive_file ); my $archive = Archive::Any->new( $archive_file, $type ); $type is optional. It lets you force the file type in case Archive::Any can't figure it out. extract $archive->extract; $archive->extract( $directory ); Extracts the files in the archive to the given $directory. If no $directory is given, it will go into the current working directory. files my @file = $archive->files; A list of files in the archive. mime_type my $mime_type = $archive->mime_type(); Returns the mime type of the archive. is_impolite my $is_impolite = $archive->is_impolite; Checks to see if this archive is going to unpack into the current directory rather than create its own. is_naughty my $is_naughty = $archive->is_naughty; Checks to see if this archive is going to unpack outside the current directory. DEPRECATED type my $type = $archive->type; Returns the type of archive. This method is provided for backwards compatibility in the Tar and Zip plugins and will be going away soon in favor of mime_type. PLUGINS For detailed information on writing plugins to work with Archive::Any, please see the pod documentation for Archive::Any::Plugin. SEE ALSO Archive::Any::Plugin SUPPORT You can find documentation for this module with the perldoc command. perldoc Archive::Any You can also look for information at: * MetaCPAN https://metacpan.org/module/Archive::Any * Issue tracker https://github.com/oalders/archive-any/issues Archive-Any-0.0945/t/000755 000765 000024 00000000000 12711755474 014265 5ustar00olafstaff000000 000000 Archive-Any-0.0945/t/00compile.t000644 000765 000024 00000000271 12711755474 016242 0ustar00olafstaff000000 000000 #!/usr/bin/perl -w use Test::More 'no_plan'; use_ok( 'Archive::Any' ); use_ok( 'Archive::Any::Plugin' ); use_ok( 'Archive::Any::Plugin::Zip' ); use_ok( 'Archive::Any::Plugin::Tar' ); Archive-Any-0.0945/t/Acme-POE-Knee-1.10.zip000644 000765 000024 00000031113 12711755474 017533 0ustar00olafstaff000000 000000 PK{+Acme-POE-Knee-1.10/PK{+Acme-POE-Knee-1.10/lib/PK{+Acme-POE-Knee-1.10/lib/Acme/PK{+ Acme-POE-Knee-1.10/lib/Acme/POE/PK|+g_XS'Acme-POE-Knee-1.10/lib/Acme/POE/Knee.pmS4sTׯוކ2LHb`{P! `I:R8IZ >q8 e]̪S\/`777[U:i~L }Y= ~@H4_9=h>_yO$&E?1ͪau Φ=H1NX05֠Cn/np% dW%p NݥTx!K"򵣛5 =v? +R o|UB4\6 #GQ?f)q|2l]:'A1I/DFkeK+[mM M!x+_] UȲ}y/T]8FXӺYX3/# K$)bVsAa'ML;9(5@/rrE{eOjR"hX ܚ%(CFC+OzʀSFVP7>e{j7dwȎԢ'F" ~!CSi=^n:AM7+@-SkA]-@gnV^Ia F5kWU˹k>(~B]H>Ĕ}#4xG4?)(gfwsΈ¬RsyxYG&rcQT+Q^< YY)݃fhfFhh ~Ez%0Qqdpv*7u.N]>xx(8'.@G_ ;_WhWMXkWӔ@E9vr#<-KyY/_)'Ʌ S[<{j'*[~FS^$םr:%).Q+-Lf8bHY~Ż9cx%YYuλ@`a׋xb$I`(D~)ɅkZHN?",7,w$*ʬݚGނ㌚4ϸ$F7qJ!9Zlfsd V3K `ܬr ӻ-+܏''Hђ'8,^][`k7#B)E/,z+C(@O"{U$tBS'M ()CXאmuZqOSѝsd撸0DwmmkyW$qpY~r@4^}!&uQ0R㰹@H:@Z.gQ$8e}ݣ]nMOvr-)9U $z`uCvkTH%oAr| p/3(C]4,zFhU@tBzcJve [HtXX)W [{4tѬƩ>,cX Yt( hz!- T|Gh+i˽C9H?:7 s݈SJ,R.b\LM5Mĭy`|b^bp|3z;oo[Ir E; Wl M߹%zRlF^ 0.0I*erߖ4JUgƯSu\x&eGgsr>n9)CzGY*my P[ؒY⠜F$@ޥ@ o5TJʿ/]5V_ `kǂ0Z|kݔh%TN&;Y$+U;б%"p|UjFf ΡO퐾"efBxq4aEd,W‡g7bjW[ ,)~Φz@p`W{CC20^;*^fV uPEu#d%֙f+\-1 /|L[׻w 5?/*L% c'doJ'q3XkVv؁bk˳И{j3Tp,_Yf{ !Ѫ#<$fEoz^k-&кVdzg\7:eۣꆠqX 7Ubrgu ɿov[7e\}0i\L xeuw,E2sO -x`ZI8^3cț/:ݒ|*tY/k3-d7WlF0#Hm1ک77)o|7TnGh4!|PxSn'Dm~kds`!gOa$ק5gJ9tWg%Hix[6by /!%xB^o (!-UtSsrkl\gD`teګ3$L>|D @9P\O򃪛B~Dl]"BŀYwui&<S,v큞`}آP=3UI`96D꺏dޑ},c[Trחo^,3ĐdLU|υJIGeR ɭ?5u} 1Y8mhPdŨ{w'(@ 0Aޞd2VѕG ]%bʫ'q;r9,]%R5ͻ߇ uV Ӳp(%B*pYx;,2SUGWȒJ%>s{ Ba@)tFvL޵D- LCOU0v6@էD~_|Oz6<7$TAJ\N7]o|5SL0{yZv@A2tJH wG3\KdSi)# S?bvD-<]X4 ? - Ĉ/f GYF= [ڷ.+-ԣ3kJ2C5knVvruL )J,u{Q%4q5\:7ZA.볭f3PXKw"nURPUT÷'J أB&\` ,X,Ӑ("7]LyFaPjb㗋8WWK=5 CZӁΝ6a}uux19 i30-&&ٵO,>)c`g?X $rJ8p fRj=s(@#~"-d>%1;:^8 F^% ZGaZ&wpU?Q4E̓۰,+;Le=yN/v(p"!d^`tl:hQY'`]hYU5%*eTXI1OrUZలTgB@y 0sv;Ct䎉8S89Q8i҄! frC:tod)t혉/n\MYRԸWsxVSiL%z0%BTSs&"Eٓ?4G\ A6Q3]ʷj5$&fld2L%keȈ6S욢ncfja!N)Kckbx|Х >r5|VRo8R.I83c;RV-v愆qE:*9 f6i1A|,̌vʹf?UySC`WHm:UuZR0 L5-`NFv˷MDλPK|+9"@xs!Acme-POE-Knee-1.10/demo_simple.pls8yҤ2FB7 raNp*!\+5Vsf D2rg>f(_幹4*P{:f*( f[1ɱDf2P|W$dJPK |+ȀkfAcme-POE-Knee-1.10/demo_race.plfQ70O9ށ_*@95zjųj20lݫIHJb=6Cw1ŝ^qpeS^ѕz,'=\M71A2(gɻ.vU8kU!zDC #W6]A ׈4zy#$"=)Aow15tcS`R\;5)Fs(q9UN gZQ'e pb Gظf}ᬜIoh&; "we?qqfa\5p$#G*U(Y*YK.uڨOJv1@þPKU +HOYTAcme-POE-Knee-1.10/MANIFESTTF2PB'bC*C⿤ "my8a1}5twSz<3ohy9EHIRPK }+}fAcme-POE-Knee-1.10/README=ﶊY>leeCwSwСq81/ISC>DMu_P"4S@ӟȫc()6;rj$g;+TJܶ9x l(*2*TRvkƺ?)q= A UI06%wNˡb+hSl:JKuRVyϟqAv=aѯq1Y$;& B^V#Am&v߹0Ģa 4s'qKI oqokw -)hbMUWCv>xy0Qa4z]z(,~.Dst*\S<7$'1KxZ_ɭ5OP o`?by\OgDs((? <G-R^&x3*~B]tQN\-j%cdtˏoW+]*=%gYYuojEk5k O*&¼P< ۋU+T#uNh*we W&k{tyܙcn)%|xh xCͻLlt1L>ߘf>6Hڢb,_b?Uh{Z񭵩i!g T@xΡѯb>ӯݟ, k.on ZU+P0d"K;95@3}Ϗ>NЩ]xXO8wݗ@I^J$=Y&)i=|t%H~D)"@W_U|0< 6 cȖu%fϗJ@W/F 6Q:It,cN kS=1-E: `Pf½"7 NW뵔-fSL `PN8H}\Eb.poŘ(x9 "jWRI.t*,(_i7r@;{;LȜAGV8E".ſjM܀Ws`4p7Z?US:ƟN-3riy pP+rb|O|sAʋFS*w0cVրhB{S1ۼR%,R/pCńҜOV׀tuE|4OM |?S 4qEʷ"%#^#&@ M&^\RX鴌` $#5384 ^J͠}rL%[ ag\=\x6&oJ;Z~Q ˺xS0 B!jQ=}8">󫀳h*a]_P|b/σP l, " ߩ/6?˄*:ZNB2g˴8h`4k_V;NbS99H BoXݿnɉk{e[f˛lY3zK>WtP4n8~i=;2"^DѸFXx#aje&>Vc&^,,(=بl5LD̋y¡DRҞn 0qݰ /FL(IE#7_!0_z-ǝAw'ƾM?;kq<ؤǿAB-y$? ݌miK?k&*13(nRgF>׮4 %)y| a^v`pĈ@C.%Cd]xB}ovR`R~)Wa`#~ȿf;|Μ ZDxRgVa,uB3cF@w/`_5,w*{ԤTT0(XPbsxq9f0,)$n 8[ըqÞ`8Tz=B>"8:9h %00:u .9B[p|"kaBG8j'3+8 s/>kEfA]:X8F8 (p,GQ *ʫ<=Z d% |puUiTVa19k&9 u} @B#*>irsBnmK]'U-C:-"JW@ €@=@+N; NyU&u2Uͮh0ů#k* :GU\*HTDHU>Zm(F"vwqxҴdOy.\daR'{kRи+ףt!g"f1~̇!N6F hСaK*T{TGu U-{pSL`34Nu-eiE?1傣f ;s%wV{iΤSBOз3ԌgJ (A/%2p :(a,|c w@8[sRnI^I759ʁWS_2)s%Y64i?!ے p0ofAzAyכԊ; B؇$q?>/oPK{+0Acme-POE-Knee-1.10/PK{+01Acme-POE-Knee-1.10/lib/PK{+0fAcme-POE-Knee-1.10/lib/Acme/PK{+ 0Acme-POE-Knee-1.10/lib/Acme/POE/PK|+g_XS' Acme-POE-Knee-1.10/lib/Acme/POE/Knee.pmPK|+9"@xs! {Acme-POE-Knee-1.10/demo_simple.plPK |+Ȁkf 2Acme-POE-Knee-1.10/demo_race.plPK|+]:hc Acme-POE-Knee-1.10/Makefile.PLPKU +HOYT ~Acme-POE-Knee-1.10/MANIFESTPK }+}f Acme-POE-Knee-1.10/READMEPK8}+~)$ -Acme-POE-Knee-1.10/ChangesPK 3/Archive-Any-0.0945/t/Any.t000644 000765 000024 00000006271 12711755474 015207 0ustar00olafstaff000000 000000 #!/usr/bin/perl -w use Test::More 'no_plan'; use Archive::Any; use File::Spec::Functions qw(updir); my %tests = ( 't/lib.zip' => { impolite => 0, naughty => 0, handler => 'Archive::Any::Plugin::Zip', type => 'zip', files => [ qw( lib/ lib/Archive/ lib/Archive/Any.pm lib/Archive/Any/ lib/Archive/Any/Tar.pm lib/Archive/Any/Zip.pm lib/Archive/Any/Zip.pm~ lib/Archive/Any/Tar.pm~ lib/Archive/Any.pm~ ) ], }, 't/lib.tgz' => { impolite => 0, naughty => 0, handler => 'Archive::Any::Plugin::Tar', type => 'tar', files => [ qw( lib/ lib/Archive/ lib/Archive/Any.pm lib/Archive/Any/ lib/Archive/Any/Tar.pm lib/Archive/Any/Zip.pm lib/Archive/Any/Zip.pm~ lib/Archive/Any/Tar.pm~ lib/Archive/Any.pm~ ) ], }, 't/impolite.tar.gz' => { impolite => 1, naughty => 0, handler => 'Archive::Any::Plugin::Tar', type => 'tar', files => [ qw( type.t Any.t 00compile.t fail.t ) ], }, 't/naughty.tar' => { impolite => 0, naughty => 1, handler => 'Archive::Any::Plugin::Tar', type => 'tar', files => [ qw( /tmp/lib/ /tmp/lib/Archive/ /tmp/lib/Archive/Any/ /tmp/lib/Archive/Any/Tar.pm /tmp/lib/Archive/Any/Zip.pm /tmp/lib/Archive/Any.pm ) ], }, ); while ( my ( $file, $expect ) = each %tests ) { # Test it once with type auto-discover and once with the type # forced. Forced typing was broken until 0.05. test_archive( $file, $expect ); test_archive( $file, $expect, $expect->{type} ); } sub test_archive { my ( $file, $expect, $type ) = @_; my $archive = Archive::Any->new( $file, $type ); # And now we chdir out from under it. This causes serious problems # if we're not careful to use absolute paths internally. chdir( 't' ); ok( defined $archive, "new($file)" ); ok( $archive->isa( 'Archive::Any' ), " it's an object" ); ok( eq_set( [ $archive->files ], $expect->{files} ), ' lists the right files' ); ok( $archive->type(), "backwards compatibility" ); # is( $archive->handler, $expect->{handler}, ' right handler' ); is( $archive->is_impolite, $expect->{impolite}, " impolite?" ); is( $archive->is_naughty, $expect->{naughty}, " naughty?" ); unless ( $archive->is_impolite || $archive->is_naughty ) { ok( $archive->extract(), "extract($file)" ); foreach my $file ( reverse $archive->files ) { ok( -e $file, " $file" ); -d $file ? rmdir $file : unlink $file; } } chdir( updir ); } Archive-Any-0.0945/t/fail.t000644 000765 000024 00000000200 12711755474 015355 0ustar00olafstaff000000 000000 #!/usr/bin/perl -w use Archive::Any; use Test::More tests => 1; chdir 't'; ok( !Archive::Any->new( "im_not_really_a.zip" ) ); Archive-Any-0.0945/t/garbage.foo000644 000765 000024 00000000043 12711755474 016357 0ustar00olafstaff000000 000000 DON'T YOU HURT THAT LLAMA, MIKEY!! Archive-Any-0.0945/t/im_not_really_a.zip000644 000765 000024 00000000134 12711755474 020144 0ustar00olafstaff000000 000000  %RlD2p,  a Archive-Any-0.0945/t/impolite.tar.gz000644 000765 000024 00000007500 12711755474 017240 0ustar00olafstaff000000 000000 `-TgPpHf$ "BPz4AiRDzi"@H/BsΜ;Ν3{̸;Y3Y F{x#e~0 UT*CG ʿn߄~_ ߟl_>==+\J<*R5 vnߞQ!O*)vbݑ4ؙu%z[a>z*A/'& JPEQPP=PE_3gaW2)> 3.OE.sNs eh|0 _`0(ws_8s?""LXu%v=.r"{hR+[?,5TQUGC b*}k#ՙXae5A1XFl*))tt ZJ7Y] 3R׏y )6^\eDÌʰrxD&aT9c|7X-'q/0)!n90kr3YZ|]";ȓ/w%I<\qi1dY t\w'X'{݌̙M0:У #R:S07ٵ[} Ld u(auVen mqyTj|c-•T86y_{{,N֥ӟ mk@ž fGv9hyyJ--Ak7aJӛTڀ#ޱyk}c>x!6yUB%OΒmJ,L«`Qċ, 4u:cB*9[{TjtyL%M)9DopXɶ2^{i޵ Ă<*A۷LKUh] IB!Rz*1/m&-5"S@%'Mh5&],>t{>:Pn-벭VQhH;B-hH%ڕr4.NZ5aT=lDM87WBa'Fo=!RSh2 I]9[rǂLKD-Ç}iQ`|&|ָjxiLjD9*;7>Dj %=fٲGūWS-kXޅ~z|^$<0HwhW-4<+j5#rne>4-R0rUv&;|M@0+(&Yg;a80l&zPCPl#'xwb#CfQgFuh lC,U٦ .5}Nbj Jၦ~+ﶬEdXDCڐ soP OGKwS!5N3Fխs i=V+uTeQ" i~v Wj3jNk7:׷B7wj& mݻp};q;ɏ3ypB펭 /"DjFgghwF(9;6ÊIc8Z /ؽw1݁Vh __v"!Ï #a˹VW~x\Up#ǦWW(k{2eqQF! RFg5:Gdž+/߹d|!` yaYB[Pki <'( %hR3h`Nƀ2H\*tE_XVO^BB~^@x]lef|uYP&Me |mMb`Uv,n.$$zR>mbٌ#_]=uœ0Ç4 7(Qs㟘y_g]~8!Ӡ{־R#t/ĹZC3-;F ubdCbHDAᗳ!jZUWo1&09L3Fbw r}Dӵp^{\HַW)(=NԣgrRRDpC W]F?3nX,)t;m'K?Tr)y$MB}`dЩv2j,3t*n5vy՟Bo:l]byеQLPwwv~e01@ɪ~.ot J) ]OXޛQ0WJh{iIvxqYp4i< =JCS]хs:zW Yłqak#͚\{&:;{Bb<ݱ$NK\@ , .moj!h߭D|.~Dz)Y(䧆@kv@aڇUbR&uKǔ=*$>G_Z&AՓf7)dd4يxwAS8UYO M# ]~OtOw?yxo-z__WM^gRCLx HE~sIA+d{|>reD=0K"&#cMVɣKhs@I]%ZnԢXO|p >pgS =.v-%'))H΃u#ځe;;hs7rZu&Es[/H C?R3[JSwXSrpncz.E?\.dOezN3 >3/k7G4: |^*nBJH7:Bn0pj1N<%nS]V >.?{? Q5BW&\&bp1CCN Cdy֣hRO\0vq_ne&K#v[q8DC,1RiI{%3WG*AW_3,\E#\دfC %1bXäl_3B"M:\m%Z 1qQԩ`Xk+k&nm6ǎ&;.,/53}$_C8)?}  u:q\Dk$>;ԵεJ6,R=cW!Ðj1ծjvswVǵQ$+4cAGG_h:Archive-Any-0.0945/t/lib.tgz000644 000765 000024 00000023050 12711755474 015561 0ustar00olafstaff000000 000000 `-Tep]K-ŒE3333Xd1333X`1333SUb'yʽ2δ4gaffkY8+,,@ 313 +;;+_prpԳm(V66F{}_OM!{S3g<ן7 Gvc`g/N oxL\Ӿx"N xfS^_  p3oQ MA?zY8cٍsn-|h fFb.\5_c4RJ|ˬ ILx҅qR\D uc ik_qc4:%qsǵpYRWϊ]+T$|Bo-7<6rn}o|fj= /fVޯ#!3+G4>4t?WQ 4F8jNo+F'=d:eC[c;?@}u I-a &ڻX !ӳ YNA JtG]3kfyߐIM'ȍKIeJYBZﶬILoO$m$Ԣ-k*NW!]U"#GlBD1EȠmf$=smsüPs2%ij-pOIx"]pp7ӊu#52\caf](Նb5)F"1qBxnyjO˱+.i$꽻 !sT;dk"m4B^C߀fј ˦ܜRVqP/L:-u6u!]'N(cD(c)]P3YK CBF(dSedڡl(R&M"BX!BzK$!\VN~I})*a˲/փN_itEg{&q0ohtฑ*Bο6Wx5>sx~AGßӯʺ<}iUMǨtop~?U{EU7C=O>_k1PJ#a),C%vUUb 'AW%숐3GC3'f-s|R8jHi(:PM &h? 5K |3q1tgە Q nҹI4oP|vI he'([ H4iX,>3Μy {`.Ri77ܤUh>x&k=/#zf-Oy/߹ +(aSюV:r9V`aVXғ2$y_5/;1\+Mcgv78rUhN@xy$Tb@!#8MR$>^P 8::/y1g_ZًdDR%|S|V].ae"*&g9<8t%GSGgZ{f,=Ԕb%$io%z`r_HxzWQ*A@тo֓L4選ٳG_r:JifBDE\>*J3U1GtYlʮSk>m>MRy?_;Y EgBʞ6mQ/;+tNԂ!w:n)fSQ^"O>'G Ǔt7`Zn+u8.ЋtiZa1Uak?ƭ*rG͜T 2vFY,F&wŦHFژF㘼@ݱF[#U]x_%>l|+6Xor<|(0 78 ud F 3( j;8JVܕ}p*S``2־ur+լN%j{:[[!+t̍oDwW8bG,hb5ո1yxh+g?{C?'ggd3#zYl?+`3CW >y2SJ[ N%8I\o!VҜ;UEN$bRBҐj44]^(( ~hX;e-Ь=+R?9o8/i 蘙h@iS'ק(-80=`(O A1¨‹|$0=^ڲ<?)8"He;\~jЁq;;k~"F84 `bؔBOYH}8D^D, \w7<+wRGqZjKB#s'ܳr"SUj8VNCDo C _1zI~ҏq(*z6 z@ׯR%|&>BC545]e̟EQ;2~43wt=5c.MÍD?xdzTg_V߭@ O#0, E$|YCZ45r  {#C%ՇO0ro7DG(xaS_/"# *|wD+YbG<;q$J!8~.,ӱ鐁c` 6ԩJ$;{ iL5^nm.ow`@frP'dY,|˜wErEv@($g6Tow⚓ kTڏۛt6 oF=ls}N)ߵŶs'↧b_ Sht+T 6c"[C,0VJdԽrbCt:юFu`8g?Kjq2DSE*kaG@cA`~h[Kj8=vc}j=XL0,TwInm=zJ*fa*U7 >x@۠-~a(er O#,SmR"%*.4adFr/ D˅V+ǻzUޝcط>of/?$S=ɡ~:V63|e|1v K:,Wcn?jM?ΘЁ "7w7\ F#|hQ>djky1*nh Ysn\B@C0"R ȝ =rB|LaPT_Hh}װv}i7y#\$;v{!hD$>+(q])$ԃwJ#ȯ]z"As7_Kh 5[*? ԾŐr5튈Zb4 ~ r-i[ JUq6g7Sŧqߵ,,;- NXJ[j!so+9]NuԒK@I^#?>`r{n^eO j̕I}$$ &G5-h`:kfFn~&xnnlNH&IZP-"()Qɹcuք}>6ޭ_(T ٗ1 6nHsO&!B%Nϩ9 5'@9`B u31#kWr_wk QhC{֊JGBpw m m8}*_\ѣ8.THMs#QE&Kv-g4uP~6swE.!?FAxEwy 1:yQcŊ =EsOG.2M8rUg/ޅU\n.P-LIYy d,ϛ(?-(m*g10(|pN`υZxNT [JCD~"ܩܒ;qwSzr]85(2Pf[.()%V)g0RVd|(_FƜ5pJYՂۣLX?cn R ѯ4*75)z fC6@M5OOMhο!!O Q0Rq mkZ)p^8Fǻ `-[:O~ hgDSYhҽZѨ4j"~l :B Fp'HBfK/a-7,tm&$- 8Yg;"oS[ c{䅻qekܚ{Hco&Jϳه|x8 0, $6QJ_WMfB2!t; +;M~'~U>p9N^47_ tV9\J1X1&,Re+F? ]+tZv!D,ۖtE v(ܿၯ覆NaW`%koMxQ&f<-zftU_NgL43>4/ᣇG.UaS`cT'6= OkPj'X꧜ɸ]?' {xGM*n(<l+y]Y8Y8w{R\'J/~Y'rѰF E+P|H㍄zVy+$:&}sc="g,l`ofUP>KBk_ˣyiϸFQ7ޱK&y H0Ygl17kSfWZ\oDkCKNS@g>q2X5W?a]a3"dϩ_X2/ːi07Ghsp, h,vB`^wS Oo_NSNxb.R~Žs'ZD9GƏїߏEӆ5QfCZw+jz#o ӝ_ eHrK'9]ʙYfRY2{K+E=;B4ƚh[`/G%"S6?8)5L q>xᥘ,m{n-5)*J 6hW#ʣ5TSx0ADOfCB-Mw5^31;ޞ%)~4b*W.W۱k$f p0?lͫ;n6bbT#X fw/=LV HbF:yk M'tle}*\5l7Y>_j>=;eJb( ֊Wv _ *Mj\a56qM~ ƽnKRJJ +J9`\Ny2 A0`%Tv}R,ՠ'"~)@ŖbsZzbFI%۵Y~JG6"q7b 1S0>D-k-/&@Z3EfޟRo WLj˜d9rWi0)fe :,ޑv_ _1sy|-ũR\Ke() %D[awH A0>)Ni߉[k:^}kl({9_:1?Q#ڦS<|@-ypd\>t5xr \U Wq(ϒ/ih\"ĥ5EY.5ĚW ,J$ :|-f r<6X}I줼S<7ߴ$OW,sg^6p|.W7D${ B_nPn=ݤUjH/R>6uo(-ObrN,>_+ɒMu9W~ZL 02xz^BSh@BAG.ڻb9,qu2 =ٽ͒w,GzR{(5*D{`)W׏'{k"_}OOEosNrr|b3erPf4'jTڹ2ܒ&183a3|ze7OJG nW@m: CС]ZUՂOQt~UT566˔$"n7MXYF޼*f| ]~;3L*-^Mh^v%$xbcpkNc:4 ˔ẻg!+f[ȧJs@]R^"kYm}֚ Ol3҂DN /pfw,J`}2a؋5:Rt:!G;%y^{f{j+-vNλ36bg:03eo#Z'C?>bj× >W(%pL>k:udQq})2[^ml*4 MQLIM̗A00J6|c~=S$k-r!߈?{K''?@@Archive-Any-0.0945/t/lib.zip000644 000765 000024 00000024655 12711755474 015573 0ustar00olafstaff000000 000000 PK 5lib/UT FD-GDUxPK  5 lib/Archive/UT 0D-GDUxPK  5a  lib/Archive/Any.pmUT 0DFDUx nԖTXǗ [!܊pS""H`N?&QݏBu8r ն8@PJo:Mn5hdѲ fF1{VkOa6Ʒrdl4$7n菷lCXphL/f|vvҏ6Hu4'\;7TdBC3_G!SnsFWX_#Z:O/x=_bsjKƚaG]jo6f N[\zp?ƂIW~wZ+ VILA~7EWreRؓ\ S= !r5gh9Ç`GqZz3bG:8b7\lث!8z bڊ;svW^Z#N-ς~9u̜OOn1>感d`4ݯV}omkhs@`ywb}[HutO}9aVGE&tmd xĹ_d<2lTuqȢ Q}fT&V{u׏j$2ȁP6䂫jE? *TKD6[ײdCMzF*g4N'#Dn_sZN'eUy0 .RA _ˠ$ 2#G،zm 0~iaT4b[6:m1]|[ |#М,eUvK`MXcK2%#|߄X(fiBJ&m`i,bf3>Ni5om=*=<}"EeH5)Y!wCjyBg;R9_:}x5-y<ƊWʌg x}&;hFG%7YRc~H/3iYrXƐ"duOj%uPxk6VN7(T,3$z#z(i4]:+Y+rzi ^,^K))#_H]0B!r<WM aiI aqܐle},(?/ 7AGEjñZf+MezY% by>UBIhB'[H/&P)IA/'Ē*pމ^DUc4hI7 Pnb La$"z+?c,/b+>&l4 ʠb@p]PcʾTadY FJ+;cIgG m[.[] Z'퟼f hFfRBgwgE~Xi#y ~El)8"ȎF柖?BGYwwӐqj=2DUF6\0$ͳKV{ ~ale wuNsڑs$:rz:Fўi Sx:B$b%$([D魞pM$ xP@)Td+# P>9,ޚa)&Sf_nI8Ry2\/dED졪D5u~ߘ4fERj {2n^v GLG]VWru+uč<_$Vѻ+SmO' o0nu:=uХ{$hqs]:-_&yda&I k)AC1ы+K)5DI-|aGC(e"8 &5[1/^\Gٔ6i~A8&x^RS~x4> MTPjAv~AlC۷x0lCQߘ7qָ 3#TWJU`GD/WHآ#hDV=FTPKN 55 lib/Archive/Any/Zip.pmUT $1DFDUxiN0YE$,Wru} m,V=.v)Iͬ^q fd->! ZH(ce.gUĺ`޼o7[:8i]DxRd0)NO~/󀋔.i]myR_z L$Z =F"g`󺓞# i7.cwƘDv2|O 3U?r6 n=% _~x5H72rYbT٭SiյpRc * x݂͗DNJIcQ+r)}/ 'Y9a?ǥmL&e5 l!;{ YAbd|) .| =v$VG3>%O"[碶!wjj IEy[Y `ɞT1@e⮷SHQlTL$10YԒz(1W6y+{iwW;(v$U~$dmj8fD]r h dޭP?}0"WGvS ,P_jd)\ [Ջ`.<$8Ge㳌܋tJ\ZcX8K D!ݛ|w}Y&o ->{'\|]@p\ˆpnIE\QdvB)_N|O . rE@[Cׇ$zY¼ !]x+l %0Ҡh 54䌀y'^ qe aB2m*=+_Ys9vh?;Lj% rH=Z2 բg0B %t~RCjk\n֘Kq`,cm C$FPˣ c@PK 5gfalib/Archive/Any/Zip.pm~UT FDFDUxa0KIM2i<,T{zH'}VX5Vis2hwYupK'}KP+ t($l4#q_}#9!|+ ).I,a K]l{>%b(mʠ"IXdH($ *sc+Ddg; ?g]Wb<@E|߸~}GOi/IaG˥]UF1](P~"y޾JazcN%'`9`ڝ){/bD0VZu]Ck[>_qTwL47258w?0 D@3 /#!d /6f}ȓeMfy~`bR8nԎYt2G!ZBGXhxR\Vx?є0!cw"}1ڶn9RCb!tszV'chzb"4hgmZ_V%v@̏' 9_!H/yP9^Naٝ8jiԳFrLcR-m&^Vii~ ha,?h/sPHc73[;&*kczEȻbWJh$Gp`;g>; E߯zPٳكQ%tћO0I0j4Y?Wv5q˭x>GQM\ԔH66 G$m~'UFdQpYhޢzD_nOK83Hmt+8aM4|ENCc*zr>RDhrmOg-NB漏=Δ {ul-Mf"#_t_)Lwh}ׯTpaw[ઐcG,bM)vfZCp4*6^t7.MaBFOݕW5Raߕ-VBcޛ)MgqL"#3m MPKH 5lib/Archive/Any/Tar.pm~UT (DFDUx05~2vUq@D./F4'%X,ߞ %(R(8x0wO `ɬWF_<} (|\-mF<"vz$ч ;Sڥ7s2Ѝt-JY@+(=u9EmE&«N㞄mp$XWe 6P`N<Z_yI{/;a>_Y¤C8h$vɩk:3I Yp.X,D3†<;\`CVʅ+S4%S(YxX1WFyѮA4teV$G *qG:A@|oYB\R*Βy]C *\0w5e3Z* (pe|'Q D6Cw,t`yྃ]Yt x͟.) ۥ\KLxt+fSq Q4s#fqiZ~+ORrsn*_Er&\h~JLm`UhssB+}Ғ2y'+]p}e(?=M](#]8 ϦS% UPh*+q/h|z%Wx/^8ig$iS^] n/zt/Xpr[9PxUy v.b!AnOTlR_&`%(./-~Km=;w%-"_aDD-9j-n=Mp;jԪ!bӹ R: VINLDMua Z|LWcz5*HWvTmѸJL!U"O26Av8,RvQ O0]"de02uXn)eZtZnjsPKb 5}< lib/Archive/Any.pm~UT *DFDUx l4E>co}_%oTK-Z>#aawBS3TjftSbCZ嬾s85 d]70ʁ|tfP2ЛGjebpyw\>-b׸ՙ6^kz:% 4kEc[ iJ9nۭ־Y/Sf{׭KPkލO5k5`0aΡ:<)+aܛǟ萷܆著IĦ44o0A65!mw+hU:hrog1Qo2mhMvKHXd}/Zk7E`[| tkZϘНV 7]ǦӸư W(c9$lir{$r*2w`E724#Ϳ ~~G`J.s|ne"̗Hb81lwQ*䖞@FZRfjV7He{6w<ӾVq;*auZ?"?%B $!Kd;-d ΃m.FAFkc4_;m3'8 *˽܆cװG}FaW@RL=;!"x=򒌵*bVp3 wȪ[<6s*m3l# 8YG/cp1' ^ٓQ`6`!Q3|"ASGH`W+2V5Ml=~ 6>j Ffr<8XP6WVeC7j'3wg`/p5|έC59R&Y˻vpJq/m/L.Ep+ o@'.CSpfFA⸹\9N֐% D<R2z{ ;xm\c_ gk#JP~0An~3WY)Y8:}Sxgt00c` 1>%rس⊿I I-8tK9_'Ke^0b\ PmFB@7+e?uQB)B'cGB8t57G2b#U8yv݅eWH.$lpuuPGjsPgKZ| 6;k<";QLgH ,2=YXċ9.هrm$u;VGj LeGM"@ң}."TA:62y;g.I]u)/ A,x4vӓ5w9LCN :쪤ipK$ pղf9Àtc3f![TÒ `S-~{ b+lIWS;2ttjRk 8n أ]f/%>,kFH6a3' e| 6-I$ځ^%+0}9`B>]뿣d#PM#Ưv+0L iH!x9>JM[\Mp_>ꗅo&WCUWӑ4aCSϛΟj@d6b.;װP \NPt_m7J5EYܡsjL^W{\d"[E*}1ȚAޡ_rCm#jA :}SG:-- tS[g Q*zՔa8ջ %Gۙ[@PCѳ7U j]>w9@Aö^g} L.- ΘS." wƺR& ,feHchL+TsPҟaꋋZИѳYPK 5 Alib/UTFDUxPK  5 A7lib/Archive/UT0DUxPK  5a   vlib/Archive/Any.pmUT0DUxPK N 5 AQ lib/Archive/Any/UT$1DUxPK 5Ixs  lib/Archive/Any/Tar.pmUT$,DUxPKN 55  Ulib/Archive/Any/Zip.pmUT$1DUxPK 5gfa 9lib/Archive/Any/Zip.pm~UTFDUxPKH 5 lib/Archive/Any/Tar.pm~UT(DUxPKb 5}<  lib/Archive/Any.pm~UT*DUxPK &Archive-Any-0.0945/t/LoadHtml.5_0.tar.gz000644 000765 000024 00000221270 12711755474 017506 0ustar00olafstaff000000 000000 `-TԖC0۶m۶m۶m۶m۶mk{$=mM!necohbbkC;++3; # Y[L VF&tX ::NJ0g?cGV":,)`7qrF$/GA\3z!\[iGPАk)T "$o =N;/Unc*iЁ$-,cf6{A sHIFJL IAtzURM%׾co\Y:!E29EbMHUËbwTjJ~'NQS~,JRr|59/6,"9)xv* žoQiBMaϨVؕCmk7:(1 #| GS\]#l0Nj9n0e`B= 4hxCJm":KP=Au?CA~3X/ Pّe?ܕ5G<l:aii4@鿷O$; P*r=~nX"w-Ma[߻Rn ״˿=OEu22*2zXFd%aENf_VveVvDG 6)ftzYqIlQ/, D4Ko5 ǃxk~_Uľ!F=#!"=FJ<'tt|P/} xoYhR%nݱOlDT )xܼWͻĺdtIl0R#fȸ (T&I? #۵6o^ц|#%ǒLx ;V4ޕ9WpGyh,GuT`d]9QRg$9r-˖Vf0-@q|Y-: |?Q;PI"9 {GpK|Mcdg )yʡ)&S%No=@RxJwBCrLZ5˴~$ V"moTk=hAI}Gݛէ>oU3?R^{1$aDd*z\ee4ȹT =+-dt MlRxy.;x P9+hr3{RK{w9ʿwؼCC.Yڤ-Ѯ=|}}I$f_lp;sя 'z"A?Z.U ^qz'ޥOx@JbÐ+N~/HQHlh?3Z7M -p˲BJiaxႬjvKʔ:ŭ,L?$e>6ۚ#B] ۇAF|gcT ܱ E VXNd؈0/ToVxSYweHQSW;|dl8]KG Q$)6.DFy7RK;|I.LH5XbƄzeC?~tUFF`F!MS"*.:+̗鐷c#Tc&*qֱ}4bzPR(S)uZJ!$?؟_BZbSՙj_Dڤ<͖W+Uˑ/>k)gf}ĢѥX( [)n *f2 6һʐJ X^ܺ#&7 ȱ<́<4ݲHG i"XWT2K r_FTElԢgo\b+ @;s(gr1Ybyn"3AOe{ mgQ"?6xR.)sl.A&FTϬM6 mN[1Up8h'%@(8V4}^UY++ 9O?QaM';~quKD!P iT>fȕeSmھFK5_[su}e:xFd[R9uEy%K;n-,͑Ij.#C8XY3,4esA1C<,AQ".!\A`h-w^DjWV/=<3Jh6ގh#RmVR5pbVbzo8(VsL%Sʰ:0ۚeG9z$ Sf@~Uŋ38/^ :)ea8A9yMh&)tW3MZ^0< pV0]:a[(N3ߡ_F 3<)YMg%$_l^ dچ*gCWдM}|=FJhNtggՔɋ6nm$$.a\h#* b!H=`'4l8x9DWN<„jVSE*Al-RF Z p"'(YQxQ%8 hW2 |p[/ 4ָ;Bc!z`evT0\lی޽t\He[k] A\:WHš}.hňǮ/Y7)\i LBLb4h{ڷNQE>fz-v0mA +ƣDgMWU89,'t>a̕f O67E[Ap/(rwx>IP݂X{2${6Dx8r]AJeUt S~B;!u z ٫3 հOqMy_6lw?#[TE1?b.IZL3kdϜһUX3&*Л3AVq$O[Ji}"'Xdoc!h]/U4JџtW9Gz̚>Ȥv L@^He!rlH<1T+0{ F{E9]"P4v)ՂMӑ!Nd`z|w lβQY+5"^uX7^hZVФ22[51~a9=\el*]lZYŧ(|L01a6a=szOߋ>):3$$i^.k S^7Dಷnl~SrOQBPq#Ym%r3;-XUAfC^73^v{v.Mpww=;=*Fa ЙNkR{.] eU~ g+%@}`>82=Z?%܅{,͈Zhyelt0z2gkq]~T pg'ZzZNccaI_) ]5fqCkmvm!'t$(YB %ĭ-uqʺgݜGf7MeMP?sɄ~-{VQΚ:/A2=K8f_/| ݔoD^-+'247)HMKڜ 7TbiӞ+YPl(u GL,=#xa_7tFZzG]>/y"Y 鈐ZSzƅ@ulJp?⤈6YmLon ߿@*0n>n{R*z2=%$$Kt4.ےC)[:YHoQI!ĖIZQo1LƙHڭ`Ě-dF&*uP )wBZo2+]:|k_Nϻ|d ,xʏMEƓ/ y^n ikRMG1'؅J(vu A!^2,W4Жcl S _cH_, xcnJ]Mz$&R!AuΒ,֟8=nFws+{YWO 0J'I) N V?!soy*tCNFz (-o~NAS#=C(J%"R<,4Ɠb ß`6eqc.+y ʾ,0Lafie\Kj?pǧeSPUHZ?[*AB $$peiI޵ CHS>7+IС1+^ͅ׍SzS; ;5J]lOp4EbAU1*f~9 &pe)ݩL9D#L1jm=rؒo3#KлEkevdn FB8!.,u23ڦ=. RNK8[/ Poj2j,uOM-TB\bv#bbf=ߓ~?cRY+i6 k &f5hn㋎L& '5"QYMSd 8Q'$+EghKozL"=m|ޞWL;RL8DCBf0 T+4N.b8Y |{2kFӯߏV Krؕ-xʹZs\2w4LBÆ?7=#Bs>9ŵ?HΖ!%w0Q &궽:ИQ H4Ӳv_d8+t*N>kU (b|5;Eܗ=s~5@$U8ZCU"nBfn$DCl {lgH里OH5;Za\@l!hZ1dnϊe@ Ccj"igNWI1蔟KL:0;z~ZfC Q$kKRǯ5 T/VyԶVuSīߝ2gp!>f&U3quƀT{`v,s0>cZҒSz|\fMDap8^jwmD-F~aCYXas2X[mUSPKB.6 е^ύhFʭTtkhɛmç4Î3!nF:-湟tvX2w= ձ_RUzL8m򷆶8n.1O›?X,0"5a3gpt.ģ7ӦGXp&̐(bDA~tOF#ۄ)ENZ'H [⤠&i #A y磐짹lxk'`D;A"+t񣉥'Tr%_LY62eβs=o*%Fc)o/S0x eIB* Ob (_~/讣VcXjSl8?%d\yRDniE0nKo2OVSTFxϧtodViCy&5͒{{☱5"$XL@#vv}QS}j0Uȶ= !6D hɐ |Kz",$ bllc͏s&$a u[(wYt{M* )/惸5k2\q!xQ]ua+yY[KDaeI?/#XB~d޾F7wɍۻ/9PiM'E`Fئǩ<\z8:^'H_ 5#%ӫa:p֬EG0\#V@_Ik] 2̵;BSD^;MaŜ-p[2_Χ뻦vwB }xJ>vIJ|~S>2vIΪjP廵Ҭ_eJT9Fg_GFkIG Ku.:lwd@! ušͻ1loXɸ7N_k>w׌*AuZwVApR8r{V0K,ښL(C2Uw_SMq3wq "ؖx% &/N]G:B~2n$ Kf10\zw 3bmPeuE];G"Dd"_bH}±yBA}/njtW+K׹.cX@~s:̆nzuho\'XfqI [؟3>0l.R}O9)S,y]s@qG|%@y=8D.٠򼪤/^d'-Yr,Rx6RTwu6"* n g[vػ';67Jw(Y?nT;P/!sFw׋yI^&'ΙUj^v'jS,K&'H˿Mctl[ /i8;aX@[)G@\xǨFjE/Mۓe,Cw`nC**5𱫬jR>jjOy¯#q@S`}hDaAgtDJ&$X"AIR P^r  荋sBY{Y}ͻߠA9,J߆hmjŜ v\:}OV5kq{ߔO^[}Vy[fC*,!yZgHvuuoV^LN 0l[QLfrױ/( fv@Io܇~:G4#asOs90 wRK9  YPhV_T^[|5.M>Z (g|LbY#TTr݇εFUZ;㷈Q. `T<")3@s$9Z=e> F+ 4k܌M98d.XDGsL] hw6s{G Շ됔[R1%*Tp`Vg53wTm TE,nIfS{)uKb& \&",NjIEMa2}:(@WFwT32u`^d FV(q!ix27;=xP׻8ȑ@yW}&jDŽȑdĽ!fV;H_LTXRxjK6@i{{ШZ L*1+%U4A$BŰ\[2 LHn%yⱷǍCCЌקlθ&7ﻦ:spLyHƊ>L. { ƆqAob<#v>g{iy쳖ɍR]3H 9n莦 (K腗)3 ֜<퉱F='ˇw^ 8s 2v97tv׭;cUulLU}O 2JVX=Gi Rm0h-2AFz7}4Z׶t@ p5ҾBPl۔NCK?[2^4tBR>EFCfR mm|Ƕzx`0TecӖ/tA9z]R'1,NV\Y!Ü %Mg͸kt g9=g||J{@X sDnP)ލKp {RY:>ͬ w-C ~e!`t=eyZVm.w'm&&.jz@ !(Kӽ~{T7 Z hr9EznW#n90ߴ .=e !=7fx#(9pU 5ϣ~.Zg3'uWvG`+κiMW&k:f\Ĵat\hѴ*3ڮvL{̜Iȷ4ر &\>4]|j2M60n>DYt ^l2=Lge";%?(9=s%.g=[HV9n ;*ʕg[zJ鎽mOWS)T_@R.B2sM?~sK ͫkž4fT`4>?$:fD-W?S#Pry1,fyEovRN#Eď֡K]]'re^.d۱;T.'q@5廴F2QY$ME#T9Ez~S5v;>)b#2և.r@P3wK( .YدA(?bZM6d¢{B^V3}mE>{ٮ_G4Na%<?uPvUvkO>$}:9> {Q&o*M,|2ً\882vV[jƂ ph/YU舷T嚨>kA.,,O|'дQ5:&1O![к?;봙,(bj}ҵBH#7j{M@Lb~sRfbl7)SeR+ǃ.+&֡P#q(m~ň%~306u DiW̺P 4\#ʦx `ýtz1C9nb+4HM?@0R*/iT1=&<# .V*T %χ Ҷdq$wba82f׬anC귉{ }߉V>Uy]Ӌό^]zL@}CZZ b3Ԇn KB՛%9!:kW&@96iy%Z0G C5 LDnmp M?50/;p_!j_]A󔉫Ӹ4pĿ#Ne[- kmxgB_vYbٓ9LGg͟"(єZ[Ta3VhG4trI󕇴L5f yD:5jH=X:!h \j1V]#=!l8/ăkUD|r]V)Z?irLwĤnB6T0&ܛWH$歸[SC.IP[|Gšߐ \*in9oM+{+d?d݁H (&0C iSFVi"BAI)pF }~^\p6MA. ?OWZVb9;^Za@w; LG(p]ΫS ɵL*;2ܘ>XT2 ^;v! cc)OU=t7PU j7 ~NɜFD6K; 9g<h?l,uVP=F3}h5 8X8v :RuiL aJ"(˸T]^t41ngvl{H;J<f!qfRcAm&h Ƚ"ؼf\s8 )ui4*(;)at: 2:am/lɤ6!#7>3oqOaj22tžr|)jvP70y]RE ;(u=]bhJ[T_\7;q8FN<%8 L'5;(X!2&nX jkPFā+үIhǥTkpU}ޓg 'Y@10{ht*kml R\-q`Z@3+"򎵆y9;5Lnn;;ky[]BN&a~JE"bb[_OXVzTqحB8ik=Z= kn2<O pd%[YUD[r6.g?lItu4\1z:fV[ y^#5|?9˺Lt!+[t|G34 XeL퟽]F fKkAt$)|k&f$ P" 0*Bk.!#ɔ_XMg?6Zy^dA F؊Mw佴MKHb;^T?-FydKk /PKsp_nWPfE{ "Stՙj'B}׾K1ƥ?_=3h^۶m۶m۶m۶m۶νUTd4لF95w*D3' !PlQ'bͣ؅ khRt[f.GA] I8d189O~NS!)_Sꡗ89i-3vM~${$717̹EC`n ݨR:WCZ}6r s9@Pdd;qnW] .7KH !TKз5lފoD`!7􊴾\ 1-R7qd]'ǧ@m @4ʘ T*1Bnw5.WjW{bH*^owPX%$hTI/$t1X?ϸdzat{ڈjtz 6*Xa(TkBm, 0EV$Ykkqv8|AvtƽḒL֪D E2q8Ğ{k> K, %QM^n.QA黂i{Pv%J#}Mv,:*itfbfJ@҃(Klp淏p&W8qy=)jͽqȼz"S*gܫzg8FL1!Q[vWĔt+VMd֘47#$H#NLdC [n4_``@SxL3*{ PNruî7ߪ'd!W RC;ctD^zӨM Q$ĬOiS}5Nt*C.xS>Yߤ*R 4YRf\l Jx8DiTe% Hs(Å yr0ׂl!jAx$3K"pw_Kman0_Xtn|FVR1B<{? VY7S72QEƑu}}y k#UfN˜,#jA4MF9ۋmW/W|]¤WWc`2;)WՌ$؝(jP`[9N ݳf!:xp]DK2xsظSYxwqz*aQ\t3J\!k;\) E.JXqY8JPIr']"S??-~dDw??8FˍɼЋcƮz)6مzֱ^xDVxW~&o{i{u-ƾ؇#'~ԗn"E59F(!M7$ PFh=jvg_:P[ٚ`r(HYZs8H!o2gC\\#Ɇ%-#41s,2 M$n$yi<ܭ͖!1T|@^/F>?F5M<^Qm2-r[PI@gG'e}ئ~De]]詄Q~v'j&Sj2fXISIgX\.@)ΰEOiAtV")E7 ˆ>;h?t o7y+ :!;|>nCeLJU,1)n٧yxlj(rq_] S* X_ +{ڗoۮM`!6.¦ۍk}L۔L[)%^[+W,­c$Éd{ u)`o5g0rUб1= B %iAWqEy[]UcR͎ܲK5ApZ팄bUZyTz ɝHN5 4#*Ƹk/X|k W.qr#ˎZv yE=jx^cZmV@藧.F8dgZWm6 nۋ?X61!3^S菖z32SdnY!Y0|>eS137=hIRwߊ]id͵Ce{@6\7r`*(T"w*\=Ά>`뉋UpLjúH_juFEtaԞjbF:k+\1U T{D`W)Wh/a,%(2wԎ "mSLÖcy.@;66%S 8ed *3T\@,B _ PO \% 5*E8&6(ޡS BUiQTO2L51 i ?gxG`?.GzXK')+X|hSnlϏ mE"0=߂-tX?-k1m88xqF sebErF[a4,-TYwL. j9ȦS`30c\"kov?[АL"hLmN*sq@@p_Rk;\eY\S+tp׶ˬ1^SF>Aʔ2.V?&پOm hQR.]"gmx:"U/ȍm{C( ׳5'29ЯWIBGm v~; (!5mnh>\+2ûorXTj hD8^@栴˳q6}i Ayiu3ʬpp nI+~qrk`9S( PG.}|26u$}-ܚX= w)ūƕ뫎ˏ_v: صQxTJaV/9 .&אdAAmGph xN׿rQ0bhN?sWdHAa!\ cDcYI-Dx:# ] r|3jR-A?8r{X1;X)_ObʴR5VU\N>-CIÑ0X{XoBUQe`bQ0S Zcg  :KdS{7\&2 9׋uX1>! pԜ]7(͉V8wH_dSHCǾ$wv oXnLcwR1kD*JCt?yȾ)p>_}rRVSڹCip| cqT} ի-JDl_b<Chӯ\U@iE(: [([גyE # VBՅ*WRg~y;yZ䍘nsnxw+RѦ+7E<X~H@ގLT} DZstpQU+Oh6 D 6 i۬f"T^phyZB0;c fLO<GfK,Sɏ*a_"|zt~c=r-)؊~0YYE^]cn -*4x8iݫBDڒ U2T}k$0 Da\\[HvtDoFd0ImWΡLs/1wbȝtD_H>'9U}~ز>iR +C}x nZ(o)qN; *VW6XX++~'Mtyk NG9Uu9eIdBX޽iܺգ_D%=ϏV2ez#&qV 5i8_VD/qEkphJW.B3hogoӐΏ䲝JdY; 49J@8&2&:qfi]rZ@j ˕mN{8Ձ"dQ:=JbT'Y.Λ1\|# 4v)sW1er#1쭜\Zbx.p|Xҫ7 ƌ۸K.=sWkc\6*_n0uuY=ؒbixNlɜr07>W| `Qj qM,0mMDt._Ucl6J?՝˜>ze?˷[ϕsN}Y0 cD$i؊?7g HQ ;#޲ڏ z~o8OZe ] zcȴsAš}ɹw`]G7m#n"x̦(&嗿W*wRu8Ls"CY".fSH(w3O=kحQV9w 0CxyuCgӱZtVc뒁qVh8rj!k'qeJD([M- H y1hqPi3yo˱O `xPd.rkZauWaDx2ŲIYv'QJPWqn"SQ@E x _T|?J!*8ed)"\3." )զdn hɜwǭEP4<r\m]%hNv]8)4'Flbcd$QVD$E1 MvGe`RZվ/Ϝϗ13/; 3cjޣ$1$hfK#a>>'jRԝFQئmuWꊤLx@:=Ld M$?8_;#`{)!"nb:JTI;}֟$d`JѤ){i{$߽'_FdA* Ml\瓁rdE3Vp EVoN6XPZI68nڬ3>Oz0 Re2-9g{Wdǡ_ץd*c5/jiw$̣;ZXjwܬbpm8P ucǦ׏I L bYIr֛-$!IH!seQb%zBcFJ nXKnSC,Au0\6T:w{j1o%>qȰ"#$~¼Oi7F}oXʲj?E>E"]T5 OA ҤC ^p ('}V=(;ҏ7:sSH&QPjKb89 a.PQ '\_.qk ^dᚼ>b? 'kF|c3!\un!ImWxt$t53 ,Ou؄F5k$}Sʎ&T#[ :-_ohoPpυ/)Roi=jd*4u\{iI/V^uw13f}6} 0S/]eg\3(hԮuUq>Wn,77H`b~`{+|"KT>-&qƨBefс~NZHqX'&{t|}T XZf4,3;C-U`Pcnqj;$vmܤz{ZnCW!⳧_2ɫH:6c#n"-'.Se8]Ƈ{n* V?f)ϗ|{8%W5560;Ϭ[,(F I؂Tt{1a~Uev@zrUiPTP,<ѧ.+>ԈUIfg˘5MJ#],R %#c[@K $rwրY}`V6}eIe8xCmL> r2>흑o#* ] ]ݤQXw)>0'B(cy+2U9ׇl,ÏÃxј^ŭ|{->vb홦 YVb!>5394%zg³ۑv~MP2{`XGR`PFdaб?{!Ҩ>[ɚ:{6 B-M#sF)+E4='nȎrn#.E<6WVϹ6BCPJHpHYB_VѤˢጷWq.mcF|)3e9u|FH-@UԠC"Bh!!8[;p+,zl<$P ձstk W.>AeRz6*Cϯ3j{=pkyO 'iV(_$2Q`b4` {} ^۽A6J3F*/ԅ->!>8Cˁ^bhweGEe4#FY8A|:դCf؝ĭP2:a7 >9"4JcKӹ2Gft!GZ§;ohI&XdT=vMmZrXkILǖ,w߇&z[0eOxx埡!b;UJqtt昸F-#uEŶ8bȣ{tqH.~#ΤQZDzz:} m //&)ѧaSK xWF!v{A0PnC]A>On X"=K:Fb$q`fs#ǯW]Lhky zOn8ۚu7ͽ\ F'CO|z By y7AXj񳭙s%-7ڏUn>59t!‹l)yKc,?H{::5萒t1c$;1i5'\F@oCGxD(tР F8U?NOK21R#1唍~3핲-$ >syb۞ޝUh35/+2Xt`pv͚L{gmGKljxsaz^H_6]@`%Ag͉ 巚w3Rbp7`IB>xoaϗѳ)%ީn*kP\8"f#nc+`P%J&+願s0S7i 1r.Sz7¦eZ g9]yPSC5Jƽʽu\0[֋qs|˽ };>%i݌ TXmN릖͔ B獰IR$i+$3[߅B; p"gxqc@}Ցʸ@9"wTn-+Ry/W42n7tt $n{{ 0zV5M=7tX1, ~O`-?փՖ0PB8gV$Lw6qsPY>rP=}})Hٓ/deTh ;PTε[?ugɰN}Cf?irȹבߗi(-Ky!b*hIEVhA^3osGޞ:㙫iN4,ȱR.ѼqSL']#aV>AIEW50:4 !-Si( t t Nw.)]гLZbʫt?'4yιҟeWJb7IS07ӎcf!˕Ď8r}gR>C6E1i)nk(8B^w =N*|^#8+`3 d/ oϿs-Utlo!E!GWZB@X`ZAzre.։UQ>l1Qc0\Ygp@!'fgS@3$‰|ʓjJ &\xPȓY iᆣF[ VJ\[qH 8z̓ҝL>4̩XQ{A݀6|<`#ҕq]!VNF|9lbϏb8pzL =jUoq}GG0}LjU"ZƟpk,JI%77'Zs;l$ yR2&sRӔ,/WJjR7ju]I=] :FOijK '@`F 2{S.tJeonO+Nu]bQ "145)@7¹?6;2% K'I+Xs6`fAV-r}_Ɛ2wא[8:ŝ̜`E/qAgJ6j0e?7dduv O4E^H""E9ދ!cjYС.lC N#k|@-5c(cYh u6 Vn '| }uOOمI@VO[O+"ݎLO1L*$v\f9]e)5)&'ng̕-yE=l= +ϸ2Fkq,N&'PaI% QH9Ƞ%$Ջh9[|L@յ9]GGQ*>YO~TP YlU8N '_S(6r^>wG6R yd }ޝfX ,VSDJ<u0Uz_0q G/{$/Q753>N5=?P~u-%`C}Bnm/7gv(]üN;=Ns?H;&Sa(;, ɀŁP\=/NCp{Q iq;Q (#'r0lV$CY/,נ> sᨆ~DhW:dT 1Y1 v߱axIA;.%C@c ˉ9u;9ɒ+}vˇ zF}5ЁD@O2R+Q,Jg~ER8fN\ Sj_ k&qb+eظ)=83M:H" 9{0IRjȚVt:fJc桺MFFe jS #,ЄY`2w{.I{Gz d{E2\}"kbm(m*ШeWW c~YF$_+Fdk׊S,%3H#ġ.SQVvJ#P#/ٲ>|JX6s?.q>)'`* #(CCcxN>ͧ#tV܁ 'bJ2׍;Dr4aXWaNQ?28k%S8Ʈr]CiLbA˱G=&KI ]b/>I keB;]ٱ}PTU%rYIEDs2ӚW2->{:(v2ZH Hbi쓚FYf6n'GŲ+3.ORZVFoוk A `τH9 UbZ4{YY"V-O%X跱8@;L :*h8Ŀ&OhZ_W09@Ϭ*[6L*sVZjmњrR X2eDŽ 4tx[[ [>|WMLuj:B c6n׺^`_P:T SíEX~eLMG,-ٳ 51S':m-~!)"^Xs-`T(VzVE^A.ɾɽq+sgŸhD(rD@wNt4;pquoU+,1_ah̗&^&hʽ'kװTﴔj7 5S]On0U剼4T8t[#=; -3( 6BfIQnCY پw[8L72\CXgแ0@8:6-2ymL:!8~?@ȭ ^@)t]8(;dj a N$ǽF!t W/qyka%|pROw*TdZ:/&lݎbۢF@Sq8cHuPu=&RRL.ES3Pa|KZ&ۭcen닷 dB{=n6PhI$1*M#aby 'q#n@,2W]"k.(tX-krCcg6wh_42rTj#pwkdGoK:ids싛 `ZQBNiSLߡGF;SW+}I#7;E;W<4*l[An94uD-Vi؃t @@osMǒpFqs #͛d&Z66 N R{=D?⠥)5xRylԚ4ZrTraZ}Hw/ 0 GR 7UBo EJzɝռb~WJG7ZZ2.=acdHŦZY.04+Vy d})yBf:T(.PQ<C8Oͮ9mΕaQ\_\܈&ϭT#.%n^ F X 28-$X_i,1!LߥR>+LSVM*`mA>4s0_=]o ļ&ЄPmsg? z$\/>l*A(n+(=Ԥ)/t:^⫝̸o> ΤkQۻ\Q{.[-#"g޼W=j۞$^!i`Q$0RHpԳz]uc9gđ"(,EA6oS6ަL.^~@׻Q ÉNk1Rx}rן2s%ZK>,.xw5/+IN3aIjCP s erۚQqMU@Ūojvc"\Ѣ߱2l>?HǵO Hs13d*<.jxUMPw-zU9^]v`!g`U*HvbA#`tJK9N%F`f,~~3fږɆrXG//%IrWUY؇op^+59rrOy 3xSZZ} ߊ*Z+C mSgt{\nN̷Q.zȹ# mA$tHH(:a0Q,)h6d4&.߈ [`heh*\E3ݛ%`M>أDWizСDbt&vx<@̐*FɘEeC @YiV3#@otH¶i{;6&m㿠ehcH=U 1j?ٰHɅxñ_JX+γܥsHL ?,~|!ر5 jd8ia6sGӫ|Na5:#-8b|R=eTq^A8NbA,VV.a%k I-7}+"S@Lr WKp%]Q¡^upv taHTi(:!zF JE8da2N4RߔxLY*RȮ}*`wA("13\ȝ?#WUt 2Yz671qt $%W[Qk,QAg1p~18'Xh#}9X.c|AFQVފ.6]JX:p@P5p{ۗ|"+J̨T8C~})B|2O H7TgNH Z,(qC&{1a#WnW1͟#NSTϠ_gtOwBW-,!TM.L{PWNr;s8ZHw^;J7KHgPsπyLGJ|B?4A[@vc@ ÎZD>$.)lD5, PpCG:a:YqݣLςߛ=iZG> nHP ; lo(j=rXcL{bz(k>͗Px5+̴PtՐ; s$+&هg~X ]7u>yjQSg\X[,X*m:0'~I&i r9lG{/-+T#Σc(r^[,^,-oJGF~x%C9m ,׹#}-6p@;h"#c Ai a7؀{F _ho9'K tfO3-8ubOclr3ZV8-XR/6*: !@y1h___iC sL&G@XW6`6s̱ O3q'Q=±3+krѬn*Pep>۶wZv7i~h]R']mI}+p֫MHSp{7 7a"OOuѹ&9Oӕjԗ«p>xx-R5`nYfP!9جƙ/#{@DtmU0QϠ2Z\vڌDaqR2!U ^A$ǤQg.8k fNc| QgRI0ؿo%n)ZH8HQ7 [~wb0a$:ErWK{^ok;c8ׂ/.DAsU!q3"_i}c]`t$}J\⾓'fO|R,״Zh펋nKT Wm`WacJTMHZVy-D=7" nǗ펤.JB0 _4ž˃!WTC(N1ZGXQ_qF|ޭކsr:} ϙ/< <37\&0>+MԪYݦ60R#fp$x)R}]]>4v{BFr}|F׵cr ŸuEpG O G~+% N?,olQ7>0;(1ܴ)Ad1>qAgti bЎ&9@ SIQ$.0gl8+*tI4m/ q֖k}<̨dTB5rPd2 X|4])7sb,h{c (XICSƁ͗rN@K%q) `,O^,%Q] .#1:>i S`Rǟ[ٲ;hkԎ?-Nϋk$^2d:w;ߵb'U.n sEm3&ӊQPN6bʢC zC#ޥS& 66u{W9(_]ҟm] ا(J Xw?8xZ gIC56 MߛoCX8)pQrW 綳XtbPKƫ -QQp_Kȧ6a'Qc_)$ :;X}$3 W=+ z$3ؼA Sp,lm}b"KWoZ >[wrc'jLHƂၞe*"u=M0wAզ{-6kEg%\ܦ~!Sߺh~x_|C$:aPs= 2y'B\Ѕ(X<6jQ]y'7!UĽ}pBWId:^4 nG8̛t$JR F@H#Q#TZ6$2b핱H|?Sn(og͔kR]*B;'5'hT TtUG3bաroO]2{Ձ n)dwb95ӣB|HrS\RVqѧ=Ͷ`0/p`Jt'ȱcH"5q wl.GwjBһXt6GP)LaŁ+#]pU/< N%͟+u{u;ێy.A{FEmltDzKmŊ2]~A;MCړ`΋czx%7* [[7 xTVxx7RDvsF|P-,WҬ9FL[sR7-"#x9$BZ v);k2p?O8go좋Ny&* jjs~)6d }_3Y14#*lk.mO^\I2\ġr1Ab"9~|8\J,sy!.GL,E:I)#j=p#_9Fbv4sѸ(Hk28çfQ:M~UxoFe , X]gW2UUA KÔMΡ)`}O{r{!8DUt])OGe^Vw\clֻq͎aH2Y|2Q(GW W*lȽ~ !kYy". ,)k\וZT t ["ƫG.|([mylZ]L~'.{M dԯGa[g"4yhJ7W0PZKd_g5$7 68eE\dr)Id8z~Yq}ʮǍ d}Lz6g_@|gx9. K{p2 {fҗc_ñHI15&/e+Ξz7PA[d"HdKk!J>.1*/FLx/l.iu#EҐwSJle;1ԡ$3\[qcYT'(ky*?7M@*iM9;ob!*`|IMOeZWƷ'+Xe b]"Df RK\8 ¯g@kp@$ìi&YI%I=%O'85@uPכ^V{ie݌򢺆'jEmHx~CE*z߇r^Ϋayo8on+ՠ2)^Bvi X~#Y'NE .0F(J{oa8IS[{; ЪF7 _GmKE]&4 mCwPSx4؋NGj uEO Xk%TǞZ=VO=,=~VKlC6: ]ֻHZuk%Q5<\y$2((?٦fb\ώ@p"d ^M|@7(JC5ZBទaZn%;ۙRw+N9So拃v:) Oͮm8/z6bcrNtOdw7"r 3BeWkBK/|/lMfNG!ƔT~_TMVI7Bg +L!+-].o)ö_ANŷh5фRRr3% ʔ8;~ZюPQ̎xT8 5]ۡƆk VgU;M2"ZB̴HLPÌfι"YMrCET̙ ?ׅ?7%Ufo6 :>Q;;p%ܱ z㦞%ahM E(_8jxĄ}$+hҙ?hN+lQjJPa v0wڇm[@v*);cp-D Uf/l ȫ*m{U+i]K|/S!Pj5ml IhVW݃Oa~ igaՕ‹&cr:ݷ"e>Uʫ"1^dlF+\<'lF9:xIQiq(.KYG풛y4Cewvn_r;3 6 1,_ ׾qJw휀1,]OhrWzKkT` iȦSܔ1Sz{d`Z[ħIni+g枖z`64`q ZH4m [+d`/ܭ"E#{}Ĺ<@݃FQb˱/Euow&B$/20n$~.k3 w`pDQڤA7N{$L &rф'Ԗ4TOVXQ]^P]/afimq9ؠ~A~Hh^Iw'SpW!_1Ou!T!ӃIy\?RF0(R(B&'>A2$F'W(A{sl./ke5 ķθ'_N8*.tmqELCR!b&Y|aȜKXps%2Ww-,]25C5])CyV:3v}4wAZgƗDy]4+rMQ be#8}0mEhϝ'h W2 ȩ#5|P*͓IƷuYبފJסR |z9-֤ i>Pq-䢾7(ђ9o|Lcf} !pȚb)n.&Düh9#|n/jC:fրy">ekfthũQp~xo]GnڦHMSH7!eO# %T1ґVܳ~,Uj:!b 4vM=¦v6\gt )љ7qZ}Tz/_:؃XV)ܑ]gϮzNpb~g)-'ngxNhmͱ>LPG0AC :cCxBgZ*Xg0Y,5V7?S9ls& ov´W *D Vv&8.FWj{MF-Rks'Ȩ'B:kq9xAD4hjL l R5 rq/BЃaۈ`+4L MJ! 4F#9WMr+Qt:M4VX 4/-.$H\% 1l%EVޕڎxbU":oO.߸0yIi"n~VȺjdB(s\le2IԹa]s_ڂQ~vNi{+3-d Uu13ALlQ+K w#P. *L(!zD yO$ hf'}b1/Rí: S=snhHcW@;_@=MuZzh)20WFa5/edam-H ׅ mK Ӱs{51f<ljQ>="x#J*Z#R|gj\n{}( h1|) 1> ./eV=".nb%?ԋOYU*Wҙme cyrH-dqF^26*{|`rRqa'i#ӟ#:t=ow,0S90mYӋƴ 7{[  S i/(^XV<|R :_FĆFtE{&I]eAME $Qdba'Gզ"(B~U,ܾgaaHa*B7飬pTcVĄHrWR+=b[(a(I,Jur݈K\TԍZ7b))B6?`\r:q_HAR)Ra $e'qs" P 0 UH) o􁡁 'CɻaGq~hݑlގ [k[D5,%tҵtKyuf@+vk لId:* b<glH$]~Hz`o(hF+2pƨ{ױ}Rk-8+zqkze؏؇efK!9rm?ukƎ;#Nw_9(~ 榫M8W/XNFN1gFsB9%;&3/%*cՀ Uڄ& !3u wS":㾜_&5jaP:E?W?^3zQOiVEq^z~iOVvo_қK:b/Wv%&4Y3~uJH#4o-v2'R&t0 FWp+rZ5$VJLm%1?Kکs&Zsӻ"b rI\1M9Yθpyp sM mB]ngVcy4*y$P dvaCsڤxi W@&c(+HZѦ)/wp=ȧ՘ǖ[%o@G/o^ڱxHlh3Jy^J284|?"swxwAg]};q$*#H8˹P~CRHO4Fu@faU"DìԘRO[Al 6 ܺp$OgCOnb /* /H8<@ Kci_qP.&oܷyŁ =O؁YS&/(!胣b(-…Y1üv/7{KQ e^rL\6VDQY}bxfTܜhZ2#2Qk2ogCz$^u 9oCm$B^*a-|~RDpȤ嗅hSএG@˸:do6e<^r(#)YTiYʐ2v&\Boc.1 ,M EMEC^Xiљ\EuT.#L ym)jQLR _b ]hgRjw3P{5z NgTyh7)S}^kkNd/JKvV pN2\#heI#`}pD `j@7w2'7.g3Gz]zyEAJS*]2M9n= Jv;J;}یD+K|p}nȠHa%~-] 84Ra-qz`!! $rM58G8/Ͼﲊ4mi3ٳ?'aP[ (:ugO+8 åp+zZ\f 9=<ȎZ&R($Tu_ #6 L0]|I#p9*N:-"EpZ+5pC=7z1Y9kT pؓ>BTm !]-CtGGX蘕=ts\[xdֱ_`g0:<"aH\^(TIu;x'i;Y[3YS'z6™yA.f.fhIRT8,&F ~'7fOTΪ 1,Ě̇q,BN Pc6"i u`cإqiFYlIu΀ ǬZިSwv6]*BU>9) S dž/I&{_ZsWABS &hCRKy)sQ1|aYCvDFQn6[z]A^0z=}~4Dq]|ɚË('u2>)mָ5q'A8c|xvZ1 ñz|9RL8jUݮ35t_l~ Fu)O&OYGH;DE!R& -p ZrʂZ>p_#bxl NbTPA' =}iЪۛ %nixOj{b[)/.lcѻ AdT ߸\ ޡ`?T1 0؏چ"Ss!Js hĢ=F5s`c '3Ւgl5sB ~nWT4fAPFn .Pfak#i0MP&ۅMN324 8u5tǂúڋN_/)c`W,}-Nq'^]cq>F_|@r}.R;=!ST!a `IOG j{IRJ2KbyK_h)J_ |b&!=<2^u Zvd&yR]I [Y-~SY# sGht"tJƜ'M_LSbpxw/mPƘ 9o Bx7}WV(xzßɂ5D8#/ܝg]Ùʆ77uG)$ҼBe>wԴ')[,yowmșL`Q8_|=G,ϭv ҉˂ul Jנm5UT&9,B" |*s'' 8t"4rŮ cgTw~}궩j<Œ*La$~8-\C3?]K&nwaqְ]diّ~w54e: B*LE%WC)`7S p?RYE_ˡJ3q C i@BKUKT8>9͏af^c!$J ܄!sVEàl & EvfDĂ։Yi) nR/0z0WWH´etP (>9{ 7ܞyYX+G{b&ωg>[!2X#ϊ"J+#I*ǣ;z_{!e7z01R.mvoZ-(n*V-y/%Q Br82LfV|L:>_~֬>N}LPhM'o-#k,zacLkJ,5Iڽ6bԸvNt$%lVV so _k N8 ;P9̵~H1q=C/N X݂xLe'1p85Ny1(QR_(h \!J(1@G⡾e?8k Xyn! hu&uǧ(=2:gDf:4 y^ H^En% $Gͯ_P%`Uuy#ʫJT9|b:i*;iu[׎9xKXI-nʀK(%μ @gooǜK{bv rz#tlv -Nļ~13.T _],UdZֹ4x艮˝7qpS#0 j#( e2S(HT ~e 1EM1kR5JĪ$:x< ȟ.9Jdv B"JgK@Jo2ٵAuƭg_X|ϙ&S|ljܩ\$׿ hbGTZpk6è]ٶowK^H6( @WCKw 1B'W]uB>\ ^sETneC:MmIZSb$CڎOI녳P| Az$ՏWM]}C{ liGWJYPP:t@n0[鍇Z^7}C{ךf,E *Z'jA︔C7Cz2 Y>0 TgBDmHYX|[q!kCRs@*FaVZpbrabhpZ Dӟ7^P5ؿ>A&1ڱ&%L9W L"3Trf.gس(a:5S`͉P!?H#sܔ\I ! }%\n$[&>ܻ=m _}UtKU:S3cBPk5wMs6֋̇|¦kʄs"LLjMͱըQP G_S/F.^߬Dz<\pf w#02IKˆޅrH+&^`>[*xqF*7m 4/Ի$ R gP&|̹^F R 'MGFHDD ia(ljQyuD)wd^v=y`63y%@h7t)TzgƼ. )2b4}'M Et{pM&k*SYzG~s%?;r#Qٚ!o0x.xbiY( ' n +LS>b o'ma\ ;9Ĝ_H #yd+B~I2Q6#3$(9+3=B@?y==-*ʄPVe4;%ϑV{&tXxӞ;MA,c6;qI㜤#C*Pfh2{Z;>}c\Jт5?vgby} kaǼ] yN3Qyƍ33O:Y0F!%/0;9 PO&$7!ZgwiZj @ȎVFH2%Aztxwo FŨ ƏYbq[?yNT`*ifކHkz,y̞йSL~9O@#2g3,hhK ̞ uEūlRi9L(4$ Bq柙ҷz 91u6lc|N>P?QO炉 aefP(rud}>[:Hj HH V+㸢w Ư&u=kz;_p͠@xO>ttr4NHFN,a5f4 _CqZe!ԏ^5[V&&h&e텢/75u`rZ\$Dj~2IO|% ,ݮ] FLNx1S?Wʔ1_R,Ww&ո.0+"ZA!,DžU0]6.u7jYP^3_^`,=7kEv%B A?S:)3W%۳J ~i]`"RJf`aj#ߊ7h;DJoV3ZS{A!a__l{tK_U!VB#}ED~< hTy|64jt}Z&WXATąk;8_8YYYA?(u gnL?OC"j"Y =t)0Ds !"e끓#TBfn,XVWڱht9hCd˅@:_"coR;޶VbĄ/#Ŏ,{ %K4v-Yo+U5Yɨ:W02-xۛ@Y֫;> F(9l1\{ ˒6 *)u.T*ح(]5K;C%d+|v= IH/"' -&dzE\}Feݒl1גw ]6Yи1"rwWr)Btaç(] 0[,%;FjZQa D,˹}AAȪkH>]U|p.3&DT%zoFF-xWy6.J/jwnx0Z)sisTk Kime~]ߝ>2|`G9 ҶRD`~bm\xTY;(d2"VȔ*Y%;a *䩣Z<ڴ? ׻kO2p` \ލ5޾f'!5D/RVa0q8)U7O:㳼۸{hzX׽7т9}CF bg$Ӓ*iQaj65m d,HaB-OٕH/Z"@Ay\:MDhq7d$FQ䀗BWN9؅ޢ=s7)<12%T'Zѿ"(PVHN qIq*輧*' GXhҐ~?$13 /;>[òwv$:.k'Yߠ5/|Nڸ!G_nXhX^ =^~bѡOevu4<'X!XӱCE 0Zb`IQ ߇`awa$^w9[Y 78Yghlc&͛?^3!fAC 8(օJiԘjc550 ê_'Su&$g8 ʐm10Zj`Ё:R"$(J WYT&e{dJ8H雎8~K•rH_bPayug#b+pb_g.p%iSQ?f=,bsZ7,_3<Āt46oJ:Bp-OzeFC)5Y'tƄ ^I30\F$=39jV+.k_\zfǶ;pj4natsMZ(F&M|Jm]<< v@R⑻5SkNe=3#LO݀;~ɎZ%}v7E\G_|ϠVgh6 :sXh@J\h@r+c>vd-ڞmqt8 L(₺9u:J+Qn3;;S@4ќniI"=Lށ"5uTDw+0\Yl%<2xaW(5%H+O )p^,~59Omtg e!M ٽ..fEdR?b2r&)彫fā̽khw3㉦Yqǎ,v>rJYlzX*RGđɩzϬ.&kejBQFS|z_G6I)+{L%:]DJ̬s Jq5D*̉C(qFL]P5Z[S72#8XzJmҒM-=A~8-Zg9,v@k2M7[|DFLῬmH4;v<䓋f#t\bBm!3 'Q;(fN 7AcBF:3 {}LJg ^m@; "NN~OQ"?zAER W]=q>6эfU &cH6XHc:޿ncPMA'\$GFjw<ߺ"Z8?*";J@.ϓ7'q2 +1ޠcP Q07 XBIj1J_11CŇMDʢmso#cJ}HLCҡ˟qmӔ51ϹqV$/40O_s5ѿٚ5j|uָK`©9t df 9B-2:孋>?(߳/ ?-f& O>A/=2M]z&$<}<3s6Dv:T >xh%KN`xߢMGl*ep_@Rk[0{d@>J% h\ cIama؝2ɢ<HQOˈj73e7obdG[=NJWZbB'8RO ˮ>^|Y{k_qy5(<( o賞Z2!ci9hBxyMa3\Wf +4qZs_hT?ksZKUFOz9| TN~sL_R/)]ᢨGe_+ЫyG╭g($aAc"DwGB!5tMY-,LY4ya:m4J2 pY=H<)k#l`b|j.p6+՞U?ЊqG`tKYQ]䱋~sv@ڊCQ,_ ,B94xq4j@Vܬ.ەrRSHxBXIau $.0T"IJӎٿsT==_}GoWo !f8T\Pa̤CN^xὧF2k<9ta{6PN.w oZfN{:;qTWxV>0˨64- >赜'[ğ`rjЉ6D|M;֐OBsDlH~>$&nU|Ê`Z6&M8GbٛW'$%y|" X?*ܡsČJXjLJ[^ ]xĥ٢13mZӤ 1gKEvT]bp7<(&T Pa#Fx|Ah:-jEsGˈ쩯ΜQ[^d,'>\BۨS+ @(0Zb٤+LOΒy%T^LN㶿˅ːH%9;ӓ)2mb:JwO٢khIs& telecoOݣKȳr4gk$Ŋʡ^|e^^ 0*LU#3 $?K 0{n2̙ zů!Vu6=YуtacTԤ@Թy7MvWU') l%)_ ;q>m93G|u+ fu nrK2'2՝a? o2ՃgkIԤoP]HCoH$=]\6\blڅǐF-SHԥrC$i00O`⍵JlHe`R޵53Ϋ/ s#)Lr;[ IN2<0<ÔP-8Tүb~`yj>O9@qt6}]C̚)".jIX? D"S7 h1-QkYzXBS3a3zԞ¾-1ID>K8c±u_|qҕEu>J?W5q/`M+ 5l*'OY:*liVtR_ 9ݽuV˽?TqDmY3TF*h뽞ak}Fk[w;/]ªg͖1AJS4ztYzg7οB.ҪxOϥT-JLŋ&nj]+3MI$@^HYvoRiIRVv0z+DZssE: Ѐ֭-Op\P_zY|RJgpp'=}HPqyPZG~Ou@|!ۥ_pr ~?:T(pNB`?Bn7;Y67Yd%ثw`WB^2/@_Zq^pAJ:P*tbb2Hy t:橊ul›%>TU/>dj ܜ-Gtޢ>SMA7ӧD܏٩t8TՑi~\%%VF0>R>^&VoYw]ᆙ$t -5@|>gN5-q谉NE?NcmK9 c{>~aB# Z*_JZɣufgS3+b~Y"V?n*+lX!'Ѭ)rfeX8>`ZUXS΁aΐ0c'Rf#v07 k}G3bQ.ayL*WE4./E@'K hn}({ I~I#QʀJH V!ח1@mΧ?/jxZe9X{׬;ݞ,Dr#JRDŽ4? VLorkY VN- #FH:j }|~i9YԮǚZ;%B: 9+R@4Ȍd liBO7f47Sw@iVPpW;4 hWΧH6`:mOmoבuDvAoHQSOhl$ά`yoDL~Ҟvzt@}I0d{_Rk@B9frd-J>a3"p1@"mx 4:逵Qg6^)5E/awQ o`|䨪Pwl$3 "aavz1`7_"fL-4 \[ T)T-J(}eRiINIs IM8 :MRĴmۿ65mDzSuU6JDZ8&Xݹc(|Yt-@DY>*M+A*qMBAޤ U,əߣtv:roP/ *j.3 Ʃ؞% LJ0Tׄ*8hTR qrҞّOg}7@u*g F0lW7 PrƏ-JX s h hK~;$,\{fǴ{LgsZZ9L-okw0X]A|6#<::j4ԝ{b2mbb^AaMzg:ɆG UV LozlYcڌVl*,O {sQJLE}-w-ffr2MtM92!>n(~ pb|ӧ)zHj \9MåFc2_9 MqQE_۹S:q .P%2:Iz#"P!qg35v|IA`;5lSAϩ{x-L YkC2Oq:D1vʚ}P9t:fϛi;=3Q;HÇ$8;]'gS>ͽ}u8 Q3t8CY@5c3JP"|:PJhMM޴/j*a gcrl۶m6&ۜlۮIζm8bݬ"\RO~ 8Aȹ k?& `=9E}1>HDə4 zBzٯNqYPSՁ0Qo_ wOad :9<=|0B~;~ϋt$٦@NTpQ$ ஢{Vd=B@BVFCͮ`G(j8/&i;i,aujzQD\Vm[ܲ0=}s:1,*R)l}i.?P63pFJ:ԥe%kEdGK͐F >ZӤK,eTKf@*iԺEc2UyM-3okӃR)(ӧ JfQR%d.ErGqF@cT'm96'ʮ?{kb >~FBd߆K[ v兊#Y$s˯Pt&IW!?4FXX6 Ur_4 w V2O}k,N@P*V,A[}I-q9I%rz ڸF]ȏDjE`eoQY0 Lˇh5'̕\<ރSbu R=o<p Uֆ*hۨ`$_6Td |YYN\ :0zE&=˜'| 99Y% L~9úq%H4)[Qf}R tmݱppY$ѽP>oBeliΥ-'%uTr"7[Zw'ېڛc3+ #"r"bcCOج0c, /[*JDMd3P[zva/EI?4ƑE+'=i3:؁%ތѭk2UyF vݽ7EN[jq܈v8~A^ѩa )zJBGr hq6_Z9)@9^WǖТ[,=WDxlH2upev#wCΓM VA %!*ML 0}g^!gS;^a-epzѬ>0=|A~I)|L476+3#RC*#+Uib3Ǩ uгVNYؠ烦kQX?JŮ^naI zJO$7h<*܆b\NUANQ ;~fY$|yHD:xTtÂM$5΄RVK6 /uytJ!i\f!tTM DC#DQZ~QsQ6c^^N?pek>>EPyGměvG[=^ e{ùK|G-fđ_Q%utt*84Q,U+5lx#t'{O7K5Q @㥚@zQ}f$!u'j*mahXvDdn.qR%zn_ "/|?5̊XZt>?9e@I=]LLc=opU>pDЏvf4 ~v3@4cىKt}C}!6Vq3aXW !}{QA7V=4%l.fv=^j4޾L/NguJ?epǁ> u<:zhZjLRw}>5C /;bk&ηH)FM9W-&L'FMv[g0xUM;"93]J5\#-wp>=WhXMg;K Q^|'e?>Ό#hؼ DEIK1\fZ|A o\ w-lRqՙ쬠@Lt\ , R.2 8(nvJ@ Y2=#TQ_{Eq0m Hχ1O:;Bl߀i KX FBLPhI%؀^K?9ZE׹ư!6I%܀S/z@1ڝFN3&T*siFoP?6ydU[D=Fbn5yύH[e.G o$Ղ~^h ~1 66j{*\<:G1zC `f>w^ZUq8Fz-1LA 8Z>zVZ|.IW{/n\|z(1:#/ k\#qX %ChM$(>F+~Eǻ^.q7W ҇ဨV.&q]6>sξlMޠ35 ~Yql6}5?IXT!*3T!5&XH|`n3boQ(2^N1l IQ4ro#`  ~xOZ" ՁW7f_څQ80(Q9[w0\;]I8`RA7x~\bގԤ(=6,&9W3rriZdVP5, qjcoy)w޿%/gA]ÄH2&;%Ϻ5*8=.:"̍cChZC/ۑjq`'%̼m& }}xv,IvU5V2~_-,8*Q#`K5?}PP0Дme,GԐ kRg5NlIMOTzo}[!ڈ?5I)IŎp:dEv`M@reSK#_Mh+ܟwyZ%.[?9mλ6׳GVl&6T >* 3f/0z(nZnetwպXTt,L8 sp"i`. GVt FUbwLVnds$KN̆lIgjDQ)UA<;s]ӡ]bs0%Nsd%u pk} 7Az!4*SF<(£FʙOƬ}} V$֢TyΏ˜2T?tG1yGb?- Z+ T@&D\[ 89d.5s ?j ~ j[-􁨁Cc 3Y*L,Dg%x( @cmsk%ɹ& <N}/3AONll.a]1{ 4w19^Xͼ m۹B=J˛>Vޙ"npP !Ǫ %yH ]<<.V5-=_W%9kdCeGHW_PC܅ܻ؟bJϔ}bޕmA)4dzm+7#L^#\=_d,lbJ=,ubޚeY؏j|#e*?I[3%?L&UI~0!:4sXAG?[l TCn+%Ԯ-3A\~ cD]Gd`>R6 KsH\;F9^/qrPo*6N呩n\ Ru7&;s9x\+j.vLŁF" |a´)q$:lB]5JCT+'qol'ee؀QL'R~:,kg}TQ{40$/Nʦj'&|s7% 1Cb2xp, }Pu)UI_lz I(%ܣB+HYM'8NCg~xsObE+/wHqCS)7hGc@T+Κ@YNb\n²lExj+&$U2/k8ckdgͿ@-vwjгnZuҮ[a8>1F ɇf c+!B{/#9a SmJ$\sʘW *Kd:B˥byeUN "v;s%rdsGjN2֞p؄ J(wO8֌sغ?h"F^wOܶ;v!dnr~q,-˚%?Jh30KPk¤sI% 1) x,~̈ƾ.1*jXe`o?VnU[z ɧIq$E^\k2#Uut=` ݼaۙz Y%) XaF'ʐ#1gא.x/dXfbU-<նEtGZI8Ur5QiCz*91WcLyCEr!B_-dʚsա`Q.,1*Y1E*`Þz4.muɢϧ ZM-2ab[/ZJ qm+d:0?&d.Archive-Any-0.0945/t/naughty.hominawoof000644 000765 000024 00000026000 12711755474 020032 0ustar00olafstaff000000 000000 /tmp/lib/000755 000765 000000 00000000000 10467261037 013133 5ustar00cmoorewheel000000 000000 /tmp/lib/Archive/000755 000765 000000 00000000000 10467261263 014515 5ustar00cmoorewheel000000 000000 /tmp/lib/Archive/Any/000755 000765 000000 00000000000 10467261243 015242 5ustar00cmoorewheel000000 000000 /tmp/lib/Archive/Any/Tar.pm000644 000765 000000 00000001535 10467261037 016333 0ustar00cmoorewheel000000 000000 \8]ӭE1dq`_:n%.oDÌl WjYѹDn8EbNDOUZPװE]щ JYkH.;i)uP$`U-m0dB]q.$X?_d$S6Uګ U-B3!N/:Eݩ[k(,HBks-_2:=2;Q=nvU>[u/yGOS+6HĒt+J@DE)-H g/8mfM9dÒjI ?y,C@Z9RcN"tzvqSK_h^ ު)Mo,7$QI(-u ކ_lY Sd{osPEj.Bf&g<ϳvLй^8֝2*빺!f{R9fDnL+$ys{ڎ"{Xd*:2Dat-ma1xzL?K1'# ?G[B7p"Pg_0E֚)I6/%xM#g7ܼ Ou^I9]o0|U59 lEŝBp&'cp(xF[o)7r'yf"O^Ya+Ƿ> @BiVP>_V;ݑ kԅD)̓:{|ŶkN fP,49zJ7ٶN#͐ mS*JԢp6oBDًPtEQnJCܔRg [lT";.+Va0~7m_E[+ԡ λCzm~=kWIZeŢ5ZJ,1i]v7 _kqX3 *C yNKox OaЂCZ$J*V07\A@ w(O'M]o2 X%^\ŒɄ&w7maW()PE7z# 6 cn֪ 8C3u?- ]a:VԄHP|݄V5{] )*IõNO!'_"P} jŌ%*$7h{Eyӯ BtPD`34+(4d㫈B^/&۶kl 𨷴o8(rHE>/tmp/lib/Archive/Any.pm000644 000765 000000 00000011067 10467262704 015610 0ustar00cmoorewheel000000 000000 M,r"b-eOWȭv2*BRc_I :MOOͤuL<:r?m* A9iN[ɲTϡ?SWA+Y̼`K/E}U%{EI*Ҭ" BP(G^Dqfn1OAp~ȡJPp>ӺDZ:R,it@UB$3DbBGXY~Ia#mrQC!ti@s&>\t% *Qr=ARSϭkT%: ]0tnbKS*t A 2JIǨ `'i ǧ.”"ml)MR҆`#vOx]m9y[Rcg$> ?VI$ 0+vQDWEu?Jqok+>|'*RJ鿜IV(@6v!Z6%siw:MmK>-0D;o\Ҝ/p_hԏ=].m%] J؜ƒ D,[wͶ)+Uǻ&ECȖPbQ|UqU>K{ tpyl N 0$f->qvԱ'YAB\7EJ3M &}38ZԡiX/xu1K}z1aX.N:``\QR`EKxXt4EL. G3mb`MH7tHo&P9^JrXb8N?ݯ +e+Y-I;J%<~}GP*-d!lew5] s: Xp&g7'DDyk~3pm~nyaJ. W V'J|%䔶Oj`qXTN[[YqsAz5es`4#L?4 DKQ,lFLg-ʍ7wZ{5Zs=[xݐn#=g<$:KA`؋vs8 e~ȍZ;9Pv?YRF1)VG,.y9_5-)KˍB)㈺:A(=.T1A!p%ڇ- (!A{Wwx>D{蠘 E: כ< 7Q2 >k0ߡrgoRLV^[D9F^ <%vkߩHX̛lc8"q8S+Xf7*W>nڞxe1mq!n :kOgUn2k뱥 |HNj~Ɇs050٬ ocS*$iٴ]- }Ǵguwmv۽/wP׎[rXo201}1+#ќ@6`GwPM8/%+ltWUQƭ^.D "T(8ӵdܥ-۳C(89A"qkN0q&|Q.'މ6*9!y9$O\U I<-h%iNwFwHN}7\cڐtƦ~sHB'G `@1ubGr|;Au=cGgz5#JLR,1Uo@|Vǻ[ {#\dڼ)߼)ɞ9iv|RLBG+!0G-E# #BWD7s,tJ_uζ8pE&AN|J;> QTW>bE"ϩV'L7;D>Zy_de(QX؊ABB>s0*"+ ;<ъ(x;#zl G<!z<0\ͷ>~݈N>@4NW7AA]e{ *Gv sl-xی*i'Qm"\%/ X6բ8.vN{D+a22$W H= kc, M1؇mv5/ʭ[1[`[@Gjc^t*__(xUVBN0ySO_͊2ת6!7GR1lU5 00e(ͤd*֯D5kC9=24Oʿ !9n`f)'k94k&Eh=@ ~񞩹)MwRVsu;,}eQxLG=guhQQԀaTQ}k,guPB-/IW1-w]x5O,/ |H%.l[y1IFC1C-'bnḼ ֥h6e%GF&\zt֙4|x4Ifey7"5jDK|VDGӿ?gxVF&DƢ1m:G\02"~@sUZUwy>u WDq?&}tIO^*lw 8XHe Yrxk{Zr[R񼎏9F1gôd_fzd>׎.j<&ArXtn+6ٻըA ,i#d".(erKyT_؟7#lŦ1;o~5lղjm'Q~.fD"ASe1WwhItòO (c:K6֞)O\h{ צ>mBTKP?ko $Ԍ<lr\-gvSᓇqM6FU?s:;li 8nF, *>nȆBl1kdYux<3C*\ 7$ 5Bي*;EvUЄ@?p-}q/ϮނBcvl:a3,9Ngz#K^ܲrL޺\ˋAMg5_7Q (@jtTyx1܆y 吗0ytQ *h`HN&Q 2/w1[Rg{j/VK#x {AMť+hxZg8`&wЃ HDT3r.?2H>y+9L/L %)0w'mY;?1h!'L?qЩr|8Weff2wlbhl.KH`ӡ^[ 3VC,\/<`@]3E9_%4EL[ ܤ{ud?>W:+Z ßGp4xK{_')`iGAqc_G! 1Ey~iR(ƃkZkShedQJlpAC^7 *;ȯ=]=Et)TNv50;x> Y'7?/},Cowd*YHHpn%=j1dCAZMKR.au7WZ4lbLSuQZ1oǥhArchive-Any-0.0945/t/naughty.tar000644 000765 000024 00000026000 12711755474 016452 0ustar00olafstaff000000 000000 /tmp/lib/000755 000765 000000 00000000000 10467261037 013133 5ustar00cmoorewheel000000 000000 /tmp/lib/Archive/000755 000765 000000 00000000000 10467261263 014515 5ustar00cmoorewheel000000 000000 /tmp/lib/Archive/Any/000755 000765 000000 00000000000 10467261243 015242 5ustar00cmoorewheel000000 000000 /tmp/lib/Archive/Any/Tar.pm000644 000765 000000 00000001535 10467261037 016333 0ustar00cmoorewheel000000 000000 6xPā@ǝ%{bZv3C .Cu] t=M3{wQ`4w퉱w'?\! C*]cm,7vi`40 F>u>߼Wt7X8x6BKYnT^=QNYFIRJBO~bHʑ8E.Ŀ-I扆 ׍LI9D5#^&dy+DŽտ_ n/mښJ6n|ݑXG^:G:֙jT2*G>s&d#!`F-v:]R &kfτh7n !DZOu&rr-2QXIviޥE<7.Y#=f;@isӵ|Pu*un5U*R"]Egw[q5VI tr2eM?XR4Y8E0C $&J4Bb+A?U 1i_S:O.KbD߳ m3YgSv%PyӾ^;&<ه&.hGe'>SYHx}:I,'K u# %~`nH<"\?@kp̰;ڧ=Hw9`b &5MsV9y +M>hq\ \fw%^TB2Ǟvp\ _ʝ ZN}ܑfYVhul.&@dNcY*qr3>+f8]RRYnm/tmp/lib/Archive/Any/Zip.pm000644 000765 000000 00000001632 10467261037 016345 0ustar00cmoorewheel000000 000000 2ibEP摭h ,~&2 3  vPet }U4KE9_ ?2e1YVO:*+aBNl&d FLd;ג/vVrDo GRBAӱ 'ƓE/Qb6Ya8+s;ʯv;|f?!ˊ9e݃qb,c 8ȅ8joDM^5S|_Bbk:?!+Ao.T2k:󀯘b>xG>l`*4v@˳F}ܰX窾YpKt0}$goG|1"),I]As7m| &JgIC }?=gK4x.qjv=I޵mT[g{mP^BVeK>@gҍÑwdk_@ u*@VgG"J'.\S l'$R^.~ْ+rgT!|R`;HnQ{ g9^]eVE lڋOsvR(.ۓV#VgeEDja3$ 6>"!%:'Ɩ~ r0eeU>LGp-AپW7|#"D|3y*fo/׾sO)@fk !*]ع/~k\D&}.E3ߒ5 㬬 \p&pz)[N?PufBN3R -yw} `jKlG>{S,'+u g[83mRZ*aIAS\vJDxZ]#/"q6eb}yI[Mf"ĵgCJ>WYLս?RGe BF8d)TWVYFO \'$(>ߊX4.?~"~GHH((jL [c fMLJ)iv(7cJ\cB'wlU"Jx5"bv8VbToDk'}"I)!\i=G$N]gMfz*ZP a и` ZTVxӺ ~I fyGh6wSǚ| Ƴ=cs\打{2gO}ǡ+ $:uԉ >~S号&< P5&)!![wu-mJ*$;-̽3=`ޭ ,dGɃ)R-?wFڄt$:89j\2 =:XOZ v:|-7ew`Qh}FEz.W|9 y%3Vee%(ֱ'"''#[!16==YH ru%OeYKjRlmo :I`,"%<,AJz~c@[+ϦtXEye(ঢ়i̓ؕǩ&Z֦(2AAA*81#PJ)a|.&TAVy_kOh~uVF5mp%޷FrH JMa{W2),k9'B JG/󔌷t7YHElZt2QCHǀv:SW$6qLta]!"auYhcXqH4Ztm{kKT"PsAIpl_ȏр2pBKyyvŻKCӅ-+_)Ļ<`P0s[n62EqZM~$϶˚ɺ,C85K?znw2FxC+RN\} (A ]/{*h6IC w.ky'V"$;nEM䓴kNT@-}ݍmXrQ1D[6rVPܻ:p[>^PKnnAv1O*;5P5X5Kדq02LEDQb@$*7)ᩬ?(ŲM3^oC `L0=-k9ʳ-5[Vű)Mqfe2SaEw܅(* *wpvee3_!"Iv!JA{ k⽷6u\ܴ$dz1coĀ$%Gxߏjԥ雨K|"%5Xy{ 6偹#QbVOIu>CDG7Du:JWtFy_k ^ߦ)AjQ,llIQ;QQ/~q%u熅K&:QAd`r, kɫ3YVFom?+D[@UT!]aV.ƣѝѰh!4v4 ߇_mY$ݝK֛9oT({06r8vWӊp5o nH)OL u P o!1I0ԏǣk|Ÿ}aq+#]S_D4ox׾>QRO8[n#S*kbҰAˤJ˶f ҳK{Дt4xhPG?i=d <ҬQaZ[,ӬkLUf{knBMQLFAx}ҥYºKls˖ r- ;`GT;w&#-ěNEl|c*Jrkd >FT >0k,ogIp>h_$y1i.3u%Xa.hFzgEZ=_wʄ/bJ. o%FC$'AFr/ơ䖂Z\ƻ@j9bS.xSU d"cRS )Eߡ&o 3qH$[D97~b` !{HuowwQP壨#݇~ų pKuW<>׉Lr"7*=i2s MJJ}8)ې ݷ0"(PZD#CX~lTk]*Eє֞;g"^N&ؔ\e>e3  ~RPJW&p7 3Lv[UQz}*$+MɌC~',޵xV a>'?Xe 6b៶☦ib<$mxU\"ՍC/UJPz#כ9(Ö́a 2 r s,=pG@F:|66Fw[&6`QIqkBkkLٷDKh;jP-? RFmMa,Iҙl4O,2.y\+7q"-㝭@i{&!8{+2-"cA:u^JIK7+`M%-69B'o5?S4&OΉQvtg3% i&l=_jqQ!v-I2runNYԔLrK&ιf|M%X3vlx&ǡì$S.і>y7z2e^?*A#1i61|e>X@a6šv|! R z9 pkcv!2{B؀w_¸hP,\,Iu!];Kߵ킀>:'F@]eMTOfr %l#4Tx$'xdJq5  Q0 *m,>\[BadArchive-Any-0.0945/t/naughty.tar.gz000644 000765 000024 00000046205 12711755474 017102 0ustar00olafstaff000000 000000 `-Tup%O'ffff8b333333[3333K-fyv#sv<OV:oe%)1=;#_ Zf6c18L31s0#/puv1tP-Muy.@+_#/72t6ep]Y]VV66`"bF -v2M**ȭ-IԺM4z֌7C_T7kԯP!: Rzg\^Uԅl9gJHdόV7_0}ٶc -|ad&+pCqe_-eP͌^dԐҁnҚvȬo" Yw{G†=EB!!={$[H\31E.v9:_7q+iuXjYH?;i.v%ʐUPb~iH1{o\IHи0l}^{FYC$7TO @ҧ #Fm.yx11h˞;V ?ߘ=F)RGp08[xMǘ@H]LT39eq KAk,ƺ}ڡdUqb^e#e YՙC]w^ĊSuW'稛 ~?w

1c aTH 8vL+8TM-=4g?/俰v?\¿?+ _,ga`CI `HH|*Yj޿!/xAL-u-xJa&Ookn]|*!q}f L%(I@sT-N 5}ƫz)UC4= Gl;`bTrM1oj_v(B&4+ΥQZj#ʆ-JPw YE`OUѺ[\Cjp$uk`\w$C39E9&%)^!Z8-p [ឩ:?﷠Dʶk}M:,|j?fuViTcەwcQu]K4yǃnxsy΃Z1F\`̭ိKI^ZcGmLKlVGmR-֎F-$̯FDprT;pR?/|wD(x icĀFQ_46k7غv]51YPF!M[IY wvH#6< e29LS%1@,NoZwK.I($kԂ p|XWysh'Ԧ^]G{T3PUYZ|AdH+T!gXYT:#xkS7O +"Ѕ1qphV.\I{BͬQv1g>Jʜ qVKuk„ɐ*nK,C8ENh9HcػZ'[v;e}"RB];:põ^">F0'z\Av5ځi!5N;m+ZCa X{߰p "9K7ZMh(Lov*;KR-UtǴa<> $pّ2.D:+>0P,;"&a#G 2!3qNi Ԃ8C#Ҿj5myd% 15dId D &Usc"Qј)3^h2 >2 o}4 LC]9\d{E8yVs;޴f[i*o$iIȼ.޳툏Vij&+ W5U.+C@ԠN -u|E{Ʊ,&;%qSZ'>Q8г<@kݖwG&H3(I`®1(Pgǣhĉ1)ij (5q.7/(cg& KILrKzY!oƐqǙC`bNW1l}p24C;(_t7[U.lYRFO㝚~&Nm%yD( {? Yg[xU&<3q_1dJ8wD/t^H]{uW_4D`K>g*Mf! l7\ljgcAA fRroKUxQ~gP õŁfjftX *_*F͈PҪNS  P5m<3yZlsHsm;\D)Ur86m7#|g,.9F3/Q"h؀Z ,0xo0uۗOR&UAev*kxFb5Ffyb-7X@Q0bDl36{Q0<]ͻvg&ŽfM`yC swoV`.jG^3xNnK46aBKiK S>OTL0K0"XvV.qe%Y |&kab S^oNJ9ZvoŸ ~x%EDK@ӷƸR8NzWCf- eŇ0)IlrL_:qFJ mO1ɾ#ȒXIsvXr@@8C1`u!sCҀ#HCGFP@%BImyoT034G {Y!n5/r s|@{ޣȗd NRřH 8u>,Q1|q z^{|Ʊ F?qrX="1!-@^J2(CʟDr%$sinU"qP &5(c@N3"ʺ!||>bE!fP.ǐ尠|ģ.xAEgvD~`"Ҍ&bv3Cp!1_34akHߛJPE_5a7qc 82"+#і1L&B AL&AscS-\vA_u.Iz]SlJkܙi'pE»!޺6$ˀ^PhޭOhlFh]7cx4Wh\}W^o|$bYbZbhiE7tƄU ꝌR݅ʨմjC~!kW'*GW?ePtOqdjNT81(sz#8؋?JJ G?OcN_kS3tLg%,N`!4{C<@e^Y8087Gd0r wm' Fp4FƮr"&l^1s5D qoz>4hOs+%*6iF.c5$Ĺ!.bFH ?"pB/ 7UjFRS1!yxè8Φd@b|GyLin gmpBGKq:W.JҨFëYm܂v 2X3` )Ŋ>N$+ F2ssx)3df1Pz@ &`Ē <-73R裰r$M?>Zdtl{KFF|eK{~%* 4ڠٛ;bt:7+{Wr@xԔB t+72PZEsݩR lcõ80U]WM눟`192MZ1d&`<C5,fVV"9/ hCQgG*EzrWפ C w̉$qF;%pO p@N96 ΋!e!Bj>$Uz\˒FdUK?xN %S.ԁM3`z fJCbx+"SazTUoLtjӸӲ޷1NN >j$C JHb'J,lTYxxb<ƒ8 Z=Hœ߅CL~zT]b]{=HGXKBƒ/<7e(Ɣxꗾ ƃ;tUSO2cnςU\ khho%}%f ݠ>arEG$#Qkhr l՝N'xagR `ƣXiK3J#3Vj4cr%. h* a {aLlYiĻu"xx*,#V=Z0S6!MBփ/n;|D }tdTߵV4^ƀЯ=mE_m|Q6)~ JoL0y Uvj >Fvd^7LIaƃi ۖ'P7Hœ,d"Abڀ:yxN9{jH7~ o%s)Bd۔X65L(i Ŏ[ax _kre2-ͽ4TʼnnUPQ3jks^MIB&1\ '6;R,:gz5ߔlʎ; E< >Cq98(ŷ٨Ł`8N#i| ͝RvUM06]~{+6K…M:HY w_틤2 .E9,=֛;E}Ccnsw9s^CqA,(BXYS=t Wl|SGDGrH@}xq4 y5ꀴ }PRu%LenΖ]qOoy-Ŗ;;3_nTm3Q zڪ!0^4\x5j3-Su۝~ J,nw?ZJiZ#gSە2t`XePuJO˺|JC| α9T9m5!yAY7O]6QoJ98‹|R3Cӕް rzAOڼ<\вx,4P0,-KVvm@R.zc/]'kۚoAk;gr7­Dt>)هo\GH6Qm"!n|۩)1"?Cu^ʆ{|2RZΫ|mm]%T|Rmϭesf #GiXɇD{x;a7N!1*W -{ H\]:l{NII ㇵ̣z}(/wy|}ՆQ@|g8^@k')WH^FWt 6)}i!ɑ.CH(wD3;pPR?#i]I+}%CZׇuj; <=I$ *iNkܳ|qQȐϺyHںAut( _Bpk8tk@|~g]n$ ˙Q ۗaXk6ky/ ^aҶC^PЯ~ Fxk~Y]=pNtBck]E8\w:"$_̬ഉ]uoЎpWٳwEo4J/*׏kVsAB KIsmYH{yԸu3F\`(t!Ku^ W~:lk;ka/Ǣ/=z FLS sBʹ*h5u(UdK\4-NN>Rv$}Hju/F-zNO YE[ZcN (;zemc]M_vN־f_Ic='ج)wvKXwEw0_UʁgtwVfJL}@O@45BW\E p|T3͕Wīލ:Y w/+*:S:@PdF:N2>0I3$SVΓsM,!#*k"nF6z*n+ uPAkyTag_!Ӹ&A(ڗ "+MWa~DT_\ ZEwF/I캒5)x(7VYֈhYxleNN҂9#Rݮ:g'b__W4 }-ul@;aQ O؂pmKMY9PiU Kmr|n-CzK'@ÙP{CnAUJHL@.n+iwV%NR}=m/sF9 o У:wl>>] "szg0ؔM ̱1M4^:.Qoz{kE]{^` [sM/axf \0WՒBt~TK3/B~\h O3H|4NwX^`W׋ZBLt.j/ "x @[SFJGrG$'xsR"JNyy\wuec'Q~ePE`2p+Ol5!y&wȹ#1ȱ Ҋj⪱LC5/mYjMv #ݸNi{Љ>oX?Bm\WV L ] pMP 䤍*.[+vV U@_)Ms4< q U"ܫ 򌼨F2pt<;fk_$koΨ݆Fe2SL}:NޠuZ't M_{^a4LOuB^NH"x@5M_:ҽ!ɰ׏^E$qd6N)8b*]LmF$' ݜqRЦ-Z6T ]SZԗ4> 罍G(&9KY'g/lw=|!ٞ^ۣ\Z v{9@4/_/^/Y@JȻu+*L=ִ'5}yǪp׏$w?azv|uNܰSKRPQ4t`F5Ip9!\{T:c)꾥iu?ÛbT `~ܯkd5r) SX<X _$BOgTC/:I]ak.]_VG0V1Rql7~nFu-iTHgTST}.1X16C.UOLY8$|"H>O;2Nw)$Z0[qW4VddA:qMsk_0ehqfrGOI{q\fm쭹~'iLō>qW\[ys}~MQ-\&v" 䚎*_I+[sr9tSM॑[Թ?$єm -D a7`]%$zi>QGDr@.2bx,_/hSҍ\#r(lc}zؠɁ8wΝͯYUxĊ>>;HgɡL6HS8 y"_|_4ܴpm_<'xP J;B6&7vLN/{|2$D6a Ad[v˷q&͊Ƴ%Z;Ct nS}U L=gJ}NNVw#YIj; { JUT;a{vXe .e"d%6Bft$9oMqN44fH( Jqc}'A6ܷkgt6b&$xpD!)8\`Y܉ Q; (F0Cۍpƹ^ju_ (h61*qrΞҿ>O X-㠒"5UBfҾHDznpӪFSmP!8%n]zKȕfVZ I+mS3:"' ~i/٦-;GbQ3oRcӼɍRB!baI֊Ie.3 Op\Hj iTnOSճٱJ`aArWi'Ϩ+% 'T>?I)$t_H2O <|40pJr V iwyu8?pյֻS]Ji]dco-nӏ93ZI/6Ym & e6m{#" 8 O^=oTr/h 3)W~g]%w'vj(5px&4 /ЅnЌSq#!pRIẢzZlPro5+y{PנmЊxax1{L̓?DB-mmop<-ճth]Y|۞{ī]F(Wԋorw_I+٧ +!n8Q<;&=Z*YX8*o2b崉^ܜCn*4x)i'̤'hnlpDr0Uǯ5pDbyb0Ydޮq2 YVz.˃YC(ܑEh:6vR!| )zIdybrZi- h'LA"%TG܂ISkAc3l/=EqK([ Dh7 ꬹ$:+`j'bt؎ O;ܮ>8+1!1Wgq8"7=!PMd4PA7҄҇wJ)Esʦ-7HUQ=Cu1jEЀ ջE6\!shm9SБᗇ8†m“(]JN,8G<\FEF8Bl_K\#V ԳddPۿ]~\}RrPZ-D]{3/{GSlo%׍p-ns(h8Jen W:׍ԗ5se W{ϼLr;'_)>ȽSn,t0Beͮ j!ßѾ\iE6%!IyA MlZzaHx~+gLbA\s_Ubծ'P֣UX4Vd[7>2-櫞I,g< u0)'Gb5)F]T瀰|c`ԗt<9$ uⶌOt:t뜎v:f !,:Om#ʗp V>yD*wց/Z:9G Uj8GF@Y?AKU/Vه|쳃$؊ɋE;A=v'# T;0ddhl 3P ܢ@MVy1\sd;q4!;7Fڄ_<87ؑJTNl1ǵ=#xB#2Aa;]WۭEM /$UC" ׽G &O W9eq:V)֡^iu41td!Ds.#)VP-+;R8;;r<mF'6[ó=(M_Sޝi5q9uB}@=$#yyfzw +8`- @ϧG C$ `¾RUg:HT9{;\jaPaUOELyix۱(-97Ÿa=MmhV,M(ûtos_oeLpo]%r4l8kQ-"FZgVN@Fr_F*>Z/,ܟ gUQtΪ#,&BPa{& X&2ϵ€;o&iIEkZl*֋#W@?ú>6U;OQ\}Okx9 )K.*|ߤ"1 ~;la2C S['?;=_1.!m`StI6m \xwXCS{ b'hc~x2}ɋ% ~58a# OuQyWJn:2^49h]>:sxhaϐ~ѐ^'_@؞to: Wwv\Z@8z:t`}C"hD e0p5+U:2QǺ1 ]:VfJ)eQ\nPJwq +hHro{ SxCWb$o-oQu7b-Miet;+ᕶla`0v-\ݶJ葋UHWdmy=/;\lćg"z'̯'fwͥ'A0l~(GEوSu?U%f/;rlB*nnlIYs9;Jn|IW!ٗ(^9Vz>H0**ɑ\'!{л>pCoWx>* 2[WwK/s&ZKշ (Na=v/zQ eYN`ŀpi2|T6CpmdHPNh Cpsa>ʺZgw)|6%gqWM93y[{-ۿ"f;<"-u#G0HΖ$ôG^>(qwZK]O!(i ̫;YfLϐ nn.%Q,]N|`QE=|Ϧ6x[(!lB7<,~P:A׃b2$LiBI^|bHa<{#ѻ*€TgNCЪCƮ w̳W3慹/W2oc+3}Ĉ_i IGj]sXNd:L&tL.%9>w,`1zwWՂl -ZxU e ʵ۟бyxHdryka7x60PHA5%?7zb/#(dx.$ݢ|}ʹi!їa1 HZJu'мƏpv=4=ڙڢ Vcw8~S%kruy*]nEl`ڕB fp{8,q~\4^H=YMn+ v{ЧF$YxUNMu'lsg6g؎VKB9oV'cj5lW+ˤ,l wߋф^\h-=&Ss8vj/췃qKosT^1F۸ Qe+ic|g{V&gE *f/^й:kiJ,JB颡~'0F$N2H^+.>>=C1a`f#׾ku wGwBn*ph,( dTpc{BB\Y[R]c*RU P-tA2ҿS *< ў~ge'{Fmm*5e.:\;1B =B?˗ |bǢ뛟Ij%85?A'jUS]3Rqz2{X %PBuhbpGv~ֽ[vX$xTR*|ZdwQ}蹂9m[\unSGGJIYF1 Q/tDRCOmM.u*]Da/\<+|r!Oq e%1#OImO^Cz!"j+ p>`B:~y Ϟ4ϻYo6nd :I#iŒ ,-d;sxy䒏OjB{OUQe~a'glDl:^Y],ZiD=K?Lͣ:荨CnD%DijH2oZtb-'v7_ld~Ҭ4Hz pɃKR59y8!߆TCӃqE׾NNE NJ7v=5twє@K%2rYW p7\lPrIoz!&RȮ3<ͻ?;8+{s{jm-1z>Z/X5.ٲ* #cq6؆|S ktůYB_nr96&l0Ft#1y>kX}8|ʄ^'q}0IUv>W:';TLJ"0~IlQhjTb=lby7r<&\퇫pGیfʼlj d24X_qgv[]cAĽ9i+%4_1wr]O (fcn0^a `PѬ{z7̏m^ ?h2 A"X 8/obƀ̩M*Ҍ,(=y$08 UuD(߫L1w$K6+Pl#UO}ZQYiud$iPC[ ]ìf]d /5_f0mERFv7qgWNq+o{7u͢;vcJV$ʙ_VWk9x8D$>|Ƀs*82T:`jۨ-u+ -eP^Ab.n*=/HA3xQל[1gfBL{Btv֐KCUb7O-u |>RS7.IAv~%]{phR.X ?bRI?%4j _)( P\R zQ@X*RuKuT ^%~ĥuV[O d0zj 1; chdir 't'; ok( !Archive::Any->new("im_not_really_a.zip") ); Archive-Any-0.0945/t/release-cpan-changes.t000644 000765 000024 00000000521 12711755474 020415 0ustar00olafstaff000000 000000 #!perl BEGIN { unless ($ENV{RELEASE_TESTING}) { require Test::More; Test::More::plan(skip_all => 'these tests are for release candidate testing'); } } use strict; use warnings; use Test::More 0.96 tests => 2; use_ok('Test::CPAN::Changes'); subtest 'changes_ok' => sub { changes_file_ok('Changes'); }; done_testing(); Archive-Any-0.0945/t/type.t000644 000765 000024 00000001077 12711755474 015440 0ustar00olafstaff000000 000000 #!/usr/bin/perl -w use Test::More tests => 7; use Test::Warn; use_ok 'Archive::Any'; isa_ok( Archive::Any->new( 't/naughty.tar', 'tar' ), 'Archive::Any' ); # Recognizes tar files with weird extensions isa_ok( Archive::Any->new( 't/naughty.hominawoof' ), 'Archive::Any' ); warning_like { ok( !Archive::Any->new( 't/naughty.tar', 'hominawoof' ) ); } qr{No mime type found for type 'hominawoof'}, "right warning, unknown type"; warning_like { ok( !Archive::Any->new( 't/garbage.foo' ) ); } qr{No handler available for type 'text/plain'}, "right warning, no type"; Archive-Any-0.0945/t/your-0.01.tar.gz000644 000765 000024 00000073642 12711755474 017002 0ustar00olafstaff000000 000000 a-Tc0}۶mzm۶m۶m۶m}lf&Evwf6_St'Uww]n@COK@=== ?" >==#3?XYJWQz?/oilbneL+'σ?#3ÿYXs3J(M^Bkv㓦64k ,I#s:KFH$PnYq?tM:YC5Qpuj׫mSAP|%j.t :jx|w"7}Lw@ftR{؋`w=[ (N\`|1I|AbIȧy\Nq -&PB ߓI)#,CbfJC'W\O5vrm`BSAct0mvY2ϛ=*jQӸ ?h![rԸv8$6i]Py 6d|mT.Mȿf{NG:q[I.m@;h`Gl40nl!|xV(oȚ퓪~{!Kؚ,4%6=>\!2,ڴgJ1^ȱwe7XQՠ_ y8 Cea\:gr( yF!~o`nYnsP_iQ/I`᠑];'aM$gXMW({vNg$ѷpVt2)Q_'{u׬Σ֑BuJH'"]h9sG*pyC(8<⑸ ҈@rPJן ;2{ȆUhjσ$@RZ8 {llz6'ph55Xi#uz;(Xsy޸Iq9s. J;7Ή=;wUW؀-  t&Ȃ-1P K%*]J6HX@'R/ldD6. lmTQDPB3a2}qL`^ם_?B]d-`ilɣ'&y7`eA娔s]nr=FTP {zQ]s~s.N$V-ِbNv8):mLr/?=ÿu300sg,i`E̋_q⇏2s+RDAimEd .H'{Mi,>ǿ~NaL?;?+?_߽?)wu0?L ,cgdwhNB:۫SB-jݿǿ+LL pԢLQl}&BlF4xaŧ JEhgϢu ޾!9"\豽ٯ,OJ 1k.B/3Xk4 g9w>:sDtl`C+.Isgtϲ#Š,xҟYƅ0D6dwsi% DyoS _)b%9P=>;%IE oK`}{e<lv g|߽[q񸙄ԧsG$1P bܖ+Ә$+쯶`@9 E+t0BR\eVrLA-\&& 4hʲ܊{hg%zD'I دO_u®%'Qrӻ(*t{lh~ e:՚ƺ!8M!B|AeTɶzeW9/Ip$Ui:;&t kŹU"iN~-,ںdk]άG|d70Px0AmNE\TvS^'Gyo@Z ,|P|V*ݽ/:8HlqR̕-ߔ_d)ҰcQɪ):O׆6j0wn*&#8=-n:Ƃ9 RY*,*VNTk}}/z B@tBsv&%"T!co%"P)D̹ o0a6MN[b*[ 8_aJfB\d ;f[!s%_ʤ G*$r%ψq|p=WY{,E9ZQ;6@|QtO'.;ڝZ$67 z՞,aSvIۂ0OVnX 20(X~4'%m#^.ECd;*d#2L@cAÅ[L48AC(8 T(M46)7 ;S}HPQ sn]imMLdr9DεSxqIGyZ^WU[ C^[IL98NW=N\Xgf-29@imE.@Wy jVuf ʇT`(Bv޺kGW|+p\~xI]2kv@?lvs(sjFR5%uH[%܎fu )2<ݭ{]ؿCp Gg,H/$c<w.Ly/3O߀bHw^|*[ۈ O{&bg>\W첚r8;X:kAQ~عcŶ &Ö鲔{WgarnKC4+2InO+rZ||A R÷:/?35~MQo;I_=r3lFb\Vi{h}P3^{Ev8}omU߃\M 4U>Waqr2@.^›/@^uʥ7%I^*IVMkqŦ "=!N&K.XaDv` <ptFWB!\}n]Įs oV;ۗ*cέtיEQ6UwإԐٚzgbS7ePgG@:xg9!xvݡ9)i &^Yac6w ȿ92B2H}ф Ը$Lq6~A>S(K~ A SӑM֋mf QL.7g"{&XWdB7=@ %A. rQiDɽ5i,hT BxrNQ2COηO`[K!h S c:iZ2=Lg=N7-,<{41 ?VGBSCC@NUq*KKޟ%A*Z1Qu2G[q(pXζe>|)Z uE'O"DwCxR¡lV鯽h.Cw[si%udaK?NʬA/}՜.BMt5|M$ ̰eh0©3Ny!c4ecࠕRTLe!kdtɭ˷f|Y':)53NI(9a&Mz$~y^a6[t&\]w#:B.H#LŝDdg!Ӕ "{ 8-j2$Jm\Rw\ ސ4V)wBnh{q!sqlg꣪-f>jvdE)*_>R8Df8_y-+B;}~+XƒpR'mѢ}$V. 8IQv{[t$S[$Ǒ $e;s*0 yʒH<2`BAUYeyF qlC)lj 7LYmZ|fDcHoudzO'*IJoP6Bhtf?t4q=c|` kUoŒCj,τ>kZ_&anj18Wnd#< 'Jx?qyc8mБ%38VA'qU dd+2l [PHa&#>,=S]0BqTTBb[ܯDA=;(9ٵ3i^)j/bO˻V5C\D ^Ao9''4Rr;gy^yzÀTh8U! Uw[N:(ddx2wGx9Rq҇ES^ s~U?d~BrkYKPOP4]39[%r+^Į(QqɠxT?*HZ{,Z13Z7#a/Ӈ<ymZRU!%P.FIBRoũME‚D;HُO’>͋y+H%Jߴ!.j# C+ts*5Qty|</:M>ylRp0o~t;s'GW ("F\ zc@|<¯#4屁==vD Uf ]uxN|75f籤Po˓6U_a#@DdHjve0/svW k|l}87ΫA|Sl R8> w9Azae\5͡cT8np|V`N\Ѹq&2(-AM,o_"wP][kbHm VvhICMGB1!!npp\\tZZ/oLw3A }zb5DhmSO Uz2yKV IiZY1$\:4.x=ܑ\c2_0scU(-r{b['L`"C+ fӯ|d(@5EmԄZsFq&!d6BO̻,9"Xjjԧ w ƒFčG>tݨÍ`ḽ OY&1!I/ip%oJB}kynWþތ8,opo~U@օzlrecLUTuO'p\%gڱD?|Ֆnꏼqdҿ$Q@TVn3[F7% -owqM,R-3u_&f++p$Z^l3D@6bqS7FWVqg|$iЏL|NJ ΂äWN$D<0Az"]G_ Wt@kk+Sa-AYٙV)bC]q `n07Z^gҊeh[24 I2mݔ"o S6!qz}5!SEߗ:9)ACUs&T[igtG3ؖ]#["woH" )yKG #؈,Xq{tQpT(fs2%?z.E[s|P+I| d0bzu>UJl#԰P/#SS9!N=&0n*KXPqƝ3XJ]Iot'K_Srq11wIU_E+A., O 1麸O "=T{E️kXxE3!e(-,Q+}ß}q{Mzճ3bfd_7/B- sؼMd[a ܓ`t1>.-tbȱ~aQ~g-9&HdB3pn ݑM9l{50ŗP X|h6lI1ZrE!8LC`Vi@81 !8G]uV81:[x1-V,q8R`c5ӛ\F b"z"^.p\TGb{)6v|c;=}kY7K^Ekȓ>!ޑ8eqGLm ̦rT|,|v 8.^P,3!ytl R] $ J.$]-FhW;_sW?Jd˯zVfcΪGJ3Qi*)*`+"t8tF8NEA& ˋQ6(y*8١|~rFBqj=s+ER G1^B NЩE֦:֌_S~1z:BI9x; 9*UsڑVW]J7L+@߃0O[e>vt&&ѵ줘vR&|0[Z+|>_lĊz>) ͪGe4RXn9[c֘)ڨ/AAeHNi(^8/laczoMm ҟJlmc"N/_l͎\MUnd3*;iomѕ.s= 5]($_%㪾V܈nS!00T<iI­GSzLwY7 <֥cM GF8\@"y.+ f %#Hf/P w.5Z>~C M`lyqm, &HuY`j0wPjqRhy)yە/Ǭj ]JvqS`$I\YZvT<#am%T⣭} a_3;cD(n(lsS9s}t*t*E o@-gYs- JʓB^'*|izOO]8PV. Zp괼໏큢Xmϔ V SdN[KnC4ybj'[m:{! }kyLA푽c 9DkNG[**4^ᦘȈw)^ =F9Z("0X EF5Q,8j(ɽY-%2!}1;O#|4~e^8̋ 60T/ a4:Eh} RY h6rR~T4oi6ZJWCoÉ/!kimBLajL4^}BJsH/ ^‚hB= A5%x v]rQAIb;_F/zOB?P{jtNoP/n%!Cs]#ۮVnCFd>rNo0UR"%C #%f)`t( u'wEk 3d!GcŞţ-6d ހ`1BplM3Q`o o2S$B9+p4D J i< w663 =X&:.+JWW/F!,Iɰž:n~\G;ێƕbS ĸ/SQ$ Vȋ"s%\!GctP)e{zXWi<XuV!3/9 O5] i X-$ GިL9^$'AހqcuKCOΔWX ^.T+59ٰ$usKǵ^B0&bj4= [V &8zTo- *={0x:wbO'i/v@w.sjL%^C2TtZ2@VգBs]nvsY.DΘ_'Yc{)ӫ;T-(0Y#k#P;!/<5j} i=K Z51TmZޅ³ãY65XNjx$:i*+VT+]mjJDky-'sCa As_<"ʹ~ˏ35lB8T #I,X$4X_^3D jK!&s_CQrTԉ+,^{Jg50Fsl z8IeGgy6twPe܂+jBclYJXS.)vH;o 4kbItj\zy=R ^L%F*PʄӸM&9Yff7>~%hH7o2Nk);K[E~Vg05n4tKyu$\V]ݐ8ɫ?U^Fq?QdĸⵁXex-$a3Ys"F Y D0FK;b+(m>$@lXF$ 6Nf\t7dߋ2 4W\ZGhSW)B&_&9thvu*nO톧&,T)݈Φ;@-jL1S!Z\REoW. *C"#>)fq_ `.22z0vSE(1U@AaF^?CψuI[_KLя_w 3wtO[Nb|?jc:hX %;IkA#Rrz-pk$NœezS]^$'i,SdN\賱fmDKFD?ݔ"E>-3YҲncpn}y^꛴vq棈@4:uI0v /dx`Qgݹq<͏b̀T%;7aZupm[D(==WL8M6sDAvЄ c.O,*=חf 7ԄNY*L @O~ryPsYE{E5z 6j-[_5]qXaq^&;෴ K )_"Q˳7}9nzm8jG&h[\r~ѿ[<,wZp- >UC×pɎ_R)h4d{O^C<<Ž[=r=@~PSmB(]㧶~w}ʓ>E:=(\ rlMb-^{h*uAc]eaaA=vzY-`Juerȁg?AڱhYBgܡ@ t\{Oj 4V:FdgŢe•ddBb)Np9.*rť3NS:r}lì7sC;#wm/y\h@ᄅǯb9}q0cp,cLW[t03\L0Sz[{ǴWffݠ~UM836!QjDks|,w>:_u釂; 兖Ttmq$q =I/wlPne񋌛ysa31\k˜Cv%Ie& &xm$ 7s 7}9߀fC1vq13>oB{*e_~~"?hO"_ YRq Z֐'I>X0Uw05[Vc2LֈJӠDDLZ*Q]-Ls;h84$4}ӬJAIr5G9?.j 98&LVN'5{}Cl1U咜bA847L4\D~n8 ~b=N6Qjnm 3⨞t0]>\F,S(ޭSO}'%M4[D$ Zu]NzqHI3HʹyHP@A\C[:0Q}PҊ9>ؽw{Kx~EtR4.ʱbͼ@cQ2Q&ؘ67 (O EWȤ G'GhQB;v9P<+ݡJs3Α >h3Sܺe|Sk/S<LJib"UEF=YImj#K, )#,>0w KM;N# MoC ߫S/irR#}+Ud^R~/1!k1i0l u^;1Wem@礕Uƹ+R.)"}w9!Yf+jo#oWye;,_@ϖV;+#>eXqSx]@vi2D/[t9l[rQA Sj-5H' 2)Kto t */7RJ :3mAo^yU5:]VlN5=]߫3W:-eS]1o8 H1҄XQg<4\]l JkszRbY !i;L\=Ngᾤ7H NhCS %r!dWeW  % `CKW! @kxp{ro:gGI+Ǭ7e͡#I}SJ#wƟ+;| \5_Y"i7#M+O?u1 cpqG7K??ȑM/3xŚ ]ޗX]k ՌEW>v>jr,HNˋR <3T:>ub ۱wbMDU|#>j@(p V d٩1P oĿQ3 *,WՋWV8W&?g=) V7uVg\S J2ߢ斔 c;ǫi1]} 8؂)Ebv%[eyn$`dx]fXPIRmY#uJE";{wI6Rg2*=D^"JXFZ*`&w ڶm۶m۶m۶m۶OJ՟JeW;urg`Zs̪5}$WNcISV.ȷ$gD{Kp``ID\ )D9S 2Pu2*>ʩ|2F|d #;ka^K'Oiu鷭6LZ:Lԃ1ecg~Nf6yUZ -IdD#ӪIh퓾WYebmM]Nu8 Axˁz׬ 3]vk0:Reyš񕾘/0U#VUy7 PD! KqTi:MMd(ڬ uHf5'M4o.{ vaB }i{*a@rfj؉\<ófZ䞨3ڗ[PzAa(xNK&఼5N[eDM*zh+[:M322wA ahX܍l:)J:tieH~@3Cm咖.lSqM\ݷP8gxݻVjvqg\bZ,#l^r߯k8DUM_®LekL@&ݨ\H{+r&Ϭ#ιxxS=caJZ* _ JC`+EI/-'$_0(cI2օehhG-wW=%sS. |oJ5:gD1j}@|)xxr8[d}Uy6C-G| w^5-EbR)$?S3R u<í5\Kݎc(!^ h*k#yv tNbUB᫞x*b =Ɍʲ2+՛<̻XL2zm#-<_,A ]„ƀJuKX#0qg-A쒠wDvMQ22Řק+Mw{ a{i19i,7;bWzqYL';b%gXb/B\UYg*BTEk+<\1(08#2 %'=Qf)n>xr14 }\:hNk#1X+}o\R(?OCDXVBA~1UVC-́P ήa-_ 64 (R ޿@`pC[۲H.!Z6U4L`x^o % `8ķs=?ab]gZ]YiwX%jS7tؔ<`_6޲LRTWn:nt G{,>\M<:!E,56ݛEYm3&a:, 2';G\2PEe_kf!&M?x3Xm]_QEQ&c 3+|Zmfйr^nr8emOdCw[C>]l|^g\f/"2'rrJ7dǓi@3נgj6|@yC%SdY! =0.fl&dDx2r 9ZC픝TM[@1|s+: _)OVCFa sU_PA̋4[ƛԦpP|e> z%aoZT.k/A' BJYKGRiP\y.v.c+i|k JߪwV`D %̫j7W>H,H$ i&syRɮCa]_u29NQ5f3xv76c^ N)6[ _nB)J=u\Yqe?{g(=ӽ HO@TGfpR3g |Y~g]} (7?D۸ TAvPψZWXJH \ T9(z!3.mw9nYJ#w-Q~ !!qg$ xB@|C|e+{ѬP㹣/ rOyy NBl_9Zؠt/@P \bM .2"bF8F}L<(O8ei#i6@ w1i]3m[5֡eФzGON'^ha46@@Eң_o&pyMОVW Xgv N`LU 6Al?vC!lBuOp6DC9{].lS`1be~V-- j5]Z: i Q [ Q5JU"5I 佢1DŽl%DWT86lްrRt'8tؤ-mlpeнmnƙQ~P-:h '-jUG mDhR^ W b¹GKW/| ԋnɼ9HsRl{dD^T~3LQ8Ԉwіf?Ih_X2Kh{ l,U_2OJjEòE8x!B. @Qk)Drjs*nn_UJ ޿Ьkn+uȨq-׮ RYŽIXל4$V̇2F7ط!6B;p,ELάuNQ#981YkqLV3~tƜ`H cP,t6M.Haյ]E *wDr: z~l"I5 qw7\ë:L7xC:N?BIG1t}l$~o0 pkv@cҖ@Kr&m mA/\de𨌶3Uvc$s;/ňa˟ N7;E1r7; DsgˑO`R))^'5KKr}B ;i.&}"0?0kGe,c2s1cQa ejKoKJ'|bEL\oycZhPiGsK&7e9YL|tDFdжx^ഭ]k)/l^m,K2,(ѻN@/N+Mt.aI{7|F 븈Rt>ecY8F"ld4CjS$nnߏFA{H\RG$nPBYJ7| 8-c:x?˒T>XTdI F7`uBJ7b#&uM(%9 rwxtP+S҂zWV}L9Z#Fg5=_`/QQ(-Z_D –~^Ƅ[3xC@ݬdL~D % `-~OL!8ݛ;ͥ}Cat&9Xefr M-?&}0h5TIB>N6>,.hCӣ:oOrez=ɴ \/Zl8ZI]\C׃>ʹ˫ޓ,dWګCISTaHlѽݕHBT= d UzYd B4=tT ٱ;E OxnƘDh,KkfP= QR^ ~pPWZ &P%xܦ*ƀH;cސj|E PBk!;?@]QPSVqMctV`Ɂ͹uk<|6pi`Vu8l$1@viAo:w~nDސ]!dGS/+6G0|﷍*Gvuё{w+_Bʊcd.!g nԏTݑy:v_I;3Wll}ɜWz#A}zҽq7Z,:2".fFQx{/-^6t=O4ke<>LedD{YyYc];"ʄkUĖ$ӫH\G[{:@ڇʀU,[&M:!>nw>"JӋSd3g{r)IKg}tܥ7v滗%Z;oI MINқ{,>8>1u5lͅfgrwt߲&/ygnΈF-݃BP#hޙCZqhoWskخs4[p B. J n26ϙpow/Ht ZDᰕ- uxAp&n*TfH-ԝ~1xO5,25 Xx3_᳌MDpL_.92SBY(\l ஧a%|4;Лw3dS,7Q9aw\f~fʦ=#71^Mt{?Ф!Bsl'JY`/t弡%@̃YUoXJ,抈~-ÊC5l(;^LTrxl8im"םC#TWz3993^r:XG`cv@-q!\1 Y}8|1:ЅB8# yRuÆ2:~2}pp$>}vQgb>ov:P' T`4)ET'Zb= aFC?J[\FT]T*rSp,[g:||G HIv?OEM) [R,P`;m "G9&[ɓԜLrtPjck^P#;1rBy*aTuA<@kqlN*NEğ- /ua 1G:,A|17Nx7lM{*FqY1[ݗmHA.EzPA떱CTT.+k_Sb f j w8eVkr'V&y, [)DŽ4{P!Ld'0"Jw u \MP/fl,?+"{^7!)M\#"n3' ^^hrA_j*)Gx(3䧼b{yA|A齰g[ZLU݋15X;jMsp8VY"BbzK}sQ2 8]`k88t2-zrt Nfv{+İ~]yt"?W3̿Y^|-âJ@puZ;܉ZB1%m^+T`LjU(b# n W0Pb/:׹Ћ<:ߍGemѹ,F~x!l {m!ZTxP L<3SsEunn4ܐp-YjSzȓjJ/Va`3 }_ϦEq:ds$sun?=b(?[-S{>|ʝ.Y.G- RST{_2qr*}; d {\:J$dv! `_\-eW_S9"LX2Y2d#1:NSJWm*zwv{k,[aj2ŋF<p BO&4b)KoNCr׿RBi0#kC ϖ+m! z@?ڪy./J X8y2x?^q1Na˥"WS?⣼8<( w)jOU$ziEn8݌@uȷXhGḿE>0솸M Ɓcsgk]@M9eylkf177BDb 7c f戒orZ07(œ|h.r8~0ԧӻz+isnȘ̆=ǀ?]`I|׏Ȉ泉IW/&Q͍nȁp_@ߵ8f_mk3b2`;1/~|KgU?]XFqBg̀Hh!2T5$Pvig5 AxpY' tD!TЖ}7b^4VssUuKS;*_5.Iv z)J$w/[H 4mXjzд{%3{/n9FUFFDL*p<Ē:Űnr/~3e ߈GܼjJ{!R(ƿ=F9cDÌiR,ZcbcSH״hpe0+IAIz8&f'y`W{&9㏢tj#.U5#OWiv$^bB)[=sEVݔYrvi /ލ: /yȫ{iடsH>Bg>}}$D_44tKoeKg] S{;DW&񎶃W 4>' :w\ LC>!СE t#F];-ybR.SaB:Ӳs!p6 (ف,UHi'r٫9k*PZCCF1eY|#޵ΆWd=n e:"?b҆k꽤 s!:tQC.&07ƣޙכiZ(bU8?|ӹׯ22W&-qPRMy2{Uc>mY~AӺޯ&Ƭa*8p\ -m0)KKVO4<DZܐ;KQfڏVca3+ Uk!vZfW{ςd9Dr,)mS^?U6 <] ^b(KY̥݉⛉=itiQ.qdصoza&hl_)%gȻCᮥX[B&|6DR2秧O_fyh|Y2LrΠ;g4:x}=HQqd_t̎6`;<1&5k@!Vr*"+8s0ӧ*mK֬OYL$$CQDSD D iV݉U:]^pv?\BL[g~̴90h-P@ނ H%!(:YCMoFҙ GvhsI2a޷93mw &P1H"yF?"\g6/!+ '[ %#T=JZAq77{GZeA-`ybgET5 s I'B rNAQ$< D8yǟ%qckUF) MjoE lL|2#8h8wKFc/L˃P ty3E7 hbaM $P.1!o"b0-3籪TR񚴓4JXr:wGҜf\=|1i0@Q hb}c_[Ԣ{VHW"Ah.1bAr@hA 4z5zAjnָ`^WLhlZLij|jg_<deɮK]KE&_ lK>fbRusMr!{%!<=='VAH[1^ ZpU^-x\FtJ?l7"I4YWekUFW3a]f*N7 k|.RcJ,DŽsO MYTAv򅶯zN>mz5r#bp0EoGQS];+:(q}_ɓۿʤF|SId{5JٔjPӡG]jġ܃-ݣJSw1?&έrݲ_]Xa0KYV.'5mf6=OE3E5Tj-=wB @fԖm Izv4ngı${,IrQj91>t6Pn-vr3S 5M#IsL¶n*ܸ86aA Ron*‚hxL=2(s&"\N7SRŸG3HHG3^' ڋ'2!v.Ԋa+57~= U"1p^e2 n%T=/IJ~Tα0燩 "WrǏE FcS_%ֆ'l{_bx+p;եPUV>gDsmbڛ _2=srb*k'?? knJI̱ZBֽ#6"ztҤDD :9JC hMXUP2-,!"r|Hmq3 /jArchive-Any-0.0945/lib/Archive/000755 000765 000024 00000000000 12711755474 016151 5ustar00olafstaff000000 000000 Archive-Any-0.0945/lib/Archive/Any/000755 000765 000024 00000000000 12711755474 016700 5ustar00olafstaff000000 000000 Archive-Any-0.0945/lib/Archive/Any.pm000644 000765 000024 00000011300 12711755474 017231 0ustar00olafstaff000000 000000 package Archive::Any; $Archive::Any::VERSION = '0.0945'; use strict; use warnings; use Archive::Any::Plugin; use File::Spec::Functions qw( rel2abs splitdir ); use File::MMagic; use MIME::Types qw(by_suffix); sub new { my ( $class, $file, $type ) = @_; $file = rel2abs( $file ); return unless -f $file; my %available; my @plugins = Archive::Any::Plugin->findsubmod; foreach my $plugin ( @plugins ) { eval "require $plugin"; next if $@; my @types = $plugin->can_handle(); foreach my $type ( @types ) { next if exists( $available{$type} ); $available{$type} = $plugin; } } my $mime_type; if ( $type ) { # The user forced the type. ( $mime_type ) = by_suffix( $type ); unless ( $mime_type ) { warn "No mime type found for type '$type'"; return; } } else { # Autodetect the type. $mime_type = File::MMagic->new()->checktype_filename( $file ); } my $handler = $available{$mime_type}; if ( !$handler ) { warn "No handler available for type '$mime_type'"; return; } return bless { file => $file, handler => $handler, type => $mime_type, }, $class; } sub extract { my $self = shift; my $dir = shift; return defined( $dir ) ? $self->{handler}->_extract( $self->{file}, $dir ) : $self->{handler}->_extract( $self->{file} ); } sub files { my $self = shift; return $self->{handler}->files( $self->{file} ); } sub is_impolite { my $self = shift; my @files = $self->files; my $first_file = $files[0]; my ( $first_dir ) = splitdir( $first_file ); return grep( !/^\Q$first_dir\E/, @files ) ? 1 : 0; } sub is_naughty { my ( $self ) = shift; return ( grep {m{^(?:/|(?:\./)*\.\./)}} $self->files ) ? 1 : 0; } sub mime_type { my $self = shift; return $self->{type}; } # # This is not really here. You are not seeing this. # sub type { my $self = shift; return $self->{handler}->type(); } # End of what you are not seeing. 1; # ABSTRACT: Single interface to deal with file archives. __END__ =pod =encoding UTF-8 =head1 NAME Archive::Any - Single interface to deal with file archives. =head1 VERSION version 0.0945 =head1 SYNOPSIS use Archive::Any; my $archive = Archive::Any->new( $archive_file ); my @files = $archive->files; $archive->extract; my $type = $archive->type; $archive->is_impolite; $archive->is_naughty; =head1 DESCRIPTION This module is a single interface for manipulating different archive formats. Tarballs, zip files, etc. =over 4 =item B my $archive = Archive::Any->new( $archive_file ); my $archive = Archive::Any->new( $archive_file, $type ); $type is optional. It lets you force the file type in case Archive::Any can't figure it out. =item B $archive->extract; $archive->extract( $directory ); Extracts the files in the archive to the given $directory. If no $directory is given, it will go into the current working directory. =item B my @file = $archive->files; A list of files in the archive. =item B my $mime_type = $archive->mime_type(); Returns the mime type of the archive. =item B my $is_impolite = $archive->is_impolite; Checks to see if this archive is going to unpack into the current directory rather than create its own. =item B my $is_naughty = $archive->is_naughty; Checks to see if this archive is going to unpack B the current directory. =back =head1 DEPRECATED =over 4 =item B my $type = $archive->type; Returns the type of archive. This method is provided for backwards compatibility in the Tar and Zip plugins and will be going away B in favor of C. =back =head1 PLUGINS For detailed information on writing plugins to work with Archive::Any, please see the pod documentation for L. =head1 SEE ALSO Archive::Any::Plugin =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Archive::Any You can also look for information at: =over 4 =item * MetaCPAN L =item * Issue tracker L =back =head1 AUTHORS =over 4 =item * Clint Moore =item * Michael G Schwern (author emeritus) =item * Olaf Alders (current maintainer) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Archive-Any-0.0945/lib/Archive/Any/Plugin/000755 000765 000024 00000000000 12711755474 020136 5ustar00olafstaff000000 000000 Archive-Any-0.0945/lib/Archive/Any/Plugin.pm000644 000765 000024 00000003774 12711755474 020507 0ustar00olafstaff000000 000000 package Archive::Any::Plugin; $Archive::Any::Plugin::VERSION = '0.0945'; use strict; use warnings; use Module::Find; use Cwd; sub _extract { my ( $self, $file, $dir ) = @_; my $orig_dir; if ( defined $dir ) { $orig_dir = getcwd; chdir $dir; } my $success = $self->extract( $file ); if ( defined $dir ) { chdir $orig_dir; } return 1; } 1; # ABSTRACT: Anatomy of an Archive::Any plugin. __END__ =pod =encoding UTF-8 =head1 NAME Archive::Any::Plugin - Anatomy of an Archive::Any plugin. =head1 VERSION version 0.0945 =head1 SYNOPSIS Explains what is required for a working plugin to Archive::Any. =head1 PLUGINS Archive::Any requires that your plugin define three methods, all of which are passed the absolute filename of the file. This module uses the source of Archive::Any::Plugin::Tar as an example. =over 4 =item B use base 'Archive::Any::Plugin'; =item B This returns an array of mime types that the plugin can handle. sub can_handle { return( 'application/x-tar', 'application/x-gtar', 'application/x-gzip', ); } =item B Return a list of items inside the archive. sub files { my( $self, $file ) = @_; my $t = Archive::Tar->new( $file ); return $t->list_files; } =item B This method should extract the contents of $file to the current directory. L handles negotiating directories for you. sub extract { my ( $self, $file ) = @_; my $t = Archive::Tar->new( $file ); return $t->extract; } =back =head1 SEE ALSO Archive::Any =head1 AUTHORS =over 4 =item * Clint Moore =item * Michael G Schwern (author emeritus) =item * Olaf Alders (current maintainer) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Archive-Any-0.0945/lib/Archive/Any/Tar.pm000644 000765 000024 00000002754 12711755474 017774 0ustar00olafstaff000000 000000 package Archive::Any::Tar; $Archive::Any::Tar::VERSION = '0.0945'; use strict; use warnings; require Archive::Any; use base 'Archive::Any'; use Archive::Tar; use Cwd; sub new { my ( $class, $file ) = @_; my $self = bless {}, $class; $self->{handler} = Archive::Tar->new( $file ); return unless $self->{handler}; $self->{file} = $file; return $self; } sub files { my ( $self ) = shift; $self->{handler}->list_files; } sub extract { my ( $self, $dir ) = @_; my $orig_dir; if ( $dir ) { $orig_dir = getcwd; chdir $dir; } my $success = $self->{handler}->extract; if ( $dir ) { chdir $orig_dir; } return $success; } sub type { return 'tar'; } 1; # ABSTRACT: Archive::Any wrapper around Archive::Tar __END__ =pod =encoding UTF-8 =head1 NAME Archive::Any::Tar - Archive::Any wrapper around Archive::Tar =head1 VERSION version 0.0945 =head1 SYNOPSIS B Use L instead. =head1 DESCRIPTION Wrapper around L for L. =head1 SEE ALSO L, L =head1 AUTHORS =over 4 =item * Clint Moore =item * Michael G Schwern (author emeritus) =item * Olaf Alders (current maintainer) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Archive-Any-0.0945/lib/Archive/Any/Zip.pm000644 000765 000024 00000002724 12711755474 020005 0ustar00olafstaff000000 000000 package Archive::Any::Zip; $Archive::Any::Zip::VERSION = '0.0945'; use strict; use warnings; use base 'Archive::Any'; use Archive::Zip qw(:ERROR_CODES); use Cwd; sub new { my ( $class, $file ) = @_; my $self = bless {}, $class; Archive::Zip::setErrorHandler( sub { } ); $self->{handler} = Archive::Zip->new( $file ); return unless $self->{handler}; $self->{file} = $file; return $self; } sub files { my ( $self ) = shift; $self->{handler}->memberNames; } sub extract { my ( $self, $dir ) = @_; my $orig_dir; if ( $dir ) { $orig_dir = getcwd; chdir $dir; } $self->{handler}->extractTree; if ( $dir ) { chdir $orig_dir; } return 1; } sub type { return 'zip'; } # ABSTRACT: Archive::Any wrapper around Archive::Zip 1; __END__ =pod =encoding UTF-8 =head1 NAME Archive::Any::Zip - Archive::Any wrapper around Archive::Zip =head1 VERSION version 0.0945 =head1 SYNOPSIS B Use L instead. =head1 DESCRIPTION Wrapper around L for L. =head1 AUTHORS =over 4 =item * Clint Moore =item * Michael G Schwern (author emeritus) =item * Olaf Alders (current maintainer) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Archive-Any-0.0945/lib/Archive/Any/Plugin/Tar.pm000644 000765 000024 00000002423 12711755474 021223 0ustar00olafstaff000000 000000 package Archive::Any::Plugin::Tar; $Archive::Any::Plugin::Tar::VERSION = '0.0945'; use strict; use warnings; use base 'Archive::Any::Plugin'; use Archive::Tar; use Cwd; sub can_handle { return ( 'application/x-tar', 'application/x-gtar', 'application/x-gzip', 'application/x-bzip2', ); } sub files { my ( $self, $file ) = @_; my $t = Archive::Tar->new( $file ); return $t->list_files; } sub extract { my ( $self, $file ) = @_; my $t = Archive::Tar->new( $file ); return $t->extract; } sub type { my $self = shift; return 'tar'; } 1; # ABSTRACT: Archive::Any wrapper around Archive::Tar __END__ =pod =encoding UTF-8 =head1 NAME Archive::Any::Plugin::Tar - Archive::Any wrapper around Archive::Tar =head1 VERSION version 0.0945 =head1 SYNOPSIS Do not use this module directly. Instead, use L. =head1 SEE ALSO L, L =head1 AUTHORS =over 4 =item * Clint Moore =item * Michael G Schwern (author emeritus) =item * Olaf Alders (current maintainer) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Archive-Any-0.0945/lib/Archive/Any/Plugin/Zip.pm000644 000765 000024 00000002422 12711755474 021236 0ustar00olafstaff000000 000000 package Archive::Any::Plugin::Zip; $Archive::Any::Plugin::Zip::VERSION = '0.0945'; use strict; use warnings; use base qw(Archive::Any::Plugin); use Archive::Zip qw(:ERROR_CODES); sub can_handle { return ( 'application/x-zip', 'application/x-jar', 'application/zip', ); } sub files { my ( $self, $file ) = @_; my $z = Archive::Zip->new( $file ); return $z->memberNames; } sub extract { my ( $self, $file ) = @_; my $z = Archive::Zip->new( $file ); $z->extractTree; return 1; } sub type { my $self = shift; return 'zip'; } 1; # ABSTRACT: Archive::Any wrapper around Archive::Zip __END__ =pod =encoding UTF-8 =head1 NAME Archive::Any::Plugin::Zip - Archive::Any wrapper around Archive::Zip =head1 VERSION version 0.0945 =head1 SYNOPSIS B Use L instead. =head1 DESCRIPTION Wrapper around L for L. =head1 AUTHORS =over 4 =item * Clint Moore =item * Michael G Schwern (author emeritus) =item * Olaf Alders (current maintainer) =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Olaf Alders. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut