exiftool-vendored.exe 12.73.0 → 12.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/exiftool_files/Changes +94 -6
- package/bin/exiftool_files/README +46 -45
- package/bin/exiftool_files/config_files/example.config +10 -2
- package/bin/exiftool_files/exiftool.pl +138 -87
- package/bin/exiftool_files/lib/File/RandomAccess.pm +31 -5
- package/bin/exiftool_files/lib/File/RandomAccess.pod +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +7 -7
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +17 -13
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +8 -2
- package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +54 -5
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +8 -3
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +5 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +237 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +7 -4
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +9 -6
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +11 -11
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +51 -12
- package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +19 -4
- package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +5 -3
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +4 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +59 -9
- package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +223 -117
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +260 -242
- package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +1 -2
- package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +85 -8
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +148 -8
- package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +26 -23
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +15 -2
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +4 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +77 -52
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +9 -0
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +6 -6
- package/bin/exiftool_files/lib/Image/ExifTool.pm +204 -63
- package/bin/exiftool_files/lib/Image/ExifTool.pod +118 -94
- package/package.json +5 -5
|
@@ -14,7 +14,7 @@ use strict;
|
|
|
14
14
|
use vars qw($VERSION);
|
|
15
15
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
16
16
|
|
|
17
|
-
$VERSION = '1.
|
|
17
|
+
$VERSION = '1.10';
|
|
18
18
|
|
|
19
19
|
sub ProcessRSRC($$);
|
|
20
20
|
|
|
@@ -70,7 +70,7 @@ sub ProcessRSRC($$)
|
|
|
70
70
|
my ($hdr, $map, $buff, $i, $j);
|
|
71
71
|
|
|
72
72
|
# allow access with data reference
|
|
73
|
-
$raf or $raf =
|
|
73
|
+
$raf or $raf = File::RandomAccess->new($$dirInfo{DataPt});
|
|
74
74
|
|
|
75
75
|
# attempt to validate the format as thoroughly as practical
|
|
76
76
|
return 0 unless $raf->Read($hdr, 30) == 30;
|
|
@@ -22,7 +22,7 @@ use vars qw($VERSION %samsungLensTypes);
|
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
23
23
|
use Image::ExifTool::Exif;
|
|
24
24
|
|
|
25
|
-
$VERSION = '1.
|
|
25
|
+
$VERSION = '1.56';
|
|
26
26
|
|
|
27
27
|
sub WriteSTMN($$$);
|
|
28
28
|
sub ProcessINFO($$$);
|
|
@@ -1546,7 +1546,7 @@ sub ProcessSamsung($$$)
|
|
|
1546
1546
|
my ($buff, $buf2, $index, $offsetPos, $audioNOff, $audioSize);
|
|
1547
1547
|
|
|
1548
1548
|
unless ($raf) {
|
|
1549
|
-
$raf =
|
|
1549
|
+
$raf = File::RandomAccess->new($$dirInfo{DataPt});
|
|
1550
1550
|
$et->VerboseDir('SamsungTrailer');
|
|
1551
1551
|
}
|
|
1552
1552
|
return 0 unless $raf->Seek(-6-$offset, 2) and $raf->Read($buff, 6) == 6 and
|
|
@@ -1675,7 +1675,7 @@ SamBlock:
|
|
|
1675
1675
|
# add a fixup so the calling routine can apply further shifts if necessary
|
|
1676
1676
|
require Image::ExifTool::Fixup;
|
|
1677
1677
|
my $fixup = $$dirInfo{Fixup};
|
|
1678
|
-
$fixup or $fixup = $$dirInfo{Fixup} =
|
|
1678
|
+
$fixup or $fixup = $$dirInfo{Fixup} = Image::ExifTool::Fixup->new;
|
|
1679
1679
|
$fixup->AddFixup(length($buff) - $offsetPos);
|
|
1680
1680
|
$fixup->AddFixup(length($buff) - $offsetPos + 4);
|
|
1681
1681
|
}
|
|
@@ -1697,7 +1697,7 @@ sub WriteSTMN($$$)
|
|
|
1697
1697
|
{
|
|
1698
1698
|
my ($et, $dirInfo, $tagTablePtr) = @_;
|
|
1699
1699
|
# create a Fixup for the PreviewImage
|
|
1700
|
-
$$dirInfo{Fixup} =
|
|
1700
|
+
$$dirInfo{Fixup} = Image::ExifTool::Fixup->new;
|
|
1701
1701
|
my $val = Image::ExifTool::WriteBinaryData($et, $dirInfo, $tagTablePtr);
|
|
1702
1702
|
# force PreviewImage into the trailer even if it fits in EXIF segment
|
|
1703
1703
|
$$et{PREVIEW_INFO}{IsTrailer} = 1 if $$et{PREVIEW_INFO};
|
|
@@ -361,7 +361,7 @@ sub ShiftTime($;$$$)
|
|
|
361
361
|
};
|
|
362
362
|
# not a problem if we failed here since we'll just try again next time,
|
|
363
363
|
# so don't return error message
|
|
364
|
-
unless (
|
|
364
|
+
unless ($@) {
|
|
365
365
|
my $mode;
|
|
366
366
|
if (defined $time[0]) {
|
|
367
367
|
$mode = defined $time[3] ? 'DateTime' : 'Date';
|
|
@@ -403,7 +403,6 @@ sub ShiftTime($;$$$)
|
|
|
403
403
|
};
|
|
404
404
|
$@ and return CleanWarning($@);
|
|
405
405
|
$tm += $$shiftOffset{$mode}; # apply the shift
|
|
406
|
-
$tm < 0 and return 'Shift results in negative time';
|
|
407
406
|
# save fractional seconds in shifted time
|
|
408
407
|
$frac = $tm - int($tm);
|
|
409
408
|
if ($frac) {
|
|
@@ -16,7 +16,7 @@ use vars qw($VERSION);
|
|
|
16
16
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
17
17
|
use Image::ExifTool::Sigma;
|
|
18
18
|
|
|
19
|
-
$VERSION = '1.
|
|
19
|
+
$VERSION = '1.32';
|
|
20
20
|
|
|
21
21
|
sub ProcessX3FHeader($$$);
|
|
22
22
|
sub ProcessX3FDirectory($$$);
|
|
@@ -460,7 +460,7 @@ sub WriteX3F($$)
|
|
|
460
460
|
my $newData;
|
|
461
461
|
my %jpegInfo = (
|
|
462
462
|
Parent => 'X3F',
|
|
463
|
-
RAF =>
|
|
463
|
+
RAF => File::RandomAccess->new(\$buff),
|
|
464
464
|
OutFile => \$newData,
|
|
465
465
|
);
|
|
466
466
|
$$et{FILE_TYPE} = 'JPEG';
|
|
@@ -575,7 +575,7 @@ sub ProcessX3FDirectory($$$)
|
|
|
575
575
|
if ($$tagInfo{Name} eq 'JpgFromRaw') {
|
|
576
576
|
my %dirInfo = (
|
|
577
577
|
Parent => 'X3F',
|
|
578
|
-
RAF =>
|
|
578
|
+
RAF => File::RandomAccess->new(\$buff),
|
|
579
579
|
);
|
|
580
580
|
$$et{BASE} += $offset;
|
|
581
581
|
$et->ProcessJPEG(\%dirInfo);
|
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
34
34
|
use Image::ExifTool::Exif;
|
|
35
35
|
use Image::ExifTool::Minolta;
|
|
36
36
|
|
|
37
|
-
$VERSION = '3.
|
|
37
|
+
$VERSION = '3.67';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -859,7 +859,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
859
859
|
# must construct 0x20-byte header which contains length, width and height
|
|
860
860
|
ValueConvInv => q{
|
|
861
861
|
return 'none' unless $val;
|
|
862
|
-
my $e =
|
|
862
|
+
my $e = Image::ExifTool->new;
|
|
863
863
|
my $info = $e->ImageInfo(\$val,'ImageWidth','ImageHeight');
|
|
864
864
|
return undef unless $$info{ImageWidth} and $$info{ImageHeight};
|
|
865
865
|
my $size = Set32u($$info{ImageWidth}) . Set32u($$info{ImageHeight});
|
|
@@ -11640,7 +11640,7 @@ sub ProcessSR2($$$)
|
|
|
11640
11640
|
);
|
|
11641
11641
|
my $subTable = GetTagTable('Image::ExifTool::Sony::SR2SubIFD');
|
|
11642
11642
|
if ($outfile) {
|
|
11643
|
-
my $fixup =
|
|
11643
|
+
my $fixup = Image::ExifTool::Fixup->new;
|
|
11644
11644
|
$dirInfo{Fixup} = $fixup;
|
|
11645
11645
|
$result = $et->WriteDirectory(\%dirInfo, $subTable);
|
|
11646
11646
|
return undef unless $result;
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
|
|
|
15
15
|
use Image::ExifTool qw(:Utils :Vars);
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.36';
|
|
19
19
|
@ISA = qw(Exporter);
|
|
20
20
|
|
|
21
21
|
# set this to a language code to generate Lang module with 'MISSING' entries
|
|
@@ -74,7 +74,7 @@ sub Write(;$$%)
|
|
|
74
74
|
{
|
|
75
75
|
local ($_, *PTIFILE);
|
|
76
76
|
my ($file, $group, %opts) = @_;
|
|
77
|
-
my $et =
|
|
77
|
+
my $et = Image::ExifTool->new;
|
|
78
78
|
my ($fp, $tableName, %langInfo, @langs, $defaultLang, @groups);
|
|
79
79
|
@groups = split ':', $group if $group;
|
|
80
80
|
|
|
@@ -17,7 +17,7 @@ require Exporter;
|
|
|
17
17
|
use vars qw($VERSION @ISA @EXPORT_OK);
|
|
18
18
|
use Image::ExifTool qw(:Utils);
|
|
19
19
|
|
|
20
|
-
$VERSION = '1.
|
|
20
|
+
$VERSION = '1.20';
|
|
21
21
|
@ISA = qw(Exporter);
|
|
22
22
|
@EXPORT_OK = qw(FindTagInfo TagExists);
|
|
23
23
|
|
|
@@ -1870,6 +1870,7 @@ my %tagLookup = (
|
|
|
1870
1870
|
'commanderinternalttlcompgroupb' => { 312 => '22.1', 313 => '28.1' },
|
|
1871
1871
|
'comment' => { 0 => 0x2, 123 => 'Comment', 160 => 'Comment', 336 => 'Comment', 399 => "\xa9cmt", 401 => 'comment', 407 => "\xa9cmt" },
|
|
1872
1872
|
'compass' => { 417 => 0x4 },
|
|
1873
|
+
'compatiblebrands' => { 401 => 'compatible_brands' },
|
|
1873
1874
|
'compatibleversion' => { 509 => 'CompatibleVersion', 511 => 'CompatibleVersion' },
|
|
1874
1875
|
'compilation' => { 399 => 'cpil' },
|
|
1875
1876
|
'compimageimagespersequence' => { 516 => [\'CompositeImageExposureTimes','CompositeImageExposureTimesNumberOfImagesInSequences'] },
|
|
@@ -2022,7 +2023,7 @@ my %tagLookup = (
|
|
|
2022
2023
|
'crc32' => { 513 => 'crc32' },
|
|
2023
2024
|
'createdate' => { 122 => 0x9004, 160 => 'CreateDate', 332 => 'CreationDate', 336 => 'create-date', 398 => 'CreationDate', 404 => 0x1, 536 => 'CreateDate' },
|
|
2024
2025
|
'creationdate' => { 401 => 'creationdate', 525 => 'CreationDate', 528 => 'creationDate' },
|
|
2025
|
-
'creationtime' => { 336 => 'Creation Time' },
|
|
2026
|
+
'creationtime' => { 336 => 'Creation Time', 401 => 'creation_time' },
|
|
2026
2027
|
'creativestyle' => { 434 => 0x1a, 435 => 0x18, 445 => 0x41, 448 => 0xb020, 480 => 0x4a },
|
|
2027
2028
|
'creativestylesetting' => { 436 => 0xf, 453 => 0x7 },
|
|
2028
2029
|
'creativestylewaschanged' => { 485 => 0x8001 },
|
|
@@ -2561,6 +2562,11 @@ my %tagLookup = (
|
|
|
2561
2562
|
'dopesheetlinklinkqualifier' => { 523 => [\'DopesheetLink','DopesheetLinkLinkQualifier'] },
|
|
2562
2563
|
'doublingmicrovolts' => { 141 => 0xc82 },
|
|
2563
2564
|
'dpp' => { 504 => 'dpp' },
|
|
2565
|
+
'dprawbokehshift' => { 106 => 0x20b20 },
|
|
2566
|
+
'dprawbokehshiftarea' => { 106 => 0x20b21 },
|
|
2567
|
+
'dprawghostingreductionarea' => { 106 => 0x20b30 },
|
|
2568
|
+
'dprawmicroadjustbackfront' => { 106 => 0x20b10 },
|
|
2569
|
+
'dprawmicroadjuststrength' => { 106 => 0x20b12 },
|
|
2564
2570
|
'dr4cameramodel' => { 107 => 0x3 },
|
|
2565
2571
|
'drangepriority' => { 130 => 0x1443 },
|
|
2566
2572
|
'drangepriorityauto' => { 130 => 0x1444 },
|
|
@@ -2975,7 +2981,7 @@ my %tagLookup = (
|
|
|
2975
2981
|
'firmwarename' => { 421 => 0xa001 },
|
|
2976
2982
|
'firmwarerevision' => { 19 => 0xa4, 66 => 0x1e, 412 => 0x0 },
|
|
2977
2983
|
'firmwarerevision2' => { 412 => 0xc },
|
|
2978
|
-
'firmwareversion' => { 7 => 0x10b, 11 => 0x136, 14 => 0xff, 15 => 0x107, 141 => [0x415,0xce5], 157 => 0x57, 159 => 'FirmwareVersion', 345 => 0x320, 347 => 0x2, 349 => 0x3109, 382 => 0x230, 407 => ['CNFV','FIRM'], 409 => 0x18, 410 => 0x2a, 414 => 0x2 },
|
|
2984
|
+
'firmwareversion' => { 7 => 0x10b, 11 => 0x136, 14 => 0xff, 15 => 0x107, 141 => [0x415,0xce5], 157 => 0x57, 159 => 'FirmwareVersion', 345 => 0x320, 347 => 0x2, 349 => 0x3109, 382 => 0x230, 407 => ['CNFV','FIRM','info'], 409 => 0x18, 410 => 0x2a, 414 => 0x2 },
|
|
2979
2985
|
'firmwareversions' => { 391 => 0x301 },
|
|
2980
2986
|
'firstphotodate' => { 497 => 'FirstPhotoDate' },
|
|
2981
2987
|
'firstpublicationdate' => { 333 => 'FirstPublicationDate' },
|
|
@@ -3254,6 +3260,7 @@ my %tagLookup = (
|
|
|
3254
3260
|
'genrecvtermrefinedabout' => { 523 => [\'Genre','GenreCvTermRefinedAbout'] },
|
|
3255
3261
|
'genreid' => { 399 => 'geID' },
|
|
3256
3262
|
'geography' => { 529 => 'geography' },
|
|
3263
|
+
'geolocate' => { 123 => 'Geolocate' },
|
|
3257
3264
|
'geologicalcontext' => { 121 => 'GeologicalContext' },
|
|
3258
3265
|
'geologicalcontextbed' => { 121 => [\'GeologicalContext','GeologicalContextBed'] },
|
|
3259
3266
|
'geologicalcontextformation' => { 121 => [\'GeologicalContext','GeologicalContextFormation'] },
|
|
@@ -4314,6 +4321,7 @@ my %tagLookup = (
|
|
|
4314
4321
|
'mainboardversion' => { 141 => 0x438 },
|
|
4315
4322
|
'maindialexposurecomp' => { 314 => '0.6' },
|
|
4316
4323
|
'mainingredient' => { 530 => 'mainIngredient' },
|
|
4324
|
+
'majorbrand' => { 401 => 'major_brand' },
|
|
4317
4325
|
'majorversion' => { 500 => 'MajorVersion' },
|
|
4318
4326
|
'make' => { 101 => 0x0, 118 => 0x1, 122 => 0x10f, 159 => 'Make', 336 => 'Make', 352 => 0x10f, 401 => 'make', 407 => ['@mak',"\xa9mak"], 527 => 'make', 534 => 'Make' },
|
|
4319
4327
|
'makernote' => { 515 => 'MakerNote' },
|
|
@@ -4781,7 +4789,7 @@ my %tagLookup = (
|
|
|
4781
4789
|
'minoltaquality' => { 184 => 0x5, 185 => 0xd, 186 => 0x3, 189 => [0x102,0x103] },
|
|
4782
4790
|
'minoltatime' => { 184 => 0x16 },
|
|
4783
4791
|
'minormodelagedisclosure' => { 333 => 'MinorModelAgeDisclosure' },
|
|
4784
|
-
'minorversion' => { 500 => 'MinorVersion' },
|
|
4792
|
+
'minorversion' => { 401 => 'minor_version', 500 => 'MinorVersion' },
|
|
4785
4793
|
'minsamplevalue' => { 122 => 0x118 },
|
|
4786
4794
|
'mirrorlockup' => { 85 => 0xc, 86 => 0xc, 87 => 0x60f, 88 => 0xb, 89 => 0xc, 90 => 0x6, 91 => 0x6, 92 => 0xc, 93 => 0x3 },
|
|
4787
4795
|
'mobilecountrycode' => { 508 => 'mcc' },
|
|
@@ -6458,7 +6466,7 @@ my %tagLookup = (
|
|
|
6458
6466
|
'shutter-aelock' => { 85 => 0x4, 87 => 0x701, 88 => 0x3, 89 => 0x4, 90 => 0x3, 91 => 0x3, 92 => 0x4, 93 => 0x2 },
|
|
6459
6467
|
'shutteraelbutton' => { 86 => 0x4 },
|
|
6460
6468
|
'shutterbuttonafonbutton' => { 87 => 0x701 },
|
|
6461
|
-
'shuttercount' => { 11 => 0x176, 30 => 0x293, 33 => 0xaf1, 59 => 0x1, 239 => 0xa7, 267 => [0x6a,0x157,0x24d], 268 => 0x286, 269 => 0x279, 270 => 0x284, 271 => 0x242, 272 => 0x280, 273 => 0x276, 274 => [0x27d,0x27f], 275 => 0x246, 277 => 0x2d6, 278 => 0x321, 279 => 0xbd8, 280 => 0x287, 281 => 0x320, 282 => 0x24a, 283 => 0x5fb, 284 => 0x2d5, 382 => 0x5d, 445 => 0x846, 451 => [0x125,0x14a], 467 => 0x32, 468 => 0x3a, 469 => 0x3a, 470 => 0xa },
|
|
6469
|
+
'shuttercount' => { 11 => 0x176, 30 => [0xa95,0x293], 33 => 0xaf1, 59 => 0x1, 239 => 0xa7, 267 => [0x6a,0x157,0x24d], 268 => 0x286, 269 => 0x279, 270 => 0x284, 271 => 0x242, 272 => 0x280, 273 => 0x276, 274 => [0x27d,0x27f], 275 => 0x246, 277 => 0x2d6, 278 => 0x321, 279 => 0xbd8, 280 => 0x287, 281 => 0x320, 282 => 0x24a, 283 => 0x5fb, 284 => 0x2d5, 382 => 0x5d, 445 => 0x846, 451 => [0x125,0x14a], 467 => 0x32, 468 => 0x3a, 469 => 0x3a, 470 => 0xa },
|
|
6462
6470
|
'shuttercount2' => { 467 => 0x4c, 468 => [0x50,0x52,0x58], 469 => 0x50 },
|
|
6463
6471
|
'shuttercount3' => { 467 => [0x1a0,0x1aa,0x1bd], 468 => [0x19f,0x1cb,0x1cd] },
|
|
6464
6472
|
'shuttercurtainsync' => { 85 => 0xf, 86 => 0xf, 87 => 0x305, 88 => 0xe, 89 => 0xf, 90 => 0x8, 91 => 0x8, 92 => 0xf, 93 => 0x8 },
|
|
@@ -7475,6 +7483,7 @@ my %tagLookup = (
|
|
|
7475
7483
|
'writer' => { 182 => 'WM/Writer' },
|
|
7476
7484
|
'writer-editor' => { 134 => 0x7a },
|
|
7477
7485
|
'x3filllight' => { 424 => 0x12 },
|
|
7486
|
+
'xattrmditemwherefroms' => { 177 => 'com.apple.metadata:kMDItemWhereFroms' },
|
|
7478
7487
|
'xattrquarantine' => { 177 => 'com.apple.quarantine' },
|
|
7479
7488
|
'xiaomimodel' => { 122 => 0x9a00 },
|
|
7480
7489
|
'xiaomisettings' => { 122 => 0x9999 },
|
|
@@ -7593,6 +7602,7 @@ my %tagExists = (
|
|
|
7593
7602
|
'aeliveviewhistograminfo' => 1,
|
|
7594
7603
|
'aeliveviewlocalhistogram' => 1,
|
|
7595
7604
|
'aelocalhistogram' => 1,
|
|
7605
|
+
'af' => 1,
|
|
7596
7606
|
'af-cprioritysel' => 1,
|
|
7597
7607
|
'af-sprioritysel' => 1,
|
|
7598
7608
|
'afarea' => 1,
|
|
@@ -7644,6 +7654,12 @@ my %tagExists = (
|
|
|
7644
7654
|
'albumname' => 1,
|
|
7645
7655
|
'albumsortorder' => 1,
|
|
7646
7656
|
'albumtitlesortorder' => 1,
|
|
7657
|
+
'alerts' => 1,
|
|
7658
|
+
'alexa' => 1,
|
|
7659
|
+
'alexa-paireddevicename' => 1,
|
|
7660
|
+
'alexa-pairing' => 1,
|
|
7661
|
+
'alexa-privacymode' => 1,
|
|
7662
|
+
'alexa-wakewordlanguage' => 1,
|
|
7647
7663
|
'aliaslayermetadata' => 1,
|
|
7648
7664
|
'alignment' => 1,
|
|
7649
7665
|
'allcolorflatfield1' => 1,
|
|
@@ -7853,6 +7869,7 @@ my %tagExists = (
|
|
|
7853
7869
|
'autolowlightduration' => 1,
|
|
7854
7870
|
'automationanimation' => 1,
|
|
7855
7871
|
'automationflags' => 1,
|
|
7872
|
+
'autopoweroff' => 1,
|
|
7856
7873
|
'autorotation' => 1,
|
|
7857
7874
|
'autosavefilepath' => 1,
|
|
7858
7875
|
'autosaveformat' => 1,
|
|
@@ -7976,6 +7993,8 @@ my %tagExists = (
|
|
|
7976
7993
|
'bluematrixcolumn' => 1,
|
|
7977
7994
|
'blueprimary' => 1,
|
|
7978
7995
|
'bluesample' => 1,
|
|
7996
|
+
'bluetoothmacaddress' => 1,
|
|
7997
|
+
'bluetoothname' => 1,
|
|
7979
7998
|
'bluetrc' => 1,
|
|
7980
7999
|
'bluex' => 1,
|
|
7981
8000
|
'bluey' => 1,
|
|
@@ -8509,7 +8528,6 @@ my %tagExists = (
|
|
|
8509
8528
|
'companymainphone' => 1,
|
|
8510
8529
|
'companyname' => 1,
|
|
8511
8530
|
'compatibility' => 1,
|
|
8512
|
-
'compatiblebrands' => 1,
|
|
8513
8531
|
'compatiblefontname' => 1,
|
|
8514
8532
|
'complete' => 1,
|
|
8515
8533
|
'compobj' => 1,
|
|
@@ -8815,6 +8833,7 @@ my %tagExists = (
|
|
|
8815
8833
|
'defaultdisplaywidth' => 1,
|
|
8816
8834
|
'defaultimagecolor' => 1,
|
|
8817
8835
|
'defaultrgb' => 1,
|
|
8836
|
+
'defaultsettings' => 1,
|
|
8818
8837
|
'defaultstyle' => 1,
|
|
8819
8838
|
'defectconcealartcorrectthres' => 1,
|
|
8820
8839
|
'defectconcealthrestable' => 1,
|
|
@@ -8870,6 +8889,7 @@ my %tagExists = (
|
|
|
8870
8889
|
'devicename' => 1,
|
|
8871
8890
|
'deviceorientation' => 1,
|
|
8872
8891
|
'devicesettings' => 1,
|
|
8892
|
+
'devicesounds' => 1,
|
|
8873
8893
|
'dex' => 1,
|
|
8874
8894
|
'dialect' => 1,
|
|
8875
8895
|
'dicom' => 1,
|
|
@@ -9014,6 +9034,7 @@ my %tagExists = (
|
|
|
9014
9034
|
'dtvcontent' => 1,
|
|
9015
9035
|
'dualcameraimage' => 1,
|
|
9016
9036
|
'dualcameraimagename' => 1,
|
|
9037
|
+
'dualfiles' => 1,
|
|
9017
9038
|
'dualshotextra' => 1,
|
|
9018
9039
|
'ducky' => 1,
|
|
9019
9040
|
'duedate' => 1,
|
|
@@ -9041,6 +9062,7 @@ my %tagExists = (
|
|
|
9041
9062
|
'editedby' => 1,
|
|
9042
9063
|
'editor' => 1,
|
|
9043
9064
|
'edittagarray' => 1,
|
|
9065
|
+
'ef' => 1,
|
|
9044
9066
|
'effect' => 1,
|
|
9045
9067
|
'effectivebw' => 1,
|
|
9046
9068
|
'effectstrength' => 1,
|
|
@@ -9072,6 +9094,7 @@ my %tagExists = (
|
|
|
9072
9094
|
'embeddedvideo' => 1,
|
|
9073
9095
|
'embeddedvideofile' => 1,
|
|
9074
9096
|
'embeddedvideotype' => 1,
|
|
9097
|
+
'emergencysos' => 1,
|
|
9075
9098
|
'emphasis' => 1,
|
|
9076
9099
|
'empty' => 1,
|
|
9077
9100
|
'encodedpixelsdimensions' => 1,
|
|
@@ -9193,7 +9216,9 @@ my %tagExists = (
|
|
|
9193
9216
|
'extrainfo3' => 1,
|
|
9194
9217
|
'extrasamples' => 1,
|
|
9195
9218
|
'extraticklocations' => 1,
|
|
9219
|
+
'extremeweathermode' => 1,
|
|
9196
9220
|
'f-stop' => 1,
|
|
9221
|
+
'f_' => 1,
|
|
9197
9222
|
'face1birthday' => 1,
|
|
9198
9223
|
'face1category' => 1,
|
|
9199
9224
|
'face1name' => 1,
|
|
@@ -9244,6 +9269,7 @@ my %tagExists = (
|
|
|
9244
9269
|
'faxrecvparams' => 1,
|
|
9245
9270
|
'faxrecvtime' => 1,
|
|
9246
9271
|
'faxsubaddress' => 1,
|
|
9272
|
+
'fcc-id' => 1,
|
|
9247
9273
|
'fdsc' => 1,
|
|
9248
9274
|
'fedexedr' => 1,
|
|
9249
9275
|
'fffheader' => 1,
|
|
@@ -9412,6 +9438,7 @@ my %tagExists = (
|
|
|
9412
9438
|
'footerposition' => 1,
|
|
9413
9439
|
'footnotes' => 1,
|
|
9414
9440
|
'form' => 1,
|
|
9441
|
+
'formatsdcard' => 1,
|
|
9415
9442
|
'formattag' => 1,
|
|
9416
9443
|
'formatter' => 1,
|
|
9417
9444
|
'formatversion' => 1,
|
|
@@ -9497,6 +9524,7 @@ my %tagExists = (
|
|
|
9497
9524
|
'gamutboundarydescription3' => 1,
|
|
9498
9525
|
'gapless' => 1,
|
|
9499
9526
|
'garmingps' => 1,
|
|
9527
|
+
'garminmodel' => 1,
|
|
9500
9528
|
'gaudio' => 1,
|
|
9501
9529
|
'gaussianweights' => 1,
|
|
9502
9530
|
'gcamera' => 1,
|
|
@@ -9541,6 +9569,15 @@ my %tagExists = (
|
|
|
9541
9569
|
'geogsemimajoraxis' => 1,
|
|
9542
9570
|
'geogsemiminoraxis' => 1,
|
|
9543
9571
|
'geogtowgs84' => 1,
|
|
9572
|
+
'geolocationbearing' => 1,
|
|
9573
|
+
'geolocationcity' => 1,
|
|
9574
|
+
'geolocationcountry' => 1,
|
|
9575
|
+
'geolocationcountrycode' => 1,
|
|
9576
|
+
'geolocationdistance' => 1,
|
|
9577
|
+
'geolocationpopulation' => 1,
|
|
9578
|
+
'geolocationposition' => 1,
|
|
9579
|
+
'geolocationregion' => 1,
|
|
9580
|
+
'geolocationtimezone' => 1,
|
|
9544
9581
|
'geometricdistortionparams' => 1,
|
|
9545
9582
|
'georegistrationlocalset' => 1,
|
|
9546
9583
|
'geotiffversion' => 1,
|
|
@@ -9577,6 +9614,7 @@ my %tagExists = (
|
|
|
9577
9614
|
'gps360fly' => 1,
|
|
9578
9615
|
'gpsaltituderaw' => 1,
|
|
9579
9616
|
'gpsaltitudesystem' => 1,
|
|
9617
|
+
'gpsdata' => 1,
|
|
9580
9618
|
'gpsdatalist' => 1,
|
|
9581
9619
|
'gpsdatalist2' => 1,
|
|
9582
9620
|
'gpsdatetimeraw' => 1,
|
|
@@ -9600,6 +9638,7 @@ my %tagExists = (
|
|
|
9600
9638
|
'gpsspeedx' => 1,
|
|
9601
9639
|
'gpsspeedy' => 1,
|
|
9602
9640
|
'gpsspeedz' => 1,
|
|
9641
|
+
'gpsstamp' => 1,
|
|
9603
9642
|
'gpstargetaltitude' => 1,
|
|
9604
9643
|
'gpstargetlatitude' => 1,
|
|
9605
9644
|
'gpstargetlongitude' => 1,
|
|
@@ -9857,6 +9896,7 @@ my %tagExists = (
|
|
|
9857
9896
|
'imagesensorgain' => 1,
|
|
9858
9897
|
'imagesourceek' => 1,
|
|
9859
9898
|
'imagespatialextent' => 1,
|
|
9899
|
+
'imagestabilisation' => 1,
|
|
9860
9900
|
'imagestatus' => 1,
|
|
9861
9901
|
'imagetoolbar' => 1,
|
|
9862
9902
|
'imageuidlist' => 1,
|
|
@@ -10088,6 +10128,7 @@ my %tagExists = (
|
|
|
10088
10128
|
'kdc_ifd' => 1,
|
|
10089
10129
|
'keepexposurewithteleconverter' => 1,
|
|
10090
10130
|
'keepuntil' => 1,
|
|
10131
|
+
'keepusersettings' => 1,
|
|
10091
10132
|
'kelvinwb' => 1,
|
|
10092
10133
|
'kenwooddata' => 1,
|
|
10093
10134
|
'keycode' => 1,
|
|
@@ -10297,6 +10338,7 @@ my %tagExists = (
|
|
|
10297
10338
|
'linksuptodate' => 1,
|
|
10298
10339
|
'linktarget' => 1,
|
|
10299
10340
|
'linlogtable' => 1,
|
|
10341
|
+
'linux' => 1,
|
|
10300
10342
|
'listtype' => 1,
|
|
10301
10343
|
'lit' => 1,
|
|
10302
10344
|
'livephotoinfo' => 1,
|
|
@@ -10361,7 +10403,6 @@ my %tagExists = (
|
|
|
10361
10403
|
'mainboard' => 1,
|
|
10362
10404
|
'maininfo' => 1,
|
|
10363
10405
|
'maininfoifd' => 1,
|
|
10364
|
-
'majorbrand' => 1,
|
|
10365
10406
|
'makeandmodel' => 1,
|
|
10366
10407
|
'makemodel' => 1,
|
|
10367
10408
|
'makernotepentax5a' => 1,
|
|
@@ -10691,6 +10732,7 @@ my %tagExists = (
|
|
|
10691
10732
|
'modeflags' => 1,
|
|
10692
10733
|
'model2' => 1,
|
|
10693
10734
|
'modelandversion' => 1,
|
|
10735
|
+
'modelstamp' => 1,
|
|
10694
10736
|
'modeltype' => 1,
|
|
10695
10737
|
'modenumber' => 1,
|
|
10696
10738
|
'modificationnumber' => 1,
|
|
@@ -10772,6 +10814,8 @@ my %tagExists = (
|
|
|
10772
10814
|
'mwg-rs' => 1,
|
|
10773
10815
|
'mxfversion' => 1,
|
|
10774
10816
|
'mycolors' => 1,
|
|
10817
|
+
'mynextbase-paireddevicename' => 1,
|
|
10818
|
+
'mynextbase-pairing' => 1,
|
|
10775
10819
|
'namedcolor' => 1,
|
|
10776
10820
|
'namedcolor2' => 1,
|
|
10777
10821
|
'nametableversion' => 1,
|
|
@@ -10780,6 +10824,7 @@ my %tagExists = (
|
|
|
10780
10824
|
'nativeresolutionunit' => 1,
|
|
10781
10825
|
'nativexresolution' => 1,
|
|
10782
10826
|
'nativeyresolution' => 1,
|
|
10827
|
+
'nbcd' => 1,
|
|
10783
10828
|
'ncc' => 1,
|
|
10784
10829
|
'nemoblurkernel' => 1,
|
|
10785
10830
|
'nemodarklimit' => 1,
|
|
@@ -10801,6 +10846,7 @@ my %tagExists = (
|
|
|
10801
10846
|
'newcolortype' => 1,
|
|
10802
10847
|
'newguid' => 1,
|
|
10803
10848
|
'newlines' => 1,
|
|
10849
|
+
'nextbasemeta' => 1,
|
|
10804
10850
|
'nexttrackid' => 1,
|
|
10805
10851
|
'nifnonlinearity' => 1,
|
|
10806
10852
|
'nifnonlinearity12bit' => 1,
|
|
@@ -10846,6 +10892,7 @@ my %tagExists = (
|
|
|
10846
10892
|
'nsc_name' => 1,
|
|
10847
10893
|
'nsc_phone' => 1,
|
|
10848
10894
|
'nullmediaheader' => 1,
|
|
10895
|
+
'numberlicenseplate' => 1,
|
|
10849
10896
|
'numberlist' => 1,
|
|
10850
10897
|
'numberofcomponents' => 1,
|
|
10851
10898
|
'numberofframes' => 1,
|
|
@@ -11103,6 +11150,7 @@ my %tagExists = (
|
|
|
11103
11150
|
'parameters' => 1,
|
|
11104
11151
|
'parasites' => 1,
|
|
11105
11152
|
'parentalratingreason' => 1,
|
|
11153
|
+
'parkingmode' => 1,
|
|
11106
11154
|
'parrotautomation' => 1,
|
|
11107
11155
|
'parrotfollowme' => 1,
|
|
11108
11156
|
'parrottimestamp' => 1,
|
|
@@ -11288,6 +11336,9 @@ my %tagExists = (
|
|
|
11288
11336
|
'previewimagedata' => 1,
|
|
11289
11337
|
'previewimageinfo' => 1,
|
|
11290
11338
|
'previewinfo' => 1,
|
|
11339
|
+
'previewjxl' => 1,
|
|
11340
|
+
'previewjxllength' => 1,
|
|
11341
|
+
'previewjxlstart' => 1,
|
|
11291
11342
|
'previewpdf' => 1,
|
|
11292
11343
|
'previewpict' => 1,
|
|
11293
11344
|
'previewpng' => 1,
|
|
@@ -11547,6 +11598,7 @@ my %tagExists = (
|
|
|
11547
11598
|
'recordedby' => 1,
|
|
11548
11599
|
'recordeddate' => 1,
|
|
11549
11600
|
'recordingdates' => 1,
|
|
11601
|
+
'recordinghistory' => 1,
|
|
11550
11602
|
'recordinglocation' => 1,
|
|
11551
11603
|
'recordingtime' => 1,
|
|
11552
11604
|
'recordingtimeday' => 1,
|
|
@@ -11654,6 +11706,7 @@ my %tagExists = (
|
|
|
11654
11706
|
'retailprice' => 1,
|
|
11655
11707
|
'retailpricecurrency' => 1,
|
|
11656
11708
|
'retouchinfoversion' => 1,
|
|
11709
|
+
'reversingcamera' => 1,
|
|
11657
11710
|
'review' => 1,
|
|
11658
11711
|
'revisiondate' => 1,
|
|
11659
11712
|
'revisionnumber' => 1,
|
|
@@ -11728,6 +11781,7 @@ my %tagExists = (
|
|
|
11728
11781
|
'rowinterleavefactor' => 1,
|
|
11729
11782
|
'rsrc' => 1,
|
|
11730
11783
|
'rtmd' => 1,
|
|
11784
|
+
'rtos' => 1,
|
|
11731
11785
|
'rtptimescale' => 1,
|
|
11732
11786
|
'runtime' => 1,
|
|
11733
11787
|
'runtimeepoch' => 1,
|
|
@@ -11835,11 +11889,13 @@ my %tagExists = (
|
|
|
11835
11889
|
'school' => 1,
|
|
11836
11890
|
'screenbuffersize' => 1,
|
|
11837
11891
|
'screendescriptor' => 1,
|
|
11892
|
+
'screendimming' => 1,
|
|
11838
11893
|
'screenheight' => 1,
|
|
11839
11894
|
'screening' => 1,
|
|
11840
11895
|
'screeningdesc' => 1,
|
|
11841
11896
|
'screennail' => 1,
|
|
11842
11897
|
'screenplayby' => 1,
|
|
11898
|
+
'screensaver' => 1,
|
|
11843
11899
|
'screenwidth' => 1,
|
|
11844
11900
|
'screenwindowcenter' => 1,
|
|
11845
11901
|
'screenwindowwidth' => 1,
|
|
@@ -11847,9 +11903,20 @@ my %tagExists = (
|
|
|
11847
11903
|
'script' => 1,
|
|
11848
11904
|
'scriptcommand' => 1,
|
|
11849
11905
|
'sdc' => 1,
|
|
11906
|
+
'sdcardclass' => 1,
|
|
11907
|
+
'sdcardformat' => 1,
|
|
11908
|
+
'sdcardmanfdate' => 1,
|
|
11909
|
+
'sdcardmanfid' => 1,
|
|
11910
|
+
'sdcardmodelno' => 1,
|
|
11911
|
+
'sdcardoemid' => 1,
|
|
11912
|
+
'sdcardserialno' => 1,
|
|
11913
|
+
'sdcardsize' => 1,
|
|
11914
|
+
'sdcardtype' => 1,
|
|
11915
|
+
'sdcardusedspace' => 1,
|
|
11850
11916
|
'sdcc-flp' => 1,
|
|
11851
11917
|
'searchranking' => 1,
|
|
11852
11918
|
'secondarygenre' => 1,
|
|
11919
|
+
'secondcam' => 1,
|
|
11853
11920
|
'secondlanguage' => 1,
|
|
11854
11921
|
'security' => 1,
|
|
11855
11922
|
'securitylocalmetadataset' => 1,
|
|
@@ -12073,6 +12140,8 @@ my %tagExists = (
|
|
|
12073
12140
|
'spectralviewingconditions' => 1,
|
|
12074
12141
|
'spectralwhitepoint' => 1,
|
|
12075
12142
|
'speed' => 1,
|
|
12143
|
+
'speedstamp' => 1,
|
|
12144
|
+
'speedunits' => 1,
|
|
12076
12145
|
'sphericalvideo' => 1,
|
|
12077
12146
|
'spiff' => 1,
|
|
12078
12147
|
'spiffversion' => 1,
|
|
@@ -12246,6 +12315,7 @@ my %tagExists = (
|
|
|
12246
12315
|
'syncstate' => 1,
|
|
12247
12316
|
'synlyrics' => 1,
|
|
12248
12317
|
'synopsis' => 1,
|
|
12318
|
+
'systeminfo' => 1,
|
|
12249
12319
|
'systemtime' => 1,
|
|
12250
12320
|
't4options' => 1,
|
|
12251
12321
|
't6options' => 1,
|
|
@@ -12404,10 +12474,12 @@ my %tagExists = (
|
|
|
12404
12474
|
'tilegaindeterminationtable' => 1,
|
|
12405
12475
|
'tileoffsets' => 1,
|
|
12406
12476
|
'tiles' => 1,
|
|
12477
|
+
'timeanddate' => 1,
|
|
12407
12478
|
'timecode' => 1,
|
|
12408
12479
|
'timecodeindex' => 1,
|
|
12409
12480
|
'timecodeindexparms' => 1,
|
|
12410
12481
|
'timeinfo' => 1,
|
|
12482
|
+
'timelapse' => 1,
|
|
12411
12483
|
'timelineinfo' => 1,
|
|
12412
12484
|
'timeoffset' => 1,
|
|
12413
12485
|
'timereference' => 1,
|
|
@@ -12415,6 +12487,7 @@ my %tagExists = (
|
|
|
12415
12487
|
'timestamplist' => 1,
|
|
12416
12488
|
'timestamprandomoffset' => 1,
|
|
12417
12489
|
'timetosampletable' => 1,
|
|
12490
|
+
'timezonedst' => 1,
|
|
12418
12491
|
'title2' => 1,
|
|
12419
12492
|
'titlelen' => 1,
|
|
12420
12493
|
'titlenum' => 1,
|
|
@@ -12700,6 +12773,7 @@ my %tagExists = (
|
|
|
12700
12773
|
'videofullrangeflag' => 1,
|
|
12701
12774
|
'videoheader' => 1,
|
|
12702
12775
|
'videoheight' => 1,
|
|
12776
|
+
'videolength' => 1,
|
|
12703
12777
|
'videomaxbitrate' => 1,
|
|
12704
12778
|
'videomaxframerate' => 1,
|
|
12705
12779
|
'videomode' => 1,
|
|
@@ -12841,6 +12915,7 @@ my %tagExists = (
|
|
|
12841
12915
|
'webp_flags' => 1,
|
|
12842
12916
|
'webpage' => 1,
|
|
12843
12917
|
'weight' => 1,
|
|
12918
|
+
'what3words' => 1,
|
|
12844
12919
|
'whitebalancematching' => 1,
|
|
12845
12920
|
'whitebalancergb' => 1,
|
|
12846
12921
|
'whitebalancetable' => 1,
|
|
@@ -12853,6 +12928,9 @@ my %tagExists = (
|
|
|
12853
12928
|
'whitesampleleftborder' => 1,
|
|
12854
12929
|
'whitesampletopborder' => 1,
|
|
12855
12930
|
'whitesamplewidth' => 1,
|
|
12931
|
+
'wi-fimacaddress' => 1,
|
|
12932
|
+
'wi-fipassword' => 1,
|
|
12933
|
+
'wi-fissid' => 1,
|
|
12856
12934
|
'wide' => 1,
|
|
12857
12935
|
'widthbytes' => 1,
|
|
12858
12936
|
'widthresolution' => 1,
|
|
@@ -12905,7 +12983,6 @@ my %tagExists = (
|
|
|
12905
12983
|
'xattrlastuseddate' => 1,
|
|
12906
12984
|
'xattrmditemdownloadeddate' => 1,
|
|
12907
12985
|
'xattrmditemfindercomment' => 1,
|
|
12908
|
-
'xattrmditemwherefroms' => 1,
|
|
12909
12986
|
'xattrmdlabel' => 1,
|
|
12910
12987
|
'xattrresourcefork' => 1,
|
|
12911
12988
|
'xcfversion' => 1,
|