Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files-Excluded-regen-configure: bin/*
Upstream-Name: perl
Source: http://www.perl.com/CPAN/src/5.0/
Comment:
 This package was initially debianized by Brendan O'Dea <bod@debian.org>
 on Thu, 17 Aug 2000 16:10:54 +1000. The packaging has since been modified
 by various others, including Dominic Hargreaves <dom@earth.li> and Niko
 Tyni <ntyni@debian.org>.
 .
 Upstream Authors:
 .
    Larry Wall et. al. (see /usr/share/doc/perl/AUTHORS).
 .
 Last checked against: Perl 5.32.1

Files: *
Copyright:
 Perl is Copyright (C) 1987-2021 by Larry Wall and others. All rights reserved.
License: GPL-1+ or Artistic
Comment:
    This program is free software; you can redistribute it and/or modify
    it under the terms of either:
 .
    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" which comes with Perl.
 ----------------------------------------
 The directories ext/, dist/, and cpan/ contain separate distributions
 that have been bundled with the Perl core. The copyright and license
 status of these have been detailed separately below.
 .
 It is assumed that all the other files are part of Perl and share the
 above copyright and license information unless explicitly specified
 differently. Only the exceptions have been detailed below.
 .
 As a small portion of the files are indeed licensed differently from
 the above, all the other licenses have been collected and/or duplicated
 at the end of this file to facilitate review.

Files: perlio.c
Copyright:
 Copyright (c) 1996-2006, Nick Ing-Simmons
 Copyright (c) 2006, 2007, 2008 Larry Wall and others
License: GPL-1+ or Artistic
Comment:
 This file is a part of Perl itself, licensed as above.

Files: malloc.c
Copyright:
 Modifications Copyright Ilya Zakharevich 1996-99.
License: GPL-1+ or Artistic
Comment:
 This file is a part of Perl itself, licensed as above.

Files: mro_core.c
Copyright:
 Copyright (c) 2007 Brandon L Black
 Copyright (c) 2007, 2008 Larry Wall and others
License: GPL-1+ or Artistic
Comment:
 This file is a part of Perl itself, licensed as above.

Files: perl.c
Copyright:
 Copyright 1987-2018, Larry Wall
 MS-DOS port Copyright (c) 1989, 1990, Diomidis Spinellis
 OS/2 port Copyright (c) 1990, 1991, Raymond Chen, Kai Uwe Rommel
 Version 5 port Copyright (c) 1994-2002, Andreas Kaiser, Ilya Zakharevich
License: GPL-1+ or Artistic
Comment:
 This file is a part of Perl itself, licensed as above.
 ----------------------------------------
 These copyright notices are embedded in the code, and possibly apply
 to other files as well.

Files: time64.c
Copyright:
 Copyright (c) 2007-2008  Michael G Schwern
 .
 This software originally derived from Paul Sheer's pivotal_gmtime_r.c.
License: Expat

Files:
 regcomp.c
 regexec.c
Copyright:
 Copyright (c) 1986 by University of Toronto.
 Written by Henry Spencer.  Not derived from licensed software.
 .
 Alterations to Henry's code are...
 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
   by Larry Wall and others
 .
 NOTE: this is derived from Henry Spencer's regexp code, and should not
 confused with the original package (see point 3 below).  Thanks, Henry!
License: REGCOMP, and GPL-1+ or Artistic
Comment:
 ----------------------------------------
 The "alterations to Henry's code" have the following license information:
 .
  You may distribute under the terms of either the GNU General Public
  License or the Artistic License, as specified in the README file.

Files: perly.h
Copyright:
 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, Inc.
License: GPL-3+-WITH-BISON-EXCEPTION

Files: mkppport
Copyright:
 Copyright 2006 by Marcus Holland-Moritz <mhx@cpan.org>.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you may redistribute it
 and/or modify it under the same terms as Perl itself.

Files: ebcdic_tables.h
Copyright:
 Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>
License: Expat

Files:
 inline.h
 perl.h
Copyright:
 Copyright (C) 1993-2012 by Larry Wall and others
 Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>
License: GPL-1+ or Artistic
Comment:
 These files contains tables and code adapted from
 https://bjoern.hoehrmann.de/utf-8/decoder/dfa/, which requires this
 copyright notice:
 .
 Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>

Files: lib/unicore/*.txt
Copyright:
 © 1991-2016 Unicode®, Inc.
License: Unicode
Comment:
 The license is given as
 .
  For terms of use, see http://www.unicode.org/terms_of_use.html
 .
 See the end of this file for the full text of this license as downloaded
 from the above URL on Tue, 26 Apr 2011 14:41:24 +0300.

Files: lib/deprecate.pm
Copyright:
 Copyright (C) 2009, 2011
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.10.0 or,
 at your option, any later version of Perl 5 you may have available.

Files: lib/B/Deparse.pm
Copyright:
 Copyright (c) 1998-2000, 2002, 2003, 2004, 2005, 2006 Stephen McCamant.
 All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This module is free software; you can redistribute and/or modify
 it under the same terms as Perl itself.

Files: dist/FindBin/lib/FindBin.pm
Copyright:
 Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Files: symbian/*
Copyright:
 Copyright (c) Nokia 2004-2005.  All rights reserved.
License: GPL-1+ or Artistic
Comment:
 All files are licensed under the same terms as Perl itself.

Files: symbian/PerlUiS90.rss
Copyright:
 Copyright (c) 2006 Alexander Smishlajev. All rights reserved.
License: GPL-1+ or Artistic
Comment:
 The PerlUi class is licensed under the same terms as Perl itself.

Files: README.symbian
Copyright:
 Copyright (c) 2004-2005 Nokia.  All rights reserved.
 Copyright (c) 2006-2007 Jarkko Hietaniemi.
License: GPL-1+ or Artistic
Comment:
 The Symbian port is licensed under the same terms as Perl itself.

Files: t/op/split_unicode.t
Copyright:
 Copyright (c) 1991-2006 Unicode, Inc.
License: GPL-1+ or Artistic, and Unicode
Comment:
 ----------------------------------------
 The test data was extracted from the Unicode Character Database.
 .
 It is assumed that the test code is licensed under the same terms
 as Perl.

Files: regen/ebcdic.pl
Copyright:
 Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de>
License: Expat
Comment:
 * Some of the tables are adapted from
 *      https://bjoern.hoehrmann.de/utf-8/decoder/dfa/

Files: regen/reentr.pl
Copyright: Copyright (c) 2002,2003 Jarkko Hietaniemi
License: GPL-1+ or Artistic
Comment:
 You may distribute under the terms of either the GNU General Public
 License or the Artistic License, as specified in the README file.

Files:
 Porting/checkansi.pl
 Porting/valgrindpp.pl
Copyright:
 Copyright 2003, 2007 by Marcus Holland-Moritz <mhx@cpan.org>.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you may redistribute it
 and/or modify it under the same terms as Perl itself.

Files: Porting/config_h.pl
Copyright:
 Copyright (C) 2005-2012 by H.Merijn Brand (m)'12 [22-09-2012]
License: GPL-1+ or Artistic
Comment:
 You may distribute under the terms of either the GNU General Public
 License or the Artistic License, as specified in the README file.

Files: Porting/git-deltatool
Copyright:
 This software is copyright (c) 2010 by David Golden.
License: GPL-1+ or Artistic
Comment:
 This is free software; you can redistribute it and/or modify it under the same
 terms as the Perl 5 programming language system itself.

Files: NetWare/*
Copyright:
 Copyright (C) 2000-01, 2002 Novell, Inc. All Rights Reserved.
License: GPL-1+ or Artistic
Comment:
 You may distribute under the terms of either the GNU General Public
 License or the Artistic License, as specified in the README file.

Files:
 vms/vms.c
 vms/vmsish.h
Copyright:
  Copyright (C) 1993-2015 by Charles Bailey and others.
License: GPL-1+ or Artistic
Comment:
 You may distribute under the terms of either the GNU General Public
 License or the Artistic License, as specified in the README file.

Files: win32/fcrypt.c
Copyright:
 Copyright (C) 1993 Eric Young - see README for more details
License: GPL-1+ or Artistic
Comment:
 This file is a part of Perl itself, licensed as above.

Files:
 dist/autouse/*
 dist/base/*
 dist/constant/*
 dist/Devel-SelfStubber/*
 dist/Dumpvalue/*
 dist/Env/*
 cpan/ExtUtils-Manifest/*
 dist/I18N-Collate/*
 dist/Safe/*
 ext/Fcntl/*
 ext/FileCache/*
 ext/GDBM_File/*
 ext/IPC-Open3/*
 ext/NDBM_File/*
 ext/ODBM_File/*
 ext/Opcode/*
 ext/PerlIO-encoding/*
 ext/PerlIO-scalar/*
 ext/PerlIO-via/*
 ext/POSIX/*
 ext/re/*
 cpan/Socket/*
 ext/Sys-Hostname/*
 ext/Tie-Hash-NamedCapture/*
 ext/Tie-Memoize/*
 ext/VMS-DCLsym/*
 ext/VMS-Stdio/*
Copyright: unknown
License: GPL-1+ or Artistic
Comment:
 ----------------------------------------
 There is no copyright or license information in these distributions.
 It is assumed that they are licensed under the same terms as Perl itself.

Files: cpan/Archive-Tar/*
Copyright: 2002 - 2009 Jos Boumans <kane@cpan.org>. All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This library is free software; you may redistribute and/or modify
 it under the same terms as Perl itself.

Files:
 cpan/AutoLoader/*
 dist/SelfLoader/*
Copyright: This package has the same copyright and license as the perl core:
 Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
  2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012
  by Larry Wall and others
 .
 All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This package has the same copyright and license as the perl core.

Files: cpan/autodie/*
Copyright: 2008-2009, Paul Fenwick <pjf@perltraining.com.au>
License: GPL-1+ or Artistic
Comment:
 This module is free software, you may distribute it under the
 same terms as Perl itself.

Files:
 cpan/autodie/lib/autodie/exception/system.pm
 cpan/autodie/lib/autodie/exception.pm
Copyright: 2008-2009, Paul Fenwick <pjf@perltraining.com.au>
License: GPL-1+ or Artistic
Comment:
 This is free software.  You may modify and/or redistribute this
 code under the same terms as Perl 5.10 itself, or, at your option,
 any later version of Perl 5.

Files:
 cpan/autodie/lib/autodie/Scope/GuardStack.pm
 cpan/autodie/lib/autodie/Util.pm
Copyright: Copyright 2013-2014, Niels Thykier <niels@thykier.net>
License: GPL-1+ or Artistic
Comment:
 This module is free software.  You may distribute it under the
 same terms as Perl itself.

Files: cpan/Compress-Raw-Bzip2/*
Copyright: Copyright (c) 2005-2019 Paul Marquess. All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it
 and/or modify it under the same terms as Perl itself.

Files: cpan/Compress-Raw-Bzip2/bzip2-src/*
Copyright: Copyright(C) 1996-2019 Julian Seward. All rights reserved
Comment:
 ----------------------------------------
 cpan/Compress-Raw-Bzip2/bzip2-src/README states:
  Note that the files bzip2.c, bzip2recover.c, bzlib.c & decompress.c
  have been modified to allow them to build with a C++ compiler.
  The file bzip2-src/bzip2-cpp.patch contains the patch
  that was used to modify the original source.
 but the patch has apparently been filtered out when including the software
 into the Perl core distribution.
License: BZIP

Files: cpan/Compress-Raw-Zlib/*
Copyright: Copyright (c) 2005-2019 Paul Marquess. All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it
 and/or modify it under the same terms as Perl itself.

Files: cpan/Compress-Raw-Zlib/zlib-src/*
Copyright:
 Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
License: ZLIB

Files: cpan/Config-Perl-V/*
Copyright:
 Copyright (C) 2009-2019 H.Merijn Brand
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.

Files: cpan/CPAN/*
Copyright: unknown
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.

Files:
 cpan/CPAN/lib/App/Cpan.pm
 cpan/CPAN/scripts/cpan
Copyright: (c) 2001-2018, brian d foy, All Rights Reserved.
License: GPL-1+ or Artistic
Comment:
 You may redistribute this under the same terms as Perl itself.

Files: cpan/CPAN-Meta/*
Copyright:
 This software is copyright (c) 2010 by David Golden, Ricardo Signes,
 Adam Kennedy and Contributors.
License: GPL-1+ or Artistic
Comment:
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.

Files:
 cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod
 cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod
 cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod
 cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod
 cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod
Copyright: Ken Williams
License: GPL-1+ or Artistic
Comment:
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.

Files: cpan/CPAN-Meta-Requirements/*
Copyright:
 This software is copyright (c) 2010 by David Golden and Ricardo Signes.
License: GPL-1+ or Artistic
Comment:
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.

Files: cpan/CPAN-Meta-YAML/*
Copyright:
 This software is copyright (c) 2010 by Adam Kennedy.
License: GPL-1+ or Artistic
Comment:
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.

Files: cpan/DB_File/*
Copyright: Copyright (c) 1995-2020 Paul Marquess. All rights reserved.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.

Files: dist/Devel-PPPort/*
Copyright:
 Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
              Copyright (C) 2018, The perl5 porters
 Version 2.x, Copyright (C) 2001, Paul Marquess.
 Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.

Files:
 dist/Devel-PPPort/parts/inc/mess
 dist/Devel-PPPort/parts/inc/01_test
Copyright:
 Copyright (C) 2017, 2019 Pali <pali@cpan.org>
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.

Files: cpan/Digest/*
Copyright:
 Copyright 1998-2006 Gisle Aas.
 Copyright 1995,1996 Neil Winton.
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.

Files: cpan/Digest-MD5/*
Copyright:
 Copyright 1998-2003 Gisle Aas.
 Copyright 1995-1996 Neil Winton.
 Copyright 1990-1992 RSA Data Security, Inc.
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself.

Files: cpan/Digest-SHA/*
Copyright:
 Copyright (C) 2003-2018 Mark Shelor, All Rights Reserved
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.

Files: cpan/Encode/*
Copyright: Copyright 2002-2014 Dan Kogai <dankogai@cpan.org>
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.

Files: cpan/Encode/bin/encguess
Copyright: 2015 Michael LaGrasta and Dan Kogai
License: Artistic
Comment:
 This program is free software; you can redistribute it and/or modify it
 under the terms of the the Artistic License (2.0).

Files: dist/encoding-warnings/*
Copyright:
 Copyright 2004, 2005, 2006, 2007 by Audrey Tang <cpan@audreyt.org>.
License: GPL-1+ or Artistic
Comment:
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Files: dist/Exporter/lib/Exporter.pm
Copyright: unknown
License: GPL-1+ or Artistic
Comment:
 This library is free software. You can redistribute it
 and/or modify it under the same terms as Perl itself.

Files: dist/Tie-File/*
Copyright:
 Tie::File version 0.97 is copyright (C) 2003 Mark Jason Dominus.
License: GPL-2+ or Artistic
Comment:
 This library is free software; you may redistribute it and/or modify
 it under the same terms as Perl itself.
 .
 These terms are your choice of any of (1) the Perl Artistic Licence,
 or (2) version 2 of the GNU General Public License as published by the
 Free Software Foundation, or (3) any later version of the GNU General
 Public License.


Files: cpan/experimental/*
Copyright:
 This software is copyright (c) 2013 by Leon Timmermans.
License: GPL-1+ or Artistic
Comment:
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.

Files: cpan/ExtUtils-Constant/*
Copyright: unknown
License: GPL-1+ or Artistic
Comment:
 ----------------------------------------
 There are no copyright or license notices in this distribution. It
 is assumed that the copyright and license of Perl itself applies here
 as well.
 .
 This is supported by the README of the separate CPAN distribution at
 <https://metacpan.org/release/ExtUtils-Constant>, which states:
 .
 You may distribute this work under the terms of either the GNU General
 Public License or the Artistic License, as specified in perl's README
 file.
 .
 Copyright © 2001, 2002, 2005 Nicholas Clark

Files: cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
Copyright: 2010 Gisle Aas <gisle@aas.no>
License: GPL-1+ or Artistic
Comment:
 This library is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.

Files: cpan/ExtUtils-Manifest/lib/ExtUtils                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 