summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2023-02-15 09:32:18 -0600
committerMarge Bot <marge-bot@gnome.org>2023-02-15 16:11:43 +0000
commitb86eae5ecd6ea8d0c16c5f77607574505d8bb1c6 (patch)
treef3eb82229e5fd6c1428e62ab6eae8fc682ff42bf
parent27b22e5246f0188bb55caca2fabd2e7b680277dd (diff)
downloadlibrsvg-b86eae5ecd6ea8d0c16c5f77607574505d8bb1c6.tar.gz
benchmarks/hicolor-apps: Add a bunch of application icons
This will be the basis for one of rsvg-bench's measurements. The idea is to have an idea of how much it would take for gnome-shell to render the "Applications" pane with all the icons, and to optimize based on that. Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/797>
-rw-r--r--benchmarks/hicolor-apps/app.drey.Blurble.svg14
-rw-r--r--benchmarks/hicolor-apps/app.drey.Warp.svg48
-rw-r--r--benchmarks/hicolor-apps/ca.desrt.dconf-editor.svg48
-rw-r--r--benchmarks/hicolor-apps/com.adrienplazas.Metronome.svg44
-rw-r--r--benchmarks/hicolor-apps/com.belmoussaoui.Decoder.svg108
-rw-r--r--benchmarks/hicolor-apps/com.belmoussaoui.Obfuscate.svg1
-rw-r--r--benchmarks/hicolor-apps/com.feaneron.Boatswain.svg104
-rw-r--r--benchmarks/hicolor-apps/de.haeckerfelix.Fragments.svg61
-rw-r--r--benchmarks/hicolor-apps/de.haeckerfelix.Shortwave.svg830
-rw-r--r--benchmarks/hicolor-apps/dev.Cogitri.Health.svg19
-rw-r--r--benchmarks/hicolor-apps/evolution.svg1
-rw-r--r--benchmarks/hicolor-apps/gnome-planner.svg256
-rw-r--r--benchmarks/hicolor-apps/io.bassi.Amberol.svg22
-rw-r--r--benchmarks/hicolor-apps/libreoffice-base.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-basic.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-calc.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-chart.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-draw.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-impress.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-main.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-math.svg1
-rw-r--r--benchmarks/hicolor-apps/libreoffice-writer.svg1
-rw-r--r--benchmarks/hicolor-apps/nl.hjdskes.gcolor3.svg1
-rw-r--r--benchmarks/hicolor-apps/orca.svg1025
-rw-r--r--benchmarks/hicolor-apps/org.gabmus.gfeeds.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Boxes.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Calculator.svg31
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Characters.svg259
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Cheese.svg47
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Chess.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Contacts.svg223
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Crosswords.Editor.svg298
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Crosswords.svg45
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Dictionary.svg171
-rw-r--r--benchmarks/hicolor-apps/org.gnome.DiskUtility.svg444
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Evince.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Extensions.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.FileRoller.svg299
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Firmware.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.LightsOff.svg504
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Logs.svg496
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Lollypop.svg486
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Mahjongg.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Maps.svg202
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Mines.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Music.svg36
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Nautilus.svg253
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Notes.svg358
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Photos.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Podcasts.svg576
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Polari.svg46
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Quadrapassel.svg42
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Reversi.svg50
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Screenshot.svg278
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Settings.svg45
-rw-r--r--benchmarks/hicolor-apps/org.gnome.SimpleScan.svg313
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Social.svg47
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Software.svg24
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Solanum.svg63
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Sudoku.svg32
-rw-r--r--benchmarks/hicolor-apps/org.gnome.SystemMonitor.svg290
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Terminal.svg241
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Todo.svg23
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Totem.svg59
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Weather.svg1
-rw-r--r--benchmarks/hicolor-apps/org.gnome.World.Citations.svg110
-rw-r--r--benchmarks/hicolor-apps/org.gnome.World.PikaBackup.svg34
-rw-r--r--benchmarks/hicolor-apps/org.gnome.World.Secrets.svg60
-rw-r--r--benchmarks/hicolor-apps/org.gnome.Yelp.svg32
-rw-r--r--benchmarks/hicolor-apps/org.gnome.baobab.svg163
-rw-r--r--benchmarks/hicolor-apps/org.gnome.clocks.svg170
-rw-r--r--benchmarks/hicolor-apps/org.gnome.eog.svg75
-rw-r--r--benchmarks/hicolor-apps/org.gnome.gedit.svg376
-rw-r--r--benchmarks/hicolor-apps/org.gnome.gitlab.somas.Apostrophe.svg379
-rw-r--r--benchmarks/hicolor-apps/org.gnome.seahorse.Application.svg327
-rw-r--r--benchmarks/hicolor-apps/org.gnome.tweaks.svg249
-rw-r--r--benchmarks/hicolor-apps/tootle.svg233
77 files changed, 11090 insertions, 0 deletions
diff --git a/benchmarks/hicolor-apps/app.drey.Blurble.svg b/benchmarks/hicolor-apps/app.drey.Blurble.svg
new file mode 100644
index 00000000..51dc5bf6
--- /dev/null
+++ b/benchmarks/hicolor-apps/app.drey.Blurble.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="12.00002" x2="116.000023" y1="65.999893" y2="65.999893">
+ <stop offset="0" stop-color="#26a269"/>
+ <stop offset="0.05" stop-color="#30ca85"/>
+ <stop offset="0.1" stop-color="#26a16a"/>
+ <stop offset="0.9" stop-color="#26a16a"/>
+ <stop offset="0.95" stop-color="#30ca85"/>
+ <stop offset="1" stop-color="#26a269"/>
+ </linearGradient>
+ <path d="m 20 16 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 8 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#33d17a"/>
+ <path d="m 40 89.308594 h 23.367188 c 15.160156 0 24.632812 -7.488282 24.632812 -19.308594 c 0 -10.828125 -7.941406 -17.683594 -20.84375 -17.683594 h -19.847656 v 9.113282 h 17.773437 c 6.675781 0 10.917969 3.96875 10.917969 10.105468 c 0 5.773438 -3.519531 8.390625 -11.097656 8.390625 h -13.445313 v -43.761719 h 8.394531 c 7.304688 0 11.367188 2.980469 11.367188 8.390626 c 0 4.421874 -2.886719 7.492187 -9.566406 9.746093 l 11.460937 1.261719 c 5.953125 -1.984375 9.835938 -7.578125 9.835938 -13.984375 c 0 -9.5625 -7.851563 -14.886719 -22.199219 -14.886719 h -20.75 z m 0 0" fill="#ffffff"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/app.drey.Warp.svg b/benchmarks/hicolor-apps/app.drey.Warp.svg
new file mode 100644
index 00000000..3d095907
--- /dev/null
+++ b/benchmarks/hicolor-apps/app.drey.Warp.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <clipPath id="a">
+ <path d="m 4 4 h 120 v 120 h -120 z m 0 0"/>
+ </clipPath>
+ <clipPath id="b">
+ <path d="m 124 64 c 0 33.136719 -26.863281 60 -60 60 s -60 -26.863281 -60 -60 s 26.863281 -60 60 -60 s 60 26.863281 60 60 z m 0 0"/>
+ </clipPath>
+ <radialGradient id="c" cx="67.395325" cy="78.078407" gradientTransform="matrix(0.993465 0.114141 -0.0696102 0.605876 5.875507 23.079985)" gradientUnits="userSpaceOnUse" r="66.149475">
+ <stop offset="0" stop-color="#0092dc"/>
+ <stop offset="1" stop-color="#7300ee"/>
+ </radialGradient>
+ <linearGradient id="d" gradientUnits="userSpaceOnUse" x1="96.999573" x2="10.99957" y1="102" y2="48">
+ <stop offset="0" stop-color="#0000dc"/>
+ <stop offset="1" stop-color="#b700d8"/>
+ </linearGradient>
+ <linearGradient id="e" gradientUnits="userSpaceOnUse" x1="383.593933" x2="-30.721367" y1="564.136047" y2="226.685226">
+ <stop offset="0" stop-color="#2a00d7"/>
+ <stop offset="1" stop-color="#a500a6"/>
+ </linearGradient>
+ <linearGradient id="f" gradientUnits="userSpaceOnUse" x1="68" x2="116" y1="26" y2="42">
+ <stop offset="0" stop-color="#0011d5"/>
+ <stop offset="1" stop-color="#5a00c4"/>
+ </linearGradient>
+ <linearGradient id="g" gradientUnits="userSpaceOnUse" x1="-32.208172" x2="290.452393" y1="409.031586" y2="376.746399">
+ <stop offset="0" stop-color="#003ba2"/>
+ <stop offset="0.303471" stop-color="#0d00ad"/>
+ <stop offset="1" stop-color="#b1006f"/>
+ </linearGradient>
+ <linearGradient id="h" gradientUnits="userSpaceOnUse" x1="83.499115" x2="298.114777" y1="259.5914" y2="469.097168">
+ <stop offset="0" stop-color="#002fe8"/>
+ <stop offset="0.589744" stop-color="#982ae9"/>
+ <stop offset="1" stop-color="#c500ee"/>
+ </linearGradient>
+ <g clip-path="url(#a)">
+ <g clip-path="url(#b)">
+ <path d="m 4 4 h 120 v 120 h -120 z m 0 0" fill="#5c009d"/>
+ <g fill="none">
+ <path d="m 78.001675 59.999695 c -0.003906 0 -0.003906 0 -0.003906 0 c -0.019532 -0.015625 0.007812 -0.046875 0.019531 -0.054688 c 0.101562 -0.066406 0.21875 0.0625 0.253906 0.144532 c 0.144531 0.363281 -0.25 0.6875 -0.558594 0.765625 c -0.941406 0.230468 -1.675781 -0.734375 -1.796875 -1.558594 c -0.296875 -2.027344 1.730469 -3.480469 3.542969 -3.617188 c 3.847656 -0.292968 6.464844 3.53125 6.546875 7.027344 c 0.15625 6.675781 -6.484375 11.058594 -12.621094 10.949219 c -10.832031 -0.191406 -17.765625 -10.992188 -17.261718 -21.046875 c 0.835937 -16.679688 17.546875 -27.148438 33.144531 -25.953125 c 24.617187 1.886719 39.835937 26.671875 37.550781 49.839844 c -3.460937 35.097656 -38.972656 56.539062 -72.179687 52.644531 c -25.949219 -3.039063 -48.613282 -19.769531 -61.152344 -42.40625" stroke="url(#c)" stroke-width="13" transform="matrix(1 0 0 1 -2.845425 -6.999695)"/>
+ <path d="m 69.99957 76 s 0 0 0 -0.003906 c 0.003906 -0.015625 0.03125 -0.007813 0.039062 -0.003906 c 0.078125 0.039062 0.039063 0.160156 0 0.210937 c -0.179687 0.214844 -0.519531 0.082031 -0.675781 -0.085937 c -0.476562 -0.507813 -0.128906 -1.308594 0.347656 -1.671876 c 1.167969 -0.898437 2.792969 -0.136718 3.515625 0.953126 c 1.53125 2.3125 0.050782 5.300781 -2.113281 6.578124 c -4.136719 2.441407 -9.222656 -0.1875 -11.308594 -4.078124 c -3.683593 -6.871094 0.667969 -15.015626 7.15625 -18.226563 c 10.765625 -5.332031 23.203125 1.484375 27.929688 11.695313 c 7.457031 16.117187 -2.757813 34.375 -18.105469 41.074218 c -23.253906 10.148438 -49.183594 -4.621094 -58.394531 -26.835937 c -13.488281 -32.523438 7.210937 -68.335938 38.378906 -80.691407 c 4.023438 -1.597656 8.1875 -2.832031 12.429688 -3.703124" stroke="url(#d)" stroke-width="13.6" transform="matrix(1 0 0 1 -2.99957 -6)"/>
+ <path d="m 155.433617 351.92847 c -0.018391 0 0 -0.017345 0 -0.017345 c 0.018391 -0.017344 0.055173 0 0.073564 0.017345 c 0.073565 0.069377 0 0.190787 -0.073564 0.24282 c -0.202302 0.138754 -0.478169 -0.017344 -0.588516 -0.208132 c -0.275867 -0.48564 0.073564 -1.040658 0.514951 -1.266134 c 0.937948 -0.468297 2.004633 0.225476 2.372456 1.110035 c 0.735645 1.682398 -0.514952 3.503551 -2.096589 4.110601 c -2.813842 1.075347 -5.738031 -0.988625 -6.657588 -3.642304 c -1.544854 -4.440143 1.728766 -8.914974 5.921943 -10.250486 c 6.657588 -2.116006 13.278394 2.792433 15.135898 9.105761 c 2.850625 9.66078 -4.285133 19.113427 -13.480696 21.628352 c -13.554261 3.711682 -26.685526 -6.313328 -30.01432 -19.269526 c -4.763302 -18.541065 8.993261 -36.336324 26.777481 -40.637713 c 24.809631 -6.018474 48.423838 12.435869 53.904394 36.266948 c 7.466798 32.555265 -16.791099 63.341411 -48.147971 70.192413 c -42.005334 9.175139 -81.491084 -22.18337 -89.951003 -62.699672 c -11.126632 -53.385779 28.800505 -103.320041 80.406008 -113.657249 c 66.925312 -13.372461 129.289624 36.787277 141.758808 101.620299 c 15.945107 82.923135 -46.327249 159.931861 -126.78843 174.830622 c -101.666151 18.853262 -195.755158 -57.635135 -213.447422 -156.410967 c -22.106135 -123.439438 70.916186 -237.339507 190.991855 -258.152676 c 148.545134 -25.756297 285.283165 86.374652 309.614626 231.043523 c 29.812017 177.345546 -104.240909 340.208596 -277.135895 368.445128 c -12.708269 2.081317 -25.526885 3.451518 -38.382282 4.14529" stroke="url(#e)" stroke-width="60.636501" transform="matrix(0.212399 0 0 0.225218 32.525177 -15.053589)"/>
+ <path d="m 72.125 79.65625 h 0.011719 c 0.066406 0.015625 0.035156 0.132812 0.015625 0.164062 c -0.175782 0.324219 -0.675782 0.148438 -0.882813 -0.027343 c -0.925781 -0.785157 -0.308593 -2.246094 0.425781 -2.90625 c 2.285157 -2.042969 5.757813 -0.421875 7.3125 1.699219 c 3.890626 5.289062 0.292969 12.449218 -4.625 15.554687 c -10.585937 6.683594 -23.890624 -0.367187 -29.417968 -10.246094 c -10.695313 -19.125 1.925781 -41.992187 19.859375 -51.074219 c 21.085937 -10.671874 46.765625 -4.90625 64.226562 10.03125" stroke="url(#f)" stroke-width="12" transform="matrix(1 0 0 1 -8 -12)"/>
+ <path d="m 155.426501 351.927152 v -0.012612 c 0.012603 -0.025222 0.063019 -0.012611 0.075623 0.012612 c 0.075624 0.075668 0 0.189171 -0.06302 0.239617 c -0.201662 0.151336 -0.478949 -0.012612 -0.592384 -0.201783 c -0.28989 -0.479233 0.075623 -1.046747 0.516761 -1.273752 c 0.945294 -0.466622 1.99142 0.239617 2.369538 1.109804 c 0.743632 1.689928 -0.504157 3.505971 -2.092252 4.111318 c -2.810676 1.084581 -5.734787 -0.98369 -6.654874 -3.632085 c -1.550283 -4.439214 1.714135 -8.928875 5.911243 -10.253072 c 6.667477 -2.131328 13.284539 2.78712 15.137317 9.105434 c 2.848487 9.660337 -4.285336 19.118891 -13.473599 21.62856 c -13.561826 3.720365 -26.695119 -6.318314 -30.022556 -19.270227 c -4.75168 -18.551377 8.999205 -36.34607 26.770743 -40.646559 c 24.817133 -6.003029 48.436894 12.434845 53.906998 36.283013 c 7.47413 32.550037 -16.775827 63.334477 -48.134399 70.18247 c -42.008891 9.181103 -81.496997 -22.17085 -89.954232 -62.703907 c -11.141872 -53.371467 28.78737 -103.325243 80.400454 -113.641373 c 66.926856 -13.393312 129.291091 36.774858 141.756375 101.597481 c 15.956573 82.945213 -46.332038 159.937842 -126.782909 174.857135 c -101.675884 18.841439 -195.764204 -57.659345 -213.447515 -156.41926 c -5.58354 -31.13756 -3.856802 -63.422758 4.625642 -93.879301" stroke="url(#g)" stroke-width="42.803799" transform="matrix(0.309923 0 0 0.309739 15.98206 -44.69323)"/>
+ <path d="m 155.426895 351.928822 s 0 -0.00998 0 -0.01996 c 0.01996 -0.019961 0.059881 0 0.069862 0.00998 c 0.079842 0.079842 0.00998 0.199605 -0.059882 0.239527 c -0.199605 0.159684 -0.479053 -0.009981 -0.598816 -0.199606 c -0.279447 -0.479053 0.089823 -1.047928 0.518974 -1.267494 c 0.948125 -0.469072 2.006034 0.239527 2.385284 1.10781 c 0.728559 1.696645 -0.518974 3.503074 -2.095856 4.11187 c -2.824416 1.087849 -5.738654 -0.988047 -6.656838 -3.632817 c -1.546941 -4.441219 1.716606 -8.922359 5.898337 -10.249734 c 6.666819 -2.125797 13.293716 2.784494 15.150045 9.111983 c 2.844376 9.650918 -4.291514 19.102231 -13.48334 21.627238 c -13.553202 3.712659 -26.687233 -6.317509 -30.010662 -19.271895 c -4.760587 -18.553316 8.99222 -36.348131 26.767075 -40.649626 c 24.820924 -6.00812 48.434235 12.435412 53.903421 36.278269 c 7.475219 32.55563 -16.776829 63.344753 -48.134827 70.191216 c -41.996962 9.171865 -81.488877 -22.176153 -89.952143 -62.715996 c -11.137978 -53.374466 28.793069 -103.31572 80.401028 -113.635316 c 66.927669 -13.393518 129.294355 36.777282 141.759708 101.599115 c 15.948466 82.936016 -46.338378 159.933773 -126.789308 174.854272 c -71.049518 13.163972 -143.426412 -21.088304 -183.058051 -80.530772" stroke="url(#h)" stroke-linecap="round" stroke-width="33.883499" transform="matrix(0.391397 0 0 0.391397 3.318668 -73.603386)"/>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/ca.desrt.dconf-editor.svg b/benchmarks/hicolor-apps/ca.desrt.dconf-editor.svg
new file mode 100644
index 00000000..520ba590
--- /dev/null
+++ b/benchmarks/hicolor-apps/ca.desrt.dconf-editor.svg
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8" x2="112" y1="63.999954" y2="63.999954">
+ <stop offset="0" stop-color="#babdb6"/>
+ <stop offset="0.0416667" stop-color="#f6f5f4"/>
+ <stop offset="0.0833333" stop-color="#d5d3cf"/>
+ <stop offset="0.916667" stop-color="#deddda"/>
+ <stop offset="0.958333" stop-color="#f6f5f4"/>
+ <stop offset="1" stop-color="#babdb6"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(-1 0 0 1 120 -172)" gradientUnits="userSpaceOnUse" x1="8" x2="112" y1="207" y2="207">
+ <stop offset="0" stop-color="#9b9a95"/>
+ <stop offset="1" stop-color="#d1d0cc"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="67.334961" x2="67.334961" y1="49.515625" y2="12">
+ <stop offset="0" stop-color="#deddda"/>
+ <stop offset="1" stop-color="#e7e7e5"/>
+ </linearGradient>
+ <clipPath id="d">
+ <path d="m 72 75 h 24 v 22 h -24 z m 0 0"/>
+ </clipPath>
+ <clipPath id="e">
+ <path d="m 84.4375 74.242188 h -17.851562 c -6.335938 0 -11.476563 4.886718 -11.476563 10.914062 s 5.140625 10.914062 11.476563 10.914062 h 17.851562 c 6.335938 0 11.472656 -4.886718 11.472656 -10.914062 s -5.136718 -10.914062 -11.472656 -10.914062 z m 0 0"/>
+ </clipPath>
+ <path d="m 16 32 h 88 c 4.417969 0 8 3.582031 8 8 v 68 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -68 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 16 12 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 104 14 c 4.433594 0 8 3.566406 8 8 v 34 h -104 v -34 c 0 -4.433594 3.566406 -8 8 -8 z m 0 0" fill="url(#b)"/>
+ <path d="m 16 12 c -4.433594 0 -8 3.566406 -8 8 v 34 h 104 v -34 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0" fill="url(#c)"/>
+ <path d="m 84.597656 73.347656 h -17.109375 c -6.296875 0 -11.402343 5.070313 -11.402343 11.324219 s 5.105468 11.320313 11.402343 11.320313 h 17.109375 c 6.296875 0 11.402344 -5.066407 11.402344 -11.320313 s -5.105469 -11.324219 -11.402344 -11.324219 z m 0 0" fill="#3584e4"/>
+ <path d="m 84.773438 71.96875 c 6.21875 0 11.226562 5.058594 11.226562 11.4375 c 0 0.21875 -0.019531 0.503906 -0.03125 0.714844 c -0.324219 -6.078125 -5.1875 -10.207032 -11.195312 -10.207032 h -17.460938 c -6.007812 0 -10.871094 4.128907 -11.195312 10.207032 c -0.011719 -0.210938 -0.03125 -0.496094 -0.03125 -0.714844 c 0 -6.378906 5.007812 -11.4375 11.226562 -11.4375 z m 0 0" fill="#1a5fb4"/>
+ <g clip-path="url(#d)">
+ <g clip-path="url(#e)">
+ <path d="m 72.960938 86.371094 c 0 6.027344 5.136718 10.914062 11.476562 10.914062 c 6.335938 0 11.472656 -4.886718 11.472656 -10.914062 c 0 -6.03125 -5.136718 -10.914063 -11.472656 -10.914063 c -6.339844 0 -11.476562 4.882813 -11.476562 10.914063 z m 0 0" fill="#deddda"/>
+ </g>
+ </g>
+ <path d="m 95.878906 82.304688 h -22.890625 v 3.839843 h 22.890625 z m 0 0" fill="#deddda"/>
+ <path d="m 72.988281 82.304688 c 0 6.359374 5.125 11.515624 11.445313 11.515624 c 6.324218 0 11.445312 -5.15625 11.445312 -11.515624 c 0 -6.359376 -5.121094 -11.515626 -11.445312 -11.515626 c -6.320313 0 -11.445313 5.15625 -11.445313 11.515626 z m 0 0" fill="#ffffff"/>
+ <g fill-opacity="0.996078">
+ <path d="m 24.75 72 h 22.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 6.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -22.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -6.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0" fill="#deddda"/>
+ <path d="m 40 28 h 8 v 8 h -8 z m 0 0" fill="#77767b"/>
+ <path d="m 24.75 88 h 14.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 6.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -14.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -6.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0" fill="#deddda"/>
+ <path d="m 68 28 h 28 v 8 h -28 z m 0 0" fill="#77767b"/>
+ </g>
+ <path d="m 60.117188 20 h 3.882812 l -8 24 h -3.882812 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 68 40 h 28 v 4 h -28 z m 0 0" fill="#3584e4"/>
+ <path d="m 16 12 c -4.433594 0 -8 3.566406 -8 8 v 2 c 0 -4.433594 3.566406 -8 8 -8 h 88 c 4.433594 0 8 3.566406 8 8 v -2 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0" fill="#edebe9"/>
+ <path d="m 32.109375 20 h 3.78125 l -8 24 h -3.78125 z m 0 0" fill="#c0bfbc"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/com.adrienplazas.Metronome.svg b/benchmarks/hicolor-apps/com.adrienplazas.Metronome.svg
new file mode 100644
index 00000000..bbc38c83
--- /dev/null
+++ b/benchmarks/hicolor-apps/com.adrienplazas.Metronome.svg
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
+<defs>
+<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="28" y1="242" x2="100" y2="242" gradientTransform="matrix(1,0,0,1,0.0021,-168)">
+<stop offset="0" style="stop-color:rgb(64.705884%,11.372549%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.05" style="stop-color:rgb(93.725491%,29.019609%,31.764707%);stop-opacity:1;"/>
+<stop offset="0.115625" style="stop-color:rgb(64.705884%,11.372549%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.9" style="stop-color:rgb(64.705884%,11.372549%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.95" style="stop-color:rgb(93.725491%,29.019609%,31.764707%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(64.705884%,11.372549%,17.647059%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="64" y1="314" x2="64" y2="318" gradientTransform="matrix(1,0,0,1,0,20)">
+<stop offset="0" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(53.725493%,52.941179%,55.29412%);stop-opacity:1;"/>
+</linearGradient>
+<radialGradient id="radial0" gradientUnits="userSpaceOnUse" cx="62.558327" cy="256.288513" fx="62.558327" fy="256.288513" r="8" gradientTransform="matrix(0.986175,0,0,0.986175,36.306534,-219.745247)">
+<stop offset="0" style="stop-color:rgb(96.470588%,96.078432%,95.686275%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(70.980394%,70.588237%,69.01961%);stop-opacity:1;"/>
+</radialGradient>
+</defs>
+<g id="surface68242">
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 42.003906 72 C 40.128906 72 38.503906 73.300781 38.097656 75.132812 L 26.097656 105.132812 C 26.03125 105.425781 26.007812 105.714844 26.007812 106 L 25.996094 106 L 25.996094 112 C 25.996094 116.433594 29.566406 120 33.996094 120 L 93.996094 120 C 98.429688 120 102.726562 116.371094 101.996094 112 L 101.996094 106 L 101.988281 106 C 101.988281 105.714844 101.960938 105.425781 101.898438 105.132812 L 89.898438 75.132812 C 89.496094 73.300781 87.871094 72 85.996094 72 Z M 42.003906 72 "/>
+<path style="fill-rule:nonzero;fill:rgb(59.607846%,41.568628%,26.666668%);fill-opacity:1;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(92.941177%,20%,23.137255%);stroke-opacity:1;stroke-miterlimit:4;" d="M 30.003906 278 L 51.003906 180 L 77.003906 180 L 98.003906 278 " transform="matrix(1,0,0,1,0,-172)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 30.003906 106 L 51.003906 8 L 77.003906 8 L 98.003906 106 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 26 L 67 26 L 67 28 L 61 28 Z M 61 26 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 30 L 67 30 L 67 32 L 61 32 Z M 61 30 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 40 L 67 40 L 67 42 L 61 42 Z M 61 40 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 44 L 67 44 L 67 46 L 61 46 Z M 61 44 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 48 L 67 48 L 67 50 L 61 50 Z M 61 48 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 58 L 67 58 L 67 60 L 61 60 Z M 61 58 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 62 L 67 62 L 67 64 L 61 64 Z M 61 62 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 66 L 67 66 L 67 68 L 61 68 Z M 61 66 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 70 L 67 70 L 67 72 L 61 72 Z M 61 70 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 80 L 67 80 L 67 82 L 61 82 Z M 61 80 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 61 84 L 67 84 L 67 86 L 61 86 Z M 61 84 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 58 20 L 70 20 L 70 23 L 58 23 Z M 58 20 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 58 34 L 70 34 L 70 37 L 58 37 Z M 58 34 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 58 52 L 70 52 L 70 55 L 58 55 Z M 58 52 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 58 74 L 70 74 L 70 77 L 58 77 Z M 58 74 "/>
+<path style="fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke:url(#linear1);stroke-miterlimit:4;" d="M 32.000009 336.000012 L 111.999332 336.000403 " transform="matrix(0.5,-0.866025,0.866025,0.5,-238.984551,-49.287185)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial0);" d="M 106.242188 36.023438 C 106.242188 39.613281 103.332031 42.523438 99.742188 42.523438 C 96.152344 42.523438 93.242188 39.613281 93.242188 36.023438 C 93.242188 32.433594 96.152344 29.523438 99.742188 29.523438 C 103.332031 29.523438 106.242188 32.433594 106.242188 36.023438 Z M 106.242188 36.023438 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(92.941177%,20%,23.137255%);fill-opacity:1;" d="M 29.765625 88 L 26.089844 105.164062 C 25.949219 105.8125 25.976562 106.488281 26.164062 107.125 L 26 108 C 26 112.433594 29.566406 116 34 116 L 94 116 C 98.429688 116 101.722656 112.421875 102 108 L 101.835938 107.140625 C 102.027344 106.5 102.054688 105.816406 101.914062 105.164062 L 98.238281 88 Z M 29.765625 88 "/>
+</g>
+</svg>
diff --git a/benchmarks/hicolor-apps/com.belmoussaoui.Decoder.svg b/benchmarks/hicolor-apps/com.belmoussaoui.Decoder.svg
new file mode 100644
index 00000000..876432a5
--- /dev/null
+++ b/benchmarks/hicolor-apps/com.belmoussaoui.Decoder.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(0.232143 0 0 0.328947 -8.56691 263.826965)" gradientUnits="userSpaceOnUse" x1="88.595886" x2="536.595886" y1="-449.394012" y2="-449.394012">
+ <stop offset="0" stop-color="#c0bfbc"/>
+ <stop offset="0.0384615" stop-color="#deddda"/>
+ <stop offset="0.0768555" stop-color="#c0bfbc"/>
+ <stop offset="0.923077" stop-color="#c0bfbc"/>
+ <stop offset="0.961538" stop-color="#deddda"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <clipPath id="b">
+ <path d="m 12 3.007812 h 103.980469 v 124.992188 h -103.980469 z m 0 0"/>
+ </clipPath>
+ <filter id="c" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="d">
+ <g filter="url(#c)">
+ <rect fill-opacity="0.5" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="e">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <mask id="f">
+ <g filter="url(#c)">
+ <rect fill-opacity="0.8" height="128" width="128"/>
+ </g>
+ </mask>
+ <linearGradient id="g" gradientTransform="matrix(0 -0.689655 1.529413 0 442.118011 48.965483)" gradientUnits="userSpaceOnUse" x1="-65.300034" x2="-21.800039" y1="-242.000031" y2="-242.000031">
+ <stop offset="0" stop-color="#ed333b" stop-opacity="0.9"/>
+ <stop offset="1" stop-color="#ed333b" stop-opacity="0"/>
+ </linearGradient>
+ <clipPath id="h">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 20 16 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 20 20 h 88 v 84 h -88 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 20 72 h 32 v 32 h -32 z m 0 0" fill="#3d3846"/>
+ <path d="m 20 20 h 32 v 32 h -32 z m 0 0" fill="#3d3846"/>
+ <path d="m 76 20 h 32 v 32 h -32 z m 0 0" fill="#3d3846"/>
+ <path d="m 28 28 h 16 v 16 h -16 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 32 32 h 8 v 8 h -8 z m 0 0" fill="#3d3846"/>
+ <path d="m 84 28 h 16 v 16 h -16 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 88 32 h 8 v 8 h -8 z m 0 0" fill="#3d3846"/>
+ <path d="m 28 80 h 16 v 16 h -16 z m 0 0" fill="#f6f5f4"/>
+ <g fill="#3d3846">
+ <path d="m 32 84 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 20 56 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 24 60 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 32 56 h 8 v 4 h -8 z m 0 0"/>
+ <path d="m 44 60 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 56 60 h 20 v 8 h -20 z m 0 0"/>
+ <path d="m 36 64 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 40 60 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 52 60 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 56 56 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 60 52 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 64 56 h 8 v 4 h -8 z m 0 0"/>
+ <path d="m 56 44 h 16 v 8 h -16 z m 0 0"/>
+ <path d="m 60 72 h 12 v 4 h -12 z m 0 0"/>
+ <path d="m 56 100 h 16 v 4 h -16 z m 0 0"/>
+ <path d="m 56 76 h 8 v 12 h -8 z m 0 0"/>
+ <path d="m 64 20 h 8 v 12 h -8 z m 0 0"/>
+ <path d="m 60 32 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 64 36 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 56 40 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 56 24 h 12 v 4 h -12 z m 0 0"/>
+ <path d="m 80 64 h 12 v -4 h -12 z m 0 0"/>
+ <path d="m 84 60 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 88 76 h 12 v -4 h -12 z m 0 0"/>
+ <path d="m 80 68 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 76 60 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 96 56 h 8 v 8 h -8 z m 0 0"/>
+ <path d="m 72 76 h 16 v 4 h -16 z m 0 0"/>
+ <path d="m 80 76 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 76 72 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 80 84 h 12 v 12 h -12 z m 0 0"/>
+ <path d="m 72 96 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 68 92 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 64 88 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 56 92 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 62 96 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 80 100 h 8 v 4 h -8 z m 0 0"/>
+ <path d="m 56 68 h 4 v 4 h -4 z m 0 0"/>
+ <path d="m 104 80 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 104 72 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 92 96 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 96 92 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 88 84 h 4 v 16 h -4 z m 0 0"/>
+ <path d="m 96 96 h 12 v 8 h -12 z m 0 0"/>
+ <path d="m 104 96 h 4 v -4 h -4 z m 0 0"/>
+ <path d="m 92 88 h 4 v -8 h -4 z m 0 0"/>
+ <path d="m 100 88 h 4 v -12 h -4 z m 0 0"/>
+ <path d="m 92 104 h 4 v -4 h -4 z m 0 0"/>
+ </g>
+ <g clip-path="url(#b)">
+ <image height="152" transform="matrix(1 0 0 1 -8 -16)" width="192" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAACYCAYAAACyAeadAAAABmJLR0QA/wD/AP+gvaeTAAAB8ElEQVR4nO3aTWpcRxQF4HNfP5SgSCCwNhDILjyKwaNsqjcVPBDYw6zAgYDxzIEQYfwn0Z3u964HDjjCxBgsaPP0fZOankEdiqq6CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDXqiTpD2sl68Om4Ru2TpKupA8c5FZVr9fD5cXFD9vd7miYjuvQgfj2nKxW/frqujfbs6ufnj36Z0klqL/v3z+tbT+o1I+V4WjuVgJuGKrmdN7N2T+5t3nzPE+f7pZSgvH4OqebIb9U8nOnTyoKwE3dPXX6r1T9eXl29uI82R06020ZN+NqlZ5Pu/u80if5914AH/WUZDfN9d1qv1/U/hiTJN1DkqGTVRSAT1SSDFng3hgOHQAOSQG40xSAO00BuNMUgDvtwytQ1ZzuuZIpC7zp87V66mROahGfX/81fr+fps3Qbyt12alNfITxiZo6/XIYejuP46JKMF4f521t82uS3yt1NLcTgJuGqrk67+be/3H+6vX20Hlu03j+8OHV5cXF441hOP7HyfBxGO7es98WMweUGIfmi62TBY5DAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA57wED45DibbI06AAAAABJRU5ErkJggg=="/>
+ </g>
+ <g clip-path="url(#e)" mask="url(#d)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 100 96 v 4 h -60 v -4 z m 0 0" fill="#ffffff"/>
+ </g>
+ <g clip-path="url(#h)" mask="url(#f)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 20 100 v -40 h 104 v 40 z m 0 0" fill="url(#g)"/>
+ </g>
+ <path d="m 12 84 h 104 v -4 h -104 z m 0 0" fill="#fccbc5"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/com.belmoussaoui.Obfuscate.svg b/benchmarks/hicolor-apps/com.belmoussaoui.Obfuscate.svg
new file mode 100644
index 00000000..c15b6021
--- /dev/null
+++ b/benchmarks/hicolor-apps/com.belmoussaoui.Obfuscate.svg
@@ -0,0 +1 @@
+<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="8.494" x2="66" y1="74" y2="74"><stop offset="0" stop-color="#1a5fb4"/><stop offset=".085" stop-color="#62a0ea"/><stop offset=".199" stop-color="#1a5fb4"/><stop offset="1" stop-color="#1a5fb4"/></linearGradient><linearGradient id="b" gradientTransform="matrix(-1 0 0 1 129.874 -172)" gradientUnits="userSpaceOnUse" x1="66" x2="44" y1="234" y2="234"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#648cf9" stop-opacity="0"/></linearGradient><path d="M16.496 30a7.98 7.98 0 0 0-8 8v72c0 4.434 3.566 8 8 8H104V30zm0 0" fill="url(#a)"/><path d="M16.496 28a7.98 7.98 0 0 0-8 8v72c0 4.434 3.566 8 8 8H66V28zm0 0" fill="#3584e4"/><path d="M27 76v5h5m-1-4v8m5-9h3v4h-3zm-2 4h6v4h-6zm10-4h4v4h-4v4h5m6 0h2v-8h-5v4h5" style="fill:none;stroke:#fff;stroke-width:2"/><path d="M20 98h32v8H20zm0-8h20v4H20zm0 0" fill="#99c1f1"/><path d="M64.25 28v88H104v-12h16V40h-16V28zm0 0" fill="#3584e4"/><path d="M72 72h16v16H72zm0 0" fill="#fff"/><path d="M88 72h16v16H88Zm0 0" fill="#fff" style="opacity:.8"/><path d="M72 88h16v16H72Zm0 0" fill="#62a0ea"/><path d="M97.875 28h-34v88h34zm0 0" fill="url(#b)"/><path d="m60 116-.125-88h8L68 116Z" fill="#fff" style="fill:#6bf9f4;fill-opacity:1"/><path d="m62 116-.125-88h4L66 116Z" fill="#fff"/><path d="M88 88h16v16H88zm0 0" fill="#99c1f1"/><path d="M104 104h16v2h-16zm0 0" fill="#1a5fb4"/><path d="m30.777 38.637 8.586 8.586a3.925 3.925 0 0 1 0 5.554l-8.586 8.586a3.925 3.925 0 0 1-5.554 0l-8.586-8.586a3.925 3.925 0 0 1 0-5.554l8.586-8.586a3.925 3.925 0 0 1 5.554 0zm0 0" fill="#c64600"/><path d="m44.777 38.637 8.586 8.586a3.925 3.925 0 0 1 0 5.554l-8.586 8.586a3.925 3.925 0 0 1-5.554 0l-8.586-8.586a3.925 3.925 0 0 1 0-5.554l8.586-8.586a3.925 3.925 0 0 1 5.554 0zm0 0" fill="#f5c211"/><path d="m35 42.86-4.363 4.363a3.918 3.918 0 0 0 0 5.554L35 57.141l4.363-4.364a3.918 3.918 0 0 0 0-5.554zm0 0" fill="#ff7800"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/com.feaneron.Boatswain.svg b/benchmarks/hicolor-apps/com.feaneron.Boatswain.svg
new file mode 100644
index 00000000..9d1eb863
--- /dev/null
+++ b/benchmarks/hicolor-apps/com.feaneron.Boatswain.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(0.857143 0 0 1 9.142857 -172)" gradientUnits="userSpaceOnUse" x1="7.842921" x2="119.956627" y1="284.301208" y2="284.301208">
+ <stop offset="0" stop-color="#4b4b4b"/>
+ <stop offset="0.0620315" stop-color="#5e5c64"/>
+ <stop offset="0.174673" stop-color="#3d3846"/>
+ <stop offset="0.830765" stop-color="#3d3846"/>
+ <stop offset="0.929443" stop-color="#5e5c64"/>
+ <stop offset="1" stop-color="#241f31"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(1 0 0 0.951219 0 -160.04878)" gradientUnits="userSpaceOnUse" x1="8" x2="120" y1="284" y2="284">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="0.0730242" stop-color="#241f31"/>
+ <stop offset="0.919774" stop-color="#241f31"/>
+ <stop offset="1" stop-color="#9a9996"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="16.397379" x2="43.602623" y1="61.613037" y2="61.613037">
+ <stop offset="0" stop-color="#a51d2d"/>
+ <stop offset="0.0620315" stop-color="#f66151"/>
+ <stop offset="0.174673" stop-color="#c01c28"/>
+ <stop offset="0.830765" stop-color="#c01c28"/>
+ <stop offset="0.929443" stop-color="#f66151"/>
+ <stop offset="1" stop-color="#a51d2d"/>
+ </linearGradient>
+ <linearGradient id="d" gradientUnits="userSpaceOnUse" x1="50.447365" x2="77.552635" y1="61.715347" y2="61.715347">
+ <stop offset="0" stop-color="#229660"/>
+ <stop offset="0.0751897" stop-color="#8ff0a4"/>
+ <stop offset="0.178879" stop-color="#26a269"/>
+ <stop offset="0.863696" stop-color="#26a269"/>
+ <stop offset="0.940996" stop-color="#8ff0a4"/>
+ <stop offset="1" stop-color="#229660"/>
+ </linearGradient>
+ <linearGradient id="e" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#443a5c"/>
+ <stop offset="0.0620315" stop-color="#7d6fa3"/>
+ <stop offset="0.174673" stop-color="#241f31"/>
+ <stop offset="0.830765" stop-color="#241f31"/>
+ <stop offset="0.929443" stop-color="#51476f"/>
+ <stop offset="1" stop-color="#241f31"/>
+ </linearGradient>
+ <linearGradient id="f" x1="84.240303" x2="111.759705" xlink:href="#e" y1="61.231934" y2="61.231934"/>
+ <linearGradient id="g" x1="50.240303" x2="77.759705" xlink:href="#e" y1="95.231934" y2="95.231934"/>
+ <linearGradient id="h" gradientUnits="userSpaceOnUse" x1="84.480309" x2="111.561043" y1="95.779144" y2="95.779144">
+ <stop offset="0" stop-color="#1c71d8"/>
+ <stop offset="0.0751897" stop-color="#6da7ec"/>
+ <stop offset="0.178879" stop-color="#1963be"/>
+ <stop offset="0.863696" stop-color="#1c71d8"/>
+ <stop offset="0.940996" stop-color="#71a9ed"/>
+ <stop offset="1" stop-color="#1b6acb"/>
+ </linearGradient>
+ <linearGradient id="i" x1="16.240303" x2="43.759705" xlink:href="#e" y1="95.231934" y2="95.231934"/>
+ <filter id="j" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="k">
+ <g filter="url(#j)">
+ <rect fill-opacity="0.152" height="128" width="128"/>
+ </g>
+ </mask>
+ <linearGradient id="l" gradientUnits="userSpaceOnUse" x1="37.999704" x2="134" y1="55.986099" y2="110">
+ <stop offset="0" stop-color="#ffffff" stop-opacity="0"/>
+ <stop offset="0.160638" stop-color="#ffffff" stop-opacity="0.839216"/>
+ <stop offset="0.34608" stop-color="#ffffff" stop-opacity="0.109804"/>
+ <stop offset="0.518134" stop-color="#ffffff"/>
+ <stop offset="0.78217" stop-color="#ffffff" stop-opacity="0"/>
+ <stop offset="0.811507" stop-color="#ffffff" stop-opacity="0.184314"/>
+ <stop offset="0.878892" stop-color="#ffffff"/>
+ <stop offset="0.953738" stop-color="#ffffff" stop-opacity="0.043137"/>
+ <stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
+ </linearGradient>
+ <clipPath id="m">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 26 28 h 76 c 5.523438 0 10 4.476562 10 10 v 68 c 0 5.523438 -4.476562 10 -10 10 h -76 c -5.523438 0 -10 -4.476562 -10 -10 v -68 c 0 -5.523438 4.476562 -10 10 -10 z m 0 0" fill="url(#a)"/>
+ <path d="m 18 34 h 92 c 5.523438 0 10 4.476562 10 10 v 58 c 0 5.523438 -4.476562 10 -10 10 h -92 c -5.523438 0 -10 -4.476562 -10 -10 v -58 c 0 -5.523438 4.476562 -10 10 -10 z m 0 0" fill="url(#b)"/>
+ <path d="m 18 28 h 92 c 5.523438 0 10 4.476562 10 10 v 58 c 0 5.523438 -4.476562 10 -10 10 h -92 c -5.523438 0 -10 -4.476562 -10 -10 v -58 c 0 -5.523438 4.476562 -10 10 -10 z m 0 0" fill="#5e5c64"/>
+ <path d="m 20.171875 36 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 19.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -19.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#c)"/>
+ <path d="m 20.171875 36 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 15.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -15.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="#ed333b"/>
+ <path d="m 54.171875 36 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 19.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -19.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#d)"/>
+ <path d="m 88.171875 36 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 19.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -19.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#f)"/>
+ <path d="m 88.171875 36 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 15.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -15.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="#3d3846"/>
+ <path d="m 54.171875 70 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 19.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -19.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#g)"/>
+ <path d="m 88.171875 70 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 19.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -19.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#h)"/>
+ <path d="m 54.171875 36 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 15.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -15.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="#33d17a"/>
+ <path d="m 88.171875 70 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 15.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -15.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="#62a0ea"/>
+ <path d="m 54.171875 70 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 15.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -15.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="#3d3846"/>
+ <path d="m 20.171875 70 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 19.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -19.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#i)"/>
+ <path d="m 20.171875 70 h 19.65625 c 2.304687 0 4.171875 1.867188 4.171875 4.171875 v 15.65625 c 0 2.304687 -1.867188 4.171875 -4.171875 4.171875 h -19.65625 c -2.304687 0 -4.171875 -1.867188 -4.171875 -4.171875 v -15.65625 c 0 -2.304687 1.867188 -4.171875 4.171875 -4.171875 z m 0 0" fill="#3d3846"/>
+ <g clip-path="url(#m)" mask="url(#k)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 28.171875 86 h 19.65625 c 2.3125 0 4.171875 1.859375 4.171875 4.171875 v 15.65625 c 0 2.3125 -1.859375 4.171875 -4.171875 4.171875 h -19.65625 c -2.3125 0 -4.171875 -1.859375 -4.171875 -4.171875 v -15.65625 c 0 -2.3125 1.859375 -4.171875 4.171875 -4.171875 z m 34 0 h 19.65625 c 2.3125 0 4.171875 1.859375 4.171875 4.171875 v 15.65625 c 0 2.3125 -1.859375 4.171875 -4.171875 4.171875 h -19.65625 c -2.3125 0 -4.171875 -1.859375 -4.171875 -4.171875 v -15.65625 c 0 -2.3125 1.859375 -4.171875 4.171875 -4.171875 z m 34 0 h 19.65625 c 2.3125 0 4.171875 1.859375 4.171875 4.171875 v 15.65625 c 0 2.3125 -1.859375 4.171875 -4.171875 4.171875 h -19.65625 c -2.3125 0 -4.171875 -1.859375 -4.171875 -4.171875 v -15.65625 c 0 -2.3125 1.859375 -4.171875 4.171875 -4.171875 z m 0 -34 h 19.65625 c 2.3125 0 4.171875 1.859375 4.171875 4.171875 v 15.65625 c 0 2.3125 -1.859375 4.171875 -4.171875 4.171875 h -19.65625 c -2.3125 0 -4.171875 -1.859375 -4.171875 -4.171875 v -15.65625 c 0 -2.3125 1.859375 -4.171875 4.171875 -4.171875 z m -34 0 h 19.65625 c 2.3125 0 4.171875 1.859375 4.171875 4.171875 v 15.65625 c 0 2.3125 -1.859375 4.171875 -4.171875 4.171875 h -19.65625 c -2.3125 0 -4.171875 -1.859375 -4.171875 -4.171875 v -15.65625 c 0 -2.3125 1.859375 -4.171875 4.171875 -4.171875 z m -34 0 h 19.65625 c 2.3125 0 4.171875 1.859375 4.171875 4.171875 v 15.65625 c 0 2.3125 -1.859375 4.171875 -4.171875 4.171875 h -19.65625 c -2.3125 0 -4.171875 -1.859375 -4.171875 -4.171875 v -15.65625 c 0 -2.3125 1.859375 -4.171875 4.171875 -4.171875 z m 0 0" fill="url(#l)"/>
+ </g>
+ <g stroke="#ffffff" stroke-linecap="round">
+ <path d="m 35 48 c 0 2.761719 -2.238281 5 -5 5 s -5 -2.238281 -5 -5 s 2.238281 -5 5 -5 s 5 2.238281 5 5 z m 0 0" fill="#ffffff" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 60 78 h 8 v 8 h -8 z m 0 0" fill="#ffffff" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 69 48 l -9 -5 v 10 z m 0 0" fill="#ffffff" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 26 79 l 4 4 l 4 -4" fill="none" stroke-width="8"/>
+ <path d="m 91 82 h 14.339844" fill="none" stroke-width="4"/>
+ <path d="m 100.496094 87 l 5 -5 l -5 -5" fill="none" stroke-linejoin="round" stroke-width="4"/>
+ </g>
+ <path d="m 97 52 c 0 1.65625 -1.34375 3 -3 3 s -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 s 3 1.34375 3 3 z m 0 0" fill="#ffffff"/>
+ <path d="m 105 52 c 0 1.65625 -1.34375 3 -3 3 s -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 s 3 1.34375 3 3 z m 0 0" fill="#ffffff"/>
+ <path d="m 97 44 c 0 1.65625 -1.34375 3 -3 3 s -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 s 3 1.34375 3 3 z m 0 0" fill="#ffffff"/>
+ <path d="m 105 44 c 0 1.65625 -1.34375 3 -3 3 s -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 s 3 1.34375 3 3 z m 0 0" fill="#ffffff"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/de.haeckerfelix.Fragments.svg b/benchmarks/hicolor-apps/de.haeckerfelix.Fragments.svg
new file mode 100644
index 00000000..65a554a3
--- /dev/null
+++ b/benchmarks/hicolor-apps/de.haeckerfelix.Fragments.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
+<defs>
+<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+</filter>
+<mask id="mask0">
+ <g filter="url(#alpha)">
+<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.2;stroke:none;"/>
+ </g>
+</mask>
+<clipPath id="clip1">
+ <rect x="0" y="0" width="192" height="152"/>
+</clipPath>
+<g id="surface6224" clip-path="url(#clip1)">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 64 32 L 80 48 L 96 32 L 80 16 Z M 64 32 "/>
+</g>
+<mask id="mask1">
+ <g filter="url(#alpha)">
+<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.2;stroke:none;"/>
+ </g>
+</mask>
+<clipPath id="clip2">
+ <rect x="0" y="0" width="192" height="152"/>
+</clipPath>
+<g id="surface6227" clip-path="url(#clip2)">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 3.3125 64 L 3.3125 66 L 3.316406 66 C 3.3125 68.046875 4.089844 70.089844 5.65625 71.65625 L 58.34375 124.34375 C 61.476562 127.476562 66.523438 127.476562 69.65625 124.34375 L 122.34375 71.65625 C 123.910156 70.089844 124.6875 68.046875 124.6875 66 L 124.6875 64 C 124.6875 66.046875 123.910156 68.089844 122.34375 69.65625 L 69.65625 122.34375 C 66.523438 125.476562 61.476562 125.476562 58.34375 122.34375 L 5.65625 69.65625 C 4.089844 68.089844 3.3125 66.046875 3.316406 64 Z M 3.3125 64 "/>
+</g>
+<mask id="mask2">
+ <g filter="url(#alpha)">
+<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.3;stroke:none;"/>
+ </g>
+</mask>
+<clipPath id="clip3">
+ <rect x="0" y="0" width="192" height="152"/>
+</clipPath>
+<g id="surface6230" clip-path="url(#clip3)">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(14.117648%,12.156863%,19.215687%);fill-opacity:1;" d="M 176 24 L 176 30 L 182 24 Z M 176 24 "/>
+</g>
+</defs>
+<g id="surface6215">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(74.901962%,60.392159%,89.803922%);fill-opacity:1;" d="M 48 80 L 32 80 L 32 98 L 48 114 L 56 96 Z M 48 80 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(31.37255%,81.568629%,90.196079%);fill-opacity:1;" d="M 80 80 L 56 88 L 48 112 L 48 114 L 58.34375 124.34375 C 61.476562 127.476562 66.523438 127.476562 69.65625 124.34375 L 96.015625 97.988281 L 96.011719 95.988281 L 94 82 Z M 80 80 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(12.941177%,64.705884%,49.411765%);fill-opacity:1;" d="M 48 48 L 52 36 L 64 32 L 72 48 L 64 64 L 50 62 Z M 48 48 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,80.392158%,28.235295%);fill-opacity:1;" d="M 80 80 L 96.011719 95.988281 L 104 80 L 96 64 L 84 68 Z M 80 80 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,66.666669%,0%);fill-opacity:1;" d="M 64 64 L 72 40 L 96 32 L 104 52 L 96 64 L 80 80 L 64 80 Z M 64 64 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(74.509805%,90.980393%,96.470588%);fill-opacity:1;" d="M 80 80 L 48 112 L 48 80 L 52 68 L 64 64 Z M 80 80 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.039216%,76.078433%,60.000002%);fill-opacity:1;" d="M 64 32 L 68 19 L 80 16 L 96 32 L 64 64 Z M 64 32 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(40.392157%,27.450982%,83.92157%);fill-opacity:1;" d="M 32.03125 31.96875 L 18.632812 45.367188 L 5.347656 58.6875 C 3.992188 60.203125 3.3125 62.097656 3.316406 64 L 3.3125 64 L 3.3125 66 L 3.316406 66 C 3.3125 68.046875 4.089844 70.089844 5.65625 71.65625 L 16 82 L 16 80 L 40 72 L 48 48 L 44 36 Z M 32.03125 31.96875 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(97.254902%,90.980393%,34.901962%);fill-opacity:1;" d="M 64 3.308594 C 61.953125 3.308594 59.910156 4.089844 58.34375 5.65625 L 32 32 L 48 40 L 64 32 L 79.988281 15.988281 L 69.65625 5.65625 C 68.089844 4.089844 66.046875 3.308594 64 3.308594 Z M 64 3.308594 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(90.588236%,21.568628%,37.254903%);fill-opacity:1;" d="M 96 32 L 95.933594 65.902344 L 112.015625 81.984375 L 122.34375 71.65625 C 123.910156 70.089844 124.6875 68.046875 124.6875 66 L 124.6875 64 C 124.6875 61.953125 123.910156 59.910156 122.34375 58.34375 Z M 96 32 "/>
+<use xlink:href="#surface6224" mask="url(#mask0)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(93.333334%,76.862746%,3.921569%);fill-opacity:1;" d="M 32 32 L 48 48 L 64 32 Z M 32 32 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(97.254902%,49.019608%,61.960787%);fill-opacity:1;" d="M 96 64 L 96.015625 97.988281 L 112 82 L 112 80.019531 Z M 96 64 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(55.29412%,37.64706%,84.705883%);fill-opacity:1;" d="M 32.023438 63.976562 L 16 80 L 16 82 L 32 98 L 32 96 L 48 80 L 44 68 Z M 32.023438 63.976562 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(36.470589%,76.078433%,95.294118%);fill-opacity:1;" d="M 64 64 L 48 80 L 32.023438 63.976562 L 48 56 Z M 64 64 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(10.980392%,55.29412%,82.745099%);fill-opacity:1;" d="M 64 64 L 48 48 L 32 64 Z M 64 64 "/>
+<use xlink:href="#surface6227" mask="url(#mask1)"/>
+<use xlink:href="#surface6230" mask="url(#mask2)"/>
+</g>
+</svg>
diff --git a/benchmarks/hicolor-apps/de.haeckerfelix.Shortwave.svg b/benchmarks/hicolor-apps/de.haeckerfelix.Shortwave.svg
new file mode 100644
index 00000000..7c6db7b7
--- /dev/null
+++ b/benchmarks/hicolor-apps/de.haeckerfelix.Shortwave.svg
@@ -0,0 +1,830 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="96"
+ inkscape:export-xdpi="96"
+ inkscape:export-filename="Template.png"
+ width="128"
+ height="128"
+ id="svg11300"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.3 (2405546, 2018-03-11)"
+ sodipodi:docname="de.haeckerfelix.Shortwave.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 128 128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2544">
+ <stop
+ style="stop-color:#ab7007;stop-opacity:1"
+ offset="0"
+ id="stop2532" />
+ <stop
+ id="stop2534"
+ offset="0.03571429"
+ style="stop-color:#f5b918;stop-opacity:1" />
+ <stop
+ style="stop-color:#3d2b1b;stop-opacity:1"
+ offset="0.07136531"
+ id="stop2536" />
+ <stop
+ id="stop2538"
+ offset="0.9285714"
+ style="stop-color:#3d2b1b;stop-opacity:1" />
+ <stop
+ style="stop-color:#765335;stop-opacity:1"
+ offset="0.96428573"
+ id="stop2540" />
+ <stop
+ style="stop-color:#3d2b1b;stop-opacity:1"
+ offset="1"
+ id="stop2542" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2530"
+ inkscape:collect="always">
+ <stop
+ id="stop2518"
+ offset="0"
+ style="stop-color:#ab7007;stop-opacity:1" />
+ <stop
+ style="stop-color:#f5b918;stop-opacity:1"
+ offset="0.03571429"
+ id="stop2520" />
+ <stop
+ id="stop2522"
+ offset="0.07136531"
+ style="stop-color:#bd7b08;stop-opacity:1" />
+ <stop
+ style="stop-color:#bd7b08;stop-opacity:1"
+ offset="0.9285714"
+ id="stop2524" />
+ <stop
+ id="stop2526"
+ offset="0.96428573"
+ style="stop-color:#63452c;stop-opacity:1" />
+ <stop
+ id="stop2528"
+ offset="1"
+ style="stop-color:#ab7007;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2446">
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="0"
+ id="stop2438" />
+ <stop
+ id="stop2440"
+ offset="0.075"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ style="stop-color:#c1bfb9;stop-opacity:1"
+ offset="0.35249999"
+ id="stop2442" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="1"
+ id="stop2444" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2436">
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="0"
+ id="stop2428" />
+ <stop
+ id="stop2430"
+ offset="0.075"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.35249999"
+ id="stop2432" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="1"
+ id="stop2434" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2386"
+ inkscape:collect="always">
+ <stop
+ id="stop2374"
+ offset="0"
+ style="stop-color:#fefefe;stop-opacity:1" />
+ <stop
+ style="stop-color:#bbbab7;stop-opacity:1;"
+ offset="0.60000002"
+ id="stop2382" />
+ <stop
+ id="stop2384"
+ offset="1"
+ style="stop-color:#5e5c64;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ y2="236"
+ x2="96"
+ y1="236"
+ x1="32"
+ gradientTransform="translate(604.81684,170.58641)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1099"
+ xlink:href="#linearGradient1036" />
+ <linearGradient
+ id="linearGradient1036">
+ <stop
+ id="stop1032"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1;" />
+ <stop
+ id="stop1034"
+ offset="1"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ r="32"
+ fy="-76"
+ fx="-244"
+ cy="-76"
+ cx="-244"
+ gradientTransform="matrix(0.88333331,0,0,0.88333331,-460.35018,463.11973)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1103"
+ xlink:href="#linearGradient1069" />
+ <linearGradient
+ id="linearGradient1069">
+ <stop
+ id="stop1065"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ id="stop1067-1"
+ offset="1"
+ style="stop-color:#949390;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="232"
+ x2="64"
+ y1="262.5"
+ x1="64"
+ id="linearGradient1027"
+ xlink:href="#linearGradient1025"
+ gradientTransform="translate(-470.5864,432.81685)" />
+ <linearGradient
+ id="linearGradient1025">
+ <stop
+ id="stop1021"
+ offset="0"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ id="stop1023"
+ offset="1"
+ style="stop-color:#77767b;stop-opacity:1" />
+ </linearGradient>
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect35304-9"
+ is_visible="true" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1440">
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle1442"
+ cx="-134.35028"
+ cy="193.74727"
+ r="24"
+ transform="rotate(-45)" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1430">
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle1432"
+ cx="12"
+ cy="232"
+ r="24" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1440-9">
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle1442-5"
+ cx="-134.35028"
+ cy="193.74727"
+ r="24"
+ transform="rotate(-45)" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1430-1">
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle1432-8"
+ cx="12"
+ cy="232"
+ r="24" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2530"
+ id="linearGradient1660"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-14.14897,400.34849)"
+ x1="88.595886"
+ y1="-449.39401"
+ x2="536.59589"
+ y2="-449.39401" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2544"
+ id="linearGradient1891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-14.14897,228.34849)"
+ x1="88.595886"
+ y1="-449.39401"
+ x2="536.59589"
+ y2="-449.39401" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2024">
+ <rect
+ style="opacity:1;vector-effect:none;fill:#63452c;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2026"
+ width="74"
+ height="98"
+ x="6"
+ y="196" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient914"
+ inkscape:collect="always">
+ <stop
+ id="stop910"
+ offset="0"
+ style="stop-color:#f6f5f4;stop-opacity:0.43700787" />
+ <stop
+ id="stop912"
+ offset="1"
+ style="stop-color:#deddda;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ gradientTransform="matrix(2.6086955,0,0,1.8410361,-102.95652,-748.94671)"
+ gradientUnits="userSpaceOnUse"
+ r="46"
+ fy="296"
+ fx="64.000008"
+ cy="296"
+ cx="64.000008"
+ id="radialGradient916"
+ xlink:href="#linearGradient914"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1150">
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="0"
+ id="stop1142" />
+ <stop
+ id="stop1144"
+ offset="0.11949085"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.35090223"
+ id="stop1146" />
+ <stop
+ id="stop1153"
+ offset="0.60180056"
+ style="stop-color:#d2d1ce;stop-opacity:1;" />
+ <stop
+ id="stop1151"
+ offset="0.85269886"
+ style="stop-color:#bbbab7;stop-opacity:1;" />
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="1"
+ id="stop1148" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1150"
+ id="linearGradient2320"
+ x1="27.9998"
+ y1="203"
+ x2="32.000202"
+ y2="203"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2436"
+ id="linearGradient2330"
+ gradientUnits="userSpaceOnUse"
+ x1="37.047253"
+ y1="180.89714"
+ x2="37.047253"
+ y2="186.89714" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2446"
+ id="linearGradient2340"
+ gradientUnits="userSpaceOnUse"
+ x1="71.047256"
+ y1="181.89714"
+ x2="71.047256"
+ y2="185.89714" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2386"
+ id="radialGradient2372"
+ cx="183.21709"
+ cy="-92.151802"
+ fx="183.21709"
+ fy="-92.151802"
+ r="3"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.94529382,0.25329072,-0.26736589,0.99782308,-14.508154,-46.647674)" />
+ </defs>
+ <sodipodi:namedview
+ stroke="#ef2929"
+ fill="#f57900"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.25490196"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.70710678"
+ inkscape:cx="-461.99677"
+ inkscape:cy="48.566461"
+ inkscape:current-layer="layer9"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ width="400px"
+ height="300px"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ objecttolerance="7"
+ gridtolerance="12"
+ guidetolerance="13"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="false"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:locked="false"
+ inkscape:measure-start="0,0"
+ inkscape:measure-end="0,0"
+ inkscape:object-nodes="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-global="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ showborder="false"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-text-baseline="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5883"
+ spacingx="2"
+ spacingy="2"
+ enabled="true"
+ visible="true"
+ empspacing="4"
+ originx="0"
+ originy="0" />
+ <sodipodi:guide
+ position="64,8"
+ orientation="0,1"
+ id="guide1073"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="12,64"
+ orientation="1,0"
+ id="guide1075"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,104"
+ orientation="0,1"
+ id="guide1099"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,128"
+ orientation="0,1"
+ id="guide993"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="104,64"
+ orientation="1,0"
+ id="guide995"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="9.2651362e-08,64"
+ orientation="1,0"
+ id="guide867"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="120,64"
+ orientation="1,0"
+ id="guide869"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,116"
+ orientation="0,1"
+ id="guide871"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <inkscape:grid
+ type="xygrid"
+ id="grid873"
+ spacingx="1"
+ spacingy="1"
+ empspacing="8"
+ color="#000000"
+ opacity="0.49019608"
+ empcolor="#000000"
+ empopacity="0.08627451"
+ dotted="true" />
+ <sodipodi:guide
+ position="24,64"
+ orientation="1,0"
+ id="guide877"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="116,64"
+ orientation="1,0"
+ id="guide879"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,120"
+ orientation="0,1"
+ id="guide881"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,12"
+ orientation="0,1"
+ id="guide883"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="8,64"
+ orientation="1,0"
+ id="guide885"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="128,64"
+ orientation="1,0"
+ id="guide887"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,0"
+ orientation="0,1"
+ id="guide897"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,24"
+ orientation="0,1"
+ id="guide899"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="256,256"
+ orientation="-0.70710678,0.70710678"
+ id="guide950"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,64"
+ orientation="0.70710678,0.70710678"
+ id="guide952"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="App Icon"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ transform="translate(0,-172)">
+ <g
+ inkscape:groupmode="layer"
+ id="layer9"
+ inkscape:label="icons"
+ style="display:inline">
+ <g
+ id="g1513"
+ transform="rotate(-15,90.680272,188.33016)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path2055"
+ d="M 29.047254,183.89715 H 92.047253"
+ style="fill:none;stroke:url(#linearGradient2340);stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="cc" />
+ <path
+ sodipodi:nodetypes="cc"
+ style="fill:none;stroke:url(#linearGradient2330);stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 29.047253,183.89714 H 61.047251"
+ id="path2057"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="181.89716"
+ x="61.047253"
+ height="4"
+ width="1"
+ id="rect1493"
+ style="opacity:0.2;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ cy="-92.047256"
+ cx="183.89716"
+ id="circle1504"
+ style="opacity:1;vector-effect:none;fill:url(#radialGradient2372);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ r="3"
+ transform="rotate(90)" />
+ </g>
+ <circle
+ style="opacity:1;vector-effect:none;fill:#77767b;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2053"
+ cx="30"
+ cy="200"
+ r="4" />
+ <circle
+ r="4"
+ cy="200"
+ cx="30"
+ id="circle1502"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:url(#linearGradient2320);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 29.970703,197.97266 A 2.0002,2.0002 0 0 0 28,200 v 6 a 2.0002,2.0002 0 1 0 4,0 v -6 a 2.0002,2.0002 0 0 0 -2.029297,-2.02734 z"
+ id="path1500"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#63452c;fill-opacity:1;stroke:none;stroke-width:2.35339355;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2051"
+ width="12"
+ height="6"
+ x="24"
+ y="204"
+ rx="2"
+ ry="2" />
+ <g
+ id="g2022"
+ clip-path="url(#clipPath2024)">
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1660);fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1654"
+ width="112.00001"
+ height="76"
+ x="7.9999933"
+ y="212"
+ rx="7.9999995"
+ ry="8" />
+ <rect
+ ry="7.9999995"
+ rx="7.9999995"
+ y="208"
+ x="7.9999933"
+ height="72"
+ width="112.00001"
+ id="rect1656"
+ style="display:inline;opacity:1;vector-effect:none;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:0.24999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1891);fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="M 80 46.021484 L 80 116 L 112 116 C 116.432 116 120 112.432 120 108 L 120 54.021484 C 120 49.589484 116.432 46.021484 112 46.021484 L 80 46.021484 z "
+ transform="translate(0,172)"
+ id="rect1889" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#63452c;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 80,36 v 72 h 32 c 4.432,0 8,-3.568 8,-8 V 44 c 0,-4.432 -3.568,-8 -8,-8 z"
+ transform="translate(0,172)"
+ id="rect1877"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssssc" />
+ <g
+ id="g1592"
+ transform="translate(7.6e-6,-22)">
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#bd7b08;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1751"
+ width="16"
+ height="18"
+ x="91.999992"
+ y="246"
+ rx="8"
+ ry="8" />
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle1753"
+ cx="99.999992"
+ cy="254"
+ r="8" />
+ <circle
+ style="display:inline;opacity:1;vector-effect:none;fill:#63452c;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle1759"
+ cx="96.999992"
+ cy="249"
+ r="1.3125" />
+ </g>
+ <rect
+ ry="2"
+ rx="2"
+ y="248"
+ x="92"
+ height="6"
+ width="6"
+ id="rect1709"
+ style="opacity:1;vector-effect:none;fill:#bd7b08;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1707"
+ width="6"
+ height="4"
+ x="92"
+ y="248"
+ rx="2"
+ ry="2" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#bd7b08;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1711"
+ width="6"
+ height="6"
+ x="102"
+ y="248"
+ rx="2"
+ ry="2" />
+ <rect
+ ry="2"
+ rx="2"
+ y="248"
+ x="102"
+ height="4"
+ width="6"
+ id="rect1713"
+ style="opacity:1;vector-effect:none;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#bd7b08;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1776"
+ width="6"
+ height="6"
+ x="92"
+ y="258"
+ rx="2"
+ ry="2" />
+ <rect
+ ry="2"
+ rx="2"
+ y="258"
+ x="92"
+ height="4"
+ width="6"
+ id="rect1778"
+ style="opacity:1;vector-effect:none;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="2"
+ rx="2"
+ y="258"
+ x="102"
+ height="6"
+ width="6"
+ id="rect1780"
+ style="opacity:1;vector-effect:none;fill:#bd7b08;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1782"
+ width="6"
+ height="4"
+ x="102"
+ y="258"
+ rx="2"
+ ry="2" />
+ </g>
+ <path
+ id="path1882-7"
+ d="m 43.999997,222 a 22,22 0 0 0 -12.601562,4 h 25.230468 a 22,22 0 0 0 -12.628906,-4 z m -16.957031,8 a 22,22 0 0 0 -2.613281,4 H 63.5957 a 22,22 0 0 0 -2.648437,-4 z m -4.1875,8 a 22,22 0 0 0 -0.75586,4 h 43.791016 a 22,22 0 0 0 -0.730469,-4 z m -0.746094,8 a 22,22 0 0 0 0.730469,4 h 42.304687 a 22,22 0 0 0 0.75586,-4 z m 2.294922,8 a 22,22 0 0 0 2.648437,4 h 33.904297 a 22,22 0 0 0 2.613281,-4 z m 6.966797,8 a 22,22 0 0 0 12.628906,4 22,22 0 0 0 12.601562,-4 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#63452c;fill-opacity:1;stroke:none;stroke-width:1.51185787;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/dev.Cogitri.Health.svg b/benchmarks/hicolor-apps/dev.Cogitri.Health.svg
new file mode 100644
index 00000000..924ecbf3
--- /dev/null
+++ b/benchmarks/hicolor-apps/dev.Cogitri.Health.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="4.909418" x2="122" y1="106.960602" y2="106.960602">
+ <stop offset="0" stop-color="#ffffff"/>
+ <stop offset="0.151397" stop-color="#deddda"/>
+ <stop offset="0.504657" stop-color="#deddda"/>
+ <stop offset="0.507623" stop-color="#c0bfbc"/>
+ <stop offset="0.760869" stop-color="#c0bfbc"/>
+ <stop offset="0.932697" stop-color="#deddda"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-177.754059" x2="-228.552979" y1="691.488464" y2="691.488464">
+ <stop offset="0" stop-color="#ed333b"/>
+ <stop offset="1" stop-color="#ed333b" stop-opacity="0"/>
+ </linearGradient>
+ <path d="m 38.976562 23.472656 c -18.554687 0.167969 -33.507812 15.257813 -33.507812 33.8125 c 0 12.082032 3.804688 21.816406 14.5625 31.429688 l 43.96875 39.285156 l 43.664062 -38.695312 c 11.8125 -9.652344 14.613282 -20.382813 14.867188 -32.019532 c 0 -18.675781 -15.136719 -33.8125 -33.8125 -33.8125 c -9.371094 0 -18.324219 3.890625 -24.71875 10.738282 c -6.394531 -6.847657 -15.347656 -10.738282 -24.71875 -10.738282 c -0.101562 0 -0.203125 0 -0.304688 0 z m 0 0" fill="url(#a)"/>
+ <path d="m 38.976562 19.472656 c -18.554687 0.167969 -33.507812 15.257813 -33.507812 33.8125 c 0 8.050782 2.148438 15.890625 7.511719 21.25 l 51.019531 44.96875 l 50.058594 -43.832031 c 5.515625 -5.515625 8.472656 -13.800781 8.472656 -22.386719 c 0 -18.675781 -15.136719 -33.8125 -33.8125 -33.8125 c -9.371094 0 -18.324219 3.890625 -24.71875 10.742188 c -6.394531 -6.851563 -15.347656 -10.742188 -24.71875 -10.742188 c -0.101562 0 -0.203125 0 -0.304688 0 z m 0 0" fill="#f6f5f4"/>
+ <path d="m -228.096527 706.132812 h 26 l 10 -23 l 6 39 l 8 -16 h 6" fill="none" stroke="url(#b)" stroke-linecap="round" stroke-miterlimit="10" stroke-width="4" transform="matrix(1 0 0 1 255.096527 -636.132812)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/evolution.svg b/benchmarks/hicolor-apps/evolution.svg
new file mode 100644
index 00000000..f3ad2203
--- /dev/null
+++ b/benchmarks/hicolor-apps/evolution.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0" enable-background="new"><defs><linearGradient id="d"><stop offset="0" stop-color="#f6f5f4"/><stop offset="1" stop-color="#e9e7e4"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#dc8add"/><stop offset="1" stop-color="#813d9c"/></linearGradient><linearGradient id="c"><stop offset="0" stop-color="#fff"/><stop offset=".4" stop-color="#fff"/><stop offset="1" stop-color="#edece9"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#edece9"/></linearGradient><filter id="f" color-interpolation-filters="sRGB"><feBlend mode="multiply" in2="BackgroundImage"/></filter><filter id="g" color-interpolation-filters="sRGB"><feBlend mode="multiply" in2="BackgroundImage"/></filter><linearGradient xlink:href="#d" id="e" x1="63.109" y1="65.067" x2="72.603" y2="21.374" gradientUnits="userSpaceOnUse"/></defs><path style="marker:none" d="M64.213 4.678c-2.663-.009-5.335 1.319-8.025 4.01L16 48v68h96V48L72.187 8.687c-2.656-2.656-5.311-4-7.974-4.01z" fill="#9a9996"/><path style="marker:none" fill="url(#e)" d="M24 16h80v88H24z"/><path style="marker:none" d="M16 48v68.001l96-.001V48L64 92z" fill="#d0d0cd"/><path style="marker:none" d="M16 116h96L72.187 76.687c-5.312-5.312-10.618-5.381-16 0z" fill="#deddda"/><path d="M69.953 251.55a28.557 28.557 0 0 0-7.01 18.714c.003 6.37 2.74 13.73 6.663 18.748h37.874z" style="marker:none" transform="translate(-2.122 -187.612) scale(1.05052)" opacity=".15" filter="url(#f)" enable-background="new"/><path style="marker:none" d="M64.213 72.678c-2.663-.009-5.335 1.319-8.025 4.01L16 116h2.045l38.142-37.313c5.382-5.381 10.688-5.312 16 0L109.975 116H112L72.187 76.687c-2.656-2.656-5.311-4-7.974-4.01z" fill="#edeceb"/><g transform="matrix(1.17069 0 0 1.17069 -13.698 -11.07)"><path d="M117.574 90.426A25.574 25.574 0 0 1 92 116a25.574 25.574 0 0 1-25.574-25.574A25.574 25.574 0 0 1 92 64.852a25.574 25.574 0 0 1 25.574 25.574z" style="marker:none" fill="#613583" enable-background="new"/><rect style="marker:none" width="47.738" height="48.59" x="68.131" y="65.705" rx="23.869" ry="23.869" fill="#d5d3cf" enable-background="new"/><path style="marker:none" d="M118.476 89.574A26.476 26.476 0 0 1 92 116.05a26.476 26.476 0 0 1-26.476-26.476A26.476 26.476 0 0 1 92 63.098a26.476 26.476 0 0 1 26.476 26.476z" fill="#9141ac" enable-background="new"/><circle r="21.28" style="marker:none" cx="92" cy="89.574" fill="#f6f5f4" enable-background="new"/><path d="M92 89.574l11.082-11.935" fill="#949390" fill-rule="evenodd" stroke="#949390" stroke-width=".854" stroke-linecap="round" enable-background="new"/><path d="M92 89.574l-5.967 15.344" fill="none" stroke="#ed333b" stroke-width=".854" stroke-linecap="round" enable-background="new"/><path transform="matrix(.89735 0 0 .89735 9.889 -150.802)" d="M91.494 268.07l-9.513-9.52" fill="none" stroke="#68676b" stroke-width="3.808" stroke-linecap="round" filter="url(#g)" enable-background="new"/><circle r="2.557" cy="119.282" cx="47.532" style="marker:none" transform="rotate(-24.04)" color="#000" overflow="visible" fill="#11100f" enable-background="accumulate"/><circle r=".854" style="marker:none" cx="92.012" cy="89.574" color="#000" overflow="visible" fill="#131c1a" enable-background="accumulate"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/gnome-planner.svg b/benchmarks/hicolor-apps/gnome-planner.svg
new file mode 100644
index 00000000..164d1ed5
--- /dev/null
+++ b/benchmarks/hicolor-apps/gnome-planner.svg
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="gnome-planner.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3807">
+ <stop
+ style="stop-color:#c3d6eb;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <stop
+ style="stop-color:#a2c0df;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3799">
+ <stop
+ style="stop-color:#95b7db;stop-opacity:1;"
+ offset="0"
+ id="stop3801" />
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1;"
+ offset="1"
+ id="stop3803" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3799"
+ id="linearGradient3805"
+ x1="12.682274"
+ y1="13.244147"
+ x2="13"
+ y2="18"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="linearGradient3813"
+ x1="12.040133"
+ y1="13.725753"
+ x2="13"
+ y2="17"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3799"
+ id="linearGradient3825"
+ gradientUnits="userSpaceOnUse"
+ x1="12.682274"
+ y1="13.244147"
+ x2="13"
+ y2="18" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="linearGradient3827"
+ gradientUnits="userSpaceOnUse"
+ x1="12.040133"
+ y1="13.725753"
+ x2="13"
+ y2="17" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3799"
+ id="linearGradient3835"
+ gradientUnits="userSpaceOnUse"
+ x1="12.682274"
+ y1="13.244147"
+ x2="13"
+ y2="18" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="linearGradient3837"
+ gradientUnits="userSpaceOnUse"
+ x1="12.040133"
+ y1="13.725753"
+ x2="13"
+ y2="17" />
+ <filter
+ id="filter3877"
+ style="color-interpolation-filters:sRGB;"
+ inkscape:label="Drop Shadow"
+ y="-1"
+ height="3"
+ width="1.3500000000000001">
+ <feFlood
+ id="feFlood3879"
+ flood-opacity="0.5"
+ flood-color="rgb(0,0,0)"
+ result="flood" />
+ <feComposite
+ id="feComposite3881"
+ in2="SourceGraphic"
+ in="flood"
+ operator="in"
+ result="composite1" />
+ <feGaussianBlur
+ id="feGaussianBlur3883"
+ in="composite"
+ stdDeviation="2"
+ result="blur" />
+ <feOffset
+ id="feOffset3885"
+ dx="2"
+ dy="3"
+ result="offset" />
+ <feComposite
+ id="feComposite3887"
+ in2="offset"
+ in="SourceGraphic"
+ operator="over"
+ result="composite2" />
+ </filter>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.583333"
+ inkscape:cx="24"
+ inkscape:cy="24"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="true"
+ inkscape:window-width="1301"
+ inkscape:window-height="744"
+ inkscape:window-x="65"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3016"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Bitmap"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1004.3622)"
+ sodipodi:insensitive="true"
+ style="display:none">
+ <image
+ y="1005.3622"
+ x="0"
+ id="image2993"
+ xlink:href="file:///home/frederik/Arbeitsfl%C3%A4che/gnome-planner.png"
+ height="45"
+ width="47" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Vector"
+ style="display:inline">
+ <g
+ id="g3815"
+ style="filter:url(#filter3877)">
+ <rect
+ y="12.5"
+ x="3.5"
+ height="6"
+ width="25"
+ id="rect3018"
+ style="fill:url(#linearGradient3805);fill-opacity:1;stroke:#182f4e;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ style="fill:none;stroke:url(#linearGradient3813);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3789"
+ width="23"
+ height="4"
+ x="4.5"
+ y="13.5" />
+ </g>
+ <g
+ id="g3819"
+ transform="translate(18,10)"
+ style="filter:url(#filter3877)">
+ <rect
+ style="fill:url(#linearGradient3825);fill-opacity:1;stroke:#182f4e;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3821"
+ width="18"
+ height="6"
+ x="3.5"
+ y="12.5" />
+ <rect
+ y="13.5"
+ x="4.5"
+ height="4"
+ width="16"
+ id="rect3823"
+ style="fill:none;stroke:url(#linearGradient3827);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <g
+ id="g3829"
+ transform="translate(7,20)"
+ style="filter:url(#filter3877)">
+ <rect
+ style="fill:url(#linearGradient3835);fill-opacity:1;stroke:#182f4e;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="rect3831"
+ width="14"
+ height="6"
+ x="3.5"
+ y="12.5" />
+ <rect
+ y="13.5"
+ x="4.5"
+ height="4"
+ width="12"
+ id="rect3833"
+ style="fill:none;stroke:url(#linearGradient3837);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ </g>
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter3877)"
+ d="M 3,9 3,4 40,4 40,9 39,9 C 39,7.7981496 38.20185,6 37,6 L 6,6 C 4.7981496,6 4,7.7981496 4,9 z"
+ id="path3839"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccc" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/io.bassi.Amberol.svg b/benchmarks/hicolor-apps/io.bassi.Amberol.svg
new file mode 100644
index 00000000..228e3ee6
--- /dev/null
+++ b/benchmarks/hicolor-apps/io.bassi.Amberol.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(1.008894 0 0 1.00892 -0.568699 -2.626877)" gradientUnits="userSpaceOnUse" x1="8" x2="120" y1="236" y2="236">
+ <stop offset="0" stop-color="#498fe5"/>
+ <stop offset="0.186734" stop-color="#1a5fb4" stop-opacity="0.984314"/>
+ <stop offset="0.392857" stop-color="#2579e0" stop-opacity="0.968627"/>
+ <stop offset="0.617036" stop-color="#5596e6" stop-opacity="0.956863"/>
+ <stop offset="0.855136" stop-color="#134583"/>
+ <stop offset="1" stop-color="#2677df"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0.659952 0.659952 -0.659952 0.659952 176.852005 -137.325138)" gradientUnits="userSpaceOnUse" x1="139.477295" x2="25.039328" y1="259.588104" y2="189.370285">
+ <stop offset="0" stop-color="#59cde7"/>
+ <stop offset="1" stop-color="#1c71d8"/>
+ </linearGradient>
+ <path d="m 64 4 c 30.929688 0 56 25.070312 56 56 v 8 c 0 30.929688 -25.070312 56 -56 56 s -56 -25.070312 -56 -56 v -8 c 0 -30.929688 25.070312 -56 56 -56 z m 0 0" fill="url(#a)"/>
+ <path d="m 103.59375 99.59375 c -21.867188 21.875 -57.320312 21.875 -79.191406 0 c -21.871094 -21.867188 -21.871094 -57.320312 0 -79.191406 s 57.324218 -21.871094 79.191406 0 c 21.875 21.871094 21.875 57.324218 0 79.191406 z m 0 0" fill="url(#b)"/>
+ <path d="m 64 21.742188 c -10.238281 0 -20.476562 3.90625 -28.285156 11.714843 c -15.621094 15.621094 -15.621094 40.953125 0 56.574219 c 15.621094 15.617188 40.949218 15.617188 56.570312 0 c 15.621094 -15.621094 15.621094 -40.953125 0 -56.574219 c -7.808594 -7.808593 -18.046875 -11.714843 -28.285156 -11.714843 z m -10.152344 20.25 c 1.027344 -0.027344 2.085938 0.214843 3.085938 0.773437 l 25 14 c 4.085937 2.292969 4.085937 8.175781 0 10.46875 l -25 14 c -4 2.238281 -8.933594 -0.652344 -8.933594 -5.234375 v -28 c 0 -3.4375 2.777344 -5.921875 5.847656 -6.007812 z m 0 0" fill="#1a5fb4"/>
+ <g fill="#ffffff">
+ <path d="m 64 19.742188 c -10.238281 0 -20.476562 3.90625 -28.285156 11.714843 c -15.621094 15.621094 -15.621094 40.953125 0 56.574219 c 15.621094 15.617188 40.949218 15.617188 56.570312 0 c 15.621094 -15.621094 15.621094 -40.953125 0 -56.574219 c -7.808594 -7.808593 -18.046875 -11.714843 -28.285156 -11.714843 z m -10.152344 20.25 c 1.027344 -0.027344 2.085938 0.214843 3.085938 0.773437 l 25 14 c 4.085937 2.292969 4.085937 8.175781 0 10.46875 l -25 14 c -4 2.238281 -8.933594 -0.652344 -8.933594 -5.234375 v -28 c 0 -3.4375 2.777344 -5.921875 5.847656 -6.007812 z m 0 0"/>
+ <path d="m 8.023438 58.742188 c -0.261719 14.664062 5.191406 29.40625 16.378906 40.59375 c 21.871094 21.875 57.324218 21.875 79.191406 0 c 11.191406 -11.1875 16.644531 -25.929688 16.382812 -40.59375 c -0.25 13.996093 -5.699218 27.914062 -16.382812 38.59375 c -21.867188 21.875 -57.320312 21.875 -79.191406 0 c -10.679688 -10.679688 -16.128906 -24.597657 -16.378906 -38.59375 z m 0 0" fill-opacity="0.2"/>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/libreoffice-base.svg b/benchmarks/hicolor-apps/libreoffice-base.svg
new file mode 100644
index 00000000..056459ad
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-base.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="117.00146" x2="12.00143" xlink:href="#b" y1="127.8783" y2=".0766"/><linearGradient id="b"><stop offset="0" stop-color="#8e03a3"/><stop offset="1" stop-color="#c254d2"/></linearGradient><radialGradient id="c" cx="518.85358" cy="730.48431" gradientTransform="matrix(1.0052685 0 .00000015 .28297029 -458.58886 -140.20575)" gradientUnits="userSpaceOnUse" r="22.889727"><stop offset="0" stop-color="#dc85e9"/><stop offset="1" stop-color="#f2cbf8"/></radialGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="38.00073" x2="88.00073" y1="79.980797" y2="79.980797"><stop offset="0" stop-color="#9207a7"/><stop offset=".27254906" stop-color="#cd6cc4"/><stop offset=".50966245" stop-color="#ad3cbe"/><stop offset=".83376038" stop-color="#bc2ad2"/><stop offset="1" stop-color="#950ba8"/></linearGradient><linearGradient id="e" gradientTransform="matrix(1 0 0 1.00001 -1156.9995 1168.6453)" gradientUnits="userSpaceOnUse" x1="1273.0009" x2="1169.0009" xlink:href="#b" y1="-1040.6349" y2="-1168.6337"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="g" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" xlink:href="#b" y1="991.62115" y2="977.11713"/><linearGradient id="h" gradientTransform="matrix(-2 0 0 2 860.00054 -2063.5036)" gradientUnits="userSpaceOnUse" x1="386.63177" x2="410.49988" y1="1068.9539" y2="1068.9539"><stop offset="0" stop-color="#e196fb"/><stop offset=".13010512" stop-color="#f4c7fa"/><stop offset=".31360075" stop-color="#e091f3"/><stop offset=".44078669" stop-color="#d764e9"/><stop offset=".68364757" stop-color="#e7adf0"/><stop offset=".75620717" stop-color="#e6a9f8"/><stop offset=".88021636" stop-color="#e595f2"/><stop offset="1" stop-color="#f2cbf8"/></linearGradient><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#g)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#f)"/><path d="m31.000555 51.9986v3h14v-3zm16 0v3h15v-3zm17 0v3h15v-3zm17 0v3h14v-3zm-50 5v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v4h14v-4zm16 0v4h15v-4zm17 0v4h15v-4zm17 0v4h14v-4zm-50 6v3h14v-3zm16 0v3h15v-3zm17 0v3h15v-3zm17 0v3h14v-3z" fill="url(#e)" opacity=".6"/><path d="m63.000555 58.9673c-6.6937 0-12.762.7304-17.2188 1.9375-2.2282.6036-4.0271 1.2932-5.375 2.1563-1.3477.863-2.375 1.9891-2.375 3.4375h-.031v26.5.5c0 1.3963.9899 2.5081 2.3438 3.375 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875 1.3539-.8669 2.3438-1.9787 2.3438-3.375v-27h-.031c0-1.4484-1.0273-2.5745-2.375-3.4375-1.3478-.8631-3.1466-1.5527-5.375-2.1563-4.4568-1.2071-10.5251-1.9375-17.2188-1.9375zm0 2.0625c6.5612 0 12.5205.7295 16.75 1.875 2.1148.5728 3.7938 1.2452 4.875 1.9375 1.0811.6924 1.4062 1.3098 1.4062 1.6563s-.3251.9639-1.4062 1.6562c-1.0812.6924-2.7602 1.3648-4.875 1.9375-4.2295 1.1456-10.1888 1.875-16.75 1.875-6.5611 0-12.5205-.7294-16.75-1.875-2.1148-.5727-3.7939-1.2451-4.875-1.9375-1.0812-.6923-1.4063-1.3097-1.4062-1.6562 0-.3465.325-.9639 1.4062-1.6563 1.0811-.6923 2.7602-1.3647 4.875-1.9375 4.2295-1.1455 10.1889-1.875 16.75-1.875zm-23 8.5938c.1377.1.2601.2189.4062.3125 1.3479.863 3.1467 1.5527 5.375 2.1562 4.4568 1.207 10.5251 1.9375 17.2188 1.9375s12.762-.7305 17.2188-1.9375c2.2283-.6035 4.0272-1.2932 5.375-2.1562.1461-.094.2685-.2128.4062-.3125v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5zm0 9c .1172.083.22.1708.3438.25 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875.1238-.079.2266-.1666.3438-.25v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5zm0 9c .1172.083.22.1708.3438.25 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875.1238-.079.2266-.1666.3438-.25v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5z" fill="url(#d)"/><path d="m63.000555 58.9673c-6.6937 0-12.762.7304-17.2188 1.9375-2.2282.6036-4.0271 1.2932-5.375 2.1563-1.3477.863-2.4062 1.9891-2.4062 3.4375-.062 8.7636.0002 17.6812.0002 26.5v.5c0 1.3963.9899 2.5081 2.3438 3.375 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875 1.3539-.8669 2.3438-1.9787 2.3438-3.375v-27c0-1.3529-1.3173-2.7252-2.406-3.4375-1.3478-.8631-3.1466-1.5527-5.375-2.1563-4.4568-1.2071-10.5251-1.9375-17.2188-1.9375zm0 2.0625c6.5612 0 12.5205.7295 16.75 1.875 2.1148.5728 3.7938 1.2452 4.875 1.9375 1.0811.6924 1.4062 1.3098 1.4062 1.6563s-.3251.9639-1.4062 1.6562c-1.0812.6924-2.7602 1.3648-4.875 1.9375-4.2295 1.1456-10.1888 1.875-16.75 1.875-6.5611 0-12.5205-.7294-16.75-1.875-2.1148-.5727-3.7939-1.2451-4.875-1.9375-1.0812-.6923-1.4063-1.3097-1.4062-1.6562 0-.3465.325-.9639 1.4062-1.6563 1.0811-.6923 2.7602-1.3647 4.875-1.9375 4.2295-1.1455 10.1889-1.875 16.75-1.875zm-23 8.5938c.1377.1.2601.2189.4062.3125 1.3479.863 3.1467 1.5527 5.375 2.1562 4.4568 1.207 10.5251 1.9375 17.2188 1.9375s12.762-.7305 17.2188-1.9375c2.2283-.6035 4.0272-1.2932 5.375-2.1562.1461-.094.2685-.2128.4062-.3125v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5zm0 9c .1172.083.22.1708.3438.25 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875.1238-.079.2266-.1666.3438-.25v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5zm0 9c .1172.083.22.1708.3438.25 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875.1238-.079.2266-.1666.3438-.25v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5z" fill="none" opacity=".5" stroke="#fff" stroke-width="2"/><path d="m39.000555 84.9986v8 .5c0 3.5898 10.7452 6.5 24 6.5s24-2.9102 24-6.5v-.5-8z" fill="url(#h)"/><path d="m39.000555 75.9986v8 .5c0 3.5898 10.7452 6.5 24 6.5s24-2.9102 24-6.5v-.5-8z" fill="url(#h)"/><path d="m87.000555 67.4986v7.5.5c0 3.5898-10.7452 6.5-24 6.5s-24-2.9102-24-6.5v-.5-7.5z" fill="url(#h)"/><path id="i" d="m40.500555 70.4986v4.0657.4239c0 3.0433 9.8483 5.5104 21.9969 5.5104s23.0031-2.4671 23.0031-5.5104v-.4239-4.0381c-1.9668 1.6873-10.2916 4.1764-22.9341 4.1764-12.6424 0-20.226-2.5166-22.0659-4.204z" fill="none" opacity=".35" stroke="#fff"/><ellipse cx="62.99823" cy="66.499573" fill="url(#c)" rx="23.499916" ry="6.000028"/><path d="m63.000555 61.02765c-6.5611 0-12.5205.7295-16.75 1.875-2.1148.5728-3.7939 1.2452-4.875 1.9375-1.0812.6924-1.4062 1.30975-1.4062 1.65625-.0001.3465.325.96395 1.4062 1.65625 1.0811.6924 2.7602 1.3648 4.875 1.9375 4.2295 1.1456 10.1889 1.875 16.75 1.875 6.5612 0 12.5205-.7294 16.75-1.875 2.1148-.5727 3.7938-1.2451 4.875-1.9375 1.0811-.6923 1.4062-1.30975 1.4062-1.65625s-.3251-.96385-1.4062-1.65625c-1.0812-.6923-2.7602-1.3647-4.875-1.9375-4.2295-1.1455-10.1888-1.875-16.75-1.875zm0 .96875c6.1251 0 11.6766.58855 15.625 1.53125 1.9741.4712 3.5533 1.02435 4.5625 1.59375 1.0094.57 1.3125 1.0898 1.3125 1.375s-.3031.8051-1.3125 1.375c-1.0092.5695-2.5884 1.12265-4.5625 1.59375-3.9484.9427-9.4999 1.53125-15.625 1.53125-6.125 0-11.6766-.58855-15.625-1.53125-1.9742-.4711-3.5534-1.02425-4.5625-1.59375-1.0095-.5699-1.3126-1.0898-1.3125-1.375 0-.2852.303-.805 1.3125-1.375 1.0091-.5694 2.5883-1.12255 4.5625-1.59375 3.9484-.9427 9.5-1.53125 15.625-1.53125z" fill="#fff" opacity=".25"/><use height="1085" transform="translate(.000005 9)" width="5033" xlink:href="#i"/><use height="1085" transform="translate(.000005 18)" width="5033" xlink:href="#i"/><path d="m63.000555 58.9673c-6.6937 0-12.762.7304-17.2188 1.9375-2.2282.6036-4.0271 1.2932-5.375 2.1563-1.3477.863-2.4062 1.9891-2.4062 3.4375-.062 8.7636.0002 17.6812.0002 26.5v.5c0 1.3963.9899 2.5081 2.3438 3.375 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875 1.3539-.8669 2.3438-1.9787 2.3438-3.375v-27c0-1.3529-1.3173-2.7252-2.406-3.4375-1.3478-.8631-3.1466-1.5527-5.375-2.1563-4.4568-1.2071-10.5251-1.9375-17.2188-1.9375zm0 2.0625c6.5612 0 12.5205.7295 16.75 1.875 2.1148.5728 3.7938 1.2452 4.875 1.9375 1.0811.6924 1.4062 1.3098 1.4062 1.6563s-.3251.9639-1.4062 1.6562c-1.0812.6924-2.7602 1.3648-4.875 1.9375-4.2295 1.1456-10.1888 1.875-16.75 1.875-6.5611 0-12.5205-.7294-16.75-1.875-2.1148-.5727-3.7939-1.2451-4.875-1.9375-1.0812-.6923-1.4063-1.3097-1.4062-1.6562 0-.3465.325-.9639 1.4062-1.6563 1.0811-.6923 2.7602-1.3647 4.875-1.9375 4.2295-1.1455 10.1889-1.875 16.75-1.875zm-23 8.5938c.1377.1.2601.2189.4062.3125 1.3479.863 3.1467 1.5527 5.375 2.1562 4.4568 1.207 10.5251 1.9375 17.2188 1.9375s12.762-.7305 17.2188-1.9375c2.2283-.6035 4.0272-1.2932 5.375-2.1562.1461-.094.2685-.2128.4062-.3125v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5zm0 9c .1172.083.22.1708.3438.25 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875.1238-.079.2266-.1666.3438-.25v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5zm0 9c .1172.083.22.1708.3438.25 1.3536.8669 3.2039 1.5826 5.4374 2.1875 4.4672 1.2098 10.5182 1.9375 17.2188 1.9375s12.7517-.7277 17.2188-1.9375c2.2335-.6049 4.0837-1.3206 5.4374-2.1875.1238-.079.2266-.1666.3438-.25v5.375.5c0 .3986-.3624.9991-1.4375 1.6875s-2.7341 1.3661-4.8437 1.9375c-4.2193 1.1427-10.1646 1.875-16.7188 1.875s-12.4994-.7323-16.7188-1.875c-2.1096-.5714-3.7686-1.2491-4.8437-1.9375s-1.4375-1.2889-1.4375-1.6875v-.5z" fill="url(#a)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-basic.svg b/benchmarks/hicolor-apps/libreoffice-basic.svg
new file mode 100644
index 00000000..04cb136e
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-basic.svg
@@ -0,0 +1 @@
+<svg height="256.05078" viewBox="0 0 256 256.05078" width="256" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientTransform="matrix(.2 0 0 1 33.8 1176.6227)" gradientUnits="userSpaceOnUse" x1="370" x2="370" y1="-985.763" y2="-933.638"><stop offset="0" stop-color="#0369a3"/><stop offset="1" stop-color="#023f62"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="235" x2="25" xlink:href="#d" y1="256.05078" y2="1.050781"/><linearGradient id="c" gradientTransform="matrix(1.004 0 0 1.0093981 64.493 1423.0889)" gradientUnits="userSpaceOnUse" x1="151.8994" x2="-27.383467" xlink:href="#d" y1="-1166.1295" y2="-1398.9415"/><linearGradient id="d"><stop offset="0" stop-color="#535353"/><stop offset="1" stop-color="#7e7e7e"/></linearGradient><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="217.00001" x2="37.00001" y1="241.0001" y2="11.0001"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><text x="-93.874512" y="1478.8729"/><text fill="#717171" font-family="sans-serif" letter-spacing="0" text-anchor="middle" word-spacing="0" x="140.69452" y="270.56812"><tspan x="140.69452" y="270.56812">256</tspan></text><path d="m0 0h256v256h-256z" fill="#ffc8c8" fill-opacity=".748634"/><path d="m31.93359.0625c-4.133 0-7.93359 3.68103-7.93359 8.11914v239.93945c0 3.86723 3.62281 7.92969 7.75781 7.92969h191.98438c4.627 0 8.25-3.86992 8.25-7.74414v-149.185546c0-4.224155-.512-6.181567-3.5-9.167969l-85.32227-85.283205c-2.988-2.9854-5.274-4.5253-9.5-4.5293l-101.73633-.0781zm138.8418.0371c-6.838 0-7.13748 7.11382-3.52148 10.74609v.002l53.18945 53.431644c4.34 4.357128 11.55273 3.321844 11.55273-3.550781v-52.431643c0-4.22715-3.82625-8.19726-8.03125-8.19726h-53.18945z" fill="url(#c)" stroke-width="15.997"/><path d="m36.00002 12v232h184v-148l-86-84z" fill="url(#e)"/><path d="m80.04 111.05078h8v4h-8zm36 16h8v4h-8zm-4 16h8v4h-8zm64 8h16v4h-16zm8 8h4v4h-4zm-80 16h8v4h-8z" fill="#d36118"/><g fill="#43c330"><path d="m80 103.05078h44v4h-44z"/><path d="m80 119.05078h24v4h-24z"/><path d="m80 127.05078h24v4h-24z"/><path d="m96 151.05078h16v4h-16z"/><path d="m96 143.05078h4v4h-4z"/><path d="m96 159.05078h16v4h-16z"/><path d="m172 159.05078h8v4h-8z"/><path d="m100 167.05078h4v4h-4z"/><path d="m88 175.05078h4v4h-4z"/><path d="m96 183.05078h16v4h-16z"/><path d="m96 191.05078h16v4h-16z"/></g><path d="m116.04 191.03278h4v4h-4z" fill="url(#a)"/><path d="m100.04 199.03278h8v4h-8z" fill="#d36118"/><g fill="#1c99e0"><path d="m120 119.05078h24v4h-24z"/><path d="m64 103.05078h12v4h-12z"/><path d="m128 103.05078h12v4h-12z"/><path d="m64 111.05078h12v4h-12z"/><path d="m92 111.05078h8v4h-8z"/><path d="m104 111.05078h24v4h-24z"/><path d="m64 119.05078h12v4h-12z"/><path d="m108 119.05078h8v4h-8z"/><path d="m104 143.05078h4v4h-4z"/><path d="m80 135.05078h8v4h-8z"/><path d="m92 135.05078h16v4h-16z"/><path d="m112 135.05078h16v4h-16z"/><path d="m152 135.05078h11.6v4h-11.6z"/><path d="m80 143.05078h12v4h-12z"/><path d="m124 143.05078h4v4h-4z"/><path d="m108 127.05078h4v4h-4z"/><path d="m116 151.04678h4v4h-4z"/><path d="m188 159.05078h4v4h-4z"/><path d="m80 167.05078h16v4h-16z"/><path d="m80 175.05078h4v4h-4z"/><path d="m96 175.05078h4v4h-4z"/><path d="m116 183.05078h4v4h-4z"/><path d="m80 199.05078h8v4h-8z"/><path d="m92 199.05078h4v4h-4z"/><path d="m64 207.05078h8v4h-8z"/><path d="m76 207.05078h8v4h-8z"/><path d="m112 199.05078h12v4h-12z"/><path d="m172 199.05078h12v4h-12z"/></g><path d="m160.04 199.03278h8v4h-8z" fill="#d36118"/><path d="m136.46357 140.2148-.002.002c-5.2706 1.653-10.04061 4.43989-14.00781 8.08789l5.21094 11.85156c-1.4117 1.8107-2.57142 3.82397-3.44922 5.98047l-12.87695 1.4082c-.57761 2.603-.88282 5.31205-.88282 8.08985 0 2.774.30332 5.48489.88282 8.08789l12.87695 1.41015c.8797 2.1584 2.03752 4.16782 3.44922 5.97852l-5.20899 11.84961c3.971 3.648 8.73912 6.43874 14.00782 8.08984l7.6582-10.44336c1.1286.152 2.27882.23633 3.44922.23633 1.1666 0 2.31866-.0824 3.44726-.23633l7.65821 10.44336c5.2725-1.653 10.03871-4.44184 14.00781-8.08984l-5.20899-11.85156c1.4098-1.8126 2.56952-3.82207 3.44922-5.98047l12.87696-1.40625c.5795-2.603.88476-5.31395.88476-8.08985 0-2.7778-.30336-5.48874-.88476-8.08984l-12.875-1.4082c-.8778-2.1565-2.03942-4.16977-3.44922-5.98047l5.21093-11.85156c-3.971-3.648-8.73721-6.43679-14.00781-8.08789l-7.65625 10.44335c-1.1286-.15199-2.28077-.23632-3.45117-.23632-1.1723 0-2.32252.0805-3.44922.23632zm11.08984 21.89257c6.422 0 11.69726 5.21852 11.69726 11.63672 0 6.422-5.27711 11.69922-11.69531 11.69922l-.004-.004c-6.4182 0-11.63672-5.27717-11.63672-11.69727 0-6.4163 5.21857-11.63477 11.63867-11.63477z" fill="url(#b)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-calc.svg b/benchmarks/hicolor-apps/libreoffice-calc.svg
new file mode 100644
index 00000000..90e71f90
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-calc.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"><stop offset="0" stop-color="#18a303"/><stop offset="1" stop-color="#43c330"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="546" x2="458" xlink:href="#a" y1="121.99995" y2="5.99995"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="508.06174" x2="508.06174" y1="109.9985" y2="83.998497"><stop offset="0" stop-color="#727272"/><stop offset="1" stop-color="#9a9a9a"/></linearGradient><linearGradient id="d" gradientTransform="matrix(.948718 0 0 1.3 -288.38576 1491.7273)" gradientUnits="userSpaceOnUse" x1="829.36053" x2="829.36053" y1="-1064.7994" y2="-1082.3413"><stop offset="0" stop-color="#e4e4e4"/><stop offset="1" stop-color="#f9f9f9"/></linearGradient><linearGradient id="e" gradientTransform="matrix(.714286 0 0 -1.55555 125.07024 -1571.1037)" gradientUnits="userSpaceOnUse" x1="525.63947" x2="525.63947" y1="-1078.6444" y2="-1068.7872"><stop offset="0" stop-color="#63bbee"/><stop offset="1" stop-color="#aadcf7"/></linearGradient><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="512.65552" x2="512.65552" y1="95.0298" y2="85.998596"><stop offset="0" stop-color="#a33e03"/><stop offset="1" stop-color="#c15414"/></linearGradient><linearGradient id="g" gradientTransform="matrix(.714286 0 0 -2.11111 133.07024 -2170.0637)" gradientUnits="userSpaceOnUse" x1="525.63947" x2="525.63947" y1="-1078.6444" y2="-1068.7872"><stop offset="0" stop-color="#f09e6f"/><stop offset="1" stop-color="#f9cfb5"/></linearGradient><linearGradient id="h" gradientTransform="matrix(.714286 0 0 -.888884 141.07024 -852.34365)" gradientUnits="userSpaceOnUse" x1="525.63947" x2="525.63947" y1="-1078.6444" y2="-1068.7872"><stop offset="0" stop-color="#f5ce53"/><stop offset="1" stop-color="#fde9a9"/></linearGradient><linearGradient id="i" gradientTransform="matrix(.714286 0 0 -1.33333 149.07024 -1331.5137)" gradientUnits="userSpaceOnUse" x1="525.63947" x2="525.63947" y1="-1078.6444" y2="-1068.7872"><stop offset="0" stop-color="#8ee780"/><stop offset="1" stop-color="#ccf4c6"/></linearGradient><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="k" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" xlink:href="#a" y1="991.62115" y2="977.11713"/><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#k)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#j)"/><g transform="translate(-437.99866 2)"><path d="m469 53.998v2 8 2 8 2 8 2 8 2 8 2h60v-2-50h-58z" fill="url(#b)"/><g fill="#92e285"><path d="m470.99924 55.99855h17v8h-17z"/><path d="m489.99748 55.99855h17.99994v8h-17.99994z"/><path d="m509.99924 55.99855h17v8h-17z"/></g><g fill="#ccf4c6"><path d="m470.99924 65.99855h17v8h-17z"/><path d="m509.99924 65.99855h17v8h-17z"/><path d="m489.99748 75.99855h17.99994v8h-17.99994z"/><path d="m509.99924 75.99855h17v8h-17z"/><path d="m470.99924 75.99855h17v8h-17z"/><path d="m489.99748 85.99855h17.99994v8h-17.99994z"/><path d="m470.99924 85.99855h17v8h-17z"/><path d="m489.99748 95.99855h17.99994v8h-17.99994z"/><path d="m470.99924 95.99855h17v8h-17z"/></g><path d="m493.99924 81.99855h39v28h-39z" fill="url(#c)"/><path d="m495.99924 83.99855h35v24h-35z" fill="url(#d)"/><path d="m497.99924 90.99855h7v15.9999h-7z" fill="#18a303"/><path d="m498.99924 105.99855h5v-14h-5z" fill="url(#e)"/><path d="m505.99924 85.99855h7v20.9999h-7z" fill="url(#f)"/><path d="m506.99924 105.99855h5v-19h-5z" fill="url(#g)"/><path d="m513.99924 96.99855h7v9.9999h-7z" fill="#c99c00"/><path d="m514.99924 105.99855h5v-8h-5z" fill="url(#h)"/><path d="m521.99924 92.99855h7v14h-7z" fill="#43c330"/><path d="m522.99924 105.99855h5v-12h-5z" fill="url(#i)"/><path d="m489.99748 65.99855h17.99994v8h-17.99994z" fill="#ccf4c6"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-chart.svg b/benchmarks/hicolor-apps/libreoffice-chart.svg
new file mode 100644
index 00000000..d3c4dfd1
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-chart.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="114.53351" x2="12.00134" xlink:href="#b" y1="128" y2="-2"/><linearGradient id="b"><stop offset="0" stop-color="#535353"/><stop offset="1" stop-color="#7e7e7e"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="d" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" xlink:href="#b" y1="991.62115" y2="977.11713"/><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#d)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#c)"/><path d="m31.001355 53v55h64v-55zm2 2h60v51h-60z" fill="url(#a)" opacity=".6"/><path d="m64.001355 81.9999h12v19.9998h-12z" fill="#e9b913"/><path d="m36.001355 69.9999h12v31.9998h-12z" fill="#1c99e0"/><path d="m50.001355 59.9999h12v41.9997h-12z" fill="#d36118"/><path d="m78.001355 73.9999h12v28h-12z" fill="#43c330"/><path d="m37.001355 100.9999h10v-30h-10z" fill="#aadcf7"/><path d="m51.001355 100.9999h10v-40h-10z" fill="#f9cfb5"/><path d="m65.001355 100.9999h10v-18h-10z" fill="#fde9a9"/><path d="m79.001355 100.9999h10v-26h-10z" fill="#ccf4c6"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-draw.svg b/benchmarks/hicolor-apps/libreoffice-draw.svg
new file mode 100644
index 00000000..764dd79a
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-draw.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="b" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" y1="991.62115" y2="977.11713"><stop offset="0" stop-color="#c99c00"/><stop offset="1" stop-color="#e9b913"/></linearGradient><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#b)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#a)"/><circle cx="50.996918" cy="73.994064" fill="#f09e6f" opacity=".6" r="16.99995"/><circle cx="51.005981" cy="73.998161" fill="#f9cfb5" r="19.00008" stroke="#d36118" stroke-width="2.000006"/><path d="m62.000595 99.998599c-.5523-.0001-.9999-.4477-1-1v-32c .0001-.5523.4477-.9999 1-1h32c .5523.0001.9999.4477 1 1v32c-.0001.5523-.4477.9999-1 1zm1-2h30v-30h-30z" fill="#1c99e0"/><path d="m63.000595 97.998599h30v-30h-30z" fill="#aadcf7"/><path d="m55.600895 74.077699c-.2217.079-.4124.2313-.5295.424l-9.8301 16.0413-10.0585 15.715301c-.4092.5886-.1611 1.7898 1.0709 1.7394h19.7251 19.3839c1.1879 0 1.4314-1.2862.7975-2.39l-9.4439-15.064701-9.8301-16.0413c-.2412-.4057-.825-.5983-1.2853-.424zm.3779 2.8974 8.9984 14.4866 8.9983 14.557301h-17.9967-17.9966l8.9982-14.557301z" fill="#e9b913"/><path d="m73.992515 106.00275h-18.00004-18.00004l9.00013-14.500016 8.99991-14.499993 8.99991 14.499993z" fill="#fde9a9"/><g fill="#ccf4c6" stroke="#43c330" stroke-linecap="square"><path d="m73.501355 104.5h5v5h-5z"/><path d="m33.501355 104.5h5v5h-5z"/><path d="m53.501355 72.5h5v5h-5z"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-impress.svg b/benchmarks/hicolor-apps/libreoffice-impress.svg
new file mode 100644
index 00000000..e7b38e31
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-impress.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#18a303"/><stop offset="1" stop-color="#106802"/></linearGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="108.00537" x2="19.32269" y1="120.77719" y2="6.715284"><stop offset="0" stop-color="#6e6e6e"/><stop offset="1" stop-color="#b0b0b0"/></linearGradient><linearGradient id="c" gradientTransform="matrix(.140493 0 0 .999984 67.079595 1284.6174)" gradientUnits="userSpaceOnUse" x1="-17" x2="144" y1="-1194.6378" y2="-1194.6378"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset=".49305555" stop-color="#fff"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="107.00134" x2="19.58081" xlink:href="#e" y1="120.91576" y2="8"/><linearGradient id="e"><stop offset="0" stop-color="#a33e03"/><stop offset="1" stop-color="#d36118"/></linearGradient><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="g" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" xlink:href="#e" y1="991.62115" y2="977.11713"/><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#g)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#f)"/><path d="m60.001355 98.998047v2.080083l-12 7.91992h5.87891l8.85547-7h .51562l8.75 7h6l-12-8v-2.000003z" fill="#646464"/><path d="m32.001355 55v44h62v-44zm3 2h56c .554 0 1 .446 1 1v38c0 .554-.446 1-1 1h-56c-.554 0-1-.446-1-1v-38c0-.554.446-1 1-1zm2 2.998047v4h52v-4zm10 7v4h32v-4zm-3 8v4h15v-4zm-5 .0039c-1.10457-.000001-2 .89543-2 2s .89543 2.000001 2 2c1.10457.000001 2-.89543 2-2s-.89543-2.000001-2-2zm5 6.996094v4h15v-4zm-5 .0039c-1.10457-.000001-2 .89543-2 2s .89543 2.000001 2 2c1.10457.000001 2-.89543 2-2s-.89543-2.000001-2-2zm5 6.996094v4h15v-4zm-5 .0039c-1.10457-.000001-2 .89543-2 2s .89543 2.000001 2 2c1.10457.000001 2-.89543 2-2s-.89543-2.000001-2-2z" fill="url(#d)"/><path d="m64.690905 89.9986h22.6194v1h-22.6194z" fill="url(#c)"/><path d="m63.001355 74.998047v18h26v-18zm2 2h22v14h-22zm1 2v1h20v-1zm0 3v1h20v-1zm0 3v1h20v-1zm0 3v1h20v-1z" fill="url(#b)"/><path d="m84.472055 77.984375a1.50015 1.50015 0 0 0 -1.03125.453125l-6.43945 6.439453-2.93945-2.939453a1.50015 1.50015 0 0 0 -2.1211 0l-5.5 5.5a1.50015 1.50015 0 1 0 2.1211 2.121094l4.43945-4.439453 2.93945 2.939453a1.50015 1.50015 0 0 0 2.1211 0l7.5-7.5a1.50015 1.50015 0 0 0 -1.08985-2.574219z" fill="url(#a)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-main.svg b/benchmarks/hicolor-apps/libreoffice-main.svg
new file mode 100644
index 00000000..918722b2
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-main.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="b" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" y1="991.62115" y2="977.11713"><stop offset="0" stop-color="#535353"/><stop offset="1" stop-color="#7e7e7e"/></linearGradient><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#b)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#a)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-math.svg b/benchmarks/hicolor-apps/libreoffice-math.svg
new file mode 100644
index 00000000..49fc9c52
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-math.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="117.00134" x2="12.00134" xlink:href="#b" y1="128" y2="-.082062"/><linearGradient id="b"><stop offset="0" stop-color="#535353"/><stop offset="1" stop-color="#7e7e7e"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="117.00134" x2="12.00134" xlink:href="#b" y1="128" y2="-.003866"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="e" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" xlink:href="#b" y1="991.62115" y2="977.11713"/><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#e)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#d)"/><rect fill="#fcede4" height="40" rx=".508197" width="62" x="32.001343" y="54"/><path d="m31.001355 53v41 14h64v-14-41zm2.99805 2h58c .554 0 1 .446 1 1v36c0 .554-.446 1-1 1h-58c-.554 0-1-.446-1-1v-36c0-.554.446-1 1-1zm-1 41h60v10h-60z" fill="url(#c)" opacity=".6"/><path d="m36.001355 56v1h-1v1h1v1h1.09961v-1h .90039v-1h-.90039v-1zm26 0v1h-3v1h3v1h1.09961v-1h2.90039v-1h-2.90039v-1zm26 0v1h-1v1h1v1h1.09961v-1h .90039v-1h-.90039v-1zm-49 1v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm12 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm-47 3v3h1.09961v-3zm26 0v3h1.09961v-3zm26 0v3h1.09961v-3zm-52 4v3h1.09961v-3zm26 0v3h1.09961v-3zm26 0v3h1.09961v-3zm-53 4v1h1v2h1.09961v-2h .90039v-1h-.90039-1.09961zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v2h1.09961v-2h2.90039v-1h-2.90039-.0996-1-3zm8 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h1v2h1.09961v-2h .90039v-1h-.90039-1.09961zm-51 4v3h1.09961v-3zm26 0v3h1.09961v-3zm26 0v3h1.09961v-3zm-52 4v3h1.09961v-3zm26 0v3h1.09961v-3zm26 0v3h1.09961v-3zm-52 4v3h1.09961v-3zm26 0v3h1.09961v-3zm26 0v3h1.09961v-3zm-52 4v3h1.09961v-3zm26 0v3h1.09961v-3zm26 0v3h1.09961v-3zm-52 4v1h-1v1h1v1h1.09961v-1h .90039v-1h-.90039v-1zm26 0v1h-3v1h3v1h1.09961v-1h2.90039v-1h-2.90039v-1zm26 0v1h-1v1h1v1h1.09961v-1h .90039v-1h-.90039v-1zm-49 1v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm12 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1zm4 0v1h3v-1z" fill="#f09e6f"/><path d="m58.997445 56.992188-10.63086 25.035156-6.29687-11.917969-6.05274 2.232422 1.07618 3.634765 2.91601-1.482421 7.49024 15.498047h1.77539l12.23047-29h24.50976v2h3.00195v-6h-30.01757zm3.47071 11.007812 9.66992 10.726562v.136719l-9.98047 11.136719h4.96094l7.74219-8.287109h.15429l8.51172 8.287109h5.37305l-10.95508-11.318359v-.136719l10.23242-10.544922h-4.96094l-8.09765 7.650391h-.1543l-7.12109-7.650391zm8.42968 28.900391c-.71051 0-1.18523.105306-1.42773.316406-.23971.2083-.36143.627312-.36133 1.257812v1.027344c-.0001.428-.0754.724017-.22656.886717-.1512.1629-.42778.24414-.83008.24414h-.26562v.61133h.26562c.3995 0 .67497.0825.82617.24805.1542.1655.23037.46373.23047.89453v1.02344c-.0001.6306.12162 1.0506.36133 1.26172.2425.21119.71722.3164 1.42773.3164h.2754v-.61523h-.30079c-.39951 0-.6606-.0609-.7832-.1836-.1198-.1227-.17969-.38887-.17969-.79687v-1.06055c0-.4451-.063-.77005-.1914-.97265-.1284-.20261-.35127-.34293-.66797-.41993.3139-.0713.53371-.20755.66211-.41015.1309-.2026.19726-.52857.19726-.976566v-1.060546c0-.4052.0598-.668316.17969-.791016.1226-.1254.3837-.189353.7832-.189453h.30079v-.611328zm6.9668 0v .611328h.29102c.40241.0001.66441.06385.78711.189453.123.1255.18359.388615.18359.791016v1.060546c0 .447996.065.773966.19336.976566.1312.2026.35407.33915.66797.41015-.3167.077-.53957.21732-.66797.41993-.1286.20259-.19336.52755-.19336.97265v1.06055c0 .4023-.0609.66551-.18359.79101-.1227.1253-.3847.18946-.78711.18946h-.29102v.61523h.26563c.71041 0 1.18412-.1052 1.42382-.3164.23971-.21111.35938-.63112.35938-1.26172v-1.02344c0-.4308.0772-.72903.22851-.89453.154-.1652.43169-.24805.83399-.24805h.27344v-.61133h-.27344c-.4023 0-.67998-.0815-.83399-.24414-.15089-.1627-.22851-.458717-.22851-.886717v-1.027344c0-.6305-.11967-1.049512-.35938-1.257812-.2397-.2111-.71341-.316406-1.42382-.316406zm-14.76758.878906v1.361328h-1.28125v.613281h1.28125v2.601564c0 .5792.12077.98781.36328 1.22461.2426.2368.65939.35547 1.25.35547h.9629v-.63086h-.88672c-.33381 0-.56708-.0692-.70118-.20899-.1341-.1399-.20117-.38643-.20117-.74023v-2.601564h1.78907v-.613281h-1.78907v-1.361328zm-15.27734 1.119141c-.57641 0-1.01898.125853-1.33008.376953-.31101.2482-.4668.601144-.4668 1.060549 0 .3624.1042.65013.3125.86133.20831.2082.53849.35631.99219.44531l.29492.0586.0352.0117c.699.1399 1.04883.39066 1.04883.75586 0 .2539-.0959.4531-.28711.5957-.1912.1397-.4605.20899-.80859.20899-.23972 0-.49548-.0373-.76368-.11133-.2682-.0771-.54789-.1906-.84179-.3418v.81446c.3025.0998.58209.1717.84179.2207.2596.051.50919.0781.7461.0781.5992 0 1.06759-.13303 1.40429-.39843.3367-.2682.50391-.6396.50391-1.11328 0-.35661-.10023-.64665-.30273-.86915-.1998-.2226-.49581-.36937-.88672-.44335l-.31641-.0606c-.52221-.0999-.84927-.203-.98047-.3086-.1309-.1056-.19726-.26451-.19726-.47851 0-.2368.0876-.413245.26171-.527345.17691-.1165.44419-.175781.80079-.175781.2369 0 .46895.03361.69726.09961.2282.0656.45429.163622.67969.294922v-.769531-.002c-.2283-.0942-.46037-.164938-.69727-.210938-.23681-.049-.48343-.07227-.74023-.07227zm5.02148.01953c-.57641 0-1.03031.223875-1.36132.671875-.331.447997-.4961 1.068127-.4961 1.861327 0 .7789.1651 1.39084.4961 1.83594.33381.4422.78781.66406 1.36132.66406.2882 0 .54101-.0639.75782-.18945.2198-.1283.39308-.31008.52148-.54688v2.43555h.79297v-6.617188h-.79297v.611328c-.1313-.2368-.30569-.416462-.52539-.539062-.21691-.1254-.46861-.1875-.75391-.1875zm6.6836.07617c-.3738 0-.69875.09084-.97266.273437-.2711.1797-.47231.439792-.60351.779305v-.937508h-.79102v4.792968h.79102v-2.38281c0-.582.13092-1.02774.39062-1.33594.25961-.308195.63419-.460937 1.125-.460937.2083 0 .40022.02984.57422.08984.1741.06.34536.153852.51367.285157v-.802735c-.1541-.1028-.31607-.179516-.48437-.228516-.1684-.049-.34896-.07227-.54297-.07227zm12.70703.02148 1.7168 2.294922-1.88477 2.5h.91211l1.40039-1.92188 1.40234 1.92188h.91211l-1.88281-2.5 1.7168-2.294922h-.88672l-1.26172 1.734372-1.27148-1.734372zm-19.26563.570313c.3795-.000001.66538.156804.85938.470699.1973.311.29492.76915.29492 1.37695 0 .6077-.098 1.06892-.29492 1.38282-.194.311-.47988.46679-.85938.46679s-.66722-.15579-.86132-.46679c-.1907-.311-.28711-.77222-.28711-1.38282 0-.6107.096-1.06986.28711-1.38086.1941-.310989.48182-.466789.86132-.466789z" fill="url(#a)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/libreoffice-writer.svg b/benchmarks/hicolor-apps/libreoffice-writer.svg
new file mode 100644
index 00000000..4df452c3
--- /dev/null
+++ b/benchmarks/hicolor-apps/libreoffice-writer.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a"><stop offset="0" stop-color="#666"/><stop offset="1" stop-color="#333"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#0369a3"/><stop offset="1" stop-color="#1c99e0"/></linearGradient><linearGradient id="c" gradientTransform="matrix(0 .791084 -1.28 0 1499.6005 -282.0136)" gradientUnits="userSpaceOnUse" x1="445.69522" x2="441.38797" y1="1103.5776" y2="1099.8198"><stop offset="0" stop-color="#e9b913"/><stop offset="1" stop-color="#ff0"/></linearGradient><linearGradient id="d" gradientTransform="matrix(4.19983 0 0 3.9111 -1392.9394 -4517.0536)" gradientUnits="userSpaceOnUse" x2="0" y1="1173" y2="1178"><stop offset="0" stop-color="#0369a3"/><stop offset="1" stop-color="#023f62"/></linearGradient><linearGradient id="e" gradientTransform="matrix(1.19997 0 0 1.22222 -281.19161 858.5534)" gradientUnits="userSpaceOnUse" x2="0" y1="-629.66907" y2="-635.54944"><stop offset="0" stop-color="#18a303"/><stop offset="1" stop-color="#106802"/></linearGradient><linearGradient id="f" gradientTransform="matrix(4.19983 0 0 3.9111 -1392.9394 -4521.9436)" gradientUnits="userSpaceOnUse" x2="0" xlink:href="#a" y1="1173" y2="1178"/><linearGradient id="g" gradientTransform="matrix(-4.19983 0 0 3.9111 1540.9405 -4523.1636)" gradientUnits="userSpaceOnUse" x2="0" xlink:href="#a" y1="1173" y2="1178"/><linearGradient id="h" gradientTransform="matrix(4.4999 0 0 3.66665 -942.97741 2199.6564)" gradientUnits="userSpaceOnUse" x2="0" y1="-581.63782" y2="-578.63782"><stop offset="0" stop-color="#63bbee"/><stop offset="1" stop-color="#aadcf7"/></linearGradient><linearGradient id="i" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" xlink:href="#b" y1="130" y2="14"/><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="108.00134" x2="20.00134" y1="122" y2="6"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="k" gradientTransform="matrix(7.99974 0 0 7.9977797 -873.96742 -7808.7674)" gradientUnits="userSpaceOnUse" x1="122.75008" x2="111.74973" xlink:href="#b" y1="991.62115" y2="977.11713"/><path d="m17.253295 0c-.25037 0-.50072.011156-.75.035156-3.66708.6998-4.56576 2.2662469-4.5 5.9980468v115.9687472c.0004 4.1875 1.81149 5.99765 6 5.99805h91.998055c4.1885-.0004 5.99764-1.81055 5.99804-5.99805v-71.818356c.048-2.1119-.78004-4.230247-2.25-5.748047l-42.160145-42.1503908c-1.51819-1.4691999-3.63759-2.2988999-5.75-2.25h-47.83595c-.24919-.024-.49962-.0351562-.75-.0351562zm70.00978.013672c-.20997 0-.41948.016828-.62695.048828-2.66247.8528-3.55843 4.904547-1.50586 6.810547l24.095695 24.220703c2.22593 2.1217 6.6581.306209 6.77538-2.775391v-24.220703c-.00024-2.1136998-1.91298-4.034856-4.01561-4.035156h-24.093755c-.20758-.032-.41894-.048828-.6289-.048828z" fill="url(#k)"/><path d="m18.001355 6v116h92.000015v-72l-43.999995-44z" fill="url(#j)"/><path d="m31.001355 55.996094v4h18v-4zm21.99805.002v28h42v-28zm3.00195 3.001906h36v22h-36zm-25 4.996094v4h18v-4zm0 8v4h18v-4zm0 8v4h18v-4zm0 8v4h64v-4zm0 8v4h64v-4zm0 7.999996v4h42v-4z" fill="url(#i)"/><path d="m56.001305 58.9987h35.99924v21.9999h-35.99924z" fill="url(#h)"/><path d="m82.400745 65.1097c2.39995 1.2223 6.5708 5.4785 9.59846 8.5556v3.6666h-27.59877c4.80059-6.111 12.00044-9.7777 18.00031-12.2222z" fill="url(#g)"/><path d="m73.588425 72.2139.20971-1.7259 3.15139-1.3732 1.77234-1.6867 3.11639-1.287-.81326 2.0851-1.21491 2.1676-.72316 2.3557-.50012 1.3573z" fill="#333"/><path d="m74.600905 70.6097c-3.59197-3.0353-5.39988-5.5-7.79983-9.1666-.70179.2159-.67498.1338-1.19998 0 0 0-3.21063 4.8582-4.7999 7.3333-1.58925 2.4752-4.80059 6.1111-4.80059 6.1111v2.4444h27.59878s-6.59344-4.8509-8.99848-6.7221z" fill="url(#f)"/><path d="m92.000545 74.8875h-1.54688l-6.85294 1.2222s-6.77196-1.8333-7.79068-1.8333c-1.00092 0-4.20908.6111-4.80941.6111-.42074 0-2.99959-1.2222-3.60943-1.2222-1.00619 0-2.16569 1.2986-5.16562 1.8333 0 0-.8619-1.9478-1.42439-1.8333-3.59992 1.4132-4.80059 1.2222-4.80059 1.2222v6.1111h35.9986l.001-6.1111h.00014z" fill="url(#e)"/><path d="m56.001305 76.1097-.0007 4.8889h31.20004l1.19998-1.2223-1.19998-1.2221-2.39995-1.2223-5.99988-1.2221-5.99987-.6112-5.39988.6112h-7.19985-4.19991z" fill="url(#d)"/><path d="m58.401255 73.6653 1.70967-2.7954 2.02641-2.4427 1.54734-2.8707 1.91642-2.8912-1.30074 3.6512-.95243 3.0079-.46065 1.8973-.85958 2.0216c-.34603-.2571-.78349-.2666-1.17801-.397l-1.12659.4498z" fill="#333"/><path d="m75.200895 73.6653-1.74718-2.6968-3.09839-3.4415-2.56346-3.4328-.99079-1.4289 1.07384 3.7096 1.17772 2.2247 1.04471 3.3983.30366 1.6674 1.07862.3681 1.64879-.389c.69217-.07 1.38438.013 2.07248.021z" fill="#808080"/><path d="m62.803405 73.7194 1.29015-3.3187.62925-3.4258.91011-2.115.56817-2.1946.7887 2.2581.22406 2.1565.95403 1.9211.94577 2.2071.1768 1.5591-1.58862.4542-1.50905-.5992-1.66818 1.1023h-1.72119v-.01z" fill="#666"/><path d="m78.269745 74.2786-2.10187-1.5431-1.34246-1.0907 1.30382 2.0694z" fill="#808080"/><path d="m80.030725 72.807.74175-2.4329.91009-2.115.56818-2.1944.7887 2.2581 1.01154 1.9273.72905 1.9211-.10416 2.0544 1.00178 1.0243-2.0623-.1136-4.16225-.8773.57766-1.4523z" fill="#666"/><path d="m91.513055 74.1618-1.40969-.8635-1.97342-2.7541-2.90095-2.5543-2.26576-1.9252.43635 1.6088 2.0027 3.2177.21973 2.9019 1.20364.9416 2.69994-.5347 1.98746-.038z" fill="#808080"/><path d="m57.201275 77.3319-1.19997 3.6667h29.99936v-1.2223l-1.19997-1.2221-5.99988-1.2223-5.99987-.611-5.99987.611-6.4938.1823z" fill="#0369a3"/><path d="m69.201025 79.7763 1.19998-1.2221h4.79989l3.59992 1.2221 1.19998 1.2223h-2.39995z" fill="#1c99e0" opacity=".5"/><path d="m92.000605 65.00274c-3.31371 0-6-2.686297-6-6.00001h6z" fill="url(#c)" opacity=".74"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/nl.hjdskes.gcolor3.svg b/benchmarks/hicolor-apps/nl.hjdskes.gcolor3.svg
new file mode 100644
index 00000000..5c0b45d3
--- /dev/null
+++ b/benchmarks/hicolor-apps/nl.hjdskes.gcolor3.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="c"><stop offset="0" stop-color="#241f31"/><stop offset="1" stop-color="#3d3846"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#e01b24"/><stop offset="1" stop-color="#f8e45c"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#2ec27e"/><stop offset="1" stop-color="#57e389" stop-opacity="0"/></linearGradient><linearGradient xlink:href="#c" id="e" x1="127.947" y1="224.053" x2="91.947" y2="188.053" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.04757 0 0 1.04757 -21.678 .634)"/><clipPath clipPathUnits="userSpaceOnUse" id="d"><rect ry="56.25" y="179.75" x="7.75" height="114.375" width="112.5" opacity=".1" fill="#3584e4" stroke-width="4"/></clipPath></defs><g transform="matrix(1.06667 0 0 1.06667 -4.267 -187.733)" clip-path="url(#d)" stroke-width=".938"><path d="M115.962 206a60 60 0 0 1 0 60L64 236z" fill="#3584e4"/><path d="M115.962 266A60 60 0 0 1 64 296v-60z" fill="#a347ba"/><path d="M64 176a60 60 0 0 1 51.962 30L64 236z" fill="#33d17a"/><path d="M12.038 206A60 60 0 0 1 64 176v60z" fill="#f6d32d"/><path d="M12.038 266a60 60 0 0 1 0-60L64 236z" fill="#ff7800"/><path d="M64 296a60 60 0 0 1-51.962-30L64 236z" fill="#ed333b"/></g><path d="M4.049 64.994A60 60 0 0 0 4 66a60 60 0 0 0 60 60 60 60 0 0 0 60-60 60 60 0 0 0-.035-1.006A60 60 0 0 1 64 124 60 60 0 0 1 4.049 64.994z" opacity=".2"/><path style="marker:none" d="M114.563 14a9.43 9.43 0 0 0-6.704 2.809l-.004-.006-9.699 9.699-6.06-6.063c-1.415-1.414-2.83 0-2.83 0l-4.489 4.489s-1.414 1.414 0 2.828l6.735 6.732L56 70c-3 4.5-1.5 9-6 13.5l4.5 4.5c4.5-4.5 10.583-2.95 13.5-6l35.512-35.512 6.722 6.723c1.415 1.414 2.829 0 2.829 0l4.488-4.488c1.414-1.415 0-2.828 0-2.828l-6.063-6.063 9.643-9.643.055-.054A9.427 9.427 0 0 0 114.563 14z" opacity=".1"/><path d="M93.46 30.54L56 68c-3 4.5-1.5 9-6 13.5l4.5 4.5c4.5-4.5 10.583-2.95 13.5-6l37.46-37.46z" style="marker:none" opacity=".6" fill="#fff"/><path d="M59 69.5L93.5 35" opacity=".6" fill="none" stroke="#fff" stroke-width="6" stroke-linecap="round"/><path d="M59 67.163l34.5-34.5" opacity=".6" fill="none" stroke="#fff" stroke-width="3" stroke-linecap="round"/><path d="M112.083 185.333a12.572 12.572 0 0 0-8.937 3.744l-.006-.006-12.93 12.931-8.084-8.083c-1.885-1.885-3.77 0-3.77 0l-5.985 5.985s-1.886 1.885 0 3.77l33.941 33.942c1.886 1.886 3.771 0 3.771 0l5.985-5.984c1.885-1.886 0-3.771 0-3.771l-8.083-8.083 12.857-12.857.074-.074-.002-.002a12.57 12.57 0 0 0 3.74-8.94c0-6.944-5.628-12.572-12.57-12.572z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="url(#e)" fill-rule="evenodd" transform="matrix(.75 0 0 .75 30.5 -127)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/orca.svg b/benchmarks/hicolor-apps/orca.svg
new file mode 100644
index 00000000..0b0a7356
--- /dev/null
+++ b/benchmarks/hicolor-apps/orca.svg
@@ -0,0 +1,1025 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="1.0"
+ width="48"
+ height="48"
+ id="svg5596">
+ <defs
+ id="defs5599">
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient12663"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.984808,0.173648,-0.173648,0.984808,-6.57769,0.52398)" />
+ <linearGradient
+ id="linearGradient11599">
+ <stop
+ style="stop-color:#5b5b5b;stop-opacity:1"
+ offset="0"
+ id="stop11601" />
+ <stop
+ style="stop-color:#979797;stop-opacity:1"
+ offset="0.5"
+ id="stop11603" />
+ <stop
+ style="stop-color:#454545;stop-opacity:1"
+ offset="1"
+ id="stop11605" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11573">
+ <stop
+ style="stop-color:#ef2929;stop-opacity:1"
+ offset="0"
+ id="stop11575" />
+ <stop
+ style="stop-color:#f79090;stop-opacity:1"
+ offset="0.5"
+ id="stop11585" />
+ <stop
+ style="stop-color:#ef2929;stop-opacity:1"
+ offset="1"
+ id="stop11577" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3394">
+ <stop
+ style="stop-color:#cc0000;stop-opacity:0.49803922"
+ offset="0"
+ id="stop3402" />
+ <stop
+ style="stop-color:#cc0000;stop-opacity:1"
+ offset="1"
+ id="stop3404" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3243">
+ <stop
+ style="stop-color:#ef2929;stop-opacity:1"
+ offset="0"
+ id="stop3245" />
+ <stop
+ style="stop-color:#efc8c8;stop-opacity:1"
+ offset="0.5"
+ id="stop3253" />
+ <stop
+ style="stop-color:#ef2929;stop-opacity:1"
+ offset="1"
+ id="stop3247" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3229">
+ <stop
+ style="stop-color:#ef2929;stop-opacity:1"
+ offset="0"
+ id="stop3231" />
+ <stop
+ style="stop-color:#f35e5e;stop-opacity:1"
+ offset="1"
+ id="stop3241" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3197">
+ <stop
+ style="stop-color:#cc0000;stop-opacity:1"
+ offset="0"
+ id="stop3199" />
+ <stop
+ style="stop-color:#cc0000;stop-opacity:0.49803922"
+ offset="0"
+ id="stop3205" />
+ <stop
+ style="stop-color:#cc0000;stop-opacity:1"
+ offset="1"
+ id="stop3201" />
+ </linearGradient>
+ <linearGradient
+ x1="32.169682"
+ y1="32.340691"
+ x2="36.310467"
+ y2="37.614323"
+ id="linearGradient2552"
+ xlink:href="#linearGradient2215"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.955799,0.125613,-0.13219,1.005843,8.433071,-4.87925)" />
+ <linearGradient
+ x1="16.920895"
+ y1="41.527054"
+ x2="14.717065"
+ y2="27.556486"
+ id="linearGradient4158"
+ xlink:href="#linearGradient4152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.386129,-2.59755)" />
+ <linearGradient
+ id="linearGradient4199">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.69072163"
+ offset="0"
+ id="stop4201" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1"
+ id="stop4203" />
+ </linearGradient>
+ <linearGradient
+ x1="5.5588484"
+ y1="8.7893238"
+ x2="26.936853"
+ y2="48.565983"
+ id="linearGradient4197"
+ xlink:href="#linearGradient4199"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.015688,0,0,1,-0.427129,-2.59755)" />
+ <linearGradient
+ id="linearGradient4152">
+ <stop
+ style="stop-color:#788492;stop-opacity:1"
+ offset="0"
+ id="stop4154" />
+ <stop
+ style="stop-color:#fafafa;stop-opacity:1"
+ offset="1"
+ id="stop4156" />
+ </linearGradient>
+ <linearGradient
+ x1="5.4860573"
+ y1="32.173634"
+ x2="12.296931"
+ y2="27.665829"
+ id="linearGradient4185"
+ xlink:href="#linearGradient4152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.290919,0,0,1.173295,-3.854317,-8.380223)" />
+ <linearGradient
+ x1="34.868965"
+ y1="39.944828"
+ x2="34.868965"
+ y2="43.475861"
+ id="linearGradient4273"
+ xlink:href="#linearGradient4242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.386129,-2.59755)" />
+ <linearGradient
+ x1="36.634483"
+ y1="38.124138"
+ x2="36.634483"
+ y2="42.427586"
+ id="linearGradient4265"
+ xlink:href="#linearGradient4242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.386129,-2.59755)" />
+ <linearGradient
+ x1="38.896549"
+ y1="38.482758"
+ x2="42.427586"
+ y2="38.482758"
+ id="linearGradient4256"
+ xlink:href="#linearGradient4242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.386129,-2.59755)" />
+ <linearGradient
+ id="linearGradient4242">
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0"
+ id="stop4244" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1"
+ id="stop4246" />
+ </linearGradient>
+ <linearGradient
+ x1="40.496552"
+ y1="37.848274"
+ x2="44.193104"
+ y2="37.848274"
+ id="linearGradient4248"
+ xlink:href="#linearGradient4242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.864739,0,0,0.753105,5.591471,7.01265)" />
+ <linearGradient
+ x1="-5.2845793"
+ y1="19.362175"
+ x2="33.728188"
+ y2="66.499512"
+ id="linearGradient4146"
+ xlink:href="#linearGradient2949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.943596,0,0,0.963374,6.792471,4.03365)" />
+ <linearGradient
+ id="linearGradient2215">
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0"
+ id="stop2217" />
+ <stop
+ style="stop-color:#505050;stop-opacity:1"
+ offset="1"
+ id="stop2219" />
+ </linearGradient>
+ <linearGradient
+ x1="26.247757"
+ y1="38.03194"
+ x2="23.782515"
+ y2="36.457325"
+ id="linearGradient4277"
+ xlink:href="#linearGradient2215"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0,0.967422,0.946165,0,-16.09433,2.21785)" />
+ <linearGradient
+ id="linearGradient2949">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.45038167"
+ offset="0"
+ id="stop2951" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.31297711"
+ offset="1"
+ id="stop2953" />
+ </linearGradient>
+ <linearGradient
+ x1="29.425014"
+ y1="33.593369"
+ x2="43.14069"
+ y2="38.189564"
+ id="linearGradient4301"
+ xlink:href="#linearGradient2949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-14.76113,-7.34755)" />
+ <linearGradient
+ id="linearGradient2879">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.17557251"
+ offset="0"
+ id="stop2881" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1"
+ id="stop2883" />
+ </linearGradient>
+ <radialGradient
+ cx="20.152544"
+ cy="33.636894"
+ r="15.291184"
+ fx="20.152544"
+ fy="33.636894"
+ id="radialGradient4312"
+ xlink:href="#linearGradient2879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.257225,0,24.98463)" />
+ <linearGradient
+ x1="52.717937"
+ y1="2.3161638"
+ x2="67.465988"
+ y2="2.3161638"
+ id="linearGradient7025"
+ xlink:href="#linearGradient6721"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.862482,0,0,0.580718,-16.25697,11.01348)" />
+ <linearGradient
+ x1="53.168766"
+ y1="24.244797"
+ x2="69.690994"
+ y2="24.244797"
+ id="linearGradient7020"
+ xlink:href="#linearGradient6651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.71944,0,0,0.718914,-7.696252,9.471728)" />
+ <linearGradient
+ x1="61.871845"
+ y1="29.615223"
+ x2="61.871845"
+ y2="41.459263"
+ id="linearGradient7017"
+ xlink:href="#linearGradient6629"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888619,0,0,0.718914,-18.29768,9.471728)" />
+ <linearGradient
+ x1="49.853039"
+ y1="64.259621"
+ x2="62.768223"
+ y2="64.259621"
+ id="linearGradient7014"
+ xlink:href="#linearGradient6748"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.718914,0,0,0.718914,-1.897103,-22.42481)" />
+ <linearGradient
+ x1="60.168766"
+ y1="40.119797"
+ x2="60.440994"
+ y2="43.869797"
+ id="linearGradient7010"
+ xlink:href="#linearGradient6651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.737307,0,0,0.770854,-8.532023,7.121636)" />
+ <linearGradient
+ x1="48.25"
+ y1="54.75"
+ x2="48.25"
+ y2="71.25"
+ id="linearGradient7005"
+ xlink:href="#linearGradient6835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.718914,0,0,0.718914,-1.897103,-20.68606)" />
+ <radialGradient
+ cx="26.78167"
+ cy="42.343147"
+ r="14.407301"
+ fx="26.78167"
+ fy="42.343147"
+ id="radialGradient6903"
+ xlink:href="#linearGradient6975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.282209,0,30.39355)" />
+ <linearGradient
+ x1="13.236155"
+ y1="37.752247"
+ x2="7.7521091"
+ y2="42.282146"
+ id="linearGradient2452"
+ xlink:href="#linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.852298,0,0,0.852298,-1.675107,3.753977)" />
+ <radialGradient
+ cx="26.78167"
+ cy="42.343147"
+ r="14.407301"
+ fx="26.78167"
+ fy="42.343147"
+ id="radialGradient6981"
+ xlink:href="#linearGradient6975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.282209,0,30.39355)" />
+ <radialGradient
+ cx="15.415101"
+ cy="35.356506"
+ r="7.5791559"
+ fx="15.415101"
+ fy="35.356506"
+ id="radialGradient6969"
+ xlink:href="#linearGradient6963"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.994655,0,0,0.969322,-4.583017,0.165919)" />
+ <linearGradient
+ x1="28.058632"
+ y1="18.867767"
+ x2="33.436985"
+ y2="23.742767"
+ id="linearGradient6957"
+ xlink:href="#linearGradient6951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.90695,-1.802856)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="23.109331"
+ y2="33.438831"
+ id="linearGradient6945"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-53.05087,38.14868)" />
+ <linearGradient
+ id="linearGradient6939">
+ <stop
+ style="stop-color:#dddddd;stop-opacity:1"
+ offset="0"
+ id="stop6941" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.33333334"
+ id="stop6947" />
+ <stop
+ style="stop-color:#b7b7b7;stop-opacity:1"
+ offset="0.66666669"
+ id="stop6949" />
+ <stop
+ style="stop-color:#dddddd;stop-opacity:1"
+ offset="1"
+ id="stop6943" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6951">
+ <stop
+ style="stop-color:#6e3d09;stop-opacity:1"
+ offset="0"
+ id="stop6953" />
+ <stop
+ style="stop-color:#ea8113;stop-opacity:1"
+ offset="0.24242425"
+ id="stop6959" />
+ <stop
+ style="stop-color:#5c3307;stop-opacity:1"
+ offset="0.62121212"
+ id="stop6961" />
+ <stop
+ style="stop-color:#e07c12;stop-opacity:1"
+ offset="1"
+ id="stop6955" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6963">
+ <stop
+ style="stop-color:#696969;stop-opacity:1"
+ offset="0"
+ id="stop6965" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1"
+ id="stop6967" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6975">
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="0"
+ id="stop6977" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0"
+ offset="1"
+ id="stop6979" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2446">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop2448" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1"
+ id="stop2450" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6629">
+ <stop
+ style="stop-color:#aeaeae;stop-opacity:1"
+ offset="0"
+ id="stop6631" />
+ <stop
+ style="stop-color:#c4c4c4;stop-opacity:0"
+ offset="1"
+ id="stop6633" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6651">
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0"
+ id="stop6653" />
+ <stop
+ style="stop-color:#c3c3c3;stop-opacity:1"
+ offset="1"
+ id="stop6655" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6721">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1"
+ offset="0"
+ id="stop6723" />
+ <stop
+ style="stop-color:#3c74b1;stop-opacity:1"
+ offset="1"
+ id="stop6725" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6748">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1"
+ offset="0"
+ id="stop6750" />
+ <stop
+ style="stop-color:#2b5582;stop-opacity:1"
+ offset="1"
+ id="stop6752" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6835">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop6837" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="1"
+ id="stop6839" />
+ </linearGradient>
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient2282"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.07104,6.705107)" />
+ <linearGradient
+ x1="56.162964"
+ y1="41.83876"
+ x2="54.483982"
+ y2="40.247776"
+ id="linearGradient3203"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3211"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(38.07104,6.705107)" />
+ <linearGradient
+ x1="56.162964"
+ y1="41.83876"
+ x2="54.483982"
+ y2="40.247776"
+ id="linearGradient3213"
+ xlink:href="#linearGradient3197"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="54.837135"
+ y1="39.805828"
+ x2="56.428524"
+ y2="41.308434"
+ id="linearGradient3249"
+ xlink:href="#linearGradient3243"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="12.813026"
+ y1="32.056629"
+ x2="15.119371"
+ y2="34.001175"
+ id="linearGradient3263"
+ xlink:href="#linearGradient3243"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="54.837135"
+ y1="39.805828"
+ x2="56.428524"
+ y2="41.308434"
+ id="linearGradient3266"
+ xlink:href="#linearGradient3243"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-51.85143,3.42342)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3269"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-13.78039,10.12853)" />
+ <linearGradient
+ x1="2.1018243"
+ y1="43.936359"
+ x2="4.1351514"
+ y2="45.880901"
+ id="linearGradient11844"
+ xlink:href="#linearGradient11573"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="19.268993"
+ y1="25.539364"
+ x2="21.398565"
+ y2="27.616491"
+ id="linearGradient11846"
+ xlink:href="#linearGradient11573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.374275,-0.411242)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient11848"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-13.78039,10.12853)" />
+ <linearGradient
+ x1="27.847828"
+ y1="16.542765"
+ x2="29.623844"
+ y2="18.266338"
+ id="linearGradient11850"
+ xlink:href="#linearGradient11573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.117749,-1.179036)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient11852"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(7.629341,-13.05859)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient11854"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(3.014336,-8.04609)" />
+ <linearGradient
+ x1="27.847828"
+ y1="16.542765"
+ x2="29.623844"
+ y2="18.266338"
+ id="linearGradient11856"
+ xlink:href="#linearGradient11599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.0575,-11.78)" />
+ <linearGradient
+ x1="52.717937"
+ y1="2.3161638"
+ x2="67.465988"
+ y2="2.3161638"
+ id="linearGradient14628"
+ xlink:href="#linearGradient6721"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.862482,0,0,0.580718,-16.25697,11.01348)" />
+ <linearGradient
+ x1="53.168766"
+ y1="24.244797"
+ x2="69.690994"
+ y2="24.244797"
+ id="linearGradient14626"
+ xlink:href="#linearGradient6651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.71944,0,0,0.718914,-7.696252,9.471728)" />
+ <linearGradient
+ x1="61.871845"
+ y1="29.615223"
+ x2="61.871845"
+ y2="41.459263"
+ id="linearGradient14624"
+ xlink:href="#linearGradient6629"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.888619,0,0,0.718914,-18.29768,9.471728)" />
+ <linearGradient
+ x1="49.853039"
+ y1="64.259621"
+ x2="62.768223"
+ y2="64.259621"
+ id="linearGradient14622"
+ xlink:href="#linearGradient6748"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.718914,0,0,0.718914,-1.897103,-22.42481)" />
+ <linearGradient
+ x1="60.168766"
+ y1="40.119797"
+ x2="60.440994"
+ y2="43.869797"
+ id="linearGradient14620"
+ xlink:href="#linearGradient6651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.737307,0,0,0.770854,-8.532023,7.121636)" />
+ <linearGradient
+ x1="48.25"
+ y1="54.75"
+ x2="48.25"
+ y2="71.25"
+ id="linearGradient14618"
+ xlink:href="#linearGradient6835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.718914,0,0,0.718914,-1.897103,-20.68606)" />
+ <radialGradient
+ cx="26.78167"
+ cy="42.343147"
+ r="14.407301"
+ fx="26.78167"
+ fy="42.343147"
+ id="radialGradient14616"
+ xlink:href="#linearGradient6975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.282209,0,30.39355)" />
+ <linearGradient
+ x1="13.236155"
+ y1="37.752247"
+ x2="7.7521091"
+ y2="42.282146"
+ id="linearGradient14614"
+ xlink:href="#linearGradient2446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.852298,0,0,0.852298,-1.675107,3.753977)" />
+ <radialGradient
+ cx="26.78167"
+ cy="42.343147"
+ r="14.407301"
+ fx="26.78167"
+ fy="42.343147"
+ id="radialGradient14612"
+ xlink:href="#linearGradient6975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.282209,0,30.39355)" />
+ <radialGradient
+ cx="15.415101"
+ cy="35.356506"
+ r="7.5791559"
+ fx="15.415101"
+ fy="35.356506"
+ id="radialGradient14610"
+ xlink:href="#linearGradient6963"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.994655,0,0,0.969322,-4.583017,0.165919)" />
+ <linearGradient
+ x1="28.058632"
+ y1="18.867767"
+ x2="33.436985"
+ y2="23.742767"
+ id="linearGradient14608"
+ xlink:href="#linearGradient6951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.90695,-1.802856)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="23.109331"
+ y2="33.438831"
+ id="linearGradient14606"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-3.90695,-1.802856)" />
+ <linearGradient
+ id="linearGradient14596">
+ <stop
+ style="stop-color:#bdbdbd;stop-opacity:1"
+ offset="0"
+ id="stop14598" />
+ <stop
+ style="stop-color:#e2e2e2;stop-opacity:1"
+ offset="0.33333334"
+ id="stop14600" />
+ <stop
+ style="stop-color:#a3a3a3;stop-opacity:1"
+ offset="0.66666669"
+ id="stop14602" />
+ <stop
+ style="stop-color:#dddddd;stop-opacity:1"
+ offset="1"
+ id="stop14604" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14586">
+ <stop
+ style="stop-color:#6e3d09;stop-opacity:1"
+ offset="0"
+ id="stop14588" />
+ <stop
+ style="stop-color:#ea8113;stop-opacity:1"
+ offset="0.24242425"
+ id="stop14590" />
+ <stop
+ style="stop-color:#5c3307;stop-opacity:1"
+ offset="0.62121212"
+ id="stop14592" />
+ <stop
+ style="stop-color:#e07c12;stop-opacity:1"
+ offset="1"
+ id="stop14594" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14580">
+ <stop
+ style="stop-color:#696969;stop-opacity:1"
+ offset="0"
+ id="stop14582" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1"
+ offset="1"
+ id="stop14584" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14562">
+ <stop
+ style="stop-color:#aeaeae;stop-opacity:1"
+ offset="0"
+ id="stop14564" />
+ <stop
+ style="stop-color:#c4c4c4;stop-opacity:0"
+ offset="1"
+ id="stop14566" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14556">
+ <stop
+ style="stop-color:#f2f2f2;stop-opacity:1"
+ offset="0"
+ id="stop14558" />
+ <stop
+ style="stop-color:#c3c3c3;stop-opacity:1"
+ offset="1"
+ id="stop14560" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14550">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1"
+ offset="0"
+ id="stop14552" />
+ <stop
+ style="stop-color:#3c74b1;stop-opacity:1"
+ offset="1"
+ id="stop14554" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14544">
+ <stop
+ style="stop-color:#729fcf;stop-opacity:1"
+ offset="0"
+ id="stop14546" />
+ <stop
+ style="stop-color:#2b5582;stop-opacity:1"
+ offset="1"
+ id="stop14548" />
+ </linearGradient>
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient14954"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.1746,-9.271088)" />
+ <linearGradient
+ x1="2.1018243"
+ y1="43.936359"
+ x2="4.1351514"
+ y2="45.880901"
+ id="linearGradient3403"
+ xlink:href="#linearGradient11573"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="19.268993"
+ y1="25.539364"
+ x2="21.398565"
+ y2="27.616491"
+ id="linearGradient3405"
+ xlink:href="#linearGradient11573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0.374275,-0.411242)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3407"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-13.78039,10.12853)" />
+ <linearGradient
+ x1="27.847828"
+ y1="16.542765"
+ x2="29.623844"
+ y2="18.266338"
+ id="linearGradient3409"
+ xlink:href="#linearGradient11573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(1.117749,-1.179036)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3411"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(7.629341,-13.05859)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3413"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(4.1746,-9.271088)" />
+ <linearGradient
+ x1="27.847828"
+ y1="16.542765"
+ x2="29.623844"
+ y2="18.266338"
+ id="linearGradient3415"
+ xlink:href="#linearGradient11599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(11.0575,-11.78)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3417"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.984808,0.173648,-0.173648,0.984808,-6.57769,0.52398)" />
+ <linearGradient
+ x1="19.394735"
+ y1="30.001331"
+ x2="22.225447"
+ y2="32.643337"
+ id="linearGradient3421"
+ xlink:href="#linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.984808,0.173648,-0.173648,0.984808,-6.57769,0.52398)" />
+ </defs>
+ <path
+ d="M 1.7363208,32.76676 C 8.3248508,34.7511 17.971871,31.961 22.133911,29.7435 C 30.287021,25.39957 33.685501,31.30328 34.801441,32.05439 C 36.530681,33.53598 31.237641,37.58917 31.573111,40.88925 C 31.759321,42.72109 32.505111,43.61576 32.505111,43.61576 C 33.965331,39.48164 38.580621,41.17748 38.314881,36.8757 C 41.818991,38.85336 42.570681,35.7035 46.636481,36.33108 C 46.061891,35.45605 45.320271,34.15277 43.725911,33.46963 C 42.026491,32.83221 39.153851,32.92116 38.407801,30.75286 C 38.271601,28.30032 38.308721,15.21709 32.388811,11.21743 C 31.523921,9.4752702 32.457261,6.9929501 34.140491,5.2970101 C 35.662491,3.7635101 37.948761,2.3513201 38.731321,1.4507101 C 35.188721,1.4126301 31.659811,2.5223101 28.205141,4.3913401 C 26.403551,5.3660301 24.817171,6.7674501 23.692801,7.2919301 C 13.541991,5.2789001 2.3520908,13.65739 1.2225508,28.3597 C 1.1314008,29.5462 1.1494908,32.39912 1.7363208,32.76676 z "
+ style="fill:url(#linearGradient2552);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2498" />
+ <path
+ d="M 5.2335808,32.81055 C 11.622781,33.50363 18.209491,30.83856 22.270961,28.96994 C 29.345491,25.669 32.552281,29.14676 34.135611,30.66586 C 34.308901,30.89994 34.307271,29.07354 32.433581,27.87203 C 24.899961,24.33752 34.461671,24.30594 33.953881,23.00814 C 33.369651,21.51499 26.991311,22.37165 25.878431,22.75436 C 21.878331,24.12997 20.471841,26.36926 18.438621,26.78615 C 14.693991,27.4985 11.800931,25.476 9.4333807,28.43233 C 5.2947208,33.60023 4.5869808,32.74041 5.2335808,32.81055 z "
+ style="opacity:1;fill:url(#linearGradient4158);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.95343304;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4148" />
+ <path
+ d="M 2.2770308,32.01551 C 4.8209308,24.64639 13.446641,25.07661 16.854831,21.56745 C 20.208301,18.11463 23.971781,7.3217801 36.560451,18.71166 C 36.606471,18.75329 34.575411,12.91689 31.738591,10.99031 C 30.909681,9.3119602 24.850741,7.3220301 23.773151,7.8273001 C 13.337511,5.8880001 2.9583508,14.66672 1.8758008,28.91892 C 1.7889808,30.062 1.7146108,31.66134 2.2770308,32.01551 z "
+ style="opacity:1;fill:url(#linearGradient4197);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.95343304;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4188" />
+ <path
+ d="M 8.1097416,25.842531 C 7.4359593,24.884336 10.739306,21.488867 11.911822,22.16946 C 12.628902,23.209751 9.601696,27.066888 8.1097416,25.842531 z "
+ style="fill:url(#linearGradient4185);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4168" />
+ <path
+ d="M 34.151781,40.87835 L 34.813841,40.38179 L 34.758671,37.34731 L 34.151781,40.87835 z "
+ style="opacity:0.25628142;fill:url(#linearGradient4273);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4206" />
+ <path
+ d="M 35.862121,39.83007 L 36.634531,39.44386 L 36.137981,35.52662 L 35.862121,39.83007 z "
+ style="opacity:0.25125631;fill:url(#linearGradient4265);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4217" />
+ <path
+ d="M 41.158671,36.9611 L 42.041431,36.63007 L 38.510401,34.80938 L 41.158671,36.9611 z "
+ style="opacity:0.23115575;fill:url(#linearGradient4256);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4219" />
+ <path
+ d="M 42.900461,36.32662 L 43.806951,36.07732 L 40.610401,34.70615 L 42.900461,36.32662 z "
+ style="opacity:0.22613065;fill:url(#linearGradient4248);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4221" />
+ <path
+ d="M 2.8895108,32.01551 C 8.8412607,33.57361 17.413831,30.88571 21.341101,28.74943 C 29.034351,24.56461 34.981181,30.34046 35.680621,32.03634 C 36.870381,33.64044 34.470411,35.76668 32.930801,38.8575 C 32.140061,40.44493 32.572791,41.39575 32.572791,41.39575 C 33.919401,39.44691 38.212791,40.2735 37.243291,35.16237 C 41.137221,38.06131 42.424171,35.30807 44.721431,35.32427 C 43.991751,34.38754 43.191931,34.35336 42.406261,34.16399 C 40.802691,33.54991 38.483161,33.60527 37.435441,31.04765 C 37.306931,28.68493 37.929421,17.05318 31.636311,11.87419 C 30.555041,10.54939 30.725551,7.9521601 32.405301,5.7286701 C 32.900791,5.0728001 34.849721,3.5095901 35.588151,2.6419701 C 32.510521,3.2240101 31.213591,3.7627101 27.953781,5.5632901 C 26.253811,6.5022701 25.110451,7.7639701 24.049501,8.2692401 C 14.206081,6.5067201 4.6196108,13.42929 2.4047308,27.23954 C 2.2232108,28.37135 2.0706208,31.66134 2.8895108,32.01551 z "
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4146);stroke-width:0.95343304;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4134" />
+ <g
+ id="g3432">
+ <g
+ transform="matrix(0.984808,0.173648,-0.173648,0.984808,4.319821,-3.493951)"
+ id="g11820">
+ <g
+ transform="translate(3.782059,-4.305959)"
+ id="g3379">
+ <path
+ d="M 3.6678274,43.136096 L 5.3838174,44.716363 C 6.4337554,43.515919 11.191757,38.438712 11.191757,38.438712 L 9.4548369,36.923036 C 9.4548369,36.923036 4.9455924,41.774015 3.6678274,43.136096 z "
+ style="color:#000000;fill:url(#linearGradient3403);fill-opacity:1;fill-rule:nonzero;stroke:#cc0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2292" />
+ <path
+ d="M 9.3798921,36.977632 L 11.095882,38.557899 C 12.14582,37.357455 32.719517,15.450785 32.719517,15.450785 L 30.982597,13.935109 C 30.982597,13.935109 10.657657,35.615551 9.3798921,36.977632 z "
+ style="color:#000000;fill:url(#linearGradient3407);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path6935" />
+ </g>
+ <path
+ d="M 34.676553,9.7053399 L 36.455043,11.160607 C 37.504981,9.9601639 41.783263,5.5878763 42.1,5.110676 C 43.214868,4.1209793 41.493403,2.3741139 40.30058,3.72 C 39.73371,4.2605973 35.954318,8.3432589 34.676553,9.7053399 z "
+ style="color:#000000;fill:url(#linearGradient3415);fill-opacity:1;fill-rule:nonzero;stroke:#2e3436;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path11595" />
+ </g>
+ <path
+ d="M 3.1259863,37.385763 C 1.7298033,38.631621 2.6856953,40.157401 4.5414953,39.24 C 4.8993219,39.067037 6.4911218,37.770435 6.4911218,37.770435 L 5.024554,35.956942 C 5.024554,35.956942 4.6208613,36.266256 3.1259863,37.385763 z "
+ style="color:#000000;fill:url(#linearGradient3421);fill-opacity:1;fill-rule:nonzero;stroke:#888a85;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path4782" />
+ <path
+ d="M 45.38,7.76 C 45.38,7.76 50.38,17.76 45.38,17.76 C 40.38,17.76 45.630004,12.759996 45.38,7.76 z "
+ style="fill:none;fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4784" />
+ <path
+ d="M 8.8749989 37.75 A 1.2499999 1.2499999 0 1 1 6.3749992,37.75 A 1.2499999 1.2499999 0 1 1 8.8749989 37.75 z"
+ transform="matrix(0.237867,0,0,0.237867,1.543598,29.32319)"
+ style="opacity:0.53333285;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2454" />
+ </g>
+ <path
+ d="M 19.450291,23.22383 C 22.168421,25.03662 28.856191,30.5826 25.680471,31.40984 C 15.059251,31.02011 16.896751,26.26768 14.182961,25.53368 C 12.719161,24.04968 17.982161,22.53604 19.450291,23.22383 z "
+ style="fill:url(#linearGradient4277);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.96744114;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4275" />
+ <path
+ d="M 19.146461,24.13864 C 21.378451,25.77465 26.563631,29.81803 25.199871,30.60107 C 21.104601,30.05266 19.021051,29.4458 17.949761,28.25613 C 16.602891,26.76044 16.164111,25.40127 15.160761,25.03427 C 14.934401,25.05287 17.678331,23.45085 19.146461,24.13864 z "
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4301);stroke-width:0.96744114;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4279" />
+ <path
+ d="M 35.443728 33.636894 A 15.291184 3.9332814 0 1 1 4.8613596,33.636894 A 15.291184 3.9332814 0 1 1 35.443728 33.636894 z"
+ transform="matrix(1.475993,0,0,0.71076,-6.402967,20.77848)"
+ style="opacity:1;color:#000000;fill:url(#radialGradient4312);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path4310" />
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gabmus.gfeeds.svg b/benchmarks/hicolor-apps/org.gabmus.gfeeds.svg
new file mode 100644
index 00000000..bde1c04e
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gabmus.gfeeds.svg
@@ -0,0 +1 @@
+<svg width="128" height="128" version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="h" x1="144" x2="144" y1="-84" y2="366.07" gradientTransform="matrix(.25 0 0 .25 4 43)" gradientUnits="userSpaceOnUse"><stop stop-color="#edece9" offset="0"/><stop stop-color="#fff" offset="1"/></linearGradient><linearGradient id="g" x1="69.009" x2="180.21" y1="487.9" y2="487.9" gradientTransform="translate(-60 -206)" gradientUnits="userSpaceOnUse"><stop stop-color="#c0bfbc" offset="0"/><stop stop-color="#dcdbd8" offset=".065"/><stop stop-color="#c0bfbc" offset=".11"/><stop stop-color="#c0bfbc" offset=".846"/><stop stop-color="#deddda" offset=".923"/><stop stop-color="#c0bfbc" offset="1"/></linearGradient><clipPath id="b"><path d="m252 116 28-28v-8h-36v36z" fill="#e74747"/></clipPath><linearGradient id="a" x1="344" x2="340" y1="76" y2="72" gradientTransform="matrix(.25 0 0 .25 180 83)" gradientUnits="userSpaceOnUse"><stop stop-color="#d5d3cf" offset="0"/><stop stop-color="#fff" offset="1"/></linearGradient></defs><path d="M16 40c-4.432 0-8 3.568-8 8v60c0 4.432 3.568 8 8 8h96c4.432 0 8-3.568 8-8V48c0-4.432-3.568-8-8-8z" fill="#ffa348"/><path transform="translate(0 -172)" d="m16 210c-4.432 0-8 3.568-8 8v60c0 4.432 3.568 8 8 8h96c4.432 0 8-3.568 8-8v-60c0-4.432-3.568-8-8-8z" fill="url(#g)"/><path d="m16 22c-4.432 0-8 3.568-8 8v70c0 4.432 3.568 8 8 8h48 48c4.432 0 8-3.568 8-8v-70c0-4.432-3.568-8-8-8h-48-48z" fill="url(#h)"/><g transform="matrix(.59642 0 0 .59642 -7.5708 -502)"><g transform="matrix(4.9684 0 0 4.9684 126.94 884.48)" fill="#ffa348"><path d="m6 12a2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2 2 2 0 0 1 2 2z" overflow="visible"/><path d="m2 6h1.014v1.014h-1.014zm7.014 7.014h0.986v0.986h-0.986zm4 0h0.986v0.986h-0.986zm-11.014-11.014h1.014v1.014h-1.014z"/><path d="m3.014 8.014c2.774 0 5 2.227 5 5h2c0-3.854-3.145-7-7-7z" font-family="sans-serif" font-weight="400" overflow="visible" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none" white-space="normal"/><path d="m 3.014,4.028 a 8.972,8.972 0 0 1 8.987,8.986 h 2 C 14,6.96 9.07,2.028 3.014,2.028 Z" font-family="sans-serif" font-weight="400" overflow="visible" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none" white-space="normal"/><path d="m4 7a1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1zm0-4a1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1zm6 10a1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1zm4 0a1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1 1 1 0 0 1 1 1z" overflow="visible"/></g><g transform="translate(9.375)" stroke-width="1.875"><rect x="33.75" y="894.42" width="53.75" height="7.5" ry="0" fill="#ffa348"/><g fill="#deddda"><rect x="33.75" y="909.42" width="60" height="7.5" ry="0"/><rect x="33.75" y="924.42" width="51.469" height="7.5" ry="0"/><rect x="33.75" y="939.42" width="60" height="7.5" ry="0"/><rect x="33.75" y="954.42" width="60" height="7.5" ry="0"/><rect x="33.75" y="969.42" width="60" height="7.5" ry="0"/><rect x="33.75" y="984.42" width="39.999" height="7.5" ry="0"/><rect x="33.75" y="999.42" width="60" height="7.5" ry="0"/></g></g><g fill="#deddda" stroke-width="1.875"><rect x="136.88" y="984.42" width="60" height="7.5" ry="0"/><rect x="136.88" y="999.42" width="60" height="7.5" ry="0"/><rect x="136.88" y="969.42" width="39.999" height="7.5" ry="0"/></g></g><rect transform="matrix(0 .63036 .63036 0 47.118 -68.269)" x="252" y="88" width="36" height="36" rx="11.2" ry="11.2" clip-path="url(#b)" enable-background="new" fill="url(#a)" style="paint-order:normal"/></svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Boxes.svg b/benchmarks/hicolor-apps/org.gnome.Boxes.svg
new file mode 100644
index 00000000..bb0a94f4
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Boxes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="a"><stop offset="0" stop-color="#fff"/><stop offset=".4" stop-color="#fff"/><stop offset="1" stop-color="#f6f5f4"/></linearGradient><radialGradient xlink:href="#a" id="i" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4 0 0 4 -492.799 -641.952)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/><radialGradient xlink:href="#a" id="h" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4 0 0 4 -492.799 -681.952)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/><radialGradient xlink:href="#a" id="g" gradientUnits="userSpaceOnUse" gradientTransform="matrix(6 0 0 6 -785.198 -1065.928)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/><radialGradient xlink:href="#a" id="f" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2" gradientUnits="userSpaceOnUse" gradientTransform="matrix(6 0 0 6 -785.198 -1153.928)"/><radialGradient xlink:href="#a" id="e" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4 0 0 4 -452.799 -681.952)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/><radialGradient xlink:href="#a" id="d" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4 0 0 4 -452.799 -641.952)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/><radialGradient xlink:href="#a" id="c" gradientUnits="userSpaceOnUse" gradientTransform="matrix(6 0 0 6 -697.198 -1065.928)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/><radialGradient xlink:href="#a" id="b" gradientUnits="userSpaceOnUse" gradientTransform="matrix(6 0 0 6 -697.198 -1153.928)" cx="134.2" cy="222.988" fx="134.2" fy="222.988" r="2"/></defs><g transform="translate(0 -172)"><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" d="M22.352 194.352h82.687v82.687H22.352z" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="none"/><g color="#000" fill="none" stroke="#f6f5f4" stroke-width="8"><path style="marker:none" d="M84 256l24 24M84 216l24-24M44 256l-24 24M44 216l-24-24M44 216h40v40H44z" overflow="visible"/><path style="marker:none" overflow="visible" d="M20 192h88v88H20z"/></g><path style="marker:none" fill="#d5d3cf" d="M98.5 194v2h-69v-2z"/><path style="marker:none" d="M120 192c0 6.627-5.373 12-12 12-1.85 0-3.222-.095-5.165-1.166-1.092-1.726-3.55-4.584-5.668-5.666C96.096 195.224 96 193.85 96 192c0-6.627 5.373-12 12-12s12 5.373 12 12z" color="#000" overflow="visible" fill="#d5d3cf"/><path style="marker:none" fill="#d5d3cf" d="M110 203h2v69h-2z"/><circle style="marker:none" cx="108" cy="280" r="12" color="#000" overflow="visible" fill="#d5d3cf"/><path style="marker:none" fill="#d5d3cf" d="M79 258v2H49v-2zM99.604 274.425l-1.414 1.415-15-15 1.415-1.415zM103.058 199.793l1.414 1.414-15 15-1.414-1.414z"/><circle style="marker:none" cx="108" cy="190" r="12" color="#000" overflow="visible" fill="url(#b)"/><path style="marker:none" fill="#d5d3cf" d="M86 222h2v26h-2zM79 218v2H49v-2z"/><circle style="marker:none" cx="84" cy="216" r="8" color="#000" overflow="visible" fill="#d5d3cf"/><path style="marker:none" fill="#d5d3cf" d="M98.5 282v2h-69v-2z"/><circle r="12" cy="278" cx="108" style="marker:none" color="#000" overflow="visible" fill="url(#c)"/><path style="marker:none" d="M92 256c0 .666 0 1-.235 1.932-1.165.59-4.765 4.542-5.787 5.822-.502.246-1.295.246-1.978.246a8 8 0 1 1 8-8z" color="#000" overflow="visible" fill="#d5d3cf"/><circle style="marker:none" cx="84" cy="254" r="8" color="#000" overflow="visible" fill="url(#d)"/><circle r="8" cy="214" cx="84" style="marker:none" color="#000" overflow="visible" fill="url(#e)"/><path style="marker:none" fill="#d5d3cf" d="M22 203h2v69h-2z"/><circle r="12" cy="280" cx="20" style="marker:none" color="#000" overflow="visible" fill="#d5d3cf"/><path style="marker:none" fill="#d5d3cf" d="M46 222h2v26h-2z"/><circle r="8" cy="216" cx="44" style="marker:none" color="#000" overflow="visible" fill="#d5d3cf"/><path style="marker:none" fill="#d5d3cf" d="M43.586 259.586L45 261l-15 15-1.414-1.414z"/><path d="M7.912 192c0 6.627 5.372 12 12 12 1.849 0 3.222-.095 5.165-1.166 1.092-1.726 3.55-4.584 5.668-5.666 1.071-1.944 1.167-3.318 1.167-5.168 0-6.627-5.373-12-12-12-6.628 0-12 5.373-12 12z" style="marker:none" color="#000" overflow="visible" fill="#d5d3cf"/><path style="marker:none" fill="#d5d3cf" d="M40.077 214.953l-1.414 1.415-15-15 1.415-1.414z"/><circle r="12" cy="190" cx="20" style="marker:none" color="#000" overflow="visible" fill="url(#f)"/><circle style="marker:none" cx="20" cy="278" r="12" color="#000" overflow="visible" fill="url(#g)"/><circle style="marker:none" cx="44" cy="214" r="8" color="#000" overflow="visible" fill="url(#h)"/><path d="M36 256c0 .666 0 1 .235 1.932 1.165.59 4.765 4.542 5.787 5.822.502.246 1.295.246 1.978.246a8 8 0 1 0-8-8z" style="marker:none" color="#000" overflow="visible" fill="#d5d3cf"/><circle r="8" cy="254" cx="44" style="marker:none" color="#000" overflow="visible" fill="url(#i)"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.Calculator.svg b/benchmarks/hicolor-apps/org.gnome.Calculator.svg
new file mode 100644
index 00000000..1ff7058e
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Calculator.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(0.192351 0 0 0.25 22.005213 57.000031)" gradientUnits="userSpaceOnUse" x1="10.276156" x2="426.276215" y1="259.999878" y2="259.999878">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="0.0502156" stop-color="#c0bfbc"/>
+ <stop offset="0.100204" stop-color="#9a9996"/>
+ <stop offset="0.900023" stop-color="#9a9996"/>
+ <stop offset="0.950011" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#9a9996"/>
+ </linearGradient>
+ <path d="m 32 36 h 64 c 4.417969 0 8 3.582031 8 8 v 68 c 0 4.417969 -3.582031 8 -8 8 h -64 c -4.417969 0 -8 -3.582031 -8 -8 v -68 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 32 8 h 64 c 4.417969 0 8 3.582031 8 8 v 90 c 0 4.417969 -3.582031 8 -8 8 h -64 c -4.417969 0 -8 -3.582031 -8 -8 v -90 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 38 18 h 52.039062 c 2.210938 0 4 1.789062 4 4 v 6 c 0 2.210938 -1.789062 4 -4 4 h -52.039062 c -2.210938 0 -4 -1.789062 -4 -4 v -6 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#77767b"/>
+ <path d="m 38 36 h 52.039062 c 2.210938 0 4 -1.789062 4 -4 v -8 c 0 -2.210938 -1.789062 -4 -4 -4 h -52.039062 c -2.210938 0 -4 1.789062 -4 4 v 8 c 0 2.210938 1.789062 4 4 4 z m 0 0" fill="#6fb182"/>
+ <path d="m 34 51 v 2 c 0 3.878906 3.121094 7 7 7 s 7 -3.121094 7 -7 v -2 z m 0 0" fill="#5e5c64"/>
+ <path d="m 41 44 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#9a9996"/>
+ <path d="m 57.011719 51 v 2 c 0 3.878906 3.121093 7 7 7 c 3.875 0 7 -3.121094 7 -7 v -2 z m 0 0" fill="#5e5c64"/>
+ <path d="m 64 44 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#9a9996"/>
+ <path d="m 80 51 v 2 c 0 3.878906 3.121094 7 7 7 s 7 -3.121094 7 -7 v -2 z m 0 0" fill="#5e5c64"/>
+ <path d="m 87 44 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#9a9996"/>
+ <path d="m 34 73 v 2 c 0 3.878906 3.121094 7 7 7 s 7 -3.121094 7 -7 v -2 z m 0 0" fill="#3d3846"/>
+ <path d="m 57.011719 73 v 2 c 0 3.878906 3.121093 7 7 7 c 3.875 0 7 -3.121094 7 -7 v -2 z m 0 0" fill="#3d3846"/>
+ <path d="m 41 66 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#5e5c64"/>
+ <path d="m 64 66 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#5e5c64"/>
+ <path d="m 34 95 v 2 c 0 3.878906 3.121094 7 7 7 s 7 -3.121094 7 -7 v -2 z m 0 0" fill="#3d3846"/>
+ <path d="m 41 88 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#5e5c64"/>
+ <path d="m 57.011719 95 v 2 c 0 3.878906 3.121093 7 7 7 c 3.875 0 7 -3.121094 7 -7 v -2 z m 0 0" fill="#3d3846"/>
+ <path d="m 64 88 c 3.867188 0 7 3.132812 7 7 s -3.132812 7 -7 7 s -7 -3.132812 -7 -7 s 3.132812 -7 7 -7 z m 0 0" fill="#5e5c64"/>
+ <path d="m 87 86 c 3.867188 0 7 3.132812 7 7 v 4 c 0 3.867188 -3.132812 7 -7 7 s -7 -3.132812 -7 -7 v -4 c 0 -3.867188 3.132812 -7 7 -7 z m 0 0" fill="#c64600"/>
+ <path d="m 87 66 c 3.867188 0 7 3.132812 7 7 v 22 c 0 3.867188 -3.132812 7 -7 7 s -7 -3.132812 -7 -7 v -22 c 0 -3.867188 3.132812 -7 7 -7 z m 0 0" fill="#ff7800"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Characters.svg b/benchmarks/hicolor-apps/org.gnome.Characters.svg
new file mode 100644
index 00000000..7b494df9
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Characters.svg
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1115">
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="0"
+ id="stop1103" />
+ <stop
+ id="stop1105"
+ offset="0.03846154"
+ style="stop-color:#e3e2df;stop-opacity:1" />
+ <stop
+ id="stop1107"
+ offset="0.07692308"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ id="stop1109"
+ offset="0.92307693"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ id="stop1111"
+ offset="0.96153843"
+ style="stop-color:#e3e2df;stop-opacity:1" />
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="1"
+ id="stop1113" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6058">
+ <stop
+ id="stop6054"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ <stop
+ id="stop6056"
+ offset="1"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(0,6,-12,0,-64,209.99687)"
+ gradientUnits="userSpaceOnUse"
+ x2="1"
+ id="paint3_linear-2-6-5">
+ <stop
+ id="stop91-0-7-4"
+ stop-color="#C01C27" />
+ <stop
+ id="stop93-2-5-7"
+ stop-color="#E01B24"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ y2="234.00014"
+ x2="-60.000004"
+ y1="234.00014"
+ x1="43.843597"
+ gradientTransform="matrix(1.0015061,0,0,0.99993452,72.09037,56.015192)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1097"
+ xlink:href="#linearGradient1115" />
+ <radialGradient
+ r="24"
+ fy="225.59558"
+ fx="-24.238829"
+ cy="225.59558"
+ cx="-24.238829"
+ gradientTransform="matrix(1.757743,-9.5621778e-8,3.7652438e-8,1.9495846,106.60563,-336.54495)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1099"
+ xlink:href="#linearGradient6058" />
+ <linearGradient
+ x2="1"
+ gradientTransform="matrix(0,6,-12,0,-264,209.99687)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1383"
+ xlink:href="#paint3_linear-2-6-5" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9" />
+ <rect
+ y="240"
+ x="12"
+ style="display:inline;fill:url(#linearGradient1097);fill-opacity:1;stroke-width:1;enable-background:new"
+ width="104"
+ height="48"
+ rx="8"
+ id="rect1091"
+ ry="8" />
+ <path
+ id="rect1093"
+ transform="translate(0,172)"
+ d="m 20,10 c -4.432,0 -8,3.568 -8,8 v 84 c 0,4.432 3.568,8 8,8 h 88 c 4.432,0 8,-3.568 8,-8 V 18 c 0,-4.432 -3.568,-8 -8,-8 H 66 v 2 h -4 v -2 z"
+ style="display:inline;fill:url(#radialGradient1099);fill-opacity:1;stroke-width:1.6841507;enable-background:new" />
+ <g
+ transform="translate(359.92783,-1.99687)"
+ style="display:inline;enable-background:new"
+ id="g1381">
+ <rect
+ ry="13.072174"
+ id="rect1371"
+ rx="13.072174"
+ height="28"
+ width="28"
+ style="display:inline;fill:#f5c211;enable-background:new"
+ x="-283.92783"
+ y="193.99687" />
+ <path
+ id="path1373"
+ d="m -276,211 h 12 v 0.99687 c 0,2.20914 -1.7909,4 -4,4 h -4 c -2.20914,0 -4,-1.79086 -4,-4 z"
+ style="display:inline;fill:url(#linearGradient1383);enable-background:new" />
+ <rect
+ id="rect1375"
+ height="2"
+ width="12"
+ style="display:inline;fill:#ffffff;enable-background:new"
+ x="-276"
+ y="209.99687" />
+ <path
+ id="path1377"
+ d="m -276,204.99687 c 0,-0.55229 0.44772,-1 1,-1 0.55228,0 1,0.44771 1,1 v 3 h -2 z"
+ style="display:inline;fill:#b45600;enable-background:new" />
+ <path
+ id="path1379"
+ d="m -266,204.99687 c 0,-0.55229 0.44772,-1 1,-1 0.55228,0 1,0.44771 1,1 v 3 h -2 z"
+ style="display:inline;fill:#b45600;enable-background:new" />
+ </g>
+ <g
+ transform="translate(360,-2)"
+ style="display:inline;enable-background:new"
+ id="g1387">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#62a0ea;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 26,20 v 17 c 0,0 0.123719,2.819005 -2.894531,4.328125 l 1.789062,3.576172 C 29.876281,42.413417 30,37 30,37 v -1 h 12 v 2 c 0,0 -0.0278,1.167429 -0.470703,2.230469 C 41.086357,41.293509 40.7,42 39,42 h -1 l -2,4 h 2 1 c 3.3,0 5.413643,-2.293509 6.220703,-4.230469 C 46.027773,39.832571 46,38 46,38 V 20 Z m 4,4 h 12 v 2 H 30 Z m 0,6 h 12 v 2 H 30 Z"
+ transform="translate(-358,176)"
+ id="path1385" />
+ </g>
+ <g
+ transform="translate(386,-2)"
+ style="display:inline;enable-background:new"
+ id="g1393">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#26a269;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 60,78 a 2,2 0 0 0 -2,2 2,2 0 0 0 2,2 2,2 0 0 0 2,-2 2,2 0 0 0 -2,-2 z m -4,6 a 2,2 0 0 0 -2,2 2,2 0 0 0 2,2 2,2 0 0 0 2,-2 2,2 0 0 0 -2,-2 z m 8,0 a 2,2 0 0 0 -2,2 2,2 0 0 0 2,2 2,2 0 0 0 2,-2 2,2 0 0 0 -2,-2 z m 6,6 -4,2 v 4 h -4 v -2 -2 l -4,2 v 2 L 50,95.998 50.07227,100 c -0.001,1.12729 -0.87241,1.99805 -2,1.99805 -1.12827,0 -2,-0.87174 -2,-2.000003 h -4 c 0,3.290023 2.70998,6.000003 6,6.000003 3.29001,0 6,-2.70998 6,-6.000003 L 70,100 Z m -15.927734,3.996094 -4,2 h 4 z"
+ transform="translate(-352,168)"
+ id="path1389" />
+ <path
+ id="path1391"
+ d="m -309.92783,267.99687 4,-2 v 2 z"
+ style="display:inline;fill:#26a269;enable-background:new" />
+ </g>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#deddda;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 12,232 H 116"
+ id="path1397" />
+ <text
+ id="text1410"
+ y="345"
+ x="63"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1000%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ xml:space="preserve"><tspan
+ y="555.39062"
+ x="63"
+ id="tspan1408" /></text>
+ <path
+ id="path1458"
+ d="M 12,231 H 116"
+ style="fill:none;fill-rule:evenodd;stroke:#c0bfbc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path1395"
+ d="M 64,184 V 284"
+ style="fill:none;fill-rule:evenodd;stroke:#deddda;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="m 36.160749,256.15236 q 0,-1.12461 -0.369271,-1.94707 -0.369269,-0.83925 -0.973531,-1.40995 -0.234991,-0.23498 -0.503551,-0.4364 -0.402842,-0.30214 -0.57069,-0.46998 -0.671401,-0.63783 -1.007103,-1.47709 -0.3357,-0.83925 -0.3357,-1.77921 0,-0.97353 0.352486,-1.796 0.352485,-0.82246 0.990317,-1.46029 0.53712,-0.53712 1.510651,-1.0071 Q 36.026469,244 36.983215,244 q 0.956746,0 1.762427,0.36927 0.906391,0.40284 1.510653,1.0071 0.63783,0.63783 0.990316,1.46029 0.352485,0.82247 0.352485,1.796 0,1.02389 -0.352485,1.82957 -0.352486,0.7889 -0.990316,1.42673 -0.167851,0.16784 -0.604262,0.46998 -0.134278,0.10067 -0.46998,0.4364 -0.688186,0.67141 -1.023887,1.49388 -0.318914,0.80569 -0.318914,1.86314 1.141381,0 1.980631,-0.38607 0.856036,-0.40283 1.409942,-0.95675 0.218207,-0.21819 0.419627,-0.48675 0.30213,-0.41963 0.469981,-0.58749 0.654615,-0.6546 1.493866,-0.9903 0.839251,-0.35249 1.779213,-0.35249 0.97353,0 1.795998,0.35249 0.822465,0.35248 1.460296,0.9903 0.604262,0.60427 1.007101,1.51067 0.352486,0.78889 0.352486,1.74564 0,0.95675 -0.352486,1.74564 -0.402839,0.90638 -1.007101,1.51065 -0.637831,0.63783 -1.460296,0.99031 -0.822468,0.35249 -1.795998,0.35249 -0.939962,0 -1.779213,-0.33572 -0.839251,-0.35246 -1.493866,-1.00708 -0.167851,-0.16785 -0.469981,-0.58748 -0.20142,-0.26856 -0.419627,-0.48677 -0.688185,-0.65461 -1.510651,-0.99031 -0.805682,-0.35248 -1.879922,-0.35248 0,1.14136 0.386055,1.99742 0.40284,0.83924 0.956746,1.39314 0.218205,0.21822 0.486766,0.41964 0.419625,0.30213 0.587476,0.46998 0.654615,0.65462 0.990316,1.49386 0.352485,0.83925 0.352485,1.77922 0,0.97352 -0.352485,1.79599 -0.352486,0.82247 -0.990316,1.46029 -0.604262,0.60428 -1.510653,1.00711 Q 37.956746,270 37,270 q -0.956746,0 -1.745643,-0.35249 -0.90639,-0.40283 -1.510651,-1.00711 -0.637832,-0.63782 -0.990317,-1.46029 -0.352486,-0.82247 -0.352486,-1.79599 0,-0.93997 0.3357,-1.77922 0.352486,-0.83924 1.007103,-1.49386 0.167848,-0.16785 0.587475,-0.46998 0.26856,-0.20142 0.486766,-0.41964 0.654616,-0.68818 0.990317,-1.49385 0.352485,-0.82248 0.352485,-1.89671 -1.057456,0 -1.896707,0.35248 -0.822468,0.3357 -1.477083,0.99031 -0.234991,0.23499 -0.436411,0.50355 -0.302131,0.40285 -0.46998,0.5707 -0.637831,0.6714 -1.477082,1.00708 -0.839251,0.33572 -1.779213,0.33572 -0.973531,0 -1.795997,-0.35249 -0.822466,-0.35248 -1.460298,-0.99031 -0.553906,-0.53712 -1.007101,-1.51065 -0.36927,-0.77211 -0.36927,-1.72886 0,-0.95675 0.36927,-1.76242 0.402841,-0.9064 1.007101,-1.51067 0.637832,-0.63782 1.460298,-0.9903 0.822466,-0.35249 1.795997,-0.35249 1.023886,0 1.812784,0.35249 0.80568,0.35248 1.443511,0.9903 0.167849,0.16786 0.46998,0.60427 0.100713,0.13428 0.436411,0.46997 0.671401,0.6714 1.493867,1.00711 0.822467,0.33571 1.879923,0.33571 z"
+ style="font-style:normal;font-weight:normal;font-size:medium;line-height:1000%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#a347ba;fill-opacity:1;stroke:none;stroke-width:0.85939318px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1476" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Cheese.svg b/benchmarks/hicolor-apps/org.gnome.Cheese.svg
new file mode 100644
index 00000000..fb9737b5
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Cheese.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="39.36574252194" x2="39.36574252194" y1="7.99995424564" y2="120.75088999667">
+ <stop offset="0" stop-color="#edece9"/>
+ <stop offset="1" stop-color="#ffffff"/>
+ </linearGradient>
+ <radialGradient id="b" cx="285.130493" cy="39.75565" gradientTransform="matrix(0.050452 0.27802 -0.499163 0.0699068 61.285717 -14.534348)" gradientUnits="userSpaceOnUse" r="160">
+ <stop offset="0" stop-color="#dc8add"/>
+ <stop offset="1" stop-color="#813d9c"/>
+ </radialGradient>
+ <filter id="c" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="d">
+ <g filter="url(#c)">
+ <rect fill-opacity="0.1" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="e">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <mask id="f">
+ <g filter="url(#c)">
+ <rect fill-opacity="0.1" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="g">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <radialGradient id="h" cx="399.441895" cy="227.132568" gradientTransform="matrix(0.68157 -0.68157 0.0138107 0.0138107 -179.349442 377.066956)" gradientUnits="userSpaceOnUse" r="64">
+ <stop offset="0" stop-color="#d5d4cf"/>
+ <stop offset="1" stop-color="#f6f5f4"/>
+ </radialGradient>
+ <path d="m 28.007812 8 h 71.984376 c 4.4375 0 8.011718 3.570312 8.007812 8.007812 l -0.09375 80.09375 l -24.019531 24.027344 h -55.753907 c -4.433593 0 -8 -3.570312 -8.007812 -8.007812 l -0.125 -96.113282 c -0.007812 -4.4375 3.570312 -8.007812 8.007812 -8.007812 z m 0 0" fill="url(#a)"/>
+ <path d="m 27.867188 16 h 72.0625 v 84.125 l -14.25 11.875 h -57.8125 z m 0 0" fill="url(#b)"/>
+ <path d="m 94.527344 39.699219 c -11.695313 -1.484375 -19.335938 1.019531 -25.878906 4.417969 c 6.648437 -8.367188 14.945312 -10.984376 25.878906 -4.417969 z m 0 0" fill="#12121c" fill-rule="evenodd"/>
+ <path d="m 30.578125 45.378906 c 11.121094 -3.875 19.125 -3.011718 26.242187 -1.046875 c -8.277343 -6.800781 -16.945312 -7.640625 -26.242187 1.046875 z m 0 0" fill="#12121c" fill-rule="evenodd"/>
+ <g clip-path="url(#e)" mask="url(#d)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 102.527344 57.355469 c -11.695313 -1.484375 -19.335938 1.019531 -25.878906 4.417969 c 6.648437 -8.367188 14.945312 -10.984376 25.878906 -4.417969 z m 0 0" fill="#12121c" fill-rule="evenodd"/>
+ </g>
+ <g clip-path="url(#g)" mask="url(#f)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 38.578125 63.035156 c 11.121094 -3.875 19.125 -3.015625 26.242187 -1.046875 c -8.277343 -6.800781 -16.945312 -7.640625 -26.242187 1.046875 z m 0 0" fill="#12121c" fill-rule="evenodd"/>
+ </g>
+ <path d="m 99.929688 50.609375 c -28.152344 14.398437 -55 13.910156 -72.3125 11.117187 v 13.667969 c 28.046874 20.363281 53.246093 10.902344 72.3125 -5.261719 z m 0 0" fill="#c0bfbc" fill-rule="evenodd"/>
+ <path d="m 99.929688 50.605469 c -2.488282 1.273437 -4.96875 2.421875 -7.433594 3.472656 c 1.058594 3.667969 4.976562 16.230469 5.433594 17.695313 c 0.671874 -0.542969 1.34375 -1.082032 2 -1.640626 z m -9.199219 4.214843 c -3.359375 1.367188 -6.6875 2.523438 -9.964844 3.515626 c -0.265625 2.382812 3.746094 17.125 4.996094 21.640624 c 4.265625 -2.324218 8.3125 -5.113281 12.140625 -8.1875 c -0.734375 -2.1875 -4.828125 -14.25 -7.171875 -16.96875 z m -11.863281 4.078126 c -3.835938 1.089843 -7.597657 1.941406 -11.269532 2.59375 c -0.078125 5.136718 1.789063 20.203124 2.332032 24.472656 c 5.523437 -1.164063 10.804687 -3.257813 15.804687 -5.976563 c -1.273437 -4.417969 -5.410156 -18.644531 -6.867187 -21.089843 z m -8.9375 27.066406 c -0.554688 -4.285156 -2.628907 -19.648438 -4.375 -24.140625 c -4.386719 0.699219 -8.628907 1.121093 -12.691407 1.320312 c -1.28125 3.839844 -1.40625 18.941407 -1.417969 23.046875 c 6.410157 1.199219 12.582032 1.015625 18.484376 -0.226562 z m -18.484376 0.226562 c -0.003906 -4.054687 -0.066406 -18.597656 -0.667968 -22.957031 c -4.039063 0.125 -7.875 0.035156 -11.488282 -0.195313 c -1.375 3.050782 -2.554687 13.300782 -3.027343 17.753907 c 5.183593 2.726562 10.253906 4.476562 15.183593 5.398437 z m -23.828124 -24.472656 v 13.675781 c 2.898437 2.109375 5.765624 3.890625 8.601562 5.382813 c 0.367188 -4.398438 1.183594 -14.492188 1.246094 -17.875 c -3.539063 -0.28125 -6.839844 -0.699219 -9.847656 -1.183594 z m 0 0" fill="#ffffff" fill-rule="evenodd"/>
+ <path d="m 92 96 c -4.433594 0 -8 3.566406 -8 8 v 16 l 24 -24 z m 0 0" fill="url(#h)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Chess.svg b/benchmarks/hicolor-apps/org.gnome.Chess.svg
new file mode 100644
index 00000000..ff47833c
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Chess.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="b"><stop offset="0" stop-color="#8c839c"/><stop offset="1" stop-color="#3d3846"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#fff"/><stop offset="1" stop-color="#fff" stop-opacity="0"/></linearGradient><radialGradient xlink:href="#a" id="d" cx="86" cy="218" fx="86" fy="218" r="20" gradientUnits="userSpaceOnUse"/><radialGradient xlink:href="#b" id="c" cx="30.493" cy="197.655" fx="30.493" fy="197.655" r="31.25" gradientTransform="matrix(1.50912 0 0 2.10236 -15.525 -227.004)" gradientUnits="userSpaceOnUse"/></defs><g transform="translate(0 -172)"><path d="M32.236 180.93l-.017 9.25-7.194 5.811-.002.002a28.75 28.75 0 0 0-3.488 2.981l-13.082 7.338-.234 3.619 4.75 9.5 11.613-3.94a9.75 9.75 0 0 0 7.637 3.69 9.75 9.75 0 0 0 9.715-9.059l.011-.004.274 9.313c-.007 4.634-3.153 8.214-7.663 9.277-4.025.948-5.303-.288-10.138 1.684-6.647 2.71-11.466 6.678-11.914 13.59L12.469 248l9.996 10C17.878 258 12 264 12 264v4h58v-4s1-6-9.74-6l10.459-10.194V219.18c0-15.878-12.872-28.75-28.75-28.75-.17.007-.34.015-.51.025a9.251 9.251 0 0 0-.225-2.341 9.25 9.25 0 0 0-8.998-7.184z" style="marker:none"/><path style="marker:none" d="M32.033 178.062l-.017 9.25-23.563 19 4.75 9.5 11.613-3.94a9.75 9.75 0 0 0 7.637 3.69c5.113-.006 9.184-3.96 9.547-9.059v-.004 9.313c-.007 4.634-2.7 8.214-7.21 9.276-4.024.948-5.303-.287-10.138 1.684-7.348 2.996-12.147 9.275-12.148 17.21l10.195 10.399C17.052 254.38 12 258.625 12 264h58c0-6.005-4.498-9.62-9.505-9.62l10.458-10.193v-28.625c0-15.879-12.872-28-28.75-28-.17.007-.34.015-.51.025a9.251 9.251 0 0 0-.224-2.342c-.962-4.197-5.13-7.175-9.436-7.183z" fill="url(#c)"/><path style="marker:none" d="M32.47 177.313l-.005 2.921a9.243 9.243 0 0 1 5.004 6.262c.174.768.25 1.555.224 2.342.17-.01.34-.018.51-.025 15.878 0 28.75 12.871 28.75 28.75v28.625l-6.457 8.193 10.457-10.193v-28.625c0-15.879-12.872-28.75-28.75-28.75-.17.007-.34.015-.51.025a9.251 9.251 0 0 0-.224-2.342 9.25 9.25 0 0 0-8.998-7.183zm-14.558 78.265c-.6.32-1.166.694-1.687 1.12.793-.2 1.619-.317 2.474-.317z" fill="#fff" fill-opacity=".071"/><path d="M85.821 206.371c-12.313 0-22.03 9.982-22.03 22.295a22.295 22.295 0 0 0 15.201 21.115l-6 27.595-16.897 6.37v4.372l59.905.125V284l-17.528-6.624-5.56-27.602a22.294 22.294 0 0 0 15.203-21.108c0-12.313-9.981-22.295-22.294-22.295z" style="marker:none" fill="#9a9996"/><path style="marker:none" d="M85.998 202.084c-12.215 0-22.118 9.902-22.118 22.117a22.119 22.119 0 0 0 15.08 20.948L64 276c-3.716 0-7.905 4.207-7.905 7.923L116 284c0-3.716-4.284-8-8-8l-14.968-30.858a22.118 22.118 0 0 0 15.083-20.94c0-12.216-9.902-22.118-22.117-22.118z" fill="#deddda"/><circle style="marker:none" cx="86" cy="224" r="20" fill="url(#d)"/><path style="marker:none" d="M116 284c0-3.465-4.198-6-8-6H64c-4.34 0-7.905 2.122-7.905 5.923 0-3.805 3.835-7.923 7.905-7.923h44c4.244 0 8 4.007 8 8z" fill="#f6f5f4"/><path style="marker:none" d="M64.097 224.078A22 22 0 0 0 64 226a22 22 0 0 0 22 22 22 22 0 0 0 22-22 22 22 0 0 0-.097-1.904A22 22 0 0 1 86 244.174a22 22 0 0 1-21.903-20.096z" fill="#c0bfbc"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.Contacts.svg b/benchmarks/hicolor-apps/org.gnome.Contacts.svg
new file mode 100644
index 00000000..50418118
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Contacts.svg
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1458">
+ <stop
+ id="stop1452"
+ offset="0"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.51104856"
+ id="stop1454" />
+ <stop
+ id="stop1456"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(0,640)"
+ gradientUnits="userSpaceOnUse"
+ y2="120"
+ x2="416"
+ y1="120"
+ x1="384"
+ id="linearGradient1053-2"
+ xlink:href="#linearGradient1458" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:none"
+ id="layer3">
+ <circle
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle2892"
+ r="59.504131"
+ cy="236"
+ cx="64.000031" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2894"
+ width="87.009987"
+ height="111.01005"
+ x="20.495007"
+ y="180.49496"
+ rx="8.701004"
+ ry="7.9292889" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2896"
+ width="103.00952"
+ height="103.00952"
+ x="12.495266"
+ y="184.49524"
+ rx="7.9238095"
+ ry="7.9238095" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2898"
+ width="111.01004"
+ height="87.010048"
+ x="8.4950066"
+ y="200.49496"
+ rx="7.9292889"
+ ry="8.701005" />
+ <path
+ style="display:inline;fill:none;stroke:#62a0ea;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="M 2.6203015e-5,288.99999 H 128.00003"
+ id="path2900" />
+ </g>
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ transform="translate(192.50002,2.5)"
+ id="g1308"
+ style="display:inline;enable-background:new">
+ <rect
+ style="display:inline;opacity:1;fill:#f8e45c;fill-opacity:1;stroke:none;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1036-36"
+ width="16"
+ height="24"
+ x="-92.500015"
+ y="193.5"
+ rx="8"
+ ry="8.0034189" />
+ <rect
+ style="display:inline;opacity:1;fill:#2ec27e;fill-opacity:1;stroke:none;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1036-3-7"
+ width="16"
+ height="24"
+ x="-92.500015"
+ y="209.5"
+ rx="8"
+ ry="8.0034189" />
+ <rect
+ style="display:inline;opacity:1;fill:#c061cb;fill-opacity:1;stroke:none;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1036-3-3-5"
+ width="16"
+ height="24"
+ x="-92.500015"
+ y="225.5"
+ rx="8"
+ ry="8.0034189" />
+ <rect
+ style="display:inline;opacity:1;fill:#f66151;fill-opacity:1;stroke:none;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1036-3-3-6-3"
+ width="16"
+ height="24"
+ x="-92.500015"
+ y="241.5"
+ rx="8"
+ ry="8.0034189" />
+ <g
+ style="display:inline;enable-background:new"
+ id="g1002"
+ transform="matrix(0.25,0,0,0.25,-188.50002,62.499999)">
+ <path
+ id="rect954-3"
+ d="m 64,540 v 368 h 320 c 17.728,0 32,-14.272 32,-32 V 572 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:#1d60b5;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="rect954-3-6-1"
+ d="m 72,620 v 280 h 312 c 17.728,0 32,-14.272 32,-32 V 652 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:url(#linearGradient1053-2);fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="rect954-3-2"
+ d="m 64,540 v 336 h 320 c 17.728,0 32,-14.272 32,-32 V 572 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:#2864b0;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="rect954-3-2-9-0-3"
+ d="m 64,460 v 408 h 320 c 17.728,0 32,-14.272 32,-32 V 492 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ style="display:inline;opacity:0.18699999;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 72,460.00003 h 8 v 408 h -8 z"
+ id="rect1366-2" />
+ </g>
+ <path
+ d="m -132.75814,229.59019 q 0,2.7859 1.17777,4.39403 1.20043,1.60812 3.2389,1.60812 2.01581,0 3.21624,-1.60812 1.20043,-1.63077 1.20043,-4.39403 0,-2.7406 -1.22308,-4.32607 -1.20043,-1.60812 -3.23889,-1.60812 -1.99317,0 -3.1936,1.60812 -1.17777,1.58547 -1.17777,4.32607 z m 9.28633,6.81753 q -0.67949,1.60813 -2.19701,2.51411 -1.49487,0.88333 -3.51069,0.88333 -3.89573,0 -6.34188,-2.80855 -2.42351,-2.8312 -2.42351,-7.36112 0,-4.52992 2.44615,-7.36112 2.44616,-2.83119 6.31924,-2.83119 2.01582,0 3.51069,0.90598 1.51752,0.90598 2.19701,2.5141 v -2.96709 h 4.73377 v 15.69617 q 2.80855,-0.43034 4.41667,-2.6953 1.60812,-2.28761 1.60812,-5.8436 0,-2.26496 -0.65684,-4.23547 -0.65684,-1.99317 -1.99316,-3.64659 -2.15172,-2.76325 -5.39061,-4.25812 -3.21624,-1.49488 -6.97607,-1.49488 -2.62736,0 -5.02821,0.70214 -2.40086,0.67949 -4.43932,2.01581 -3.35214,2.21967 -5.23206,5.753 -1.85727,3.51069 -1.85727,7.61027 0,3.37479 1.20043,6.34188 1.22308,2.94445 3.51069,5.20941 2.26496,2.21966 5.18676,3.37479 2.94444,1.17778 6.27393,1.17778 2.85385,0 5.7077,-1.06453 2.85385,-1.06453 4.86966,-2.8765 l 2.42351,3.66923 q -2.8312,2.19701 -6.18334,3.35214 -3.32949,1.17778 -6.77223,1.17778 -4.19017,0 -7.90471,-1.49487 -3.71453,-1.47222 -6.61368,-4.30342 -2.89915,-2.8312 -4.41667,-6.54574 -1.51752,-3.73718 -1.51752,-8.01795 0,-4.12223 1.54017,-7.85941 1.54017,-3.73719 4.39402,-6.56839 2.85385,-2.80855 6.63633,-4.34872 3.80514,-1.54017 7.88206,-1.54017 5.07351,0 9.21839,1.94786 4.14487,1.92522 6.93077,5.5718 1.69872,2.21967 2.55941,4.82437 0.88333,2.58205 0.88333,5.4359 0,6.13804 -3.69188,9.53548 -3.69189,3.39744 -10.41882,3.39744 h -0.88333 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:185.54548645px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24999999;enable-background:new"
+ id="path882-5" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Crosswords.Editor.svg b/benchmarks/hicolor-apps/org.gnome.Crosswords.Editor.svg
new file mode 100644
index 00000000..92337f86
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Crosswords.Editor.svg
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ height="128px"
+ viewBox="0 0 128 128"
+ width="128px"
+ version="1.1"
+ id="svg381"
+ sodipodi:docname="org.gnome.Crosswords.Editor.svg"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs385">
+ <linearGradient
+ id="f"
+ gradientTransform="matrix(-0.6,0.6,-0.707107,-0.707107,-168.14248,138.07187)"
+ x1="-253.63036"
+ x2="-230.06013"
+ xlink:href="#e-6"
+ y1="-56.517502"
+ y2="-56.517502" />
+ <linearGradient
+ id="e-6"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ stop-color="#fc9a91"
+ id="stop26" />
+ <stop
+ offset="1"
+ stop-color="#cb2b31"
+ id="stop28" />
+ </linearGradient>
+ <linearGradient
+ id="g"
+ gradientTransform="matrix(-0.6,0.6,-0.707107,-0.707107,-166.72827,139.48609)"
+ x1="-253.63036"
+ x2="-230.06013"
+ xlink:href="#e-6"
+ y1="-56.517502"
+ y2="-56.517502" />
+ <linearGradient
+ id="h"
+ gradientTransform="matrix(-0.390307,-0.130102,-0.130102,-0.390307,130.56204,74.745538)"
+ gradientUnits="userSpaceOnUse"
+ x1="181.67741"
+ x2="143.24614"
+ y1="-139.47939"
+ y2="-101.0481">
+ <stop
+ offset="0"
+ stop-color="#d0bb8e"
+ id="stop33" />
+ <stop
+ offset="1"
+ stop-color="#ffffff"
+ id="stop35" />
+ </linearGradient>
+ <linearGradient
+ id="i"
+ gradientTransform="matrix(-0.6,0.6,-0.707107,-0.707107,-166.72827,139.48608)"
+ gradientUnits="userSpaceOnUse"
+ x1="-230.06013"
+ x2="-253.63036"
+ y1="-64.517509"
+ y2="-64.517509">
+ <stop
+ offset="0"
+ stop-color="#c0bfbc"
+ id="stop38" />
+ <stop
+ offset="0.223152"
+ stop-color="#9a9996"
+ id="stop40" />
+ <stop
+ offset="0.743841"
+ stop-color="#d6d5d2"
+ id="stop42" />
+ <stop
+ offset="1"
+ stop-color="#f6f5f4"
+ id="stop44" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="namedview383"
+ pagecolor="#ffffff"
+ bordercolor="#111111"
+ borderopacity="1"
+ inkscape:showpageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="1"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="4.2846575"
+ inkscape:cx="48.428608"
+ inkscape:cy="64.182493"
+ inkscape:window-width="1920"
+ inkscape:window-height="1011"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg381">
+ <inkscape:grid
+ type="xygrid"
+ id="grid644"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <linearGradient
+ id="a"
+ gradientTransform="matrix(0.232143 0 0 0.328947 -8.56691 267.826965)"
+ gradientUnits="userSpaceOnUse"
+ x1="88.595886"
+ x2="536.595886"
+ y1="-449.394012"
+ y2="-449.394012">
+ <stop
+ offset="0"
+ stop-color="#c0bfbc"
+ id="stop316" />
+ <stop
+ offset="0.0384615"
+ stop-color="#f6f5f4"
+ id="stop318" />
+ <stop
+ offset="0.0768555"
+ stop-color="#c0bfbc"
+ id="stop320" />
+ <stop
+ offset="0.923077"
+ stop-color="#deddda"
+ id="stop322" />
+ <stop
+ offset="0.961538"
+ stop-color="#c0bfbc"
+ id="stop324" />
+ <stop
+ offset="1"
+ stop-color="#c0bfbc"
+ id="stop326" />
+ </linearGradient>
+ <linearGradient
+ id="b"
+ gradientTransform="matrix(0.232143 0 0 0.328947 -8.56691 267.826965)"
+ gradientUnits="userSpaceOnUse"
+ x1="88.595886"
+ x2="536.595886"
+ y1="-449.394012"
+ y2="-449.394012">
+ <stop
+ offset="0"
+ stop-color="#241f31"
+ id="stop329" />
+ <stop
+ offset="0.0384615"
+ stop-color="#9a9996"
+ id="stop331" />
+ <stop
+ offset="0.0768555"
+ stop-color="#241f31"
+ id="stop333" />
+ <stop
+ offset="0.923077"
+ stop-color="#241f31"
+ id="stop335" />
+ <stop
+ offset="0.961538"
+ stop-color="#c0bfbc"
+ id="stop337" />
+ <stop
+ offset="1"
+ stop-color="#c0bfbc"
+ id="stop339" />
+ </linearGradient>
+ <radialGradient
+ id="c"
+ cx="-256"
+ cy="311.779755"
+ gradientTransform="matrix(1 0 0 0.607197 368 -71.31176)"
+ gradientUnits="userSpaceOnUse"
+ r="52.002365">
+ <stop
+ offset="0"
+ stop-opacity="0.05098"
+ id="stop342" />
+ <stop
+ offset="1"
+ stop-opacity="0"
+ id="stop344" />
+ </radialGradient>
+ <clipPath
+ id="d">
+ <path
+ d="m 12 68 h 52 v 46 h -52 z m 0 0"
+ id="path347" />
+ </clipPath>
+ <clipPath
+ id="e">
+ <path
+ d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 86 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -86 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0"
+ id="path350" />
+ </clipPath>
+ <path
+ d="m 64 20 v 100 h 44 c 4.433594 0 8 -3.566406 8 -8 v -84 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0"
+ fill="url(#a)"
+ id="path353" />
+ <path
+ d="m 12 92.859375 v 19.140625 c 0 4.433594 3.566406 8 8 8 h 46 v -27.140625 z m 0 0"
+ fill="url(#b)"
+ id="path355" />
+ <path
+ d="m 13.59375 111.457031 c 1.542969 2.144531 4.054688 3.542969 6.902344 3.542969 h 87.003906 c 2.847656 0 5.359375 -1.398438 6.898438 -3.542969 c -1.136719 2.679688 -3.789063 4.542969 -6.898438 4.542969 h -87.003906 c -3.109375 0 -5.761719 -1.863281 -6.902344 -4.542969 z m 0 2 c 1.542969 2.144531 4.054688 3.542969 6.902344 3.542969 h 87.003906 c 2.847656 0 5.359375 -1.398438 6.898438 -3.542969 c -1.136719 2.679688 -3.789063 4.542969 -6.898438 4.542969 h -87.003906 c -3.109375 0 -5.761719 -1.863281 -6.902344 -4.542969 z m 0 0"
+ fill="url(#c)"
+ id="path357" />
+ <path
+ d="m 20 12 c -4.433594 0 -8 3.566406 -8 8 v 45 h 52 v 47 h 44 c 4.433594 0 8 -3.566406 8 -8 v -84 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0"
+ fill="#f6f5f4"
+ id="path359" />
+ <g
+ clip-path="url(#d)"
+ id="g365">
+ <g
+ clip-path="url(#e)"
+ id="g363">
+ <path
+ d="m 12 68 h 52 v 46 h -52 z m 0 0"
+ fill="#3d3846"
+ id="path361" />
+ </g>
+ </g>
+ <path
+ d="m 62 12 v 52 h -50 v 4 h 50 v 46 h 4 v -48 h 50 v -2 h -50 v -52 z m 0 0"
+ fill="#3d3846"
+ id="path367" />
+ <path
+ d="m 39.957031 23.6875 c -9.183593 0 -15.046875 5.523438 -15.046875 13.625 c 0 7.800781 5.453125 13.03125 13.589844 13.03125 c 4.109375 0 7.617188 -1.234375 10.53125 -3.699219 v -12.019531 h -11.652344 v 5.453125 h 5.492188 v 3.894531 c -0.910156 0.488282 -2.140625 0.769532 -3.585938 0.769532 c -4.667968 0 -7.578125 -3.023438 -7.578125 -7.949219 c 0 -4.816407 2.800781 -7.394531 8.0625 -7.394531 c 2.203125 0 4.777344 0.410156 6.496094 1.007812 l 1.792969 -5.078125 c -2.203125 -1.042969 -5.152344 -1.640625 -8.101563 -1.640625 z m 37.925781 0.3125 v 26 h 6.121094 v -17.109375 l 10.753906 17.109375 h 7.242188 v -26 h -6.195312 l -0.070313 16.980469 l -10.460937 -16.980469 z m 0 0"
+ fill="#9a9996"
+ id="path369" />
+ <path
+ d="m 73.578125 76.765625 h 1.351563 v -5.59375 h -1.308594 l -2.585938 3.832031 v 0.730469 h 4.871094 v -1.167969 l -4.167969 -0.015625 l 0.402344 0.4375 l 1.605469 -2.535156 l -0.167969 -0.390625 z m 0 0"
+ fill="#c0bfbc"
+ id="path371" />
+ <path
+ d="m 76.410156 76.726562 h 3.921875 v -1.199218 h -2.289062 l 0.007812 0.285156 c 1.425781 -1.039062 2.136719 -2.03125 2.136719 -3 c 0 -1.039062 -0.816406 -1.71875 -2.070312 -1.71875 c -0.722657 0 -1.378907 0.222656 -1.914063 0.664062 l 0.351563 1.015626 c 0.449218 -0.3125 0.890624 -0.472657 1.289062 -0.472657 c 0.550781 0 0.902344 0.296875 0.902344 0.730469 c 0 0.6875 -0.886719 1.519531 -2.335938 2.71875 z m 0 0"
+ fill="#c0bfbc"
+ id="path373" />
+ <path
+ d="m 12 62 h 50 v 2 h -50 z m 0 0"
+ fill-opacity="0.2"
+ id="path375" />
+ <path
+ d="m 66 62 h 50 v 2 h -50 z m 0 0"
+ fill-opacity="0.2"
+ id="path377" />
+ <path
+ d="m 24.652344 17.09375 c -1.414063 0 -2.371094 1.152344 -2.371094 2.878906 c 0 1.695313 0.9375 2.832032 2.328125 2.832032 c 1.410156 0 2.359375 -1.152344 2.359375 -2.886719 c 0 -1.695313 -0.933594 -2.824219 -2.316406 -2.824219 z m -5.03125 0.078125 l -2.585938 3.832031 v 0.730469 h 2.542969 v 1.03125 h 1.355469 v -1.03125 h 0.972656 v -1.167969 l -0.972656 -0.003906 v -3.390625 z m 5 1.105469 c 0.550781 0 0.925781 0.679687 0.925781 1.707031 c 0 0.980469 -0.367187 1.636719 -0.90625 1.636719 c -0.566406 0 -0.933594 -0.679688 -0.933594 -1.695313 c 0 -0.992187 0.367188 -1.648437 0.914063 -1.648437 z m -5.042969 0.441406 v 1.839844 l -1.160156 -0.007813 z m 0 0"
+ fill="#c0bfbc"
+ id="path379" />
+ <path
+ d="M 85.253913,89.941406 73.941413,101.25391 14.34375,41.65625 25.65625,30.34375 Z m 0,0"
+ fill="#ff881e"
+ id="path67" />
+ <path
+ d="m 76.820322,98.476566 -4.242189,4.242184 -59.597662,-59.597655 4.242188,-4.242188 z m 0,0"
+ fill="#e66100"
+ id="path69" />
+ <path
+ d="m 82.476572,92.820316 4.24218,-4.242189 -59.597653,-59.597658 -4.24219,4.242188 z m 0,0"
+ fill="#ffb367"
+ id="path71" />
+ <path
+ d="M 31.070321,32.929688 16.92969,47.070313 11.27344,41.414063 25.414071,27.273438 Z m 0,0"
+ fill="url(#f)"
+ id="path73"
+ style="fill:url(#f)" />
+ <path
+ d="m 11.27344,41.414063 c -3.90625,-3.90625 -3.90625,-10.238281 0,-14.140625 3.90234,-3.90625 10.234381,-3.90625 14.140631,0 3.90625,3.902344 3.90625,10.234375 0,14.140625 -3.90625,3.90625 -10.23829,3.90625 -14.140631,0 z m 0,0"
+ fill="url(#g)"
+ id="path75"
+ style="fill:url(#g)" />
+ <path
+ d="m 89.597663,105.59766 -17.07031,-2.92969 14.14062,-14.140623 z m 0,0"
+ fill="url(#h)"
+ id="path77"
+ style="fill:url(#h)" />
+ <path
+ d="m 89.597663,105.59766 -7.414061,-1.27344 6.14062,-6.140623 z m 0,0"
+ fill="#3d3846"
+ id="path79" />
+ <path
+ d="M 33.89844,35.757813 19.757821,49.898438 14.101571,44.242188 28.24219,30.101563 Z m 0,0"
+ fill="url(#i)"
+ id="path81"
+ style="fill:url(#i)" />
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Crosswords.svg b/benchmarks/hicolor-apps/org.gnome.Crosswords.svg
new file mode 100644
index 00000000..97ea7a71
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Crosswords.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(0.232143 0 0 0.328947 -8.56691 267.826965)" gradientUnits="userSpaceOnUse" x1="88.595886" x2="536.595886" y1="-449.394012" y2="-449.394012">
+ <stop offset="0" stop-color="#c0bfbc"/>
+ <stop offset="0.0384615" stop-color="#f6f5f4"/>
+ <stop offset="0.0768555" stop-color="#c0bfbc"/>
+ <stop offset="0.923077" stop-color="#deddda"/>
+ <stop offset="0.961538" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0.232143 0 0 0.328947 -8.56691 267.826965)" gradientUnits="userSpaceOnUse" x1="88.595886" x2="536.595886" y1="-449.394012" y2="-449.394012">
+ <stop offset="0" stop-color="#241f31"/>
+ <stop offset="0.0384615" stop-color="#9a9996"/>
+ <stop offset="0.0768555" stop-color="#241f31"/>
+ <stop offset="0.923077" stop-color="#241f31"/>
+ <stop offset="0.961538" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <radialGradient id="c" cx="-256" cy="311.779755" gradientTransform="matrix(1 0 0 0.607197 368 -71.31176)" gradientUnits="userSpaceOnUse" r="52.002365">
+ <stop offset="0" stop-opacity="0.05098"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <clipPath id="d">
+ <path d="m 12 68 h 52 v 46 h -52 z m 0 0"/>
+ </clipPath>
+ <clipPath id="e">
+ <path d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 86 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -86 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0"/>
+ </clipPath>
+ <path d="m 64 20 v 100 h 44 c 4.433594 0 8 -3.566406 8 -8 v -84 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 12 92.859375 v 19.140625 c 0 4.433594 3.566406 8 8 8 h 46 v -27.140625 z m 0 0" fill="url(#b)"/>
+ <path d="m 13.59375 111.457031 c 1.542969 2.144531 4.054688 3.542969 6.902344 3.542969 h 87.003906 c 2.847656 0 5.359375 -1.398438 6.898438 -3.542969 c -1.136719 2.679688 -3.789063 4.542969 -6.898438 4.542969 h -87.003906 c -3.109375 0 -5.761719 -1.863281 -6.902344 -4.542969 z m 0 2 c 1.542969 2.144531 4.054688 3.542969 6.902344 3.542969 h 87.003906 c 2.847656 0 5.359375 -1.398438 6.898438 -3.542969 c -1.136719 2.679688 -3.789063 4.542969 -6.898438 4.542969 h -87.003906 c -3.109375 0 -5.761719 -1.863281 -6.902344 -4.542969 z m 0 0" fill="url(#c)"/>
+ <path d="m 20 12 c -4.433594 0 -8 3.566406 -8 8 v 45 h 52 v 47 h 44 c 4.433594 0 8 -3.566406 8 -8 v -84 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0" fill="#f6f5f4"/>
+ <g clip-path="url(#d)">
+ <g clip-path="url(#e)">
+ <path d="m 12 68 h 52 v 46 h -52 z m 0 0" fill="#3d3846"/>
+ </g>
+ </g>
+ <path d="m 62 12 v 52 h -50 v 4 h 50 v 46 h 4 v -48 h 50 v -2 h -50 v -52 z m 0 0" fill="#3d3846"/>
+ <path d="m 39.957031 23.6875 c -9.183593 0 -15.046875 5.523438 -15.046875 13.625 c 0 7.800781 5.453125 13.03125 13.589844 13.03125 c 4.109375 0 7.617188 -1.234375 10.53125 -3.699219 v -12.019531 h -11.652344 v 5.453125 h 5.492188 v 3.894531 c -0.910156 0.488282 -2.140625 0.769532 -3.585938 0.769532 c -4.667968 0 -7.578125 -3.023438 -7.578125 -7.949219 c 0 -4.816407 2.800781 -7.394531 8.0625 -7.394531 c 2.203125 0 4.777344 0.410156 6.496094 1.007812 l 1.792969 -5.078125 c -2.203125 -1.042969 -5.152344 -1.640625 -8.101563 -1.640625 z m 37.925781 0.3125 v 26 h 6.121094 v -17.109375 l 10.753906 17.109375 h 7.242188 v -26 h -6.195312 l -0.070313 16.980469 l -10.460937 -16.980469 z m 0 0" fill="#9a9996"/>
+ <path d="m 73.578125 76.765625 h 1.351563 v -5.59375 h -1.308594 l -2.585938 3.832031 v 0.730469 h 4.871094 v -1.167969 l -4.167969 -0.015625 l 0.402344 0.4375 l 1.605469 -2.535156 l -0.167969 -0.390625 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 76.410156 76.726562 h 3.921875 v -1.199218 h -2.289062 l 0.007812 0.285156 c 1.425781 -1.039062 2.136719 -2.03125 2.136719 -3 c 0 -1.039062 -0.816406 -1.71875 -2.070312 -1.71875 c -0.722657 0 -1.378907 0.222656 -1.914063 0.664062 l 0.351563 1.015626 c 0.449218 -0.3125 0.890624 -0.472657 1.289062 -0.472657 c 0.550781 0 0.902344 0.296875 0.902344 0.730469 c 0 0.6875 -0.886719 1.519531 -2.335938 2.71875 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 12 62 h 50 v 2 h -50 z m 0 0" fill-opacity="0.2"/>
+ <path d="m 66 62 h 50 v 2 h -50 z m 0 0" fill-opacity="0.2"/>
+ <path d="m 24.652344 17.09375 c -1.414063 0 -2.371094 1.152344 -2.371094 2.878906 c 0 1.695313 0.9375 2.832032 2.328125 2.832032 c 1.410156 0 2.359375 -1.152344 2.359375 -2.886719 c 0 -1.695313 -0.933594 -2.824219 -2.316406 -2.824219 z m -5.03125 0.078125 l -2.585938 3.832031 v 0.730469 h 2.542969 v 1.03125 h 1.355469 v -1.03125 h 0.972656 v -1.167969 l -0.972656 -0.003906 v -3.390625 z m 5 1.105469 c 0.550781 0 0.925781 0.679687 0.925781 1.707031 c 0 0.980469 -0.367187 1.636719 -0.90625 1.636719 c -0.566406 0 -0.933594 -0.679688 -0.933594 -1.695313 c 0 -0.992187 0.367188 -1.648437 0.914063 -1.648437 z m -5.042969 0.441406 v 1.839844 l -1.160156 -0.007813 z m 0 0" fill="#c0bfbc"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Dictionary.svg b/benchmarks/hicolor-apps/org.gnome.Dictionary.svg
new file mode 100644
index 00000000..4f41d1a7
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Dictionary.svg
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient914">
+ <stop
+ id="stop908"
+ offset="0"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="0.5"
+ id="stop910" />
+ <stop
+ id="stop912"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(-640,640)"
+ gradientUnits="userSpaceOnUse"
+ y2="120"
+ x2="416"
+ y1="120"
+ x1="384"
+ id="linearGradient1053-6"
+ xlink:href="#linearGradient914" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ transform="matrix(0.25,0,0,0.25,-5.62e-5,225.125)"
+ id="g925-5"
+ style="display:inline;enable-background:new">
+ <g
+ style="display:inline;enable-background:new"
+ id="g995-3"
+ transform="translate(640,-640.5)">
+ <path
+ id="rect954-3-8-5"
+ d="m -544,540 v 368 h 288 c 17.728,0 32,-14.272 32,-32 V 572 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:#26a269;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="rect954-3-6-7-6"
+ d="m -536,620 v 280 h 280 c 17.728,0 32,-14.272 32,-32 V 652 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:url(#linearGradient1053-6);fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="rect954-3-2-92-2"
+ d="m -544,492 v 264 h 288 c 17.728,0 32,-14.272 32,-32 V 524 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:#26a269;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="rect954-3-2-9-02-9"
+ d="m -544,460 v 288 h 288 c 17.728,0 32,-14.272 32,-32 V 492 c 0,-17.728 -14.272,-32 -32,-32 z"
+ style="display:inline;opacity:1;fill:#2ec27e;fill-opacity:1;stroke:none;stroke-width:23.99999809;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ y="508.5"
+ x="-544"
+ height="192"
+ width="320.00003"
+ id="rect901-7-1"
+ style="display:inline;opacity:1;fill:#57e389;fill-opacity:1;stroke:none;stroke-width:1.99999988;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <path
+ style="opacity:0.3;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ d="m -536,460 h 8 v 288 h -8 z"
+ id="rect1366-2" />
+ </g>
+ <path
+ id="path913-3-9"
+ style="display:inline;opacity:0.1;fill:#000000;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="m 236.00022,223.5 h 104 m -128,-16 h 65.5 m -33.5,-16 h 128 m -152,-16 h 128" />
+ <path
+ style="display:inline;fill:#ed333b;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
+ d="m 128,140 h 64 v 80 L 160,191.9996 128,220 Z"
+ id="path903-5-3" />
+ </g>
+ <g
+ transform="translate(1)"
+ id="text897-5"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'Linux Libertine O';-inkscape-font-specification:'Linux Libertine O Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;display:inline;fill:#1d7d51;fill-opacity:1;stroke:none;stroke-width:0.25;enable-background:new"
+ aria-label="Aa">
+ <path
+ id="path928"
+ style="fill:#1f8455;stroke-width:0.25;fill-opacity:1"
+ d="m 48.969683,216.40501 c -0.88,0 -1.16,-0.12 -1.04,-0.52 l 3.56,-8.96 h 0.28 l 3.28,9.48 z m -4.32,8.16 2.12,-5.56 c 0.2,-0.52 0.44,-0.68 1.4,-0.68 h 7.6 l 2.24,6.52 c 0.56,1.64 -1.08,1.48 -2.96,1.6 -0.24,0.24 -0.24,1.12 0,1.36 1.48,-0.04 5.28,-0.08 6.84,-0.08 1.64,0 3.88,0.04 5.36,0.08 0.24,-0.24 0.24,-1.12 0,-1.36 -1.56,-0.12 -2.88,-0.12 -3.6,-2.16 l -8.24,-22.88 c -0.6,0.36 -3,1.76 -4.44,1.76 l -8.64,20.48 c -1.04,2.48 -2.28,2.68 -4,2.8 -0.24,0.24 -0.24,1.12 0,1.36 1.48,-0.04 2.2,-0.08 3.76,-0.08 1.64,0 3.84,0.04 5.32,0.08 0.24,-0.24 0.24,-1.12 0,-1.36 -1.52,-0.08 -3.4,-0.24 -2.76,-1.88 z" />
+ <path
+ id="path930"
+ style="fill:#1f8455;stroke-width:0.25;fill-opacity:1"
+ d="m 78.990308,225.80501 c 0.28,1.6 1.36,2.32 3.12,2.32 2.2,0 3.76,-0.84 5.24,-2.24 -0.12,-0.44 -0.28,-0.76 -0.72,-1.12 -0.52,0.4 -0.92,0.56 -1.68,0.56 -0.88,0 -1.12,-0.72 -1.12,-2.68 l 0.08,-5.76 c 0,-5.76 -3.56,-6.92 -6.84,-6.92 -2.92,0 -7.44,1.68 -7.44,4.32 0,1.16 0.48,2.04 2.08,2.04 1.4,0 2.48,-0.88 2.48,-1.88 0,-0.52 -0.28,-1.2 -0.2,-1.88 0.08,-0.44 0.36,-0.92 1.72,-0.92 1.68,0 3.08,0.72 3.08,5.8 l -2.68,0.84 c -4.24,1.32 -7.16,2.48 -7.16,5.64 0,2.76 1.52,4.2 5,4.2 1.16,0 3.48,-1.28 4.8,-2.32 z m -0.2,-6.8 v 5.28 c -1,0.8 -2,1.44 -2.72,1.44 -1.72,0 -2.32,-1.16 -2.32,-2.4 0,-1.48 0.12,-2.68 2.96,-3.64 z" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.DiskUtility.svg b/benchmarks/hicolor-apps/org.gnome.DiskUtility.svg
new file mode 100644
index 00000000..da191dbd
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.DiskUtility.svg
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient10247">
+ <stop
+ id="stop10243"
+ offset="0"
+ style="stop-color:#010101;stop-opacity:1;" />
+ <stop
+ id="stop10245"
+ offset="1"
+ style="stop-color:#010101;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient10232">
+ <stop
+ id="stop10228"
+ offset="0"
+ style="stop-color:#47454b;stop-opacity:1" />
+ <stop
+ id="stop10230"
+ offset="1"
+ style="stop-color:#dfdee0;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1194">
+ <stop
+ style="stop-color:#5e5c64;stop-opacity:1"
+ offset="0"
+ id="stop1190" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="1"
+ id="stop1192" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1188">
+ <stop
+ id="stop1184"
+ offset="0"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ id="stop1186"
+ offset="1"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1378">
+ <stop
+ style="stop-color:#424048;stop-opacity:1"
+ offset="0"
+ id="stop1366" />
+ <stop
+ id="stop1368"
+ offset="0.04702194"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ <stop
+ style="stop-color:#949390;stop-opacity:1"
+ offset="0.09717868"
+ id="stop1370" />
+ <stop
+ id="stop1372"
+ offset="0.89968652"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="0.94984329"
+ id="stop1374" />
+ <stop
+ style="stop-color:#424048;stop-opacity:1"
+ offset="1"
+ id="stop1376" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1364">
+ <stop
+ id="stop1352"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1" />
+ <stop
+ style="stop-color:#424048;stop-opacity:1"
+ offset="0.04702194"
+ id="stop1354" />
+ <stop
+ id="stop1356"
+ offset="0.09717868"
+ style="stop-color:#241f31;stop-opacity:1" />
+ <stop
+ style="stop-color:#241f31;stop-opacity:1"
+ offset="0.89968652"
+ id="stop1358" />
+ <stop
+ id="stop1360"
+ offset="0.94984329"
+ style="stop-color:#424048;stop-opacity:1" />
+ <stop
+ id="stop1362"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1235">
+ <stop
+ style="stop-color:#949390;stop-opacity:1"
+ offset="0"
+ id="stop1231" />
+ <stop
+ style="stop-color:#424048;stop-opacity:1"
+ offset="1"
+ id="stop1233" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient983">
+ <stop
+ id="stop979"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:0.25098041" />
+ <stop
+ id="stop981"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.03137255" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1282">
+ <stop
+ id="stop1278"
+ offset="0"
+ style="stop-color:#f6f5f4;stop-opacity:1;" />
+ <stop
+ id="stop1280"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1494">
+ <stop
+ id="stop1490"
+ offset="0"
+ style="stop-color:#babdb6;stop-opacity:1;" />
+ <stop
+ id="stop1492"
+ offset="1"
+ style="stop-color:#babdb6;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="20"
+ x2="280"
+ y1="172"
+ x1="280"
+ id="linearGradient1496"
+ xlink:href="#linearGradient1494" />
+ <linearGradient
+ gradientTransform="matrix(0.25,0,0,0.25,-1e-5,225)"
+ gradientUnits="userSpaceOnUse"
+ y2="59.234238"
+ x2="318.91211"
+ y1="113.76978"
+ x1="301.62421"
+ id="linearGradient2155"
+ xlink:href="#linearGradient1194" />
+ <linearGradient
+ gradientTransform="matrix(0.25,0,0,0.25,-1e-5,225)"
+ y2="-112.15472"
+ x2="249"
+ y1="125"
+ x1="249"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1057"
+ xlink:href="#linearGradient1188" />
+ <linearGradient
+ gradientTransform="matrix(0.25,0,0,0.25,-1e-5,225)"
+ gradientUnits="userSpaceOnUse"
+ y2="-172"
+ x2="323.00003"
+ y1="217"
+ x1="347.00003"
+ id="linearGradient1284"
+ xlink:href="#linearGradient1282" />
+ <linearGradient
+ y2="619.96387"
+ x2="496"
+ y1="619.96387"
+ x1="177"
+ gradientTransform="matrix(0.25,0,0,0.24305558,-20.00001,91.56432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1444-3-9"
+ xlink:href="#linearGradient1378" />
+ <linearGradient
+ y2="799.96387"
+ x2="494.99994"
+ y1="799.96387"
+ x1="176"
+ gradientTransform="matrix(0.25,0,0,0.24305558,-20.00001,91.56432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1121"
+ xlink:href="#linearGradient1364" />
+ <radialGradient
+ r="16"
+ fy="199.58058"
+ fx="128"
+ cy="199.58058"
+ cx="128"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1131"
+ xlink:href="#linearGradient983" />
+ <radialGradient
+ r="8"
+ fy="200.07188"
+ fx="127.9371"
+ cy="200.07188"
+ cx="127.9371"
+ gradientTransform="matrix(1.3756505,0,0,1.3756505,-47.996726,-75.471623)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1133"
+ xlink:href="#linearGradient1235" />
+ <linearGradient
+ y2="70.8974"
+ x2="328.0976"
+ y1="125.79309"
+ x1="298.65759"
+ gradientTransform="matrix(0.25,0,0,0.25,-1e-5,225)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient9681"
+ xlink:href="#linearGradient10232" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.59826328,0.63515006,-0.1152322,0.10854002,50.709492,158.17297)"
+ r="36.043909"
+ fy="221.95126"
+ fx="62.562256"
+ cy="221.95126"
+ cx="62.562256"
+ id="radialGradient10249"
+ xlink:href="#linearGradient10247" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <circle
+ r="0"
+ cy="172"
+ cx="32.500057"
+ id="path907"
+ style="opacity:0.05;fill:#ac1d2e;fill-opacity:1;stroke:none;stroke-width:0.01114019px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ ry="8"
+ rx="8"
+ y="221.99998"
+ x="24"
+ height="70"
+ width="80"
+ id="rect1480-3-7-1-2"
+ style="display:inline;opacity:1;fill:url(#linearGradient1121);fill-opacity:1;stroke:none;stroke-width:0.01114019px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="8"
+ rx="8"
+ y="215.99998"
+ x="24"
+ height="70"
+ width="80"
+ id="rect1480-3-7-1"
+ style="display:inline;opacity:1;fill:url(#linearGradient1444-3-9);fill-opacity:1;stroke:none;stroke-width:0.01114019px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="8.4571428"
+ rx="8"
+ y="180"
+ x="24"
+ height="104"
+ width="80"
+ id="rect1480-6-7"
+ style="display:inline;opacity:1;fill:url(#linearGradient1284);fill-opacity:1;stroke:none;stroke-width:0.01161654px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-1e-5,225)"
+ id="g1036"
+ style="display:inline;enable-background:new">
+ <circle
+ style="display:inline;opacity:1;fill:url(#radialGradient1131);fill-opacity:1;stroke:none;stroke-width:0.04456074px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="path1137-3"
+ cx="128"
+ cy="204"
+ r="16" />
+ <circle
+ style="opacity:1;fill:url(#radialGradient1133);fill-opacity:1;stroke:none;stroke-width:0.04456075px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="path1137"
+ cx="128"
+ cy="204"
+ r="8" />
+ </g>
+ <path
+ id="path905"
+ d="m 41.99999,184 c -2.216,0 -4,1.784 -4,4 0,3.31371 -2.68629,6 -6,6 -2.216,0 -4,1.784 -4,4 v 8 c 0,2.216 1.784,4 4,4 3.31371,0 6,2.68629 6,6 -0.003,1.47715 -0.55015,2.90139 -1.5376,4 -5.92217,6.59263 -8.44822,15.13802 -8.4624,24 0,19.88225 16.11775,36 36,36 19.88225,0 36,-16.11775 36,-36 -0.0159,-8.86282 -2.5389,-17.40831 -8.46338,-24 -0.98709,-1.09875 -1.53421,-2.52298 -1.53662,-4 0,-3.31371 2.68629,-6 6,-6 2.216,0 4,-1.784 4,-4 v -8 c 0,-2.216 -1.784,-4 -4,-4 -3.31371,0 -6,-2.68629 -6,-6 0,-2.216 -1.784,-4 -4,-4 z m 22,56 a 6,6 0 0 1 6,6 6,6 0 0 1 -6,6 6,6 0 0 1 -6,-6 6,6 0 0 1 6,-6 z"
+ style="display:inline;opacity:1;fill:#9a9996;fill-opacity:1;stroke:none;stroke-width:0.01114019px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path905-2"
+ d="m 41.99999,182 c -2.216,0 -4,1.784 -4,4 0,3.31371 -2.68629,6 -6,6 -2.216,0 -4,1.784 -4,4 v 8 c 0,2.216 1.784,4 4,4 3.31371,0 6,2.68629 6,6 -0.003,1.47715 -0.55015,2.90139 -1.5376,4 -5.92217,6.59263 -8.44822,15.13802 -8.4624,24 0,19.88225 16.11775,36 36,36 19.88225,0 36,-16.11775 36,-36 -0.0159,-8.86282 -2.5389,-17.40831 -8.46338,-24 -0.98709,-1.09875 -1.53421,-2.52298 -1.53662,-4 0,-3.31371 2.68629,-6 6,-6 2.216,0 4,-1.784 4,-4 v -8 c 0,-2.216 -1.784,-4 -4,-4 -3.31371,0 -6,-2.68629 -6,-6 0,-2.216 -1.784,-4 -4,-4 z m 22,56 a 6,6 0 0 1 6,6 6,6 0 0 1 -6,6 6,6 0 0 1 -6,-6 6,6 0 0 1 6,-6 z"
+ style="display:inline;opacity:1;fill:url(#linearGradient1057);fill-opacity:1;stroke:none;stroke-width:0.01161654px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(64)"
+ id="use1038"
+ xlink:href="#g1036"
+ y="0"
+ x="0"
+ style="display:inline;enable-background:new" />
+ <path
+ id="path10234"
+ transform="translate(0,172)"
+ d="M 61.398438 42.943359 C 59.000691 42.943359 56.715452 43.492114 54.636719 44.214844 A 0.92704756 0.92704756 0 0 0 54.287109 45.746094 L 64.933594 56.365234 C 66.774137 58.200694 66.774165 61.049176 64.933594 62.884766 L 60.919922 66.888672 C 59.07955 68.723952 56.213419 68.723952 54.373047 66.888672 L 43.724609 56.269531 A 0.92704756 0.92704756 0 0 0 42.195312 56.619141 C 41.470369 58.692571 40.919922 60.974688 40.919922 63.367188 C 40.919922 74.637497 50.101205 83.792969 61.398438 83.792969 C 63.58377 83.792969 65.656448 83.309301 67.583984 82.681641 L 96.205078 111.28711 C 96.439701 111.52173 96.679181 111.73155 96.917969 111.94141 C 100.91393 111.46237 104 107.89952 104 103.54297 L 104 92.753906 L 80.765625 69.535156 C 81.394633 67.613016 81.876953 65.546038 81.876953 63.367188 C 81.876953 52.096878 72.695566 42.943359 61.398438 42.943359 z "
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.11522007;marker:none;enable-background:accumulate;opacity:0.1" />
+ <path
+ d="m 61.398438,209.94922 c -2.54998,0 -4.942101,0.58013 -7.087891,1.32617 a 1.9221205,1.9221205 0 0 0 -0.726563,3.17578 l 10.646485,10.61914 c 1.467365,1.46331 1.467424,3.64593 0,5.10938 l -4.013672,4.0039 c -1.467,1.46294 -3.673625,1.46294 -5.140625,0 L 44.427734,223.56445 a 1.9221205,1.9221205 0 0 0 -3.171875,0.72657 c -0.748509,2.14083 -1.330078,4.53045 -1.330078,7.07617 0,11.80951 9.63912,21.41992 21.472657,21.41992 2.098622,0 4.052678,-0.43747 5.888671,-0.99219 l 28.214844,28.19531 c 5.237257,5.23727 11.930027,4.68446 15.595707,1.02539 3.66568,-3.65906 4.2486,-10.32756 -0.83204,-15.4082 L 81.878906,237.24023 c 0.555729,-1.83129 0.992188,-3.78043 0.992188,-5.87304 0,-11.80952 -9.639342,-21.41797 -21.472656,-21.41797 z"
+ id="path9673"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient9681);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.11522007;marker:none;enable-background:accumulate" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(64,-60)"
+ id="use1038-9"
+ xlink:href="#g1036"
+ y="0"
+ x="0"
+ style="display:inline;enable-background:new" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(64,-88)"
+ id="use1038-7"
+ xlink:href="#g1036"
+ y="0"
+ x="0"
+ style="display:inline;enable-background:new" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(0,-88)"
+ id="use1038-2"
+ xlink:href="#g1036"
+ y="0"
+ x="0"
+ style="display:inline;enable-background:new" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(0,-60)"
+ id="use1038-3"
+ xlink:href="#g1036"
+ y="0"
+ x="0"
+ style="display:inline;enable-background:new" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;opacity:0.57999998;fill:url(#radialGradient10249);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.11522007;marker:none;enable-background:accumulate"
+ id="path10241"
+ d="m 61.398438,209.84961 c -2.565301,0 -4.968555,0.58169 -7.121094,1.33008 a 2.0222693,2.0222693 0 0 0 -0.763672,3.34179 l 10.646484,10.61914 c 1.429807,1.42586 1.429869,3.54276 0,4.96876 l -4.013672,4.0039 c -1.429422,1.42546 -3.570577,1.42546 -5,0 L 44.498047,223.49414 a 2.0222693,2.0222693 0 0 0 -3.335938,0.76367 c -0.750881,2.14762 -1.335937,4.54824 -1.335937,7.10938 0,11.86378 9.684753,21.51953 21.572266,21.51953 2.090307,0 4.033718,-0.4324 5.861328,-0.98047 l 28.171875,28.1543 c 5.267269,5.26727 12.036159,4.72278 15.738279,1.02734 3.70212,-3.69544 4.27787,-10.43893 -0.83398,-15.55078 L 81.990234,237.21094 c 0.548715,-1.82239 0.980469,-3.76022 0.980469,-5.84375 0,-11.86379 -9.684987,-21.51758 -21.572265,-21.51758 z" />
+ <path
+ id="path2141"
+ d="m 61.39918,211.87039 c -2.25592,0 -4.44247,0.51766 -6.45873,1.21867 l 10.64819,10.61898 c 2.18821,2.18216 2.18821,5.65137 0,7.83365 l -4.01489,4.00387 c -2.18822,2.18216 -5.66701,2.18216 -7.85523,0 L 43.07034,224.92659 c -0.70299,2.01064 -1.22193,4.19123 -1.22193,6.44098 0,10.76797 8.75318,19.49707 19.55077,19.49707 2.25593,0 4.44248,-0.51766 6.45875,-1.21855 l 29.00274,28.98453 c 9.32243,9.32244 21.00762,-2.70043 12.04464,-11.66341 L 79.72802,237.80856 c 0.70298,-2.01064 1.22191,-4.19123 1.22191,-6.44098 0,-10.76797 -8.75317,-19.49719 -19.55077,-19.49719 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:Sans;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient2155);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.11522007;marker:none;enable-background:accumulate" />
+ </g>
+ <g
+ style="fill:url(#linearGradient1496);fill-opacity:1"
+ id="g1480" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Evince.svg b/benchmarks/hicolor-apps/org.gnome.Evince.svg
new file mode 100644
index 00000000..1bf77316
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Evince.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="a"><stop offset="0" stop-color="#d5d3cf"/><stop offset="1" stop-color="#f6f5f4"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#d5d3cf"/><stop offset="1" stop-color="#949390"/></linearGradient><linearGradient id="c"><stop offset="0" stop-color="#9a9996"/><stop offset="1" stop-color="#77767b"/></linearGradient><linearGradient xlink:href="#d" id="e" x1="28" y1="-274" x2="116" y2="-274" gradientUnits="userSpaceOnUse" gradientTransform="translate(-136)"/><linearGradient id="d"><stop offset="0" stop-color="#c0bfbc"/><stop offset=".045" stop-color="#f6f5f4"/><stop offset=".091" stop-color="#deddda"/><stop offset=".909" stop-color="#deddda"/><stop offset=".955" stop-color="#f6f5f4"/><stop offset="1" stop-color="#c0bfbc"/></linearGradient></defs><g transform="translate(0 -172)"><rect y="233" x="20" height="59" width="88" rx="8" fill="#deddda"/><rect ry="8" rx="8" y="-292" x="-108" height="40" width="88" style="marker:none" transform="scale(-1)" fill="url(#e)"/><rect width="88" height="104" x="20" y="180" rx="8" ry="8" fill="#f6f5f4"/><path style="marker:none" d="M28 248v10h64v-4h8v-6z" color="#000" overflow="visible" fill="#deddda"/><path d="M48 254a6.176 6.176 0 0 0-2.982.766 5.883 5.883 0 0 0-2.262 2.22C42.164 256.42 41.293 256 40 256H20v4h21.215c.453 0 .715.301.775.742.001.035.01.068.01.104V262H20v4h13.951l-4 4H20v2h8.275c-.515 1.129-.448 2.63 1.108 4.225L33.607 272h5.547A4.858 4.858 0 0 0 44 267.154v-1.125h8v1.125A4.858 4.858 0 0 0 56.846 272h5.576l4.195 4.195c1.542-1.58 1.62-3.07 1.12-4.195h7.417A4.858 4.858 0 0 0 80 267.154v-1.125h2V258c0-1.063-.828-2-2-2H56s-1.578.002-2.752.994a5.882 5.882 0 0 0-2.266-2.228A6.176 6.176 0 0 0 48 254zm0 2.004c.698 0 1.396.17 2.018.514 1.242.685 1.982 1.926 1.982 3.26 0 .04.002.079.006.118-.001.037-.006.067-.006.104v2h-8v-2l-.008-.086c.006-.045.008-.091.008-.137 0-1.333.74-2.574 1.982-3.26a4.182 4.182 0 0 1 2.018-.513zm6.785 4.012h23.082c.079.263.133.538.133.83v1.183H58.107l-.029-.029H54v-1.154c0-.034.009-.066.01-.1.025-.436.326-.73.775-.73zm-15.207 6.013H42v1.125A2.818 2.818 0 0 1 39.154 270h-3.547zm14.422 0h2.451l3.97 3.971h-3.575A2.818 2.818 0 0 1 54 267.154zm8.107 0H78v1.125A2.818 2.818 0 0 1 75.154 270h-9.076z" style="marker:none" opacity=".1"/><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" d="M29.383 274.225c-2.112-2.164-1.492-4.164-.375-5.282l8.913-8.914H82v4H39.579z" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#949390"/><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" d="M66.617 274.195c2.112-2.164 1.492-4.164.375-5.281L58.08 260H14v4h42.421z" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#949390"/><path style="marker:none" d="M43 257.777a4.775 5 90 0 1 2.5-4.136 4.775 5 90 0 1 5 0 4.775 5 90 0 1 2.5 4.136" fill="none" stroke="#1a5fb4" stroke-width="2" stroke-linecap="round"/><path d="M40.73 269H19.27a2.264 2.264 0 0 1-2.27-2.27v-7.46a2.264 2.264 0 0 1 2.27-2.27h21.46a2.264 2.264 0 0 1 2.27 2.27v7.46a2.264 2.264 0 0 1-2.27 2.27z" style="marker:none" fill="#fff" fill-opacity=".441"/><path d="M20.845 269h18.31A3.836 3.836 0 0 0 43 265.155v-6.31A3.836 3.836 0 0 0 39.155 255h-18.31A3.836 3.836 0 0 0 17 258.845v6.31A3.836 3.836 0 0 0 20.845 269z" style="marker:none" fill="none" stroke="#1a5fb4" stroke-width="2" stroke-linecap="round"/><path d="M76.73 269H55.27a2.264 2.264 0 0 1-2.27-2.27v-7.46a2.264 2.264 0 0 1 2.27-2.27h21.46a2.264 2.264 0 0 1 2.27 2.27v7.46a2.264 2.264 0 0 1-2.27 2.27z" style="marker:none" fill="#fff" fill-opacity=".441"/><path d="M56.845 269h18.31A3.836 3.836 0 0 0 79 265.155v-6.31A3.836 3.836 0 0 0 75.155 255h-18.31A3.836 3.836 0 0 0 53 258.845v6.31A3.836 3.836 0 0 0 56.845 269z" style="marker:none" fill="none" stroke="#1a5fb4" stroke-width="2" stroke-linecap="round"/><path d="M82 256c0-1.063-.828-2-2-2H56s-4 0-4 4v4h2v-3.2c0-.468.316-.784.785-.784h23.43c.469 0 .925.337.785.785V262h1c2 0 2 2 2 2zm-38 6v-4s0-4-4-4H16c-.88 0-2 .905-2 2v8s0-2 2-2h1v-3.215c0-.469.316-.785.785-.785h23.43c.469 0 .737.319.785.785l.125 3.215z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#1a5fb4"/><rect style="marker:none" width="32" height="32" x="68.001" y="210" rx="0" ry="0" fill="#f66151"/><path d="M69.71 235.207a41.947 41.947 0 0 0 14.33-7.194c1.441-1.114 2.838-2.357 3.717-3.952.44-.798.741-1.678.824-2.585.082-.907-.062-1.841-.468-2.656a4.788 4.788 0 0 0-1.525-1.755 5.755 5.755 0 0 0-2.144-.918c-1.533-.32-3.144-.064-4.609.49-1.762.669-3.374 1.785-4.507 3.291-1.134 1.507-1.766 3.412-1.62 5.292.096 1.218.513 2.405 1.156 3.444.643 1.04 1.509 1.935 2.496 2.656 1.975 1.442 4.395 2.171 6.82 2.482 5.52.706 11.285-.715 15.845-3.905l-.024-5.188c-3.574 3.943-8.657 6.483-13.956 6.975-2.287.212-4.67.039-6.736-.966-1.033-.502-1.973-1.21-2.692-2.106-.72-.895-1.214-1.98-1.355-3.12-.206-1.663.358-3.38 1.398-4.694s2.527-2.239 4.127-2.74c.883-.275 1.818-.429 2.736-.311.917.118 1.817.527 2.415 1.233.484.572.75 1.313.796 2.061.047.748-.117 1.501-.415 2.189-.595 1.375-1.693 2.464-2.812 3.46a46.823 46.823 0 0 1-13.796 8.517z" style="marker:none" color="#000" overflow="visible" fill="#fff"/><path style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" d="M28 192v4h40v-4z" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#77767b" fill-rule="evenodd"/><path style="marker:none" d="M28 222h36v18H48v4H28zM64 206v12H28v-18h72v6z" color="#000" overflow="visible" fill="#deddda"/><path d="M108 280.654a7.468 7.468 0 0 1-7.492 7.346h-.5v1h.5a8.488 8.488 0 0 0 7.463-4.428c.013-.19.029-.379.029-.572zM66 288l34 1v-1z" fill="#c0bfbc" fill-opacity=".272"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.Extensions.svg b/benchmarks/hicolor-apps/org.gnome.Extensions.svg
new file mode 100644
index 00000000..496be6b4
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Extensions.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="10.23" y1="87.43" x2="133.236" y2="88.679" gradientTransform="translate(-8 -16)"><stop offset="0" stop-color="#208757"/><stop offset=".077" stop-color="#2ec27e"/><stop offset=".147" stop-color="#208a5a"/><stop offset=".198" stop-color="#26a269"/><stop offset=".364" stop-color="#1c774d"/><stop offset=".407" stop-color="#26a269"/><stop offset=".493" stop-color="#26a269"/><stop offset=".576" stop-color="#26a269"/><stop offset=".606" stop-color="#2ec27e"/><stop offset=".681" stop-color="#26a269"/><stop offset=".784" stop-color="#1d7a4e"/><stop offset=".945" stop-color="#28ab6f"/><stop offset="1" stop-color="#48d493"/></linearGradient></defs><path d="M21.965 18.363v4l2.039 17.75c.418 3.637 1.055 7.282.844 10.938-.106 1.828-.465 3.668-1.309 5.293-.426.812-.969 1.57-1.644 2.191-.676.621-1.485 1.106-2.364 1.356-1.047.297-2.156.261-3.238.164-1.094-.098-2.227-.282-3.137-.903-.394-.273-.73-.617-1.082-.945-.351-.328-.726-.645-1.168-.832-.691-.297-1.492-.254-2.207-.023-.715.23-1.355.64-1.972 1.066-1.188.824-2.325 1.758-3.184 2.922-1.734 2.344-2.203 5.46-1.711 8.336.367 2.152 1.258 4.238 2.688 5.89.722.836 1.582 1.563 2.566 2.063.98.504 2.09.773 3.195.71 1.446-.085 2.79-.73 4.114-1.327 1.32-.594 2.718-1.16 4.168-1.067a5.113 5.113 0 012.332.758 5.958 5.958 0 011.773 1.707c.848 1.242 1.234 2.742 1.531 4.219 1.832 9.133.778 18.82-2.98 27.344v4c6.812 2.347 13.8 4.199 20.886 5.535 2.356.441 4.801.824 7.13.246 1.163-.29 2.28-.832 3.148-1.66a5.39 5.39 0 001.441-2.34c.266-.887.278-1.828.254-2.754L54 110c-.426.09-.875.059-1.285-.082a2.751 2.751 0 01-1.16-.8 3.768 3.768 0 01-.7-1.231c-.316-.895-.351-1.864-.355-2.813-.008-1.57.063-3.187.684-4.629.629-1.465 1.793-2.652 3.117-3.535 2.64-1.758 5.898-2.375 9.07-2.414 2.91-.035 5.918.414 8.387 1.953 1.238.77 2.316 1.809 3.043 3.07.722 1.262 1.078 2.739.953 4.188-.098 1.117-.477 2.2-1.02 3.18A9.862 9.862 0 0172 110c.012.996.02 1.992.02 2.988.003.555.003 1.114.07 1.664.07.551.21 1.098.476 1.586.383.7 1.012 1.239 1.692 1.657.68.414 1.422.722 2.176.984 4.207 1.46 8.793 1.562 13.203.922a40.756 40.756 0 0015.86-5.88l-.005-4.003a60.146 60.146 0 01-3.433-25.465c.125-1.512.312-3.039.894-4.441.29-.7.68-1.364 1.18-1.93.504-.566 1.12-1.039 1.82-1.332.82-.344 1.727-.434 2.613-.367.887.07 1.75.297 2.598.57 1.688.547 3.344 1.297 5.117 1.418 1.492.098 2.996-.266 4.332-.937a9.894 9.894 0 004.016-3.715 9.91 9.91 0 001.418-5.285l.176-2.258a16.406 16.406 0 00-3.075-6.477c-.785-.996-1.707-1.914-2.835-2.496a5.247 5.247 0 00-1.805-.558 4.18 4.18 0 00-1.875.214c-.988.364-1.774 1.125-2.703 1.614-1.032.543-2.203.738-3.364.824-1.148.086-2.324.07-3.425-.274-1.48-.464-2.743-1.52-3.602-2.812-.855-1.293-1.332-2.805-1.59-4.328-.574-3.399-.117-6.871.266-10.297a227.56 227.56 0 001.34-19.973 497.333 497.333 0 01-21.118-5.117c-1.355-.36-2.718-.726-4.113-.894-1.394-.165-2.836-.118-4.168.332a7.108 7.108 0 00-2.93 1.894v4c0 .414.016.828.11 1.235.094.402.258.789.445 1.156.371.738.82 1.433 1.313 2.097.98 1.329 2.136 2.563 2.765 4.094.688 1.676.668 3.606.07 5.317-.597 1.707-1.75 3.203-3.179 4.312-1.43 1.113-3.133 1.852-4.895 2.262-1.765.414-3.593.508-5.402.406-2.926-.164-5.906-.875-8.25-2.633-1.172-.883-2.164-2.015-2.793-3.34-.625-1.324-.879-2.828-.668-4.277.293-1.973 1.399-3.71 2.45-5.406.421-.684.831-1.38 1.078-2.14.242-.763.296-1.571.308-2.372L54.633 18a1.89 1.89 0 01-1.695.777c-.516-.047-.989-.3-1.41-.601-.419-.301-.801-.653-1.231-.938-.871-.578-1.914-.855-2.957-.933-1.043-.075-2.09.039-3.125.191-2.403.356-4.77.91-7.176 1.266-2.402.351-4.832.46-7.262.496zm0 0" fill="url(#a)"/><path d="M21.965 18.363l2.039 17.746c.426 3.715 1.16 7.414 1.094 11.149-.035 1.867-.34 3.77-1.239 5.41-.449.816-1.047 1.562-1.785 2.133-.738.574-1.617.972-2.543 1.09-1.504.195-2.996-.344-4.379-.961-1.379-.621-2.75-1.344-4.246-1.555-1.465-.21-2.984.094-4.293.777-1.308.688-2.406 1.746-3.207 2.989-1.601 2.484-1.972 5.605-1.574 8.535.3 2.219 1.05 4.433 2.512 6.133.73.847 1.633 1.558 2.656 2.011 1.023.457 2.168.657 3.281.52 1.54-.192 2.926-1 4.324-1.676.704-.336 1.422-.644 2.176-.828.754-.184 1.551-.238 2.309-.066.82.183 1.566.628 2.164 1.218.601.586 1.05 1.313 1.375 2.086.64 1.551.762 3.258.84 4.934a123.2 123.2 0 01-2.25 29.965 133.42 133.42 0 0020.886 5.53c2.352.427 4.793.782 7.11.196 1.16-.293 2.27-.828 3.152-1.633.883-.804 1.528-1.89 1.711-3.074.133-.879.012-1.789-.25-2.64-.262-.852-.668-1.657-1.101-2.438-.868-1.559-1.887-3.086-2.227-4.84-.3-1.558-.023-3.207.676-4.633.703-1.425 1.816-2.629 3.12-3.535 2.614-1.804 5.9-2.383 9.075-2.41 2.91-.023 5.918.414 8.39 1.953 1.235.77 2.313 1.809 3.04 3.07.73 1.258 1.097 2.743.953 4.188-.117 1.113-.524 2.18-1.024 3.18-.5 1.004-1.093 1.957-1.609 2.949-.512.996-.95 2.047-1.11 3.152-.156 1.11-.019 2.29.555 3.25.41.684 1.02 1.23 1.696 1.649.675.422 1.418.722 2.168.992a30.23 30.23 0 0015.183 1.332 30.128 30.128 0 0013.88-6.293l-2.587-19.371c-.453-3.406-1.14-6.813-1.047-10.246.043-1.719.34-3.461 1.141-4.98a6.796 6.796 0 011.578-2.02 5.338 5.338 0 012.262-1.18c.8-.183 1.637-.164 2.441-.02.809.145 1.59.41 2.352.708 1.527.597 3.023 1.34 4.648 1.558 1.5.203 3.055-.062 4.426-.699 1.375-.64 2.566-1.648 3.469-2.863 1.808-2.434 2.418-5.625 2.047-8.63-.305-2.448-1.258-4.862-2.953-6.655-.848-.895-1.875-1.63-3.016-2.098-1.14-.473-2.395-.684-3.621-.563-1.637.157-3.153.875-4.688 1.461-.765.297-1.55.559-2.355.707-.809.149-1.649.176-2.45-.004-1.214-.27-2.296-1.007-3.081-1.972-.786-.965-1.286-2.14-1.547-3.36-.524-2.43-.125-4.953.23-7.414a199.18 199.18 0 002-24.914 119.325 119.325 0 00-22.3-4.867c-2.329-.281-4.75-.48-6.97.274-1.113.378-2.152 1-2.933 1.875-.781.87-1.289 2.011-1.312 3.183-.02.824.199 1.645.543 2.395.347.75.812 1.441 1.312 2.097 1 1.317 2.148 2.559 2.773 4.09.688 1.676.676 3.606.082 5.32-.593 1.711-1.746 3.207-3.175 4.32-1.434 1.114-3.137 1.852-4.903 2.263-1.765.41-3.593.5-5.406.394-2.918-.172-5.894-.89-8.23-2.652-1.168-.88-2.157-2.016-2.79-3.332-.632-1.317-.906-2.82-.69-4.266.296-1.965 1.437-3.68 2.398-5.418.48-.871.925-1.77 1.199-2.723.277-.953.379-1.976.168-2.945-.219-1.016-.774-1.941-1.512-2.672-.738-.726-1.652-1.261-2.629-1.617-1.949-.71-4.078-.707-6.148-.586a58.229 58.229 0 00-22.254 5.867zm0 0" fill="#33d17a"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.FileRoller.svg b/benchmarks/hicolor-apps/org.gnome.FileRoller.svg
new file mode 100644
index 00000000..95064150
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.FileRoller.svg
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="268"
+ x2="115.82323"
+ y1="268"
+ x1="11.823223"
+ id="linearGradient1329"
+ xlink:href="#linearGradient1357" />
+ <linearGradient
+ id="linearGradient1357">
+ <stop
+ id="stop1345"
+ offset="0"
+ style="stop-color:#986a44;stop-opacity:1" />
+ <stop
+ style="stop-color:#cdab8f;stop-opacity:1"
+ offset="0.02884588"
+ id="stop1347" />
+ <stop
+ id="stop1349"
+ offset="0.05769204"
+ style="stop-color:#b5835a;stop-opacity:1" />
+ <stop
+ style="stop-color:#b5835a;stop-opacity:1"
+ offset="0.94230765"
+ id="stop1351" />
+ <stop
+ id="stop1353"
+ offset="0.97133332"
+ style="stop-color:#cdab8f;stop-opacity:1" />
+ <stop
+ id="stop1355"
+ offset="1"
+ style="stop-color:#986a44;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ y2="23"
+ x2="60"
+ y1="53.254841"
+ x1="70.586235"
+ gradientTransform="translate(0,170)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1610"
+ xlink:href="#linearGradient1656" />
+ <linearGradient
+ id="linearGradient1656">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0"
+ id="stop1652" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="1"
+ id="stop1654" />
+ </linearGradient>
+ <linearGradient
+ y2="268"
+ x2="68"
+ y1="268"
+ x1="60"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1612"
+ xlink:href="#linearGradient1270" />
+ <linearGradient
+ id="linearGradient1270">
+ <stop
+ style="stop-color:#949390;stop-opacity:1;"
+ offset="0"
+ id="stop1258" />
+ <stop
+ id="stop1260"
+ offset="0.08333334"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ style="stop-color:#949390;stop-opacity:1;"
+ offset="0.16666667"
+ id="stop1262" />
+ <stop
+ id="stop1264"
+ offset="0.83333331"
+ style="stop-color:#949390;stop-opacity:1;" />
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="0.91666669"
+ id="stop1266" />
+ <stop
+ style="stop-color:#949390;stop-opacity:1"
+ offset="1"
+ id="stop1268" />
+ </linearGradient>
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ transform="translate(0.176777)"
+ id="g1149-5"
+ style="display:inline;enable-background:new">
+ <rect
+ ry="8"
+ rx="8"
+ style="display:inline;opacity:1;fill:url(#linearGradient1329);fill-opacity:1;stroke:none;stroke-width:31.99999428;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000007, 2.00000003;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="rect1000-3-4"
+ width="104"
+ height="76"
+ x="12"
+ y="212" />
+ <rect
+ y="186"
+ x="12"
+ height="68"
+ width="104"
+ id="rect1299"
+ style="display:inline;opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:31.99999809;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000012, 2.00000007;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ rx="8"
+ ry="8" />
+ <rect
+ ry="8"
+ rx="8"
+ style="display:inline;opacity:1;fill:#cdab8f;fill-opacity:1;stroke:none;stroke-width:31.99999809;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000012, 2.00000007;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="rect1000-3-9-7"
+ width="104"
+ height="68"
+ x="12"
+ y="184" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#cdab8f;fill-opacity:1;stroke:none;stroke-width:1.54560292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1076-65"
+ width="2"
+ height="60"
+ x="62"
+ y="192" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#eadcd0;fill-opacity:1;stroke:none;stroke-width:1.54560292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1076-6-69"
+ width="2"
+ height="60.000008"
+ x="64"
+ y="-252"
+ transform="scale(1,-1)" />
+ <g
+ transform="translate(0,17)"
+ id="g1135-3"
+ style="display:inline;enable-background:new">
+ <path
+ style="opacity:1;fill:url(#linearGradient1610);fill-opacity:1;stroke:none;stroke-width:0.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal"
+ d="m 60,178 v 4 h 4 v -2 h 4 v -2 h -4 z m 4,4 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -2 -2 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -2 -2 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -4 z m 0,6 v 2 h -4 v 4 h 4 v -2 h 4 v -2 -2 z"
+ id="rect5175-2-7" />
+ <path
+ style="opacity:0.4;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal"
+ d="m 64,179 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z m 4,4 v 1 h 4 v -1 z m -4,2 v 1 h 4 v -1 z"
+ id="path1183-4" />
+ </g>
+ <path
+ id="path1340-5-4"
+ d="m 60,186 c -2.216,0 -4,1.784 -4,4 v 10 c 0,2.216 1.784,4 4,4 v 8 c 0,1.108 0.892,2 2,2 h 4 c 1.108,0 2,-0.892 2,-2 v -8 c 2.216,0 4,-1.784 4,-4 v -10 c 0,-2.216 -1.784,-4 -4,-4 z m 2,22 h 4 v 4 h -4 z"
+ style="display:inline;opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <g
+ id="g1352-52"
+ transform="translate(0,-66)"
+ style="display:inline;enable-background:new">
+ <path
+ style="opacity:1;fill:url(#linearGradient1612);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 62,258 c -1.108,0 -2,0.892 -2,2 v 16 c 0,1.108 0.892,2 2,2 h 4 c 1.108,0 2,-0.892 2,-2 v -16 c 0,-1.108 -0.892,-2 -2,-2 z m 0,14 h 4 v 4 h -4 z"
+ id="path1340-5" />
+ <rect
+ ry="4"
+ rx="4"
+ y="250"
+ x="56"
+ height="18"
+ width="16"
+ id="rect1051-6-7-4"
+ style="display:inline;opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:7.99999857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <rect
+ ry="4"
+ rx="4"
+ y="248"
+ x="56"
+ height="18"
+ width="16"
+ id="rect1051-6-74"
+ style="display:inline;opacity:1;vector-effect:none;fill:#5e5c64;fill-opacity:1;stroke:none;stroke-width:7.99999857;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <path
+ id="rect1335-4"
+ d="m 62,254 c -1.108,0 -2,0.892 -2,2 v 18 c 0,1.108 0.892,2 2,2 h 4 c 1.108,0 2,-0.892 2,-2 v -18 c 0,-1.108 -0.892,-2 -2,-2 z m 0,16 h 4 v 4 h -4 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ transform="scale(1,-1)"
+ ry="2"
+ rx="2"
+ y="-260"
+ x="62"
+ height="10"
+ width="3.9999993"
+ id="rect5037-3-3"
+ style="display:inline;opacity:1;fill:#68676b;fill-opacity:1;stroke:none;stroke-width:0.49999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:0.49999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;paint-order:normal;enable-background:new"
+ id="rect1089-0"
+ width="3.9999993"
+ height="8"
+ x="62"
+ y="-258"
+ rx="2"
+ ry="2"
+ transform="scale(1,-1)" />
+ </g>
+ <path
+ transform="translate(-0.1767767,172)"
+ id="rect1236"
+ d="m 16.177734,13.072266 c -0.754705,0.43517 -1.427824,0.989659 -2,1.638672 v 62.578124 c 0.572176,0.649013 1.245295,1.203502 2,1.638672 z"
+ style="opacity:0.1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <path
+ id="rect1236-3"
+ transform="translate(-0.1767767,172)"
+ d="m 112.17773,13.072266 v 65.855468 c 0.75493,-0.435507 1.42781,-0.991137 2,-1.640625 V 14.712891 c -0.57219,-0.649488 -1.24507,-1.205118 -2,-1.640625 z"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Firmware.svg b/benchmarks/hicolor-apps/org.gnome.Firmware.svg
new file mode 100644
index 00000000..1f6a2163
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Firmware.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><linearGradient id="j" gradientUnits="userSpaceOnUse" x1="37" y1="249" x2="37" y2="254" gradientTransform="translate(20 -197.5)"><stop offset="0" stop-color="#d5d1cc"/><stop offset=".183" stop-color="#f6f5f4"/><stop offset=".395" stop-color="#fff"/><stop offset=".784" stop-color="#d7d3ce"/><stop offset="1" stop-color="#c8c2bb"/></linearGradient><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="32" y1="63.397" x2="480.707" y2="63.397" gradientTransform="matrix(.2496 0 0 .2496 .013 57.398)"><stop offset="0" stop-color="#1b744b"/><stop offset=".033" stop-color="#2dbf7c" stop-opacity=".996"/><stop offset=".085" stop-color="#1c764c" stop-opacity=".98"/><stop offset=".925" stop-color="#155a3a" stop-opacity=".98"/><stop offset=".969" stop-color="#2fc781" stop-opacity=".969"/><stop offset="1" stop-color="#1b724a" stop-opacity=".969"/></linearGradient><linearGradient id="q" gradientUnits="userSpaceOnUse" x1="37" y1="249" x2="37" y2="254" gradientTransform="matrix(1 0 0 -1 40 311)"><stop offset="0" stop-color="#d5d1cc"/><stop offset=".183" stop-color="#f6f5f4"/><stop offset=".395" stop-color="#fff"/><stop offset=".784" stop-color="#d7d3ce"/><stop offset="1" stop-color="#c8c2bb"/></linearGradient><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="94.021" y1="194.219" x2="94.021" y2="234.219" gradientTransform="matrix(.25 0 0 .2496 .495 57.398)"><stop offset="0" stop-color="#f9f06b"/><stop offset=".512" stop-color="#fcf7ac"/><stop offset="1" stop-color="#f9f06b"/></linearGradient><linearGradient id="p" gradientUnits="userSpaceOnUse" x1="37" y1="249" x2="37" y2="254" gradientTransform="translate(40 -179)"><stop offset="0" stop-color="#d5d1cc"/><stop offset=".183" stop-color="#f6f5f4"/><stop offset=".395" stop-color="#fff"/><stop offset=".784" stop-color="#d7d3ce"/><stop offset="1" stop-color="#c8c2bb"/></linearGradient><linearGradient id="o" gradientUnits="userSpaceOnUse" x1="17" y1="253" x2="18.608" y2="259" gradientTransform="matrix(1 0 0 .33333 8 -30.667)"><stop offset="0" stop-color="#f9f06b"/><stop offset=".512" stop-color="#fcf7ac"/><stop offset="1" stop-color="#f9f06b"/></linearGradient><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="202.021" y1="242.794" x2="202.021" y2="234.781" gradientTransform="matrix(.25 0 0 .2496 .495 57.398)"><stop offset="0" stop-color="#c09608"/><stop offset="1" stop-color="#f6ca30"/></linearGradient><linearGradient id="n" gradientUnits="userSpaceOnUse" x1="17" y1="253" x2="18.608" y2="259" gradientTransform="translate(8 -196)"><stop offset="0" stop-color="#f9f06b"/><stop offset=".512" stop-color="#fcf7ac"/><stop offset="1" stop-color="#f9f06b"/></linearGradient><linearGradient id="m" gradientUnits="userSpaceOnUse" x1="17" y1="253" x2="18.608" y2="259" gradientTransform="matrix(1 0 0 .33333 8 -18.667)"><stop offset="0" stop-color="#f9f06b"/><stop offset=".512" stop-color="#fcf7ac"/><stop offset="1" stop-color="#f9f06b"/></linearGradient><linearGradient id="l" gradientUnits="userSpaceOnUse" x1="17" y1="253" x2="18.608" y2="259" gradientTransform="matrix(1 0 0 .33333 0 -6.667)"><stop offset="0" stop-color="#f9f06b"/><stop offset=".512" stop-color="#fcf7ac"/><stop offset="1" stop-color="#f9f06b"/></linearGradient><linearGradient id="k" gradientUnits="userSpaceOnUse" x1="17" y1="253" x2="18.608" y2="259" gradientTransform="translate(0 -172)"><stop offset="0" stop-color="#f9f06b"/><stop offset=".512" stop-color="#fcf7ac"/><stop offset="1" stop-color="#f9f06b"/></linearGradient><linearGradient id="r" gradientUnits="userSpaceOnUse" x1="37" y1="249" x2="37" y2="254" gradientTransform="translate(0 -170)"><stop offset="0" stop-color="#d5d1cc"/><stop offset=".183" stop-color="#f6f5f4"/><stop offset=".395" stop-color="#fff"/><stop offset=".784" stop-color="#d7d3ce"/><stop offset="1" stop-color="#c8c2bb"/></linearGradient><clipPath id="b"><path d="M18 102h86v16H18zm0 0"/></clipPath><clipPath id="i"><path d="M16.496 28.445h96.176c4.418 0 8 3.575 8 7.989v73.578c0 4.414-3.582 7.988-8 7.988H16.496c-4.418 0-8-3.574-8-7.988V36.434c0-4.414 3.582-7.989 8-7.989zm0 0"/></clipPath><clipPath id="h"><path d="M98 115h6v3h-6zm0 0"/></clipPath><clipPath id="f"><path d="M16.496 28.445h96.176c4.418 0 8 3.575 8 7.989v73.578c0 4.414-3.582 7.988-8 7.988H16.496c-4.418 0-8-3.574-8-7.988V36.434c0-4.414 3.582-7.989 8-7.989zm0 0"/></clipPath><clipPath id="e"><path d="M18 116h76v2H18zm0 0"/></clipPath><clipPath id="c"><path d="M16.496 28.445h96.176c4.418 0 8 3.575 8 7.989v73.578c0 4.414-3.582 7.988-8 7.988H16.496c-4.418 0-8-3.574-8-7.988V36.434c0-4.414 3.582-7.989 8-7.989zm0 0"/></clipPath></defs><path d="M16 35.988h96a8 8 0 018 8V110a8 8 0 01-8 8H16a8 8 0 01-8-8V43.988a8 8 0 018-8zm0 0" fill="url(#a)"/><path d="M15.988 28C11.563 28 8 31.582 8 36.027v71.946c0 4.445 3.563 8.027 7.988 8.027h96.024c4.425 0 7.988-3.582 7.988-8.027V36.027c0-4.445-3.563-8.027-7.988-8.027H108a8 8 0 01-16 0zm0 0" fill="#2ec27e"/><path d="M82.021 214.217v-47.544l24-24.039h20l20-20.032V74.025M122.021 206.736v-32.05l40-40.064V90.004" transform="matrix(.25 0 0 .2496 .495 57.398)" fill="none" stroke-width="8.006" stroke="#f9f06b"/><g clip-path="url(#b)"><g clip-path="url(#c)"><path d="M101 102.879c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm-10 0c1.66 0 3 1.336 3 2.996v13.977c0 1.66-1.34 2.996-3 2.996s-3-1.336-3-2.996v-13.977c0-1.66 1.34-2.996 3-2.996zm0 0" fill="url(#d)"/></g></g><g clip-path="url(#e)"><g clip-path="url(#f)"><path d="M88 116h6v3.992h-6zm-10 0h6v3.992h-6zm-10 0h6v3.992h-6zm-10 0h6v3.992h-6zm-10 0h6v3.992h-6zm-10 0h6v3.992h-6zm-10 0h6v3.992h-6zm-10 0h6v3.992h-6zm0 0" fill="url(#g)"/></g></g><g clip-path="url(#h)"><g clip-path="url(#i)"><path d="M98 115.86h6v3.992h-6zm0 0" fill="#f5c211"/></g></g><path d="M8 106.973v1c0 4.445 3.563 8.027 7.988 8.027h96.024c4.425 0 7.988-3.582 7.988-8.027v-1c0 4.445-3.563 8.027-7.988 8.027H15.988C11.563 115 8 111.418 8 106.973zm0 0" fill="#fff" fill-opacity=".126"/><path d="M61 106v-5l-8-8V80M51 106v-7l-2-2V80M41 106v-9l4-4V80" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M35 57h24a3 3 0 013 3v17a3 3 0 01-3 3H35a3 3 0 01-3-3V60a3 3 0 013-3zm0 0" fill="#3d3846"/><path d="M43 41h11l3 3v12" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M53 56V45l-4-4M49 56V46l-5-5M45 56v-7l-2-2H32M41 56v-8M37 56v-8" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M37 50.996c-.555 0-1 .445-1 1V56h2v-4.004c0-.555-.445-1-1-1zm4 0c-.555 0-1 .445-1 1V56h2v-4.004c0-.555-.445-1-1-1zm4 0c-.555 0-1 .445-1 1V56h2v-4.004c0-.555-.445-1-1-1zm4 0c-.555 0-1 .445-1 1V56h2v-4.004c0-.555-.445-1-1-1zm4 0c-.555 0-1 .445-1 1V56h2v-4.004c0-.555-.445-1-1-1zm4 0c-.555 0-1 .445-1 1V56h2v-4.004c0-.555-.445-1-1-1zm0 0" fill="url(#j)"/><path d="M35 54h24a3 3 0 013 3v18a3 3 0 01-3 3H35a3 3 0 01-3-3V57a3 3 0 013-3zm0 0" fill="#5e5c64"/><path d="M57 80v7l14 14v4" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M36 60h15v2H36zm0 0M36 64h8v4h-8zm0 0M45 64h11v4H45zm0 0" fill="#77767b"/><path d="M77 81a1.999 1.999 0 11-4 0 1.999 1.999 0 114 0zm0 0M85 81a1.999 1.999 0 11-4 0 1.999 1.999 0 114 0zm0 0M97 81a1.999 1.999 0 11-4 0 1.999 1.999 0 114 0zm0 0M97 73a1.999 1.999 0 11-4 0 1.999 1.999 0 114 0zm0 0" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M75 83v2l6 6v15M83 83v2l2 2h8l2-2v-2M43 41a1.999 1.999 0 11-4 0 1.999 1.999 0 114 0zm0 0M32 47a1.999 1.999 0 11-4 0 1.999 1.999 0 114 0zm0 0" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M12 82h8v6h-8zm0 0" fill="url(#k)"/><path d="M12 78h8v2h-8zm0 0" fill="url(#l)"/><path d="M20 66h8v2h-8zm0 0" fill="url(#m)"/><path d="M20 58h8v6h-8zm0 0" fill="url(#n)"/><path d="M20 54h8v2h-8zm0 0" fill="url(#o)"/><path d="M95 56.996a1.999 1.999 0 110 4c-1.105 0-2-.894-2-2 0-1.105.895-2 2-2zm0 0M95 44.996a1.999 1.999 0 110 4c-1.105 0-2-.894-2-2 0-1.105.895-2 2-2zm0 0M87 44.996a1.999 1.999 0 110 4c-1.105 0-2-.894-2-2 0-1.105.895-2 2-2zm0 0" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M97 58.996h2l2-2v-8l-2-2h-2" fill="none" stroke-width="2" stroke="#f9f06b"/><path d="M76 61h10c1.105 0 2 .895 2 2v7c0 1.105-.895 2-2 2H76c-1.105 0-2-.895-2-2v-7c0-1.105.895-2 2-2zm0 0" fill="#3d3846"/><path d="M76 71v3c0 .555.445 1 1 1 .555 0 1-.445 1-1v-3zm4 0v3c0 .555.445 1 1 1 .555 0 1-.445 1-1v-3zm4 0v3c0 .555.445 1 1 1 .555 0 1-.445 1-1v-3zm0 0" fill="url(#p)"/><path d="M76 61v-3c0-.555.445-1 1-1 .555 0 1 .445 1 1v3zm4 0v-3c0-.555.445-1 1-1 .555 0 1 .445 1 1v3zm4 0v-3c0-.555.445-1 1-1 .555 0 1 .445 1 1v3zm0 0" fill="url(#q)"/><path d="M76 58h10c1.105 0 2 .895 2 2v8c0 1.105-.895 2-2 2H76c-1.105 0-2-.895-2-2v-8c0-1.105.895-2 2-2zm0 0" fill="#5e5c64"/><path d="M76 60h8v2h-8zm0 0M76 64h4v2h-4zm0 0" fill="#77767b"/><path d="M104 90h6v6h-6zm0 0" fill="#986a44"/><path d="M104 90h6v4h-6zm0 0" fill="#b5835a"/><path d="M104 90h2v4h-2zm0 0" fill="#f6f5f4"/><path d="M104 96h2v-2h-2zm0 0" fill="#c0bfbc"/><path d="M110 90h2v4h-2zm0 0" fill="#f6f5f4"/><path d="M110 96h2v-2h-2zm0 0" fill="#c0bfbc"/><path d="M104 84h6v6h-6zm0 0" fill="#986a44"/><path d="M104 84h6v4h-6zm0 0" fill="#b5835a"/><path d="M104 84h2v4h-2zm0 0" fill="#f6f5f4"/><path d="M104 90h2v-2h-2zm0 0" fill="#c0bfbc"/><path d="M110 84h2v4h-2zm0 0" fill="#f6f5f4"/><path d="M110 90h2v-2h-2zm0 0" fill="#c0bfbc"/><path d="M104 78h6v6h-6zm0 0" fill="#986a44"/><path d="M104 78h6v4h-6zm0 0" fill="#b5835a"/><path d="M104 78h2v4h-2zm0 0" fill="#f6f5f4"/><path d="M104 84h2v-2h-2zm0 0" fill="#c0bfbc"/><path d="M110 78h2v4h-2zm0 0" fill="#f6f5f4"/><path d="M110 84h2v-2h-2zm0 0" fill="#c0bfbc"/><path d="M68 40v-8h4v8zm0 0" fill="#986a44"/><path d="M68 40v-8h2v8zm0 0" fill="#b5835a"/><path d="M68 40v-2h4v2zm0 0M68 34v-2h4v2zm0 0" fill="#f6f5f4"/><path d="M80 40v-8h4v8zm0 0" fill="#986a44"/><path d="M80 40v-8h2v8zm0 0" fill="#b5835a"/><path d="M80 40v-2h4v2zm0 0M80 34v-2h4v2zm0 0" fill="#f6f5f4"/><path d="M74 40v-8h4v8zm0 0" fill="#986a44"/><path d="M74 40v-8h2v8zm0 0" fill="#b5835a"/><path d="M74 40v-2h4v2zm0 0M74 34v-2h4v2zm0 0" fill="#f6f5f4"/><path d="M36 79v4c0 .555.445 1 1 1 .555 0 1-.445 1-1v-4zm4 0v4c0 .555.445 1 1 1 .555 0 1-.445 1-1v-4zm4 0v4c0 .555.445 1 1 1 .555 0 1-.445 1-1v-4zm4 0v4c0 .555.445 1 1 1 .555 0 1-.445 1-1v-4zm4 0v4c0 .555.445 1 1 1 .555 0 1-.445 1-1v-4zm4 0v4c0 .555.445 1 1 1 .555 0 1-.445 1-1v-4zm0 0" fill="url(#r)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.LightsOff.svg b/benchmarks/hicolor-apps/org.gnome.LightsOff.svg
new file mode 100644
index 00000000..30a71ccd
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.LightsOff.svg
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="49.999996"
+ height="49.999996"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="gnome-lightsoff.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/Users/hortont/Desktop/drawingON.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.0">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3537">
+ <stop
+ id="stop3539"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop3541"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3486">
+ <stop
+ id="stop3488"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3492"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3444">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3446" />
+ <stop
+ id="stop3452"
+ offset="0.5"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3448" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <filter
+ inkscape:collect="always"
+ id="filter3478">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="4.3633868"
+ id="feGaussianBlur3480" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3522">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="7.7237026"
+ id="feGaussianBlur3524" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3555">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.1159682"
+ id="feGaussianBlur3557" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3444"
+ id="linearGradient2440"
+ gradientUnits="userSpaceOnUse"
+ x1="523.37036"
+ y1="199.07346"
+ x2="523.37036"
+ y2="491.56064" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3486"
+ id="linearGradient2442"
+ gradientUnits="userSpaceOnUse"
+ x1="523.37036"
+ y1="199.07346"
+ x2="523.37036"
+ y2="491.56064" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3537"
+ id="linearGradient2444"
+ gradientUnits="userSpaceOnUse"
+ x1="230.45604"
+ y1="258.33267"
+ x2="526.98688"
+ y2="258.33267" />
+ <linearGradient
+ y2="258.33267"
+ x2="526.98688"
+ y1="258.33267"
+ x1="230.45604"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2467"
+ xlink:href="#linearGradient3537"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="491.56064"
+ x2="523.37036"
+ y1="199.07346"
+ x1="523.37036"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2465"
+ xlink:href="#linearGradient3486"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="491.56064"
+ x2="523.37036"
+ y1="199.07346"
+ x1="523.37036"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2463"
+ xlink:href="#linearGradient3444"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="258.33267"
+ x2="526.98688"
+ y1="258.33267"
+ x1="230.45604"
+ id="linearGradient3535"
+ xlink:href="#linearGradient3537"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="491.56064"
+ x2="523.37036"
+ y1="199.07346"
+ x1="523.37036"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3484"
+ xlink:href="#linearGradient3486"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="491.56064"
+ x2="523.37036"
+ y1="199.07346"
+ x1="523.37036"
+ id="linearGradient3450"
+ xlink:href="#linearGradient3444"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2595"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient2587">
+ <stop
+ id="stop2589"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="0.5"
+ id="stop2591" />
+ <stop
+ id="stop2593"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2581">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2583" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop2585" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2575">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2577" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2579" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3444"
+ id="linearGradient2642"
+ gradientUnits="userSpaceOnUse"
+ x1="523.37036"
+ y1="199.07346"
+ x2="523.37036"
+ y2="491.56064" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3486"
+ id="linearGradient2644"
+ gradientUnits="userSpaceOnUse"
+ x1="523.37036"
+ y1="199.07346"
+ x2="523.37036"
+ y2="491.56064" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3537"
+ id="linearGradient2646"
+ gradientUnits="userSpaceOnUse"
+ x1="230.45604"
+ y1="258.33267"
+ x2="526.98688"
+ y2="258.33267" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3444"
+ id="linearGradient2661"
+ gradientUnits="userSpaceOnUse"
+ x1="523.37036"
+ y1="199.07346"
+ x2="523.37036"
+ y2="491.56064" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3486"
+ id="linearGradient2663"
+ gradientUnits="userSpaceOnUse"
+ x1="523.37036"
+ y1="199.07346"
+ x2="523.37036"
+ y2="491.56064" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3537"
+ id="linearGradient2665"
+ gradientUnits="userSpaceOnUse"
+ x1="230.45604"
+ y1="258.33267"
+ x2="526.98688"
+ y2="258.33267" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.8500005"
+ inkscape:cx="24.999998"
+ inkscape:cy="24.999998"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="893"
+ inkscape:window-height="686"
+ inkscape:window-x="9"
+ inkscape:window-y="43" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-353.37656,-318.61163)">
+ <g
+ id="g2433"
+ transform="matrix(6.6781971e-2,0,0,6.6959686e-2,342.08656,330.59848)">
+ <rect
+ ry="20"
+ rx="20"
+ y="195.00127"
+ x="230.45604"
+ height="296.53085"
+ width="296.53085"
+ id="rect2650"
+ style="fill:#1ea3f9;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:0.94527366;fill:url(#linearGradient2440);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3478)"
+ id="rect3442"
+ width="289.29773"
+ height="292.48718"
+ x="234.0726"
+ y="199.07346"
+ rx="19.512152"
+ ry="19.72727" />
+ <rect
+ transform="matrix(1,0,0,-0.4905991,0,589.22589)"
+ ry="19.72727"
+ rx="19.512152"
+ y="199.07346"
+ x="234.0726"
+ height="292.48718"
+ width="289.29773"
+ id="rect3482"
+ style="opacity:0.7761194;fill:url(#linearGradient2442);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3522)" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="rect3526"
+ d="M 250.45604,195.00127 L 506.98689,195.00127 C 518.06689,195.00127 526.98689,203.92127 526.98689,215.00127 L 526.80938,321.40374 C 327.27502,327.77728 230.45604,215.00127 230.45604,215.00127 C 230.45604,203.92127 239.37604,195.00127 250.45604,195.00127 z"
+ style="opacity:0.89054727;fill:url(#linearGradient2444);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter3555)" />
+ <rect
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3559"
+ width="296.53085"
+ height="296.53085"
+ x="230.45604"
+ y="195.00127"
+ rx="20"
+ ry="20" />
+ </g>
+ <g
+ transform="matrix(0.3993812,0,0,0.4000091,287.9359,166.39437)"
+ id="g2615"
+ inkscape:label="Layer 1">
+ <g
+ transform="matrix(0.1669277,0,0,0.1669277,190.73693,410.7314)"
+ id="g2456">
+ <rect
+ style="fill:#203746;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2618"
+ width="296.53085"
+ height="296.53085"
+ x="230.45604"
+ y="195.00127"
+ rx="20"
+ ry="20" />
+ <rect
+ ry="19.72727"
+ rx="19.512152"
+ y="199.07346"
+ x="234.0726"
+ height="292.48718"
+ width="289.29773"
+ id="rect2620"
+ style="opacity:0.43781098;fill:url(#linearGradient2463);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3478)" />
+ <rect
+ style="opacity:0.43781098;fill:url(#linearGradient2465);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3522)"
+ id="rect2622"
+ width="289.29773"
+ height="292.48718"
+ x="234.0726"
+ y="199.07346"
+ rx="19.512152"
+ ry="19.72727"
+ transform="matrix(1,0,0,-0.4905991,0,589.22589)" />
+ <path
+ style="opacity:0.12601624;fill:url(#linearGradient2467);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter3555)"
+ d="M 250.45604,195.00127 L 506.98689,195.00127 C 518.06689,195.00127 526.98689,203.92127 526.98689,215.00127 L 526.80938,321.40374 C 327.27502,327.77728 230.45604,215.00127 230.45604,215.00127 C 230.45604,203.92127 239.37604,195.00127 250.45604,195.00127 z"
+ id="path2624"
+ sodipodi:nodetypes="cccccc" />
+ <rect
+ ry="20"
+ rx="20"
+ y="195.00127"
+ x="230.45604"
+ height="296.53085"
+ width="296.53085"
+ id="rect2626"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.3993812,0,0,0.4000091,265.9359,145.39437)"
+ id="g2628"
+ inkscape:label="Layer 1">
+ <g
+ transform="matrix(0.1669277,0,0,0.1669277,190.73693,410.7314)"
+ id="g2630">
+ <rect
+ style="fill:#203746;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2632"
+ width="296.53085"
+ height="296.53085"
+ x="230.45604"
+ y="195.00127"
+ rx="20"
+ ry="20" />
+ <rect
+ ry="19.72727"
+ rx="19.512152"
+ y="199.07346"
+ x="234.0726"
+ height="292.48718"
+ width="289.29773"
+ id="rect2634"
+ style="opacity:0.43781098;fill:url(#linearGradient2642);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3478)" />
+ <rect
+ style="opacity:0.43781098;fill:url(#linearGradient2644);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3522)"
+ id="rect2636"
+ width="289.29773"
+ height="292.48718"
+ x="234.0726"
+ y="199.07346"
+ rx="19.512152"
+ ry="19.72727"
+ transform="matrix(1,0,0,-0.4905991,0,589.22589)" />
+ <path
+ style="opacity:0.12601624;fill:url(#linearGradient2646);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter3555)"
+ d="M 250.45604,195.00127 L 506.98689,195.00127 C 518.06689,195.00127 526.98689,203.92127 526.98689,215.00127 L 526.80938,321.40374 C 327.27502,327.77728 230.45604,215.00127 230.45604,215.00127 C 230.45604,203.92127 239.37604,195.00127 250.45604,195.00127 z"
+ id="path2638"
+ sodipodi:nodetypes="cccccc" />
+ <rect
+ ry="20"
+ rx="20"
+ y="195.00127"
+ x="230.45604"
+ height="296.53085"
+ width="296.53085"
+ id="rect2640"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ id="g2648"
+ transform="matrix(6.6781971e-2,0,0,6.6959686e-2,364.08656,309.59848)">
+ <rect
+ ry="20"
+ rx="20"
+ y="195.00127"
+ x="230.45604"
+ height="296.53085"
+ width="296.53085"
+ id="rect2651"
+ style="fill:#1ea3f9;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:0.94527366;fill:url(#linearGradient2661);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3478)"
+ id="rect2653"
+ width="289.29773"
+ height="292.48718"
+ x="234.0726"
+ y="199.07346"
+ rx="19.512152"
+ ry="19.72727" />
+ <rect
+ transform="matrix(1,0,0,-0.4905991,0,589.22589)"
+ ry="19.72727"
+ rx="19.512152"
+ y="199.07346"
+ x="234.0726"
+ height="292.48718"
+ width="289.29773"
+ id="rect2655"
+ style="opacity:0.7761194;fill:url(#linearGradient2663);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.94291234;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3522)" />
+ <path
+ sodipodi:nodetypes="cccccc"
+ id="path2657"
+ d="M 250.45604,195.00127 L 506.98689,195.00127 C 518.06689,195.00127 526.98689,203.92127 526.98689,215.00127 L 526.80938,321.40374 C 327.27502,327.77728 230.45604,215.00127 230.45604,215.00127 C 230.45604,203.92127 239.37604,195.00127 250.45604,195.00127 z"
+ style="opacity:0.89054727;fill:url(#linearGradient2665);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;filter:url(#filter3555)" />
+ <rect
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2659"
+ width="296.53085"
+ height="296.53085"
+ x="230.45604"
+ y="195.00127"
+ rx="20"
+ ry="20" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Logs.svg b/benchmarks/hicolor-apps/org.gnome.Logs.svg
new file mode 100644
index 00000000..996d80ea
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Logs.svg
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ y2="72"
+ x2="340"
+ y1="76"
+ x1="344"
+ gradientTransform="matrix(0.25,0,0,0.25,180,83)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1574"
+ xlink:href="#linearGradient1351-3" />
+ <linearGradient
+ id="linearGradient1351-3">
+ <stop
+ id="stop1347"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ id="stop1349-6"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <clipPath
+ id="clipPath1609"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 252,116 28,-28 v -8 h -36 v 36 z"
+ id="path1611" />
+ </clipPath>
+ <linearGradient
+ y2="-180.00006"
+ x2="256"
+ y1="268"
+ x1="256"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1572"
+ xlink:href="#linearGradient1187" />
+ <linearGradient
+ id="linearGradient1187">
+ <stop
+ id="stop1183"
+ offset="0"
+ style="stop-color:#eeeeec;stop-opacity:1;" />
+ <stop
+ id="stop1185"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:none"
+ id="layer2">
+ <g
+ id="g12027"
+ transform="matrix(7.9911709,0,0,8.0036407,-167.7909,-4846.0776)"
+ style="display:inline;fill:#000000;enable-background:new" />
+ <rect
+ y="172"
+ x="9.2651362e-08"
+ height="128"
+ width="128"
+ id="rect13805"
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" />
+ <g
+ transform="translate(-24,24)"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ id="g883" />
+ <g
+ transform="translate(-24,24)"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ id="g900" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate"
+ id="rect859"
+ width="16"
+ height="16"
+ x="160"
+ y="172" />
+ <text
+ id="text863"
+ y="164"
+ x="0"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ xml:space="preserve"><tspan
+ y="164"
+ x="0"
+ id="tspan861"
+ style="font-size:4px;stroke-width:0.33264872">Hicolor</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ x="160"
+ y="164"
+ id="text867"><tspan
+ style="font-size:4px;stroke-width:0.33264872"
+ id="tspan865"
+ x="160"
+ y="164">Symbolic</tspan></text>
+ </g>
+ <g
+ style="display:none"
+ id="layer3">
+ <circle
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle2892"
+ r="59.504131"
+ cy="236"
+ cx="64.000031" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2894"
+ width="87.009987"
+ height="111.01005"
+ x="20.495007"
+ y="180.49496"
+ rx="8.701004"
+ ry="7.9292889" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2896"
+ width="103.00952"
+ height="103.00952"
+ x="12.495266"
+ y="184.49524"
+ rx="7.9238095"
+ ry="7.9238095" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2898"
+ width="111.01004"
+ height="87.010048"
+ x="8.4950066"
+ y="200.49496"
+ rx="7.9292889"
+ ry="8.701005" />
+ <path
+ style="display:inline;fill:none;stroke:#62a0ea;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="M 2.6203015e-5,288.99999 H 128.00003"
+ id="path2900" />
+ </g>
+ <g
+ style="display:inline"
+ id="layer9" />
+ <g
+ transform="matrix(0.3,0,0,-0.21279762,-12.799997,247.3631)"
+ style="display:inline;fill:url(#linearGradient1572);fill-opacity:1;stroke-width:1.0298574;enable-background:new"
+ clip-path="none"
+ id="g1479">
+ <rect
+ transform="scale(-1,1)"
+ clip-path="none"
+ ry="44.431889"
+ rx="26.666666"
+ y="-190.965"
+ x="-429.33334"
+ height="451.13287"
+ width="346.66669"
+ id="rect1473"
+ style="opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:53.73949814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:53.73949814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1475"
+ width="346.66669"
+ height="451.13287"
+ x="-429.33334"
+ y="-181.56641"
+ rx="26.666666"
+ ry="44.431889"
+ clip-path="none"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:53.73949814;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1477"
+ width="346.66669"
+ height="451.13284"
+ x="-429.33334"
+ y="-153.37062"
+ rx="26.666666"
+ ry="37.594406"
+ clip-path="none"
+ transform="scale(-1,1)" />
+ </g>
+ <g
+ id="g1497"
+ style="display:inline;enable-background:new"
+ transform="translate(3.05e-6,3.3e-6)">
+ <circle
+ r="1.9999998"
+ cy="252"
+ cx="108"
+ id="circle1481"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1483"
+ cx="108"
+ cy="242"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="232"
+ cx="108"
+ id="circle1485"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1487"
+ cx="108"
+ cy="222"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="212"
+ cx="108"
+ id="circle1489"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1493"
+ cx="108"
+ cy="202"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="192"
+ cx="108"
+ id="circle1495"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g1518"
+ style="display:inline;enable-background:new"
+ transform="translate(3.05e-6,3.3e-6)">
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1499"
+ cx="20"
+ cy="272"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="262"
+ cx="20"
+ id="circle1501"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1503"
+ cx="20"
+ cy="252"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="242"
+ cx="20"
+ id="circle1505"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1507"
+ cx="20"
+ cy="232"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="222"
+ cx="20"
+ id="circle1509"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1511"
+ cx="20"
+ cy="212"
+ r="1.9999998" />
+ <circle
+ r="1.9999998"
+ cy="202"
+ cx="20"
+ id="circle1513"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:7.99999905;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1515"
+ cx="20"
+ cy="192"
+ r="1.9999998" />
+ </g>
+ <g
+ transform="translate(3.05e-6,-0.9999967)"
+ id="g1538"
+ style="display:inline;opacity:0.3;stroke:#d5d3cf;enable-background:new">
+ <path
+ id="path1520"
+ d="m 28,192 h 72"
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 28,202 h 72"
+ id="path1522" />
+ <path
+ id="path1524"
+ d="m 28,212 h 72"
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path1526"
+ d="m 28,222 h 72"
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 28,232 h 72"
+ id="path1528" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 28,242 h 72"
+ id="path1530" />
+ <path
+ id="path1532"
+ d="m 28,252 h 72"
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path1534"
+ d="m 28,262 h 72"
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#d5d3cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 28,272 H 94"
+ id="path1536" />
+ </g>
+ <g
+ transform="translate(-19.999997,3.3e-6)"
+ id="g1568"
+ style="display:inline;enable-background:new">
+ <g
+ id="g1546"
+ transform="translate(14.00001,-11.999987)"
+ style="opacity:0.1;stroke:#00000f;stroke-opacity:1">
+ <path
+ transform="translate(0,-3e-6)"
+ style="display:inline;fill:none;stroke:#00000f;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
+ d="m 35.99999,249.99999 -8,8"
+ id="path1540" />
+ <path
+ transform="translate(0,-3e-6)"
+ id="path1542"
+ d="m 27.99999,257.99999 -14,14"
+ style="display:inline;fill:none;stroke:#00000f;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <circle
+ r="30.117647"
+ cy="227.99998"
+ cx="57.999996"
+ id="circle1544"
+ style="opacity:1;fill:none;fill-opacity:0.3858268;stroke:#00000f;stroke-width:3.76470613;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ transform="translate(14.00001,-13.999987)"
+ id="g1558"
+ style="display:inline;enable-background:new">
+ <path
+ style="display:inline;opacity:0.15400002;fill:none;stroke:#ffffff;stroke-width:1.63784266;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="m 11.890335,268.55054 15.45714,-15.45715"
+ id="path1548" />
+ <path
+ id="path1550"
+ d="m 35.99999,249.99999 -8,8"
+ style="fill:none;stroke:#949390;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:none;stroke:#d5d3cf;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 35.99999,247.99999 -8,8"
+ id="path1552" />
+ <path
+ style="fill:none;stroke:#241f31;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 27.99999,257.99999 -14,14"
+ id="path1554" />
+ <path
+ id="path1556"
+ d="m 27.99999,255.99999 -14,14"
+ style="fill:none;stroke:#424048;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <circle
+ transform="scale(-1,1)"
+ r="29.937637"
+ style="display:inline;opacity:0.5;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.44194174;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="circle1560"
+ cx="-71.999969"
+ cy="212.06238" />
+ <circle
+ r="30.117647"
+ cy="214"
+ cx="72.000008"
+ id="circle1562"
+ style="opacity:1;fill:none;fill-opacity:0.3858268;stroke:#1a5fb4;stroke-width:3.76470613;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:none;fill-opacity:0.3858268;stroke:#62a0ea;stroke-width:3.76470613;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1564"
+ cx="72.000008"
+ cy="212"
+ r="30.117647" />
+ <path
+ style="display:inline;opacity:0.15400002;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="M 25,255 41,239"
+ id="path1566" />
+ </g>
+ <rect
+ clip-path="url(#clipPath1609)"
+ transform="matrix(0,1,1,0,3.05e-6,3.3e-6)"
+ ry="8"
+ rx="8"
+ y="88"
+ x="252"
+ height="36"
+ width="36"
+ id="rect1570"
+ style="display:inline;opacity:1;fill:url(#linearGradient1574);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Lollypop.svg b/benchmarks/hicolor-apps/org.gnome.Lollypop.svg
new file mode 100644
index 00000000..2d3dd08c
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Lollypop.svg
@@ -0,0 +1,486 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="96"
+ inkscape:export-xdpi="96"
+ inkscape:export-filename="Template.png"
+ width="128"
+ height="128"
+ id="svg11300"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.4 5da689c313, 2019-01-14"
+ sodipodi:docname="org.gnome.Lollypop.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 128 128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3" />
+ <sodipodi:namedview
+ stroke="#ef2929"
+ fill="#f57900"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.25490196"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4142136"
+ inkscape:cx="-39.506783"
+ inkscape:cy="81.069117"
+ inkscape:current-layer="layer9"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ width="400px"
+ height="300px"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="false"
+ objecttolerance="7"
+ gridtolerance="12"
+ guidetolerance="13"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="false"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:locked="false"
+ inkscape:measure-start="0,0"
+ inkscape:measure-end="0,0"
+ inkscape:object-nodes="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-global="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ showborder="false"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5883"
+ spacingx="2"
+ spacingy="2"
+ enabled="true"
+ visible="true"
+ empspacing="4"
+ originx="0"
+ originy="0" />
+ <sodipodi:guide
+ position="64,8"
+ orientation="0,1"
+ id="guide1073"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="12,64"
+ orientation="1,0"
+ id="guide1075"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,104"
+ orientation="0,1"
+ id="guide1099"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,128"
+ orientation="0,1"
+ id="guide993"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="104,64"
+ orientation="1,0"
+ id="guide995"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="9.2651362e-08,64"
+ orientation="1,0"
+ id="guide867"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="120,64"
+ orientation="1,0"
+ id="guide869"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,116"
+ orientation="0,1"
+ id="guide871"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <inkscape:grid
+ type="xygrid"
+ id="grid873"
+ spacingx="1"
+ spacingy="1"
+ empspacing="8"
+ color="#000000"
+ opacity="0.49019608"
+ empcolor="#000000"
+ empopacity="0.08627451"
+ dotted="true" />
+ <sodipodi:guide
+ position="24,64"
+ orientation="1,0"
+ id="guide877"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="116,64"
+ orientation="1,0"
+ id="guide879"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,120"
+ orientation="0,1"
+ id="guide881"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,12"
+ orientation="0,1"
+ id="guide883"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="8,64"
+ orientation="1,0"
+ id="guide885"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="128,64"
+ orientation="1,0"
+ id="guide887"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,0"
+ orientation="0,1"
+ id="guide897"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,24"
+ orientation="0,1"
+ id="guide899"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="256,256"
+ orientation="-0.70710678,0.70710678"
+ id="guide950"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,64"
+ orientation="0.70710678,0.70710678"
+ id="guide952"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Icon"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ transform="translate(0,-172)">
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="baseplate"
+ style="display:none"
+ sodipodi:insensitive="true">
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.33333349px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ x="7.9499588"
+ y="148.65199"
+ id="context"
+ inkscape:label="context"><tspan
+ sodipodi:role="line"
+ id="tspan2716"
+ x="7.9499588"
+ y="148.65199"
+ style="font-size:5.33333349px;stroke-width:0.33264872">apps</tspan></text>
+ <text
+ inkscape:label="icon-name"
+ id="text3021"
+ y="157.23398"
+ x="7.7533054"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.33333349px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ xml:space="preserve"><tspan
+ y="157.23398"
+ x="7.7533054"
+ id="tspan3023"
+ sodipodi:role="line"
+ style="font-size:5.33333349px;stroke-width:0.33264872">org.gnome.Lollypop</tspan></text>
+ <g
+ style="display:inline;fill:#000000;enable-background:new"
+ transform="matrix(7.9911709,0,0,8.0036407,-167.7909,-4846.0776)"
+ id="g12027"
+ inkscape:export-xdpi="12"
+ inkscape:export-ydpi="12" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate"
+ id="rect13805"
+ width="128"
+ height="128"
+ x="9.2651362e-08"
+ y="172"
+ inkscape:label="512x512" />
+ <g
+ id="g883"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ transform="translate(-24,24)" />
+ <g
+ id="g900"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ transform="translate(-24,24)" />
+ <g
+ id="g1168"
+ transform="matrix(0.25,0,0,0.25,6.9488522e-8,225)">
+ <circle
+ cx="256"
+ cy="44"
+ r="240"
+ id="path1142"
+ style="opacity:0.1;fill:#2864b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ ry="32"
+ rx="32"
+ y="-180"
+ x="96"
+ height="448"
+ width="319.99979"
+ id="rect1110"
+ style="opacity:0.1;fill:#2864b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ ry="32"
+ rx="32"
+ y="-164"
+ x="48"
+ height="416"
+ width="416"
+ id="rect1110-8"
+ style="display:inline;opacity:0.1;fill:#2864b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="32"
+ rx="32"
+ y="-116"
+ x="32"
+ height="320"
+ width="448"
+ id="rect1110-8-9"
+ style="display:inline;opacity:0.1;fill:#2864b0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer9"
+ inkscape:label="hires"
+ style="display:inline">
+ <circle
+ r="60.000008"
+ cy="236"
+ cx="64"
+ id="circle911"
+ style="display:inline;opacity:1;fill:#e73434;fill-opacity:1;stroke:none;stroke-width:8.00000095;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.00000016, 0.50000007999999996;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <path
+ inkscape:connector-curvature="0"
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:8.06862259;stroke-opacity:1;enable-background:new"
+ d="m 52.526654,177.1072 c -1.542527,0.28344 -3.073694,0.62813 -4.589334,1.0304 -1.929414,0.53493 -3.831381,1.16837 -5.697686,1.89366 -1.865933,0.72476 -3.696208,1.54253 -5.480471,2.4506 -1.784035,0.90824 -3.517565,1.90357 -5.201993,2.98531 -1.685026,1.08196 -3.316046,2.25287 -4.884526,3.49769 -1.568338,1.24442 -3.075084,2.56535 -4.511364,3.95997 -0.184785,0.19562 -0.364198,0.38842 -0.545818,0.58481 1.288197,8.84144 4.031776,17.00229 11.718406,25.75935 a 34.932435,34.932435 0 0 1 9.379179,-10.93867 c -1.037676,-12.278 3.289991,-21.90532 9.813607,-31.22312 z m 27.057044,0.97468 c -7.005729,5.5382 -12.692259,11.98479 -16.430275,23.01354 A 34.932435,34.932435 0 0 1 64,201.06691 a 34.932435,34.932435 0 0 1 13.333588,2.65666 c 10.09982,-7.02176 20.586921,-8.09004 31.902582,-7.10674 -0.69517,-0.83687 -1.41524,-1.65839 -2.15543,-2.45622 -1.39493,-1.43636 -2.86305,-2.79839 -4.39441,-4.08809 -1.53117,-1.28982 -3.126409,-2.5065 -4.778699,-3.63691 -1.652403,-1.13052 -3.355789,-2.17585 -5.112876,-3.13571 -1.757002,-0.95982 -3.563978,-1.83248 -5.408069,-2.61212 -1.844261,-0.7798 -3.723689,-1.46371 -5.636418,-2.05516 -0.716528,-0.19734 -1.442712,-0.3813 -2.16657,-0.55139 z M 7.2682121,216.50647 c -0.2218565,0.57931 -0.4303304,1.1633 -0.6349347,1.74886 -0.5900017,1.91252 -1.0894471,3.85263 -1.4870781,5.81463 -0.3976878,1.96203 -0.6968607,3.94525 -0.8967027,5.93714 -0.1996139,1.9923 -0.3007583,3.9906 -0.3007583,5.9929 -2.567e-4,1.41726 0.041719,2.83595 0.1503663,4.24958 0.1414407,1.99737 0.3855001,3.98641 0.7240453,5.95945 0.3139071,1.76849 0.7099754,3.51888 1.1807505,5.25212 8.3110956,3.31077 16.7575706,5.01236 28.2043766,2.72353 a 34.932435,34.932435 0 0 1 -4.79541,-13.57865 C 18.260981,235.36942 12.078035,226.81189 7.2681979,216.50645 Z m 96.8272279,0.32304 c -3.32268,-0.0665 -6.70218,0.26349 -10.3093,0.97469 a 34.932435,34.932435 0 0 1 4.800982,13.59533 c 11.152058,5.23661 17.334728,13.78852 22.144668,24.09402 0.22186,-0.57851 0.43033,-1.16337 0.63493,-1.74885 0.59,-1.91264 1.08945,-3.85246 1.48708,-5.81464 0.39771,-1.96182 0.69686,-3.93969 0.8967,-5.9316 0.19962,-1.99235 0.30076,-3.99636 0.30076,-5.99846 2.3e-4,-1.41737 -0.0426,-2.83035 -0.15039,-4.24402 -0.14144,-1.99728 -0.38551,-3.98635 -0.72405,-5.95945 -0.31553,-1.77656 -0.70626,-3.53907 -1.18075,-5.27995 -6.45997,-2.30237 -12.10517,-3.57127 -17.90065,-3.68707 z m -9.429305,35.9015 a 34.932435,34.932435 0 0 1 -9.379182,10.93867 c 1.03765,12.278 -3.290102,21.90537 -9.813607,31.22312 1.542502,-0.28344 3.073754,-0.62726 4.589337,-1.03038 1.929297,-0.53493 3.831409,-1.16842 5.697686,-1.89368 1.866048,-0.7247 3.696265,-1.54258 5.480471,-2.4506 1.784035,-0.90809 3.517537,-1.90349 5.201993,-2.98531 1.684913,-1.08168 3.316015,-2.24722 4.884527,-3.4921 1.56825,-1.24434 3.07508,-2.57094 4.51135,-3.96556 0.1848,-0.19648 0.36981,-0.38842 0.5514,-0.58481 -1.2882,-8.84161 -4.03746,-17.00234 -11.723975,-25.75935 z m -43.99972,15.54471 c -10.099685,7.02187 -20.581423,8.09582 -31.897011,7.11238 0.69517,0.83764 1.409748,1.65275 2.149859,2.4506 1.395044,1.43611 2.863051,2.80401 4.394404,4.09366 1.531294,1.28984 3.126469,2.50082 4.778702,3.63135 1.652375,1.13044 3.361447,2.1759 5.118449,3.13568 1.757058,0.95994 3.558377,1.83251 5.402496,2.61214 1.844176,0.77981 3.72929,1.4691 5.64199,2.06073 0.72229,0.19876 1.447691,0.3805 2.177708,0.55139 7.00285,-5.53957 12.685567,-11.99241 16.419137,-23.02467 A 34.932435,34.932435 0 0 1 64,270.93234 34.932435,34.932435 0 0 1 50.666415,268.27566 Z"
+ id="path1047-3" />
+ <circle
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:7.19999933;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.89999996, 0.44999999;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="circle913"
+ cx="64"
+ cy="236"
+ r="36" />
+ <g
+ transform="translate(6,-150)"
+ id="g1108"
+ style="fill:#e73434;fill-opacity:1">
+ <circle
+ style="opacity:1;vector-effect:none;fill:#e73434;fill-opacity:1;stroke:none;stroke-width:12;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1098"
+ cx="48"
+ cy="248"
+ r="8" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#e73434;fill-opacity:1;stroke:none;stroke-width:12;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1100"
+ width="4"
+ height="28"
+ x="52"
+ y="220" />
+ <circle
+ r="8"
+ cy="244"
+ cx="68"
+ id="circle1102"
+ style="opacity:1;vector-effect:none;fill:#e73434;fill-opacity:1;stroke:none;stroke-width:12;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="216"
+ x="72"
+ height="28"
+ width="4"
+ id="rect1104"
+ style="opacity:1;vector-effect:none;fill:#e73434;fill-opacity:1;stroke:none;stroke-width:12;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:#e73434;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 52,220 24,-6 v 8 l -24,6 z"
+ id="path1106"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ <path
+ style="display:inline;opacity:0.2;fill:#000000;fill-opacity:1;stroke:none;stroke-width:8.00000095;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.00000016, 0.50000008;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ d="M 123.9375,62.246094 A 60.000008,60.000008 0 0 1 64,121 60.000008,60.000008 0 0 1 4.0625,62.753906 60.000008,60.000008 0 0 0 4,64 a 60.000008,60.000008 0 0 0 60,60 60.000008,60.000008 0 0 0 60,-60 60.000008,60.000008 0 0 0 -0.0625,-1.753906 z"
+ transform="translate(0,172)"
+ id="circle1110"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ transform="translate(89.000001,-383)"
+ inkscape:label="media-playback-start"
+ id="g4135"
+ style="display:inline">
+ <rect
+ style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1;marker:none"
+ id="rect3246-4-1"
+ width="16"
+ height="16"
+ x="40"
+ y="487" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#bebebe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
+ d="m 84,609 v 10 H 84.90625 85 c 0.174914,10e-4 0.347782,-0.0388 0.5,-0.125 l 7,-4 c 0.310699,-0.17189 0.46875,-0.52345 0.46875,-0.875 0,-0.35155 -0.158051,-0.70311 -0.46875,-0.875 l -7,-4 C 85.347782,609.03875 85.174914,608.99869 85,609 h -0.09375 z"
+ transform="translate(-39.99995,-119)"
+ id="path3807-1-1-9-38-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccsccccc" />
+ </g>
+ <g
+ style="display:inline"
+ id="g1140"
+ inkscape:label="media-playback-start"
+ transform="matrix(3,0,0,3,-78,-1249)">
+ <rect
+ y="487"
+ x="40"
+ height="16"
+ width="16"
+ id="rect1136"
+ style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1;marker:none" />
+ <path
+ sodipodi:nodetypes="ccccccsccccc"
+ inkscape:connector-curvature="0"
+ id="path1138"
+ transform="translate(-39.99995,-119)"
+ d="m 84,609 v 10 H 84.90625 85 c 0.174914,10e-4 0.347782,-0.0388 0.5,-0.125 l 7,-4 c 0.310699,-0.17189 0.46875,-0.52345 0.46875,-0.875 0,-0.35155 -0.158051,-0.70311 -0.46875,-0.875 l -7,-4 C 85.347782,609.03875 85.174914,608.99869 85,609 h -0.09375 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Bitstream Vera Sans';-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#e73434;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Mahjongg.svg b/benchmarks/hicolor-apps/org.gnome.Mahjongg.svg
new file mode 100644
index 00000000..e5f428af
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Mahjongg.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="a"><stop offset="0" stop-color="#f7c54c"/><stop offset=".03" stop-color="#f9f06b"/><stop offset=".057" stop-color="#f5e35a" stop-opacity=".996"/><stop offset=".126" stop-color="#e5a50a" stop-opacity=".984"/><stop offset=".416" stop-color="#ebb517" stop-opacity=".984"/><stop offset=".455" stop-color="#f2cf65" stop-opacity=".984"/><stop offset=".494" stop-color="#c09610" stop-opacity=".984"/><stop offset=".494" stop-color="#f4d676" stop-opacity=".988"/><stop offset=".532" stop-color="#f4d87a" stop-opacity=".988"/><stop offset=".593" stop-color="#eec01e" stop-opacity=".988"/><stop offset=".877" stop-color="#f6d32d"/><stop offset=".954" stop-color="#f9f06b"/><stop offset="1" stop-color="#e5a50a" stop-opacity=".933"/></linearGradient><linearGradient xlink:href="#a" id="c" x1="12.098" y1="281.262" x2="117.203" y2="281.262" gradientUnits="userSpaceOnUse"/><linearGradient xlink:href="#a" id="b" gradientUnits="userSpaceOnUse" x1="12.098" y1="281.262" x2="117.203" y2="281.262"/></defs><g transform="translate(0 -172)"><rect style="marker:none" width="52" height="92" x="12" y="196" rx="8" ry="8" fill="url(#b)"/><rect ry="8" rx="8" y="196" x="64" height="92" width="52" style="marker:none" fill="url(#c)"/><rect ry="8" rx="8" y="184" x="12" height="94" width="52" style="marker:none" fill="#f9f06b"/><rect style="marker:none" width="52" height="94" x="64" y="184" rx="8" ry="8" fill="#f9f06b"/><g fill="#e5a50a"><path d="M38.5 213l-2.125 1.875.25 32.25c0 1.19 1.125 2.375 1.125 2.375l3.125-2.25s-1.5-.93-1.5-2z" style="marker:none"/><path d="M21.688 220.625l2.25 3h28.75l-4.407-4.406-2.125 2.125zM27.438 226l.125 14.125 3.187-1.625v-10.938zM44.063 224.375L49 227l-2.063 1.25v7.063l.938 1.062-2.313 2.313-1.374-2.125z" style="marker:none"/><rect ry=".63" rx=".63" y="227.375" x="28.563" height="1.563" width="17.75" style="marker:none"/><rect style="marker:none" width="17.75" height="1.563" x="28.563" y="231.438" rx=".63" ry=".63"/><rect ry=".63" rx=".63" y="235.063" x="28.563" height="1.563" width="17.75" style="marker:none"/><path style="marker:none" d="M22 241.313l3.938 3.937 1.687-1.438h27.75l-4.406-4.406-2.125 2.125z"/></g><g fill="#e5a50a"><path d="M87.75 214.75c0 10.901-.548 19.874-11.625 26.5l.438 2.688C85.195 239.841 90 232.93 90 220.75l2.188-.5z" style="marker:none"/><path style="marker:none" d="M75.688 225.063l1.25 1.937H102l-4.406-4.406-1.938 2.562zM90.125 228.125c0 8.528 9.563 15.875 9.563 15.875l2.437-3.875S91.5 235.003 91.5 228.437zM92.25 218.563c1.303 1.202 3.065 2.176 3.125 4l2.5-1.875c-1.005-1.483-2.727-2.071-4.375-2.75z"/></g><path style="marker:none" d="M72 184c-4.432 0-8 3.568-8 8v78c0 4.432 3.568 8 8 8h2c-4.432 0-9-3.568-9-8v-78c0-4.432 4.568-8 9-8z" fill="#fbf5a1"/><path d="M56 184c4.432 0 8 3.568 8 8v78c0 4.432-3.568 8-8 8h-2c4.432 0 9-3.568 9-8v-78c0-4.432-4.568-8-9-8z" style="marker:none" fill="#f7d782" fill-opacity=".95"/></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.Maps.svg b/benchmarks/hicolor-apps/org.gnome.Maps.svg
new file mode 100644
index 00000000..1986990c
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Maps.svg
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <clipPath
+ id="clipPath941-5-2"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ ry="32"
+ rx="32"
+ y="-116"
+ x="32"
+ height="320"
+ width="448"
+ id="rect943-2-6"
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </clipPath>
+ <clipPath
+ id="clipPath1289"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ id="path1291"
+ d="m 64,-148 h 64 l 64,-64 64,64 h 192 c 17.728,0 32,14.272 32,32 v 288 c 0,17.728 -14.272,32 -32,32 H 256 l -64,-64 -64,64 H 64 C 46.272,204 32,189.728 32,172 v -288 c 0,-17.728 14.408898,-34.19889 32,-32 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient1283">
+ <stop
+ id="stop1279"
+ offset="0"
+ style="stop-color:#a51d2d;stop-opacity:1;" />
+ <stop
+ id="stop1281"
+ offset="1"
+ style="stop-color:#ce1921;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ y2="-180"
+ x2="336"
+ y1="62"
+ x1="336"
+ gradientTransform="matrix(0.24999999,0,0,0.24999999,8.0003004,225)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1114-3"
+ xlink:href="#linearGradient1277" />
+ <linearGradient
+ id="linearGradient1277">
+ <stop
+ style="stop-color:#d81d25;stop-opacity:1"
+ offset="0"
+ id="stop1273" />
+ <stop
+ style="stop-color:#f66151;stop-opacity:1"
+ offset="1"
+ id="stop1349" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(0.25263159,0,0,0.25263159,115.03157,109.17914)"
+ gradientUnits="userSpaceOnUse"
+ y2="-68"
+ x2="415.5"
+ y1="-68"
+ x1="320.5"
+ id="linearGradient1285"
+ xlink:href="#linearGradient1283" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ clip-path="url(#clipPath941-5-2)"
+ id="g939-5-6"
+ style="display:inline;opacity:1;enable-background:new"
+ transform="matrix(0.24999999,0,0,0.24999999,0.90335495,61.874342)" />
+ <g
+ clip-path="url(#clipPath1289)"
+ id="g1287"
+ style="display:inline;opacity:1;enable-background:new"
+ transform="matrix(0.24999999,0,0,0.24999999,3.2000028e-7,237)">
+ <path
+ id="path1093"
+ d="M 256.00001,124 H 416.00002 L 416,-148 h 96 V 236 H 256 l -64,-64 -64,64 H -9.6000004e-7 L -1.2800001e-6,124 H 128 l 64,-64 z"
+ style="opacity:1;vector-effect:none;fill:#cdab8f;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#55a7eb;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="M -1.2800001e-6,123.9746 128,124.0254 V -148.00001 L -3.2000001e-6,-148 Z"
+ id="rect287-9" />
+ <path
+ id="path1533"
+ d="M 144,-164.00001 V 108 L 192.00001,60.000002 256,124.05845 400.00001,124.0584 416.00002,108 V -148.00001 H 256.00001 l -64,-64 z"
+ style="display:inline;opacity:1;fill:#2ec27e;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path7460-26"
+ d="m 399.89844,-147.89077 v 238 c 0,10.02823 -9.37384,17.94922 -16.94922,17.94922 H 256 L 192,44.58984 152.625,84.125 152,-211.94161 H 128 V 108 L -1.2800001e-6,108.0584 v 32.10156 H 127 L 192,76 l 64,64.16001 h 126.94922 c 26.42462,0 47.96327,-22.04752 49.05078,-50.05078 v -238 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:32.09999847;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ id="path1179"
+ d="m 128.00001,267.9746 64,0.0508 V -212.00001 L 128,-212 Z"
+ style="display:inline;opacity:0.3;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ style="display:inline;opacity:0.15;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 192.00001,267.9746 64,0.0508 V -212.00001 L 192,-212 Z"
+ id="path1083" />
+ </g>
+ <g
+ id="g1138">
+ <circle
+ style="display:inline;opacity:1;fill:url(#linearGradient1285);fill-opacity:1;stroke:none;stroke-width:0.25263157;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.01052633, 0.50526317;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="path1550"
+ cx="208"
+ cy="92.000191"
+ transform="matrix(0,1,1,0,0,0)"
+ r="12" />
+ <path
+ id="use981-2-7-9-9"
+ d="m 92.000189,182 c -7.165825,0 -14.3315,2.73383 -19.798825,8.20117 -10.934699,10.93468 -10.934699,28.66298 0,39.59766 l 19.798825,19.79931 c 0,0 13.821321,-13.82183 19.798821,-19.79931 10.93468,-10.93468 10.93468,-28.66298 0,-39.59766 C 106.33169,184.73383 99.166013,182 92.000189,182 Z m 0,18 a 9.9999996,9.9999996 0 0 1 10.000001,10 9.9999996,9.9999996 0 0 1 -10.000001,10 9.9999996,9.9999996 0 0 1 -10,-10 9.9999996,9.9999996 0 0 1 10,-10 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#a51d2d;fill-opacity:1;stroke:none;stroke-width:13.99999714;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1114-3);fill-opacity:1;stroke:none;stroke-width:13.99999714;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 92.0002,180 c -7.1658,0 -14.3315,2.7338 -19.7988,8.2012 -10.9347,10.9347 -10.9347,28.663 0,39.5976 l 19.7988,19.7994 c 0,0 13.8213,-13.8219 19.79879,-19.7994 10.9347,-10.9346 10.9347,-28.6629 0,-39.5976 C 106.3317,182.7338 99.165995,180 92.0002,180 Z m 0,18 a 9.9999994,9.9999994 0 0 1 9.99999,10 9.9999994,9.9999994 0 0 1 -9.99999,10 9.9999994,9.9999994 0 0 1 -10,-10 9.9999994,9.9999994 0 0 1 10,-10 z"
+ id="path1091-5" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Mines.svg b/benchmarks/hicolor-apps/org.gnome.Mines.svg
new file mode 100644
index 00000000..9d7de8cb
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Mines.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="a"><stop offset="0" stop-color="#68676b"/><stop offset=".8" stop-color="#424048"/><stop offset="1" stop-color="#241f31"/></linearGradient><radialGradient xlink:href="#a" id="d" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.34416 .0006 -.00062 1.38763 -121.22 -718.103)" cx="279.422" cy="446.483" fx="279.422" fy="446.483" r="224"/><linearGradient xlink:href="#b" id="e" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.0015 0 0 .99993 72.09 56.015)" x1="43.844" y1="234" x2="-60" y2="234"/><linearGradient id="b"><stop offset="0" stop-color="#d5d3cf"/><stop offset=".038" stop-color="#e3e2df"/><stop offset=".077" stop-color="#c0bfbc"/><stop offset=".923" stop-color="#c0bfbc"/><stop offset=".962" stop-color="#e3e2df"/><stop offset="1" stop-color="#d5d3cf"/></linearGradient></defs><g transform="translate(0 -172)"><g transform="matrix(1.34135 0 0 1.34135 -87.385 -639.02)"><rect ry="32" rx="32" y="-100" x="112" height="288" width="288" id="c" style="marker:none" display="inline" opacity="1" vector-effect="none" fill="#241f31" fill-opacity="1" stroke="none" stroke-width="32" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" stroke-dasharray="none" stroke-dashoffset="0" stroke-opacity="1" marker-start="none" marker-mid="none" marker-end="none" paint-order="normal"/><use transform="rotate(45 256 44)" xlink:href="#c" width="100%" height="100%" style="marker:none" fill="#241f31" stroke-width="32"/><circle r="168" cy="44" cx="256" style="marker:none" fill="url(#d)"/></g><rect ry="8" rx="8" height="48" width="104" x="12" y="240" fill="url(#e)"/><path d="M62 218v66h46c4.432 0 8-3.568 8-8v-50c0-4.432-3.568-8-8-8H62z" fill="#deddda"/><path d="M20 182c-4.432 0-8 3.568-8 8v84c0 4.432 3.568 8 8 8h44v-50h52v-42c0-4.432-3.568-8-8-8H66v2h-4v-2z" fill="#f6f5f4"/><path d="M12 232h104" fill="none" stroke="#deddda" stroke-width="4"/><path d="M12 231h104" fill="none" stroke="#c0bfbc" stroke-width="2"/><path d="M64 184v100" fill="none" stroke="#deddda" stroke-width="4"/><path d="M28 189.57v32.454h4.103V209.72L50 200.943z" fill="#2dc0af"/><path style="line-height:1000%;-inkscape-font-specification:'Cantarell Ultra-Bold'" d="M28 270h18v-6h-6v-20h-3.196l-10.069 5.225 2.193 5.206L34 252l-.02 12H28z" font-weight="800" font-family="Cantarell" letter-spacing="0" word-spacing="0" fill="#1a5fb4"/><g transform="translate(-2 1)" fill="#a51d2d"><circle style="marker:none" cx="91" cy="257" r="15"/><rect style="marker:none" width="6" height="38" x="88" y="238" rx="2" ry="2"/><rect ry="2" rx="2" y="-110" x="254" height="38" width="6" style="marker:none" transform="rotate(90)"/><rect ry="2" rx="2" y="98.38" x="243.073" height="38" width="6" style="marker:none" transform="rotate(45)"/><rect transform="rotate(135)" style="marker:none" width="6" height="38" x="114.38" y="-265.073" rx="2" ry="2"/></g><g transform="translate(-2 -1)" fill="#ed333b"><circle r="15" cy="257" cx="91" style="marker:none"/><rect ry="2" rx="2" y="238" x="88" height="38" width="6" style="marker:none"/><rect transform="rotate(90)" style="marker:none" width="6" height="38" x="254" y="-110" rx="2" ry="2"/><rect transform="rotate(45)" style="marker:none" width="6" height="38" x="243.073" y="98.38" rx="2" ry="2"/><rect ry="2" rx="2" y="-265.073" x="114.38" height="38" width="6" style="marker:none" transform="rotate(135)"/></g></g></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.Music.svg b/benchmarks/hicolor-apps/org.gnome.Music.svg
new file mode 100644
index 00000000..2bc77446
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Music.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="128" width="128">
+ <defs>
+ <linearGradient gradientTransform="translate(0 -172)" y2="-316.08" x2="600.205" y1="238" x1="116.205" gradientUnits="userSpaceOnUse" id="a">
+ <stop stop-color="#b2d1e9" offset="0"/>
+ <stop stop-color="#c0c6cd" offset=".136"/>
+ <stop stop-color="#d2dee8" offset=".453"/>
+ <stop stop-color="#bfc5ce" offset=".72"/>
+ <stop stop-color="#dbe2e8" offset=".937"/>
+ <stop stop-color="#e4e6e8" offset="1"/>
+ </linearGradient>
+ <linearGradient gradientTransform="translate(0 -172)" y2="-316.08" x2="600.205" y1="238" x1="116.205" gradientUnits="userSpaceOnUse" id="b">
+ <stop stop-color="#b2d1e9" offset="0"/>
+ <stop stop-color="#c0c6cd" offset=".136"/>
+ <stop stop-color="#d2dee8" offset=".453"/>
+ <stop stop-color="#bfc5ce" offset=".72"/>
+ <stop stop-color="#dbe2e8" offset=".937"/>
+ <stop stop-color="#e4e6e8" offset="1"/>
+ </linearGradient>
+ <linearGradient gradientTransform="rotate(90 47.387 40.864) scale(.26563)" y2="91.301" x2="431.139" y1="91.301" x1="99.846" gradientUnits="userSpaceOnUse" id="c">
+ <stop stop-color="#f6d32d" offset="0"/>
+ <stop stop-color="#f9f06b" offset="1"/>
+ </linearGradient>
+ <radialGradient gradientTransform="matrix(.25657 -.06875 .06875 .2566 -10.396 58.824)" r="56" fy="67.198" fx="273.943" cy="67.198" cx="273.943" gradientUnits="userSpaceOnUse" id="d">
+ <stop stop-color="#fff" offset="0"/>
+ <stop stop-color="#c4c5c3" offset="1"/>
+ </radialGradient>
+ </defs>
+ <path fill="url(#a)" d="M20 12h88a8 8 0 018 8v88a8 8 0 01-8 8H20a8 8 0 01-8-8V20a8 8 0 018-8zm0 0"/>
+ <path fill="url(#b)" d="M124 64c0 33.137-26.863 60-60 60S4 97.137 4 64 30.863 4 64 4s60 26.863 60 60zm0 0"/>
+ <path d="M116 64c0 28.719-23.281 52-52 52S12 92.719 12 64c0-28.723 23.281-52.004 52-52.004S116 35.277 116 64zm0 0"/>
+ <path fill="#2a2a3b" d="M112 64c0 26.508-21.492 48-48 48S16 90.508 16 64c0-26.512 21.492-48.004 48-48.004S112 37.488 112 64zm0 0"/>
+ <path fill="url(#c)" d="M64 108c-24.3 0-44-19.7-44-44s19.7-44 44-44 44 19.7 44 44-19.7 44-44 44zm0 0"/>
+ <path d="M84 64c0 11.047-8.953 20-20 20s-20-8.953-20-20 8.953-20.004 20-20.004S84 52.953 84 64zm0 0"/>
+ <path fill="url(#d)" d="M79.453 59.86c2.29 8.535-2.777 17.308-11.312 19.597-8.536 2.285-17.309-2.781-19.594-11.316-2.29-8.536 2.777-17.309 11.312-19.598 8.536-2.285 17.309 2.781 19.594 11.316zm0 0"/>
+ <path d="M24 106c0 1.125-.895 2.035-2 2.035s-2-.91-2-2.035.895-2.035 2-2.035 2 .91 2 2.035zm84 0c0 1.125-.895 2.035-2 2.035s-2-.91-2-2.035.895-2.035 2-2.035 2 .91 2 2.035zm0-84c0 1.125-.895 2.035-2 2.035s-2-.91-2-2.035.895-2.035 2-2.035 2 .91 2 2.035zm-84 0c0 1.125-.895 2.035-2 2.035s-2-.91-2-2.035.895-2.035 2-2.035 2 .91 2 2.035zm0 0"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Nautilus.svg b/benchmarks/hicolor-apps/org.gnome.Nautilus.svg
new file mode 100644
index 00000000..dea3e0f9
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Nautilus.svg
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1245">
+ <stop
+ id="stop1241"
+ offset="0"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ id="stop1243"
+ offset="1"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1697">
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0"
+ id="stop1685" />
+ <stop
+ id="stop1687"
+ offset="0.04545455"
+ style="stop-color:#eeeeec;stop-opacity:1" />
+ <stop
+ style="stop-color:#deddda;stop-opacity:1"
+ offset="0.09090909"
+ id="stop1689" />
+ <stop
+ id="stop1691"
+ offset="0.90909094"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#eeeeec;stop-opacity:1"
+ offset="0.95454544"
+ id="stop1693" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="1"
+ id="stop1695" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="238"
+ x2="108"
+ y1="238"
+ x1="20"
+ id="linearGradient1049"
+ xlink:href="#linearGradient1697" />
+ <linearGradient
+ y2="238"
+ x2="74"
+ y1="238"
+ x1="50"
+ gradientTransform="translate(2,-22)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1185"
+ xlink:href="#linearGradient1697" />
+ <linearGradient
+ y2="200"
+ x2="65"
+ y1="204"
+ x1="65"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1348"
+ xlink:href="#linearGradient1245" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ transform="matrix(0.25,0,0,-0.25,-6,217)"
+ id="g15447-1" />
+ <g
+ id="g1207">
+ <rect
+ ry="8.017911"
+ rx="8.7725897"
+ y="234"
+ x="20"
+ height="58"
+ width="88"
+ id="rect1041"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1049);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect15435-6"
+ width="88"
+ height="108"
+ x="20"
+ y="180"
+ rx="8.7725897"
+ ry="8.017911" />
+ <rect
+ ry="4.0021734"
+ rx="4"
+ y="186"
+ x="24"
+ height="98"
+ width="80"
+ id="rect1167"
+ style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.0119126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect15441-8"
+ width="80"
+ height="98"
+ x="24"
+ y="184"
+ rx="4"
+ ry="4.0021734" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect15443-6"
+ width="80"
+ height="2"
+ x="24"
+ y="216"
+ rx="0"
+ ry="0" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#1c71d8;fill-opacity:1;stroke:none;stroke-width:0.01190936px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect15461-2"
+ width="80"
+ height="2"
+ x="24"
+ y="248"
+ rx="0"
+ ry="0" />
+ <g
+ id="g1088">
+ <path
+ id="path26035"
+ d="m 55,196 h 18 c 1.662,0 3,1 3,3 v 5 H 72.03125 L 72,200 H 56 l 0.03125,4 H 52 v -5 c 0,-1.662 1.338,-3 3,-3 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1185);fill-opacity:1;stroke:none;stroke-width:0.01184966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1059"
+ width="24"
+ height="4"
+ x="52"
+ y="202"
+ ry="1.5" />
+ <path
+ style="opacity:1;fill:url(#linearGradient1348);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 55,200 c -1.662,0 -3,1.338 -3,3 v 1 h 4 v -2 h 16 v 2 h 4 v -1 c 0,-1.662 -1.338,-3 -3,-3 z"
+ id="rect1061" />
+ <rect
+ y="202"
+ x="56"
+ height="2"
+ width="16"
+ id="rect1189"
+ style="opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <use
+ x="0"
+ y="0"
+ xlink:href="#g1088"
+ id="use1090"
+ transform="translate(0,32)"
+ width="100%"
+ height="100%" />
+ <use
+ height="100%"
+ width="100%"
+ transform="translate(0,64)"
+ id="use1092"
+ xlink:href="#g1088"
+ y="0"
+ x="0" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Notes.svg b/benchmarks/hicolor-apps/org.gnome.Notes.svg
new file mode 100644
index 00000000..e264a9bd
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Notes.svg
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient987">
+ <stop
+ id="stop975"
+ offset="0"
+ style="stop-color:#f5c211;stop-opacity:1" />
+ <stop
+ style="stop-color:#f8e45c;stop-opacity:1"
+ offset="0.04166667"
+ id="stop977" />
+ <stop
+ id="stop979"
+ offset="0.08333334"
+ style="stop-color:#f6d32d;stop-opacity:1" />
+ <stop
+ style="stop-color:#f5c211;stop-opacity:1"
+ offset="0.91666669"
+ id="stop981" />
+ <stop
+ id="stop983"
+ offset="0.95833331"
+ style="stop-color:#f8e45c;stop-opacity:1" />
+ <stop
+ id="stop985"
+ offset="1"
+ style="stop-color:#f5c211;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ r="48"
+ fy="151.00006"
+ fx="405"
+ cy="151.00006"
+ cx="405"
+ gradientTransform="matrix(1.4599987,-1.4599987,0.02960147,0.02960147,-490.51932,677.57967)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient902"
+ xlink:href="#linearGradient897" />
+ <linearGradient
+ id="linearGradient897">
+ <stop
+ id="stop893"
+ offset="0"
+ style="stop-color:#f6d32d;stop-opacity:1" />
+ <stop
+ id="stop895"
+ offset="1"
+ style="stop-color:#fcf9c0;stop-opacity:1" />
+ </linearGradient>
+ <clipPath
+ id="clipPath2213"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ ry="8"
+ rx="8"
+ y="-188"
+ x="160"
+ height="56"
+ width="16"
+ id="rect2215"
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </clipPath>
+ <linearGradient
+ y2="204"
+ x2="45.963043"
+ y1="204"
+ x1="461.96304"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient973"
+ xlink:href="#linearGradient987" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:none"
+ id="layer2">
+ <text
+ id="context"
+ y="128.65199"
+ x="-0.050041199"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.33333349px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Normal';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ xml:space="preserve"><tspan
+ style="font-size:5.33333349px;stroke-width:0.33264872"
+ y="128.65199"
+ x="-0.050041199"
+ id="tspan2716">apps</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.33333349px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ x="-0.24669456"
+ y="137.23398"
+ id="text3021"><tspan
+ style="font-size:5.33333349px;stroke-width:0.33264872"
+ id="tspan3023"
+ x="-0.24669456"
+ y="137.23398">org.gnome.Notes</tspan></text>
+ <g
+ id="g12027"
+ transform="matrix(7.9911709,0,0,8.0036407,-167.7909,-4846.0776)"
+ style="display:inline;fill:#000000;enable-background:new" />
+ <rect
+ y="172"
+ x="9.2651362e-08"
+ height="128"
+ width="128"
+ id="rect13805"
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate" />
+ <g
+ transform="translate(-24,24)"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ id="g883" />
+ <g
+ transform="translate(-24,24)"
+ style="fill:none;fill-opacity:0.25098039;stroke:#a579b3;stroke-opacity:1"
+ id="g900" />
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate"
+ id="rect859"
+ width="16"
+ height="16"
+ x="160"
+ y="172" />
+ <text
+ id="text863"
+ y="164"
+ x="0"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ xml:space="preserve"><tspan
+ y="164"
+ x="0"
+ id="tspan861"
+ style="font-size:4px;stroke-width:0.33264872">Hicolor</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4px;line-height:125%;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.33264872;enable-background:new"
+ x="160"
+ y="164"
+ id="text867"><tspan
+ style="font-size:4px;stroke-width:0.33264872"
+ id="tspan865"
+ x="160"
+ y="164">Symbolic</tspan></text>
+ </g>
+ <g
+ style="display:none"
+ id="layer3">
+ <circle
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle2892"
+ r="59.504131"
+ cy="236"
+ cx="64.000031" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2894"
+ width="87.009987"
+ height="111.01005"
+ x="20.495007"
+ y="180.49496"
+ rx="8.701004"
+ ry="7.9292889" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2896"
+ width="103.00952"
+ height="103.00952"
+ x="12.495266"
+ y="184.49524"
+ rx="7.9238095"
+ ry="7.9238095" />
+ <rect
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect2898"
+ width="111.01004"
+ height="87.010048"
+ x="8.4950066"
+ y="200.49496"
+ rx="7.9292889"
+ ry="8.701005" />
+ <path
+ style="display:inline;fill:none;stroke:#62a0ea;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="M 2.6203015e-5,288.99999 H 128.00003"
+ id="path2900" />
+ </g>
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ id="g899"
+ style="display:inline;enable-background:new"
+ transform="matrix(0.25,0,0,0.25,0.5092392,225)">
+ <rect
+ ry="32"
+ rx="32"
+ y="-148"
+ x="45.963039"
+ height="400"
+ width="416"
+ id="rect884"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient973);fill-opacity:1.0;stroke:none;stroke-width:24.00000191;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <rect
+ ry="32"
+ rx="32"
+ y="-164"
+ x="45.963043"
+ height="367.99997"
+ width="416"
+ id="rect886"
+ style="display:inline;opacity:1;vector-effect:none;fill:#f9f06b;fill-opacity:1;stroke:none;stroke-width:24;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <g
+ style="stroke-width:0.99999994"
+ transform="translate(13.96304,-1e-5)"
+ id="g892">
+ <path
+ id="path888"
+ transform="matrix(4,0,0,4,-16,-211.99999)"
+ d="m 116,80 -24,24 h 16 c 4.432,0 8,-3.568 8,-8 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#f8ed4a;fill-opacity:1;stroke:none;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path890"
+ transform="matrix(4,0,0,4,-16,-211.99999)"
+ d="m 100,80 c -4.432,0 -8,3.568 -8,8 v 16 l 24,-24 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#radialGradient902);fill-opacity:1;stroke:none;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ </g>
+ <rect
+ y="196"
+ x="24"
+ height="8"
+ width="79.999947"
+ id="rect892"
+ style="display:inline;opacity:1;vector-effect:none;fill:#f8e45c;fill-opacity:1;stroke:none;stroke-width:7.90183401;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#f8e45c;fill-opacity:1;stroke:none;stroke-width:5.72542477;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect894"
+ width="42"
+ height="8"
+ x="24"
+ y="212" />
+ <path
+ id="path1247"
+ d="M 116,272.6543 C 115.9178,276.74491 112.61929,280 108.50781,280 h -0.5 v 1 h 0.5 c 3.24611,0 6.0601,-1.81286 7.49219,-4.48242 z M 73.999999,280 108,281 v -1 z"
+ style="display:inline;fill:#000000;fill-opacity:0.05905512;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path1245"
+ d="M 116,276.6543 C 115.9178,280.74491 112.61929,284 108.50781,284 h -0.5 v 1 h 0.5 c 3.22393,0 6.02184,-1.7881 7.46289,-4.42773 C 115.9841,280.38252 116,280.19325 116,280 Z M 73.999999,284 108,285 v -1 z"
+ style="display:inline;fill:#000000;fill-opacity:0.04313726;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ </g>
+ <g
+ transform="matrix(0.25,0,0,0.25,-382.99076,301.93045)"
+ clip-path="url(#clipPath2213)"
+ id="g8005"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-432.99076,301.93045)"
+ clip-path="url(#clipPath2213)"
+ id="g8015"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-422.99076,301.93045)"
+ clip-path="url(#clipPath2213)"
+ id="g8025"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-412.99076,301.93045)"
+ clip-path="url(#clipPath2213)"
+ id="g8035"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-402.99076,301.93045)"
+ clip-path="url(#clipPath2213)"
+ id="g8045"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-392.99076,301.93045)"
+ clip-path="url(#clipPath2213)"
+ id="g8055"
+ style="display:inline;enable-background:new" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Photos.svg b/benchmarks/hicolor-apps/org.gnome.Photos.svg
new file mode 100644
index 00000000..71aa28b3
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Photos.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0"><defs><linearGradient id="o"><stop offset="0" stop-color="#f5f4f3"/><stop offset="1" stop-color="#ecebea"/></linearGradient><linearGradient id="w"><stop offset="0" stop-color="#1a5fb4"/><stop offset="1" stop-color="#3584e4"/></linearGradient><linearGradient id="v"><stop offset="0" stop-color="#613583"/><stop offset="1" stop-color="#a347ba"/></linearGradient><linearGradient id="u"><stop offset="0" stop-color="#a51d2d"/><stop offset="1" stop-color="#e01b24"/></linearGradient><linearGradient id="t"><stop offset="0" stop-color="#c64600"/><stop offset="1" stop-color="#ff7800"/></linearGradient><linearGradient id="s"><stop offset="0" stop-color="#e5a50a"/><stop offset="1" stop-color="#f6d32d"/></linearGradient><linearGradient id="x"><stop offset="0" stop-color="#26a269"/><stop offset="1" stop-color="#33d17a"/></linearGradient><linearGradient id="m"><stop offset="0" stop-color="#813d9c"/><stop offset="1" stop-color="#c061cb" stop-opacity="0"/></linearGradient><linearGradient id="n"><stop offset="0" stop-color="#1a5fb4"/><stop offset="1" stop-color="#1a5fb4" stop-opacity="0"/></linearGradient><linearGradient id="g"><stop offset="0" stop-color="#4fd2fd"/><stop offset="1" stop-color="#1c71d8" stop-opacity="0"/></linearGradient><linearGradient id="h"><stop offset="0" stop-color="#ed333b"/><stop offset="1" stop-color="#c061cb"/></linearGradient><linearGradient id="l"><stop offset="0" stop-color="#f9f06b"/><stop offset="1" stop-color="#f9f06b" stop-opacity=".067"/></linearGradient><linearGradient id="a"><stop offset="0" stop-color="#edece9"/><stop offset="1" stop-color="#fff"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#e0371b"/><stop offset="1" stop-color="#f6d32d"/></linearGradient><linearGradient id="c"><stop offset="0" stop-color="#50db81"/><stop offset="1" stop-color="#8ff0a4" stop-opacity=".004"/></linearGradient><linearGradient id="d"><stop offset="0" stop-color="#4a86cf"/><stop offset="1" stop-color="#87bae1" stop-opacity="0"/></linearGradient><linearGradient id="e"><stop offset="0" stop-color="#eeeeec"/><stop offset="1" stop-color="#f6f5f4"/></linearGradient><linearGradient id="f"><stop offset="0" stop-color="#949390"/><stop offset="1" stop-color="#d5d3cf"/></linearGradient><linearGradient id="i"><stop offset="0" stop-color="#4fd2fd"/><stop offset="1" stop-color="#1c71d8"/></linearGradient><linearGradient id="j"><stop offset="0" stop-color="#e01b24"/><stop offset="1" stop-color="#f66151" stop-opacity="0"/></linearGradient><linearGradient id="k"><stop offset="0" stop-color="#c061cb"/><stop offset="1" stop-color="#813d9c" stop-opacity=".126"/></linearGradient><linearGradient xlink:href="#o" id="p" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)" x1="21.006" y1="244.701" x2="62.049" y2="222.341"/><linearGradient xlink:href="#e" id="q" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-112.5 6.537 150)" x1="83.5" y1="186.5" x2="42.789" y2="220.5"/><linearGradient xlink:href="#e" id="r" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-112.5 92.536 92.537)" x1="83.5" y1="186.5" x2="42.789" y2="220.5"/><linearGradient xlink:href="#s" id="z" x1="82" y1="225.608" x2="64" y2="196" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)"/><linearGradient xlink:href="#t" id="B" x1="82.001" y1="246.393" x2="100" y2="216" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)"/><linearGradient xlink:href="#u" id="D" x1="64.499" y1="257.074" x2="100" y2="258" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)"/><linearGradient xlink:href="#v" id="y" x1="45.999" y1="246.969" x2="64" y2="276" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)"/><linearGradient xlink:href="#w" id="A" x1="45.999" y1="225.608" x2="28" y2="256.785" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)"/><linearGradient xlink:href="#x" id="C" x1="63.999" y1="215.215" x2="28" y2="215.216" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 -172)"/></defs><path d="M82 53.608v20.784L64 84.785 46 74.392V53.608l18-10.393z" fill="#3d3846"/><path d="M28 43.216v41.569" fill="none" stroke="#33d17a" stroke-width="36"/><path d="M64 105.57L28 84.785" fill="none" stroke="#3584e4" stroke-width="36"/><path d="M64 105.57l36-20.787" fill="none" stroke="#a347ba" stroke-width="36"/><path d="M100 43.215v41.568" fill="none" stroke="#e01b24" stroke-width="36"/><path d="M100 43.215L64 22.43" fill="none" stroke="#ff7800" stroke-width="36"/><path d="M28 43.216l36-20.785" fill="none" stroke="#f6d32d" stroke-width="36"/><path d="M64 123.57c9.941 0 18-8.06 18-18a18 18 0 0 0-7.744-14.766l-9.258-5.442-.998-.576a419.435 419.435 0 0 1-8.534-4.96A18 18 0 0 1 46 64v41.568c0 9.941 8.059 18 18 18zm-17.934-19.452c.024-.283.065-.562.102-.842-.04.28-.074.56-.102.842zm.938-4.412c.026-.075.045-.154.072-.229l.004-.002-.076.23z" fill="url(#y)"/><path d="M64 4.432c-9.941 0-18 8.059-18 18a18 18 0 0 0 7.744 14.765l9.258 5.442.998.576a419.435 419.435 0 0 1 8.534 4.96A18 18 0 0 1 82 64V22.432c0-9.941-8.059-18-18-18zm17.934 19.45c-.024.284-.065.563-.102.843.04-.28.074-.56.102-.842zm-.938 4.413c-.026.075-.045.153-.072.228l-.004.002z" fill="url(#z)"/><path d="M12.412 93.785c4.97 8.61 15.98 11.559 24.588 6.588a18 18 0 0 0 8.916-14.09l.083-10.737v-1.153c-.03-3.185-.017-6.864.03-9.87a18 18 0 0 1 8.97-16.11l-9 5.195-18 10.393-4.068 2.349-4.93 2.846c-8.61 4.97-11.56 15.98-6.589 24.589zm7.878-25.257c.257-.12.52-.224.78-.333a19.02 19.02 0 0 0-.78.333zm4.29-1.394c.078-.015.156-.038.234-.052l.004.002z" fill="url(#A)"/><path d="M115.588 34.216c-4.97-8.61-15.98-11.559-24.588-6.588a18 18 0 0 0-8.916 14.089l-.083 10.738v1.153c.03 3.185.017 6.864-.03 9.87a18 18 0 0 1-8.97 16.11l9-5.196L100 64l4.068-2.349 4.93-2.846c8.61-4.971 11.56-15.98 6.589-24.589zm-7.878 25.257c-.257.12-.52.224-.78.333.262-.105.522-.216.78-.333zm-4.29 1.394c-.078.015-.156.037-.234.051l-.004-.002c.08-.015.158-.032.238-.049z" fill="url(#B)"/><path d="M12.412 34.216c-4.97 8.61-2.02 19.618 6.588 24.588a18 18 0 0 0 16.66.677L45 54.184l.998-.576a419.443 419.443 0 0 1 8.563-4.91A18 18 0 0 1 73 48.412l-9-5.197-18.001-10.392-4.068-2.349-4.93-2.846c-8.61-4.971-19.619-2.021-24.59 6.588zm25.812-5.805c.233.162.454.337.678.509a18.002 18.002 0 0 0-.678-.51zm3.352 3.018c.052.06.11.115.162.176v.004z" fill="url(#C)"/><path d="M115.588 93.785c4.97-8.61 2.02-19.618-6.588-24.589a18 18 0 0 0-16.66-.676L83 73.817l-.998.576a419.416 419.416 0 0 1-8.563 4.91A18 18 0 0 1 55 79.59l9 5.196 18.001 10.393 4.068 2.349 4.93 2.846c8.61 4.97 19.619 2.021 24.59-6.588zM89.776 99.59c-.233-.162-.454-.337-.678-.509.222.175.448.345.678.51zm-3.352-3.018c-.052-.06-.11-.116-.162-.177v-.004l.162.182z" fill="url(#D)"/><path d="M46 53.608v20.784l18 10.393 18-10.393V53.608L64 43.215z" fill="#241f31"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.Podcasts.svg b/benchmarks/hicolor-apps/org.gnome.Podcasts.svg
new file mode 100644
index 00000000..62c4b101
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Podcasts.svg
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="96"
+ inkscape:export-xdpi="96"
+ inkscape:export-filename="Template.png"
+ width="128"
+ height="128"
+ id="svg11300"
+ sodipodi:version="0.32"
+ inkscape:version="0.92.3 (2405546, 2018-03-11)"
+ sodipodi:docname="org.gnome.Podcasts_clean.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 128 128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ y2="236"
+ x2="96"
+ y1="236"
+ x1="32"
+ gradientTransform="translate(604.81684,170.58641)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1099"
+ xlink:href="#linearGradient1036" />
+ <linearGradient
+ id="linearGradient1036">
+ <stop
+ id="stop1032"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1;" />
+ <stop
+ id="stop1034"
+ offset="1"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ r="32"
+ fy="-76"
+ fx="-244"
+ cy="-76"
+ cx="-244"
+ gradientTransform="matrix(0.88333331,0,0,0.88333331,-460.35018,463.11973)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1103"
+ xlink:href="#linearGradient1069" />
+ <linearGradient
+ id="linearGradient1069">
+ <stop
+ id="stop1065"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ id="stop1067-1"
+ offset="1"
+ style="stop-color:#949390;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="232"
+ x2="64"
+ y1="262.5"
+ x1="64"
+ id="linearGradient1027"
+ xlink:href="#linearGradient1025"
+ gradientTransform="translate(-470.5864,432.81685)" />
+ <linearGradient
+ id="linearGradient1025">
+ <stop
+ id="stop1021"
+ offset="0"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ id="stop1023"
+ offset="1"
+ style="stop-color:#77767b;stop-opacity:1" />
+ </linearGradient>
+ <inkscape:path-effect
+ effect="spiro"
+ id="path-effect35304-9"
+ is_visible="true" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1017">
+ <rect
+ ry="96.000015"
+ rx="96.000015"
+ y="-163.5"
+ x="159.99997"
+ height="367.5"
+ width="192.00003"
+ id="rect1020"
+ style="opacity:1;fill:#f1bd10;fill-opacity:1;stroke:none;stroke-width:0.99999988;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:4.00000002, 2.00000002;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1090">
+ <rect
+ ry="31.999998"
+ rx="32"
+ y="-115.99999"
+ x="32.5"
+ height="320"
+ width="447"
+ id="rect1092"
+ style="opacity:1;fill:#fb8c14;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:3.9999998, 1.9999999;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1043">
+ <rect
+ ry="31.999998"
+ rx="32"
+ y="-115.99999"
+ x="32.5"
+ height="320"
+ width="447"
+ id="rect1041"
+ style="opacity:1;fill:#fb8c14;fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:3.9999998, 1.9999999;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ <linearGradient
+ gradientTransform="translate(0,11.999989)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient1654"
+ id="linearGradient1640"
+ x1="8"
+ y1="264"
+ x2="120"
+ y2="264"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1654">
+ <stop
+ style="stop-color:#a51d2d;stop-opacity:1"
+ offset="0"
+ id="stop1642" />
+ <stop
+ id="stop1644"
+ offset="0.03432177"
+ style="stop-color:#ed333b;stop-opacity:1" />
+ <stop
+ style="stop-color:#c01c28;stop-opacity:1"
+ offset="0.07062413"
+ id="stop1646" />
+ <stop
+ id="stop1648"
+ offset="0.92767543"
+ style="stop-color:#c01c28;stop-opacity:1" />
+ <stop
+ style="stop-color:#ed333b;stop-opacity:1"
+ offset="0.96428573"
+ id="stop1650" />
+ <stop
+ style="stop-color:#c01c28;stop-opacity:1"
+ offset="1"
+ id="stop1652" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath904">
+ <rect
+ y="4"
+ x="208"
+ height="48"
+ width="96"
+ id="rect906"
+ style="opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:15.99999905;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:11.19999981;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1057">
+ <rect
+ y="4"
+ x="208"
+ height="48"
+ width="96"
+ id="rect1055"
+ style="opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:15.99999905;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:11.19999981;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1061">
+ <rect
+ y="4"
+ x="208"
+ height="48"
+ width="96"
+ id="rect1059"
+ style="opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:15.99999905;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:11.19999981;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath904-3">
+ <rect
+ y="4"
+ x="208"
+ height="48"
+ width="96"
+ id="rect906-6"
+ style="opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:15.99999905;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:11.19999981;stroke-opacity:1" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath1091">
+ <rect
+ y="4"
+ x="208"
+ height="48"
+ width="96"
+ id="rect1088"
+ style="opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:15.99999905;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:11.19999981;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ stroke="#ef2929"
+ fill="#f57900"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.25490196"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.99999999"
+ inkscape:cx="-59.599388"
+ inkscape:cy="168.31056"
+ inkscape:current-layer="layer9"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="1600"
+ inkscape:window-y="27"
+ width="400px"
+ height="300px"
+ inkscape:snap-nodes="true"
+ inkscape:snap-bbox="true"
+ objecttolerance="7"
+ gridtolerance="12"
+ guidetolerance="13"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="false"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:locked="false"
+ inkscape:measure-start="0,0"
+ inkscape:measure-end="0,0"
+ inkscape:object-nodes="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-global="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ showborder="false"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-text-baseline="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5883"
+ spacingx="2"
+ spacingy="2"
+ enabled="true"
+ visible="true"
+ empspacing="4"
+ originx="0"
+ originy="0" />
+ <sodipodi:guide
+ position="64,8"
+ orientation="0,1"
+ id="guide1073"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="12,64"
+ orientation="1,0"
+ id="guide1075"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,104"
+ orientation="0,1"
+ id="guide1099"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,128"
+ orientation="0,1"
+ id="guide993"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="104,64"
+ orientation="1,0"
+ id="guide995"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="9.2651362e-08,64"
+ orientation="1,0"
+ id="guide867"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="120,64"
+ orientation="1,0"
+ id="guide869"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,116"
+ orientation="0,1"
+ id="guide871"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <inkscape:grid
+ type="xygrid"
+ id="grid873"
+ spacingx="1"
+ spacingy="1"
+ empspacing="8"
+ color="#000000"
+ opacity="0.49019608"
+ empcolor="#000000"
+ empopacity="0.08627451"
+ dotted="true" />
+ <sodipodi:guide
+ position="24,64"
+ orientation="1,0"
+ id="guide877"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="116,64"
+ orientation="1,0"
+ id="guide879"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,120"
+ orientation="0,1"
+ id="guide881"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,12"
+ orientation="0,1"
+ id="guide883"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="8,64"
+ orientation="1,0"
+ id="guide885"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="128,64"
+ orientation="1,0"
+ id="guide887"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,0"
+ orientation="0,1"
+ id="guide897"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,24"
+ orientation="0,1"
+ id="guide899"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="256,256"
+ orientation="-0.70710678,0.70710678"
+ id="guide950"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ <sodipodi:guide
+ position="64,64"
+ orientation="0.70710678,0.70710678"
+ id="guide952"
+ inkscape:locked="false"
+ inkscape:label=""
+ inkscape:color="rgb(0,0,255)" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="App Icon"
+ inkscape:groupmode="layer"
+ style="display:inline"
+ transform="translate(0,-172)">
+ <g
+ inkscape:groupmode="layer"
+ id="layer9"
+ inkscape:label="icons"
+ style="display:inline">
+ <g
+ id="g1050">
+ <rect
+ style="display:inline;opacity:1;fill:url(#linearGradient1640);fill-opacity:1;stroke:none;stroke-width:0.24999999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.99999995, 0.49999997;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="rect1025"
+ width="112"
+ height="24"
+ x="8"
+ y="264"
+ rx="8"
+ ry="8" />
+ <rect
+ ry="8.8421059"
+ rx="8"
+ y="200"
+ x="8"
+ height="83.999992"
+ width="112"
+ id="rect927-7"
+ style="display:inline;opacity:1;fill:#ed333b;fill-opacity:1;stroke:none;stroke-width:0.26282874;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.05131493, 0.52565746;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path1083-9"
+ d="m 36,281.99999 h 56 l -4,-10 H 40 Z"
+ style="display:inline;fill:#5e5c64;fill-opacity:1;stroke:#5e5c64;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;enable-background:new"
+ clip-path="none" />
+ <rect
+ y="282"
+ x="32"
+ height="6.0000076"
+ width="64"
+ id="rect915"
+ style="display:inline;opacity:1;fill:#424048;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path1203-6"
+ d="m 24,207.99999 h 80 l 8,8 V 268 H 16 v -52.00001 z"
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.24999997;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.99999998, 0.49999998;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <g
+ id="g1565"
+ style="display:inline;enable-background:new"
+ transform="translate(0,7.999989)">
+ <rect
+ style="display:inline;opacity:1;fill:#424048;fill-opacity:1;stroke:none;stroke-width:1.06904471;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="rect1050"
+ width="96"
+ height="31.999985"
+ x="16"
+ y="216.00002" />
+ <circle
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.24999999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.99999996, 0.49999998;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="path1060-5"
+ cx="39.999992"
+ cy="232"
+ r="6" />
+ <circle
+ r="6"
+ cy="232"
+ cx="87.999992"
+ id="circle1062-6"
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.24999999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.99999996, 0.49999998;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;fill:#949390;fill-opacity:1;stroke:none;stroke-width:3.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:11.19999981;stroke-opacity:1;enable-background:new"
+ id="rect1271-3"
+ width="24"
+ height="12"
+ x="51.999992"
+ y="226" />
+ <path
+ transform="matrix(0.25,0,0,0.25,-4.5e-6,225.00001)"
+ style="display:inline;opacity:0.5;fill:#424048;fill-opacity:1;stroke:none;stroke-width:0.99999982;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:3.99999983, 1.99999994;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ clip-path="url(#clipPath904)"
+ d="M 272,28 C 272,89.855892 221.85589,140 160,140 98.144108,140 48,89.855892 48,28 48,-33.855892 98.144108,-84 160,-84 c 61.85589,0 112,50.144108 112,112 z"
+ id="ellipse900"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssss" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Polari.svg b/benchmarks/hicolor-apps/org.gnome.Polari.svg
new file mode 100644
index 00000000..b8aed590
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Polari.svg
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="44" x2="124" y1="105.999969" y2="105.999969">
+ <stop offset="0" stop-color="#c0bfbc"/>
+ <stop offset="0.05" stop-color="#e4e3e2"/>
+ <stop offset="0.1" stop-color="#c0bfbc"/>
+ <stop offset="0.875" stop-color="#c0bfbc"/>
+ <stop offset="0.9375" stop-color="#e4e3e2"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="4" x2="84" y1="82" y2="82">
+ <stop offset="0" stop-color="#1f8556"/>
+ <stop offset="0.05" stop-color="#33d17a"/>
+ <stop offset="0.1" stop-color="#26a269" stop-opacity="0.973791"/>
+ <stop offset="0.875" stop-color="#26a269" stop-opacity="0.972178"/>
+ <stop offset="0.9375" stop-color="#33d17a"/>
+ <stop offset="1" stop-color="#1f8456"/>
+ </linearGradient>
+ <filter id="c" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="d">
+ <g filter="url(#c)">
+ <rect fill-opacity="0.35" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="e">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <path d="m 108.1875 94 v 26 l -26 -26 z m 0 0" fill="#f6f5f4" fill-rule="evenodd"/>
+ <path d="m 116 36 h -64 c -4.417969 0 -8 3.582031 -8 8 v 52 c 0 4.417969 3.582031 8 8 8 h 64 c 4.417969 0 8 -3.582031 8 -8 v -52 c 0 -4.417969 -3.582031 -8 -8 -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 124 92 v 4 c 0 4.433594 -3.566406 8 -8 8 h -8 v -4 h 8 c 4.433594 0 8 -3.566406 8 -8 z m -80 0 c 0 4.433594 3.566406 8 8 8 h 40 l 16 16 v 4 l -16 -16 h -40 c -4.433594 0 -8 -3.566406 -8 -8 z m 0 0" fill="url(#a)" fill-rule="evenodd"/>
+ <path d="m 20 70 v 26 l 26 -26 z m 0 0" fill="#33d17a" fill-rule="evenodd"/>
+ <path d="m 12 12 h 64 c 4.417969 0 8 3.582031 8 8 v 52 c 0 4.417969 -3.582031 8 -8 8 h -64 c -4.417969 0 -8 -3.582031 -8 -8 v -52 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#33d17a"/>
+ <path d="m 4 68 v 4 c 0 4.433594 3.566406 8 8 8 h 8 v -4 h -8 c -4.433594 0 -8 -3.566406 -8 -8 z m 80 0 c 0 4.433594 -3.566406 8 -8 8 h -40 l -16 16 v 4 l 16 -16 h 40 c 4.433594 0 8 -3.566406 8 -8 z m 0 0" fill="url(#b)" fill-rule="evenodd"/>
+ <g fill="#ffffff">
+ <path d="m 36 28 h 4 v 32 h -4 z m 0 0"/>
+ <path d="m 48 28 h 4 v 32 h -4 z m 0 0"/>
+ <path d="m 60 36 v 4 h -32 v -4 z m 0 0"/>
+ <path d="m 60 48 v 4 h -32 v -4 z m 0 0"/>
+ </g>
+ <g clip-path="url(#e)" fill="#241f31" mask="url(#d)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 182 18 v 7 c 0 1.644531 -1.355469 3 -3 3 h -4.585938 l -1 1 h 8.585938 c 1.109375 0 2 -0.890625 2 -2 v -7 c 0 -1.109375 -0.890625 -2 -2 -2 z m 0 0"/>
+ <path d="m 181 29 v 3 l -3 -3 z m 0 0"/>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Quadrapassel.svg b/benchmarks/hicolor-apps/org.gnome.Quadrapassel.svg
new file mode 100644
index 00000000..c7aca273
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Quadrapassel.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="12" x2="90" y1="103.5" y2="103.5">
+ <stop offset="0" stop-color="#613583"/>
+ <stop offset="0.0563751" stop-color="#9a67c2"/>
+ <stop offset="0.117368" stop-color="#4f2b6b"/>
+ <stop offset="1" stop-color="#613583"/>
+ </linearGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="38" x2="116" y1="41" y2="41">
+ <stop offset="0" stop-color="#a51d2d"/>
+ <stop offset="0.492934" stop-color="#ad1d2e"/>
+ <stop offset="0.667396" stop-color="#b5161d"/>
+ <stop offset="1" stop-color="#891825"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#e6313a"/>
+ <stop offset="1" stop-color="#e01b24"/>
+ </linearGradient>
+ <radialGradient id="d" cx="89.428604" cy="209.5" gradientTransform="matrix(1.22483 0 0 1.177721 -32.534786 -209.732525)" r="12.999999" xlink:href="#c"/>
+ <linearGradient id="e" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#ca7ad3"/>
+ <stop offset="1" stop-color="#b950c5"/>
+ </linearGradient>
+ <radialGradient id="f" cx="63.082397" cy="284.5" gradientTransform="matrix(1.360565 0 0 1.308236 -9.014138 -260.193016)" r="13" xlink:href="#e"/>
+ <radialGradient id="g" cx="102.691338" cy="222.762726" gradientTransform="matrix(1.269616 0 0 1.220785 -27.37855 -209.945354)" r="12.999999" xlink:href="#c"/>
+ <radialGradient id="h" cx="75.747078" cy="209.5" gradientTransform="matrix(1.577321 0 0 1.516655 -69.298424 -280.739143)" r="12.999999" xlink:href="#c"/>
+ <radialGradient id="i" cx="44.109741" cy="265.390289" gradientTransform="matrix(1.360565 0 0 1.308236 -9.014138 -260.193016)" r="13" xlink:href="#e"/>
+ <radialGradient id="j" cx="43.815365" cy="284.5" gradientTransform="matrix(1.360565 0 0 1.308236 -9.014138 -260.193016)" r="13" xlink:href="#e"/>
+ <radialGradient id="k" cx="102.369911" cy="209.5" gradientTransform="matrix(1.317937 0 0 1.267247 -32.547142 -228.488205)" r="12.999999" xlink:href="#c"/>
+ <radialGradient id="l" cx="25.000038" cy="284.5" gradientTransform="matrix(1.360565 0 0 1.308236 -9.014138 -260.193016)" r="13" xlink:href="#e"/>
+ <path d="m 12 91 v 17 c 0 4.433594 3.566406 8 8 8 h 70 v -25 z m 0 0" fill="url(#a)"/>
+ <path d="m 38 16 v 25 h 52 v -25 z m 52 25 v 25 h 26 v -25 z m 0 0" fill="url(#b)"/>
+ <path d="m 64 14 l 2.003906 -2 h 22.011719 l 1.984375 2 v 23 h -26 z m 0 0" fill="url(#d)"/>
+ <path d="m 64 89 l 1.90625 -2 h 24.09375 v 25 h -26 z m 0 0" fill="url(#f)"/>
+ <path d="m 90 41 v -25 h 18 c 4.433594 0 8 3.566406 8 8 v 17 z m 0 0" fill="#a51d2d"/>
+ <path d="m 90 37 h 26 v 25 h -26 z m 0 0" fill="url(#g)"/>
+ <path d="m 38 12 h 24.015625 l 1.984375 2 v 23 h -26 z m 0 0" fill="url(#h)"/>
+ <path d="m 38 62 h 26 v 25 h -26 z m 0 0" fill="url(#i)"/>
+ <path d="m 38 87 h 26 v 25 h -26 z m 0 0" fill="url(#j)"/>
+ <path d="m 90 37 v -23 l 2.003906 -2 h 15.996094 c 4.433594 0 8 3.566406 8 8 v 17 z m 0 0" fill="url(#k)"/>
+ <path d="m 38 89 v 23 h -18 c -4.433594 0 -8 -3.566406 -8 -8 v -17 h 24.058594 z m 0 0" fill="url(#l)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Reversi.svg b/benchmarks/hicolor-apps/org.gnome.Reversi.svg
new file mode 100644
index 00000000..44f4132b
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Reversi.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="12.900615" x2="116.619713" y1="113.702301" y2="113.702301">
+ <stop offset="0" stop-color="#26a269"/>
+ <stop offset="0.0527726" stop-color="#2abb6a"/>
+ <stop offset="0.102445" stop-color="#208556"/>
+ <stop offset="0.902314" stop-color="#1d7b50"/>
+ <stop offset="0.966656" stop-color="#17623f"/>
+ <stop offset="1" stop-color="#26a269"/>
+ </linearGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#c0bfbc"/>
+ <stop offset="0.454545" stop-color="#c0bebb"/>
+ <stop offset="0.909091" stop-color="#6d6b66"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <linearGradient id="c" x1="54" x2="76" xlink:href="#b" y1="70" y2="70"/>
+ <linearGradient id="d" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#241f31"/>
+ <stop offset="0.291667" stop-color="#413957"/>
+ <stop offset="0.529227" stop-color="#100e16"/>
+ <stop offset="0.8733" stop-color="#5a4c75"/>
+ <stop offset="1" stop-color="#241f31"/>
+ </linearGradient>
+ <linearGradient id="e" x1="88" x2="112" xlink:href="#d" y1="64" y2="64"/>
+ <linearGradient id="f" x1="52" x2="76" xlink:href="#d" y1="98" y2="98"/>
+ <linearGradient id="g" x1="90" x2="112" xlink:href="#b" y1="104" y2="104"/>
+ <path d="m 20 70 h 88 c 4.417969 0 8 3.582031 8 8 v 32 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -32 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 12 c -4.433594 0 -8 3.566406 -8 8 v 84.125 c 0 4.433594 3.566406 8 8 8 h 25.75 l 2.25 -0.125 h 60 c 4.433594 0 8 -3.566406 8 -8 v -84 c 0 -4.433594 -3.566406 -8 -8 -8 h -24 v 2 h -4 v -2 h -32 v 2 h -4 v -2 z m 0 0" fill="#2ec27e"/>
+ <path d="m 12 79 h 104" fill="none" stroke="#26a269" stroke-width="2"/>
+ <path d="m 12 45 h 104" fill="none" stroke="#26a269" stroke-width="2"/>
+ <path d="m 46 14 v 100" fill="none" stroke="#26a269" stroke-width="4"/>
+ <path d="m 82 14 v 100" fill="none" stroke="#26a269" stroke-width="4"/>
+ <path d="m 76 62 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="url(#c)"/>
+ <path d="m 76 60 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="#ffffff"/>
+ <path d="m 112 62 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="url(#e)"/>
+ <path d="m 112 60 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="#3d3846"/>
+ <path d="m 76 96 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="url(#f)"/>
+ <path d="m 76 94 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="#3d3846"/>
+ <path d="m 112 96 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="url(#g)"/>
+ <path d="m 112 94 c 0 6.628906 -5.371094 12 -12 12 s -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 z m 0 0" fill="#ffffff"/>
+ <g fill="#218b5b">
+ <path d="m 12 42 h 32 v 2 h -32 z m 0 0"/>
+ <path d="m 48 42 h 32 v 2 h -32 z m 0 0"/>
+ <path d="m 84 42 h 32 v 2 h -32 z m 0 0"/>
+ <path d="m 12 76 h 32 v 2 h -32 z m 0 0"/>
+ <path d="m 48 76 h 32 v 2 h -32 z m 0 0"/>
+ <path d="m 84 76 h 32 v 2 h -32 z m 0 0"/>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Screenshot.svg b/benchmarks/hicolor-apps/org.gnome.Screenshot.svg
new file mode 100644
index 00000000..b8332758
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Screenshot.svg
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1078">
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="0"
+ id="stop1066" />
+ <stop
+ id="stop1068"
+ offset="0.03571429"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="0.07136531"
+ id="stop1070" />
+ <stop
+ id="stop1072"
+ offset="0.9285714"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0.96428573"
+ id="stop1074" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="1"
+ id="stop1076" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1044">
+ <stop
+ id="stop1040"
+ offset="0"
+ style="stop-color:#1a5fb4;stop-opacity:1" />
+ <stop
+ id="stop1042"
+ offset="1"
+ style="stop-color:#98c1f1;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1034">
+ <stop
+ style="stop-color:#98c1f1;stop-opacity:1"
+ offset="0"
+ id="stop1030" />
+ <stop
+ style="stop-color:#2dc0af;stop-opacity:0.13779527"
+ offset="1"
+ id="stop1032" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient6826">
+ <stop
+ id="stop6822"
+ offset="0"
+ style="stop-color:#50dbb5;stop-opacity:1;" />
+ <stop
+ id="stop6824"
+ offset="1"
+ style="stop-color:#4a86cf;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ r="225"
+ fy="-60.347851"
+ fx="106.66667"
+ cy="-60.347851"
+ cx="106.66667"
+ gradientTransform="matrix(0.21428571,0,0,0.32237036,9.1428574,245.58768)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1018"
+ xlink:href="#linearGradient6826" />
+ <radialGradient
+ r="225"
+ fy="218.27841"
+ fx="276.58823"
+ cy="218.27841"
+ cx="276.58823"
+ gradientTransform="matrix(0.38857143,0,0,0.52385183,-35.474283,148.05445)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1020"
+ xlink:href="#linearGradient1034" />
+ <radialGradient
+ r="225"
+ fy="86.747528"
+ fx="317.76471"
+ cy="86.747528"
+ cx="317.76471"
+ gradientTransform="matrix(0.38857143,0,0,0.2757274,-35.474283,-281.78533)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1038"
+ xlink:href="#linearGradient1044" />
+ <linearGradient
+ y2="-449.39401"
+ x2="536.59589"
+ y1="-449.39401"
+ x1="88.595886"
+ gradientTransform="matrix(0.25,0,0,0.25,-14.148972,400.3485)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1064"
+ xlink:href="#linearGradient1078" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1064);fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1048"
+ width="112.00001"
+ height="76"
+ x="7.9999952"
+ y="212"
+ rx="7.9999995"
+ ry="8" />
+ <text
+ id="text850"
+ y="4"
+ x="-72"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
+ xml:space="preserve"><tspan
+ y="39.390625"
+ x="-72"
+ id="tspan848" /></text>
+ <rect
+ ry="8"
+ rx="7.9999995"
+ y="200.00002"
+ x="7.9999952"
+ height="84"
+ width="112.00001"
+ id="rect929-36-9"
+ style="display:inline;opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="4"
+ y="204.00002"
+ x="12"
+ height="76"
+ width="104"
+ id="rect946-0-7"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ rx="4" />
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#radialGradient1018);fill-opacity:1;stroke:none;stroke-width:0.50000006;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.49999998, 1.00000001;stroke-dashoffset:0;stroke-opacity:0.94881891;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1012"
+ width="96"
+ height="68"
+ x="16"
+ y="208" />
+ <rect
+ transform="scale(1,-1)"
+ style="display:inline;opacity:0.5;vector-effect:none;fill:url(#radialGradient1038);fill-opacity:1;stroke:none;stroke-width:0.50000006;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.49999998, 1.00000001;stroke-dashoffset:0;stroke-opacity:0.94881891;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1036"
+ width="96"
+ height="68"
+ x="16"
+ y="-276" />
+ <rect
+ y="208"
+ x="16"
+ height="68"
+ width="96"
+ id="rect1014"
+ style="display:inline;opacity:0.5;vector-effect:none;fill:url(#radialGradient1020);fill-opacity:1;stroke:none;stroke-width:0.50000006;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.49999998, 1.00000001;stroke-dashoffset:0;stroke-opacity:0.94881891;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ y="208"
+ x="16"
+ height="68"
+ width="96"
+ id="rect1014-5"
+ style="display:inline;opacity:0.24200003;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.50000006;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:0.49999998, 1.00000001;stroke-dashoffset:0;stroke-opacity:0.94881891;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ d="m 60,228 c -1.1,0 -2,0.9 -2,2 v 2 h -6 c -1.104,0 -2,0.9 -2,2 v 16 c 0,1.1 0.896,2 2,2 h 24 c 1.104,0 2,-0.9 2,-2 v -16 c 0,-1.1 -0.896,-2 -2,-2 h -6 v -2 c 0,-1.1 -0.9,-2 -2,-2 z m 4,6 a 8,8 0 1 1 0,16 8,8 0 0 1 0,-16 z m 0,4 a 4,4 0 1 0 0,8 4,4 0 0 0 0,-8 z"
+ style="color:#bebebe;display:inline;overflow:visible;opacity:1;fill:#ffffff;stroke-width:1;marker:none;enable-background:new"
+ overflow="visible"
+ id="path1160" />
+ <g
+ transform="translate(0,12)"
+ style="opacity:0.5"
+ id="g1010">
+ <path
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="M 19,209 V 199 H 29"
+ id="path1171" />
+ <path
+ id="path1173"
+ d="M 109.01415,209 V 199 H 99.014141"
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <path
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="m 109.01415,251.01414 v 10 H 99.014141"
+ id="path1175" />
+ <path
+ id="path1177"
+ d="m 19,251.01414 v 10 h 10"
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Settings.svg b/benchmarks/hicolor-apps/org.gnome.Settings.svg
new file mode 100644
index 00000000..3c908b9d
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Settings.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="64" x2="64" y1="262.5" y2="232">
+ <stop offset="0" stop-color="#9a9996"/>
+ <stop offset="1" stop-color="#77767b"/>
+ </linearGradient>
+ <radialGradient id="b" cx="-243.066583" cy="-74.599978" gradientUnits="userSpaceOnUse" r="28.266656">
+ <stop offset="0" stop-color="#d5d3cf"/>
+ <stop offset="1" stop-color="#949390"/>
+ </radialGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="203.999985" x2="267.999985" y1="-64" y2="-64">
+ <stop offset="0" stop-color="#d5d3cf"/>
+ <stop offset="1" stop-color="#f6f5f4"/>
+ </linearGradient>
+ <g stroke-width="8">
+ <path d="m 67 122 h -6 l -2 -16 h 10 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round"/>
+ <path d="m 61 10 h 6 l 2 16 h -10 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round"/>
+ <path d="m 667.000092 291.999908 h -6 l -2 -16 h 10 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0 1 -1 0 299.999908 -598.000092)"/>
+ <path d="m 661.000092 179.999908 h 6 l 2 16 h -10 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0 1 -1 0 299.999908 -598.000092)"/>
+ <path d="m 666.999051 291.998922 l -5.999272 -0.00042 l -2.001544 -15.998026 l 9.999915 0.000049 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.5 0.866025 -0.866025 -0.5 600.381916 -391.041005)"/>
+ <path d="m 661.001107 180.000804 l 5.999273 0.000419 l 2.001544 15.998026 l -10.003298 0.001905 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.5 0.866025 -0.866025 -0.5 600.381916 -391.041005)"/>
+ <path d="m 667.000347 291.998468 l -5.999273 0.00042 l -2.002482 -16.00035 l 10.003298 0.001905 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.866025 0.5 -0.5 -0.866025 757.040822 -61.618176)"/>
+ <path d="m 660.999745 180.00119 l 5.999273 -0.00042 l 2.002481 16.00035 l -10.003298 -0.001904 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.866025 0.5 -0.5 -0.866025 757.040822 -61.618176)"/>
+ <path d="m 666.999018 291.999047 l -5.999273 -0.00042 l -2.001544 -15.998026 l 10.003298 -0.001904 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.866025 0.5 -0.5 0.866025 -393.040914 -470.382008)"/>
+ <path d="m 661.001074 180.000929 l 5.999273 0.00042 l 2.001543 15.998025 l -10.003298 0.001905 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.866025 0.5 -0.5 0.866025 -393.040914 -470.382008)"/>
+ <path d="m 667.00038 291.998593 l -5.999273 0.00042 l -2.002481 -16.00035 l 10.003298 0.001905 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.5 0.866025 -0.866025 0.5 -63.618084 -627.040914)"/>
+ <path d="m 660.999779 180.001315 l 5.999272 -0.00042 l 1.999099 15.998397 l -9.999915 0.000049 z m 0 0" fill="#9a9996" stroke="#9a9996" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.5 0.866025 -0.866025 0.5 -63.618084 -627.040914)"/>
+ <path d="m 67 120 h -6 l -2 -16 h 10 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round"/>
+ <path d="m 61 8 h 6 l 2 16 h -10 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round"/>
+ <path d="m 667.000092 291.999908 h -6 l -2 -16 h 10 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0 1 -1 0 299.999908 -600.000092)"/>
+ <path d="m 661.000092 179.999908 h 6 l 2 16 h -10 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0 1 -1 0 299.999908 -600.000092)"/>
+ <path d="m 666.999051 291.998922 l -5.999272 -0.00042 l -2.001544 -15.998026 l 9.999915 0.000049 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.5 0.866025 -0.866025 -0.5 600.381916 -393.041005)"/>
+ <path d="m 661.001107 180.000804 l 5.999273 0.000419 l 2.001544 15.998026 l -10.003298 0.001905 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.5 0.866025 -0.866025 -0.5 600.381916 -393.041005)"/>
+ <path d="m 667.000347 291.998468 l -5.999273 0.00042 l -2.002482 -16.00035 l 10.003298 0.001905 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.866025 0.5 -0.5 -0.866025 757.040822 -63.618176)"/>
+ <path d="m 660.999745 180.00119 l 5.999273 -0.00042 l 2.002481 16.00035 l -10.003298 -0.001904 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(-0.866025 0.5 -0.5 -0.866025 757.040822 -63.618176)"/>
+ <path d="m 666.999018 291.999047 l -5.999273 -0.00042 l -2.001544 -15.998026 l 10.003298 -0.001904 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.866025 0.5 -0.5 0.866025 -393.040914 -472.382008)"/>
+ <path d="m 661.001074 180.000929 l 5.999273 0.00042 l 2.001543 15.998025 l -10.003298 0.001905 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.866025 0.5 -0.5 0.866025 -393.040914 -472.382008)"/>
+ <path d="m 667.00038 291.998593 l -5.999273 0.00042 l -2.002481 -16.00035 l 10.003298 0.001905 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.5 0.866025 -0.866025 0.5 -63.618084 -629.040914)"/>
+ <path d="m 660.999779 180.001315 l 5.999272 -0.00042 l 1.999099 15.998397 l -9.999915 0.000049 z m 0 0" fill="#f6f5f4" stroke="#f6f5f4" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.5 0.866025 -0.866025 0.5 -63.618084 -629.040914)"/>
+ </g>
+ <path d="m 100 238 c 0 19.882812 -16.117188 36 -36 36 s -36 -16.117188 -36 -36 s 16.117188 -36 36 -36 s 36 16.117188 36 36 z m 0 0" fill="none" stroke="url(#a)" stroke-width="24" transform="matrix(1 0 0 1 0 -172)"/>
+ <path d="m 102 64 c 0 20.988281 -17.011719 38 -38 38 s -38 -17.011719 -38 -38 s 17.011719 -38 38 -38 s 38 17.011719 38 38 z m 0 0" fill="none" stroke="#f6f5f4" stroke-width="20"/>
+ <path d="m -209.5 -64 c 0 14.636719 -11.863281 26.5 -26.5 26.5 s -26.5 -11.863281 -26.5 -26.5 s 11.863281 -26.5 26.5 -26.5 s 26.5 11.863281 26.5 26.5 z m 0 0" fill="none" stroke="url(#b)" stroke-linecap="square" stroke-linejoin="round" stroke-width="5" transform="matrix(0 -1 -1 0 0 -172)"/>
+ <path d="m 268 -64 c 0 17.671875 -14.328125 32 -32 32 s -32 -14.328125 -32 -32 s 14.328125 -32 32 -32 s 32 14.328125 32 32 z m 0 0" fill="none" stroke="url(#c)" stroke-linecap="square" stroke-linejoin="round" stroke-width="8" transform="matrix(0 1 -1 0 0 -172)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.SimpleScan.svg b/benchmarks/hicolor-apps/org.gnome.SimpleScan.svg
new file mode 100644
index 00000000..4d1836f6
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.SimpleScan.svg
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="128"
+ height="128"
+ id="svg11300"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 128 128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ y2="-256"
+ x2="220"
+ y1="-256"
+ x1="-156"
+ gradientTransform="matrix(0.26040102,0,0,0.28124928,228.62254,9.99973)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1137"
+ xlink:href="#linearGradient1367" />
+ <linearGradient
+ id="linearGradient1367">
+ <stop
+ id="stop1363"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1" />
+ <stop
+ id="stop1365"
+ offset="1"
+ style="stop-color:#424048;stop-opacity:1" />
+ </linearGradient>
+ <radialGradient
+ r="200"
+ fy="88.04454"
+ fx="-72.631592"
+ cy="88.04454"
+ cx="-72.631592"
+ gradientTransform="matrix(0.08037048,0,0,2.3749942,234.08741,-273.1054)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient1139"
+ xlink:href="#linearGradient1184" />
+ <linearGradient
+ id="linearGradient1184">
+ <stop
+ id="stop1180"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ id="stop1182"
+ offset="1"
+ style="stop-color:#d5d3cf;stop-opacity:0" />
+ </linearGradient>
+ <clipPath
+ id="clipPath990"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ ry="0"
+ rx="0"
+ y="-71.789413"
+ x="270.26764"
+ height="229.05319"
+ width="288.00003"
+ id="rect992"
+ style="display:inline;opacity:1;vector-effect:none;fill:#e66100;fill-opacity:1;stroke:none;stroke-width:0.0123119px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </clipPath>
+ <filter
+ height="1.0369858"
+ y="-0.018492892"
+ width="1.4684865"
+ x="-0.23424332"
+ id="filter1020"
+ style="color-interpolation-filters:sRGB">
+ <feGaussianBlur
+ id="feGaussianBlur1022"
+ stdDeviation="2.3424332" />
+ </filter>
+ <linearGradient
+ y2="-242"
+ x2="-16"
+ y1="-243.12489"
+ x1="-74"
+ gradientTransform="matrix(0.93103454,0,0,1.0588258,292.89656,192.23586)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1141"
+ xlink:href="#linearGradient1056" />
+ <linearGradient
+ id="linearGradient1056">
+ <stop
+ id="stop1052"
+ offset="0"
+ style="stop-color:#6bf9f4;stop-opacity:1;" />
+ <stop
+ id="stop1054"
+ offset="1"
+ style="stop-color:#6bf9f4;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ y2="244"
+ x2="24"
+ y1="244"
+ x1="72"
+ gradientTransform="rotate(-90,61,239)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1143"
+ xlink:href="#linearGradient1064" />
+ <linearGradient
+ id="linearGradient1064">
+ <stop
+ id="stop1060"
+ offset="0"
+ style="stop-color:#6bf9f4;stop-opacity:0.48962656" />
+ <stop
+ id="stop1062"
+ offset="1"
+ style="stop-color:#08c5bf;stop-opacity:0.65098041" />
+ </linearGradient>
+ <linearGradient
+ y2="619.96387"
+ x2="583.64319"
+ y1="619.96387"
+ x1="231.99998"
+ gradientTransform="matrix(-0.24999998,0,0,0.24999998,145.99999,125.00905)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1145"
+ xlink:href="#linearGradient1023" />
+ <linearGradient
+ id="linearGradient1023">
+ <stop
+ id="stop1011"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ style="stop-color:#e4e1de;stop-opacity:1"
+ offset="0.04550065"
+ id="stop1013" />
+ <stop
+ id="stop1015"
+ offset="0.09100132"
+ style="stop-color:#b8b4ae;stop-opacity:1" />
+ <stop
+ style="stop-color:#ada9a1;stop-opacity:1"
+ offset="0.91001338"
+ id="stop1017" />
+ <stop
+ id="stop1019"
+ offset="0.95551407"
+ style="stop-color:#e4e1de;stop-opacity:1" />
+ <stop
+ id="stop1021"
+ offset="1"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ </linearGradient>
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-163.25424,1.6271186)"
+ id="g937">
+ <g
+ style="display:inline;enable-background:new"
+ id="g1135"
+ transform="translate(183.25424,-173.62712)">
+ <rect
+ transform="rotate(90)"
+ style="display:inline;opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:0.01184965px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1109"
+ width="111.91078"
+ height="87.999786"
+ x="180"
+ y="-88"
+ rx="7.9999995"
+ ry="8.7999821" />
+ <g
+ transform="rotate(-180,54.000023,234)"
+ id="g1131">
+ <rect
+ ry="4.75"
+ rx="4.75"
+ y="-100"
+ x="188"
+ height="72"
+ width="92"
+ id="rect1111"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1137);fill-opacity:1;stroke:none;stroke-width:0.01231192px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="rotate(90)" />
+ <rect
+ ry="0"
+ rx="0"
+ y="-100"
+ x="188"
+ height="72"
+ width="92"
+ id="rect1113"
+ style="display:inline;opacity:0.48600003;vector-effect:none;fill:url(#radialGradient1139);fill-opacity:1;stroke:none;stroke-width:0.01205269px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="rotate(90)" />
+ <path
+ clip-path="url(#clipPath990)"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#6bf9f4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.85640621;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter1020);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ d="m 372.26766,-113.05191 v 304 h 24 v -304 z"
+ id="path1115"
+ transform="matrix(1.7947455e-8,0.33333331,-0.31425019,0,77.44022,97.91079)" />
+ <rect
+ y="36"
+ x="-228"
+ height="60"
+ width="4"
+ id="rect1117"
+ style="opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="rotate(-90)" />
+ <rect
+ transform="rotate(90)"
+ style="display:inline;opacity:0.8;vector-effect:none;fill:url(#linearGradient1141);fill-opacity:1;stroke:none;stroke-width:0.01222421px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1119"
+ width="54"
+ height="72.000076"
+ x="224"
+ y="-100.00006"
+ rx="0"
+ ry="0" />
+ <path
+ style="opacity:1;fill:url(#linearGradient1143);fill-opacity:1;stroke:#abebe9;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 95,227 v 46 c 0,0 0,2 -2,2 H 35 c -2,0 -2,-2 -2,-2 v -46"
+ id="path1121" />
+ <g
+ transform="matrix(0,-1,-1,0,306,300)"
+ id="g1127">
+ <path
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.50000006;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ clip-path="none"
+ d="m 74,210 v 64 h 12 l 9,-15 13,-7 v -39 c 0,-3 -3,-3 -3,-3 z"
+ id="path1123" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:0.50000006;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ d="M 108,252 H 89 c 0,0 -3,0 -3,3 v 19 z"
+ id="path1125" />
+ </g>
+ <path
+ id="path1129"
+ d="M 100.00006,224 H 27.99998 v 4 h 72.00008 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.89331603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
+ clip-path="none" />
+ </g>
+ <path
+ id="path1133"
+ d="m 87.99998,280.00001 1e-5,4.00001 c 1e-5,4.43197 -3.56799,7.99999 -8,7.99999 l -71.999997,1e-5 c -4.431989,0 -7.999992,-3.56801 -7.999995,-8.00001 l -3e-6,-3.99997 C 3e-6,284.43201 3.568004,288 8,288 l 72.00001,3e-5 c 4.43199,0 7.99999,-3.56802 7.99997,-8.00002 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1145);fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Social.svg b/benchmarks/hicolor-apps/org.gnome.Social.svg
new file mode 100644
index 00000000..16b10dc4
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Social.svg
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="29.692505" x2="45.641838" y1="101.648793" y2="97.183766">
+ <stop offset="0" stop-color="#5e5c64"/>
+ <stop offset="0.5" stop-color="#77767b"/>
+ <stop offset="1" stop-color="#5e5c64"/>
+ </linearGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="4.000027" x2="4.000027" y1="59.869954" y2="75.869954">
+ <stop offset="0" stop-color="#5e5c64"/>
+ <stop offset="0.5" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#5e5c64"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#c01c28"/>
+ <stop offset="0.25" stop-color="#e01b24"/>
+ <stop offset="0.5" stop-color="#f66151"/>
+ <stop offset="0.75" stop-color="#c01c28"/>
+ <stop offset="1" stop-color="#a51d2d"/>
+ </linearGradient>
+ <linearGradient id="d" gradientTransform="matrix(1 0 0 1.052632 -0.999973 -178.452303)" x1="32" x2="32" xlink:href="#c" y1="192" y2="276"/>
+ <linearGradient id="e" gradientUnits="userSpaceOnUse" x1="108.000027" x2="108.000027" y1="51.868165" y2="83.868165">
+ <stop offset="0" stop-color="#3d3846"/>
+ <stop offset="0.5" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#5e5c64"/>
+ </linearGradient>
+ <linearGradient id="f" gradientUnits="userSpaceOnUse" x1="64.000027" x2="64.000027" y1="24.00002" y2="112.000035">
+ <stop offset="0" stop-color="#deddda"/>
+ <stop offset="0.25" stop-color="#deddda"/>
+ <stop offset="0.5" stop-color="#ffffff"/>
+ <stop offset="0.75" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#9a9996"/>
+ </linearGradient>
+ <linearGradient id="g" gradientTransform="matrix(-1 0 0 1 209.000027 -166.99998)" x1="97" x2="97" xlink:href="#c" y1="191" y2="279"/>
+ <path d="m 29 69.128907 h 11 l 7 24 h -11 z m 0 0" fill="#5e5c64" stroke="#3d3846" stroke-linecap="round" stroke-linejoin="round" stroke-width="6"/>
+ <path d="m 28 82.128906 c -2 0 -3.441406 1.917969 -2.878906 3.839844 l 7 24 c 0.371094 1.28125 1.546875 2.160156 2.878906 2.160156 h 11 c 2 0 3.441406 -1.917968 2.882812 -3.839844 l -7 -24 c -0.375 -1.28125 -1.550781 -2.160156 -2.882812 -2.160156 z m 0 0" fill="url(#a)"/>
+ <path d="m 30.910156 52 c -0.214844 0.007812 -0.429687 0.035156 -0.636718 0.089844 l -20 5 c -1.335938 0.332031 -2.273438 1.53125 -2.273438 2.910156 v 16 c 0 1.375 0.9375 2.574219 2.273438 2.910156 l 20 5 c 1.890624 0.472656 3.726562 -0.960937 3.726562 -2.910156 v -26 c 0 -1.691406 -1.398438 -3.050781 -3.089844 -3 z m 0 0" fill="url(#b)"/>
+ <g fill-opacity="0.390863">
+ <path d="m 8 59.871094 h 12 v 2 h -12 z m 0 0"/>
+ <path d="m 8 65.871094 h 12 v 4 h -12 z m 0 0"/>
+ <path d="m 8 73.871094 h 12 v 2 h -12 z m 0 0"/>
+ </g>
+ <path d="m 20 48 h 26 c 3.3125 0 6 2.6875 6 6 v 28 c 0 3.3125 -2.6875 6 -6 6 h -26 c -3.3125 0 -6 -2.6875 -6 -6 v -28 c 0 -3.3125 2.6875 -6 6 -6 z m 0 0" fill="url(#d)"/>
+ <path d="m 96.941406 52.996094 c -1.632812 0.035156 -2.941406 1.367187 -2.941406 3 v 24 c 0 2.125 2.144531 3.574218 4.113281 2.785156 l 20 -8 c 1.140625 -0.453125 1.886719 -1.554688 1.886719 -2.785156 v -8 c 0 -1.226563 -0.746094 -2.328125 -1.886719 -2.785156 l -20 -8 c -0.371093 -0.148438 -0.769531 -0.21875 -1.171875 -0.214844 z m 0 0" fill="url(#e)"/>
+ <path d="m 104 24.402344 c -8.804688 8.726562 -44 23.597656 -65 23.597656 h -3 v 40 l 3 0.128906 c 21 0 56.195312 14.992188 65 23.730469 z m 0 0" fill="url(#f)"/>
+ <path d="m 104.0625 21.945312 c 2.207031 0.03125 3.96875 1.847657 3.9375 4.054688 v 84.261719 c 0.078125 5.40625 -8.078125 5.40625 -8 0 v -84.261719 c -0.03125 -2.253906 1.804688 -4.089844 4.0625 -4.054688 z m 0 0" fill="url(#g)"/>
+ <path d="m 104.0625 21.945312 c 0.316406 0.003907 0.628906 0.046876 0.9375 0.128907 c -1.785156 0.460937 -3.023438 2.082031 -3 3.925781 v 84.261719 c -0.023438 1.84375 1.214844 3.464843 3.003906 3.925781 c -2.554687 0.660156 -5.039062 -1.289062 -5.003906 -3.925781 v -84.261719 c -0.03125 -2.253906 1.804688 -4.089844 4.0625 -4.054688 z m 0 0" fill-opacity="0.304569"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Software.svg b/benchmarks/hicolor-apps/org.gnome.Software.svg
new file mode 100644
index 00000000..fd973d81
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Software.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="36" x2="60" y1="68" y2="68">
+ <stop offset="0" stop-color="#ed336c"/>
+ <stop offset="1" stop-color="#ffa348"/>
+ </linearGradient>
+ <linearGradient id="b" gradientTransform="matrix(0 1 -1 0 144 -32)" gradientUnits="userSpaceOnUse" x1="72" x2="96" y1="68" y2="68">
+ <stop offset="0" stop-color="#404ce6"/>
+ <stop offset="1" stop-color="#c061cb"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="68.84919" x2="95.257637" y1="84" y2="84">
+ <stop offset="0" stop-color="#33d1c6"/>
+ <stop offset="1" stop-color="#1c25d8"/>
+ </linearGradient>
+ <path d="m 44 16 l 8 -8 h 24 l 8 8 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 52 8 l -8 8 v 16 h 8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 76 8 l 8 8 v 16 h -8 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 16 72 h 96 c 4.417969 0 8 3.582031 8 8 v 28 c 0 4.417969 -3.582031 8 -8 8 h -96 c -4.417969 0 -8 -3.582031 -8 -8 v -28 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 8 28 h 112 v 80 h -112 z m 0 0" fill="#e5e5e1"/>
+ <path d="m 8 68 h 112 v 40 h -112 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 44 56 h 8 c 4.417969 0 8 3.582031 8 8 v 8 c 0 4.417969 -3.582031 8 -8 8 h -8 c -4.417969 0 -8 -3.582031 -8 -8 v -8 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 76 64 c -6.628906 0 -12 -5.371094 -12 -12 s 5.371094 -12 12 -12 s 12 5.371094 12 12 s -5.371094 12 -12 12 z m 0 0" fill="url(#b)"/>
+ <path d="m 82.789062 70.976562 l -17.578124 10.046876 c -1.070313 0.609374 -1.730469 1.746093 -1.730469 2.976562 s 0.660156 2.367188 1.730469 2.976562 l 17.578124 10.046876 c 1.078126 0.617187 2.402344 0.609374 3.476563 -0.011719 c 1.074219 -0.625 1.734375 -1.769531 1.734375 -3.011719 v -20 c 0 -1.242188 -0.660156 -2.386719 -1.734375 -3.011719 c -1.074219 -0.621093 -2.398437 -0.628906 -3.476563 -0.011719 z m 0 0" fill="url(#c)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Solanum.svg b/benchmarks/hicolor-apps/org.gnome.Solanum.svg
new file mode 100644
index 00000000..f4c0cced
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Solanum.svg
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <radialGradient id="a" cx="6.258836" cy="209.612839" gradientTransform="matrix(1.602484 0 0 1.385332 53.970314 -258.687576)" gradientUnits="userSpaceOnUse" r="50.829514">
+ <stop offset="0" stop-color="#f88073"/>
+ <stop offset="0.381631" stop-color="#ed333b"/>
+ <stop offset="0.763262" stop-color="#e01b24"/>
+ <stop offset="1" stop-color="#c91820"/>
+ </radialGradient>
+ <radialGradient id="b" cx="6.258836" cy="209.612839" gradientTransform="matrix(1.730063 0 0 1.688619 59.171822 -316.260529)" gradientUnits="userSpaceOnUse" r="50.829514">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset="0.8" stop-opacity="0"/>
+ <stop offset="1" stop-opacity="0.215036"/>
+ </radialGradient>
+ <radialGradient id="c" cx="70" cy="70" gradientUnits="userSpaceOnUse" r="60">
+ <stop offset="0" stop-color="#6a131d"/>
+ <stop offset="1" stop-color="#6a131d" stop-opacity="0"/>
+ </radialGradient>
+ <filter id="d" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="e">
+ <g filter="url(#d)">
+ <rect fill-opacity="0.4" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="f">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <mask id="g">
+ <g filter="url(#d)">
+ <rect fill-opacity="0.3" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="h">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <linearGradient id="i" gradientUnits="userSpaceOnUse" x1="55.823467" x2="67.148338" y1="17.71727" y2="17.71727">
+ <stop offset="0" stop-color="#26a269"/>
+ <stop offset="1" stop-color="#33d17a" stop-opacity="0"/>
+ </linearGradient>
+ <linearGradient id="j" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#33d17a"/>
+ <stop offset="1" stop-color="#26a269"/>
+ </linearGradient>
+ <radialGradient id="k" cx="49.988583" cy="183.141083" gradientTransform="matrix(2.640409 -0.635159 0.105145 0.437096 -96.300438 -40.036572)" r="12.205009" xlink:href="#j"/>
+ <radialGradient id="l" cx="73.865631" cy="175.690613" gradientTransform="matrix(1.924012 0.737729 -0.183483 0.478528 -37.137781 -132.251106)" r="11.511721" xlink:href="#j"/>
+ <path d="m 124 64 c 0 33.136719 -26.863281 60 -60 60 s -60 -26.863281 -60 -60 s 26.863281 -60 60 -60 s 60 26.863281 60 60 z m 0 0" fill="url(#a)"/>
+ <path d="m 130 70 c 0 33.136719 -26.863281 60 -60 60 s -60 -26.863281 -60 -60 s 26.863281 -60 60 -60 s 60 26.863281 60 60 z m 0 0" fill="url(#b)" stroke="url(#c)" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" transform="matrix(1 0 0 1 -6 -6)"/>
+ <g clip-path="url(#f)" mask="url(#e)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 99.152344 62.847656 l -32.546875 16.433594 c -0.023438 0.011719 -0.042969 0.023438 -0.066407 0.03125 l -0.074218 0.039062 c -1.085938 0.566407 -2.082032 1.296876 -2.949219 2.164063 c -4.683594 4.6875 -4.683594 12.28125 0 16.96875 c 4.6875 4.683594 12.28125 4.683594 16.96875 0 c 0.867187 -0.867187 1.597656 -1.863281 2.164063 -2.953125 l 0.011718 -0.023438 c 0.046875 -0.085937 0.089844 -0.171874 0.128906 -0.261718 z m 0 0"/>
+ </g>
+ <path d="m 72.484375 63.515625 c 4.6875 4.683594 4.6875 12.285156 0 16.96875 c -4.683594 4.6875 -12.285156 4.6875 -16.96875 0 c -4.6875 -4.683594 -4.6875 -12.285156 0 -16.96875 c 4.683594 -4.6875 12.285156 -4.6875 16.96875 0 z m 0 0" fill="#ffffff"/>
+ <path d="m 91.152344 44.847656 l -32.6875 16.503906 l 7.230468 8.953126 l 8.953126 7.230468 z m 0 0" fill="#ffffff"/>
+ <path d="m 67.394531 68.605469 c 1.875 1.875 1.875 4.914062 0 6.789062 s -4.914062 1.875 -6.789062 0 s -1.875 -4.914062 0 -6.789062 s 4.914062 -1.875 6.789062 0 z m 0 0" fill="#241f31"/>
+ <g clip-path="url(#h)" mask="url(#g)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 62.621094 20.722656 c -8.429688 2.757813 -15.136719 2.136719 -20.222656 14.660156 c 6.792968 -5.554687 16.167968 -6.34375 21.910156 -8.355468 c -2.644532 13.375 6.210937 18.035156 9.554687 20.738281 c -2.34375 -9.613281 -2.261719 -16.496094 3.488281 -19.980469 c 9.734376 9.90625 16.667969 6.765625 21.800782 5.324219 c -4.625 -1.921875 -9.484375 -1.933594 -16.25 -10.015625 c -0.386719 -0.460938 11.464844 1.148438 14.222656 2.421875 c -1.691406 -2.574219 -13.652344 -5.742187 -13.851562 -5.996094 c -3.039063 -0.96875 -11.265626 -1.921875 -20.652344 1.203125 z m 0 0"/>
+ </g>
+ <path d="m 54.621094 3.253906 c -4.058594 0.859375 -15.136719 1.605469 -20.222656 14.128906 c 6.792968 -5.554687 16.167968 -6.34375 21.910156 -8.355468 c -2.644532 13.375 6.210937 17.035156 9.554687 19.738281 c -2.34375 -9.613281 -2.261719 -15.496094 3.488281 -18.980469 c 9.734376 9.90625 17.886719 6.175782 23.015626 4.734375 c -4.621094 -1.921875 -10.699219 -1.34375 -17.464844 -9.425781 c -0.386719 -0.460938 11.464844 3.148438 14.222656 4.421875 c -1.691406 -2.574219 -9.542969 -5.046875 -13.851562 -6.464844 c -4.308594 -1.417969 -14.671876 -1.058593 -20.652344 0.203125 z m 0 0" fill="#33d17a"/>
+ <path d="m 66.859375 1.714844 l -2.53125 -0.835938 s -3.246094 3.128906 -3.714844 3.523438 c -0.808593 0.691406 6.738281 1.816406 7.671875 1.316406 l -0.800781 -3.242188 z m 0 0" fill="#26a269"/>
+ <path d="m 56.308594 9.027344 c -2.644532 13.375 6.210937 17.035156 9.554687 19.738281 c -2.34375 -9.613281 -2.261719 -15.496094 3.488281 -18.980469 c -4.058593 -2.054687 -9.566406 -7.082031 -13.042968 -0.757812 z m 0 0" fill="url(#i)"/>
+ <path d="m 54.621094 3.253906 c -4.058594 0.859375 -15.136719 1.605469 -20.222656 14.128906 c 6.792968 -5.554687 16.167968 -6.34375 21.910156 -8.355468 c -0.40625 -1.972656 6.871094 -6.234375 -1.6875 -5.773438 z m 0 0" fill="url(#k)"/>
+ <path d="m 69.351562 9.785156 c 9.734376 9.90625 17.886719 6.175782 23.015626 4.734375 c -4.621094 -1.921875 -10.699219 -1.34375 -17.464844 -9.425781 c -2.96875 -1.351562 -5.742188 0.160156 -5.550782 4.691406 z m 0 0" fill="url(#l)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Sudoku.svg b/benchmarks/hicolor-apps/org.gnome.Sudoku.svg
new file mode 100644
index 00000000..9c68408c
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Sudoku.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientTransform="matrix(0.232143 0 0 0.328947 -8.566925 267.826965)" gradientUnits="userSpaceOnUse" x1="88.595886" x2="536.595886" y1="-449.394012" y2="-449.394012">
+ <stop offset="0" stop-color="#c0bfbc"/>
+ <stop offset="0.0384615" stop-color="#f6f5f4"/>
+ <stop offset="0.0768555" stop-color="#c0bfbc"/>
+ <stop offset="0.923077" stop-color="#deddda"/>
+ <stop offset="0.961538" stop-color="#c0bfbc"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <radialGradient id="b" cx="-256" cy="311.779755" gradientTransform="matrix(1 0 0 0.607197 368 -71.31176)" gradientUnits="userSpaceOnUse" r="52.002365">
+ <stop offset="0" stop-opacity="0.052532"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <path d="m 20 20 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20.496094 51.847656 c -4.699219 0 -8.5 3.800782 -8.5 8.5 v 50.152344 c 0 4.699219 3.800781 8.5 8.5 8.5 h 87.003906 c 4.699219 0 8.5 -3.800781 8.5 -8.5 v -50.152344 c 0 -4.699218 -3.800781 -8.5 -8.5 -8.5 z m 0 1 h 87.003906 c 3.109375 0 5.761719 1.863282 6.898438 4.542969 c -1.539063 -2.144531 -4.050782 -3.542969 -6.898438 -3.542969 h -87.003906 c -2.847656 0 -5.359375 1.398438 -6.902344 3.542969 c 1.140625 -2.679687 3.792969 -4.542969 6.902344 -4.542969 z m 0 2 h 87.003906 c 3.109375 0 5.761719 1.863282 6.898438 4.542969 c -1.539063 -2.144531 -4.050782 -3.542969 -6.898438 -3.542969 h -87.003906 c -2.847656 0 -5.359375 1.398438 -6.902344 3.542969 c 1.140625 -2.679687 3.792969 -4.542969 6.902344 -4.542969 z m 0 2 h 87.003906 c 4.164062 0 7.5 3.335938 7.5 7.5 v 42.152344 c 0 4.164062 -3.335938 7.5 -7.5 7.5 h -87.003906 c -4.164063 0 -7.5 -3.335938 -7.5 -7.5 v -42.152344 c 0 -4.164062 3.335937 -7.5 7.5 -7.5 z m -6.902344 54.609375 c 1.542969 2.144531 4.054688 3.542969 6.902344 3.542969 h 87.003906 c 2.847656 0 5.359375 -1.398438 6.898438 -3.542969 c -1.136719 2.679688 -3.789063 4.542969 -6.898438 4.542969 h -87.003906 c -3.109375 0 -5.761719 -1.863281 -6.902344 -4.542969 z m 0 2 c 1.542969 2.144531 4.054688 3.542969 6.902344 3.542969 h 87.003906 c 2.847656 0 5.359375 -1.398438 6.898438 -3.542969 c -1.136719 2.679688 -3.789063 4.542969 -6.898438 4.542969 h -87.003906 c -3.109375 0 -5.761719 -1.863281 -6.902344 -4.542969 z m 0 0" fill="url(#b)"/>
+ <path d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 84 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -84 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#deddda"/>
+ <path d="m 65.28125 27.5625 h -1.242188 l 0.238282 -2.894531 h 6.355468 v -2.828125 h -9.292968 l -0.78125 8.574218 h 3.894531 c 2.761719 0 3.546875 0.78125 3.546875 1.980469 c 0 1.238281 -1.089844 1.980469 -2.851562 1.980469 c -1.585938 0 -3.175782 -0.5 -4.328126 -1.371094 l -1.394531 2.699219 c 1.480469 1.042969 3.699219 1.628906 5.8125 1.628906 c 4.351563 0 6.332031 -2.347656 6.332031 -5.046875 c 0 -2.699218 -1.785156 -4.722656 -6.289062 -4.722656 z m 0 0" fill="#241f31"/>
+ <g fill="#62a0ea">
+ <path d="m 26 46 h 78 v 2 h -78 z m 0 0"/>
+ <path d="m 26 78 h 78 v 2 h -78 z m 0 0"/>
+ <path d="m 50 24 v 78 h -2 v -78 z m 0 0"/>
+ <path d="m 82 24 v 78 h -2 v -78 z m 0 0"/>
+ </g>
+ <path d="m 50 48 h 30 v 30 h -30 z m 0 0" fill="#99c1f1"/>
+ <path d="m 57.730469 54.050781 v 6.324219 h 3.699219 v -2.929688 h 5.964843 l -6.453125 14.597657 h 4.523438 l 6.683594 -15.292969 v -2.699219 z m 0 0" fill="#ffffff"/>
+ <path d="m 101.242188 29.066406 c 1.128906 -0.699218 1.78125 -1.765625 1.78125 -3.136718 c 0 -2.675782 -2.390626 -4.351563 -5.894532 -4.351563 c -3.460937 0 -5.855468 1.675781 -5.855468 4.351563 c 0 1.371093 0.632812 2.4375 1.761718 3.136718 c -1.457031 0.738282 -2.304687 1.957032 -2.304687 3.589844 c 0 2.871094 2.546875 4.675781 6.398437 4.675781 c 3.871094 0 6.441406 -1.804687 6.441406 -4.675781 c 0 -1.632812 -0.851562 -2.851562 -2.328124 -3.589844 z m -4.113282 -4.898437 c 1.433594 0 2.390625 0.71875 2.390625 1.914062 c 0 1.15625 -0.933593 1.871094 -2.390625 1.871094 c -1.4375 0 -2.351562 -0.714844 -2.351562 -1.871094 c 0 -1.195312 0.9375 -1.914062 2.351562 -1.914062 z m 0 10.574219 c -1.742187 0 -2.832031 -0.847657 -2.832031 -2.195313 c 0 -1.351563 1.089844 -2.175781 2.832031 -2.175781 c 1.761719 0 2.871094 0.824218 2.871094 2.175781 c 0 1.347656 -1.109375 2.195313 -2.871094 2.195313 z m 0 0" fill="#3584e4"/>
+ <path d="m 29.429688 21.839844 v 2.828125 h 3.046874 v 12.40625 h 3.523438 v -15.234375 z m 0 0" fill="#241f31"/>
+ <path d="m 38.480469 98 h -2.480469 v -2.851562 h -3.328125 v 2.851562 h -4.09375 l 6.660156 -9.160156 h -3.699219 l -7.179687 9.660156 v 2.371094 h 8.203125 v 3.199218 h 3.4375 v -3.199218 h 2.480469 z m 0 0" fill="#241f31"/>
+ <path d="m 53 83.03125 v -3 h -3.644531 c -0.8125 0 -1.417969 -0.605469 -1.417969 -1.417969 v -3.613281 h -3 v 3.613281 c 0 2.421875 1.996094 4.417969 4.417969 4.417969 z m 23.9375 0 v -3 h 3.644531 c 0.8125 0 1.417969 -0.605469 1.417969 -1.417969 v -3.613281 h 3 v 3.613281 c 0 2.421875 -1.996094 4.417969 -4.417969 4.417969 z m -23.9375 -40.03125 v 3 h -3.644531 c -0.8125 0 -1.417969 0.605469 -1.417969 1.417969 v 3.613281 h -3 v -3.613281 c 0 -2.421875 1.996094 -4.417969 4.417969 -4.417969 z m 23.9375 0 v 3 h 3.644531 c 0.8125 0 1.417969 0.605469 1.417969 1.417969 v 3.613281 h 3 v -3.613281 c 0 -2.421875 -1.996094 -4.417969 -4.417969 -4.417969 z m 0 0" fill="#1a5fb4"/>
+ <path d="m 53 82 v -3 h -3.644531 c -0.8125 0 -1.417969 -0.605469 -1.417969 -1.417969 v -3.613281 h -3 v 3.613281 c 0 2.421875 1.996094 4.417969 4.417969 4.417969 z m 23.9375 0 v -3 h 3.644531 c 0.8125 0 1.417969 -0.605469 1.417969 -1.417969 v -3.613281 h 3 v 3.613281 c 0 2.421875 -1.996094 4.417969 -4.417969 4.417969 z m -23.9375 -40.03125 v 3 h -3.644531 c -0.8125 0 -1.417969 0.605469 -1.417969 1.417969 v 3.613281 h -3 v -3.613281 c 0 -2.421875 1.996094 -4.417969 4.417969 -4.417969 z m 23.9375 0 v 3 h 3.644531 c 0.8125 0 1.417969 0.605469 1.417969 1.417969 v 3.613281 h 3 v -3.613281 c 0 -2.421875 -1.996094 -4.417969 -4.417969 -4.417969 z m 0 0" fill="#1c71d8"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.SystemMonitor.svg b/benchmarks/hicolor-apps/org.gnome.SystemMonitor.svg
new file mode 100644
index 00000000..844525d4
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.SystemMonitor.svg
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ width="128"
+ height="128"
+ id="svg11300"
+ version="1.0"
+ style="display:inline;enable-background:new"
+ viewBox="0 0 128 128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1076">
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="0"
+ id="stop1064" />
+ <stop
+ id="stop1066"
+ offset="0.03571428"
+ style="stop-color:#e4e1de;stop-opacity:1" />
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="0.07142857"
+ id="stop1068" />
+ <stop
+ id="stop1070"
+ offset="0.9285714"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ style="stop-color:#e4e1de;stop-opacity:1"
+ offset="0.96428573"
+ id="stop1072" />
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="1"
+ id="stop1074" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient1076"
+ id="linearGradient1444-2-3-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-22,109.00903)"
+ x1="120"
+ y1="619.96387"
+ x2="568"
+ y2="619.96387" />
+ <linearGradient
+ xlink:href="#linearGradient985"
+ id="linearGradient1106-8"
+ x1="335.86829"
+ y1="33.559235"
+ x2="112.13174"
+ y2="33.559235"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.25,0,0,0.25,-12,225)" />
+ <linearGradient
+ id="linearGradient985">
+ <stop
+ id="stop981"
+ offset="0"
+ style="stop-color:#f9f06b;stop-opacity:1" />
+ <stop
+ id="stop983"
+ offset="1"
+ style="stop-color:#f9f06b;stop-opacity:0" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient1020"
+ id="radialGradient1030"
+ cx="64.846146"
+ cy="194.19048"
+ fx="64.846146"
+ fy="194.19048"
+ r="44"
+ gradientTransform="matrix(-4.7272726,1.1058296e-6,-3.0301491e-7,-1.2272727,250.54547,-21.6754)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient1020">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop1016" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.09411765"
+ offset="1"
+ id="stop1018" />
+ </linearGradient>
+ <linearGradient
+ y2="619.96387"
+ x2="568"
+ y1="619.96387"
+ x1="120"
+ gradientTransform="matrix(0.25,0,0,0.25,-22.00001,-50.99097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1444-2-3-3"
+ xlink:href="#linearGradient1076" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-4.1363634,1.2532736e-6,-2.6513804e-7,-1.3909091,319.22728,170.63455)"
+ r="44"
+ fy="194.19048"
+ fx="63.999996"
+ cy="194.19048"
+ cx="63.999996"
+ id="radialGradient1030-8"
+ xlink:href="#linearGradient1020" />
+ <linearGradient
+ gradientTransform="matrix(0.25,0,0,0.25,-2.00001,61)"
+ gradientUnits="userSpaceOnUse"
+ y2="33.559235"
+ x2="104"
+ y1="33.559235"
+ x1="301"
+ id="linearGradient1106-2"
+ xlink:href="#linearGradient985" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <rect
+ style="display:inline;opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect929-36-9-9"
+ width="112"
+ height="86"
+ x="8"
+ y="28"
+ rx="7.9999995"
+ ry="7.999999" />
+ <rect
+ rx="3.9999998"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect946-0-7-4"
+ width="92"
+ height="76"
+ x="12"
+ y="32"
+ ry="4" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1444-2-3-3);fill-opacity:1;stroke:none;stroke-width:0.01129821px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 7.99999,104 v 4 c 0,4.432 3.568,8 8,8 h 96 c 4.432,0 8,-3.568 8,-8 v -4 c 0,4.432 -3.568,8 -8,8 h -96 c -4.432,0 -8,-3.568 -8,-8 z"
+ id="rect929-3-6-3-9" />
+ <rect
+ y="-104"
+ x="16"
+ height="68"
+ width="84"
+ id="rect968-2"
+ style="display:inline;opacity:0.05;vector-effect:none;fill:url(#radialGradient1030-8);fill-opacity:1;stroke:none;stroke-width:0.01121096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="scale(1,-1)" />
+ <path
+ id="path1092-6-1-3-7-5-5"
+ style="display:inline;opacity:0.23600003;fill:none;stroke:#e5a50a;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="m 15.99999,74 h 26 l 10,-23 6,39 8,-16 h 34" />
+ <path
+ id="path1092-6-1-3-7-5-1-0"
+ style="display:inline;opacity:1;fill:none;stroke:url(#linearGradient1106-2);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1;enable-background:new"
+ d="m 15.99999,74 h 26 l 10,-23 6,39 8,-16 h 6" />
+ <g
+ transform="translate(0,-170)"
+ id="g1063">
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#949390;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 115.99999,232 v 4 c 0,2.20914 -1.79086,4 -4,4 -2.20914,0 -4,-1.79086 -4,-4 v -2 l 4,-2 z"
+ id="path1066" />
+ <path
+ id="path1074"
+ d="m 115.99999,248 v 6 h -4 c -2.216,0 -4,-1.784 -4,-4 v -2 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#949390;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path1076"
+ d="m 115.99999,252 v -4 a 4,3.9999998 0 0 0 -4,-4 4,3.9999998 0 0 0 -4,4 4,3.9999998 0 0 0 4,4 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <ellipse
+ ry="1.0000002"
+ rx="1"
+ cy="250"
+ cx="-113.99997"
+ id="ellipse1078"
+ style="display:inline;opacity:1;vector-effect:none;fill:#68676b;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="scale(-1,1)" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 115.99999,230 v 4 a 4,3.9999998 0 0 1 -4,4 4,3.9999998 0 0 1 -4,-4 4,3.9999998 0 0 1 4,-4 z"
+ id="path1080" />
+ <ellipse
+ transform="scale(-1)"
+ style="display:inline;opacity:1;vector-effect:none;fill:#68676b;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="ellipse1082"
+ cx="-113.99997"
+ cy="-232"
+ rx="1"
+ ry="1.0000002" />
+ <path
+ id="path1084"
+ d="m 107.99999,218 v 4 c 0,2.20914 1.79086,4 4,4 2.20914,0 4,-1.79086 4,-4 v -2 l -4,-2 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#949390;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path1086"
+ d="m 107.99999,216 v 4 a 4,3.9999998 0 0 0 4,4 4,3.9999998 0 0 0 4,-4 4,3.9999998 0 0 0 -4,-4 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <ellipse
+ ry="1.0000002"
+ rx="1"
+ cy="-218"
+ cx="109.99997"
+ id="ellipse1088"
+ style="display:inline;opacity:1;vector-effect:none;fill:#68676b;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="scale(1,-1)" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#949390;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 115.99999,206 v 6 h -4 c -2.216,0 -4,-1.784 -4,-4 v -2 z"
+ id="path1090" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 115.99999,210 v -4 a 4,3.9999998 0 0 0 -4,-4 4,3.9999998 0 0 0 -4,4 4,3.9999998 0 0 0 4,4 z"
+ id="path1092" />
+ <ellipse
+ transform="scale(-1,1)"
+ style="display:inline;opacity:1;vector-effect:none;fill:#68676b;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="ellipse1094"
+ cx="-113.99997"
+ cy="208"
+ rx="1"
+ ry="1.0000002" />
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Terminal.svg b/benchmarks/hicolor-apps/org.gnome.Terminal.svg
new file mode 100644
index 00000000..1b6436ba
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Terminal.svg
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+<!--
+ Copyright © 2018 Tobias Bernard
+ Copyright © 2018 Lapo Calamandrei
+ Copyright © 2018 Sam Hewitt
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ This program is distributed in the hope conf it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1948">
+ <stop
+ id="stop1944"
+ offset="0"
+ style="stop-color:#2d2839;stop-opacity:1;" />
+ <stop
+ id="stop1946"
+ offset="1"
+ style="stop-color:#282433;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1020">
+ <stop
+ id="stop1016"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop1018"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0.09411765" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1001">
+ <stop
+ id="stop989"
+ offset="0"
+ style="stop-color:#77767b;stop-opacity:1" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0.05"
+ id="stop991" />
+ <stop
+ id="stop993"
+ offset="0.09999998"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="0.89999938"
+ id="stop995" />
+ <stop
+ id="stop997"
+ offset="0.94999999"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ id="stop999"
+ offset="1"
+ style="stop-color:#77767b;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="44"
+ x2="464"
+ y1="44"
+ x1="48"
+ id="linearGradient965"
+ xlink:href="#linearGradient1001" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-4.7272726,7.935912e-7,-3.0301491e-7,-1.6363636,238.54547,49.766183)"
+ r="44"
+ fy="194.19048"
+ fx="63.999996"
+ cy="194.19048"
+ cx="63.999996"
+ id="radialGradient1030"
+ xlink:href="#linearGradient1020" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="269.13693"
+ x2="70.346565"
+ y1="245.39511"
+ x1="70.346565"
+ id="linearGradient1950"
+ xlink:href="#linearGradient1948" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ transform="rotate(-30,420.69873,288.4192)"
+ id="g1710"
+ style="display:inline;enable-background:new" />
+ <rect
+ transform="matrix(0.25,0,0,0.25,0,225)"
+ style="display:inline;opacity:1;fill:url(#linearGradient965);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect953"
+ width="416"
+ height="376"
+ x="48"
+ y="-124"
+ rx="32"
+ ry="32" />
+ <rect
+ ry="32"
+ rx="32"
+ y="-164"
+ x="48"
+ height="384"
+ width="416"
+ id="rect950"
+ style="display:inline;opacity:1;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ transform="matrix(0.25,0,0,0.25,0,225)" />
+ <rect
+ transform="scale(1,-1)"
+ ry="3.9999695"
+ rx="4"
+ y="-276"
+ x="16"
+ height="87.999969"
+ width="96"
+ id="rect1004"
+ style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.01121096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ transform="scale(-1)"
+ style="display:inline;opacity:0.05;vector-effect:none;fill:url(#radialGradient1030);fill-opacity:1;stroke:none;stroke-width:0.01121096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect968"
+ width="88"
+ height="78"
+ x="-108"
+ y="-272" />
+ <g
+ id="g976"
+ transform="translate(-2,-2)"
+ style="fill:#ffffff">
+ <path
+ d="M 44.012301,210.88755 30,203.27182 V 208 l 9.710724,4.62951 v 0.1422 L 30,218 v 4.72818 l 14.012301,-8.21451 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:'Source Code Pro';-inkscape-font-specification:'Source Code Pro, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24999999"
+ id="path972" />
+ <path
+ d="m 47.999998,226 2e-6,4 h 16.00001 l -2e-6,-4 z"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:'Source Code Pro';-inkscape-font-specification:'Source Code Pro, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24999999"
+ id="path974" />
+ </g>
+ <path
+ d="m 100,244 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 84,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 76,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 84,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 76,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 84,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 76,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1950);fill-opacity:1;stroke:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1059" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Todo.svg b/benchmarks/hicolor-apps/org.gnome.Todo.svg
new file mode 100644
index 00000000..e1e4fb30
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Todo.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="19.999998" x2="112.778587" y1="29.118027" y2="97.447845">
+ <stop offset="0" stop-color="#62a0ea"/>
+ <stop offset="0.563959" stop-color="#9141ac"/>
+ <stop offset="1" stop-color="#ed333b"/>
+ </linearGradient>
+ <path d="m 28.722656 16 h 70.554688 c 4.816406 0 8.722656 4.0625 8.722656 9.078125 v 85.84375 c 0 5.015625 -3.90625 9.078125 -8.722656 9.078125 h -70.554688 c -4.816406 0 -8.722656 -4.0625 -8.722656 -9.078125 v -85.84375 c 0 -5.015625 3.90625 -9.078125 8.722656 -9.078125 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 106.921875 v 4.359375 c 0 4.828125 3.890625 8.71875 8.71875 8.71875 h 70.5625 c 4.828125 0 8.71875 -3.890625 8.71875 -8.71875 v -4.359375 c 0 5.027344 -3.890625 9.078125 -8.71875 9.078125 h -70.5625 c -4.828125 0 -8.71875 -4.050781 -8.71875 -9.078125 z m 0 0" fill-opacity="0.34902"/>
+ <path d="m 32 78 h 64 c 2.210938 0 4 1.789062 4 4 v 22 c 0 2.210938 -1.789062 4 -4 4 h -64 c -2.210938 0 -4 -1.789062 -4 -4 v -22 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#deddda"/>
+ <path d="m 32 24 h 64 c 2.210938 0 4 1.789062 4 4 v 70 c 0 2.210938 -1.789062 4 -4 4 h -64 c -2.210938 0 -4 -1.789062 -4 -4 v -70 c 0 -2.210938 1.789062 -4 4 -4 z m 0 0" fill="#ffffff"/>
+ <path d="m 44 12 c -2.214844 0 -4 1.785156 -4 4 v 14 h 48 v -14 c 0 -2.214844 -1.804688 -4.3125 -4 -4 h -14 l -6 7 l -6 -7 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 70 12 c 0 3.3125 -2.6875 6 -6 6 s -6 -2.6875 -6 -6 s 2.6875 -6 6 -6 s 6 2.6875 6 6 z m 0 0" fill="none" stroke="#c0bfbc" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 40 28 h 48 v 4 h -48 z m 0 0" fill="#9a9996"/>
+ <path d="m 40 65 l 5 5 l 9 -9" fill="none" stroke="#77767b" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 64 44 h 22 v 4 h -22 z m 0 0" fill="#c0bfbc"/>
+ <path d="m 40 45 l 5 5 l 9 -9" fill="none" stroke="#77767b" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 40 85 l 5 5 l 9 -9" fill="none" stroke="#77767b" stroke-linecap="round" stroke-linejoin="round" stroke-width="4"/>
+ <g fill="#c0bfbc">
+ <path d="m 64 64 h 26 v 4 h -26 z m 0 0"/>
+ <path d="m 64 84 h 18 v 4 h -18 z m 0 0"/>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Totem.svg b/benchmarks/hicolor-apps/org.gnome.Totem.svg
new file mode 100644
index 00000000..f4f74409
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Totem.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
+<defs>
+<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="62.815514" y1="414.077332" x2="158.562714" y2="414.077332" gradientTransform="matrix(1,0,0,1,-42.442848,-294.18116)">
+<stop offset="0" style="stop-color:rgb(98.431373%,95.294118%,66.666669%);stop-opacity:1;"/>
+<stop offset="0.0627714" style="stop-color:rgb(98.823529%,96.078432%,70.588237%);stop-opacity:1;"/>
+<stop offset="0.155585" style="stop-color:rgb(96.078432%,88.235295%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.288922" style="stop-color:rgb(69.411767%,63.529414%,3.137255%);stop-opacity:1;"/>
+<stop offset="0.366876" style="stop-color:rgb(17.254902%,57.647061%,52.941179%);stop-opacity:1;"/>
+<stop offset="0.652923" style="stop-color:rgb(43.137255%,82.352942%,79.215688%);stop-opacity:1;"/>
+<stop offset="0.852084" style="stop-color:rgb(17.647059%,75.294119%,68.627453%);stop-opacity:0.960784;"/>
+<stop offset="0.957711" style="stop-color:rgb(63.529414%,91.37255%,88.235295%);stop-opacity:0.960784;"/>
+<stop offset="1" style="stop-color:rgb(14.117648%,61.56863%,56.078434%);stop-opacity:0.960784;"/>
+</linearGradient>
+<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="32" y1="239.25" x2="56" y2="196" gradientTransform="matrix(1,0,0,1,0,-172.000008)">
+<stop offset="0" style="stop-color:rgb(75.294119%,38.039216%,79.607844%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(56.078434%,34.509805%,78.431374%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="64" y1="260" x2="80" y2="220" gradientTransform="matrix(1,0,0,1,0,-172.000008)">
+<stop offset="0" style="stop-color:rgb(17.647059%,75.294119%,68.627453%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(20.784314%,51.764709%,89.411765%);stop-opacity:1;"/>
+</linearGradient>
+<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+</filter>
+<mask id="mask0">
+ <g filter="url(#alpha)">
+<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.2;stroke:none;"/>
+ </g>
+</mask>
+<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="56" y1="252" x2="0" y2="244" gradientTransform="matrix(1,0,0,1,8,-156.000008)">
+<stop offset="0" style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(100%,100%,100%);stop-opacity:0;"/>
+</linearGradient>
+<clipPath id="clip1">
+ <rect x="0" y="0" width="192" height="152"/>
+</clipPath>
+<g id="surface5497" clip-path="url(#clip1)">
+<path style=" stroke:none;fill-rule:evenodd;fill:url(#linear3);" d="M 28.015625 42.628906 C 27.976562 54.738281 28.011719 66.84375 28 78.949219 C 28 78.976562 28 79 28 79.023438 L 28 115.898438 C 28 121.617188 31.050781 126.898438 36 129.757812 C 40.949219 132.613281 47.050781 132.613281 52 129.757812 L 84 111.28125 C 88.949219 108.421875 92 103.140625 92 97.425781 C 92 91.707031 88.949219 86.425781 84 83.566406 L 52 65.09375 C 51.617188 64.878906 51.226562 64.675781 50.824219 64.492188 C 45.433594 61.351562 39.972656 58.324219 34.65625 55.0625 C 30.675781 52.234375 28.171875 47.503906 28.015625 42.628906 Z M 28.015625 42.628906 "/>
+</g>
+<linearGradient id="linear4" gradientUnits="userSpaceOnUse" x1="529.28833" y1="441.731445" x2="543.341125" y2="408.598663" gradientTransform="matrix(-0.5,-0.866025,0.866025,-0.5,-2.305103,745.500435)">
+<stop offset="0" style="stop-color:rgb(17.647059%,75.294119%,68.627453%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(36.862746%,85.09804%,79.607844%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear5" gradientUnits="userSpaceOnUse" x1="529.28833" y1="441.731445" x2="543.341125" y2="408.598663" gradientTransform="matrix(1,0,0,1,-504.000008,-330.000011)">
+<stop offset="0" style="stop-color:rgb(97.647059%,94.117647%,41.960785%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,82.745099%,17.647059%);stop-opacity:1;"/>
+</linearGradient>
+</defs>
+<g id="surface5465">
+<path style=" stroke:none;fill-rule:evenodd;fill:url(#linear0);" d="M 36.378906 14.007812 C 32.070312 13.90625 27.902344 15.546875 24.820312 18.554688 C 21.738281 21.566406 20 25.691406 20 30 L 20 46.976562 C 20 53.632812 20.007812 60.292969 20 66.949219 C 20 66.976562 20 67 20 67.023438 L 20 83.4375 C 20 90.257812 20.007812 97.078125 20 103.898438 C 19.96875 105.519531 20.230469 107.109375 20.714844 108.621094 C 20.71875 108.636719 20.722656 108.648438 20.726562 108.664062 C 20.863281 109.085938 21.011719 109.503906 21.1875 109.917969 C 21.335938 110.273438 21.496094 110.625 21.671875 110.972656 C 21.6875 111.011719 21.707031 111.046875 21.726562 111.085938 C 21.800781 111.25 21.878906 111.410156 21.960938 111.574219 C 22.472656 112.507812 23.074219 113.390625 23.765625 114.210938 C 24.875 115.519531 26.1875 116.640625 27.65625 117.535156 C 28.042969 117.773438 28.441406 118 28.847656 118.207031 C 30.582031 119.097656 32.484375 119.660156 34.46875 119.8125 C 34.527344 119.816406 34.589844 119.828125 34.652344 119.832031 C 34.898438 119.851562 35.144531 119.863281 35.390625 119.871094 C 35.746094 119.890625 36.101562 119.902344 36.457031 119.894531 C 36.484375 119.890625 36.507812 119.890625 36.535156 119.886719 C 36.984375 119.871094 37.433594 119.839844 37.878906 119.78125 C 40.035156 119.527344 42.117188 118.839844 44 117.757812 L 44.265625 117.605469 C 44.855469 117.289062 45.4375 116.957031 46 116.601562 C 46 116.601562 46 116.601562 46.003906 116.601562 L 76 99.28125 L 108 80.804688 C 113.242188 77.777344 116.324219 72.050781 115.96875 66.003906 C 115.875 63.972656 115.394531 61.960938 114.472656 60.097656 C 113.796875 58.558594 112.835938 57.222656 111.699219 56.039062 C 111.648438 55.988281 111.597656 55.9375 111.550781 55.886719 C 111.289062 55.625 111.03125 55.367188 110.753906 55.121094 C 110.527344 54.917969 110.296875 54.722656 110.0625 54.535156 C 109.890625 54.394531 109.714844 54.257812 109.539062 54.121094 C 109.386719 54.007812 109.234375 53.894531 109.078125 53.785156 C 108.097656 53.078125 107.0625 52.445312 106 51.882812 C 105.917969 51.851562 105.835938 51.824219 105.753906 51.792969 L 44 16.144531 C 41.679688 14.804688 39.058594 14.070312 36.378906 14.007812 Z M 36.378906 14.007812 "/>
+<path style=" stroke:none;fill-rule:evenodd;fill:rgb(17.647059%,75.294119%,68.627453%);fill-opacity:1;" d="M 36.375 46.953125 C 32.070312 46.855469 27.902344 48.496094 24.820312 51.503906 C 21.738281 54.515625 20 58.640625 20 62.949219 L 20 99.898438 C 20 105.617188 23.050781 110.898438 28 113.757812 C 32.949219 116.613281 39.050781 116.613281 44 113.757812 L 76 95.28125 C 80.949219 92.421875 84 87.140625 84 81.425781 C 84 75.707031 80.949219 70.425781 76 67.566406 L 44 49.09375 C 41.679688 47.753906 39.058594 47.019531 36.375 46.953125 Z M 36.375 46.953125 "/>
+<path style=" stroke:none;fill-rule:evenodd;fill:url(#linear1);" d="M 36.375 10.003906 C 32.070312 9.90625 27.902344 11.542969 24.820312 14.554688 C 21.738281 17.566406 20 21.691406 20 26 L 20 99.898438 L 52 99.898438 L 52 53.710938 L 92 76.804688 L 108 49.09375 L 44 12.144531 C 41.679688 10.804688 39.058594 10.070312 36.375 10.003906 Z M 36.375 10.003906 "/>
+<path style=" stroke:none;fill-rule:evenodd;fill:url(#linear2);" d="M 68.375 28.480469 C 64.070312 28.378906 59.902344 30.019531 56.820312 33.03125 C 53.738281 36.039062 52 40.167969 52 44.472656 L 52 81.425781 C 52 87.140625 55.050781 92.421875 60 95.28125 C 64.953125 98.136719 71.050781 98.136719 76 95.28125 L 108 76.804688 C 112.949219 73.949219 116 68.667969 116 62.949219 C 116 57.234375 112.949219 51.953125 108 49.09375 L 76 30.617188 C 73.679688 29.277344 71.058594 28.542969 68.375 28.480469 Z M 68.375 28.480469 "/>
+<use xlink:href="#surface5497" transform="matrix(1,0,0,1,-8,-16)" mask="url(#mask0)"/>
+<path style=" stroke:none;fill-rule:evenodd;fill:url(#linear4);" d="M 75.613281 95.429688 C 86.425781 89.238281 97.203125 82.972656 108 76.753906 C 115.046875 72.855469 118.058594 63.320312 114.472656 56.097656 C 112.832031 52.355469 109.535156 49.746094 106 47.882812 C 97.460938 44.53125 86.484375 49.695312 84.496094 58.992188 C 83.917969 60.242188 83.988281 61.550781 84 62.949219 C 83.953125 69.621094 84.097656 76.300781 83.917969 82.96875 C 83.429688 88.164062 80.21875 92.976562 75.613281 95.429688 Z M 75.613281 95.429688 "/>
+<path style=" stroke:none;fill-rule:evenodd;fill:url(#linear5);" d="M 20.019531 62.515625 C 19.972656 74.976562 20.011719 87.4375 20 99.898438 C 19.851562 107.953125 26.601562 115.328125 34.652344 115.832031 C 38.714844 116.285156 42.621094 114.734375 46 112.601562 C 53.175781 106.882812 54.191406 94.796875 47.132812 88.429688 C 46.339844 87.296875 45.167969 86.707031 43.953125 86.015625 C 38.199219 82.640625 32.34375 79.425781 26.65625 75.9375 C 22.40625 72.914062 19.839844 67.730469 20.019531 62.515625 Z M 20.019531 62.515625 "/>
+</g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Weather.svg b/benchmarks/hicolor-apps/org.gnome.Weather.svg
new file mode 100644
index 00000000..8836f05e
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Weather.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><radialGradient id="a" gradientUnits="userSpaceOnUse" cx="280.994" cy="488.848" fx="280.994" fy="488.848" r="224" gradientTransform="matrix(.347 0 0 .34223 -33.506 -129.482)"><stop offset="0" stop-color="#fdfacf"/><stop offset=".4" stop-color="#f9f06b"/><stop offset="1" stop-color="#e5a50a"/></radialGradient><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="85" y1="107.162" x2="85" y2="86" gradientTransform="translate(-6 4)"><stop offset="0" stop-color="#eef4fc"/><stop offset="1" stop-color="#fff"/></linearGradient></defs><path d="M20 20h88v88H20zm0 0" fill="#f5c211"/><path d="M126 64l-62 62L2 64 64 2zm0 0" fill="#f6d32d"/><path d="M112 64c0 26.508-21.492 48-48 48S16 90.508 16 64s21.492-48 48-48 48 21.492 48 48zm0 0" fill="url(#a)"/><path d="M90 72a19.994 19.994 0 00-18.156 11.668A15.016 15.016 0 0065 82c-7.89.008-14.426 6.129-14.95 14H50c-4.098 0-7.617 2.469-9.16 6H40v4c0 5.523 4.477 10 10 10h56c6.629 0 12-5.371 12-12v-4h-.707a11.993 11.993 0 00-7.328-7.313c.015-.23.027-.457.035-.687 0-11.047-8.953-20-20-20zm0 0" fill="#dceafa"/><path d="M90 68a19.994 19.994 0 00-18.156 11.668A15.016 15.016 0 0065 78c-7.89.008-14.426 6.129-14.95 14H50c-5.523 0-10 4.477-10 10s4.477 10 10 10h56c6.629 0 12-5.371 12-12a11.997 11.997 0 00-8.035-11.313c.015-.23.027-.457.035-.687 0-11.047-8.953-20-20-20zm0 0" fill="url(#b)"/></svg> \ No newline at end of file
diff --git a/benchmarks/hicolor-apps/org.gnome.World.Citations.svg b/benchmarks/hicolor-apps/org.gnome.World.Citations.svg
new file mode 100644
index 00000000..1f26be4a
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.World.Citations.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#613583"/>
+ <stop offset="1" stop-color="#1a5fb4"/>
+ </linearGradient>
+ <linearGradient id="b" x1="20" x2="96" xlink:href="#a" y1="94.062744" y2="94.062744"/>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="100" x2="108" y1="83" y2="83">
+ <stop offset="0" stop-color="#f6f5f4"/>
+ <stop offset="0.5" stop-color="#f6f5f4"/>
+ <stop offset="1" stop-color="#c0bfbc"/>
+ </linearGradient>
+ <linearGradient id="d" x1="20" x2="96" xlink:href="#a" y1="92" y2="92"/>
+ <linearGradient id="e" gradientUnits="userSpaceOnUse" x1="20" x2="96" y1="66" y2="66">
+ <stop offset="0" stop-color="#613583"/>
+ <stop offset="0.0227273" stop-color="#c061cb"/>
+ <stop offset="0.0909091" stop-color="#9141ac"/>
+ <stop offset="1" stop-color="#3584e4"/>
+ </linearGradient>
+ <linearGradient id="f" gradientUnits="userSpaceOnUse" x1="20" x2="108.099617" y1="57" y2="57">
+ <stop offset="0" stop-color="#c061cb"/>
+ <stop offset="0.0227273" stop-color="#dc8add"/>
+ <stop offset="0.0909091" stop-color="#c061cb"/>
+ <stop offset="1" stop-color="#c061cb"/>
+ </linearGradient>
+ <filter id="g" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="h">
+ <g filter="url(#g)">
+ <rect fill-opacity="0.1" height="128" width="128"/>
+ </g>
+ </mask>
+ <linearGradient id="i" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset="0.2"/>
+ <stop offset="0.8" stop-opacity="0.94902"/>
+ <stop offset="1" stop-opacity="0"/>
+ </linearGradient>
+ <linearGradient id="j" gradientTransform="matrix(0.980392 0 0 1 4.823524 -148)" x1="42" x2="93" xlink:href="#i" y1="273" y2="273"/>
+ <clipPath id="k">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <mask id="l">
+ <g filter="url(#g)">
+ <rect fill-opacity="0.1" height="128" width="128"/>
+ </g>
+ </mask>
+ <linearGradient id="m" gradientTransform="matrix(0.627451 0 0 1 35.647058 -144)" x1="42" x2="93" xlink:href="#i" y1="273" y2="273"/>
+ <clipPath id="n">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <mask id="o">
+ <g filter="url(#g)">
+ <rect fill-opacity="0.15" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="p">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <clipPath id="q">
+ <path d="m 84 8 h 20 v 20 h -20 z m 0 0"/>
+ </clipPath>
+ <clipPath id="r">
+ <path d="m 104 28 l -20 -20 h -5.714844 v 25.714844 h 25.714844 z m 0 0"/>
+ </clipPath>
+ <linearGradient id="s" gradientTransform="matrix(-0 -0.178571 0.178571 -0 80.428574 79.428574)" gradientUnits="userSpaceOnUse" x1="344" x2="340" y1="76" y2="72">
+ <stop offset="0" stop-color="#d5d3cf"/>
+ <stop offset="1" stop-color="#ffffff"/>
+ </linearGradient>
+ <linearGradient id="t" gradientTransform="matrix(1.333333 0 0 1 -2.666667 -161.999997)" gradientUnits="userSpaceOnUse" x1="34" x2="34" y1="278" y2="272">
+ <stop offset="0" stop-color="#c061cb"/>
+ <stop offset="1" stop-color="#9141ac"/>
+ </linearGradient>
+ <linearGradient id="u" gradientUnits="userSpaceOnUse" x1="64.857857" x2="112.192848" y1="48" y2="81.075584">
+ <stop offset="0" stop-color="#9141ac"/>
+ <stop offset="1" stop-color="#1a5fb4"/>
+ </linearGradient>
+ <linearGradient id="v" gradientUnits="userSpaceOnUse" x1="63.250687" x2="112.48423" y1="38.587048" y2="82">
+ <stop offset="0" stop-color="#c061cb"/>
+ <stop offset="1" stop-color="#3584e4"/>
+ </linearGradient>
+ <path d="m 28 68.125 h 60 c 4.417969 0 8 3.582031 8 8 v 35.875 c 0 4.417969 -3.582031 8 -8 8 h -60 c -4.417969 0 -8 -3.582031 -8 -8 v -35.875 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#b)"/>
+ <path d="m 30 48 v 70 h 58 c 4.433594 0 8 -3.566406 8 -8 v -54 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0" fill="url(#c)"/>
+ <path d="m 20 78 v 28 h 68 c 4.433594 0 8 -3.566406 8 -8 v -12 c 0 -4.433594 -3.566406 -8 -8 -8 z m 0 0" fill="url(#d)"/>
+ <path d="m 20 28 v 84 c 0 -4.433594 3.566406 -8 8 -8 h 60 c 4.433594 0 8 -3.566406 8 -8 v -68 c 0 -4.433594 -3.566406 -8 -8 -8 h -60 c -4.417969 0 -8 3.582031 -8 8 z m 0 0" fill="url(#e)"/>
+ <path d="m 26 40 c -3.324219 0 -6 2.675781 -6 6 v 44 c 0 -3.324219 2.675781 -6 6 -6 h 70 v -44 z m 0 0" fill="url(#f)"/>
+ <path d="m 28 106 h 4 c 3.3125 0 6 2.6875 6 6 s -2.6875 6 -6 6 h -4 c -3.3125 0 -6 -2.6875 -6 -6 s 2.6875 -6 6 -6 z m 0 0" fill="#f6f5f4"/>
+ <g clip-path="url(#k)" mask="url(#h)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 46 124 h 50 v 2 h -50 z m 0 0" fill="url(#j)"/>
+ </g>
+ <g clip-path="url(#n)" mask="url(#l)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 62 128 h 32 v 2 h -32 z m 0 0" fill="url(#m)"/>
+ </g>
+ <path d="m 46 8 c -4.433594 0 -8 3.566406 -8 8 v 72 c 0 4.433594 3.566406 8 8 8 h 50 c 4.433594 0 8 -3.566406 8 -8 v -60 l -20 -20 z m 0 0" fill="#f6f5f4"/>
+ <path d="m 46 60 v 10 h 42 v -4 h 8 v -6 z m 0 0" fill="#deddda"/>
+ <path d="m 46 20 v 6 h 26 v -6 z m 0 0" fill="#c0bfbc" fill-rule="evenodd"/>
+ <path d="m 46 34 h 50 v 18 h -34 v 4 h -16 z m 0 0" fill="#deddda"/>
+ <g clip-path="url(#p)" mask="url(#o)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 92 24 l -1 13 c -0.339844 4.417969 3.582031 8.339844 8 8 l 13 -1 c -7.105469 -5.109375 -15.238281 -6.542969 -20 -20 z m 0 0"/>
+ </g>
+ <g clip-path="url(#q)">
+ <g clip-path="url(#r)">
+ <path d="m 84 20 v -16.683594 c 0 -4.417968 3.582031 -8 8 -8 h 18 c 4.417969 0 8 3.582032 8 8 v 16.683594 c 0 4.417969 -3.582031 8 -8 8 h -18 c -4.417969 0 -8 -3.582031 -8 -8 z m 0 0" fill="url(#s)"/>
+ </g>
+ </g>
+ <path d="m 40 110 h 16 v 15 l -8 -5 l -8 5 z m 0 0" fill="url(#t)"/>
+ <path d="m 72 36 c -8.863281 0 -16 7.136719 -16 16 c 0 7.847656 5.59375 14.335938 13.03125 15.722656 l -7.03125 14.277344 v 4 h 6 l 17.4375 -25.300781 c 1.621094 -2.5 2.5625 -5.484375 2.5625 -8.699219 c 0 -8.863281 -7.136719 -16 -16 -16 z m 36 0 c -8.863281 0 -16 7.136719 -16 16 c 0 7.847656 5.59375 14.335938 13.03125 15.722656 l -7.03125 14.277344 v 4 h 6 l 17.4375 -25.300781 c 1.621094 -2.5 2.5625 -5.484375 2.5625 -8.699219 c 0 -8.863281 -7.136719 -16 -16 -16 z m 0 0" fill="url(#u)"/>
+ <path d="m 72 32 c -8.863281 0 -16 7.136719 -16 16 c 0 7.980469 5.785156 14.554688 13.40625 15.789062 l -7.40625 18.210938 h 6 l 17.4375 -25.300781 c 1.621094 -2.5 2.5625 -5.484375 2.5625 -8.699219 c 0 -8.863281 -7.136719 -16 -16 -16 z m 36 0 c -8.863281 0 -16 7.136719 -16 16 c 0 7.980469 5.785156 14.554688 13.40625 15.789062 l -7.40625 18.210938 h 6 l 17.4375 -25.300781 c 1.621094 -2.5 2.5625 -5.484375 2.5625 -8.699219 c 0 -8.863281 -7.136719 -16 -16 -16 z m 0 0" fill="url(#v)"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.World.PikaBackup.svg b/benchmarks/hicolor-apps/org.gnome.World.PikaBackup.svg
new file mode 100644
index 00000000..275bb426
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.World.PikaBackup.svg
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="17.999944" x2="109.999924" y1="75.999984" y2="75.999984">
+ <stop offset="0" stop-color="#e66100"/>
+ <stop offset="0.5" stop-color="#ff7800"/>
+ <stop offset="1" stop-color="#e66100"/>
+ </linearGradient>
+ <linearGradient id="b" gradientUnits="userSpaceOnUse" x1="17.999944" x2="109.999924" y1="67.999984" y2="67.999984">
+ <stop offset="0" stop-color="#e5a50a"/>
+ <stop offset="0.5" stop-color="#f5c211"/>
+ <stop offset="1" stop-color="#e5a50a"/>
+ </linearGradient>
+ <linearGradient id="c" gradientUnits="userSpaceOnUse" x1="17.999944" x2="109.999924" y1="59.999984" y2="59.999984">
+ <stop offset="0" stop-color="#9848b7"/>
+ <stop offset="0.5" stop-color="#bb56c8"/>
+ <stop offset="1" stop-color="#9848b7"/>
+ </linearGradient>
+ <path d="m 18 52 h 92 v 8 h -92 z m 0 0" fill="#9141ac"/>
+ <path d="m 110 76 c 0 25.40625 -20.59375 46 -46 46 s -46 -20.59375 -46 -46 s 20.59375 -46 46 -46 s 46 20.59375 46 46 z m 0 0" fill="url(#a)"/>
+ <path d="m 110 69 c 0 25.40625 -20.59375 46 -46 46 s -46 -20.59375 -46 -46 s 20.59375 -46 46 -46 s 46 20.59375 46 46 z m 0 0" fill="#c64600"/>
+ <path d="m 18 68 h 92 v 8 h -92 z m 0 0" fill="#e66100"/>
+ <path d="m 110 68 c 0 25.40625 -20.59375 46 -46 46 s -46 -20.59375 -46 -46 s 20.59375 -46 46 -46 s 46 20.59375 46 46 z m 0 0" fill="url(#b)"/>
+ <path d="m 18 60 h 92 v 8 h -92 z m 0 0" fill="#e5a50a"/>
+ <path d="m 110 60 c 0 25.40625 -20.59375 46 -46 46 s -46 -20.59375 -46 -46 s 20.59375 -46 46 -46 s 46 20.59375 46 46 z m 0 0" fill="url(#c)"/>
+ <path d="m 110 52 c 0 25.40625 -20.59375 46 -46 46 s -46 -20.59375 -46 -46 s 20.59375 -46 46 -46 s 46 20.59375 46 46 z m 0 0" fill="#c061cb"/>
+ <g stroke-linecap="round">
+ <path d="m 45.613281 35.613281 c 8.324219 -8.320312 21.195313 -10.015625 31.386719 -4.128906 c 10.191406 5.882813 15.160156 17.878906 12.113281 29.246094 c -3.046875 11.367187 -13.34375 19.269531 -25.113281 19.269531 s -22.066406 -7.902344 -25.113281 -19.269531" fill="none" stroke="#9141ac" stroke-width="4.00001"/>
+ <path d="m 49 41 h -9 v -9 z m 0 0" fill="#ffffff" stroke="#9141ac" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 74 62 l -10 -6 v -16" fill="none" stroke="#9141ac" stroke-width="4"/>
+ <path d="m 45.613281 32.613281 c 8.324219 -8.320312 21.195313 -10.015625 31.386719 -4.128906 c 10.191406 5.882813 15.160156 17.878906 12.113281 29.246094 c -3.046875 11.367187 -13.34375 19.269531 -25.113281 19.269531 s -22.066406 -7.902344 -25.113281 -19.269531" fill="none" stroke="#f6d1f6" stroke-width="4.00001"/>
+ <path d="m 49 38 h -9 v -9 z m 0 0" fill="#f6d1f6" stroke="#f6d1f6" stroke-linejoin="round" stroke-width="4"/>
+ <path d="m 74 59 l -10 -6 v -16" fill="none" stroke="#f6d1f6" stroke-width="4"/>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.World.Secrets.svg b/benchmarks/hicolor-apps/org.gnome.World.Secrets.svg
new file mode 100644
index 00000000..5fc9d3aa
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.World.Secrets.svg
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <linearGradient id="a" gradientUnits="userSpaceOnUse" x1="12.000435" x2="116.000435" y1="103.999786" y2="103.999786">
+ <stop offset="0" stop-color="#613583"/>
+ <stop offset="0.0384615" stop-color="#c061cb"/>
+ <stop offset="0.0769231" stop-color="#613583"/>
+ <stop offset="0.923077" stop-color="#613583"/>
+ <stop offset="0.961538" stop-color="#c061cb"/>
+ <stop offset="1" stop-color="#613583"/>
+ </linearGradient>
+ <filter id="b" height="100%" width="100%" x="0%" y="0%">
+ <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+ </filter>
+ <mask id="c">
+ <g filter="url(#b)">
+ <rect fill-opacity="0.2" height="128" width="128"/>
+ </g>
+ </mask>
+ <clipPath id="d">
+ <rect height="152" width="192"/>
+ </clipPath>
+ <linearGradient id="e" gradientTransform="matrix(-1.023256 0 0 1.142857 129.488831 -200.571644)" gradientUnits="userSpaceOnUse" x1="51.951954" x2="108" y1="209.310547" y2="260">
+ <stop offset="0" stop-color="#f6f5f4"/>
+ <stop offset="1" stop-color="#deddda"/>
+ </linearGradient>
+ <radialGradient id="f" cx="-223" cy="64" gradientTransform="matrix(0 -1.555555 1.555555 0 -35.555054 -298.388901)" gradientUnits="userSpaceOnUse" r="24">
+ <stop offset="0" stop-color="#c061cb"/>
+ <stop offset="1" stop-color="#a347ba"/>
+ </radialGradient>
+ <linearGradient id="g" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="#3d3846"/>
+ <stop offset="0.350902" stop-color="#9a9996"/>
+ <stop offset="0.601801" stop-color="#77767b"/>
+ <stop offset="1" stop-color="#3d3846"/>
+ </linearGradient>
+ <linearGradient id="h" gradientTransform="matrix(0.75 0 0 0.7 -28.999565 -63.000214)" x1="60" x2="68" xlink:href="#g" y1="199.856003" y2="199.856003"/>
+ <linearGradient id="i" gradientTransform="matrix(0.75 0 0 0.7 -28.999565 -96.000206)" x1="60" x2="68" xlink:href="#g" y1="199.856003" y2="199.856003"/>
+ <linearGradient id="j" gradientTransform="matrix(0 -1 1 0 0.000435 -171.000213)" gradientUnits="userSpaceOnUse" x1="-253.999969" x2="-206" y1="63.999985" y2="63.999985">
+ <stop offset="0" stop-color="#deddda"/>
+ <stop offset="1" stop-color="#f6f5f4"/>
+ </linearGradient>
+ <path d="m 20 32 h 88 c 4.417969 0 8 3.582031 8 8 v 68 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -68 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="url(#a)"/>
+ <path d="m 20 12 h 88 c 4.417969 0 8 3.582031 8 8 v 80 c 0 4.417969 -3.582031 8 -8 8 h -88 c -4.417969 0 -8 -3.582031 -8 -8 v -80 c 0 -4.417969 3.582031 -8 8 -8 z m 0 0" fill="#a347ba"/>
+ <g clip-path="url(#d)" mask="url(#c)" transform="matrix(1 0 0 1 -8 -16)">
+ <path d="m 113 38 h -82 c -1.65625 0 -3 1.34375 -3 3 v 74 c 0 1.65625 1.34375 3 3 3 h 82 c 1.65625 0 3 -1.34375 3 -3 v -74 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
+ </g>
+ <path d="m 16 72 h 6 v 14 h -6 z m 0 0" fill="#3d3846"/>
+ <path d="m 16 38 h 6 v 15 h -6 z m 0 0" fill="#3d3846"/>
+ <path d="m 105 20 h -82 c -1.65625 0 -3 1.34375 -3 3 v 74 c 0 1.65625 1.34375 3 3 3 h 82 c 1.65625 0 3 -1.34375 3 -3 v -74 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0" fill="url(#e)"/>
+ <path d="m 64 33 c 15.464844 0 28 12.535156 28 28 s -12.535156 28 -28 28 s -28 -12.535156 -28 -28 s 12.535156 -28 28 -28 z m 0 0" fill="#613583"/>
+ <path d="m 64 31 c 15.464844 0 28 12.535156 28 28 s -12.535156 28 -28 28 s -28 -12.535156 -28 -28 s 12.535156 -28 28 -28 z m 0 0" fill="url(#f)"/>
+ <path d="m 19 69 c -1.65625 0 -3 0.449219 -3 1 v 14 h 6 v -14 c 0 -0.550781 -1.34375 -1 -3 -1 z m 0 0" fill="url(#h)"/>
+ <path d="m 19 83 c -1.65625 0 -3 0.449219 -3 1 s 1.34375 1 3 1 c 0.339844 0 0.679688 -0.019531 1 -0.058594 v -0.941406 h 2 c 0 -0.550781 -1.34375 -1 -3 -1 z m 0 0" fill="#3d3846"/>
+ <path d="m 19 75 c -1.65625 0 -3 0.449219 -3 1 v 2 c 0 -0.550781 1.34375 -1 3 -1 s 3 0.449219 3 1 v -2 c 0 -0.550781 -1.34375 -1 -3 -1 z m 1.199219 2.914062 c -0.019531 0.003907 -0.039063 0.007813 -0.058594 0.007813 c 0.019531 0 0.039063 -0.003906 0.058594 -0.007813 z m 0 0" fill="#3d3846"/>
+ <path d="m 19 36 c -1.65625 0 -3 0.449219 -3 1 v 14 h 6 v -14 c 0 -0.550781 -1.34375 -1 -3 -1 z m 0 0" fill="url(#i)"/>
+ <path d="m 19 50 c -1.65625 0 -3 0.449219 -3 1 s 1.34375 1 3 1 c 0.339844 0 0.679688 -0.019531 1 -0.058594 v -0.941406 h 2 c 0 -0.550781 -1.34375 -1 -3 -1 z m 0 0" fill="#3d3846"/>
+ <path d="m 19 42 c -1.65625 0 -3 0.449219 -3 1 v 2 c 0 -0.550781 1.34375 -1 3 -1 s 3 0.449219 3 1 v -2 c 0 -0.550781 -1.34375 -1 -3 -1 z m 1.199219 2.914062 c -0.019531 0.003907 -0.039063 0.007813 -0.058594 0.007813 c 0.019531 0 0.039063 -0.003906 0.058594 -0.007813 z m 0 0" fill="#3d3846"/>
+ <path d="m 64 35 c 13.253906 0 24 10.746094 24 24 s -10.746094 24 -24 24 s -24 -10.746094 -24 -24 s 10.746094 -24 24 -24 z m 0 0" fill="url(#j)"/>
+ <path d="m 68 43 h -8 v 10 h 4 v 2 l -4 2 v 18 h 8 v -10 l -4 -2 l 4 -2 z m 0 0" fill="#3d3846"/>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.Yelp.svg b/benchmarks/hicolor-apps/org.gnome.Yelp.svg
new file mode 100644
index 00000000..012c89d9
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.Yelp.svg
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
+<defs>
+<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+</filter>
+<mask id="mask0">
+ <g filter="url(#alpha)">
+<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.15;stroke:none;"/>
+ </g>
+</mask>
+<clipPath id="clip1">
+ <rect x="0" y="0" width="128" height="128"/>
+</clipPath>
+<g id="surface49865" clip-path="url(#clip1)">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 64 26 C 45.222656 26 30 41.222656 30 60 C 30.011719 60.667969 30.046875 61.335938 30.101562 62 C 31.15625 44.046875 46.015625 30.023438 64 30 C 81.996094 30.007812 96.871094 44.035156 97.925781 62 C 97.972656 61.335938 97.996094 60.667969 98 60 C 98 41.222656 82.777344 26 64 26 Z M 4.070312 62 C 4.035156 62.667969 4.011719 63.332031 4 64 C 4 97.136719 30.863281 124 64 124 C 97.136719 124 124 97.136719 124 64 C 123.976562 63.332031 123.945312 62.667969 123.902344 62 C 122.824219 94.316406 96.332031 119.964844 64 120 C 31.65625 119.980469 5.148438 94.328125 4.070312 62 Z M 4.070312 62 "/>
+</g>
+<image id="image49875" width="128" height="128" xlink:href="data:image/png;base64,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"/>
+<image id="image49885" width="128" height="128" xlink:href="data:image/png;base64,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"/>
+</defs>
+<g id="surface49861">
+<path style="fill:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(86.666667%,77.64706%,70.19608%);stroke-opacity:1;stroke-miterlimit:4;" d="M 16.643143 237.394531 C 4.41658 224.085938 4.529861 203.597656 16.904861 190.425781 C 29.279861 177.257813 49.717361 175.867188 63.76033 187.242188 " transform="matrix(-1,0,0,1,128.002518,-172)"/>
+<path style="fill:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(86.666667%,77.64706%,70.19608%);stroke-opacity:1;stroke-miterlimit:4;" d="M 16.643158 237.394348 C 4.416595 224.085754 4.529877 203.597473 16.904877 190.425598 C 29.279877 177.257629 49.717377 175.867004 63.760345 187.242004 " transform="matrix(-1,-0.000000000000000122,0.000000000000000122,-1,128.002533,300.011536)"/>
+<path style="fill:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(86.666667%,77.64706%,70.19608%);stroke-opacity:1;stroke-miterlimit:4;" d="M 16.64063 237.394318 C 4.414068 224.085724 4.527349 203.597443 16.902349 190.425568 C 29.277349 177.257599 49.718755 175.866974 63.761724 187.241974 " transform="matrix(1,0,0,-1,-0.00000522728,300.011505)"/>
+<path style="fill:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(86.666667%,77.64706%,70.19608%);stroke-opacity:1;stroke-miterlimit:4;" d="M 16.640625 237.394531 C 4.414062 224.085938 4.527344 203.597656 16.902344 190.425781 C 29.277344 177.257812 49.71875 175.867188 63.761719 187.242188 " transform="matrix(1,0,0,1,0,-172)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 64 4 C 30.863281 4 4 30.863281 4 64 C 4 97.136719 30.863281 124 64 124 C 97.136719 124 124 97.136719 124 64 C 124 30.863281 97.136719 4 64 4 Z M 64 30 C 82.777344 30 98 45.222656 98 64 C 98 82.777344 82.777344 98 64 98 C 45.222656 98 30 82.777344 30 64 C 30 45.222656 45.222656 30 64 30 Z M 64 30 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(87.843138%,10.588235%,14.117648%);fill-opacity:1;" d="M 63.882812 3.527344 C 58.511719 3.558594 53.171875 4.308594 48 5.757812 L 48 34.507812 C 52.921875 31.871094 58.417969 30.488281 64 30.480469 C 69.582031 30.484375 75.078125 31.863281 80 34.496094 L 80 5.695312 C 74.84375 4.269531 69.515625 3.539062 64.167969 3.527344 Z M 5.695312 48 C 4.257812 53.195312 3.527344 58.558594 3.523438 63.945312 L 3.523438 64.039062 C 3.546875 69.441406 4.300781 74.8125 5.761719 80.011719 L 34.515625 80.011719 C 31.875 75.085938 30.488281 69.585938 30.480469 64 C 30.484375 58.417969 31.863281 52.921875 34.496094 48 Z M 93.488281 48 C 96.128906 52.921875 97.511719 58.417969 97.519531 64 C 97.515625 69.585938 96.132812 75.085938 93.496094 80.011719 L 122.300781 80.011719 C 123.746094 74.796875 124.476562 69.410156 124.480469 64 C 124.457031 58.589844 123.703125 53.207031 122.242188 48 Z M 80 93.488281 C 75.078125 96.128906 69.582031 97.511719 64 97.519531 C 58.417969 97.515625 52.925781 96.136719 48 93.503906 L 48 122.304688 C 53.210938 123.746094 58.59375 124.476562 64 124.480469 C 69.410156 124.457031 74.792969 123.703125 80 122.242188 Z M 80 93.488281 "/>
+<use xlink:href="#surface49865" mask="url(#mask0)"/>
+<use xlink:href="#image49875"/>
+<use xlink:href="#image49885"/>
+</g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.baobab.svg b/benchmarks/hicolor-apps/org.gnome.baobab.svg
new file mode 100644
index 00000000..da171de0
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.baobab.svg
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1106">
+ <stop
+ id="stop1102"
+ offset="0"
+ style="stop-color:#26a269;stop-opacity:1" />
+ <stop
+ id="stop1104"
+ offset="1"
+ style="stop-color:#2ec27e;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1096">
+ <stop
+ id="stop1092"
+ offset="0"
+ style="stop-color:#e5a50a;stop-opacity:1" />
+ <stop
+ style="stop-color:#f8e45c;stop-opacity:1"
+ offset="0.25551495"
+ id="stop1100" />
+ <stop
+ id="stop1094"
+ offset="1"
+ style="stop-color:#e5a50a;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(1.1538452,0,0,1.0344633,-9.8460411,-6.0655371)"
+ gradientUnits="userSpaceOnUse"
+ y2="264.00109"
+ x2="116"
+ y1="264.0011"
+ x1="13.916016"
+ id="linearGradient1098"
+ xlink:href="#linearGradient1096" />
+ <linearGradient
+ gradientTransform="matrix(1.1538452,0,0,1.0344633,-9.8460411,-6.0655371)"
+ gradientUnits="userSpaceOnUse"
+ y2="251.71291"
+ x2="19.416016"
+ y1="251.71291"
+ x1="12"
+ id="linearGradient1108"
+ xlink:href="#linearGradient1106" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <path
+ id="path866-7-6-2-1-2-0"
+ d="m 4.0001013,231.86102 v 10.24361 0.10107 h 0.0045 c -0.00138,12.64648 4.9672147,24.88909 14.0331927,34.57774 l 6e-6,-10.34468 c -2.650757,-2.83281 1.736827,-12.74165 -0.191556,-15.9574 -4.66697,-7.78258 -13.8426131,-9.6715 -13.8416358,-18.62034 z"
+ style="display:inline;opacity:1;fill:url(#linearGradient1108);fill-opacity:1;stroke:none;stroke-width:0.43333334;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path866-7-6-2-1-7"
+ d="M 18.037794,276.78344 64.000052,242.20566 V 227.72317 L 18.0378,262.30091 Z"
+ style="display:inline;opacity:1;fill:#26a269;fill-opacity:1;stroke:none;stroke-width:0.43333334;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path866-7-6"
+ d="M 18.037424,266.4379 C 3.0489994,250.42352 -0.23291655,228.07412 9.621634,209.1275 c 9.85455,-18.94662 31.060565,-31.05857 54.378419,-31.05857 l 13.846141,28.96497 -13.846142,24.82712 z"
+ style="display:inline;opacity:1;fill:#57e389;fill-opacity:1;stroke:none;stroke-width:0.43333334;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <rect
+ y="229.7921"
+ x="64.000053"
+ height="13.654913"
+ width="59.99995"
+ id="rect875"
+ style="display:inline;opacity:1;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:5.19999981;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
+ <path
+ d="M 64.000055,176.00001 A 59.999947,53.792088 0 0 1 124,229.7921 H 64.000053 Z"
+ id="path868"
+ style="display:inline;opacity:1;fill:#62a0ea;fill-opacity:1;stroke:none;stroke-width:0.43333334;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path886-3"
+ d="m 124,238.0678 c -0.0173,1.38143 -0.094,2.76172 -0.22987,4.13786 0.13587,-1.37614 0.21254,-2.75643 0.22987,-4.13786 z m -0.22987,4.13786 c -1.80242,21.03072 -23.823526,17.59412 -45.923936,24.82711 -23.70225,7.73475 -43.59439,22.93551 -59.808394,5.61277 v 4.13786 c 16.214004,17.32274 42.781319,23.70427 66.483569,15.96952 C 108.22372,285.0185 123.99967,264.81945 124,242.20566 Z"
+ style="display:inline;opacity:1;fill:url(#linearGradient1098);fill-opacity:1;stroke:none;stroke-width:0.43333334;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ <path
+ id="circle984"
+ d="m 124,238.0678 c 0,22.6141 -15.77606,42.81355 -39.478759,50.54802 -23.702695,7.73448 -50.270219,1.35227 -66.483817,-15.97114 L 64.000052,238.0678 Z"
+ style="display:inline;opacity:1;fill:#f9f06b;fill-opacity:1;stroke:none;stroke-width:0.43333334;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.clocks.svg b/benchmarks/hicolor-apps/org.gnome.clocks.svg
new file mode 100644
index 00000000..1f2729cc
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.clocks.svg
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient950">
+ <stop
+ style="stop-color:#9a9996;stop-opacity:1"
+ offset="0"
+ id="stop946" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="1"
+ id="stop948" />
+ </linearGradient>
+ <linearGradient
+ y2="812.88245"
+ x2="1662.9901"
+ y1="806.29718"
+ x1="1660.8571"
+ gradientTransform="matrix(1.8293937,-0.81599442,0.81599442,1.8293937,-3645.9624,100.02949)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1001"
+ xlink:href="#linearGradient950" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <path
+ id="path945"
+ d="M 123.99993,237 A 59.999995,59.999995 0 0 1 63.999945,297 59.999995,59.999995 0 0 1 3.9999381,237 59.999995,59.999995 0 0 1 63.999945,177.00001 59.999995,59.999995 0 0 1 123.99993,237 Z"
+ style="display:inline;opacity:1;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect978"
+ width="112"
+ height="114"
+ x="8"
+ y="179"
+ rx="56"
+ ry="56" />
+ <path
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="M 123.99993,235 A 59.999995,59.999995 0 0 1 63.999945,294.99999 59.999995,59.999995 0 0 1 3.9999381,235 59.999995,59.999995 0 0 1 63.999945,175 59.999995,59.999995 0 0 1 123.99993,235 Z"
+ id="path981" />
+ <circle
+ r="54"
+ style="display:inline;opacity:1;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="circle983"
+ cx="63.999943"
+ cy="235" />
+ <path
+ id="path928"
+ d="m 90.034858,207.99195 a 1.0016649,1.0016649 0 0 0 -0.77686,0.33008 L 67.283393,231.98707 A 5.9999995,5.9999995 0 0 0 61.70136,231.46461 L 47.480658,215.66382 a 2.0033298,2.0033298 0 0 0 -1.603515,-0.68212 2.0033298,2.0033298 0 0 0 -1.374025,3.36181 l 14.21924,15.79932 a 5.9999995,5.9999995 0 0 0 -0.209963,5.30517 5.9999995,5.9999995 0 0 0 2.404298,2.69922 l -11.8584,30.49366 a 1.0016649,1.0016649 0 1 0 1.86719,0.72558 l 11.85742,-30.49121 a 5.9999995,5.9999995 0 0 0 3.65332,-0.39209 5.9999995,5.9999995 0 0 0 3.035157,-7.92383 5.9999995,5.9999995 0 0 0 -0.725097,-1.2041 l 21.979495,-23.66992 a 1.0016649,1.0016649 0 0 0 -0.69092,-1.69336 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.2;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.00625896;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new" />
+ <path
+ style="display:inline;fill:#c0bfbc;fill-rule:evenodd;stroke:url(#linearGradient1001);stroke-width:4.00625896;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
+ d="m 64.000045,235 -18,-20"
+ id="path987" />
+ <path
+ id="path989"
+ d="M 64.000045,235 90.000048,207"
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.00312948;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ <path
+ style="display:inline;fill:none;fill-rule:evenodd;stroke:#ed333b;stroke-width:2.00312948;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
+ d="m 64.000045,235 -14,36"
+ id="path991" />
+ <circle
+ r="5.9999995"
+ cy="240.68896"
+ cx="-37.280369"
+ id="circle993"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#d5d3cf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.77220678;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ transform="rotate(-24.039088)" />
+ <circle
+ r="2.0031295"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#131c1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8.01251698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="circle995"
+ cx="64.029114"
+ cy="235" />
+ <circle
+ r="2"
+ cy="235"
+ cx="64.029114"
+ id="circle997"
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#131c1a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8.01251698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ <path
+ id="circle1003"
+ d="m 64.000045,181 a 54,54 0 0 0 -54,54 54,54 0 0 0 0.0415,1.1709 A 54,54 0 0 1 64.000045,183 54,54 0 0 1 117.95854,235.82813 54,54 0 0 0 118.00004,235 54,54 0 0 0 64.000035,181 Z"
+ style="display:inline;opacity:0.1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.01129822px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.eog.svg b/benchmarks/hicolor-apps/org.gnome.eog.svg
new file mode 100644
index 00000000..b351442e
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.eog.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
+<defs>
+<radialGradient id="radial0" gradientUnits="userSpaceOnUse" cx="131.914749" cy="55.927143" fx="131.914749" fy="55.927143" r="160" gradientTransform="matrix(0.232034,-0.541475,-0.368794,-0.0298398,4.277749,118.958491)">
+<stop offset="0" style="stop-color:rgb(92.941177%,20%,23.137255%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(63.921571%,27.843139%,72.941178%);stop-opacity:1;"/>
+</radialGradient>
+<radialGradient id="radial1" gradientUnits="userSpaceOnUse" cx="525.587769" cy="638.591797" fx="525.587769" fy="638.591797" r="192" gradientTransform="matrix(-0.107656,-0.225172,-0.327748,0.258343,373.879735,30.205086)">
+<stop offset="0" style="stop-color:rgb(10.980392%,44.313726%,84.705883%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(20.784314%,51.764709%,89.411765%);stop-opacity:0.00829876;"/>
+</radialGradient>
+<clipPath id="clip1">
+ <path d="M 7 46 L 57 46 L 57 93 L 7 93 Z M 7 46 "/>
+</clipPath>
+<clipPath id="clip2">
+ <path d="M 32.25 46.957031 C 19.6875 46.96875 9.085938 56.636719 7.503906 69.53125 C 9.0625 82.445312 19.667969 92.144531 32.25 92.160156 C 44.816406 92.148438 55.414062 82.480469 57 69.585938 C 55.441406 56.671875 44.835938 46.972656 32.25 46.957031 Z M 32.25 46.957031 "/>
+</clipPath>
+<radialGradient id="radial2" gradientUnits="userSpaceOnUse" cx="131.914749" cy="55.927143" fx="131.914749" fy="55.927143" r="160" gradientTransform="matrix(0.485163,-1.148584,-0.771115,-0.0632965,-47.124961,203.988569)">
+<stop offset="0" style="stop-color:rgb(92.941177%,20%,23.137255%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(63.921571%,27.843139%,72.941178%);stop-opacity:1;"/>
+</radialGradient>
+<radialGradient id="radial3" gradientUnits="userSpaceOnUse" cx="525.587769" cy="638.591797" fx="525.587769" fy="638.591797" r="192" gradientTransform="matrix(-0.225099,-0.477638,-0.685291,0.548001,725.67923,15.723794)">
+<stop offset="0" style="stop-color:rgb(10.980392%,44.313726%,84.705883%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(20.784314%,51.764709%,89.411765%);stop-opacity:0.00829876;"/>
+</radialGradient>
+<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="22" y1="37" x2="62" y2="37" gradientTransform="matrix(1.4,0,0,1.4,-26.799973,2.491745)">
+<stop offset="0" style="stop-color:rgb(58.039218%,57.647061%,56.470591%);stop-opacity:1;"/>
+<stop offset="0.0908155" style="stop-color:rgb(87.058824%,86.666667%,85.490197%);stop-opacity:1;"/>
+<stop offset="0.336093" style="stop-color:rgb(60.392159%,60.000002%,58.823532%);stop-opacity:1;"/>
+<stop offset="0.844326" style="stop-color:rgb(76.47059%,75.294119%,72.941178%);stop-opacity:1;"/>
+<stop offset="0.930505" style="stop-color:rgb(87.058824%,86.666667%,85.490197%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+</linearGradient>
+<radialGradient id="radial4" gradientUnits="userSpaceOnUse" cx="-172.560638" cy="28.569126" fx="-172.560638" fy="28.569126" r="15.85742" gradientTransform="matrix(1.560712,0,0,1.4252,300.693664,13.349996)">
+<stop offset="0" style="stop-color:rgb(100%,100%,100%);stop-opacity:0.358268;"/>
+<stop offset="1" style="stop-color:rgb(100%,100%,100%);stop-opacity:0.0944882;"/>
+</radialGradient>
+<filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
+</filter>
+<mask id="mask0">
+ <g filter="url(#alpha)">
+<rect x="0" y="0" width="128" height="128" style="fill:rgb(0%,0%,0%);fill-opacity:0.1;stroke:none;"/>
+ </g>
+</mask>
+<clipPath id="clip3">
+ <rect x="0" y="0" width="192" height="152"/>
+</clipPath>
+<g id="surface382" clip-path="url(#clip3)">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(27.058825%,21.176471%,21.568628%);fill-opacity:1;" d="M 40 59.957031 C 26.191406 59.957031 15 71.152344 15 84.957031 C 15.011719 85.996094 15.085938 86.777344 15.222656 87.804688 C 15.222656 75.957031 27.421875 65.96875 40 65.957031 C 52.597656 65.972656 64.777344 75.957031 64.777344 87.859375 C 64.917969 86.816406 64.992188 86.011719 65 84.957031 C 65 71.152344 53.808594 59.957031 40 59.957031 Z M 40 59.957031 "/>
+</g>
+<radialGradient id="radial5" gradientUnits="userSpaceOnUse" cx="40" cy="227" fx="40" fy="227" r="28" gradientTransform="matrix(0.575553,0,0.0000000160551,1.540703,8.977913,-280.78108)">
+<stop offset="0" style="stop-color:rgb(100%,100%,100%);stop-opacity:1;"/>
+<stop offset="0.744626" style="stop-color:rgb(98.039216%,98.039216%,98.039216%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(87.450981%,87.450981%,87.450981%);stop-opacity:1;"/>
+</radialGradient>
+</defs>
+<g id="surface373">
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(96.470588%,96.078432%,95.686275%);fill-opacity:1;" d="M 20 11.957031 L 108 11.957031 C 112.417969 11.957031 116 15.539062 116 19.957031 L 116 108 C 116 112.417969 112.417969 116 108 116 L 20 116 C 15.582031 116 12 112.417969 12 108 L 12 19.957031 C 12 15.539062 15.582031 11.957031 20 11.957031 Z M 20 11.957031 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial0);" d="M 20 85.957031 L 108 85.957031 L 108 19.957031 L 20 19.957031 Z M 20 85.957031 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial1);" d="M 20 85.957031 L 108 85.957031 L 108 19.957031 L 20 19.957031 Z M 20 85.957031 "/>
+<g clip-path="url(#clip1)" clip-rule="nonzero">
+<g clip-path="url(#clip2)" clip-rule="nonzero">
+<rect x="0" y="0" width="128" height="128" style="fill:url(#radial2);stroke:none;"/>
+<rect x="0" y="0" width="128" height="128" style="fill:url(#radial3);stroke:none;"/>
+</g>
+</g>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 31.902344 42.054688 C 17.542969 42.054688 5.902344 53.695312 5.902344 68.054688 C 5.910156 70.128906 6.167969 68.191406 6.667969 70.203125 C 9.355469 58.371094 19.867188 49.96875 32 49.957031 C 43.980469 49.972656 54.402344 58.171875 57.234375 69.8125 C 57.671875 67.925781 57.894531 69.992188 57.902344 68.054688 C 57.902344 53.695312 46.261719 42.054688 31.902344 42.054688 Z M 4 65.957031 L 4 73.957031 C 4 89.421875 16.535156 101.957031 32 101.957031 C 47.464844 101.957031 60 89.421875 60 73.957031 L 60 65.957031 C 60 73.109375 57.316406 79.03125 52.90625 83.335938 C 48.019531 90.0625 40.214844 94.046875 31.902344 94.054688 C 23.292969 94.046875 15.25 89.777344 10.417969 82.652344 C 6.410156 78.414062 4 72.734375 4 65.957031 Z M 4 65.957031 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial4);" d="M 32.25 46.957031 C 19.6875 46.96875 9.085938 56.636719 7.503906 69.53125 C 9.0625 82.445312 19.667969 92.144531 32.25 92.160156 C 44.816406 92.148438 55.414062 82.480469 57 69.585938 C 55.441406 56.671875 44.835938 46.972656 32.25 46.957031 Z M 32.25 46.957031 "/>
+<use xlink:href="#surface382" transform="matrix(1,0,0,1,-8,-16)" mask="url(#mask0)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial5);" d="M 32 40.957031 C 16.558594 40.957031 4 53.519531 4 68.957031 C 4 84.398438 16.558594 96.957031 32 96.957031 C 47.441406 96.957031 60 84.398438 60 68.957031 L 60 46.957031 C 60 43.644531 57.3125 40.957031 54 40.957031 Z M 32 44.957031 C 45.277344 44.957031 56 55.679688 56 68.957031 C 56 82.238281 45.277344 92.957031 32 92.957031 C 18.722656 92.957031 8 82.238281 8 68.957031 C 8 55.679688 18.722656 44.957031 32 44.957031 Z M 32 44.957031 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(87.058824%,86.666667%,85.490197%);fill-opacity:1;" d="M 32 39.957031 C 16.558594 39.957031 4 52.519531 4 67.957031 C 4 83.398438 16.558594 95.957031 32 95.957031 C 47.441406 95.957031 60 83.398438 60 67.957031 L 60 45.957031 C 60 42.644531 57.3125 39.957031 54 39.957031 Z M 32 43.957031 C 45.277344 43.957031 56 54.679688 56 67.957031 C 56 81.238281 45.277344 91.957031 32 91.957031 C 18.722656 91.957031 8 81.238281 8 67.957031 C 8 54.679688 18.722656 43.957031 32 43.957031 Z M 32 43.957031 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(59.215689%,58.039218%,56.862748%);fill-opacity:1;" d="M 56 45.957031 C 56 47.0625 55.105469 47.957031 54 47.957031 C 52.894531 47.957031 52 47.0625 52 45.957031 C 52 44.855469 52.894531 43.957031 54 43.957031 C 55.105469 43.957031 56 44.855469 56 45.957031 Z M 56 45.957031 "/>
+</g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.gedit.svg b/benchmarks/hicolor-apps/org.gnome.gedit.svg
new file mode 100644
index 00000000..af97ab9e
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.gedit.svg
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1038">
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0"
+ id="stop1026" />
+ <stop
+ id="stop1028"
+ offset="0.04545454"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ <stop
+ id="stop1030"
+ offset="0.09090909"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ id="stop1032"
+ offset="0.90909088"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="0.95454544"
+ id="stop1034" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="1"
+ id="stop1036" />
+ </linearGradient>
+ <clipPath
+ id="clipPath2213"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ ry="8"
+ rx="8"
+ y="-188"
+ x="160"
+ height="56"
+ width="16"
+ id="rect2215"
+ style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient1005">
+ <stop
+ style="stop-color:#d0bb8e;stop-opacity:1"
+ offset="0"
+ id="stop1001" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1"
+ id="stop1003" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1351-3">
+ <stop
+ id="stop1347"
+ offset="0"
+ style="stop-color:#d5d3cf;stop-opacity:1" />
+ <stop
+ id="stop1349-6"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(-135.99999)"
+ gradientUnits="userSpaceOnUse"
+ y2="-276"
+ x2="115.99999"
+ y1="-276"
+ x1="27.99999"
+ id="linearGradient1159"
+ xlink:href="#linearGradient1038" />
+ <linearGradient
+ gradientTransform="matrix(0.07621224,-0.44419723,0.44419725,-0.07621223,77.725794,331.83807)"
+ y2="-127.39915"
+ x2="158.51802"
+ y1="-97.698288"
+ x1="128.81717"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1103"
+ xlink:href="#linearGradient1005" />
+ <clipPath
+ id="clipPath1609-7"
+ clipPathUnits="userSpaceOnUse">
+ <path
+ style="fill:#e74747;stroke:none;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 252,116 28,-28 v -8 h -36 v 36 z"
+ id="path1611-5" />
+ </clipPath>
+ <linearGradient
+ y2="72"
+ x2="340"
+ y1="76"
+ x1="344"
+ gradientTransform="matrix(0.25,0,0,0.25,180,83)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1130"
+ xlink:href="#linearGradient1351-3" />
+ <clipPath
+ id="clipPath1062"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ transform="scale(-1)"
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:13.71876526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1064"
+ width="88"
+ height="108"
+ x="-108"
+ y="-116"
+ rx="8"
+ ry="8"
+ clip-path="none" />
+ </clipPath>
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:none"
+ id="layer2">
+ <g
+ id="g9211"
+ style="display:inline;enable-background:new">
+ <rect
+ style="display:inline;overflow:visible;visibility:visible;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;enable-background:accumulate"
+ id="rect13805"
+ width="128"
+ height="128"
+ x="9.2651362e-08"
+ y="172" />
+ <circle
+ cx="64.000031"
+ cy="236"
+ r="59.504131"
+ id="circle2892"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="7.9292889"
+ rx="8.701004"
+ y="180.49496"
+ x="20.495007"
+ height="111.01005"
+ width="87.009987"
+ id="rect2894"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="7.9238095"
+ rx="7.9238095"
+ y="184.49524"
+ x="12.495266"
+ height="103.00952"
+ width="103.00952"
+ id="rect2896"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ ry="8.701005"
+ rx="7.9292889"
+ y="200.49496"
+ x="8.4950066"
+ height="87.010048"
+ width="111.01004"
+ id="rect2898"
+ style="display:inline;opacity:0.1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.99000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.99000001, 0.99000001;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path2900"
+ d="M 2.6203015e-5,288.99999 H 128.00003"
+ style="display:inline;fill:none;stroke:#62a0ea;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;enable-background:new" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ id="layer9">
+ <rect
+ clip-path="none"
+ ry="8"
+ rx="8"
+ y="-294"
+ x="-108"
+ height="30.25"
+ width="88"
+ id="rect1167"
+ style="opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:13.71876526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ transform="scale(-1)" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-374,202.04808)"
+ clip-path="url(#clipPath2213)"
+ id="g8005"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-424,202.04808)"
+ clip-path="url(#clipPath2213)"
+ id="g8015"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-414,202.04808)"
+ clip-path="url(#clipPath2213)"
+ id="g8025"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-404,202.04808)"
+ clip-path="url(#clipPath2213)"
+ id="g8035"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-394,202.04808)"
+ clip-path="url(#clipPath2213)"
+ id="g8045"
+ style="display:inline;enable-background:new" />
+ <g
+ transform="matrix(0.25,0,0,0.25,-384,202.04808)"
+ clip-path="url(#clipPath2213)"
+ id="g8055"
+ style="display:inline;enable-background:new" />
+ <rect
+ transform="scale(-1)"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1159);fill-opacity:1;stroke:none;stroke-width:13.71876526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ id="rect1151"
+ width="88"
+ height="40"
+ x="-108"
+ y="-292"
+ rx="8"
+ ry="8"
+ clip-path="none" />
+ <rect
+ clip-path="none"
+ ry="8"
+ rx="8"
+ y="-288"
+ x="-108"
+ height="108"
+ width="88"
+ id="rect1161"
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:13.71876526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ transform="scale(-1)" />
+ <g
+ transform="translate(-4,2)"
+ id="g1153">
+ <path
+ style="display:inline;opacity:1;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ d="m 32,188 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z m 8,0 c -1.10457,0 -2,0.89543 -2,2 0,1.10457 0.89543,2 2,2 1.10457,0 2,-0.89543 2,-2 0,-1.10457 -0.89543,-2 -2,-2 z"
+ id="path950-3-7" />
+ <circle
+ r="2"
+ cy="190"
+ cx="-104"
+ id="path1148"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <path
+ d="m 112,192 a 2,2 0 0 1 -1.73205,-1 2,2 0 0 1 0,-2 A 2,2 0 0 1 112,188"
+ style="opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle16770" />
+ <path
+ transform="scale(-1,1)"
+ d="m -24,192 a 2,2 0 0 1 -1.732051,-1 2,2 0 0 1 0,-2 A 2,2 0 0 1 -24,188"
+ style="display:inline;opacity:1;vector-effect:none;fill:#d5d3cf;fill-opacity:1;stroke:none;stroke-width:16;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ id="circle16770-3" />
+ </g>
+ <rect
+ style="display:inline;opacity:1;fill:url(#linearGradient1130);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1056-3"
+ width="36"
+ height="36"
+ x="252"
+ y="88"
+ rx="11.2"
+ ry="11.2"
+ transform="matrix(0,0.71428571,0.71428571,0,25.142858,88.000008)"
+ clip-path="url(#clipPath1609-7)" />
+ <path
+ clip-path="url(#clipPath1062)"
+ id="path1047"
+ transform="translate(0,172)"
+ d="M 100,16 32,84 v 20 h 22 l 68,-68 -7.86719,-5.761719 -0.0742,-0.07227 -8.22461,-8.22461 z"
+ style="opacity:0.2;vector-effect:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:12.48982716;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1103);fill-opacity:1;stroke:none;stroke-width:12.48982716;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
+ d="m 32,276 v -20 l 20,20 z"
+ id="path1038" />
+ <path
+ id="path1042"
+ d="m 31.999996,276 4e-6,-8 8,8 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#424048;fill-opacity:1;stroke:none;stroke-width:12.48982716;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path1044"
+ d="m 50,274 -16,-16 67.94696,-67.94695 16,16 z"
+ style="display:inline;fill:#f6d32d;fill-opacity:1;stroke:none;stroke-width:0.50643784px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path1046"
+ d="M 37.887772,261.88776 32,256 l 68.00001,-67.99999 5.83472,5.9408 z"
+ style="display:inline;opacity:1;fill:#f9f06b;fill-opacity:1;stroke:none;stroke-width:0.3581056px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ <path
+ id="path1048"
+ d="M 46.112246,270.11223 52,276 l 68,-68 -5.9408,-5.83472 z"
+ style="display:inline;opacity:1;fill:#e5a50a;fill-opacity:1;stroke:none;stroke-width:0.3581056px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.gitlab.somas.Apostrophe.svg b/benchmarks/hicolor-apps/org.gnome.gitlab.somas.Apostrophe.svg
new file mode 100644
index 00000000..e17cf819
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.gitlab.somas.Apostrophe.svg
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1234">
+ <stop
+ style="stop-color:#aeadab;stop-opacity:1"
+ offset="0"
+ id="stop1230" />
+ <stop
+ style="stop-color:#ceccc8;stop-opacity:1"
+ offset="1"
+ id="stop1232" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1228">
+ <stop
+ style="stop-color:#e66100;stop-opacity:1"
+ offset="0"
+ id="stop1224" />
+ <stop
+ style="stop-color:#ff7800;stop-opacity:1"
+ offset="1"
+ id="stop1226" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1222">
+ <stop
+ id="stop1210"
+ offset="0"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0.03846159"
+ id="stop1212" />
+ <stop
+ id="stop1214"
+ offset="0.07692312"
+ style="stop-color:#77767b;stop-opacity:1" />
+ <stop
+ style="stop-color:#77767b;stop-opacity:1"
+ offset="0.92307693"
+ id="stop1216" />
+ <stop
+ id="stop1218"
+ offset="0.96153843"
+ style="stop-color:#c0bfbc;stop-opacity:1" />
+ <stop
+ id="stop1220"
+ offset="1"
+ style="stop-color:#9a9996;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1339">
+ <stop
+ id="stop1335"
+ offset="0"
+ style="stop-color:#5e5c64;stop-opacity:1;" />
+ <stop
+ id="stop1337"
+ offset="1"
+ style="stop-color:#77767b;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ y2="254"
+ x2="116"
+ y1="254"
+ x1="11.999994"
+ gradientTransform="matrix(1.0769231,0,0,1.0666667,-4.92308,-14.933327)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1820"
+ xlink:href="#linearGradient1222" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,20,213)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1822"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,36,273)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1824"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="17"
+ gradientTransform="rotate(90,10,247)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1826"
+ xlink:href="#linearGradient1234" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,30,223)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1828"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,40,233)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1830"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,50,243)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1832"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,60,253)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1834"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,14,229)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1836"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,24,239)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1838"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,34,249)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1840"
+ xlink:href="#linearGradient1339" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,49,264)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1842"
+ xlink:href="#linearGradient1228" />
+ <linearGradient
+ y2="209"
+ x2="31"
+ y1="209"
+ x1="19"
+ gradientTransform="rotate(90,0,237)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1844"
+ xlink:href="#linearGradient1339" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <rect
+ y="224.00003"
+ x="8"
+ height="64"
+ width="112.00001"
+ id="rect1768"
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1820);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
+ rx="8"
+ ry="8" />
+ <rect
+ ry="8.8421087"
+ rx="8"
+ style="opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:4.2052598;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1770"
+ width="112"
+ height="84.000015"
+ x="8"
+ y="200" />
+ <path
+ id="path1772"
+ d="m 21,212 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1822);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 31,216 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ id="path1774" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 41,212 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ id="path1776" />
+ <path
+ id="path1778"
+ d="m 61,212 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 81,212 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ id="path1780" />
+ <path
+ id="path1782"
+ d="m 101,212 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ id="path1784"
+ d="m 31,234 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 51,234 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ id="path1786" />
+ <path
+ id="path1788"
+ d="m 71,234 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#c64600;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 91,234 h 7 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -9 c -2.216,0 -4.220501,-1.79499 -4,-4 l 1,-10 c 0.220501,-2.20501 1.784,-4 4,-4 z"
+ id="path1790" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 25,256 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ id="path1792" />
+ <path
+ id="path1794"
+ d="m 97,256 h 6 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 h -8 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ style="opacity:1;vector-effect:none;fill:#3d3846;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1824);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 107,260 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ id="path1796" />
+ <path
+ style="opacity:1;vector-effect:none;fill:#828186;fill-opacity:1;stroke:none;stroke-width:3.99999952;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 45,256 h 38 c 2.216,0 3.7795,1.79499 4,4 l 1,10 c 0.2205,2.20501 -1.784,4 -4,4 H 44 c -2.216,0 -4.2205,-1.79499 -4,-4 l 1,-10 c 0.2205,-2.20501 1.784,-4 4,-4 z"
+ id="path1798" />
+ <path
+ id="path1800"
+ d="m 87,260 v 4 c 0,2.216 -1.784,4 -4,4 H 45 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 38 c 2.216,0 4,1.784 4,4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1826);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ id="path1802"
+ d="m 51,216 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1828);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ id="path1804"
+ d="m 71,216 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1830);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1832);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 91,216 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ id="path1806" />
+ <path
+ id="path1808"
+ d="m 111,216 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1834);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1836);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 41,238 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ id="path1810" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1838);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 61,238 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ id="path1812" />
+ <path
+ id="path1814"
+ d="m 81,238 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1840);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1842);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 102,238 v 4 c 0,2.216 -1.784,4 -4,4 h -7 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 7 c 2.216,0 4,1.784 4,4 z"
+ id="path1816" />
+ <path
+ id="path1818"
+ d="m 35,260 v 4 c 0,2.216 -1.784,4 -4,4 h -6 c -2.216,0 -4,-1.784 -4,-4 v -4 c 0,-2.216 1.784,-4 4,-4 h 6 c 2.216,0 4,1.784 4,4 z"
+ style="opacity:1;vector-effect:none;fill:url(#linearGradient1844);fill-opacity:1;stroke:none;stroke-width:3.99999928;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.seahorse.Application.svg b/benchmarks/hicolor-apps/org.gnome.seahorse.Application.svg
new file mode 100644
index 00000000..9e70c2fd
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.seahorse.Application.svg
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1296">
+ <stop
+ id="stop1292"
+ offset="0"
+ style="stop-color:#77767b;stop-opacity:1;" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0.17589436"
+ id="stop1300" />
+ <stop
+ id="stop1302"
+ offset="0.4092612"
+ style="stop-color:#77767b;stop-opacity:1" />
+ <stop
+ id="stop1294"
+ offset="1"
+ style="stop-color:#3d3846;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient969">
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="0"
+ id="stop963" />
+ <stop
+ id="stop965"
+ offset="0.25731823"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0.5999999"
+ id="stop1085" />
+ <stop
+ id="stop1087"
+ offset="0.70312482"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="1"
+ id="stop967" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1040">
+ <stop
+ style="stop-color:#c0bfbc;stop-opacity:1"
+ offset="0"
+ id="stop1036" />
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="1"
+ id="stop1038" />
+ </linearGradient>
+ <linearGradient
+ y2="249.87819"
+ x2="67.121834"
+ y1="238.30762"
+ x1="78.692398"
+ gradientTransform="translate(55.100502,0.07106726)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1986"
+ xlink:href="#linearGradient969" />
+ <linearGradient
+ y2="70.300697"
+ x2="85.886963"
+ y1="67.679771"
+ x1="88.507896"
+ gradientTransform="translate(55.769701,171.28412)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1988"
+ xlink:href="#linearGradient1040" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="268"
+ x2="198"
+ y1="268"
+ x1="142"
+ id="linearGradient1039"
+ xlink:href="#linearGradient1296" />
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <rect
+ style="display:inline;opacity:1;fill:#2ec27e;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1027"
+ width="112"
+ height="63.999977"
+ x="8"
+ y="224"
+ rx="8"
+ ry="8" />
+ <g
+ style="display:inline;opacity:1;stroke:#26a269;stroke-width:0.93541437;enable-background:new"
+ id="g1256"
+ transform="matrix(1,0,0,1.1428571,-4.8522949e-8,-22.857143)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 27,230 v 14"
+ id="path1164" />
+ <path
+ id="path1166"
+ d="m 32,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:3.7416575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path1168"
+ d="m 37,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 41,230 v 14"
+ id="path1170" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:3.7416575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 46,230 v 14"
+ id="path1172" />
+ <path
+ id="path1174"
+ d="m 56,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:3.7416575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 51,230 v 14"
+ id="path1176" />
+ <path
+ id="path1178"
+ d="m 63,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:5.61248589;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path1180"
+ d="m 69,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path1182"
+ d="m 73,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 77,230 v 14"
+ id="path1184" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:3.7416575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 82,230 v 14"
+ id="path1186" />
+ <path
+ id="path1188"
+ d="m 87,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 99,230 v 14"
+ id="path1190" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:5.61248589;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 93,230 v 14"
+ id="path1192" />
+ <path
+ id="path1194"
+ d="m 103,230 v 14"
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#26a269;stroke-width:1.87082875;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 107,230 v 14"
+ id="path1196" />
+ </g>
+ <g
+ style="display:inline;fill:#8ff0a4;enable-background:new"
+ id="g1130"
+ transform="translate(-4.8522949e-8,12)">
+ <path
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:medium;line-height:1000%;font-family:Cantarell;-inkscape-font-specification:'Cantarell Ultra-Bold';letter-spacing:2px;word-spacing:0px;fill:#8ff0a4;fill-opacity:1;stroke:none;stroke-width:0.74077076px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 22.21582,254 1.197265,5.06836 -3.90039,-3.2793 -1.453125,2.5918 5.009765,1.6582 -5.042968,1.58985 1.433593,2.64062 3.955078,-3.30469 L 22.21582,266 h 3.410156 l -1.101562,-4.95898 3.833984,3.31445 1.476562,-2.61914 -4.978515,-1.68555 5.117187,-1.42578 -1.453125,-2.61914 -4.033203,3.08398 L 25.624023,254 Z"
+ id="path1940" />
+ <path
+ id="path1056"
+ d="m 38.21582,254 1.197265,5.06836 -3.90039,-3.2793 -1.453125,2.5918 5.009765,1.6582 -5.042968,1.58985 1.433593,2.64062 3.955078,-3.30469 L 38.21582,266 h 3.410156 l -1.101562,-4.95898 3.833984,3.31445 1.476562,-2.61914 -4.978515,-1.68555 5.117187,-1.42578 -1.453125,-2.61914 -4.033203,3.08398 L 41.624023,254 Z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:medium;line-height:1000%;font-family:Cantarell;-inkscape-font-specification:'Cantarell Ultra-Bold';letter-spacing:2px;word-spacing:0px;fill:#8ff0a4;fill-opacity:1;stroke:none;stroke-width:0.74077076px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:medium;line-height:1000%;font-family:Cantarell;-inkscape-font-specification:'Cantarell Ultra-Bold';letter-spacing:2px;word-spacing:0px;fill:#8ff0a4;fill-opacity:1;stroke:none;stroke-width:0.74077076px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 54.21582,254 1.197265,5.06836 -3.90039,-3.2793 -1.453125,2.5918 5.009765,1.6582 -5.042968,1.58985 1.433593,2.64062 3.955078,-3.30469 L 54.21582,266 h 3.410156 l -1.101562,-4.95898 3.833984,3.31445 1.476562,-2.61914 -4.978515,-1.68555 5.117187,-1.42578 -1.453125,-2.61914 -4.033203,3.08398 L 57.624023,254 Z"
+ id="path1062" />
+ <path
+ id="path1068"
+ d="m 70.21582,254 1.197265,5.06836 -3.90039,-3.2793 -1.453125,2.5918 5.009765,1.6582 -5.042968,1.58985 1.433593,2.64062 3.955078,-3.30469 L 70.21582,266 h 3.410156 l -1.101562,-4.95898 3.833984,3.31445 1.476562,-2.61914 -4.978515,-1.68555 5.117187,-1.42578 -1.453125,-2.61914 -4.033203,3.08398 L 73.624023,254 Z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:medium;line-height:1000%;font-family:Cantarell;-inkscape-font-specification:'Cantarell Ultra-Bold';letter-spacing:2px;word-spacing:0px;fill:#8ff0a4;fill-opacity:1;stroke:none;stroke-width:0.74077076px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:medium;line-height:1000%;font-family:Cantarell;-inkscape-font-specification:'Cantarell Ultra-Bold';letter-spacing:2px;word-spacing:0px;fill:#8ff0a4;fill-opacity:1;stroke:none;stroke-width:0.74077076px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 86.21582,254 1.197265,5.06836 -3.90039,-3.2793 -1.453125,2.5918 5.009765,1.6582 -5.042968,1.58985 1.433593,2.64062 3.955078,-3.30469 L 86.21582,266 h 3.410156 l -1.101562,-4.95898 3.833984,3.31445 1.476562,-2.61914 -4.978515,-1.68555 5.117187,-1.42578 -1.453125,-2.61914 -4.033203,3.08398 L 89.624023,254 Z"
+ id="path1074" />
+ <path
+ id="path1080"
+ d="m 102.21582,254 1.19726,5.06836 -3.900385,-3.2793 -1.453125,2.5918 5.00976,1.6582 -5.042963,1.58985 1.433593,2.64062 3.95508,-3.30469 L 102.21582,266 h 3.41016 l -1.10157,-4.95898 3.83399,3.31445 1.47656,-2.61914 -4.97851,-1.68555 5.11718,-1.42578 -1.45312,-2.61914 -4.03321,3.08398 L 105.62402,254 Z"
+ style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:medium;line-height:1000%;font-family:Cantarell;-inkscape-font-specification:'Cantarell Ultra-Bold';letter-spacing:2px;word-spacing:0px;fill:#8ff0a4;fill-opacity:1;stroke:none;stroke-width:0.74077076px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <rect
+ ry="7.9999995"
+ rx="8"
+ y="200"
+ x="8"
+ height="40"
+ width="112"
+ id="rect954"
+ style="display:inline;opacity:1;fill:#2ec27e;fill-opacity:1;stroke:none;stroke-width:0.27003086;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ y="214"
+ x="8"
+ height="18"
+ width="112"
+ id="rect961"
+ style="display:inline;opacity:1;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ id="path1138"
+ d="m 22,242 -7.2,6 7.2,6 z"
+ style="display:inline;fill:#26a269;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
+ </g>
+ <g
+ id="g959-3"
+ transform="rotate(-180,107.5,242)"
+ style="display:inline;enable-background:new">
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1039);fill-opacity:1.0;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 170,296 a 28,28 0 0 1 -28,-28 28,28 0 0 1 28,-28 28,28 0 0 1 28,28 28,28 0 0 1 -28,28 z m 0.0312,-12 a 6.0312505,6.0000005 0 0 0 6.03125,-6 6.0312505,6.0000005 0 0 0 -6.03125,-6 6.0312505,6.0000005 0 0 0 -6.03125,6 6.0312505,6.0000005 0 0 0 6.03125,6 z"
+ id="path947-0" />
+ <g
+ transform="matrix(0.70710678,-0.70710678,-0.70710678,-0.70710678,243.95332,484.3158)"
+ id="g955-3">
+ <path
+ id="path1990"
+ d="m 125.41422,214.44366 -16.97055,16.97056 8.36742,8.36743 3.65338,-3.41768 4.24264,4.24264 h 2.82843 v 2.82843 l 2.12132,2.12132 h 4.24264 v 4.24264 h 2.82843 v 2.82842 h 5.65685 v 5.65686 h 2.82843 v 2.82843 h 12.72792 l 4.94974,-4.94976 v -4.24264 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#77767b;fill-opacity:1;stroke:none;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1986);fill-opacity:1;stroke:none;stroke-width:0.49999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="M 124,213.02944 107.02945,230 l 8.36742,8.36743 3.65338,-3.41768 4.24264,4.24264 h 2.82843 v 2.82843 l 2.12132,2.12132 h 4.24264 v 4.24264 h 2.82843 v 2.82842 h 5.65685 v 5.65686 h 2.82843 v 2.82843 h 12.72792 l 4.94974,-4.94976 v -4.24264 z"
+ id="path951-1" />
+ <path
+ style="display:inline;opacity:1;vector-effect:none;fill:url(#linearGradient1988);fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ d="m 125.74823,221.26459 c -1.79388,0.002 -2.67811,2.18243 -1.39257,3.43359 l 33.58547,33.5861 2.82844,-2.82843 -33.58579,-33.58579 c -0.37702,-0.38755 -0.89487,-0.60597 -1.43555,-0.60547 z"
+ id="path953-2" />
+ </g>
+ <path
+ id="path957-8"
+ d="m 170,298 a 28,28 0 0 0 28,-28 28,28 0 0 0 -28,-28 28,28 0 0 0 -28,28 28,28 0 0 0 28,28 z m -0.0312,-12 a 6.0312505,6.0000005 0 0 1 -6.03125,-6 6.0312505,6.0000005 0 0 1 6.03125,-6 6.0312505,6.0000005 0 0 1 6.03125,6 6.0312505,6.0000005 0 0 1 -6.03125,6 z"
+ style="display:inline;opacity:1;vector-effect:none;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/org.gnome.tweaks.svg b/benchmarks/hicolor-apps/org.gnome.tweaks.svg
new file mode 100644
index 00000000..4c32beee
--- /dev/null
+++ b/benchmarks/hicolor-apps/org.gnome.tweaks.svg
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 0 128 128"
+ style="display:inline;enable-background:new"
+ version="1.0"
+ id="svg11300"
+ height="128"
+ width="128">
+ <title
+ id="title4162">Adwaita Icon Template</title>
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient974">
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="0"
+ id="stop962" />
+ <stop
+ id="stop964"
+ offset="0.04166667"
+ style="stop-color:#f6f5f4;stop-opacity:1" />
+ <stop
+ style="stop-color:#d5d3cf;stop-opacity:1"
+ offset="0.08333334"
+ id="stop966" />
+ <stop
+ id="stop968"
+ offset="0.91666669"
+ style="stop-color:#deddda;stop-opacity:1" />
+ <stop
+ style="stop-color:#f6f5f4;stop-opacity:1"
+ offset="0.95833331"
+ id="stop970" />
+ <stop
+ style="stop-color:#babdb6;stop-opacity:1"
+ offset="1"
+ id="stop972" />
+ </linearGradient>
+ <linearGradient
+ y2="44"
+ x2="464"
+ y1="44"
+ x1="48"
+ gradientTransform="matrix(0.25,0,0,0.25,-110,225)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1747"
+ xlink:href="#linearGradient974" />
+ <clipPath
+ id="clipPath1784"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ ry="14"
+ rx="14"
+ y="202"
+ x="36"
+ height="28"
+ width="59.999996"
+ id="rect1786"
+ style="opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.85391253;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>GNOME Design Team</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
+ <dc:title>Adwaita Icon Template</dc:title>
+ <dc:subject>
+ <rdf:Bag />
+ </dc:subject>
+ <dc:date />
+ <dc:rights>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier />
+ <dc:relation />
+ <dc:language />
+ <dc:coverage />
+ <dc:description />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title />
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Notice" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#Attribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-172)"
+ style="display:inline"
+ id="layer1">
+ <g
+ style="display:inline"
+ id="layer9">
+ <g
+ transform="translate(110)"
+ id="g1769">
+ <rect
+ ry="8"
+ rx="8"
+ y="204"
+ x="-98"
+ height="83.999992"
+ width="104"
+ id="rect1709"
+ style="display:inline;opacity:1;fill:url(#linearGradient1747);fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
+ <rect
+ style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
+ id="rect1711"
+ width="104"
+ height="100"
+ x="-98"
+ y="184"
+ rx="8"
+ ry="8" />
+ </g>
+ <g
+ transform="translate(0,-2)"
+ id="g1802">
+ <path
+ style="opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:0.85391253;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 48,28 c -7.756,0 -14,6.244 -14,14 0,0.337684 0.0275,0.668439 0.05078,1 C 34.562237,35.716191 40.581684,30 48,30 h 32 c 7.418316,0 13.437763,5.716191 13.949219,13 C 93.9725,42.668439 94,42.337684 94,42 94,34.244 87.756,28 80,28 Z"
+ transform="translate(0,172)"
+ id="rect1790" />
+ <rect
+ ry="14"
+ rx="14"
+ y="202"
+ x="-94"
+ height="28"
+ width="59.999996"
+ id="rect1143"
+ style="opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:0.85391253;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <g
+ id="g1151"
+ transform="matrix(-1,0,0,1,130,-4)">
+ <circle
+ transform="translate(0,4)"
+ r="14"
+ cy="218"
+ cx="50"
+ id="circle1147"
+ style="opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ clip-path="url(#clipPath1784)" />
+ <rect
+ style="opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:0.88191712;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect1149"
+ width="28"
+ height="5.9999995"
+ x="36"
+ y="216" />
+ </g>
+ <circle
+ r="14"
+ cy="212"
+ cx="-80"
+ id="circle1153"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.77777779;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ </g>
+ <g
+ transform="matrix(-1,0,0,1,128,38)"
+ id="g1818">
+ <path
+ transform="translate(0,172)"
+ id="path1804"
+ d="m 48,28 c -7.756,0 -14,6.244 -14,14 0,0.337684 0.0275,0.668439 0.05078,1 C 34.562237,35.716191 40.581684,30 48,30 h 32 c 7.418316,0 13.437763,5.716191 13.949219,13 C 93.9725,42.668439 94,42.337684 94,42 94,34.244 87.756,28 80,28 Z"
+ style="opacity:1;vector-effect:none;fill:#9a9996;fill-opacity:1;stroke:none;stroke-width:0.85391253;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ ry="14"
+ rx="14"
+ y="202"
+ x="-94"
+ height="28"
+ width="59.999996"
+ id="rect1808"
+ style="opacity:1;vector-effect:none;fill:#c0bfbc;fill-opacity:1;stroke:none;stroke-width:0.85391253;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <g
+ transform="matrix(-1,0,0,1,130,-4)"
+ id="g1814">
+ <circle
+ clip-path="url(#clipPath1784)"
+ style="opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1810"
+ cx="50"
+ cy="218"
+ r="14"
+ transform="translate(0,4)" />
+ <rect
+ y="216"
+ x="36"
+ height="5.9999995"
+ width="28"
+ id="rect1812"
+ style="opacity:1;vector-effect:none;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:0.88191712;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <circle
+ transform="scale(-1,1)"
+ style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.77777779;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle1816"
+ cx="-80"
+ cy="212"
+ r="14" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/benchmarks/hicolor-apps/tootle.svg b/benchmarks/hicolor-apps/tootle.svg
new file mode 100644
index 00000000..f254da9d
--- /dev/null
+++ b/benchmarks/hicolor-apps/tootle.svg
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
+<defs>
+<linearGradient id="linear0" gradientUnits="userSpaceOnUse" x1="16.601679" y1="234" x2="16.601679" y2="226" gradientTransform="matrix(1,0,0,1,0,-172)">
+<stop offset="0" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,96.078432%,95.686275%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear1" gradientUnits="userSpaceOnUse" x1="23.25" y1="218" x2="23.25" y2="235.5" gradientTransform="matrix(-0.333333,0,0,-1,51.333328,284)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.571429" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.8" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear2" gradientUnits="userSpaceOnUse" x1="17.227051" y1="230" x2="23" y2="230" gradientTransform="matrix(1,0,0,1,0,-172)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.571429" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.957143" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear3" gradientUnits="userSpaceOnUse" x1="-11.090102" y1="236" x2="-11.090102" y2="224" gradientTransform="matrix(-1,0,0,1,0,-172)">
+<stop offset="0" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,96.078432%,95.686275%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear4" gradientUnits="userSpaceOnUse" x1="-7" y1="240" x2="-7" y2="220" gradientTransform="matrix(-1,0,0,1,0,-172)">
+<stop offset="0" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+<stop offset="0.6" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear5" gradientUnits="userSpaceOnUse" x1="43.000004" y1="201" x2="49" y2="201" gradientTransform="matrix(0.666667,0,0,1.999999,15.333333,-361.999771)">
+<stop offset="0" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,96.078432%,95.686275%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear6" gradientUnits="userSpaceOnUse" x1="40" y1="195.75" x2="52" y2="195.75" gradientTransform="matrix(1,0,0,1.142857,0,-193.714291)">
+<stop offset="0" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+<stop offset="0.6" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear7" gradientUnits="userSpaceOnUse" x1="41.9375" y1="239" x2="56" y2="239" gradientTransform="matrix(1.5,0,0,1.293104,-29,-228.551746)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.288889" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.456024" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.672405" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.861851" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear8" gradientUnits="userSpaceOnUse" x1="43.000004" y1="201" x2="49" y2="201" gradientTransform="matrix(0.666667,0,0,1.999999,29.333333,-361.999771)">
+<stop offset="0" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,96.078432%,95.686275%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear9" gradientUnits="userSpaceOnUse" x1="40" y1="195.75" x2="52" y2="195.75" gradientTransform="matrix(1,0,0,1.142857,14,-193.714291)">
+<stop offset="0" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+<stop offset="0.6" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear10" gradientUnits="userSpaceOnUse" x1="41.9375" y1="239" x2="56" y2="239" gradientTransform="matrix(1.5,0,0,1.293104,-15,-228.551746)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.288889" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.456024" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.672405" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.861851" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear11" gradientUnits="userSpaceOnUse" x1="43.000004" y1="201" x2="49" y2="201" gradientTransform="matrix(0.666667,0,0,1.999999,43.333333,-361.999771)">
+<stop offset="0" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,96.078432%,95.686275%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear12" gradientUnits="userSpaceOnUse" x1="40" y1="195.75" x2="52" y2="195.75" gradientTransform="matrix(1,0,0,1.142857,28,-193.714291)">
+<stop offset="0" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+<stop offset="0.6" style="stop-color:rgb(75.294119%,74.901962%,73.725492%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(46.666667%,46.27451%,48.235294%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear13" gradientUnits="userSpaceOnUse" x1="41.9375" y1="239" x2="56" y2="239" gradientTransform="matrix(1.5,0,0,1.293104,-1,-228.551746)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.288889" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.456024" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.672405" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.861851" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<radialGradient id="radial0" gradientUnits="userSpaceOnUse" cx="26.10651" cy="259.029419" fx="26.10651" fy="259.029419" r="16.961348" gradientTransform="matrix(1.293566,0.0000000199752,-0.0000000199752,1.293566,-75.770477,-581.071594)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4572" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.685319" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.822382" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+</radialGradient>
+<radialGradient id="radial1" gradientUnits="userSpaceOnUse" cx="26.10651" cy="259.029419" fx="26.10651" fy="259.029419" r="16.961348" gradientTransform="matrix(1.293566,0.0000000199752,-0.0000000199752,1.293566,232.229523,-257.071594)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4572" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.685319" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.822382" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+</radialGradient>
+<radialGradient id="radial2" gradientUnits="userSpaceOnUse" cx="26.10651" cy="259.029419" fx="26.10651" fy="259.029419" r="16.961348" gradientTransform="matrix(1.293566,0.0000000199752,-0.0000000199752,1.293566,232.229523,-377.071594)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4572" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.685319" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.822382" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+</radialGradient>
+<radialGradient id="radial3" gradientUnits="userSpaceOnUse" cx="26.10651" cy="259.029419" fx="26.10651" fy="259.029419" r="16.961348" gradientTransform="matrix(1.293566,0.0000000199752,-0.0000000199752,1.293566,-279.770477,-257.071594)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4572" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.685319" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.822382" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+</radialGradient>
+<linearGradient id="linear14" gradientUnits="userSpaceOnUse" x1="23.25" y1="218" x2="23.25" y2="235.5" gradientTransform="matrix(0.000000000000000017,0.277778,-1,0.000000000000000061,252,69.555557)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.571429" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.8" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear15" gradientUnits="userSpaceOnUse" x1="23.25" y1="218" x2="23.25" y2="235.5" gradientTransform="matrix(-0.5,0,0,1,85.999992,-116)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.571429" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.8" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear16" gradientUnits="userSpaceOnUse" x1="23.25" y1="218" x2="23.25" y2="235.5" gradientTransform="matrix(0,0.277778,1,0,-132,69.555557)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.571429" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.8" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<radialGradient id="radial4" gradientUnits="userSpaceOnUse" cx="72" cy="233.714294" fx="72" fy="233.714294" r="26" gradientTransform="matrix(2.833504,0,0,0.57316,-132.012299,-69.955711)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.335522" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.536835" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.785714" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(90.588236%,65.098041%,3.921569%);stop-opacity:1;"/>
+</radialGradient>
+<radialGradient id="radial5" gradientUnits="userSpaceOnUse" cx="83.327553" cy="251.204468" fx="83.327553" fy="251.204468" r="26" gradientTransform="matrix(1.877753,-0.0000000156869,0,1.064989,-72.878494,-181.870137)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.483541" style="stop-color:rgb(96.078432%,76.47059%,9.019608%);stop-opacity:1;"/>
+<stop offset="0.74177" style="stop-color:rgb(96.078432%,76.47059%,8.627451%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,82.745099%,17.647059%);stop-opacity:0;"/>
+</radialGradient>
+<radialGradient id="radial6" gradientUnits="userSpaceOnUse" cx="85.522949" cy="250.946136" fx="85.522949" fy="250.946136" r="26" gradientTransform="matrix(2.295488,0.0000000502751,0.0000000124488,-1.064989,-107.687332,297.870148)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.383087" style="stop-color:rgb(91.37255%,67.058825%,7.058824%);stop-opacity:1;"/>
+<stop offset="0.638478" style="stop-color:rgb(90.980393%,66.274512%,6.27451%);stop-opacity:0.19173;"/>
+<stop offset="1" style="stop-color:rgb(96.470588%,82.745099%,17.647059%);stop-opacity:0;"/>
+</radialGradient>
+<image id="image1187" width="192" height="152" xlink:href="data:image/png;base64,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"/>
+<clipPath id="clip1">
+ <path d="M 72 16 L 124 16 L 124 100 L 72 100 Z M 72 16 "/>
+</clipPath>
+<clipPath id="clip2">
+ <path d="M 120 16 C 112 36 88 52 72 52 L 72 64 C 88 64 112 80 120 100 L 124 100 L 124 16 Z M 120 16 "/>
+</clipPath>
+<image id="image1193" width="192" height="152" xlink:href="data:image/png;base64,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"/>
+<image id="image1203" width="192" height="152" xlink:href="data:image/png;base64,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"/>
+<image id="image1217" width="192" height="152" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAACYCAYAAACyAeadAAAABmJLR0QA/wD/AP+gvaeTAAAAiElEQVR4nO3BMQEAAADCoPVP7WsIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAPIpwABWLk4FQAAAABJRU5ErkJggg=="/>
+<linearGradient id="linear17" gradientUnits="userSpaceOnUse" x1="23.25" y1="218" x2="23.25" y2="235.5" gradientTransform="matrix(-0.416667,0,0,-1,78.666664,284)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.114286" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.4" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.571429" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.8" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(78.823531%,57.254905%,10.980392%);stop-opacity:1;"/>
+</linearGradient>
+<linearGradient id="linear18" gradientUnits="userSpaceOnUse" x1="122" y1="188" x2="122" y2="272" gradientTransform="matrix(1,0,0,1,0,-172)">
+<stop offset="0" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.288889" style="stop-color:rgb(96.078432%,76.078433%,6.666667%);stop-opacity:1;"/>
+<stop offset="0.456024" style="stop-color:rgb(97.647059%,85.882354%,57.647061%);stop-opacity:1;"/>
+<stop offset="0.672405" style="stop-color:rgb(96.078432%,74.901962%,17.647059%);stop-opacity:1;"/>
+<stop offset="0.861851" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+<stop offset="1" style="stop-color:rgb(89.803922%,64.705884%,3.921569%);stop-opacity:1;"/>
+</linearGradient>
+</defs>
+<g id="surface1164">
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear0);" d="M 6 54 L 22 54 L 22 62 L 6 62 Z M 6 54 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear1);" d="M 46 64 L 22 64 L 22 52 L 46 52 Z M 46 64 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear2);" d="M 21 50 C 22.105469 50 23 50.894531 23 52 L 23 64 C 23 65.105469 22.105469 66 21 66 C 19.894531 66 19 65.105469 19 64 L 19 52 C 19 50.894531 19.894531 50 21 50 Z M 21 50 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(60.392159%,60.000002%,58.823532%);fill-opacity:1;" d="M 14 62 L 14 54 L 16 54 L 16 62 Z M 14 62 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear3);" d="M 11.5 52 L 9 52 C 7.34375 52 6 53.34375 6 55 L 6 61 C 6 62.65625 7.34375 64 9 64 L 11.5 64 C 13.15625 64 14.5 62.65625 14.5 61 L 14.5 55 C 14.5 53.34375 13.15625 52 11.5 52 Z M 11.5 52 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear4);" d="M 7 48 C 5.34375 48 4 49.34375 4 51 L 4 65 C 4 66.65625 5.34375 68 7 68 C 8.65625 68 10 66.65625 10 65 L 10 51 C 10 49.34375 8.65625 48 7 48 Z M 7 48 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear5);" d="M 44 30 L 48 30 L 48 50 L 44 50 Z M 44 30 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(60.392159%,60.000002%,58.823532%);fill-opacity:1;" d="M 44 31 L 48 31 L 48 33 L 44 33 Z M 44 31 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear6);" d="M 41 28 L 51 28 C 51.550781 28 52 28.449219 52 29 L 52 31 C 52 31.550781 51.550781 32 51 32 L 41 32 C 40.449219 32 40 31.550781 40 31 L 40 29 C 40 28.449219 40.449219 28 41 28 Z M 41 28 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear7);" d="M 40 43 L 52 43 L 52 118 L 40 118 Z M 40 43 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 40 118 L 52 118 L 52 120 L 40 120 Z M 40 118 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 40 42 L 52 42 L 52 44 L 40 44 Z M 40 42 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear8);" d="M 58 30 L 62 30 L 62 50 L 58 50 Z M 58 30 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(60.392159%,60.000002%,58.823532%);fill-opacity:1;" d="M 58 31 L 62 31 L 62 33 L 58 33 Z M 58 31 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear9);" d="M 55 28 L 65 28 C 65.550781 28 66 28.449219 66 29 L 66 31 C 66 31.550781 65.550781 32 65 32 L 55 32 C 54.449219 32 54 31.550781 54 31 L 54 29 C 54 28.449219 54.449219 28 55 28 Z M 55 28 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear10);" d="M 54 43 L 66 43 L 66 118 L 54 118 Z M 54 43 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 54 118 L 66 118 L 66 120 L 54 120 Z M 54 118 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 54 42 L 66 42 L 66 44 L 54 44 Z M 54 42 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear11);" d="M 72 30 L 76 30 L 76 50 L 72 50 Z M 72 30 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(60.392159%,60.000002%,58.823532%);fill-opacity:1;" d="M 72 31 L 76 31 L 76 33 L 72 33 Z M 72 31 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear12);" d="M 69 28 L 79 28 C 79.550781 28 80 28.449219 80 29 L 80 31 C 80 31.550781 79.550781 32 79 32 L 69 32 C 68.449219 32 68 31.550781 68 31 L 68 29 C 68 28.449219 68.449219 28 69 28 Z M 69 28 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear13);" d="M 68 43 L 80 43 L 80 118 L 68 118 Z M 68 43 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(75.294119%,74.901962%,73.725492%);fill-opacity:1;" d="M 68 118 L 80 118 L 80 120 L 68 120 Z M 68 118 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:rgb(46.666667%,46.27451%,48.235294%);fill-opacity:1;" d="M 68 42 L 80 42 L 80 44 L 68 44 Z M 68 42 "/>
+<path style="fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke:url(#radial0);stroke-miterlimit:4;" d="M -26 -246 C -26 -237.164062 -33.164062 -230 -42 -230 " transform="matrix(-1,0,0,-1,0,-172)"/>
+<path style="fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke:url(#radial1);stroke-miterlimit:4;" d="M 282 78 C 282 86.835938 274.835938 94 266 94 " transform="matrix(0,1,1,0,0,-172)"/>
+<path style="fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke:url(#radial2);stroke-miterlimit:4;" d="M 282 -42 C 282 -33.164062 274.835938 -26 266 -26 " transform="matrix(0.000000000000000061,1,-1,0.000000000000000061,0,-172)"/>
+<path style="fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke:url(#radial3);stroke-miterlimit:4;" d="M -230 78 C -230 86.835938 -237.164062 94 -246 94 " transform="matrix(0.000000000000000061,-1,1,0.000000000000000061,0,-172)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear14);" d="M 32 74 L 32 94 L 20 94 L 20 74 Z M 32 74 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear15);" d="M 78 104 L 42 104 L 42 116 L 78 116 Z M 78 104 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear16);" d="M 88 74 L 88 94 L 100 94 L 100 74 Z M 88 74 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial4);" d="M 120 100 C 112 80 88 64 72 64 L 72 52 C 88 52 112 36 120 16 L 124 16 L 124 100 Z M 120 100 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial5);" d="M 120 100 C 112 80 88 64 72 64 L 72 52 C 88 52 112 36 120 16 L 124 16 L 124 100 Z M 120 100 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#radial6);" d="M 120 16 C 112 36 88 52 72 52 L 72 64 C 88 64 112 80 120 100 L 124 100 L 124 16 Z M 120 16 "/>
+<use xlink:href="#image1187" transform="matrix(1,0,0,1,-8,-16)"/>
+<g clip-path="url(#clip1)" clip-rule="nonzero">
+<g clip-path="url(#clip2)" clip-rule="nonzero">
+<use xlink:href="#image1193" transform="matrix(1,0,0,1,-8,-16)"/>
+<use xlink:href="#image1203" transform="matrix(1,0,0,1,-8,-16)"/>
+</g>
+</g>
+<use xlink:href="#image1217" transform="matrix(1,0,0,1,-8,-16)"/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear17);" d="M 72 64 L 42 64 L 42 52 L 72 52 Z M 72 64 "/>
+<path style=" stroke:none;fill-rule:nonzero;fill:url(#linear18);" d="M 120 16 L 124 16 L 124 100 L 120 100 Z M 120 16 "/>
+</g>
+</svg>