exiftool_vendored 12.62.0 → 12.63.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +29 -1
  3. data/bin/MANIFEST +1 -0
  4. data/bin/META.json +4 -1
  5. data/bin/META.yml +4 -1
  6. data/bin/Makefile.PL +7 -1
  7. data/bin/README +10 -7
  8. data/bin/exiftool +22 -16
  9. data/bin/lib/Image/ExifTool/7Z.pm +793 -0
  10. data/bin/lib/Image/ExifTool/Canon.pm +1 -0
  11. data/bin/lib/Image/ExifTool/CanonRaw.pm +4 -4
  12. data/bin/lib/Image/ExifTool/Exif.pm +31 -14
  13. data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -3
  14. data/bin/lib/Image/ExifTool/GPS.pm +5 -2
  15. data/bin/lib/Image/ExifTool/Geotag.pm +4 -1
  16. data/bin/lib/Image/ExifTool/Jpeg2000.pm +225 -28
  17. data/bin/lib/Image/ExifTool/MPF.pm +2 -1
  18. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  19. data/bin/lib/Image/ExifTool/PNG.pm +6 -6
  20. data/bin/lib/Image/ExifTool/PhaseOne.pm +5 -5
  21. data/bin/lib/Image/ExifTool/QuickTime.pm +41 -12
  22. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +18 -18
  23. data/bin/lib/Image/ExifTool/README +1 -1
  24. data/bin/lib/Image/ExifTool/RIFF.pm +11 -9
  25. data/bin/lib/Image/ExifTool/Shortcuts.pm +2 -1
  26. data/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  27. data/bin/lib/Image/ExifTool/Sony.pm +102 -8
  28. data/bin/lib/Image/ExifTool/TagLookup.pm +982 -953
  29. data/bin/lib/Image/ExifTool/TagNames.pod +75 -5
  30. data/bin/lib/Image/ExifTool/Validate.pm +17 -1
  31. data/bin/lib/Image/ExifTool/WriteExif.pl +9 -7
  32. data/bin/lib/Image/ExifTool/Writer.pl +7 -6
  33. data/bin/lib/Image/ExifTool/XMP.pm +14 -2
  34. data/bin/lib/Image/ExifTool/XMP2.pl +32 -0
  35. data/bin/lib/Image/ExifTool/ZIP.pm +5 -5
  36. data/bin/lib/Image/ExifTool.pm +54 -33
  37. data/bin/lib/Image/ExifTool.pod +17 -6
  38. data/bin/perl-Image-ExifTool.spec +6 -6
  39. data/lib/exiftool_vendored/version.rb +1 -1
  40. metadata +3 -2
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars);
31
31
 
32
- $VERSION = '12.62';
32
+ $VERSION = '12.63';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -114,7 +114,7 @@ sub WriteTIFF($$$);
114
114
  sub PackUTF8(@);
115
115
  sub UnpackUTF8($);
116
116
  sub SetPreferredByteOrder($;$);
117
- sub ImageDataMD5($$$;$$);
117
+ sub ImageDataHash($$$;$$);
118
118
  sub CopyBlock($$$);
119
119
  sub CopyFileAttrs($$$);
120
120
  sub TimeNow(;$$);
@@ -194,7 +194,7 @@ $defaultLang = 'en'; # default language
194
194
  PSD XMP BMP WPG BPG PPM RIFF AIFF ASF MOV MPEG Real SWF PSP FLV
195
195
  OGG FLAC APE MPC MKV MXF DV PMP IND PGF ICC ITC FLIR FLIF FPF
196
196
  LFP HTML VRD RTF FITS XCF DSS QTIF FPX PICT ZIP GZIP PLIST RAR
197
- BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC
197
+ 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC
198
198
  M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI R3D AA
199
199
  PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO TXT);
200
200
 
@@ -228,6 +228,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
228
228
  '3GP' => ['MOV', '3rd Gen. Partnership Project audio/video'],
229
229
  '3GP2'=> '3G2',
230
230
  '3GPP'=> '3GP',
231
+ '7Z' => ['7Z', '7z archive'],
231
232
  A => ['EXE', 'Static library'],
232
233
  AA => ['AA', 'Audible Audiobook'],
233
234
  AAE => ['PLIST','Apple edit information'],
@@ -590,6 +591,7 @@ my %fileDescription = (
590
591
  # types may be specified by some modules, eg. QuickTime.pm and RIFF.pm)
591
592
  %mimeType = (
592
593
  '3FR' => 'image/x-hasselblad-3fr',
594
+ '7Z' => 'application/x-7z-compressed',
593
595
  AA => 'audio/audible',
594
596
  AAE => 'application/vnd.apple.photos',
595
597
  AI => 'application/vnd.adobe.illustrator',
@@ -1827,15 +1829,16 @@ my %systemTagsNotes = (
1827
1829
  if specifically requested
1828
1830
  },
1829
1831
  },
1830
- ImageDataMD5 => {
1832
+ ImageDataHash => {
1831
1833
  Notes => q{
1832
- MD5 of image data. Generated only if specifically requested for JPEG, TIFF,
1834
+ Hash of image data. Generated only if specifically requested for JPEG, TIFF,
1833
1835
  PNG, CRW, CR3, MRW, RAF, X3F, IIQ, JP2, JXL, HEIC and AVIF images, MOV/MP4
1834
- videos, and some RIFF-based files such as AVI, WAV and WEBP. The MD5
1836
+ videos, and some RIFF-based files such as AVI, WAV and WEBP. The hash
1835
1837
  includes the main image data, plus JpgFromRaw/OtherImage for some formats,
1836
1838
  but does not include ThumbnailImage or PreviewImage. Includes video and
1837
- audio data for MOV/MP4. The L<XMP-et:OriginalImageMD5 tag|XMP.html#ExifTool>
1838
- provides a place to store these values in the file.
1839
+ audio data for MOV/MP4. The L<XMP-et:OriginalImageHash and
1840
+ XMP-et:OriginalImageHashType tags|XMP.html#ExifTool> provide a way to store the this hash value
1841
+ and the hash type in the file.
1839
1842
  },
1840
1843
  },
1841
1844
  );
@@ -2314,6 +2317,12 @@ sub Options($$;@)
2314
2317
  $newVal = defined $newVal ? "$oldVal|$newVal" : $oldVal;
2315
2318
  }
2316
2319
  $$options{$param} = $newVal;
2320
+ } elsif ($param eq 'ImageHashType') {
2321
+ if (defined $newVal and $newVal =~ /^(MD5|SHA256|SHA512)$/i) {
2322
+ $$options{$param} = uc($newVal);
2323
+ } else {
2324
+ warn("Invalid $param setting '${newVal}'\n"), return $oldVal;
2325
+ }
2317
2326
  } else {
2318
2327
  if ($param eq 'Escape') {
2319
2328
  # set ESCAPE_PROC
@@ -2396,6 +2405,7 @@ sub ClearOptions($)
2396
2405
  HtmlDumpBase => undef, # base address for HTML dump
2397
2406
  IgnoreMinorErrors => undef, # ignore minor errors when reading/writing
2398
2407
  IgnoreTags => undef, # list of tags to ignore when extracting
2408
+ ImageHashType => 'MD5', # image hash algorithm
2399
2409
  Lang => $defaultLang,# localized language for descriptions etc
2400
2410
  LargeFileSupport => undef, # flag indicating support of 64-bit file offsets
2401
2411
  List => undef, # extract lists of PrintConv values into arrays [no longer documented]
@@ -2518,10 +2528,17 @@ sub ExtractInfo($;@)
2518
2528
  }
2519
2529
  }
2520
2530
 
2521
- # create MD5 object if ImageDataMD5 is requested
2522
- if ($$req{imagedatamd5} and not $$self{ImageDataMD5}) {
2523
- if (require Digest::MD5) {
2524
- $$self{ImageDataMD5} = Digest::MD5->new;
2531
+ # create Hash object if ImageDataHash is requested
2532
+ if ($$req{imagedatahash} and not $$self{ImageDataHash}) {
2533
+ my $imageHashType = $self->Options('ImageHashType');
2534
+ if ($imageHashType =~ /^SHA(256|512)$/i) {
2535
+ if (require Digest::SHA) {
2536
+ $$self{ImageDataHash} = Digest::SHA->new($1);
2537
+ } else {
2538
+ $self->WarnOnce("Install Digest::SHA to calculate image data SHA$1");
2539
+ }
2540
+ } elsif (require Digest::MD5) {
2541
+ $$self{ImageDataHash} = Digest::MD5->new;
2525
2542
  } else {
2526
2543
  $self->WarnOnce('Install Digest::MD5 to calculate image data MD5');
2527
2544
  }
@@ -2915,10 +2932,13 @@ sub ExtractInfo($;@)
2915
2932
  # restore necessary members when exiting re-entrant code
2916
2933
  $$self{$_} = $$reEntry{$_} foreach keys %$reEntry;
2917
2934
  SetByteOrder($saveOrder);
2918
- } elsif ($$self{ImageDataMD5}) {
2919
- my $digest = $$self{ImageDataMD5}->hexdigest;
2935
+ } elsif ($$self{ImageDataHash}) {
2936
+ my $digest = $$self{ImageDataHash}->hexdigest;
2920
2937
  # (don't store empty digest)
2921
- $self->FoundTag(ImageDataMD5 => $digest) unless $digest eq 'd41d8cd98f00b204e9800998ecf8427e';
2938
+ $self->FoundTag(ImageDataHash => $digest) unless
2939
+ $digest eq 'd41d8cd98f00b204e9800998ecf8427e' or
2940
+ $digest eq 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' or
2941
+ $digest eq 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e';
2922
2942
  }
2923
2943
 
2924
2944
  # ($type may be undef without an Error when processing sub-documents)
@@ -5582,6 +5602,7 @@ my %formatSize = (
5582
5602
  ifd => 4,
5583
5603
  ifd64 => 8,
5584
5604
  ue7 => 1,
5605
+ utf8 => 1, # (Exif 3.0)
5585
5606
  );
5586
5607
  my %readValueProc = (
5587
5608
  int8s => \&Get8s,
@@ -6487,15 +6508,15 @@ sub ProcessJPEG($$)
6487
6508
  my $req = $$self{REQ_TAG_LOOKUP};
6488
6509
  my $htmlDump = $$self{HTML_DUMP};
6489
6510
  my %dumpParms = ( Out => $out );
6490
- my ($ch, $s, $length, $md5, $md5size);
6511
+ my ($ch, $s, $length, $hash, $hashsize);
6491
6512
  my ($success, $wantTrailer, $trailInfo, $foundSOS, $gotSize, %jumbfChunk);
6492
6513
  my (@iccChunk, $iccChunkCount, $iccChunksTotal, @flirChunk, $flirCount, $flirTotal);
6493
6514
  my ($preview, $scalado, @dqt, $subSampling, $dumpEnd, %extendedXMP);
6494
6515
 
6495
- # get pointer to MD5 object if it exists and we are the top-level JPEG or JP2
6516
+ # get pointer to hash object if it exists and we are the top-level JPEG or JP2
6496
6517
  if ($$self{FILE_TYPE} =~ /^(JPEG|JP2)$/ and not $$self{DOC_NUM}) {
6497
- $md5 = $$self{ImageDataMD5};
6498
- $md5size = 0;
6518
+ $hash = $$self{ImageDataHash};
6519
+ $hashsize = 0;
6499
6520
  }
6500
6521
 
6501
6522
  # check to be sure this is a valid JPG (or J2C, or EXV) file
@@ -6544,7 +6565,7 @@ sub ProcessJPEG($$)
6544
6565
  #
6545
6566
  # read ahead to the next segment unless we have reached EOI, SOS or SOD
6546
6567
  #
6547
- unless ($marker and ($marker==0xd9 or ($marker==0xda and not $wantTrailer and not $md5) or
6568
+ unless ($marker and ($marker==0xd9 or ($marker==0xda and not $wantTrailer and not $hash) or
6548
6569
  $marker==0x93))
6549
6570
  {
6550
6571
  # read up to next marker (JPEG markers begin with 0xff)
@@ -6576,19 +6597,19 @@ sub ProcessJPEG($$)
6576
6597
  $nextSegPos = $raf->Tell();
6577
6598
  $len -= 4; # subtract size of length word
6578
6599
  last unless $raf->Seek($len, 1);
6579
- } elsif ($md5 and defined $marker and ($marker == 0x00 or $marker == 0xda or
6600
+ } elsif ($hash and defined $marker and ($marker == 0x00 or $marker == 0xda or
6580
6601
  ($marker >= 0xd0 and $marker <= 0xd7)))
6581
6602
  {
6582
- # calculate MD5 for image data (includes leading ff d9 but not trailing ff da)
6583
- $md5->add("\xff" . chr($marker));
6603
+ # calculate hash for image data (includes leading ff d9 but not trailing ff da)
6604
+ $hash->add("\xff" . chr($marker));
6584
6605
  my $n = $skipped - (length($buff) - 1); # number of extra 0xff's
6585
6606
  if (not $n) {
6586
6607
  $buff = substr($buff, 0, -1); # remove trailing 0xff
6587
6608
  } elsif ($n > 1) {
6588
6609
  $buff .= "\xff" x ($n - 1); # add back extra 0xff's
6589
6610
  }
6590
- $md5->add($buff);
6591
- $md5size += $skipped + 2;
6611
+ $hash->add($buff);
6612
+ $hashsize += $skipped + 2;
6592
6613
  }
6593
6614
  # read second segment too if this was the first
6594
6615
  next unless defined $marker;
@@ -6800,7 +6821,7 @@ sub ProcessJPEG($$)
6800
6821
  next if $trailInfo or $wantTrailer or $verbose > 2 or $htmlDump;
6801
6822
  }
6802
6823
  # must scan to EOI if Validate or JpegCompressionFactor used
6803
- next if $$options{Validate} or $calcImageLen or $$req{trailer} or $md5;
6824
+ next if $$options{Validate} or $calcImageLen or $$req{trailer} or $hash;
6804
6825
  # nothing interesting to parse after start of scan (SOS)
6805
6826
  $success = 1;
6806
6827
  last; # all done parsing file
@@ -6808,9 +6829,9 @@ sub ProcessJPEG($$)
6808
6829
  pop @$path;
6809
6830
  $verbose and print $out "JPEG SOD\n";
6810
6831
  $success = 1;
6811
- if ($md5 and $$self{FILE_TYPE} eq 'JP2') {
6832
+ if ($hash and $$self{FILE_TYPE} eq 'JP2') {
6812
6833
  my $pos = $raf->Tell();
6813
- $self->ImageDataMD5($raf, undef, 'SOD');
6834
+ $self->ImageDataHash($raf, undef, 'SOD');
6814
6835
  $raf->Seek($pos, 0);
6815
6836
  }
6816
6837
  next if $verbose > 2 or $htmlDump;
@@ -6829,7 +6850,7 @@ sub ProcessJPEG($$)
6829
6850
  or ($$options{RequestAll} and $$options{RequestAll} > 2)))
6830
6851
  {
6831
6852
  my $num = unpack('C',$$segDataPt) & 0x0f; # get table index
6832
- $dqt[$num] = $$segDataPt if $num < 4; # save for MD5 calculation
6853
+ $dqt[$num] = $$segDataPt if $num < 4; # save for hash calculation
6833
6854
  }
6834
6855
  # handle all other markers
6835
6856
  my $dumpType = '';
@@ -7612,8 +7633,8 @@ sub ProcessJPEG($$)
7612
7633
  delete $extendedXMP{$guid};
7613
7634
  }
7614
7635
  }
7615
- # print verbose MD5 message if necessary
7616
- print $out "$$self{INDENT}(ImageDataMD5: $md5size bytes of JPEG image data)\n" if $md5size and $verbose;
7636
+ # print verbose hash message if necessary
7637
+ print $out "$$self{INDENT}(ImageDataHash: $hashsize bytes of JPEG image data)\n" if $hashsize and $verbose;
7617
7638
  # calculate JPEGDigest if requested
7618
7639
  if (@dqt) {
7619
7640
  require Image::ExifTool::JPEGDigest;
@@ -7889,8 +7910,8 @@ sub DoProcessTIFF($$;$)
7889
7910
  if ($$self{TIFF_TYPE} eq 'TIFF') {
7890
7911
  $self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
7891
7912
  }
7892
- if ($$self{ImageDataMD5} and $$self{A100DataOffset} and $raf->Seek($$self{A100DataOffset},0)) {
7893
- $self->ImageDataMD5($raf, undef, 'A100');
7913
+ if ($$self{ImageDataHash} and $$self{A100DataOffset} and $raf->Seek($$self{A100DataOffset},0)) {
7914
+ $self->ImageDataHash($raf, undef, 'A100');
7894
7915
  }
7895
7916
  return 1;
7896
7917
  }
@@ -65,10 +65,11 @@ supported by ExifTool (r = read, w = write, c = create):
65
65
 
66
66
  File Types
67
67
  ------------+-------------+-------------+-------------+------------
68
- 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
69
- 3FR r | DSS r | JP2 r/w | ODS r | RTF r
70
- 3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
71
- 3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
68
+ 360 r/w | DPX r | J2C r | O r | RIFF r
69
+ 3FR r | DR4 r/w/c | JNG r/w | ODP r | RSRC r
70
+ 3G2 r/w | DSS r | JP2 r/w | ODS r | RTF r
71
+ 3GP r/w | DV r | JPEG r/w | ODT r | RW2 r/w
72
+ 7Z r | DVB r/w | JSON r | OFR r | RWL r/w
72
73
  A r | DVR-MS r | JXL r | OGG r | RWZ r
73
74
  AA r | DYLIB r | K25 r | OGV r | RM r
74
75
  AAE r | EIP r | KDC r | ONP r | SEQ r
@@ -107,7 +108,6 @@ supported by ExifTool (r = read, w = write, c = create):
107
108
  DNG r/w | INX r | NKSC r/w | RAM r |
108
109
  DOC r | ISO r | NRW r/w | RAR r |
109
110
  DOCX r | ITC r | NUMBERS r | RAW r/w |
110
- DPX r | J2C r | O r | RIFF r |
111
111
 
112
112
  Meta Information
113
113
  ----------------------+----------------------+---------------------
@@ -301,6 +301,10 @@ of tag keys, and with other L</Sort> settings the entries may not be in the
301
301
  same order as requested.) If a requested tag doesn't exist, a tag key is
302
302
  still generated, but the tag value is undefined.
303
303
 
304
+ B<Note:> Do not reuse this list in subsequent calls to L</ImageInfo> because
305
+ it returns tag keys, not names, and the list will grow for each call
306
+ resulting in increasingly slower performance.
307
+
304
308
  =item HASH ref
305
309
 
306
310
  Reference to a hash containing the options settings valid for this call
@@ -569,7 +573,9 @@ Flag to generate Composite tags when extracting information. Default is 1.
569
573
  =item Compress
570
574
 
571
575
  Flag to write new values in compressed format if possible. Has no effect
572
- unless Compress::Zlib is installed. Default is undef.
576
+ unless the relevant compression library is available. Valid when writing
577
+ metadata to PNG, JXL or MIE images. Setting this to zero causes JXL
578
+ metadata to be rewritten as uncompressed when edited. Default is undef.
573
579
 
574
580
  =item CoordFormat
575
581
 
@@ -791,6 +797,11 @@ allowed. A special tag name of "All" may be used to ignore all tags except
791
797
  those specified by the L</RequestTags> option. Set to undef to clear the
792
798
  previous IgnoreTags list. Default is undef.
793
799
 
800
+ =item ImageHashType
801
+
802
+ Sets type of hash algorithem used for the ImageDataHash tag calculation.
803
+ Supported options are 'MD5', 'SHA256', and 'SHA512'. Default is 'MD5'.
804
+
794
805
  =item Lang
795
806
 
796
807
  Localized language for exiftool tag descriptions, etc. Available languages
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.62
3
+ Version: 12.63
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -22,10 +22,11 @@ supported by ExifTool (r = read, w = write, c = create):
22
22
 
23
23
  File Types
24
24
  ------------+-------------+-------------+-------------+------------
25
- 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
26
- 3FR r | DSS r | JP2 r/w | ODS r | RTF r
27
- 3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
28
- 3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
25
+ 360 r/w | DPX r | J2C r | O r | RIFF r
26
+ 3FR r | DR4 r/w/c | JNG r/w | ODP r | RSRC r
27
+ 3G2 r/w | DSS r | JP2 r/w | ODS r | RTF r
28
+ 3GP r/w | DV r | JPEG r/w | ODT r | RW2 r/w
29
+ 7Z r | DVB r/w | JSON r | OFR r | RWL r/w
29
30
  A r | DVR-MS r | JXL r | OGG r | RWZ r
30
31
  AA r | DYLIB r | K25 r | OGV r | RM r
31
32
  AAE r | EIP r | KDC r | ONP r | SEQ r
@@ -64,7 +65,6 @@ supported by ExifTool (r = read, w = write, c = create):
64
65
  DNG r/w | INX r | NKSC r/w | RAM r |
65
66
  DOC r | ISO r | NRW r/w | RAR r |
66
67
  DOCX r | ITC r | NUMBERS r | RAW r/w |
67
- DPX r | J2C r | O r | RIFF r |
68
68
 
69
69
  Meta Information
70
70
  ----------------------+----------------------+---------------------
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('12.62.0')
4
+ VERSION = Gem::Version.new('12.63.0')
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exiftool_vendored
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.62.0
4
+ version: 12.63.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-05-03 00:00:00.000000000 Z
12
+ date: 2023-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool
@@ -258,6 +258,7 @@ files:
258
258
  - bin/lib/File/RandomAccess.pod
259
259
  - bin/lib/Image/ExifTool.pm
260
260
  - bin/lib/Image/ExifTool.pod
261
+ - bin/lib/Image/ExifTool/7Z.pm
261
262
  - bin/lib/Image/ExifTool/AES.pm
262
263
  - bin/lib/Image/ExifTool/AFCP.pm
263
264
  - bin/lib/Image/ExifTool/AIFF.pm