Reputation: 41
is there a solution to check if a JPG file has a clipping path?
I know I can do it for example with ImageMagick CLI magick identify -verbose
but my target solution should be way easier: Running a tkinter app and the user selects the image, Python checks if this image has 1 or many clipping paths and tkinter returns the information.
I tried exifread
but without success, looks like it can't check clipping paths.
here are 2 images with clipping paths: https://github.com/pimcore/pimcore/files/4009504/images.zip
Upvotes: 1
Views: 327
Reputation: 207778
Here's a way to search for Adobe Resources, i.e. 8BIM stuff, in a JPEG file without requiring any external packages, i.e. pure Python. It maps the file and searches for specified (arbitrary) binary sequences:
#!/usr/bin/env python3
import re
import mmap
import struct
def CheckFile(filename):
"""Check if the specified file contains Adobe Photoshop Resources, i.e. 8BIM stuff"""
# Regex to match Adobe Resource, i.e. "8BIM" plus 2 bytes
AdobeResource = b'8BIM..'
print(f'Opening file: "{filename}"')
with open(filename, 'r+b') as f:
print(f'Mapping file for read')
with mmap.mmap(f.fileno(), length=0, access=mmap.ACCESS_READ) as mm:
# Check file is a valid JPEG, i.e. first 2 bytes are "ff d8"
if mm[:2] != b'\xff\xd8':
print('Error: Not a JPEG file')
return
# Search for all 8BIMs, using re.DOTALL to match ANY byte
for resource in re.findall(AdobeResource, mm, flags=re.DOTALL):
# Resource ID is big-endian unsigned short, so unpack to decimal
ResourceID = struct.unpack('>H', resource[4:6])[0]
print(f'Resource ID: {ResourceID}')
CheckFile('338-55.jpg')
CheckFile('567-53.jpg')
Using your two supplied files as examples, we get:
Opening file: "338-55.jpg"
Mapping file for read
Resource ID: 1028
Resource ID: 1061
Resource ID: 1082
Resource ID: 1083
Resource ID: 1005
Resource ID: 1062
Resource ID: 1037
Resource ID: 1049
Resource ID: 1011
Resource ID: 1034
Resource ID: 10000
Resource ID: 1013
Resource ID: 1016
Resource ID: 1032
Resource ID: 1054
Resource ID: 1050
Resource ID: 1064
Resource ID: 1044
Resource ID: 1036
Resource ID: 1057
Resource ID: 1088
Resource ID: 2000 <--- Clipping path
Resource ID: 3000
Resource ID: 2999 <--- Clipping path name
Resource ID: 1030
Opening file: "567-53.jpg"
Mapping file for read
Resource ID: 1028
Resource ID: 1061
Resource ID: 1082
Resource ID: 1083
Resource ID: 1005
Resource ID: 1062
Resource ID: 1037
Resource ID: 1049
Resource ID: 1011
Resource ID: 1034
Resource ID: 10000
Resource ID: 1013
Resource ID: 1016
Resource ID: 1032
Resource ID: 1054
Resource ID: 1050
Resource ID: 1064
Resource ID: 1044
Resource ID: 1036
Resource ID: 1057
Resource ID: 1088
Resource ID: 2000 <--- Clipping path
Resource ID: 3000
Resource ID: 2999 <--- Clipping path name
Resource ID: 1030
Upvotes: 1
Reputation: 6174
As per this post:
one has to search within the binary image data:
'8BIM\x0b\xb7'
If you find those 6 bytes (0x38 42 49 4d 0b b7
) where the first 4 are the ASCII letters 8BIM
and the last 2 are a 16-bit big endian word=short for the value of 2999
then you found a clipping path name. Adobe's path resource format explains:
If the file contains a resource of type
8BIM
with an ID of 2999, then this resource contains a Pascal-style string containing the name of the clipping path to use with this image when saving it as an EPS file. 4 byte fixed value for flatness and 2 byte fill rule. 0 = same fill rule, 1 = even odd fill rule, 2 = non zero winding fill rule. The fill rule is ignored by Photoshop.
Actual clipping path data=info is then saved in an 8BIM
with an ID of f.e. 2000 (that is 0x38 42 49 4d 07 d0
) - as per Image Resource IDs in the docs:
ID hex ID decimal Description 0x07D0-0x0BB6 2000-2997 Path Information (saved paths). 0x0BB7 2999 Name of clipping path.
All this is stored in an APP13 segment (0xff ed
) with the identification Photoshop 3.0\0
- a traditional place for 8BIM
s. So:
8BIM
resource exists with the ID 2999 then there is most likely also a resource with an ID between 2000 and 2997 that has the actual clipping data for that clipping name.Upvotes: 1
Reputation: 53164
In Imagemagick if you do
convert image.jpg -format '%[8BIM:1999,2998:#1]' info:
if there is no clip path, you will get a warning message:
convert: unknown image property "%[8BIM:1999,2998:#1]" @ warning/property.c/InterpretImageProperties/4120.
If the image has a clip path, then it will be returned. For example:
convert 338-55.jpg -format '%[8BIM:1999,2998:#1]' info:
<?xml version="1.0" encoding="iso-8859-1"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1830" height="1684">
<g>
<path fill-rule="evenodd" style="fill:#000000;stroke:#000000;stroke-width:0;stroke-antialiasing:false" d="
M 1265.17 120.776
C 1263.92 84.9753 1262.66 81.2068 1262.66 81.2068
C 1262.66 81.2068 1255.75 79.3225 1255.75 64.2485
C 1255.75 49.1744 1257.01 49.1744 1258.89 46.6622
C 1260.78 44.1498 1267.69 43.5217 1270.2 37.8691
C 1272.71 32.2163 1272.71 17.1422 1282.13 14.6299
C 1291.55 12.1176 1319.19 12.1181 1319.19 12.1181
C 1319.19 12.1181 1319.82 5.83676 1355.62 4.58058
C 1391.42 3.32449 1665.91 4.58058 1665.91 4.58058
C 1665.91 4.58058 1674.7 14.6299 1684.13 14.6299
C 1693.55 14.6299 1707.99 12.1176 1711.13 18.3984
C 1714.28 24.6793 1716.16 29.7039 1718.04 32.8443
C 1719.93 35.9848 1734.38 176.675 1734.38 176.675
C 1734.38 176.675 1747.57 312.97 1749.45 318.622
C 1751.33 324.275 1754.47 330.556 1751.33 338.721
C 1748.19 346.886 1752.59 352.539 1748.82 356.307
C 1745.05 360.076 1740.66 364.472 1740.66 368.241
C 1740.66 372.009 1756.36 496.998 1756.36 503.907
C 1756.36 510.816 1751.33 521.493 1748.82 527.146
C 1746.31 532.799 1723.07 601.888 1718.04 606.913
C 1713.02 611.937 1674.08 610.053 1674.08 610.053
C 1674.08 610.053 1625.08 518.353 1622.57 512.072
C 1620.06 505.791 1611.89 379.546 1611.89 379.546
C 1611.89 379.546 1589.28 378.918 1580.49 382.059
C 1571.69 385.199 1568.55 385.827 1556.62 385.827
C 1544.68 385.827 1481.25 387.083 1462.4 387.083
C 1443.56 387.083 1443.56 391.48 1441.05 387.083
C 1438.53 382.687 1441.67 380.803 1436.65 380.174
C 1431.62 379.546 1423.46 379.546 1423.46 379.546
C 1423.46 379.546 1431 494.486 1429.74 506.419
C 1428.48 518.353 1397.71 609.425 1397.71 609.425
C 1397.71 609.425 1373.84 618.218 1350.6 608.797
C 1333.01 583.674 1314.79 542.22 1310.4 534.055
C 1306 525.89 1295.32 382.687 1295.32 382.687
C 1295.32 382.687 1284.02 378.29 1282.76 368.241
C 1281.5 358.192 1265.17 120.776 1265.17 120.776
M 677.174 147.776
C 675.918 111.975 674.661 108.207 674.661 108.207
C 674.661 108.207 667.752 106.322 667.752 91.2485
C 667.752 76.1746 669.008 76.1746 670.893 73.6622
C 672.777 71.1498 673.686 65.5218 676.199 59.869
C 678.711 54.2162 678.711 39.1423 688.133 36.63
C 697.555 34.1175 725.192 34.118 725.192 34.118
C 725.192 34.118 725.82 27.8368 761.622 26.5806
C 797.425 25.3244 1067.83 19.0673 1067.83 19.0673
C 1067.83 19.0673 1074.14 29.9454 1083.56 29.9454
C 1092.98 29.9454 1115.99 29.1177 1119.13 35.3985
C 1122.28 41.6792 1124.16 46.7039 1126.04 49.8443
C 1127.93 52.9847 1133.38 154.675 1133.38 154.675
C 1133.38 154.675 1137.57 312.97 1139.45 318.622
C 1141.33 324.275 1148.62 329.727 1145.48 337.892
C 1142.34 346.057 1147.42 370.341 1143.65 374.11
C 1139.88 377.878 1134.66 376.472 1134.66 380.241
C 1134.66 384.009 1141.36 497.998 1141.36 504.907
C 1141.36 511.816 1136.33 522.493 1133.82 528.146
C 1131.31 533.799 1109.07 605.888 1104.04 610.913
C 1099.02 615.937 1060.08 614.053 1060.08 614.053
C 1060.08 614.053 1012.08 521.235 1009.57 514.954
C 1007.06 508.674 1004.7 389.06 1004.7 389.06
C 1004.7 389.06 989.201 381.848 982.41 388.257
C 970.3 399.686 955.553 397.827 943.619 397.827
C 931.685 397.827 868.218 398.079 849.402 399.083
C 833.874 399.912 841.336 396.849 838.824 392.452
C 836.311 388.056 828.674 392.803 823.649 392.175
C 818.624 391.546 810.458 391.546 810.458 391.546
C 810.458 391.546 811.483 518.406 810.227 530.339
C 808.971 542.273 775.706 618.425 775.706 618.425
C 775.706 618.425 751.838 627.218 728.597 617.797
C 711.01 592.674 692.795 551.22 688.398 543.055
C 684.001 534.89 686.323 399.687 686.323 399.687
C 686.323 399.687 675.017 395.29 673.761 385.241
C 672.505 375.192 677.174 147.776 677.174 147.776
M 531.315 355.34
C 530.776 161.057 531.855 68.7727 528.078 61.2173
C 524.3 53.662 520.523 53.1223 516.206 42.3287
C 500.016 40.7097 482.208 37.4717 482.208 37.4717
C 482.208 37.4717 485.446 30.4559 425.546 28.8369
C 345.14 28.2973 219.403 27.2178 191.882 30.9957
C 164.36 34.7733 141.155 34.2336 135.759 34.2336
C 130.362 34.2336 114.713 49.3446 105.539 49.3446
C 96.3652 49.3446 85.5724 42.8684 83.9535 50.4239
C 82.3345 57.9793 75.8588 63.9157 76.3985 90.3598
C 76.9381 115.185 72.6205 185.882 72.6205 192.358
C 72.6205 198.834 68.3039 298.134 68.8434 302.991
C 69.3831 307.848 68.3039 354.26 68.3039 354.26
C 68.3039 354.26 64.5264 358.578 66.685 367.752
C 68.8434 376.926 72.6211 396.355 72.6211 396.355
L 75.3192 420.1
C 75.3192 420.1 74.24 549.083 74.24 554.479
C 74.24 559.876 102.301 617.081 107.158 626.256
C 112.015 635.43 112.015 642.446 117.951 642.446
C 123.887 642.446 150.329 644.605 154.646 640.827
C 167.058 606.828 192.421 542.067 197.278 533.432
C 202.135 524.797 205.912 524.797 207.531 514.004
C 209.15 503.21 208.61 410.386 208.61 410.386
C 208.61 410.386 226.418 408.228 231.815 409.307
C 237.211 410.386 241.529 413.624 244.227 415.783
C 246.925 417.942 272.288 411.466 272.288 411.466
C 272.288 411.466 333.807 410.386 341.362 410.926
C 348.917 411.466 373.74 410.386 380.756 408.228
C 387.771 406.069 392.628 408.767 391.549 413.624
C 390.469 418.481 390.469 433.592 389.39 443.846
C 388.31 454.1 384.533 497.813 382.914 504.829
C 381.295 511.845 381.835 524.797 378.058 524.797
C 374.28 524.797 362.408 512.924 368.344 524.257
C 374.28 535.591 386.692 534.511 389.93 553.4
C 393.167 572.289 419.07 624.637 421.229 629.494
C 423.387 634.351 425.006 634.891 442.814 634.351
C 460.623 633.811 469.257 635.43 472.495 632.732
C 475.732 630.034 509.73 556.098 514.047 555.019
C 518.364 553.94 523.761 557.717 523.221 550.702
C 522.681 543.686 526.998 407.688 526.998 407.688
C 526.998 407.688 535.093 408.767 535.093 403.91
C 535.093 399.053 531.315 355.34 531.315 355.34
M 1677.77 1374.44
C 1685.21 1455.55 1691.91 1530.7 1694.89 1542.61
C 1697.87 1554.51 1732.1 1612.55 1738.8 1626.69
C 1745.49 1640.83 1738.8 1643.06 1753.68 1644.55
C 1768.56 1646.03 1788.65 1647.52 1795.35 1639.34
C 1802.05 1631.15 1824.37 1553.77 1824.37 1544.84
C 1824.37 1535.91 1810.98 1373.69 1810.98 1373.69
C 1810.98 1373.69 1826.61 1365.51 1824.37 1329.05
C 1820.65 1280.68 1799.07 1058.94 1797.58 1037.36
C 1796.1 1015.78 1800.56 1006.85 1795.35 1001.65
C 1790.14 996.436 1787.91 991.228 1778.24 991.228
C 1768.56 991.228 1753.68 994.204 1744.75 991.228
C 1735.82 988.251 1722.42 980.066 1715.73 980.066
C 1709.03 980.066 1405.41 980.066 1391.27 980.066
C 1377.13 980.066 1368.94 989.74 1361.5 991.972
C 1354.06 994.204 1354.06 994.204 1348.11 994.204
C 1342.15 994.204 1330.99 992.716 1330.99 997.181
C 1330.99 1001.65 1326.53 1001.65 1319.08 1011.32
C 1311.64 1020.99 1309.41 1030.66 1309.41 1030.66
C 1309.41 1030.66 1301.22 1030.66 1309.41 1047.78
C 1315.36 1084.24 1325.04 1281.43 1325.04 1299.28
C 1325.04 1317.14 1325.04 1341.7 1325.04 1353.6
C 1325.04 1365.51 1325.04 1370.72 1325.04 1383.37
C 1325.04 1396.02 1332.48 1442.9 1332.48 1462.24
C 1332.48 1481.59 1332.48 1518.79 1334.71 1526.98
C 1336.94 1535.16 1347.36 1541.86 1351.08 1556.74
C 1354.8 1571.63 1389.78 1646.03 1393.5 1649.01
C 1397.22 1651.99 1435.17 1654.22 1435.17 1650.5
C 1435.17 1646.78 1473.13 1553.77 1473.87 1547.07
C 1474.62 1540.37 1471.64 1381.88 1471.64 1381.88
C 1471.64 1381.88 1488.75 1376.67 1490.99 1382.62
C 1493.22 1388.58 1492.48 1392.3 1499.92 1390.06
C 1507.36 1387.83 1607.08 1396.76 1623.45 1390.81
C 1639.82 1384.86 1650.98 1378.16 1658.42 1378.16
C 1665.87 1378.16 1677.77 1374.44 1677.77 1374.44
M 665.037 1383.6
C 665.037 1371.7 665.037 1347.14 665.037 1329.28
C 665.037 1311.43 666.722 1182.67 664.688 1088.54
C 656.503 1071.42 657.41 1059.66 657.41 1059.66
C 657.41 1059.66 659.642 1049.99 667.084 1040.32
C 667.807 1036.8 667.799 1027.76 673.398 1026.64
C 678.997 1025.52 698.501 1023.97 698.501 1023.97
C 705.943 1021.74 720.129 1011.92 734.268 1011.92
C 748.407 1011.92 1062.03 1008.07 1068.73 1008.07
C 1075.42 1008.07 1088.82 1016.25 1097.75 1019.23
C 1106.68 1022.2 1118.56 1023.23 1128.24 1023.23
C 1137.91 1023.23 1140.14 1028.44 1145.35 1033.65
C 1150.56 1038.85 1146.1 1047.78 1147.58 1069.36
C 1149.07 1090.94 1151.75 1304.93 1159.37 1363.05
C 1161.61 1399.51 1145.98 1407.69 1145.98 1407.69
C 1145.98 1407.69 1146.33 1570.81 1146.33 1579.74
C 1146.33 1588.67 1122.05 1662.15 1115.35 1670.34
C 1108.65 1678.52 1088.56 1677.03 1073.68 1675.55
C 1058.8 1674.06 1065.49 1671.83 1058.8 1657.69
C 1052.1 1643.55 1028.08 1585.01 1018.86 1563.32
C 1009.64 1541.63 1008.56 1397.91 1008.56 1397.91
C 1008.56 1397.91 991.202 1386.52 986.863 1397.37
C 982.524 1408.22 981.982 1411.47 978.185 1410.38
C 974.389 1409.3 971.135 1407.67 965.169 1407.67
C 959.203 1407.67 952.152 1408.22 952.152 1408.22
C 952.152 1408.22 955.948 1415.81 945.644 1419.6
C 935.339 1423.4 859.95 1423.4 850.188 1421.23
C 840.425 1419.06 837.713 1418.52 835.544 1409.3
C 833.374 1400.08 840.967 1396.83 833.374 1396.28
C 825.781 1395.74 826.866 1390.86 822.527 1396.83
C 818.188 1402.79 814.391 1393.03 815.476 1420.15
C 816.561 1447.26 816.019 1539.46 814.934 1544.88
C 813.849 1550.3 776.968 1667.45 767.748 1675.58
C 766.663 1686.97 716.224 1680.46 716.224 1680.46
C 716.224 1680.46 681.512 1595.32 678.258 1594.23
C 669.58 1590.44 669.038 1588.81 668.496 1578.51
C 667.953 1568.2 665.241 1545.42 665.241 1494.99
C 665.241 1444.55 665.037 1383.6 665.037 1383.6
M 500.664 1061.16
C 499.894 1198.39 498.352 1326.37 498.352 1326.37
C 498.352 1326.37 505.289 1330.99 505.289 1349.5
C 505.289 1368 503.748 1381.88 499.894 1394.21
C 496.039 1406.55 490.642 1398.84 490.642 1416.57
C 490.642 1434.3 489.102 1537.61 489.102 1537.61
C 489.102 1537.61 445.163 1650.17 440.538 1654.03
C 423.579 1657.88 395.828 1661.74 387.348 1657.88
C 375.015 1627.04 346.493 1546.09 344.951 1543.01
C 343.409 1539.92 352.66 1404.23 344.18 1402.69
C 335.701 1401.15 341.868 1398.84 334.93 1401.15
C 327.992 1403.46 328.763 1405.78 320.284 1405.78
C 311.804 1405.78 295.616 1406.55 295.616 1406.55
C 295.616 1406.55 297.929 1401.92 287.908 1401.92
C 277.887 1401.92 227.781 1403.46 222.385 1405.78
C 216.989 1408.09 218.531 1415.03 204.655 1411.94
C 190.78 1408.86 188.467 1409.63 183.071 1407.32
C 177.675 1405.01 179.217 1402.69 169.967 1402.69
C 160.716 1402.69 156.091 1401.92 156.091 1401.92
C 156.091 1401.92 154.55 1520.65 149.924 1537.61
C 145.299 1554.57 108.298 1648.63 105.215 1654.8
C 102.131 1660.97 99.0479 1667.13 99.0479 1667.13
L 53.5673 1663.28
C 53.5673 1663.28 15.7954 1577.7 15.0245 1574.62
C 14.2536 1571.53 10.3994 1566.91 10.3994 1558.43
C 10.3994 1549.95 12.7119 1401.15 12.7119 1401.15
C 12.7119 1401.15 5.00334 1378.02 5.00334 1364.14
C 5.00334 1350.27 8.08682 1224.6 8.08682 1224.6
L 16.5661 1063.47
C 16.5661 1063.47 13.4828 1055.76 13.4828 1051.9
C 13.4828 1048.05 17.3371 1041.88 17.3371 1031.09
C 17.3371 1020.3 20.4205 1011.81 36.6085 1009.5
C 52.0257 1009.5 52.0257 1014.13 65.9011 1007.19
C 79.7764 1000.25 95.1936 996.395 113.694 996.395
C 132.195 996.395 410.474 992.54 434.371 994.853
C 445.163 997.937 448.246 1003.33 456.725 1003.33
C 465.205 1003.33 479.851 1003.33 482.164 1009.5
C 484.476 1015.67 486.789 1020.3 495.268 1021.84
C 497.581 1029.55 500.664 1061.16 500.664 1061.16
"/>
</g>
</svg>
This would be easier than parsing the identify verbose command on the image.
So you could use a Python subprocess call to this imagemagick command or you could use Python Wand, which uses Imagemagick.
ADDITION
For a given image, in Python Wand
from wand.image import Image
with Image(filename='image_clip_path.jpg') as img:
img.options['format'] = '%[8BIM:1999,2998:#1]'
print(img.make_blob('INFO'))
Prints
b'<?xml version="1.0" encoding="iso-8859-1"?>\n<svg xmlns="http://www.w3.org/2000/svg" width="1830" height="1684">\n<g>\n<path fill-rule="evenodd" style="fill:#000000;stroke:#000000;stroke-width:0;stroke-antialiasing:false" d="\nM 1265.17 120.776\nC 1263.92 84.9753 1262.66 81.2068 1262.66 81.2068\nC 1262.66 81.2068 1255.75 79.3225 1255.75 64.2485\nC 1255.75 49.1744 1257.01 49.1744 1258.89 46.6622\nC 1260.78 44.1498 1267.69 43.5217 1270.2 37.8691\nC 1272.71 32.2163 1272.71 17.1422 1282.13 14.6299\nC 1291.55 12.1176 1319.19 12.1181 1319.19 12.1181\nC 1319.19 12.1181 1319.82 5.83676 1355.62 4.58058\nC 1391.42 3.32449 1665.91 4.58058 1665.91 4.58058\nC 1665.91 4.58058 1674.7 14.6299 1684.13 14.6299\nC 1693.55 14.6299 1707.99 12.1176 1711.13 18.3984\nC 1714.28 24.6793 1716.16 29.7039 1718.04 32.8443\nC 1719.93 35.9848 1734.38 176.675 1734.38 176.675\nC 1734.38 176.675 1747.57 312.97 1749.45 318.622\nC 1751.33 324.275 1754.47 330.556 1751.33 338.721\nC 1748.19 346.886 1752.59 352.539 1748.82 356.307\nC 1745.05 360.076 1740.66 364.472 1740.66 368.241\nC 1740.66 372.009 1756.36 496.998 1756.36 503.907\nC 1756.36 510.816 1751.33 521.493 1748.82 527.146\nC 1746.31 532.799 1723.07 601.888 1718.04 606.913\nC 1713.02 611.937 1674.08 610.053 1674.08 610.053\nC 1674.08 610.053 1625.08 518.353 1622.57 512.072\nC 1620.06 505.791 1611.89 379.546 1611.89 379.546\nC 1611.89 379.546 1589.28 378.918 1580.49 382.059\nC 1571.69 385.199 1568.55 385.827 1556.62 385.827\nC 1544.68 385.827 1481.25 387.083 1462.4 387.083\nC 1443.56 387.083 1443.56 391.48 1441.05 387.083\nC 1438.53 382.687 1441.67 380.803 1436.65 380.174\nC 1431.62 379.546 1423.46 379.546 1423.46 379.546\nC 1423.46 379.546 1431 494.486 1429.74 506.419\nC 1428.48 518.353 1397.71 609.425 1397.71 609.425\nC 1397.71 609.425 1373.84 618.218 1350.6 608.797\nC 1333.01 583.674 1314.79 542.22 1310.4 534.055\nC 1306 525.89 1295.32 382.687 1295.32 382.687\nC 1295.32 382.687 1284.02 378.29 1282.76 368.241\nC 1281.5 358.192 1265.17 120.776 1265.17 120.776\nM 677.174 147.776\nC 675.918 111.975 674.661 108.207 674.661 108.207\nC 674.661 108.207 667.752 106.322 667.752 91.2485\nC 667.752 76.1746 669.008 76.1746 670.893 73.6622\nC 672.777 71.1498 673.686 65.5218 676.199 59.869\nC 678.711 54.2162 678.711 39.1423 688.133 36.63\nC 697.555 34.1175 725.192 34.118 725.192 34.118\nC 725.192 34.118 725.82 27.8368 761.622 26.5806\nC 797.425 25.3244 1067.83 19.0673 1067.83 19.0673\nC 1067.83 19.0673 1074.14 29.9454 1083.56 29.9454\nC 1092.98 29.9454 1115.99 29.1177 1119.13 35.3985\nC 1122.28 41.6792 1124.16 46.7039 1126.04 49.8443\nC 1127.93 52.9847 1133.38 154.675 1133.38 154.675\nC 1133.38 154.675 1137.57 312.97 1139.45 318.622\nC 1141.33 324.275 1148.62 329.727 1145.48 337.892\nC 1142.34 346.057 1147.42 370.341 1143.65 374.11\nC 1139.88 377.878 1134.66 376.472 1134.66 380.241\nC 1134.66 384.009 1141.36 497.998 1141.36 504.907\nC 1141.36 511.816 1136.33 522.493 1133.82 528.146\nC 1131.31 533.799 1109.07 605.888 1104.04 610.913\nC 1099.02 615.937 1060.08 614.053 1060.08 614.053\nC 1060.08 614.053 1012.08 521.235 1009.57 514.954\nC 1007.06 508.674 1004.7 389.06 1004.7 389.06\nC 1004.7 389.06 989.201 381.848 982.41 388.257\nC 970.3 399.686 955.553 397.827 943.619 397.827\nC 931.685 397.827 868.218 398.079 849.402 399.083\nC 833.874 399.912 841.336 396.849 838.824 392.452\nC 836.311 388.056 828.674 392.803 823.649 392.175\nC 818.624 391.546 810.458 391.546 810.458 391.546\nC 810.458 391.546 811.483 518.406 810.227 530.339\nC 808.971 542.273 775.706 618.425 775.706 618.425\nC 775.706 618.425 751.838 627.218 728.597 617.797\nC 711.01 592.674 692.795 551.22 688.398 543.055\nC 684.001 534.89 686.323 399.687 686.323 399.687\nC 686.323 399.687 675.017 395.29 673.761 385.241\nC 672.505 375.192 677.174 147.776 677.174 147.776\nM 531.315 355.34\nC 530.776 161.057 531.855 68.7727 528.078 61.2173\nC 524.3 53.662 520.523 53.1223 516.206 42.3287\nC 500.016 40.7097 482.208 37.4717 482.208 37.4717\nC 482.208 37.4717 485.446 30.4559 425.546 28.8369\nC 345.14 28.2973 219.403 27.2178 191.882 30.9957\nC 164.36 34.7733 141.155 34.2336 135.759 34.2336\nC 130.362 34.2336 114.713 49.3446 105.539 49.3446\nC 96.3652 49.3446 85.5724 42.8684 83.9535 50.4239\nC 82.3345 57.9793 75.8588 63.9157 76.3985 90.3598\nC 76.9381 115.185 72.6205 185.882 72.6205 192.358\nC 72.6205 198.834 68.3039 298.134 68.8434 302.991\nC 69.3831 307.848 68.3039 354.26 68.3039 354.26\nC 68.3039 354.26 64.5264 358.578 66.685 367.752\nC 68.8434 376.926 72.6211 396.355 72.6211 396.355\nL 75.3192 420.1\nC 75.3192 420.1 74.24 549.083 74.24 554.479\nC 74.24 559.876 102.301 617.081 107.158 626.256\nC 112.015 635.43 112.015 642.446 117.951 642.446\nC 123.887 642.446 150.329 644.605 154.646 640.827\nC 167.058 606.828 192.421 542.067 197.278 533.432\nC 202.135 524.797 205.912 524.797 207.531 514.004\nC 209.15 503.21 208.61 410.386 208.61 410.386\nC 208.61 410.386 226.418 408.228 231.815 409.307\nC 237.211 410.386 241.529 413.624 244.227 415.783\nC 246.925 417.942 272.288 411.466 272.288 411.466\nC 272.288 411.466 333.807 410.386 341.362 410.926\nC 348.917 411.466 373.74 410.386 380.756 408.228\nC 387.771 406.069 392.628 408.767 391.549 413.624\nC 390.469 418.481 390.469 433.592 389.39 443.846\nC 388.31 454.1 384.533 497.813 382.914 504.829\nC 381.295 511.845 381.835 524.797 378.058 524.797\nC 374.28 524.797 362.408 512.924 368.344 524.257\nC 374.28 535.591 386.692 534.511 389.93 553.4\nC 393.167 572.289 419.07 624.637 421.229 629.494\nC 423.387 634.351 425.006 634.891 442.814 634.351\nC 460.623 633.811 469.257 635.43 472.495 632.732\nC 475.732 630.034 509.73 556.098 514.047 555.019\nC 518.364 553.94 523.761 557.717 523.221 550.702\nC 522.681 543.686 526.998 407.688 526.998 407.688\nC 526.998 407.688 535.093 408.767 535.093 403.91\nC 535.093 399.053 531.315 355.34 531.315 355.34\nM 1677.77 1374.44\nC 1685.21 1455.55 1691.91 1530.7 1694.89 1542.61\nC 1697.87 1554.51 1732.1 1612.55 1738.8 1626.69\nC 1745.49 1640.83 1738.8 1643.06 1753.68 1644.55\nC 1768.56 1646.03 1788.65 1647.52 1795.35 1639.34\nC 1802.05 1631.15 1824.37 1553.77 1824.37 1544.84\nC 1824.37 1535.91 1810.98 1373.69 1810.98 1373.69\nC 1810.98 1373.69 1826.61 1365.51 1824.37 1329.05\nC 1820.65 1280.68 1799.07 1058.94 1797.58 1037.36\nC 1796.1 1015.78 1800.56 1006.85 1795.35 1001.65\nC 1790.14 996.436 1787.91 991.228 1778.24 991.228\nC 1768.56 991.228 1753.68 994.204 1744.75 991.228\nC 1735.82 988.251 1722.42 980.066 1715.73 980.066\nC 1709.03 980.066 1405.41 980.066 1391.27 980.066\nC 1377.13 980.066 1368.94 989.74 1361.5 991.972\nC 1354.06 994.204 1354.06 994.204 1348.11 994.204\nC 1342.15 994.204 1330.99 992.716 1330.99 997.181\nC 1330.99 1001.65 1326.53 1001.65 1319.08 1011.32\nC 1311.64 1020.99 1309.41 1030.66 1309.41 1030.66\nC 1309.41 1030.66 1301.22 1030.66 1309.41 1047.78\nC 1315.36 1084.24 1325.04 1281.43 1325.04 1299.28\nC 1325.04 1317.14 1325.04 1341.7 1325.04 1353.6\nC 1325.04 1365.51 1325.04 1370.72 1325.04 1383.37\nC 1325.04 1396.02 1332.48 1442.9 1332.48 1462.24\nC 1332.48 1481.59 1332.48 1518.79 1334.71 1526.98\nC 1336.94 1535.16 1347.36 1541.86 1351.08 1556.74\nC 1354.8 1571.63 1389.78 1646.03 1393.5 1649.01\nC 1397.22 1651.99 1435.17 1654.22 1435.17 1650.5\nC 1435.17 1646.78 1473.13 1553.77 1473.87 1547.07\nC 1474.62 1540.37 1471.64 1381.88 1471.64 1381.88\nC 1471.64 1381.88 1488.75 1376.67 1490.99 1382.62\nC 1493.22 1388.58 1492.48 1392.3 1499.92 1390.06\nC 1507.36 1387.83 1607.08 1396.76 1623.45 1390.81\nC 1639.82 1384.86 1650.98 1378.16 1658.42 1378.16\nC 1665.87 1378.16 1677.77 1374.44 1677.77 1374.44\nM 665.037 1383.6\nC 665.037 1371.7 665.037 1347.14 665.037 1329.28\nC 665.037 1311.43 666.722 1182.67 664.688 1088.54\nC 656.503 1071.42 657.41 1059.66 657.41 1059.66\nC 657.41 1059.66 659.642 1049.99 667.084 1040.32\nC 667.807 1036.8 667.799 1027.76 673.398 1026.64\nC 678.997 1025.52 698.501 1023.97 698.501 1023.97\nC 705.943 1021.74 720.129 1011.92 734.268 1011.92\nC 748.407 1011.92 1062.03 1008.07 1068.73 1008.07\nC 1075.42 1008.07 1088.82 1016.25 1097.75 1019.23\nC 1106.68 1022.2 1118.56 1023.23 1128.24 1023.23\nC 1137.91 1023.23 1140.14 1028.44 1145.35 1033.65\nC 1150.56 1038.85 1146.1 1047.78 1147.58 1069.36\nC 1149.07 1090.94 1151.75 1304.93 1159.37 1363.05\nC 1161.61 1399.51 1145.98 1407.69 1145.98 1407.69\nC 1145.98 1407.69 1146.33 1570.81 1146.33 1579.74\nC 1146.33 1588.67 1122.05 1662.15 1115.35 1670.34\nC 1108.65 1678.52 1088.56 1677.03 1073.68 1675.55\nC 1058.8 1674.06 1065.49 1671.83 1058.8 1657.69\nC 1052.1 1643.55 1028.08 1585.01 1018.86 1563.32\nC 1009.64 1541.63 1008.56 1397.91 1008.56 1397.91\nC 1008.56 1397.91 991.202 1386.52 986.863 1397.37\nC 982.524 1408.22 981.982 1411.47 978.185 1410.38\nC 974.389 1409.3 971.135 1407.67 965.169 1407.67\nC 959.203 1407.67 952.152 1408.22 952.152 1408.22\nC 952.152 1408.22 955.948 1415.81 945.644 1419.6\nC 935.339 1423.4 859.95 1423.4 850.188 1421.23\nC 840.425 1419.06 837.713 1418.52 835.544 1409.3\nC 833.374 1400.08 840.967 1396.83 833.374 1396.28\nC 825.781 1395.74 826.866 1390.86 822.527 1396.83\nC 818.188 1402.79 814.391 1393.03 815.476 1420.15\nC 816.561 1447.26 816.019 1539.46 814.934 1544.88\nC 813.849 1550.3 776.968 1667.45 767.748 1675.58\nC 766.663 1686.97 716.224 1680.46 716.224 1680.46\nC 716.224 1680.46 681.512 1595.32 678.258 1594.23\nC 669.58 1590.44 669.038 1588.81 668.496 1578.51\nC 667.953 1568.2 665.241 1545.42 665.241 1494.99\nC 665.241 1444.55 665.037 1383.6 665.037 1383.6\nM 500.664 1061.16\nC 499.894 1198.39 498.352 1326.37 498.352 1326.37\nC 498.352 1326.37 505.289 1330.99 505.289 1349.5\nC 505.289 1368 503.748 1381.88 499.894 1394.21\nC 496.039 1406.55 490.642 1398.84 490.642 1416.57\nC 490.642 1434.3 489.102 1537.61 489.102 1537.61\nC 489.102 1537.61 445.163 1650.17 440.538 1654.03\nC 423.579 1657.88 395.828 1661.74 387.348 1657.88\nC 375.015 1627.04 346.493 1546.09 344.951 1543.01\nC 343.409 1539.92 352.66 1404.23 344.18 1402.69\nC 335.701 1401.15 341.868 1398.84 334.93 1401.15\nC 327.992 1403.46 328.763 1405.78 320.284 1405.78\nC 311.804 1405.78 295.616 1406.55 295.616 1406.55\nC 295.616 1406.55 297.929 1401.92 287.908 1401.92\nC 277.887 1401.92 227.781 1403.46 222.385 1405.78\nC 216.989 1408.09 218.531 1415.03 204.655 1411.94\nC 190.78 1408.86 188.467 1409.63 183.071 1407.32\nC 177.675 1405.01 179.217 1402.69 169.967 1402.69\nC 160.716 1402.69 156.091 1401.92 156.091 1401.92\nC 156.091 1401.92 154.55 1520.65 149.924 1537.61\nC 145.299 1554.57 108.298 1648.63 105.215 1654.8\nC 102.131 1660.97 99.0479 1667.13 99.0479 1667.13\nL 53.5673 1663.28\nC 53.5673 1663.28 15.7954 1577.7 15.0245 1574.62\nC 14.2536 1571.53 10.3994 1566.91 10.3994 1558.43\nC 10.3994 1549.95 12.7119 1401.15 12.7119 1401.15\nC 12.7119 1401.15 5.00334 1378.02 5.00334 1364.14\nC 5.00334 1350.27 8.08682 1224.6 8.08682 1224.6\nL 16.5661 1063.47\nC 16.5661 1063.47 13.4828 1055.76 13.4828 1051.9\nC 13.4828 1048.05 17.3371 1041.88 17.3371 1031.09\nC 17.3371 1020.3 20.4205 1011.81 36.6085 1009.5\nC 52.0257 1009.5 52.0257 1014.13 65.9011 1007.19\nC 79.7764 1000.25 95.1936 996.395 113.694 996.395\nC 132.195 996.395 410.474 992.54 434.371 994.853\nC 445.163 997.937 448.246 1003.33 456.725 1003.33\nC 465.205 1003.33 479.851 1003.33 482.164 1009.5\nC 484.476 1015.67 486.789 1020.3 495.268 1021.84\nC 497.581 1029.55 500.664 1061.16 500.664 1061.16\n"/>\n</g>\n</svg>\n'
Upvotes: 2