kaliish-orange-theme/share/backgrounds/kali/kali-light-strips.svg
2020-10-27 15:58:55 +01:00

2 lines
79 KiB
XML

<svg width="3840" height="2160" version="1.1" viewBox="0 0 1016 571.5" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><linearGradient id="c"><stop style="stop-color:#23bac2" offset="0"/><stop style="stop-color:#4aaee6;stop-opacity:0" offset="1"/></linearGradient><meshgradient id="a" x="4370.7446" y="264.03452" gradientTransform="matrix(-1 0 0 .99997 5386.7 -264.03)" gradientUnits="userSpaceOnUse"><meshrow><meshpatch><stop stop-color="#65cfd4" path="c 169.333,0 338.667,0 508,0"/><stop stop-color="#3b6ab9" path="c -278.682,223.734 196.984,-65.9215 -25.598,282.677"/><stop stop-color="#23bac2" path="c -471.541,247.923 -175.538,-11.398 -482.402,3.08183"/><stop stop-color="#3b6ab9" path="c 0,-95.25 0,-190.5 0,-285.759"/></meshpatch><meshpatch><stop path="c 288.768,-117.626 570.299,-276.872 508,0"/><stop stop-color="#367bf0" path="c 0,95.25 0,190.5 0,285.75"/><stop stop-color="#3b6ab9" path="c -343.057,305.827 -284.645,18.6416 -533.598,-3.073"/></meshpatch></meshrow><meshrow><meshpatch><stop path="c 36.7602,181.882 93.2184,262.361 25.598,288.823"/><stop stop-color="#3b6ab9" path="c -169.333,0 -338.667,0 -508,0"/><stop stop-color="#153873" path="c 0,-95.25 0,-190.5 0,-285.741"/></meshpatch><meshpatch><stop path="c 0,95.25 86.8619,168.785 0,285.75"/><stop stop-color="#65cfd4" path="c -169.333,0 -338.667,0 -508,0"/></meshpatch></meshrow></meshgradient><linearGradient id="k" x1="1989.8" x2="3005.8" y1="192.73" y2="192.73" gradientTransform="translate(-1989.8 93.019)" gradientUnits="userSpaceOnUse"><stop stop-color="#316fd8" style="stop-color:#2656a8" offset="0"/><stop stop-color="#23bac2" style="stop-color:#23bac2" offset="1"/></linearGradient><linearGradient id="j" x1="-2854.6" x2="-2854.6" y1="-233.83" y2="22.863" gradientTransform="translate(2875.9 134.57)" gradientUnits="userSpaceOnUse"><stop style="stop-color:#23bac2" offset="0"/><stop style="stop-color:#367bf0;stop-opacity:0" offset="1"/></linearGradient><linearGradient id="i" x1="-2854.6" x2="-2854.6" y1="-233.83" y2="128.08" gradientTransform="translate(3303.8 134.57)" gradientUnits="userSpaceOnUse" xlink:href="#c"/><linearGradient id="h" x1="-2854.6" x2="-2854.6" y1="-233.83" y2="218.11" gradientTransform="translate(3731.7 134.57)" gradientUnits="userSpaceOnUse" xlink:href="#c"/><linearGradient id="g" x1="-2854.6" x2="-2854.6" y1="-233.83" y2="218.11" gradientTransform="translate(3912.3,238.81)" gradientUnits="userSpaceOnUse" xlink:href="#c"/><linearGradient id="f" x1="-2854.6" x2="-2854.6" y1="-233.83" y2="218.11" gradientTransform="translate(4092.8,343.06)" gradientUnits="userSpaceOnUse" xlink:href="#c"/><filter id="b" x="-.15495" y="-.25232" width="1.3099" height="1.5046" style="color-interpolation-filters:sRGB"><feGaussianBlur stdDeviation="4.7933584"/></filter></defs><rect x="-4.8828e-5" y="3.6621e-6" width="1016" height="571.5" fill="url(#a)" style="fill:url(#k);paint-order:fill markers stroke"/><path d="m253.7-106.38-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6108 2.0846 1365.2-618.31zm7.2217 4.1694-1365.2 618.31 3.6116 2.0851 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.222 4.1696-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.223 4.1702-1365.2 618.31 3.6113 2.085 1365.2-618.31zm7.2215 4.1694-1365.2 618.31 3.611 2.0848 1365.2-618.31zm7.2233 4.1704-1365.2 618.31 3.6103 2.0844 1365.2-618.31zm7.2212 4.1692-1365.2 618.31 3.6115 2.085 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6114 2.085 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6111 2.0849 1365.2-618.31zm7.2231 4.1703-1365.2 618.31 3.6121 2.0854 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6112 2.0849 1365.2-618.31zm7.2231 4.1702-1365.2 618.31 3.6098 2.0841 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6112 2.085 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6116 2.0852 1365.2-618.31zm7.2223 4.1698-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2234 4.1704-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6119 2.0853 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6107 2.0846 1365.2-618.31z" style="fill:url(#j);stroke-width:.26458"/><path d="m681.6-106.38-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6108 2.0846 1365.2-618.31zm7.2217 4.1694-1365.2 618.31 3.6116 2.0851 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.222 4.1696-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.223 4.1702-1365.2 618.31 3.6113 2.085 1365.2-618.31zm7.2215 4.1694-1365.2 618.31 3.611 2.0848 1365.2-618.31zm7.2233 4.1704-1365.2 618.31 3.6103 2.0844 1365.2-618.31zm7.2212 4.1692-1365.2 618.31 3.6115 2.085 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6114 2.085 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6111 2.0849 1365.2-618.31zm7.2231 4.1703-1365.2 618.31 3.6121 2.0854 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6112 2.0849 1365.2-618.31zm7.2231 4.1702-1365.2 618.31 3.6098 2.0841 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6112 2.085 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6116 2.0852 1365.2-618.31zm7.2223 4.1698-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2234 4.1704-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6119 2.0853 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6107 2.0846 1365.2-618.31z" style="fill:url(#i);stroke-width:.26458"/><path d="m1109.5-106.38-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6108 2.0846 1365.2-618.31zm7.2217 4.1694-1365.2 618.31 3.6116 2.0851 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.222 4.1696-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.223 4.1702-1365.2 618.31 3.6113 2.085 1365.2-618.31zm7.2215 4.1694-1365.2 618.31 3.611 2.0848 1365.2-618.31zm7.2233 4.1704-1365.2 618.31 3.6103 2.0844 1365.2-618.31zm7.2212 4.1692-1365.2 618.31 3.6115 2.085 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6114 2.085 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6111 2.0849 1365.2-618.31zm7.2231 4.1703-1365.2 618.31 3.6121 2.0854 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6112 2.0849 1365.2-618.31zm7.2231 4.1702-1365.2 618.31 3.6098 2.0841 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6112 2.085 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6116 2.0852 1365.2-618.31zm7.2223 4.1698-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2234 4.1704-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6119 2.0853 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6107 2.0846 1365.2-618.31z" style="fill:url(#h);stroke-width:.26458"/><path d="m1297.3 2.03-1365.2 618.31 3.6108 2.0846 1365.2-618.31zm7.2217 4.1694-1365.2 618.31 3.6116 2.0851 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.222 4.1696-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.223 4.1702-1365.2 618.31 3.6113 2.085 1365.2-618.31zm7.2215 4.1694-1365.2 618.31 3.611 2.0848 1365.2-618.31zm7.2233 4.1704-1365.2 618.31 3.6103 2.0844 1365.2-618.31zm7.2212 4.1692-1365.2 618.31 3.6115 2.085 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6114 2.085 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6111 2.0849 1365.2-618.31zm7.2231 4.1703-1365.2 618.31 3.6121 2.0854 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6112 2.0849 1365.2-618.31zm7.2231 4.1702-1365.2 618.31 3.6098 2.0841 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6112 2.085 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6116 2.0852 1365.2-618.31zm7.2223 4.1698-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2234 4.1704-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6119 2.0853 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6107 2.0846 1365.2-618.31z" style="fill:url(#g);stroke-width:.26458"/><path d="m1477.9 106.27-1365.2 618.31 3.6108 2.0846 1365.2-618.31zm7.2217 4.1694-1365.2 618.31 3.6116 2.0851 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.222 4.1696-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.223 4.1702-1365.2 618.31 3.6113 2.085 1365.2-618.31zm7.2215 4.1694-1365.2 618.31 3.611 2.0848 1365.2-618.31zm7.2233 4.1704-1365.2 618.31 3.6103 2.0844 1365.2-618.31zm7.2212 4.1692-1365.2 618.31 3.6115 2.085 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6102 2.0844 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6114 2.085 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6111 2.0849 1365.2-618.31zm7.2231 4.1703-1365.2 618.31 3.6121 2.0854 1365.2-618.31zm7.2219 4.1696-1365.2 618.31 3.6112 2.0849 1365.2-618.31zm7.2231 4.1702-1365.2 618.31 3.6098 2.0841 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6112 2.085 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6116 2.0852 1365.2-618.31zm7.2223 4.1698-1365.2 618.31 3.6105 2.0845 1365.2-618.31zm7.2221 4.1697-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2214 4.1693-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2234 4.1704-1365.2 618.31 3.6117 2.0852 1365.2-618.31zm7.2216 4.1694-1365.2 618.31 3.6106 2.0846 1365.2-618.31zm7.2228 4.1701-1365.2 618.31 3.6107 2.0846 1365.2-618.31zm7.2213 4.1692-1365.2 618.31 3.6119 2.0853 1365.2-618.31zm7.2232 4.1704-1365.2 618.31 3.6107 2.0846 1365.2-618.31z" style="fill:url(#f);stroke-width:.26458"/><path transform="matrix(1.593 0 0 1.593 -301.23 -334.83)" d="m473.32 495.68c-1.0381 8e-3 -1.9495 0.66368-2.2944 1.6397-0.11274 0.31734-0.1452 0.63873-0.1452 0.97152v32.715c0.0384 1.3632 1.1048 2.426 2.4556 2.4293 2.8313 4e-3 8.662-0.0103 8.662-0.0103l-0.0104-2.5316h-8.5043c-0.0451-0.27199-0.0336-32.288 0.0103-32.437 0.26051-0.0364 68.816-0.0233 68.966 0.0119 0.0415 0.24693 0.0293 32.267-0.016 32.435h-57.334v2.5321s0.22365 1.4e-4 0.32607 4e-3h57.255c1.0268-0.0103 1.9362-0.65466 2.2862-1.6226 0.11274-0.30837 0.1452-0.62629 0.1452-0.95136v-32.777c-0.0216-1.0828-0.75842-2.0339-1.8009-2.3218l-2e-3 1e-3c-0.27607-0.0739-0.55142-0.0873-0.83664-0.0873zm31.925 9.6066c-0.0214 0.0412-0.037 0.0711-0.0455 0.0992-2.3235 6.2308-4.6448 12.464-6.9675 18.694-0.0103 0.0103-0.0103 0.0292-0.0103 0.0413v0.0201c0 8e-3 0.0102 0.0118 0.0119 0.0212h3.1955c0.0246-0.0711 0.053-0.13229 0.0744-0.19844 0.49387-1.4031 0.98782-2.8037 1.4831-4.208 0.0824-0.22572 0.1643-0.45291 0.23876-0.67953 0.0294-0.0946 0.078-0.14377 0.17775-0.13179 0.0324 4e-3 0.07 0 0.10284 0h6.9717c0.63021 1.746 1.256 3.4794 1.8795 5.2131h3.2634c-2.3543-6.3078-4.6984-12.592-7.0383-18.872zm-12.266 0.0625c-0.1819 0-0.29652 0.0526-0.41653 0.19378-2.4301 2.8777-4.8662 5.756-7.3019 8.6305-0.0324 0.0368-0.0745 0.0696-0.1447 0.13436v-7.1588c0-0.59254 0.0103-1.187 0-1.7797h-3.0562v18.772c0.2426 0.0426 2.8977 0.034 3.0613-0.0103v-0.23874l-9e-3 -1e-3v-6.5479c0-0.14769 0.0417-0.25157 0.16227-0.3452 0.50572-0.39989 1.0043-0.81082 1.5033-1.219 0.0498-0.037 0.0981-0.0699 0.16018-0.11523 0.0538 0.0696 0.0993 0.12658 0.14108 0.18912 0.84828 1.2238 1.6972 2.446 2.5451 3.668 1.0402 1.5051 2.0821 3.0034 3.1202 4.5015 0.0576 0.087 0.11038 0.15296 0.23823 0.15296 1.093-4e-3 2.185-4e-3 3.2768-4e-3 0.0362 0 0.0731-0.0118 0.13073-0.0248-2.4172-3.5203-4.8242-7.0162-7.2388-10.533 0.48577-0.56391 0.95583-1.1068 1.4252-1.663 0.47061-0.54451 0.9393-1.0908 1.4092-1.6392 0.46916-0.54692 0.93517-1.0948 1.4056-1.6423 0.46942-0.54875 0.9395-1.0961 1.4035-1.6433 0.46733-0.54306 0.93099-1.0863 1.4263-1.6722h-0.27493c-0.98912 0-1.978 6e-3 -2.9672-4e-3zm24.765 0.0202c-0.051 0.23471-0.0385 18.64 0.0103 18.794h10.993v-2.6154h-5.303c-0.44583 0-0.89506 4e-3 -1.339 0-0.43746-4e-3 -0.87323 0.0165-1.327-0.01v-14.717l-2e-3 -2e-3c0-0.48612 0.018-0.96798-0.0139-1.4495zm13.095 6e-3v18.783h3.0448c0.0103-0.0316 0.0181-0.0479 0.0181-0.0692v-18.604h-2e-3c0-0.0292-6e-5 -0.0535-0.0104-0.0837 0-8e-3 -0.0103-0.0103-0.0103-0.016 0-4e-3 -0.0119-0.0104-0.0119-0.0104zm-23.958 2.6288c0.0324 0.0494 0.0574 0.0796 0.0661 0.11213 0.51051 1.9062 1.2085 3.7557 1.8423 5.6255 0.26323 0.77803 0.53612 1.5516 0.80407 2.3301 0.0204 0.0696 0.0403 0.13917 0.0651 0.22529h-5.4756c0.0244-0.0811 0.045-0.15086 0.0687-0.22063 0.64272-1.8611 1.2945-3.714 1.9208-5.58 0.25131-0.74999 0.44083-1.5238 0.65474-2.2888 0.018-0.058 0.0294-0.11634 0.0538-0.2036zm-23.963 29.311c-0.58013 1.1e-4 -1.0279 0.17021-1.34 0.51004-0.31335 0.34057-0.47027 0.82717-0.47027 1.4614 0 0.63428 0.15663 1.1234 0.46818 1.4681 0.31097 0.34435 0.75613 0.51625 1.3364 0.51625 0.57451 0 1.017-0.17396 1.3296-0.51988 0.31326-0.3474 0.47027-0.83277 0.47027-1.4593 0-0.62717-0.15534-1.1139-0.46871-1.4588-0.31208-0.34525-0.75412-0.51768-1.325-0.51779zm42.008 6e-3c-0.37349 0-0.70004 0.0797-0.97668 0.23926-0.27628 0.1593-0.48805 0.38864-0.63458 0.68834-0.1465 0.30062-0.21963 0.65032-0.21963 1.049 0 0.63487 0.15108 1.1219 0.4532 1.4619 0.30142 0.34184 0.73364 0.51212 1.296 0.51212 0.38137 0 0.72411-0.0581 1.0258-0.17002v-0.54001c-0.16428 0.0521-0.3238 0.0932-0.47646 0.1266-0.1519 0.032-0.31081 0.048-0.47334 0.048-0.37621 0-0.6644-0.12181-0.86405-0.3638-0.19865-0.24125-0.29816-0.59897-0.29816-1.0686 0-0.45149 0.10369-0.80256 0.31057-1.0594 0.20682-0.25646 0.49038-0.38396 0.85111-0.38396 0.15909 0 0.31136 0.0217 0.45683 0.0692 0.14449 0.0462 0.2817 0.10059 0.41185 0.16174l0.22582-0.52295c-0.33269-0.16529-0.69686-0.24754-1.0883-0.24754zm-22.68 5.2e-4c-0.3838 0-0.6904 0.0924-0.91829 0.27544-0.22804 0.18407-0.34158 0.43709-0.34158 0.75705 0 0.25649 0.0717 0.47506 0.21601 0.65786 0.14309 0.18227 0.39103 0.34327 0.74258 0.48522 0.3388 0.13692 0.56348 0.25506 0.67231 0.35554 0.10834 0.10055 0.16279 0.22228 0.16279 0.36484 0 0.15949-0.0585 0.28678-0.17724 0.3819-0.11795 0.0942-0.30282 0.14158-0.55192 0.14158-0.1691 0-0.35399-0.0236-0.55086-0.0708-0.19789-0.0476-0.38246-0.11226-0.55759-0.19481v0.59428c0.27692 0.13393 0.63244 0.20257 1.0666 0.20257 0.43535 0 0.77608-0.098 1.0237-0.29197 0.24707-0.19386 0.37102-0.46265 0.37102-0.80407 0-0.1747-0.0316-0.32406-0.0925-0.45167-0.0605-0.12872-0.15816-0.2432-0.2894-0.3452h2e-3c-0.1325-0.10176-0.33985-0.21154-0.62063-0.32814-0.25188-0.10332-0.42518-0.18708-0.52091-0.25064-0.0971-0.0629-0.16621-0.12983-0.20773-0.19997-0.043-0.0716-0.0641-0.1574-0.0641-0.25736 0-0.1451 0.0525-0.26249 0.15762-0.34983 0.10493-0.0897 0.25923-0.13335 0.46302-0.13335 0.26741 0 0.57322 0.0712 0.91569 0.2155l0.19844-0.5116c-0.36301-0.16147-0.72985-0.24236-1.0986-0.24236zm15.054 0c-0.38396 0-0.68953 0.0924-0.91726 0.27544-0.22791 0.18407-0.34261 0.43709-0.34261 0.75705 0 0.25649 0.0719 0.47506 0.21601 0.65786 0.14311 0.18227 0.39026 0.34327 0.74207 0.48522 0.33981 0.13692 0.56388 0.25506 0.67284 0.35554 0.10832 0.10055 0.16227 0.22228 0.16227 0.36484 0 0.15949-0.0587 0.28678-0.17674 0.3819-0.11814 0.0942-0.30247 0.14158-0.55192 0.14158-0.16889 0-0.35359-0.0236-0.5493-0.0708-0.19908-0.0476-0.38434-0.11226-0.56071-0.19481v0.59428c0.2781 0.13393 0.63397 0.20257 1.0687 0.20257 0.43479 0 0.77658-0.098 1.0237-0.29197 0.24672-0.19386 0.37002-0.46262 0.37002-0.80407 0-0.1747-0.0315-0.32406-0.092-0.45167-0.0622-0.12872-0.15869-0.2432-0.28937-0.3452-0.13171-0.10176-0.33907-0.21154-0.62167-0.32814-0.24894-0.10332-0.42434-0.18708-0.51988-0.25064-0.0959-0.0629-0.16565-0.12983-0.20722-0.19997-0.0415-0.0716-0.063-0.1574-0.063-0.25736 0-0.1451 0.0518-0.26249 0.15761-0.34983 0.10494-0.0897 0.25998-0.13335 0.46252-0.13335 0.26861 0 0.57388 0.0712 0.91623 0.2155l0.19843-0.5116c-0.3634-0.16147-0.73038-0.24236-1.0986-0.24236zm-42.173 0.0532 1.2749 2.374v1.4692h0.63148v-1.4904l1.2805-2.3528h-0.68419l-0.909 1.7544-0.91053-1.7544zm17.759 0v3.8432h2.1751v-0.53332h-1.5456v-1.2061h1.4485v-0.52605h-1.4485v-1.0464h1.5456v-0.53123zm-21.344 5e-4v3.8432h1.3875c0.42932 0 0.76499-0.096 1.0067-0.293 0.24075-0.19587 0.36071-0.46606 0.36071-0.81082 0-0.25643-0.0644-0.45876-0.19068-0.60872-0.12743-0.15063-0.32515-0.25048-0.59429-0.30181v-0.0258c0.21715-0.0379 0.38365-0.1321 0.4997-0.28061 0.11453-0.1487 0.17261-0.33563 0.17261-0.56018 0-0.33279-0.11726-0.57682-0.35346-0.7307-0.23553-0.15391-0.61909-0.23151-1.1477-0.23151zm14.535 0v3.8427h0.62423v-1.5777h1.4485v-0.53279h-1.4485v-1.201h1.5451v-0.53123zm3.405 0v3.8427h0.62373v-1.5777h1.4485v-0.53279h-1.4485v-1.201h1.5462v-0.53123zm6.952 0v3.8432h0.57049v-1.9973c0-0.27022-0.0144-0.56761-0.0377-0.89349l-0.0119-0.17053h0.0202l1.8919 3.0613h0.76896v-3.8426h-0.57518v2.0138h-2e-3c0 0.14129-4.2e-4 0.33843 0.0176 0.59222 0.0103 0.25379 0.0183 0.40031 0.0202 0.44027h-0.0139l-1.8867-3.0468zm14.326 0v3.8437h2.1735v-0.53435h-1.5467v-1.2056h1.45v-0.52607h-1.45v-1.0465h1.5467v-0.53123zm8.9808 0v3.8437h2.1746v-0.53435h-1.5456v-1.2056h1.4485v-0.52607h-1.4485v-1.0465h1.5456v-0.53123zm-15.053 5.3e-4v3.8432h0.62891v-3.8432zm32.818 0v0.54002h1.1296v3.3032h0.62789v-3.3032h1.1312v-0.54002zm-31.144 5e-4 1.341 3.8427h0.66352l1.3467-3.8427h-0.65321l-0.79994 2.3782c-0.0305 0.0845-0.069 0.21487-0.11732 0.38965-0.0466 0.17468-0.0822 0.32986-0.10488 0.46199-0.016-0.0873-0.0453-0.22016-0.0925-0.4-0.0484-0.17986-0.091-0.32657-0.13486-0.44079l-0.80203-2.389zm20.842 0v2.4763c0 0.44046 0.13216 0.78825 0.39688 1.0402 0.26524 0.25297 0.63529 0.3788 1.1121 0.3788 0.32078 0 0.59721-0.0582 0.82785-0.17208 0.23003-0.11433 0.40561-0.2789 0.52763-0.49094 0.12232-0.21261 0.18294-0.46156 0.18294-0.74517v-2.4872h-0.62789v2.4257c0 0.62206-0.29614 0.9338-0.88934 0.9338-0.30454 0-0.53184-0.0766-0.6785-0.22686-0.1475-0.14991-0.22066-0.38314-0.22066-0.70075v-2.4319zm4.5692 0v3.8432h0.62839v-1.5353h0.62063l0.91935 1.5343h0.71623l-1.0857-1.7002c0.49818-0.2032 0.74634-0.54292 0.74671-1.0222v-1e-3c-2.2e-4 -0.37398-0.11965-0.65344-0.35656-0.84023-0.2391-0.18489-0.60605-0.27856-1.1022-0.27856zm3.9801 0v3.8427h0.62891v-3.8427zm5.2607 0 1.2764 2.374v1.4686h0.63098v-1.4898l1.2811-2.3528h-0.68419l-0.9095 1.7539-0.91004-1.7539zm-58.094 0.47853c0.37356 0 0.65336 0.12057 0.84283 0.36483 0.18727 0.24334 0.28164 0.60111 0.28164 1.0723 0 0.47799-0.0947 0.83828-0.28424 1.0795-0.19166 0.24217-0.47228 0.3633-0.84645 0.3633-0.37478 0-0.64816-0.13325-0.84955-0.3669-0.24226-0.28108-0.28578-0.60325-0.28578-1.0759 0-0.4712 0.0961-0.82865 0.28887-1.0723 0.19127-0.24392 0.47586-0.36483 0.85268-0.36483zm-10.749 0.0455h0.54364c0.28466 0 0.49157 0.0405 0.62373 0.12195 0.12993 0.0806 0.19431 0.2118 0.19431 0.39224 0 0.19947-0.0599 0.33962-0.18087 0.42373-0.12031 0.0824-0.34554 0.25141-0.57568 0.12507h-0.60513zm60.231 7e-3h0.41497c0.28612 0 0.50065 0.0477 0.64183 0.14161 0.14308 0.0951 0.21291 0.2508 0.21291 0.46818 0 0.21381-0.0647 0.37536-0.19638 0.48421-0.1307 0.10793-0.40345 0.34018-0.63666 0.16277h-0.43667zm-60.231 1.5648h0.63614c0.279 0 0.48707 0.0485 0.62219 0.1452 0.1379 0.0951 0.20566 0.24439 0.20566 0.44392 0 0.21738-0.0654 0.37608-0.2005 0.47746-0.13491 0.10057-0.35969 0.26891-0.59582 0.15143h-0.66767z" style="clip-rule:evenodd;fill-rule:evenodd;filter:url(#b);opacity:.3;stroke-width:.2983"/><path d="m564.23 454.89c-0.43974-0.11764-0.87838-0.13925-1.3327-0.13925h-110.17c-1.6536 0.0129-3.1052 1.0569-3.6546 2.6116-0.17957 0.50546-0.23178 1.017-0.23178 1.5472v52.112c0.0611 2.1715 1.76 3.8649 3.9117 3.8701 4.51 6e-3 13.798-0.0162 13.798-0.0162l-0.0164-4.0329h-13.547c-0.0719-0.43324-0.0536-51.433 0.0164-51.669 0.41499-0.0579 109.62-0.037 109.86 0.0191 0.066 0.39336 0.0469 51.399-0.0253 51.667h-91.328v4.0334s0.35644 0 0.51958 6e-3h91.203c1.6356-0.0162 3.0848-1.0422 3.6423-2.5842 0.17956-0.49119 0.23116-0.99751 0.23116-1.5153v-52.211c-0.0344-1.7248-1.2083-3.2399-2.8688-3.6984zm-92.719 44.799v-10.43c0-0.23524 0.066-0.40042 0.25819-0.54956 0.80556-0.63702 1.6002-1.2921 2.3952-1.9424 0.0793-0.0589 0.15641-0.11119 0.25531-0.18336 0.0857 0.11083 0.15787 0.20153 0.22446 0.30119 1.3512 1.9494 2.7035 3.8968 4.0539 5.8431 1.657 2.3976 3.3168 4.784 4.9702 7.1703 0.0918 0.13851 0.17611 0.24354 0.37973 0.24354 1.741-6e-3 3.4802-6e-3 5.2193-6e-3 0.0576 0 0.1168-0.0191 0.20851-0.0399-3.8504-5.6075-7.685-11.176-11.531-16.779 0.7738-0.89827 1.5224-1.7628 2.2701-2.6487 0.74967-0.86737 1.4967-1.7377 2.2452-2.6111 0.74735-0.87118 1.4893-1.7438 2.2386-2.6159 0.74775-0.87408 1.4967-1.7462 2.236-2.6178 0.74441-0.86505 1.4834-1.7305 2.2725-2.6638h-0.43868c-1.5756 0-3.1504 0.01-4.7263-6e-3 -0.28971 0-0.4724 0.084-0.66356 0.30881-3.871 4.584-7.7511 9.1689-11.631 13.748-0.0515 0.0586-0.11836 0.11119-0.23016 0.21426v-11.404c0-0.94387 0.0163-1.8906 0-2.8349h-4.8682v29.902c0.38645 0.0678 4.615 0.054 4.8757-0.0162v-0.38047zm25.993 0.43276c0.0392-0.11322 0.084-0.21046 0.11811-0.31582 0.78671-2.235 1.5742-4.4662 2.363-6.7031 0.13123-0.35954 0.2617-0.72106 0.3803-1.0821 0.0469-0.1507 0.12379-0.22954 0.2827-0.21046 0.0515 6e-3 0.11131 0 0.16361 0h11.105c1.0039 2.7813 2.0008 5.5424 2.994 8.3041h5.1988c-3.7502-10.048-7.4847-20.056-11.212-30.062h-5.3159c-0.0342 0.0656-0.0592 0.11334-0.0727 0.15816-3.7011 9.9251-7.3984 19.854-11.098 29.777-0.0162 0.0162-0.0162 0.0469-0.0162 0.066v0.0318c0 0.0129 0.0162 0.0191 0.0191 0.034h5.0806zm4.4943-12.882c1.0238-2.9646 2.0622-5.9161 3.0598-8.8885 0.4003-1.1946 0.70205-2.4269 1.0428-3.6454 0.0288-0.0923 0.0469-0.18497 0.0858-0.32396 0.0515 0.0786 0.0917 0.12651 0.1057 0.17827 0.81322 3.0364 1.9248 5.9825 2.9343 8.961 0.41933 1.2393 0.85364 2.4711 1.2805 3.7112 0.0325 0.11095 0.0646 0.22192 0.10403 0.35913h-8.7228c0.0389-0.12923 0.0719-0.24037 0.10963-0.35152zm26.322-14.746c0-0.77434 0.0285-1.5416-0.0223-2.3086h-4.8079c-0.0812 0.37387-0.0614 29.691 0.0162 29.938h17.512v-4.1655h-8.4475c-0.71015 0-1.4259 6e-3 -2.1329 0-0.69687-6e-3 -1.3909 0.0255-2.1137-0.0163v-23.443zm20.905-2.1243c0-0.0465 0-0.085-0.0163-0.13324 0-0.0129-0.0162-0.0162-0.0162-0.0254 0-6e-3 -0.0191-0.0162-0.0191-0.0162h-4.8242v29.92h4.8499c0.0162-0.0503 0.0285-0.077 0.0285-0.11095v-29.634z" style="clip-rule:evenodd;fill-rule:evenodd;fill:#fff;stroke-width:.47516"/><path d="m453.23 524.07v-0.0412c0.34592-0.0604 0.61161-0.21043 0.79649-0.447 0.18243-0.23688 0.27445-0.5344 0.27445-0.89208 0-0.53015-0.18656-0.91918-0.56282-1.1643-0.37515-0.24516-0.98597-0.36863-1.828-0.36863h-1.818v6.1217h2.2106c0.68384 0 1.2182-0.15276 1.6031-0.46656 0.3835-0.31202 0.57506-0.74246 0.57506-1.2916 0-0.40848-0.10247-0.73059-0.30373-0.96947-0.2031-0.24005-0.51813-0.39903-0.94724-0.48075zm-2.1371-2.0769h0.866c0.45346 0 0.78242 0.064 0.99295 0.19387 0.20696 0.12838 0.3098 0.33727 0.3098 0.62471 0 0.31774-0.0953 0.5415-0.28812 0.67546-0.19166 0.13123-0.49911 0.19931-0.9173 0.19931h-0.96345zm2.0122 4.203c-0.21488 0.16016-0.52889 0.24132-0.94898 0.24132h-1.0633v-1.9401h1.0128c0.44439 0 0.77621 0.077 0.99144 0.23116 0.21967 0.15148 0.32741 0.38955 0.32741 0.70734 0 0.34629-0.10402 0.59852-0.31939 0.76003zm5.2377-2.2459-1.4499-2.794h-1.0886l2.0307 3.7816v2.3399h1.0058v-2.3739l2.0406-3.7475h-1.0898zm9.8721-2.89c-0.9245 0-1.6375 0.27124-2.1347 0.81277-0.49911 0.54246-0.74909 1.3173-0.74909 2.3276 0 1.0104 0.24897 1.7895 0.74528 2.3386 0.49533 0.54849 1.2043 0.82231 2.1286 0.82231 0.91517 0 1.6204-0.27699 2.1186-0.82801 0.49902-0.5534 0.74849-1.3263 0.74849-2.3243 0-0.99902-0.24737-1.7741-0.74657-2.3238-0.49725-0.55014-1.201-0.82519-2.1108-0.82519zm1.339 4.869c-0.30532 0.38574-0.75251 0.57908-1.3485 0.57908-0.59701 0-1.048-0.19487-1.3536-0.5843-0.30274-0.38905-0.45486-0.96093-0.45486-1.7138 0-0.75055 0.15276-1.3202 0.45976-1.7082 0.30467-0.38857 0.75804-0.58141 1.3583-0.58141 0.59509 0 1.0409 0.19229 1.3428 0.58141 0.2983 0.38762 0.44912 0.95766 0.44912 1.7082 0 0.76147-0.15102 1.3348-0.4529 1.7191zm3.6903 1.3487h0.99479v-2.513h2.3075v-0.84885h-2.3075v-1.9134h2.4616v-0.84601h-3.4558v6.1209zm5.4239 0h0.99401v-2.513h2.3072v-0.84885h-2.3072v-1.9134h2.463v-0.84601h-3.4563v6.1209zm5.4248 0h3.4642v-0.84995h-2.462v-1.921h2.3075v-0.83792h-2.3075v-1.6669h2.462v-0.84602h-3.4642zm9.8302-2.913c0 0.22509 0 0.53913 0.0288 0.94339 0.0162 0.40427 0.0285 0.63797 0.0318 0.70161h-0.0223l-3.0048-4.8533h-1.214v6.1216h0.90879v-3.181c0-0.43041-0.0223-0.90446-0.0595-1.4236l-0.0191-0.27129h0.0318l3.0138 4.8766h1.2245v-6.1216h-0.91582v3.2079zm6.3172-0.0165c-0.21107-0.16213-0.5409-0.33679-0.98818-0.52252-0.4012-0.1646-0.67784-0.29831-0.8303-0.39953-0.15467-0.1002-0.26425-0.20661-0.3304-0.31836-0.0687-0.11406-0.10259-0.25025-0.10259-0.40946 0-0.23113 0.0842-0.41853 0.25153-0.55766 0.16715-0.14296 0.41297-0.21236 0.73757-0.21236 0.42596 0 0.91308 0.11322 1.4586 0.34304l0.31613-0.81471c-0.57825-0.25724-1.163-0.3862-1.7505-0.3862-0.61133 0-1.0994 0.14734-1.4624 0.43894-0.36323 0.29322-0.54469 0.69589-0.54469 1.2055 0 0.40853 0.11489 0.75676 0.34489 1.0479 0.22796 0.29037 0.62227 0.54723 1.1823 0.77333 0.53968 0.21809 0.89774 0.40617 1.0711 0.56627 0.17256 0.16015 0.2595 0.35386 0.2595 0.58093 0 0.25406-0.0935 0.457-0.28273 0.60848-0.18785 0.15007-0.4824 0.22543-0.87919 0.22543-0.26932 0-0.5633-0.0375-0.87693-0.11263-0.3152-0.0757-0.60992-0.17862-0.88891-0.3101v0.94632c0.44115 0.21334 1.0076 0.32252 1.6991 0.32252 0.69345 0 1.2363-0.15611 1.6308-0.46507 0.39356-0.30883 0.59084-0.73629 0.59084-1.2802 0-0.27826-0.05-0.5169-0.14703-0.72015-0.0964-0.20504-0.25151-0.38714-0.46053-0.54959zm2.6499 2.9308h1.0018v-6.1216h-1.0018zm5.6893-2.3328c-0.0486 0.13467-0.10964 0.34248-0.18658 0.62086-0.0742 0.27825-0.13108 0.52539-0.16712 0.73581-0.0254-0.13909-0.0719-0.35105-0.14703-0.63751-0.077-0.28652-0.14544-0.52014-0.21522-0.70209l-1.2777-3.8058h-1.0296l2.1361 6.1214h1.0566l2.1452-6.1214h-1.0399zm3.9837 2.3328h3.4619v-0.85107h-2.4632v-1.9209h2.3099v-0.83795h-2.3099v-1.6669h2.4632v-0.84604h-3.4619zm11.655-2.9308c-0.20982-0.16213-0.5404-0.33679-0.99057-0.52252-0.39653-0.1646-0.67582-0.29831-0.82799-0.39953-0.15277-0.1002-0.26424-0.20661-0.33046-0.31836-0.066-0.11406-0.1002-0.25025-0.1002-0.40946 0-0.23113 0.0826-0.41853 0.2512-0.55766 0.16713-0.14296 0.41417-0.21236 0.73679-0.21236 0.42786 0 0.91397 0.11322 1.4593 0.34304l0.31584-0.81471c-0.57887-0.25724-1.1636-0.3862-1.7501-0.3862-0.61164 0-1.0983 0.14734-1.461 0.43894-0.36303 0.29322-0.54557 0.69589-0.54557 1.2055 0 0.40853 0.11513 0.75676 0.34455 1.0479 0.22795 0.29037 0.62124 0.54723 1.1816 0.77333 0.54124 0.21809 0.89823 0.40617 1.0718 0.56627 0.17255 0.16015 0.25884 0.35386 0.25884 0.58093 0 0.25406-0.0936 0.457-0.28175 0.60848-0.18819 0.15007-0.482 0.22543-0.87932 0.22543-0.26902 0-0.5632-0.0375-0.87499-0.11263-0.31711-0.0757-0.61178-0.17862-0.89271-0.3101v0.94632c0.44299 0.21334 1.0091 0.32252 1.7016 0.32252 0.69259 0 1.2372-0.15611 1.6308-0.46507 0.39299-0.30883 0.59001-0.73629 0.59001-1.2802 0-0.27826-0.0506-0.51687-0.14702-0.72013-0.099-0.20504-0.25247-0.38713-0.46064-0.54962zm2.6502 2.9308h3.464v-0.85107h-2.4625v-1.9209h2.3075v-0.83795h-2.3075v-1.6669h2.4625v-0.84604h-3.464zm8.2508-5.3501c0.25342 0 0.49602 0.0354 0.7277 0.11107 0.23019 0.0736 0.44815 0.15985 0.65545 0.25726l0.3602-0.83269c-0.52993-0.2633-1.1104-0.39428-1.7339-0.39428-0.59495 0-1.1151 0.1268-1.5557 0.38097-0.44011 0.25373-0.77708 0.61897-1.0105 1.0964-0.23336 0.47885-0.35021 1.0356-0.35021 1.6707 0 1.0113 0.2407 1.7874 0.72196 2.329 0.48011 0.5445 1.1687 0.81545 2.0646 0.81545 0.60747 0 1.1535-0.0923 1.634-0.27063v-0.86011c-0.26167 0.0829-0.51578 0.14862-0.75894 0.20185-0.24196 0.051-0.49501 0.0761-0.75393 0.0761-0.59929 0-1.0585-0.19357-1.3764-0.57903-0.31647-0.38433-0.47479-0.95436-0.47479-1.7025 0-0.71915 0.16524-1.2787 0.49478-1.6879 0.32943-0.40851 0.78097-0.61132 1.3555-0.61132zm7.4902 3.093c0 0.9909-0.47108 1.4874-1.416 1.4874-0.48511 0-0.84754-0.12165-1.0812-0.36102-0.23495-0.23879-0.35178-0.61086-0.35178-1.1168v-3.874h-1.0044v3.945c0 0.70158 0.21044 1.2554 0.63213 1.657 0.4225 0.40297 1.0114 0.60321 1.7709 0.60321 0.51094 0 0.9511-0.0923 1.3185-0.27379 0.36641-0.18209 0.64681-0.44409 0.84119-0.78185 0.19485-0.33869 0.29132-0.73534 0.29132-1.1871v-3.9622h-1.0001v3.8638zm7.4797-2.0805c0-0.59661-0.19005-1.0417-0.56779-1.3396-0.38088-0.29448-0.96601-0.44364-1.7563-0.44364h-1.7305v6.1216h1.0009v-2.4457h0.98823l1.4642 2.4444h1.1413l-1.7296-2.7088c0.79417-0.32393 1.1896-0.86497 1.1896-1.6293zm-2.3585 1.065h-0.69543v-2.0021h0.66078c0.45575 0 0.79739 0.0757 1.0223 0.22541 0.22795 0.15147 0.33886 0.39948 0.33886 0.74577 0 0.34058-0.10247 0.59809-0.31235 0.77147-0.20819 0.17193-0.54755 0.25916-1.0143 0.25916zm4.6436 3.2726h1.0013v-6.1214h-1.0013zm2.7924-5.2617h1.7991v5.2617h0.99991v-5.2617h1.8024v-0.85984h-4.6018v0.85984zm9.5763-0.85935-1.4486 2.794-1.4499-2.794h-1.0903l2.0327 3.7818v2.3396h1.0053v-2.3739l2.0407-3.7475z" style="clip-rule:evenodd;fill-rule:evenodd;fill:#fff;stroke-width:.47516"/><script type="text/javascript">!function(){const t="http://www.w3.org/2000/svg",e="http://www.w3.org/1999/xlink",s="http://www.w3.org/1999/xhtml",r=2;if(document.createElementNS(t,"meshgradient").x)return;const n=(t,e,s,r)=&gt;{let n=new x(.5*(e.x+s.x),.5*(e.y+s.y)),o=new x(.5*(t.x+e.x),.5*(t.y+e.y)),i=new x(.5*(s.x+r.x),.5*(s.y+r.y)),a=new x(.5*(n.x+o.x),.5*(n.y+o.y)),h=new x(.5*(n.x+i.x),.5*(n.y+i.y)),l=new x(.5*(a.x+h.x),.5*(a.y+h.y));return[[t,o,a,l],[l,h,i,r]]},o=t=&gt;{let e=t[0].distSquared(t[1]),s=t[2].distSquared(t[3]),r=.25*t[0].distSquared(t[2]),n=.25*t[1].distSquared(t[3]),o=e&gt;s?e:s,i=r&gt;n?r:n;return 18*(o&gt;i?o:i)},i=(t,e)=&gt;Math.sqrt(t.distSquared(e)),a=(t,e)=&gt;t.scale(2/3).add(e.scale(1/3)),h=t=&gt;{let e,s,r,n,o,i,a,h=new g;return t.match(/(\w+\(\s*[^)]+\))+/g).forEach(t=&gt;{let l=t.match(/[\w.-]+/g),d=l.shift();switch(d){case"translate":2===l.length?e=new g(1,0,0,1,l[0],l[1]):(console.error("mesh.js: translate does not have 2 arguments!"),e=new g(1,0,0,1,0,0)),h=h.append(e);break;case"scale":1===l.length?s=new g(l[0],0,0,l[0],0,0):2===l.length?s=new g(l[0],0,0,l[1],0,0):(console.error("mesh.js: scale does not have 1 or 2 arguments!"),s=new g(1,0,0,1,0,0)),h=h.append(s);break;case"rotate":if(3===l.length&amp;&amp;(e=new g(1,0,0,1,l[1],l[2]),h=h.append(e)),l[0]){r=l[0]*Math.PI/180;let t=Math.cos(r),e=Math.sin(r);Math.abs(t)&lt;1e-16&amp;&amp;(t=0),Math.abs(e)&lt;1e-16&amp;&amp;(e=0),a=new g(t,e,-e,t,0,0),h=h.append(a)}else console.error("math.js: No argument to rotate transform!");3===l.length&amp;&amp;(e=new g(1,0,0,1,-l[1],-l[2]),h=h.append(e));break;case"skewX":l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),o=new g(1,0,n,1,0,0),h=h.append(o)):console.error("math.js: No argument to skewX transform!");break;case"skewY":l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),i=new g(1,n,0,1,0,0),h=h.append(i)):console.error("math.js: No argument to skewY transform!");break;case"matrix":6===l.length?h=h.append(new g(...l)):console.error("math.js: Incorrect number of arguments for matrix!");break;default:console.error("mesh.js: Unhandled transform type: "+d)}}),h},l=t=&gt;{let e=[],s=t.split(/[ ,]+/);for(let t=0,r=s.length-1;t&lt;r;t+=2)e.push(new x(parseFloat(s[t]),parseFloat(s[t+1])));return e},d=(t,e)=&gt;{for(let s in e)t.setAttribute(s,e[s])},c=(t,e,s,r,n)=&gt;{let o,i,a=[0,0,0,0];for(let h=0;h&lt;3;++h)e[h]&lt;t[h]&amp;&amp;e[h]&lt;s[h]||t[h]&lt;e[h]&amp;&amp;s[h]&lt;e[h]?a[h]=0:(a[h]=.5*((e[h]-t[h])/r+(s[h]-e[h])/n),o=Math.abs(3*(e[h]-t[h])/r),i=Math.abs(3*(s[h]-e[h])/n),a[h]&gt;o?a[h]=o:a[h]&gt;i&amp;&amp;(a[h]=i));return a},u=[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[-3,3,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0],[2,-2,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,-3,3,0,0,-2,-1,0,0],[0,0,0,0,0,0,0,0,2,-2,0,0,1,1,0,0],[-3,0,3,0,0,0,0,0,-2,0,-1,0,0,0,0,0],[0,0,0,0,-3,0,3,0,0,0,0,0,-2,0,-1,0],[9,-9,-9,9,6,3,-6,-3,6,-6,3,-3,4,2,2,1],[-6,6,6,-6,-3,-3,3,3,-4,4,-2,2,-2,-2,-1,-1],[2,0,-2,0,0,0,0,0,1,0,1,0,0,0,0,0],[0,0,0,0,2,0,-2,0,0,0,0,0,1,0,1,0],[-6,6,6,-6,-4,-2,4,2,-3,3,-3,3,-2,-1,-2,-1],[4,-4,-4,4,2,2,-2,-2,2,-2,2,-2,1,1,1,1]],f=t=&gt;{let e=[];for(let s=0;s&lt;16;++s){e[s]=0;for(let r=0;r&lt;16;++r)e[s]+=u[s][r]*t[r]}return e},p=(t,e,s)=&gt;{const r=e*e,n=s*s,o=e*e*e,i=s*s*s;return t[0]+t[1]*e+t[2]*r+t[3]*o+t[4]*s+t[5]*s*e+t[6]*s*r+t[7]*s*o+t[8]*n+t[9]*n*e+t[10]*n*r+t[11]*n*o+t[12]*i+t[13]*i*e+t[14]*i*r+t[15]*i*o},y=t=&gt;{let e=[],s=[],r=[];for(let s=0;s&lt;4;++s)e[s]=[],e[s][0]=n(t[0][s],t[1][s],t[2][s],t[3][s]),e[s][1]=[],e[s][1].push(...n(...e[s][0][0])),e[s][1].push(...n(...e[s][0][1])),e[s][2]=[],e[s][2].push(...n(...e[s][1][0])),e[s][2].push(...n(...e[s][1][1])),e[s][2].push(...n(...e[s][1][2])),e[s][2].push(...n(...e[s][1][3]));for(let t=0;t&lt;8;++t){s[t]=[];for(let r=0;r&lt;4;++r)s[t][r]=[],s[t][r][0]=n(e[0][2][t][r],e[1][2][t][r],e[2][2][t][r],e[3][2][t][r]),s[t][r][1]=[],s[t][r][1].push(...n(...s[t][r][0][0])),s[t][r][1].push(...n(...s[t][r][0][1])),s[t][r][2]=[],s[t][r][2].push(...n(...s[t][r][1][0])),s[t][r][2].push(...n(...s[t][r][1][1])),s[t][r][2].push(...n(...s[t][r][1][2])),s[t][r][2].push(...n(...s[t][r][1][3]))}for(let t=0;t&lt;8;++t){r[t]=[];for(let e=0;e&lt;8;++e)r[t][e]=[],r[t][e][0]=s[t][0][2][e],r[t][e][1]=s[t][1][2][e],r[t][e][2]=s[t][2][2][e],r[t][e][3]=s[t][3][2][e]}return r};class x{constructor(t,e){this.x=t||0,this.y=e||0}toString(){return`(x=${this.x}, y=${this.y})`}clone(){return new x(this.x,this.y)}add(t){return new x(this.x+t.x,this.y+t.y)}scale(t){return void 0===t.x?new x(this.x*t,this.y*t):new x(this.x*t.x,this.y*t.y)}distSquared(t){let e=this.x-t.x,s=this.y-t.y;return e*e+s*s}transform(t){let e=this.x*t.a+this.y*t.c+t.e,s=this.x*t.b+this.y*t.d+t.f;return new x(e,s)}}class g{constructor(t,e,s,r,n,o){void 0===t?(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0):(this.a=t,this.b=e,this.c=s,this.d=r,this.e=n,this.f=o)}toString(){return`affine: ${this.a} ${this.c} ${this.e} \n ${this.b} ${this.d} ${this.f}`}append(t){t instanceof g||console.error("mesh.js: argument to Affine.append is not affine!");let e=this.a*t.a+this.c*t.b,s=this.b*t.a+this.d*t.b,r=this.a*t.c+this.c*t.d,n=this.b*t.c+this.d*t.d,o=this.a*t.e+this.c*t.f+this.e,i=this.b*t.e+this.d*t.f+this.f;return new g(e,s,r,n,o,i)}}class w{constructor(t,e){this.nodes=t,this.colors=e}paintCurve(t,e){if(o(this.nodes)&gt;r){const s=n(...this.nodes);let r=[[],[]],o=[[],[]];for(let t=0;t&lt;4;++t)r[0][t]=this.colors[0][t],r[1][t]=(this.colors[0][t]+this.colors[1][t])/2,o[0][t]=r[1][t],o[1][t]=this.colors[1][t];let i=new w(s[0],r),a=new w(s[1],o);i.paintCurve(t,e),a.paintCurve(t,e)}else{let s=Math.round(this.nodes[0].x);if(s&gt;=0&amp;&amp;s&lt;e){let r=4*(~~this.nodes[0].y*e+s);t[r]=Math.round(this.colors[0][0]),t[r+1]=Math.round(this.colors[0][1]),t[r+2]=Math.round(this.colors[0][2]),t[r+3]=Math.round(this.colors[0][3])}}}}class m{constructor(t,e){this.nodes=t,this.colors=e}split(){let t=[[],[],[],[]],e=[[],[],[],[]],s=[[[],[]],[[],[]]],r=[[[],[]],[[],[]]];for(let s=0;s&lt;4;++s){const r=n(this.nodes[0][s],this.nodes[1][s],this.nodes[2][s],this.nodes[3][s]);t[0][s]=r[0][0],t[1][s]=r[0][1],t[2][s]=r[0][2],t[3][s]=r[0][3],e[0][s]=r[1][0],e[1][s]=r[1][1],e[2][s]=r[1][2],e[3][s]=r[1][3]}for(let t=0;t&lt;4;++t)s[0][0][t]=this.colors[0][0][t],s[0][1][t]=this.colors[0][1][t],s[1][0][t]=(this.colors[0][0][t]+this.colors[1][0][t])/2,s[1][1][t]=(this.colors[0][1][t]+this.colors[1][1][t])/2,r[0][0][t]=s[1][0][t],r[0][1][t]=s[1][1][t],r[1][0][t]=this.colors[1][0][t],r[1][1][t]=this.colors[1][1][t];return[new m(t,s),new m(e,r)]}paint(t,e){let s,n=!1;for(let t=0;t&lt;4;++t)if((s=o([this.nodes[0][t],this.nodes[1][t],this.nodes[2][t],this.nodes[3][t]]))&gt;r){n=!0;break}if(n){let s=this.split();s[0].paint(t,e),s[1].paint(t,e)}else{new w([...this.nodes[0]],[...this.colors[0]]).paintCurve(t,e)}}}class b{constructor(t){this.readMesh(t),this.type=t.getAttribute("type")||"bilinear"}readMesh(t){let e=[[]],s=[[]],r=Number(t.getAttribute("x")),n=Number(t.getAttribute("y"));e[0][0]=new x(r,n);let o=t.children;for(let t=0,r=o.length;t&lt;r;++t){e[3*t+1]=[],e[3*t+2]=[],e[3*t+3]=[],s[t+1]=[];let r=o[t].children;for(let n=0,o=r.length;n&lt;o;++n){let o=r[n].children;for(let r=0,i=o.length;r&lt;i;++r){let i=r;0!==t&amp;&amp;++i;let h,d=o[r].getAttribute("path"),c="l";null!=d&amp;&amp;(c=(h=d.match(/\s*([lLcC])\s*(.*)/))[1]);let u=l(h[2]);switch(c){case"l":0===i?(e[3*t][3*n+3]=u[0].add(e[3*t][3*n]),e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0].add(e[3*t+3][3*n+3])),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case"L":0===i?(e[3*t][3*n+3]=u[0],e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0],e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0]),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case"c":0===i?(e[3*t][3*n+1]=u[0].add(e[3*t][3*n]),e[3*t][3*n+2]=u[1].add(e[3*t][3*n]),e[3*t][3*n+3]=u[2].add(e[3*t][3*n])):1===i?(e[3*t+1][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+2][3*n+3]=u[1].add(e[3*t][3*n+3]),e[3*t+3][3*n+3]=u[2].add(e[3*t][3*n+3])):2===i?(e[3*t+3][3*n+2]=u[0].add(e[3*t+3][3*n+3]),e[3*t+3][3*n+1]=u[1].add(e[3*t+3][3*n+3]),0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2].add(e[3*t+3][3*n+3]))):(e[3*t+2][3*n]=u[0].add(e[3*t+3][3*n]),e[3*t+1][3*n]=u[1].add(e[3*t+3][3*n]));break;case"C":0===i?(e[3*t][3*n+1]=u[0],e[3*t][3*n+2]=u[1],e[3*t][3*n+3]=u[2]):1===i?(e[3*t+1][3*n+3]=u[0],e[3*t+2][3*n+3]=u[1],e[3*t+3][3*n+3]=u[2]):2===i?(e[3*t+3][3*n+2]=u[0],e[3*t+3][3*n+1]=u[1],0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2])):(e[3*t+2][3*n]=u[0],e[3*t+1][3*n]=u[1]);break;default:console.error("mesh.js: "+c+" invalid path type.")}if(0===t&amp;&amp;0===n||r&gt;0){let e=window.getComputedStyle(o[r]).stopColor.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i),a=window.getComputedStyle(o[r]).stopOpacity,h=255;a&amp;&amp;(h=Math.floor(255*a)),e&amp;&amp;(0===i?(s[t][n]=[],s[t][n][0]=Math.floor(e[1]),s[t][n][1]=Math.floor(e[2]),s[t][n][2]=Math.floor(e[3]),s[t][n][3]=h):1===i?(s[t][n+1]=[],s[t][n+1][0]=Math.floor(e[1]),s[t][n+1][1]=Math.floor(e[2]),s[t][n+1][2]=Math.floor(e[3]),s[t][n+1][3]=h):2===i?(s[t+1][n+1]=[],s[t+1][n+1][0]=Math.floor(e[1]),s[t+1][n+1][1]=Math.floor(e[2]),s[t+1][n+1][2]=Math.floor(e[3]),s[t+1][n+1][3]=h):3===i&amp;&amp;(s[t+1][n]=[],s[t+1][n][0]=Math.floor(e[1]),s[t+1][n][1]=Math.floor(e[2]),s[t+1][n][2]=Math.floor(e[3]),s[t+1][n][3]=h))}}e[3*t+1][3*n+1]=new x,e[3*t+1][3*n+2]=new x,e[3*t+2][3*n+1]=new x,e[3*t+2][3*n+2]=new x,e[3*t+1][3*n+1].x=(-4*e[3*t][3*n].x+6*(e[3*t][3*n+1].x+e[3*t+1][3*n].x)+-2*(e[3*t][3*n+3].x+e[3*t+3][3*n].x)+3*(e[3*t+3][3*n+1].x+e[3*t+1][3*n+3].x)+-1*e[3*t+3][3*n+3].x)/9,e[3*t+1][3*n+2].x=(-4*e[3*t][3*n+3].x+6*(e[3*t][3*n+2].x+e[3*t+1][3*n+3].x)+-2*(e[3*t][3*n].x+e[3*t+3][3*n+3].x)+3*(e[3*t+3][3*n+2].x+e[3*t+1][3*n].x)+-1*e[3*t+3][3*n].x)/9,e[3*t+2][3*n+1].x=(-4*e[3*t+3][3*n].x+6*(e[3*t+3][3*n+1].x+e[3*t+2][3*n].x)+-2*(e[3*t+3][3*n+3].x+e[3*t][3*n].x)+3*(e[3*t][3*n+1].x+e[3*t+2][3*n+3].x)+-1*e[3*t][3*n+3].x)/9,e[3*t+2][3*n+2].x=(-4*e[3*t+3][3*n+3].x+6*(e[3*t+3][3*n+2].x+e[3*t+2][3*n+3].x)+-2*(e[3*t+3][3*n].x+e[3*t][3*n+3].x)+3*(e[3*t][3*n+2].x+e[3*t+2][3*n].x)+-1*e[3*t][3*n].x)/9,e[3*t+1][3*n+1].y=(-4*e[3*t][3*n].y+6*(e[3*t][3*n+1].y+e[3*t+1][3*n].y)+-2*(e[3*t][3*n+3].y+e[3*t+3][3*n].y)+3*(e[3*t+3][3*n+1].y+e[3*t+1][3*n+3].y)+-1*e[3*t+3][3*n+3].y)/9,e[3*t+1][3*n+2].y=(-4*e[3*t][3*n+3].y+6*(e[3*t][3*n+2].y+e[3*t+1][3*n+3].y)+-2*(e[3*t][3*n].y+e[3*t+3][3*n+3].y)+3*(e[3*t+3][3*n+2].y+e[3*t+1][3*n].y)+-1*e[3*t+3][3*n].y)/9,e[3*t+2][3*n+1].y=(-4*e[3*t+3][3*n].y+6*(e[3*t+3][3*n+1].y+e[3*t+2][3*n].y)+-2*(e[3*t+3][3*n+3].y+e[3*t][3*n].y)+3*(e[3*t][3*n+1].y+e[3*t+2][3*n+3].y)+-1*e[3*t][3*n+3].y)/9,e[3*t+2][3*n+2].y=(-4*e[3*t+3][3*n+3].y+6*(e[3*t+3][3*n+2].y+e[3*t+2][3*n+3].y)+-2*(e[3*t+3][3*n].y+e[3*t][3*n+3].y)+3*(e[3*t][3*n+2].y+e[3*t+2][3*n].y)+-1*e[3*t][3*n].y)/9}}this.nodes=e,this.colors=s}paintMesh(t,e){let s=(this.nodes.length-1)/3,r=(this.nodes[0].length-1)/3;if("bilinear"===this.type||s&lt;2||r&lt;2){let n;for(let o=0;o&lt;s;++o)for(let s=0;s&lt;r;++s){let r=[];for(let t=3*o,e=3*o+4;t&lt;e;++t)r.push(this.nodes[t].slice(3*s,3*s+4));let i=[];i.push(this.colors[o].slice(s,s+2)),i.push(this.colors[o+1].slice(s,s+2)),(n=new m(r,i)).paint(t,e)}}else{let n,o,a,h,l,d,u;const x=s,g=r;s++,r++;let w=new Array(s);for(let t=0;t&lt;s;++t){w[t]=new Array(r);for(let e=0;e&lt;r;++e)w[t][e]=[],w[t][e][0]=this.nodes[3*t][3*e],w[t][e][1]=this.colors[t][e]}for(let t=0;t&lt;s;++t)for(let e=0;e&lt;r;++e)0!==t&amp;&amp;t!==x&amp;&amp;(n=i(w[t-1][e][0],w[t][e][0]),o=i(w[t+1][e][0],w[t][e][0]),w[t][e][2]=c(w[t-1][e][1],w[t][e][1],w[t+1][e][1],n,o)),0!==e&amp;&amp;e!==g&amp;&amp;(n=i(w[t][e-1][0],w[t][e][0]),o=i(w[t][e+1][0],w[t][e][0]),w[t][e][3]=c(w[t][e-1][1],w[t][e][1],w[t][e+1][1],n,o));for(let t=0;t&lt;r;++t){w[0][t][2]=[],w[x][t][2]=[];for(let e=0;e&lt;4;++e)n=i(w[1][t][0],w[0][t][0]),o=i(w[x][t][0],w[x-1][t][0]),w[0][t][2][e]=n&gt;0?2*(w[1][t][1][e]-w[0][t][1][e])/n-w[1][t][2][e]:0,w[x][t][2][e]=o&gt;0?2*(w[x][t][1][e]-w[x-1][t][1][e])/o-w[x-1][t][2][e]:0}for(let t=0;t&lt;s;++t){w[t][0][3]=[],w[t][g][3]=[];for(let e=0;e&lt;4;++e)n=i(w[t][1][0],w[t][0][0]),o=i(w[t][g][0],w[t][g-1][0]),w[t][0][3][e]=n&gt;0?2*(w[t][1][1][e]-w[t][0][1][e])/n-w[t][1][3][e]:0,w[t][g][3][e]=o&gt;0?2*(w[t][g][1][e]-w[t][g-1][1][e])/o-w[t][g-1][3][e]:0}for(let s=0;s&lt;x;++s)for(let r=0;r&lt;g;++r){let n=i(w[s][r][0],w[s+1][r][0]),o=i(w[s][r+1][0],w[s+1][r+1][0]),c=i(w[s][r][0],w[s][r+1][0]),x=i(w[s+1][r][0],w[s+1][r+1][0]),g=[[],[],[],[]];for(let t=0;t&lt;4;++t){(d=[])[0]=w[s][r][1][t],d[1]=w[s+1][r][1][t],d[2]=w[s][r+1][1][t],d[3]=w[s+1][r+1][1][t],d[4]=w[s][r][2][t]*n,d[5]=w[s+1][r][2][t]*n,d[6]=w[s][r+1][2][t]*o,d[7]=w[s+1][r+1][2][t]*o,d[8]=w[s][r][3][t]*c,d[9]=w[s+1][r][3][t]*x,d[10]=w[s][r+1][3][t]*c,d[11]=w[s+1][r+1][3][t]*x,d[12]=0,d[13]=0,d[14]=0,d[15]=0,u=f(d);for(let e=0;e&lt;9;++e){g[t][e]=[];for(let s=0;s&lt;9;++s)g[t][e][s]=p(u,e/8,s/8),g[t][e][s]&gt;255?g[t][e][s]=255:g[t][e][s]&lt;0&amp;&amp;(g[t][e][s]=0)}}h=[];for(let t=3*s,e=3*s+4;t&lt;e;++t)h.push(this.nodes[t].slice(3*r,3*r+4));l=y(h);for(let s=0;s&lt;8;++s)for(let r=0;r&lt;8;++r)(a=new m(l[s][r],[[[g[0][s][r],g[1][s][r],g[2][s][r],g[3][s][r]],[g[0][s][r+1],g[1][s][r+1],g[2][s][r+1],g[3][s][r+1]]],[[g[0][s+1][r],g[1][s+1][r],g[2][s+1][r],g[3][s+1][r]],[g[0][s+1][r+1],g[1][s+1][r+1],g[2][s+1][r+1],g[3][s+1][r+1]]]])).paint(t,e)}}}transform(t){if(t instanceof x)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].add(t);else if(t instanceof g)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].transform(t)}scale(t){for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].scale(t)}}document.querySelectorAll("rect,circle,ellipse,path,text").forEach((r,n)=&gt;{let o=r.getAttribute("id");o||(o="patchjs_shape"+n,r.setAttribute("id",o));const i=r.style.fill.match(/^url\(\s*"?\s*#([^\s"]+)"?\s*\)/),a=r.style.stroke.match(/^url\(\s*"?\s*#([^\s"]+)"?\s*\)/);if(i&amp;&amp;i[1]){const a=document.getElementById(i[1]);if(a&amp;&amp;"meshgradient"===a.nodeName){const i=r.getBBox();let l=document.createElementNS(s,"canvas");d(l,{width:i.width,height:i.height});const c=l.getContext("2d");let u=c.createImageData(i.width,i.height);const f=new b(a);"objectBoundingBox"===a.getAttribute("gradientUnits")&amp;&amp;f.scale(new x(i.width,i.height));const p=a.getAttribute("gradientTransform");null!=p&amp;&amp;f.transform(h(p)),"userSpaceOnUse"===a.getAttribute("gradientUnits")&amp;&amp;f.transform(new x(-i.x,-i.y)),f.paintMesh(u.data,l.width),c.putImageData(u,0,0);const y=document.createElementNS(t,"image");d(y,{width:i.width,height:i.height,x:i.x,y:i.y});let g=l.toDataURL();y.setAttributeNS(e,"xlink:href",g),r.parentNode.insertBefore(y,r),r.style.fill="none";const w=document.createElementNS(t,"use");w.setAttributeNS(e,"xlink:href","#"+o);const m="patchjs_clip"+n,M=document.createElementNS(t,"clipPath");M.setAttribute("id",m),M.appendChild(w),r.parentElement.insertBefore(M,r),y.setAttribute("clip-path","url(#"+m+")"),u=null,l=null,g=null}}if(a&amp;&amp;a[1]){const o=document.getElementById(a[1]);if(o&amp;&amp;"meshgradient"===o.nodeName){const i=parseFloat(r.style.strokeWidth.slice(0,-2))*(parseFloat(r.style.strokeMiterlimit)||parseFloat(r.getAttribute("stroke-miterlimit"))||1),a=r.getBBox(),l=Math.trunc(a.width+i),c=Math.trunc(a.height+i),u=Math.trunc(a.x-i/2),f=Math.trunc(a.y-i/2);let p=document.createElementNS(s,"canvas");d(p,{width:l,height:c});const y=p.getContext("2d");let g=y.createImageData(l,c);const w=new b(o);"objectBoundingBox"===o.getAttribute("gradientUnits")&amp;&amp;w.scale(new x(l,c));const m=o.getAttribute("gradientTransform");null!=m&amp;&amp;w.transform(h(m)),"userSpaceOnUse"===o.getAttribute("gradientUnits")&amp;&amp;w.transform(new x(-u,-f)),w.paintMesh(g.data,p.width),y.putImageData(g,0,0);const M=document.createElementNS(t,"image");d(M,{width:l,height:c,x:0,y:0});let S=p.toDataURL();M.setAttributeNS(e,"xlink:href",S);const k="pattern_clip"+n,A=document.createElementNS(t,"pattern");d(A,{id:k,patternUnits:"userSpaceOnUse",width:l,height:c,x:u,y:f}),A.appendChild(M),o.parentNode.appendChild(A),r.style.stroke="url(#"+k+")",g=null,p=null,S=null}}})}();</script><script type="text/javascript">!function(){const t="http://www.w3.org/2000/svg",e="http://www.w3.org/1999/xlink",s="http://www.w3.org/1999/xhtml",r=2;if(document.createElementNS(t,"meshgradient").x)return;const n=(t,e,s,r)=&gt;{let n=new x(.5*(e.x+s.x),.5*(e.y+s.y)),o=new x(.5*(t.x+e.x),.5*(t.y+e.y)),i=new x(.5*(s.x+r.x),.5*(s.y+r.y)),a=new x(.5*(n.x+o.x),.5*(n.y+o.y)),h=new x(.5*(n.x+i.x),.5*(n.y+i.y)),l=new x(.5*(a.x+h.x),.5*(a.y+h.y));return[[t,o,a,l],[l,h,i,r]]},o=t=&gt;{let e=t[0].distSquared(t[1]),s=t[2].distSquared(t[3]),r=.25*t[0].distSquared(t[2]),n=.25*t[1].distSquared(t[3]),o=e&gt;s?e:s,i=r&gt;n?r:n;return 18*(o&gt;i?o:i)},i=(t,e)=&gt;Math.sqrt(t.distSquared(e)),a=(t,e)=&gt;t.scale(2/3).add(e.scale(1/3)),h=t=&gt;{let e,s,r,n,o,i,a,h=new g;return t.match(/(\w+\(\s*[^)]+\))+/g).forEach(t=&gt;{let l=t.match(/[\w.-]+/g),d=l.shift();switch(d){case"translate":2===l.length?e=new g(1,0,0,1,l[0],l[1]):(console.error("mesh.js: translate does not have 2 arguments!"),e=new g(1,0,0,1,0,0)),h=h.append(e);break;case"scale":1===l.length?s=new g(l[0],0,0,l[0],0,0):2===l.length?s=new g(l[0],0,0,l[1],0,0):(console.error("mesh.js: scale does not have 1 or 2 arguments!"),s=new g(1,0,0,1,0,0)),h=h.append(s);break;case"rotate":if(3===l.length&amp;&amp;(e=new g(1,0,0,1,l[1],l[2]),h=h.append(e)),l[0]){r=l[0]*Math.PI/180;let t=Math.cos(r),e=Math.sin(r);Math.abs(t)&lt;1e-16&amp;&amp;(t=0),Math.abs(e)&lt;1e-16&amp;&amp;(e=0),a=new g(t,e,-e,t,0,0),h=h.append(a)}else console.error("math.js: No argument to rotate transform!");3===l.length&amp;&amp;(e=new g(1,0,0,1,-l[1],-l[2]),h=h.append(e));break;case"skewX":l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),o=new g(1,0,n,1,0,0),h=h.append(o)):console.error("math.js: No argument to skewX transform!");break;case"skewY":l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),i=new g(1,n,0,1,0,0),h=h.append(i)):console.error("math.js: No argument to skewY transform!");break;case"matrix":6===l.length?h=h.append(new g(...l)):console.error("math.js: Incorrect number of arguments for matrix!");break;default:console.error("mesh.js: Unhandled transform type: "+d)}}),h},l=t=&gt;{let e=[],s=t.split(/[ ,]+/);for(let t=0,r=s.length-1;t&lt;r;t+=2)e.push(new x(parseFloat(s[t]),parseFloat(s[t+1])));return e},d=(t,e)=&gt;{for(let s in e)t.setAttribute(s,e[s])},c=(t,e,s,r,n)=&gt;{let o,i,a=[0,0,0,0];for(let h=0;h&lt;3;++h)e[h]&lt;t[h]&amp;&amp;e[h]&lt;s[h]||t[h]&lt;e[h]&amp;&amp;s[h]&lt;e[h]?a[h]=0:(a[h]=.5*((e[h]-t[h])/r+(s[h]-e[h])/n),o=Math.abs(3*(e[h]-t[h])/r),i=Math.abs(3*(s[h]-e[h])/n),a[h]&gt;o?a[h]=o:a[h]&gt;i&amp;&amp;(a[h]=i));return a},u=[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[-3,3,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0],[2,-2,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,-3,3,0,0,-2,-1,0,0],[0,0,0,0,0,0,0,0,2,-2,0,0,1,1,0,0],[-3,0,3,0,0,0,0,0,-2,0,-1,0,0,0,0,0],[0,0,0,0,-3,0,3,0,0,0,0,0,-2,0,-1,0],[9,-9,-9,9,6,3,-6,-3,6,-6,3,-3,4,2,2,1],[-6,6,6,-6,-3,-3,3,3,-4,4,-2,2,-2,-2,-1,-1],[2,0,-2,0,0,0,0,0,1,0,1,0,0,0,0,0],[0,0,0,0,2,0,-2,0,0,0,0,0,1,0,1,0],[-6,6,6,-6,-4,-2,4,2,-3,3,-3,3,-2,-1,-2,-1],[4,-4,-4,4,2,2,-2,-2,2,-2,2,-2,1,1,1,1]],f=t=&gt;{let e=[];for(let s=0;s&lt;16;++s){e[s]=0;for(let r=0;r&lt;16;++r)e[s]+=u[s][r]*t[r]}return e},p=(t,e,s)=&gt;{const r=e*e,n=s*s,o=e*e*e,i=s*s*s;return t[0]+t[1]*e+t[2]*r+t[3]*o+t[4]*s+t[5]*s*e+t[6]*s*r+t[7]*s*o+t[8]*n+t[9]*n*e+t[10]*n*r+t[11]*n*o+t[12]*i+t[13]*i*e+t[14]*i*r+t[15]*i*o},y=t=&gt;{let e=[],s=[],r=[];for(let s=0;s&lt;4;++s)e[s]=[],e[s][0]=n(t[0][s],t[1][s],t[2][s],t[3][s]),e[s][1]=[],e[s][1].push(...n(...e[s][0][0])),e[s][1].push(...n(...e[s][0][1])),e[s][2]=[],e[s][2].push(...n(...e[s][1][0])),e[s][2].push(...n(...e[s][1][1])),e[s][2].push(...n(...e[s][1][2])),e[s][2].push(...n(...e[s][1][3]));for(let t=0;t&lt;8;++t){s[t]=[];for(let r=0;r&lt;4;++r)s[t][r]=[],s[t][r][0]=n(e[0][2][t][r],e[1][2][t][r],e[2][2][t][r],e[3][2][t][r]),s[t][r][1]=[],s[t][r][1].push(...n(...s[t][r][0][0])),s[t][r][1].push(...n(...s[t][r][0][1])),s[t][r][2]=[],s[t][r][2].push(...n(...s[t][r][1][0])),s[t][r][2].push(...n(...s[t][r][1][1])),s[t][r][2].push(...n(...s[t][r][1][2])),s[t][r][2].push(...n(...s[t][r][1][3]))}for(let t=0;t&lt;8;++t){r[t]=[];for(let e=0;e&lt;8;++e)r[t][e]=[],r[t][e][0]=s[t][0][2][e],r[t][e][1]=s[t][1][2][e],r[t][e][2]=s[t][2][2][e],r[t][e][3]=s[t][3][2][e]}return r};class x{constructor(t,e){this.x=t||0,this.y=e||0}toString(){return`(x=${this.x}, y=${this.y})`}clone(){return new x(this.x,this.y)}add(t){return new x(this.x+t.x,this.y+t.y)}scale(t){return void 0===t.x?new x(this.x*t,this.y*t):new x(this.x*t.x,this.y*t.y)}distSquared(t){let e=this.x-t.x,s=this.y-t.y;return e*e+s*s}transform(t){let e=this.x*t.a+this.y*t.c+t.e,s=this.x*t.b+this.y*t.d+t.f;return new x(e,s)}}class g{constructor(t,e,s,r,n,o){void 0===t?(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0):(this.a=t,this.b=e,this.c=s,this.d=r,this.e=n,this.f=o)}toString(){return`affine: ${this.a} ${this.c} ${this.e} \n ${this.b} ${this.d} ${this.f}`}append(t){t instanceof g||console.error("mesh.js: argument to Affine.append is not affine!");let e=this.a*t.a+this.c*t.b,s=this.b*t.a+this.d*t.b,r=this.a*t.c+this.c*t.d,n=this.b*t.c+this.d*t.d,o=this.a*t.e+this.c*t.f+this.e,i=this.b*t.e+this.d*t.f+this.f;return new g(e,s,r,n,o,i)}}class w{constructor(t,e){this.nodes=t,this.colors=e}paintCurve(t,e){if(o(this.nodes)&gt;r){const s=n(...this.nodes);let r=[[],[]],o=[[],[]];for(let t=0;t&lt;4;++t)r[0][t]=this.colors[0][t],r[1][t]=(this.colors[0][t]+this.colors[1][t])/2,o[0][t]=r[1][t],o[1][t]=this.colors[1][t];let i=new w(s[0],r),a=new w(s[1],o);i.paintCurve(t,e),a.paintCurve(t,e)}else{let s=Math.round(this.nodes[0].x);if(s&gt;=0&amp;&amp;s&lt;e){let r=4*(~~this.nodes[0].y*e+s);t[r]=Math.round(this.colors[0][0]),t[r+1]=Math.round(this.colors[0][1]),t[r+2]=Math.round(this.colors[0][2]),t[r+3]=Math.round(this.colors[0][3])}}}}class m{constructor(t,e){this.nodes=t,this.colors=e}split(){let t=[[],[],[],[]],e=[[],[],[],[]],s=[[[],[]],[[],[]]],r=[[[],[]],[[],[]]];for(let s=0;s&lt;4;++s){const r=n(this.nodes[0][s],this.nodes[1][s],this.nodes[2][s],this.nodes[3][s]);t[0][s]=r[0][0],t[1][s]=r[0][1],t[2][s]=r[0][2],t[3][s]=r[0][3],e[0][s]=r[1][0],e[1][s]=r[1][1],e[2][s]=r[1][2],e[3][s]=r[1][3]}for(let t=0;t&lt;4;++t)s[0][0][t]=this.colors[0][0][t],s[0][1][t]=this.colors[0][1][t],s[1][0][t]=(this.colors[0][0][t]+this.colors[1][0][t])/2,s[1][1][t]=(this.colors[0][1][t]+this.colors[1][1][t])/2,r[0][0][t]=s[1][0][t],r[0][1][t]=s[1][1][t],r[1][0][t]=this.colors[1][0][t],r[1][1][t]=this.colors[1][1][t];return[new m(t,s),new m(e,r)]}paint(t,e){let s,n=!1;for(let t=0;t&lt;4;++t)if((s=o([this.nodes[0][t],this.nodes[1][t],this.nodes[2][t],this.nodes[3][t]]))&gt;r){n=!0;break}if(n){let s=this.split();s[0].paint(t,e),s[1].paint(t,e)}else{new w([...this.nodes[0]],[...this.colors[0]]).paintCurve(t,e)}}}class b{constructor(t){this.readMesh(t),this.type=t.getAttribute("type")||"bilinear"}readMesh(t){let e=[[]],s=[[]],r=Number(t.getAttribute("x")),n=Number(t.getAttribute("y"));e[0][0]=new x(r,n);let o=t.children;for(let t=0,r=o.length;t&lt;r;++t){e[3*t+1]=[],e[3*t+2]=[],e[3*t+3]=[],s[t+1]=[];let r=o[t].children;for(let n=0,o=r.length;n&lt;o;++n){let o=r[n].children;for(let r=0,i=o.length;r&lt;i;++r){let i=r;0!==t&amp;&amp;++i;let h,d=o[r].getAttribute("path"),c="l";null!=d&amp;&amp;(c=(h=d.match(/\s*([lLcC])\s*(.*)/))[1]);let u=l(h[2]);switch(c){case"l":0===i?(e[3*t][3*n+3]=u[0].add(e[3*t][3*n]),e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0].add(e[3*t+3][3*n+3])),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case"L":0===i?(e[3*t][3*n+3]=u[0],e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0],e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0]),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case"c":0===i?(e[3*t][3*n+1]=u[0].add(e[3*t][3*n]),e[3*t][3*n+2]=u[1].add(e[3*t][3*n]),e[3*t][3*n+3]=u[2].add(e[3*t][3*n])):1===i?(e[3*t+1][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+2][3*n+3]=u[1].add(e[3*t][3*n+3]),e[3*t+3][3*n+3]=u[2].add(e[3*t][3*n+3])):2===i?(e[3*t+3][3*n+2]=u[0].add(e[3*t+3][3*n+3]),e[3*t+3][3*n+1]=u[1].add(e[3*t+3][3*n+3]),0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2].add(e[3*t+3][3*n+3]))):(e[3*t+2][3*n]=u[0].add(e[3*t+3][3*n]),e[3*t+1][3*n]=u[1].add(e[3*t+3][3*n]));break;case"C":0===i?(e[3*t][3*n+1]=u[0],e[3*t][3*n+2]=u[1],e[3*t][3*n+3]=u[2]):1===i?(e[3*t+1][3*n+3]=u[0],e[3*t+2][3*n+3]=u[1],e[3*t+3][3*n+3]=u[2]):2===i?(e[3*t+3][3*n+2]=u[0],e[3*t+3][3*n+1]=u[1],0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2])):(e[3*t+2][3*n]=u[0],e[3*t+1][3*n]=u[1]);break;default:console.error("mesh.js: "+c+" invalid path type.")}if(0===t&amp;&amp;0===n||r&gt;0){let e=window.getComputedStyle(o[r]).stopColor.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i),a=window.getComputedStyle(o[r]).stopOpacity,h=255;a&amp;&amp;(h=Math.floor(255*a)),e&amp;&amp;(0===i?(s[t][n]=[],s[t][n][0]=Math.floor(e[1]),s[t][n][1]=Math.floor(e[2]),s[t][n][2]=Math.floor(e[3]),s[t][n][3]=h):1===i?(s[t][n+1]=[],s[t][n+1][0]=Math.floor(e[1]),s[t][n+1][1]=Math.floor(e[2]),s[t][n+1][2]=Math.floor(e[3]),s[t][n+1][3]=h):2===i?(s[t+1][n+1]=[],s[t+1][n+1][0]=Math.floor(e[1]),s[t+1][n+1][1]=Math.floor(e[2]),s[t+1][n+1][2]=Math.floor(e[3]),s[t+1][n+1][3]=h):3===i&amp;&amp;(s[t+1][n]=[],s[t+1][n][0]=Math.floor(e[1]),s[t+1][n][1]=Math.floor(e[2]),s[t+1][n][2]=Math.floor(e[3]),s[t+1][n][3]=h))}}e[3*t+1][3*n+1]=new x,e[3*t+1][3*n+2]=new x,e[3*t+2][3*n+1]=new x,e[3*t+2][3*n+2]=new x,e[3*t+1][3*n+1].x=(-4*e[3*t][3*n].x+6*(e[3*t][3*n+1].x+e[3*t+1][3*n].x)+-2*(e[3*t][3*n+3].x+e[3*t+3][3*n].x)+3*(e[3*t+3][3*n+1].x+e[3*t+1][3*n+3].x)+-1*e[3*t+3][3*n+3].x)/9,e[3*t+1][3*n+2].x=(-4*e[3*t][3*n+3].x+6*(e[3*t][3*n+2].x+e[3*t+1][3*n+3].x)+-2*(e[3*t][3*n].x+e[3*t+3][3*n+3].x)+3*(e[3*t+3][3*n+2].x+e[3*t+1][3*n].x)+-1*e[3*t+3][3*n].x)/9,e[3*t+2][3*n+1].x=(-4*e[3*t+3][3*n].x+6*(e[3*t+3][3*n+1].x+e[3*t+2][3*n].x)+-2*(e[3*t+3][3*n+3].x+e[3*t][3*n].x)+3*(e[3*t][3*n+1].x+e[3*t+2][3*n+3].x)+-1*e[3*t][3*n+3].x)/9,e[3*t+2][3*n+2].x=(-4*e[3*t+3][3*n+3].x+6*(e[3*t+3][3*n+2].x+e[3*t+2][3*n+3].x)+-2*(e[3*t+3][3*n].x+e[3*t][3*n+3].x)+3*(e[3*t][3*n+2].x+e[3*t+2][3*n].x)+-1*e[3*t][3*n].x)/9,e[3*t+1][3*n+1].y=(-4*e[3*t][3*n].y+6*(e[3*t][3*n+1].y+e[3*t+1][3*n].y)+-2*(e[3*t][3*n+3].y+e[3*t+3][3*n].y)+3*(e[3*t+3][3*n+1].y+e[3*t+1][3*n+3].y)+-1*e[3*t+3][3*n+3].y)/9,e[3*t+1][3*n+2].y=(-4*e[3*t][3*n+3].y+6*(e[3*t][3*n+2].y+e[3*t+1][3*n+3].y)+-2*(e[3*t][3*n].y+e[3*t+3][3*n+3].y)+3*(e[3*t+3][3*n+2].y+e[3*t+1][3*n].y)+-1*e[3*t+3][3*n].y)/9,e[3*t+2][3*n+1].y=(-4*e[3*t+3][3*n].y+6*(e[3*t+3][3*n+1].y+e[3*t+2][3*n].y)+-2*(e[3*t+3][3*n+3].y+e[3*t][3*n].y)+3*(e[3*t][3*n+1].y+e[3*t+2][3*n+3].y)+-1*e[3*t][3*n+3].y)/9,e[3*t+2][3*n+2].y=(-4*e[3*t+3][3*n+3].y+6*(e[3*t+3][3*n+2].y+e[3*t+2][3*n+3].y)+-2*(e[3*t+3][3*n].y+e[3*t][3*n+3].y)+3*(e[3*t][3*n+2].y+e[3*t+2][3*n].y)+-1*e[3*t][3*n].y)/9}}this.nodes=e,this.colors=s}paintMesh(t,e){let s=(this.nodes.length-1)/3,r=(this.nodes[0].length-1)/3;if("bilinear"===this.type||s&lt;2||r&lt;2){let n;for(let o=0;o&lt;s;++o)for(let s=0;s&lt;r;++s){let r=[];for(let t=3*o,e=3*o+4;t&lt;e;++t)r.push(this.nodes[t].slice(3*s,3*s+4));let i=[];i.push(this.colors[o].slice(s,s+2)),i.push(this.colors[o+1].slice(s,s+2)),(n=new m(r,i)).paint(t,e)}}else{let n,o,a,h,l,d,u;const x=s,g=r;s++,r++;let w=new Array(s);for(let t=0;t&lt;s;++t){w[t]=new Array(r);for(let e=0;e&lt;r;++e)w[t][e]=[],w[t][e][0]=this.nodes[3*t][3*e],w[t][e][1]=this.colors[t][e]}for(let t=0;t&lt;s;++t)for(let e=0;e&lt;r;++e)0!==t&amp;&amp;t!==x&amp;&amp;(n=i(w[t-1][e][0],w[t][e][0]),o=i(w[t+1][e][0],w[t][e][0]),w[t][e][2]=c(w[t-1][e][1],w[t][e][1],w[t+1][e][1],n,o)),0!==e&amp;&amp;e!==g&amp;&amp;(n=i(w[t][e-1][0],w[t][e][0]),o=i(w[t][e+1][0],w[t][e][0]),w[t][e][3]=c(w[t][e-1][1],w[t][e][1],w[t][e+1][1],n,o));for(let t=0;t&lt;r;++t){w[0][t][2]=[],w[x][t][2]=[];for(let e=0;e&lt;4;++e)n=i(w[1][t][0],w[0][t][0]),o=i(w[x][t][0],w[x-1][t][0]),w[0][t][2][e]=n&gt;0?2*(w[1][t][1][e]-w[0][t][1][e])/n-w[1][t][2][e]:0,w[x][t][2][e]=o&gt;0?2*(w[x][t][1][e]-w[x-1][t][1][e])/o-w[x-1][t][2][e]:0}for(let t=0;t&lt;s;++t){w[t][0][3]=[],w[t][g][3]=[];for(let e=0;e&lt;4;++e)n=i(w[t][1][0],w[t][0][0]),o=i(w[t][g][0],w[t][g-1][0]),w[t][0][3][e]=n&gt;0?2*(w[t][1][1][e]-w[t][0][1][e])/n-w[t][1][3][e]:0,w[t][g][3][e]=o&gt;0?2*(w[t][g][1][e]-w[t][g-1][1][e])/o-w[t][g-1][3][e]:0}for(let s=0;s&lt;x;++s)for(let r=0;r&lt;g;++r){let n=i(w[s][r][0],w[s+1][r][0]),o=i(w[s][r+1][0],w[s+1][r+1][0]),c=i(w[s][r][0],w[s][r+1][0]),x=i(w[s+1][r][0],w[s+1][r+1][0]),g=[[],[],[],[]];for(let t=0;t&lt;4;++t){(d=[])[0]=w[s][r][1][t],d[1]=w[s+1][r][1][t],d[2]=w[s][r+1][1][t],d[3]=w[s+1][r+1][1][t],d[4]=w[s][r][2][t]*n,d[5]=w[s+1][r][2][t]*n,d[6]=w[s][r+1][2][t]*o,d[7]=w[s+1][r+1][2][t]*o,d[8]=w[s][r][3][t]*c,d[9]=w[s+1][r][3][t]*x,d[10]=w[s][r+1][3][t]*c,d[11]=w[s+1][r+1][3][t]*x,d[12]=0,d[13]=0,d[14]=0,d[15]=0,u=f(d);for(let e=0;e&lt;9;++e){g[t][e]=[];for(let s=0;s&lt;9;++s)g[t][e][s]=p(u,e/8,s/8),g[t][e][s]&gt;255?g[t][e][s]=255:g[t][e][s]&lt;0&amp;&amp;(g[t][e][s]=0)}}h=[];for(let t=3*s,e=3*s+4;t&lt;e;++t)h.push(this.nodes[t].slice(3*r,3*r+4));l=y(h);for(let s=0;s&lt;8;++s)for(let r=0;r&lt;8;++r)(a=new m(l[s][r],[[[g[0][s][r],g[1][s][r],g[2][s][r],g[3][s][r]],[g[0][s][r+1],g[1][s][r+1],g[2][s][r+1],g[3][s][r+1]]],[[g[0][s+1][r],g[1][s+1][r],g[2][s+1][r],g[3][s+1][r]],[g[0][s+1][r+1],g[1][s+1][r+1],g[2][s+1][r+1],g[3][s+1][r+1]]]])).paint(t,e)}}}transform(t){if(t instanceof x)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].add(t);else if(t instanceof g)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].transform(t)}scale(t){for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].scale(t)}}document.querySelectorAll("rect,circle,ellipse,path,text").forEach((r,n)=&gt;{let o=r.getAttribute("id");o||(o="patchjs_shape"+n,r.setAttribute("id",o));const i=r.style.fill.match(/^url\(\s*"?\s*#([^\s"]+)"?\s*\)/),a=r.style.stroke.match(/^url\(\s*"?\s*#([^\s"]+)"?\s*\)/);if(i&amp;&amp;i[1]){const a=document.getElementById(i[1]);if(a&amp;&amp;"meshgradient"===a.nodeName){const i=r.getBBox();let l=document.createElementNS(s,"canvas");d(l,{width:i.width,height:i.height});const c=l.getContext("2d");let u=c.createImageData(i.width,i.height);const f=new b(a);"objectBoundingBox"===a.getAttribute("gradientUnits")&amp;&amp;f.scale(new x(i.width,i.height));const p=a.getAttribute("gradientTransform");null!=p&amp;&amp;f.transform(h(p)),"userSpaceOnUse"===a.getAttribute("gradientUnits")&amp;&amp;f.transform(new x(-i.x,-i.y)),f.paintMesh(u.data,l.width),c.putImageData(u,0,0);const y=document.createElementNS(t,"image");d(y,{width:i.width,height:i.height,x:i.x,y:i.y});let g=l.toDataURL();y.setAttributeNS(e,"xlink:href",g),r.parentNode.insertBefore(y,r),r.style.fill="none";const w=document.createElementNS(t,"use");w.setAttributeNS(e,"xlink:href","#"+o);const m="patchjs_clip"+n,M=document.createElementNS(t,"clipPath");M.setAttribute("id",m),M.appendChild(w),r.parentElement.insertBefore(M,r),y.setAttribute("clip-path","url(#"+m+")"),u=null,l=null,g=null}}if(a&amp;&amp;a[1]){const o=document.getElementById(a[1]);if(o&amp;&amp;"meshgradient"===o.nodeName){const i=parseFloat(r.style.strokeWidth.slice(0,-2))*(parseFloat(r.style.strokeMiterlimit)||parseFloat(r.getAttribute("stroke-miterlimit"))||1),a=r.getBBox(),l=Math.trunc(a.width+i),c=Math.trunc(a.height+i),u=Math.trunc(a.x-i/2),f=Math.trunc(a.y-i/2);let p=document.createElementNS(s,"canvas");d(p,{width:l,height:c});const y=p.getContext("2d");let g=y.createImageData(l,c);const w=new b(o);"objectBoundingBox"===o.getAttribute("gradientUnits")&amp;&amp;w.scale(new x(l,c));const m=o.getAttribute("gradientTransform");null!=m&amp;&amp;w.transform(h(m)),"userSpaceOnUse"===o.getAttribute("gradientUnits")&amp;&amp;w.transform(new x(-u,-f)),w.paintMesh(g.data,p.width),y.putImageData(g,0,0);const M=document.createElementNS(t,"image");d(M,{width:l,height:c,x:0,y:0});let S=p.toDataURL();M.setAttributeNS(e,"xlink:href",S);const k="pattern_clip"+n,A=document.createElementNS(t,"pattern");d(A,{id:k,patternUnits:"userSpaceOnUse",width:l,height:c,x:u,y:f}),A.appendChild(M),o.parentNode.appendChild(A),r.style.stroke="url(#"+k+")",g=null,p=null,S=null}}})}();</script><script type="text/javascript">!function(){const t="http://www.w3.org/2000/svg",e="http://www.w3.org/1999/xlink",s="http://www.w3.org/1999/xhtml",r=2;if(document.createElementNS(t,"meshgradient").x)return;const n=(t,e,s,r)=&gt;{let n=new x(.5*(e.x+s.x),.5*(e.y+s.y)),o=new x(.5*(t.x+e.x),.5*(t.y+e.y)),i=new x(.5*(s.x+r.x),.5*(s.y+r.y)),a=new x(.5*(n.x+o.x),.5*(n.y+o.y)),h=new x(.5*(n.x+i.x),.5*(n.y+i.y)),l=new x(.5*(a.x+h.x),.5*(a.y+h.y));return[[t,o,a,l],[l,h,i,r]]},o=t=&gt;{let e=t[0].distSquared(t[1]),s=t[2].distSquared(t[3]),r=.25*t[0].distSquared(t[2]),n=.25*t[1].distSquared(t[3]),o=e&gt;s?e:s,i=r&gt;n?r:n;return 18*(o&gt;i?o:i)},i=(t,e)=&gt;Math.sqrt(t.distSquared(e)),a=(t,e)=&gt;t.scale(2/3).add(e.scale(1/3)),h=t=&gt;{let e,s,r,n,o,i,a,h=new g;return t.match(/(\w+\(\s*[^)]+\))+/g).forEach(t=&gt;{let l=t.match(/[\w.-]+/g),d=l.shift();switch(d){case"translate":2===l.length?e=new g(1,0,0,1,l[0],l[1]):(console.error("mesh.js: translate does not have 2 arguments!"),e=new g(1,0,0,1,0,0)),h=h.append(e);break;case"scale":1===l.length?s=new g(l[0],0,0,l[0],0,0):2===l.length?s=new g(l[0],0,0,l[1],0,0):(console.error("mesh.js: scale does not have 1 or 2 arguments!"),s=new g(1,0,0,1,0,0)),h=h.append(s);break;case"rotate":if(3===l.length&amp;&amp;(e=new g(1,0,0,1,l[1],l[2]),h=h.append(e)),l[0]){r=l[0]*Math.PI/180;let t=Math.cos(r),e=Math.sin(r);Math.abs(t)&lt;1e-16&amp;&amp;(t=0),Math.abs(e)&lt;1e-16&amp;&amp;(e=0),a=new g(t,e,-e,t,0,0),h=h.append(a)}else console.error("math.js: No argument to rotate transform!");3===l.length&amp;&amp;(e=new g(1,0,0,1,-l[1],-l[2]),h=h.append(e));break;case"skewX":l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),o=new g(1,0,n,1,0,0),h=h.append(o)):console.error("math.js: No argument to skewX transform!");break;case"skewY":l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),i=new g(1,n,0,1,0,0),h=h.append(i)):console.error("math.js: No argument to skewY transform!");break;case"matrix":6===l.length?h=h.append(new g(...l)):console.error("math.js: Incorrect number of arguments for matrix!");break;default:console.error("mesh.js: Unhandled transform type: "+d)}}),h},l=t=&gt;{let e=[],s=t.split(/[ ,]+/);for(let t=0,r=s.length-1;t&lt;r;t+=2)e.push(new x(parseFloat(s[t]),parseFloat(s[t+1])));return e},d=(t,e)=&gt;{for(let s in e)t.setAttribute(s,e[s])},c=(t,e,s,r,n)=&gt;{let o,i,a=[0,0,0,0];for(let h=0;h&lt;3;++h)e[h]&lt;t[h]&amp;&amp;e[h]&lt;s[h]||t[h]&lt;e[h]&amp;&amp;s[h]&lt;e[h]?a[h]=0:(a[h]=.5*((e[h]-t[h])/r+(s[h]-e[h])/n),o=Math.abs(3*(e[h]-t[h])/r),i=Math.abs(3*(s[h]-e[h])/n),a[h]&gt;o?a[h]=o:a[h]&gt;i&amp;&amp;(a[h]=i));return a},u=[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[-3,3,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0],[2,-2,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,-3,3,0,0,-2,-1,0,0],[0,0,0,0,0,0,0,0,2,-2,0,0,1,1,0,0],[-3,0,3,0,0,0,0,0,-2,0,-1,0,0,0,0,0],[0,0,0,0,-3,0,3,0,0,0,0,0,-2,0,-1,0],[9,-9,-9,9,6,3,-6,-3,6,-6,3,-3,4,2,2,1],[-6,6,6,-6,-3,-3,3,3,-4,4,-2,2,-2,-2,-1,-1],[2,0,-2,0,0,0,0,0,1,0,1,0,0,0,0,0],[0,0,0,0,2,0,-2,0,0,0,0,0,1,0,1,0],[-6,6,6,-6,-4,-2,4,2,-3,3,-3,3,-2,-1,-2,-1],[4,-4,-4,4,2,2,-2,-2,2,-2,2,-2,1,1,1,1]],f=t=&gt;{let e=[];for(let s=0;s&lt;16;++s){e[s]=0;for(let r=0;r&lt;16;++r)e[s]+=u[s][r]*t[r]}return e},p=(t,e,s)=&gt;{const r=e*e,n=s*s,o=e*e*e,i=s*s*s;return t[0]+t[1]*e+t[2]*r+t[3]*o+t[4]*s+t[5]*s*e+t[6]*s*r+t[7]*s*o+t[8]*n+t[9]*n*e+t[10]*n*r+t[11]*n*o+t[12]*i+t[13]*i*e+t[14]*i*r+t[15]*i*o},y=t=&gt;{let e=[],s=[],r=[];for(let s=0;s&lt;4;++s)e[s]=[],e[s][0]=n(t[0][s],t[1][s],t[2][s],t[3][s]),e[s][1]=[],e[s][1].push(...n(...e[s][0][0])),e[s][1].push(...n(...e[s][0][1])),e[s][2]=[],e[s][2].push(...n(...e[s][1][0])),e[s][2].push(...n(...e[s][1][1])),e[s][2].push(...n(...e[s][1][2])),e[s][2].push(...n(...e[s][1][3]));for(let t=0;t&lt;8;++t){s[t]=[];for(let r=0;r&lt;4;++r)s[t][r]=[],s[t][r][0]=n(e[0][2][t][r],e[1][2][t][r],e[2][2][t][r],e[3][2][t][r]),s[t][r][1]=[],s[t][r][1].push(...n(...s[t][r][0][0])),s[t][r][1].push(...n(...s[t][r][0][1])),s[t][r][2]=[],s[t][r][2].push(...n(...s[t][r][1][0])),s[t][r][2].push(...n(...s[t][r][1][1])),s[t][r][2].push(...n(...s[t][r][1][2])),s[t][r][2].push(...n(...s[t][r][1][3]))}for(let t=0;t&lt;8;++t){r[t]=[];for(let e=0;e&lt;8;++e)r[t][e]=[],r[t][e][0]=s[t][0][2][e],r[t][e][1]=s[t][1][2][e],r[t][e][2]=s[t][2][2][e],r[t][e][3]=s[t][3][2][e]}return r};class x{constructor(t,e){this.x=t||0,this.y=e||0}toString(){return`(x=${this.x}, y=${this.y})`}clone(){return new x(this.x,this.y)}add(t){return new x(this.x+t.x,this.y+t.y)}scale(t){return void 0===t.x?new x(this.x*t,this.y*t):new x(this.x*t.x,this.y*t.y)}distSquared(t){let e=this.x-t.x,s=this.y-t.y;return e*e+s*s}transform(t){let e=this.x*t.a+this.y*t.c+t.e,s=this.x*t.b+this.y*t.d+t.f;return new x(e,s)}}class g{constructor(t,e,s,r,n,o){void 0===t?(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0):(this.a=t,this.b=e,this.c=s,this.d=r,this.e=n,this.f=o)}toString(){return`affine: ${this.a} ${this.c} ${this.e} \n ${this.b} ${this.d} ${this.f}`}append(t){t instanceof g||console.error("mesh.js: argument to Affine.append is not affine!");let e=this.a*t.a+this.c*t.b,s=this.b*t.a+this.d*t.b,r=this.a*t.c+this.c*t.d,n=this.b*t.c+this.d*t.d,o=this.a*t.e+this.c*t.f+this.e,i=this.b*t.e+this.d*t.f+this.f;return new g(e,s,r,n,o,i)}}class w{constructor(t,e){this.nodes=t,this.colors=e}paintCurve(t,e){if(o(this.nodes)&gt;r){const s=n(...this.nodes);let r=[[],[]],o=[[],[]];for(let t=0;t&lt;4;++t)r[0][t]=this.colors[0][t],r[1][t]=(this.colors[0][t]+this.colors[1][t])/2,o[0][t]=r[1][t],o[1][t]=this.colors[1][t];let i=new w(s[0],r),a=new w(s[1],o);i.paintCurve(t,e),a.paintCurve(t,e)}else{let s=Math.round(this.nodes[0].x);if(s&gt;=0&amp;&amp;s&lt;e){let r=4*(~~this.nodes[0].y*e+s);t[r]=Math.round(this.colors[0][0]),t[r+1]=Math.round(this.colors[0][1]),t[r+2]=Math.round(this.colors[0][2]),t[r+3]=Math.round(this.colors[0][3])}}}}class m{constructor(t,e){this.nodes=t,this.colors=e}split(){let t=[[],[],[],[]],e=[[],[],[],[]],s=[[[],[]],[[],[]]],r=[[[],[]],[[],[]]];for(let s=0;s&lt;4;++s){const r=n(this.nodes[0][s],this.nodes[1][s],this.nodes[2][s],this.nodes[3][s]);t[0][s]=r[0][0],t[1][s]=r[0][1],t[2][s]=r[0][2],t[3][s]=r[0][3],e[0][s]=r[1][0],e[1][s]=r[1][1],e[2][s]=r[1][2],e[3][s]=r[1][3]}for(let t=0;t&lt;4;++t)s[0][0][t]=this.colors[0][0][t],s[0][1][t]=this.colors[0][1][t],s[1][0][t]=(this.colors[0][0][t]+this.colors[1][0][t])/2,s[1][1][t]=(this.colors[0][1][t]+this.colors[1][1][t])/2,r[0][0][t]=s[1][0][t],r[0][1][t]=s[1][1][t],r[1][0][t]=this.colors[1][0][t],r[1][1][t]=this.colors[1][1][t];return[new m(t,s),new m(e,r)]}paint(t,e){let s,n=!1;for(let t=0;t&lt;4;++t)if((s=o([this.nodes[0][t],this.nodes[1][t],this.nodes[2][t],this.nodes[3][t]]))&gt;r){n=!0;break}if(n){let s=this.split();s[0].paint(t,e),s[1].paint(t,e)}else{new w([...this.nodes[0]],[...this.colors[0]]).paintCurve(t,e)}}}class b{constructor(t){this.readMesh(t),this.type=t.getAttribute("type")||"bilinear"}readMesh(t){let e=[[]],s=[[]],r=Number(t.getAttribute("x")),n=Number(t.getAttribute("y"));e[0][0]=new x(r,n);let o=t.children;for(let t=0,r=o.length;t&lt;r;++t){e[3*t+1]=[],e[3*t+2]=[],e[3*t+3]=[],s[t+1]=[];let r=o[t].children;for(let n=0,o=r.length;n&lt;o;++n){let o=r[n].children;for(let r=0,i=o.length;r&lt;i;++r){let i=r;0!==t&amp;&amp;++i;let h,d=o[r].getAttribute("path"),c="l";null!=d&amp;&amp;(c=(h=d.match(/\s*([lLcC])\s*(.*)/))[1]);let u=l(h[2]);switch(c){case"l":0===i?(e[3*t][3*n+3]=u[0].add(e[3*t][3*n]),e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0].add(e[3*t+3][3*n+3])),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case"L":0===i?(e[3*t][3*n+3]=u[0],e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0],e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0]),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case"c":0===i?(e[3*t][3*n+1]=u[0].add(e[3*t][3*n]),e[3*t][3*n+2]=u[1].add(e[3*t][3*n]),e[3*t][3*n+3]=u[2].add(e[3*t][3*n])):1===i?(e[3*t+1][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+2][3*n+3]=u[1].add(e[3*t][3*n+3]),e[3*t+3][3*n+3]=u[2].add(e[3*t][3*n+3])):2===i?(e[3*t+3][3*n+2]=u[0].add(e[3*t+3][3*n+3]),e[3*t+3][3*n+1]=u[1].add(e[3*t+3][3*n+3]),0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2].add(e[3*t+3][3*n+3]))):(e[3*t+2][3*n]=u[0].add(e[3*t+3][3*n]),e[3*t+1][3*n]=u[1].add(e[3*t+3][3*n]));break;case"C":0===i?(e[3*t][3*n+1]=u[0],e[3*t][3*n+2]=u[1],e[3*t][3*n+3]=u[2]):1===i?(e[3*t+1][3*n+3]=u[0],e[3*t+2][3*n+3]=u[1],e[3*t+3][3*n+3]=u[2]):2===i?(e[3*t+3][3*n+2]=u[0],e[3*t+3][3*n+1]=u[1],0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2])):(e[3*t+2][3*n]=u[0],e[3*t+1][3*n]=u[1]);break;default:console.error("mesh.js: "+c+" invalid path type.")}if(0===t&amp;&amp;0===n||r&gt;0){let e=window.getComputedStyle(o[r]).stopColor.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i),a=window.getComputedStyle(o[r]).stopOpacity,h=255;a&amp;&amp;(h=Math.floor(255*a)),e&amp;&amp;(0===i?(s[t][n]=[],s[t][n][0]=Math.floor(e[1]),s[t][n][1]=Math.floor(e[2]),s[t][n][2]=Math.floor(e[3]),s[t][n][3]=h):1===i?(s[t][n+1]=[],s[t][n+1][0]=Math.floor(e[1]),s[t][n+1][1]=Math.floor(e[2]),s[t][n+1][2]=Math.floor(e[3]),s[t][n+1][3]=h):2===i?(s[t+1][n+1]=[],s[t+1][n+1][0]=Math.floor(e[1]),s[t+1][n+1][1]=Math.floor(e[2]),s[t+1][n+1][2]=Math.floor(e[3]),s[t+1][n+1][3]=h):3===i&amp;&amp;(s[t+1][n]=[],s[t+1][n][0]=Math.floor(e[1]),s[t+1][n][1]=Math.floor(e[2]),s[t+1][n][2]=Math.floor(e[3]),s[t+1][n][3]=h))}}e[3*t+1][3*n+1]=new x,e[3*t+1][3*n+2]=new x,e[3*t+2][3*n+1]=new x,e[3*t+2][3*n+2]=new x,e[3*t+1][3*n+1].x=(-4*e[3*t][3*n].x+6*(e[3*t][3*n+1].x+e[3*t+1][3*n].x)+-2*(e[3*t][3*n+3].x+e[3*t+3][3*n].x)+3*(e[3*t+3][3*n+1].x+e[3*t+1][3*n+3].x)+-1*e[3*t+3][3*n+3].x)/9,e[3*t+1][3*n+2].x=(-4*e[3*t][3*n+3].x+6*(e[3*t][3*n+2].x+e[3*t+1][3*n+3].x)+-2*(e[3*t][3*n].x+e[3*t+3][3*n+3].x)+3*(e[3*t+3][3*n+2].x+e[3*t+1][3*n].x)+-1*e[3*t+3][3*n].x)/9,e[3*t+2][3*n+1].x=(-4*e[3*t+3][3*n].x+6*(e[3*t+3][3*n+1].x+e[3*t+2][3*n].x)+-2*(e[3*t+3][3*n+3].x+e[3*t][3*n].x)+3*(e[3*t][3*n+1].x+e[3*t+2][3*n+3].x)+-1*e[3*t][3*n+3].x)/9,e[3*t+2][3*n+2].x=(-4*e[3*t+3][3*n+3].x+6*(e[3*t+3][3*n+2].x+e[3*t+2][3*n+3].x)+-2*(e[3*t+3][3*n].x+e[3*t][3*n+3].x)+3*(e[3*t][3*n+2].x+e[3*t+2][3*n].x)+-1*e[3*t][3*n].x)/9,e[3*t+1][3*n+1].y=(-4*e[3*t][3*n].y+6*(e[3*t][3*n+1].y+e[3*t+1][3*n].y)+-2*(e[3*t][3*n+3].y+e[3*t+3][3*n].y)+3*(e[3*t+3][3*n+1].y+e[3*t+1][3*n+3].y)+-1*e[3*t+3][3*n+3].y)/9,e[3*t+1][3*n+2].y=(-4*e[3*t][3*n+3].y+6*(e[3*t][3*n+2].y+e[3*t+1][3*n+3].y)+-2*(e[3*t][3*n].y+e[3*t+3][3*n+3].y)+3*(e[3*t+3][3*n+2].y+e[3*t+1][3*n].y)+-1*e[3*t+3][3*n].y)/9,e[3*t+2][3*n+1].y=(-4*e[3*t+3][3*n].y+6*(e[3*t+3][3*n+1].y+e[3*t+2][3*n].y)+-2*(e[3*t+3][3*n+3].y+e[3*t][3*n].y)+3*(e[3*t][3*n+1].y+e[3*t+2][3*n+3].y)+-1*e[3*t][3*n+3].y)/9,e[3*t+2][3*n+2].y=(-4*e[3*t+3][3*n+3].y+6*(e[3*t+3][3*n+2].y+e[3*t+2][3*n+3].y)+-2*(e[3*t+3][3*n].y+e[3*t][3*n+3].y)+3*(e[3*t][3*n+2].y+e[3*t+2][3*n].y)+-1*e[3*t][3*n].y)/9}}this.nodes=e,this.colors=s}paintMesh(t,e){let s=(this.nodes.length-1)/3,r=(this.nodes[0].length-1)/3;if("bilinear"===this.type||s&lt;2||r&lt;2){let n;for(let o=0;o&lt;s;++o)for(let s=0;s&lt;r;++s){let r=[];for(let t=3*o,e=3*o+4;t&lt;e;++t)r.push(this.nodes[t].slice(3*s,3*s+4));let i=[];i.push(this.colors[o].slice(s,s+2)),i.push(this.colors[o+1].slice(s,s+2)),(n=new m(r,i)).paint(t,e)}}else{let n,o,a,h,l,d,u;const x=s,g=r;s++,r++;let w=new Array(s);for(let t=0;t&lt;s;++t){w[t]=new Array(r);for(let e=0;e&lt;r;++e)w[t][e]=[],w[t][e][0]=this.nodes[3*t][3*e],w[t][e][1]=this.colors[t][e]}for(let t=0;t&lt;s;++t)for(let e=0;e&lt;r;++e)0!==t&amp;&amp;t!==x&amp;&amp;(n=i(w[t-1][e][0],w[t][e][0]),o=i(w[t+1][e][0],w[t][e][0]),w[t][e][2]=c(w[t-1][e][1],w[t][e][1],w[t+1][e][1],n,o)),0!==e&amp;&amp;e!==g&amp;&amp;(n=i(w[t][e-1][0],w[t][e][0]),o=i(w[t][e+1][0],w[t][e][0]),w[t][e][3]=c(w[t][e-1][1],w[t][e][1],w[t][e+1][1],n,o));for(let t=0;t&lt;r;++t){w[0][t][2]=[],w[x][t][2]=[];for(let e=0;e&lt;4;++e)n=i(w[1][t][0],w[0][t][0]),o=i(w[x][t][0],w[x-1][t][0]),w[0][t][2][e]=n&gt;0?2*(w[1][t][1][e]-w[0][t][1][e])/n-w[1][t][2][e]:0,w[x][t][2][e]=o&gt;0?2*(w[x][t][1][e]-w[x-1][t][1][e])/o-w[x-1][t][2][e]:0}for(let t=0;t&lt;s;++t){w[t][0][3]=[],w[t][g][3]=[];for(let e=0;e&lt;4;++e)n=i(w[t][1][0],w[t][0][0]),o=i(w[t][g][0],w[t][g-1][0]),w[t][0][3][e]=n&gt;0?2*(w[t][1][1][e]-w[t][0][1][e])/n-w[t][1][3][e]:0,w[t][g][3][e]=o&gt;0?2*(w[t][g][1][e]-w[t][g-1][1][e])/o-w[t][g-1][3][e]:0}for(let s=0;s&lt;x;++s)for(let r=0;r&lt;g;++r){let n=i(w[s][r][0],w[s+1][r][0]),o=i(w[s][r+1][0],w[s+1][r+1][0]),c=i(w[s][r][0],w[s][r+1][0]),x=i(w[s+1][r][0],w[s+1][r+1][0]),g=[[],[],[],[]];for(let t=0;t&lt;4;++t){(d=[])[0]=w[s][r][1][t],d[1]=w[s+1][r][1][t],d[2]=w[s][r+1][1][t],d[3]=w[s+1][r+1][1][t],d[4]=w[s][r][2][t]*n,d[5]=w[s+1][r][2][t]*n,d[6]=w[s][r+1][2][t]*o,d[7]=w[s+1][r+1][2][t]*o,d[8]=w[s][r][3][t]*c,d[9]=w[s+1][r][3][t]*x,d[10]=w[s][r+1][3][t]*c,d[11]=w[s+1][r+1][3][t]*x,d[12]=0,d[13]=0,d[14]=0,d[15]=0,u=f(d);for(let e=0;e&lt;9;++e){g[t][e]=[];for(let s=0;s&lt;9;++s)g[t][e][s]=p(u,e/8,s/8),g[t][e][s]&gt;255?g[t][e][s]=255:g[t][e][s]&lt;0&amp;&amp;(g[t][e][s]=0)}}h=[];for(let t=3*s,e=3*s+4;t&lt;e;++t)h.push(this.nodes[t].slice(3*r,3*r+4));l=y(h);for(let s=0;s&lt;8;++s)for(let r=0;r&lt;8;++r)(a=new m(l[s][r],[[[g[0][s][r],g[1][s][r],g[2][s][r],g[3][s][r]],[g[0][s][r+1],g[1][s][r+1],g[2][s][r+1],g[3][s][r+1]]],[[g[0][s+1][r],g[1][s+1][r],g[2][s+1][r],g[3][s+1][r]],[g[0][s+1][r+1],g[1][s+1][r+1],g[2][s+1][r+1],g[3][s+1][r+1]]]])).paint(t,e)}}}transform(t){if(t instanceof x)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].add(t);else if(t instanceof g)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].transform(t)}scale(t){for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].scale(t)}}document.querySelectorAll("rect,circle,ellipse,path,text").forEach((r,n)=&gt;{let o=r.getAttribute("id");o||(o="patchjs_shape"+n,r.setAttribute("id",o));const i=r.style.fill.match(/^url\(\s*"?\s*#([^\s"]+)"?\s*\)/),a=r.style.stroke.match(/^url\(\s*"?\s*#([^\s"]+)"?\s*\)/);if(i&amp;&amp;i[1]){const a=document.getElementById(i[1]);if(a&amp;&amp;"meshgradient"===a.nodeName){const i=r.getBBox();let l=document.createElementNS(s,"canvas");d(l,{width:i.width,height:i.height});const c=l.getContext("2d");let u=c.createImageData(i.width,i.height);const f=new b(a);"objectBoundingBox"===a.getAttribute("gradientUnits")&amp;&amp;f.scale(new x(i.width,i.height));const p=a.getAttribute("gradientTransform");null!=p&amp;&amp;f.transform(h(p)),"userSpaceOnUse"===a.getAttribute("gradientUnits")&amp;&amp;f.transform(new x(-i.x,-i.y)),f.paintMesh(u.data,l.width),c.putImageData(u,0,0);const y=document.createElementNS(t,"image");d(y,{width:i.width,height:i.height,x:i.x,y:i.y});let g=l.toDataURL();y.setAttributeNS(e,"xlink:href",g),r.parentNode.insertBefore(y,r),r.style.fill="none";const w=document.createElementNS(t,"use");w.setAttributeNS(e,"xlink:href","#"+o);const m="patchjs_clip"+n,M=document.createElementNS(t,"clipPath");M.setAttribute("id",m),M.appendChild(w),r.parentElement.insertBefore(M,r),y.setAttribute("clip-path","url(#"+m+")"),u=null,l=null,g=null}}if(a&amp;&amp;a[1]){const o=document.getElementById(a[1]);if(o&amp;&amp;"meshgradient"===o.nodeName){const i=parseFloat(r.style.strokeWidth.slice(0,-2))*(parseFloat(r.style.strokeMiterlimit)||parseFloat(r.getAttribute("stroke-miterlimit"))||1),a=r.getBBox(),l=Math.trunc(a.width+i),c=Math.trunc(a.height+i),u=Math.trunc(a.x-i/2),f=Math.trunc(a.y-i/2);let p=document.createElementNS(s,"canvas");d(p,{width:l,height:c});const y=p.getContext("2d");let g=y.createImageData(l,c);const w=new b(o);"objectBoundingBox"===o.getAttribute("gradientUnits")&amp;&amp;w.scale(new x(l,c));const m=o.getAttribute("gradientTransform");null!=m&amp;&amp;w.transform(h(m)),"userSpaceOnUse"===o.getAttribute("gradientUnits")&amp;&amp;w.transform(new x(-u,-f)),w.paintMesh(g.data,p.width),y.putImageData(g,0,0);const M=document.createElementNS(t,"image");d(M,{width:l,height:c,x:0,y:0});let S=p.toDataURL();M.setAttributeNS(e,"xlink:href",S);const k="pattern_clip"+n,A=document.createElementNS(t,"pattern");d(A,{id:k,patternUnits:"userSpaceOnUse",width:l,height:c,x:u,y:f}),A.appendChild(M),o.parentNode.appendChild(A),r.style.stroke="url(#"+k+")",g=null,p=null,S=null}}})}();</script></svg>